]> git.lyx.org Git - lyx.git/blob - src/gettext.h
fix the smallcaps drawing, move xfont metrics functions out from LyXFont, move non...
[lyx.git] / src / gettext.h
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 #  if HAVE_GETTEXT
36 #    include <libintl.h>      // use the header already in the system *EK*
37 #    ifdef HAVE_LOCALE_H
38 #      include <locale.h>        // for LC_MESSAGES
39 #    endif
40 #  else
41 #    include "../intl/libintl.h"
42 #  endif
43
44 #  define _(str) gettext(str)
45 #  define N_(str) (str)              // for detecting static strings
46
47 #  ifdef HAVE_LC_MESSAGES
48                                 // LC_TIME, LC_CTYPE, even LC_ALL
49 #    define locale_init() { setlocale (LC_MESSAGES, ""); setlocale (LC_CTYPE, "");}
50 #  else
51 #    define locale_init()
52 #  endif
53 #  define gettext_init() { bindtextdomain (PACKAGE, lyx_localedir.c_str()); \
54         textdomain (PACKAGE); }
55 #else
56 #  define _(str) (str)
57 #  define N_(str) (str)
58 #  define locale_init()
59 #  define gettext_init()
60 #endif
61
62 #endif