1999-09-27 18:44:28 +00:00
|
|
|
// -*- C++ -*-
|
2003-05-19 21:08:58 +00:00
|
|
|
/**
|
2007-11-29 07:04:28 +00:00
|
|
|
* \file src/support/gettext.h
|
2003-05-19 21:08:58 +00:00
|
|
|
* This file is part of LyX, the document processor.
|
|
|
|
* Licence details can be found in the file COPYING.
|
|
|
|
*
|
2008-11-14 15:58:50 +00:00
|
|
|
* \author Lars Gullik Bjønnes
|
2003-05-19 21:08:58 +00:00
|
|
|
* \author Jean-Marc Lasgouttes
|
|
|
|
*
|
2003-08-23 00:17:00 +00:00
|
|
|
* Full author contact details are available in file CREDITS.
|
2003-05-19 21:08:58 +00:00
|
|
|
*/
|
2003-08-23 00:17:00 +00:00
|
|
|
|
2003-05-20 08:07:43 +00:00
|
|
|
#ifndef GETTEXT_H
|
|
|
|
#define GETTEXT_H
|
1999-09-27 18:44:28 +00:00
|
|
|
|
2007-10-31 22:40:34 +00:00
|
|
|
#include "support/strfwd.h"
|
2006-09-09 15:27:44 +00:00
|
|
|
|
2006-10-21 00:16:43 +00:00
|
|
|
|
|
|
|
namespace lyx {
|
|
|
|
|
1999-09-27 18:44:28 +00:00
|
|
|
/*
|
|
|
|
* Native Language Support
|
|
|
|
*
|
|
|
|
* The general idea is that any string that should be translated is handled
|
|
|
|
* as follows:
|
|
|
|
* _("string")
|
|
|
|
*
|
|
|
|
* Static strings are special, obviously and must be flagged as follows:
|
|
|
|
* static str = N_("string");
|
|
|
|
*
|
|
|
|
* And wherever they are used:
|
|
|
|
* _(str)
|
|
|
|
*
|
|
|
|
* Every file where there are strings needs:
|
2007-11-29 07:04:28 +00:00
|
|
|
* #include "support/gettext.h"
|
1999-09-27 18:44:28 +00:00
|
|
|
*
|
|
|
|
* Remember to mention each of these files in "po/POFILES.in"
|
|
|
|
*
|
|
|
|
* The main() needs a locale_init() and a gettext_init() in the beginning.
|
2013-01-16 05:39:51 +00:00
|
|
|
*
|
|
|
|
* The various *_() methods accept only ASCII input, so they must not be used
|
|
|
|
* if the input may come from user supplied files.
|
|
|
|
* translateIfPossible() should be used in that case.
|
1999-09-27 18:44:28 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* General translation notes:
|
|
|
|
* Commands/options are not translated
|
|
|
|
* Debug messages are not translated
|
|
|
|
* Panic/fatal (that should not happen) messages need not be translated
|
|
|
|
*/
|
|
|
|
|
2000-10-11 21:06:43 +00:00
|
|
|
|
2003-04-24 22:09:46 +00:00
|
|
|
//#ifdef ENABLE_NLS
|
2001-06-08 13:34:41 +00:00
|
|
|
|
2001-03-08 14:22:43 +00:00
|
|
|
///
|
2006-10-21 00:16:43 +00:00
|
|
|
docstring const _(std::string const &);
|
2000-10-11 21:06:43 +00:00
|
|
|
|
2003-04-24 22:09:46 +00:00
|
|
|
//#else // ENABLE_NLS
|
2001-06-05 17:05:51 +00:00
|
|
|
|
2000-08-07 20:58:24 +00:00
|
|
|
///
|
2003-04-24 22:09:46 +00:00
|
|
|
//# define _(str) (str)
|
2001-03-08 14:22:43 +00:00
|
|
|
|
2003-04-24 22:09:46 +00:00
|
|
|
//#endif
|
1999-09-27 18:44:28 +00:00
|
|
|
|
2001-03-08 14:22:43 +00:00
|
|
|
# define N_(str) (str) // for detecting static strings
|
|
|
|
|
2006-11-23 16:31:48 +00:00
|
|
|
/**
|
2009-06-09 18:16:43 +00:00
|
|
|
* Translate \p name to the GUI language if it is possible.
|
2006-11-23 16:31:48 +00:00
|
|
|
* This should be used to translate strings that come from configuration
|
|
|
|
* files like .ui files. These strings could already be in the native
|
|
|
|
* language if they come from a file in the personal directory. */
|
|
|
|
docstring const translateIfPossible(docstring const & name);
|
2009-06-09 18:16:43 +00:00
|
|
|
/**
|
|
|
|
* Translate \p name to \p language if it is possible.
|
|
|
|
* This should be used to translate strings that come from configuration
|
|
|
|
* files like .ui files. These strings could already be in the native
|
|
|
|
* language if they come from a file in the personal directory. */
|
|
|
|
docstring const translateIfPossible(docstring const & name, std::string const & language);
|
2006-11-23 16:31:48 +00:00
|
|
|
|
2006-10-21 00:16:43 +00:00
|
|
|
} // namespace lyx
|
|
|
|
|
1999-09-27 18:44:28 +00:00
|
|
|
#endif
|