]> git.lyx.org Git - lyx.git/blob - src/support/gettext.h
prepare Qt 5.6 builds
[lyx.git] / src / support / gettext.h
1 // -*- C++ -*-
2 /**
3  * \file src/support/gettext.h
4  * This file is part of LyX, the document processor.
5  * Licence details can be found in the file COPYING.
6  *
7  * \author Lars Gullik Bjønnes
8  * \author Jean-Marc Lasgouttes
9  *
10  * Full author contact details are available in file CREDITS.
11  */
12
13 #ifndef GETTEXT_H
14 #define GETTEXT_H
15
16 #include "support/strfwd.h"
17
18
19 namespace lyx {
20
21 /*
22  * Native Language Support
23  *
24  * The general idea is that any string that should be translated is handled
25  * as follows:
26  *      _("string")
27  *
28  * Static strings are special, obviously and must be flagged as follows:
29  *      static str = N_("string");
30  *
31  * And wherever they are used:
32  *      _(str)
33  *
34  * Every file where there are strings needs:
35  *      #include "support/gettext.h"
36  *
37  * Remember to mention each of these files in "po/POFILES.in"
38  *
39  * The main() needs a locale_init() and a gettext_init() in the beginning.
40  *
41  * The various *_() methods accept only ASCII input, so they must not be used
42  * if the input may come from user supplied  files.
43  * translateIfPossible() should be used in that case.
44  */
45
46 /*
47  * General translation notes:
48  *   Commands/options are not translated
49  *   Debug messages are not translated
50  *   Panic/fatal (that should not happen) messages need not be translated
51  */
52
53
54 //#ifdef ENABLE_NLS
55
56 ///
57 docstring const _(std::string const &);
58
59 //#else // ENABLE_NLS
60
61 ///
62 //#  define _(str) (str)
63
64 //#endif
65
66 #  define N_(str) (str)              // for detecting static strings
67
68 /**
69  * Translate \p name to the GUI language if it is possible.
70  * This should be used to translate strings that come from configuration
71  * files like .ui files. These strings could already be in the native
72  * language if they come from a file in the personal directory. */
73 docstring const translateIfPossible(docstring const & name);
74 /**
75  * Translate \p name to \p language if it is possible.
76  * This should be used to translate strings that come from configuration
77  * files like .ui files. These strings could already be in the native
78  * language if they come from a file in the personal directory. */
79 docstring const translateIfPossible(docstring const & name, std::string const & language);
80
81 } // namespace lyx
82
83 #endif