home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Linux / Divers / lyx-0.13.2.tar.gz / lyx-0.13.2.tar / lyx-0.13.2 / src / gettext.h < prev    next >
C/C++ Source or Header  |  1998-04-23  |  2KB  |  70 lines

  1. // -*- C++ -*-
  2. #ifndef _GETTEXT_H_
  3. #define _GETTEXT_H_
  4.  
  5. /*
  6.  * Native Language Support
  7.  *
  8.  * The general idea is that any string that should be translated is handled
  9.  * as follows:
  10.  *    _("string")
  11.  *
  12.  * Static strings are special, obviously and must be flagged as follows:
  13.  *    static str = N_("string");
  14.  *
  15.  * And wherever they are used:
  16.  *    _(str)
  17.  *
  18.  * Every file where there are strings needs:
  19.  *    #include "gettext.h"
  20.  *
  21.  * Remember to mention each of these files in "po/POFILES.in"
  22.  *
  23.  * The main() needs a locale_init() and a gettext_init() in the beginning.
  24.  */
  25.  
  26. /*
  27.  * General translation notes:
  28.  *   Commands/options are not translated
  29.  *   Debug messages are not translated
  30.  *   Panic/fatal (that should not happen) messages need not be translated
  31.  */
  32.  
  33. #ifdef ENABLE_NLS
  34.  
  35. #include "LString.h"
  36.  
  37. #  if HAVE_GETTEXT
  38. #    include <libintl.h>      // use the header already in the system *EK*
  39. #    ifdef HAVE_LOCALE_H
  40. #      include <locale.h>        // for LC_MESSAGES
  41. #    endif
  42. #  else
  43. #    include "libintl.h"
  44. #  endif
  45.  
  46. //#  define _(str) gettext(str)
  47. inline char const *_(char const *str)
  48. {
  49.     return gettext(str);
  50. }
  51.  
  52. #  define N_(str) (str)              // for detecting static strings
  53.  
  54. #  ifdef HAVE_LC_MESSAGES
  55.                                 // LC_TIME, LC_CTYPE, even LC_ALL
  56. #    define locale_init() { setlocale (LC_MESSAGES, ""); }
  57. #  else
  58. #    define locale_init()
  59. #  endif
  60. #  define gettext_init() { bindtextdomain (PACKAGE, lyx_localedir.c_str()); \
  61.     textdomain (PACKAGE); }
  62. #else
  63. #  define _(str) (str)
  64. #  define N_(str) (str)
  65. #  define locale_init()
  66. #  define gettext_init()
  67. #endif
  68.  
  69. #endif
  70.