X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fgettext.C;h=925e433363d50ab80972a4c4c70d3f5df129db64;hb=35204f8f33d7400a5fefeffea533fb4cb4097211;hp=ef13c283eaf6b25d2f6f9e2b3441e8fc0da79eab;hpb=893fe4da809f67ce91c78f2dfa64a9401d1b586f;p=lyx.git diff --git a/src/gettext.C b/src/gettext.C index ef13c283ea..925e433363 100644 --- a/src/gettext.C +++ b/src/gettext.C @@ -1,25 +1,71 @@ +/** + * \file src/gettext.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author Lars Gullik Bjønnes + * \author Jean-Marc Lasgouttes + * + * Full author contact details are available in file CREDITS. + */ + #include -#include "LString.h" #include "gettext.h" +#include "messages.h" +#include "support/environment.h" + + +namespace lyx { + +#ifdef HAVE_LOCALE_H +# include +#endif + +using support::setEnv; + +using std::string; + + +namespace { + +static Messages & getLyXMessages() +{ + static Messages lyx_messages; + + return lyx_messages; +} + +} // anon namespace + + +docstring const _(string const & str) +{ + return getLyXMessages().get(str); +} + #ifdef ENABLE_NLS -char const * _(char const * str) +void locale_init() { - return gettext(str); + // Disable, as otherwise it overrides everything else incl. the doc language + setEnv("LANGUAGE", ""); +# ifdef HAVE_LC_MESSAGES + setlocale(LC_MESSAGES, ""); +# endif + setlocale(LC_CTYPE, ""); + setlocale(LC_NUMERIC, "C"); } +#else // ENABLE_NLS -string const _(string const & str) +void locale_init() { - int const s = str.length(); - char * tmp = new char[s + 1]; - str.copy(tmp, s); - tmp[s] = '\0'; - string ret(gettext(tmp)); - delete [] tmp; - return ret; + setlocale(LC_NUMERIC, "C"); } #endif + + +} // namespace lyx