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 84