home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / tollmanager3.lha / toolmanager3 / ToolManagerSrc.lha / ToolManager / Source / Prefs / locale.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-02-22  |  5.7 KB  |  139 lines

  1. /*
  2.  * locale.c  V3.0
  3.  *
  4.  * Preferences editor localization support
  5.  *
  6.  * Copyright (C) 1990-97 Stefan Becker
  7.  *
  8.  * This source code is for educational purposes only. You may study it
  9.  * and copy ideas or algorithms from it for your own projects. It is
  10.  * not allowed to use any of the source codes (in full or in parts)
  11.  * in other programs. Especially it is not allowed to create variants
  12.  * of ToolManager or ToolManager-like programs from this source code.
  13.  *
  14.  */
  15.  
  16. #include "toolmanager.h"
  17.  
  18. /* Global strings */
  19. const char *TextGlobalTitle        = LOCALE_TEXT_GLOBAL_TITLE_STR;
  20. const char *TextGlobalCommand      = LOCALE_TEXT_GLOBAL_COMMAND_STR;
  21. const char *TextGlobalSelectCmd    = LOCALE_TEXT_GLOBAL_SELECT_COMMAND_STR;
  22. const char *TextGlobalDirectory    = LOCALE_TEXT_GLOBAL_DIRECTORY_STR;
  23. const char *TextGlobalSelectDir    = LOCALE_TEXT_GLOBAL_SELECT_DIRECTORY_STR;
  24. const char *TextGlobalHotKey       = LOCALE_TEXT_GLOBAL_HOTKEY_STR;
  25. const char *TextGlobalPublicScreen = LOCALE_TEXT_GLOBAL_PUBLIC_SCREEN_STR;
  26. const char *TextGlobalPosition     = LOCALE_TEXT_GLOBAL_POSITION_STR;
  27. const char *TextGlobalExecObject   = LOCALE_TEXT_GLOBAL_EXEC_OBJECT_STR;
  28. const char *TextGlobalImageObject  = LOCALE_TEXT_GLOBAL_IMAGE_OBJECT_STR;
  29. const char *TextGlobalSoundObject  = LOCALE_TEXT_GLOBAL_SOUND_OBJECT_STR;
  30. const char *TextGlobalDock         = LOCALE_TEXT_GLOBAL_DOCK_STR;
  31. const char *TextGlobalSelectFile   = LOCALE_TEXT_GLOBAL_SELECT_FILE_STR;
  32. const char *TextGlobalDelete       = LOCALE_TEXT_GLOBAL_DELETE_STR;
  33. const char *HelpGlobalDelete       = LOCALE_HELP_GLOBAL_DELETE_STR;
  34. const char *TextGlobalUse          = LOCALE_TEXT_GLOBAL_USE_STR;
  35. const char *HelpGlobalUse          = LOCALE_HELP_GLOBAL_USE_STR;
  36. const char *TextGlobalCancel       = LOCALE_TEXT_GLOBAL_CANCEL_STR;
  37. const char *HelpGlobalCancel       = LOCALE_HELP_GLOBAL_CANCEL_STR;
  38. const char  TextGlobalAccept[]     = "0123456789";
  39.  
  40. /* Local data */
  41. static struct Library *LocaleBase = NULL;
  42. static struct Catalog *Catalog    = NULL;
  43. static const struct TagItem CatalogParams[] = {
  44.  OC_BuiltInLanguage, (ULONG) "english",
  45.  OC_Version,         TMCATALOGVERSION,
  46.  TAG_DONE
  47. };
  48.  
  49. /* Initialize localization */
  50. #undef  DEBUGFUNCTION
  51. #define DEBUGFUNCTION InitLocale
  52. void InitLocale(void)
  53. {
  54.  LOCALE_LOG(LOG0(Entry))
  55.  
  56.  /* Open locale.library */
  57.  if (LocaleBase = OpenLibrary("locale.library", 39)) {
  58.  
  59.   LOCALE_LOG(LOG1(LocaleBase, "0x%08lx", LocaleBase))
  60.  
  61.   /* Open catalog */
  62.   if (Catalog = OpenCatalogA(NULL, "toolmanagerprefs.catalog",
  63.                              CatalogParams)) {
  64.  
  65.    LOCALE_LOG(LOG1(Catalog, "0x%08lx", Catalog))
  66.  
  67.    /* Translate global strings */
  68.    TextGlobalTitle        = TranslateString(TextGlobalTitle,
  69.                                           LOCALE_TEXT_GLOBAL_TITLE);
  70.    TextGlobalCommand      = TranslateString(TextGlobalCommand,
  71.                                           LOCALE_TEXT_GLOBAL_COMMAND);
  72.    TextGlobalSelectCmd    = TranslateString(TextGlobalSelectCmd,
  73.                                           LOCALE_TEXT_GLOBAL_SELECT_COMMAND);
  74.    TextGlobalDirectory    = TranslateString(TextGlobalDirectory,
  75.                                           LOCALE_TEXT_GLOBAL_DIRECTORY);
  76.    TextGlobalSelectDir    = TranslateString(TextGlobalSelectDir,
  77.                                           LOCALE_TEXT_GLOBAL_SELECT_DIRECTORY);
  78.    TextGlobalHotKey       = TranslateString(TextGlobalHotKey,
  79.                                           LOCALE_TEXT_GLOBAL_HOTKEY);
  80.    TextGlobalPublicScreen = TranslateString(TextGlobalPublicScreen,
  81.                                           LOCALE_TEXT_GLOBAL_PUBLIC_SCREEN);
  82.    TextGlobalPosition     = TranslateString(TextGlobalPosition,
  83.                                           LOCALE_TEXT_GLOBAL_POSITION);
  84.    TextGlobalExecObject   = TranslateString(TextGlobalExecObject,
  85.                                           LOCALE_TEXT_GLOBAL_EXEC_OBJECT);
  86.    TextGlobalImageObject  = TranslateString(TextGlobalImageObject,
  87.                                           LOCALE_TEXT_GLOBAL_IMAGE_OBJECT);
  88.    TextGlobalSoundObject  = TranslateString(TextGlobalSoundObject,
  89.                                           LOCALE_TEXT_GLOBAL_SOUND_OBJECT);
  90.    TextGlobalDock         = TranslateString(TextGlobalDock,
  91.                                           LOCALE_TEXT_GLOBAL_DOCK);
  92.    TextGlobalSelectFile   = TranslateString(TextGlobalSelectFile,
  93.                                           LOCALE_TEXT_GLOBAL_SELECT_FILE);
  94.    TextGlobalDelete       = TranslateString(TextGlobalDelete,
  95.                                           LOCALE_TEXT_GLOBAL_DELETE);
  96.    HelpGlobalDelete       = TranslateString(HelpGlobalDelete,
  97.                                           LOCALE_HELP_GLOBAL_DELETE);
  98.    TextGlobalUse          = TranslateString(TextGlobalUse,
  99.                                           LOCALE_TEXT_GLOBAL_USE);
  100.    HelpGlobalUse          = TranslateString(HelpGlobalUse,
  101.                                           LOCALE_HELP_GLOBAL_USE);
  102.    TextGlobalCancel       = TranslateString(TextGlobalCancel,
  103.                                           LOCALE_TEXT_GLOBAL_CANCEL);
  104.    HelpGlobalCancel       = TranslateString(HelpGlobalCancel,
  105.                                           LOCALE_HELP_GLOBAL_CANCEL);
  106.   }
  107.  }
  108. }
  109.  
  110. /* Free locale stuff */
  111. #undef  DEBUGFUNCTION
  112. #define DEBUGFUNCTION DeleteLocale
  113. void DeleteLocale(void)
  114. {
  115.  LOCALE_LOG(LOG0(Entry))
  116.  
  117.  /* Library opened? */
  118.  if (LocaleBase) {
  119.  
  120.   /* Catalog opened? */
  121.   if (Catalog) CloseCatalog(Catalog);
  122.  
  123.   /* Close library */
  124.   CloseLibrary(LocaleBase);
  125.  }
  126. }
  127.  
  128.  
  129. /* Translate one string */
  130. #undef  DEBUGFUNCTION
  131. #define DEBUGFUNCTION TranslateString
  132. const char *TranslateString(const char *text, ULONG id)
  133. {
  134.  LOCALE_LOG(LOG3(Arguments, "Default '%s' (0x%08lx) ID %ld", text, text, id))
  135.  
  136.  /* Return string from catalog or default text */
  137.  return(LocaleBase ? GetCatalogStr(Catalog, id, text) : text);
  138. }
  139.