X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Fgettext.cpp;h=44dd5da57a71502c29544d45bcd5cd5725776cc2;hb=dae8555234f0e5c8358b91c307d91b219c664617;hp=ce3a52da6dd58df5e320dc5e5d1f4e7a433de514;hpb=9d0ea8aeff32833a90b3fe64df0c5518a9e241be;p=lyx.git diff --git a/src/support/gettext.cpp b/src/support/gettext.cpp index ce3a52da6d..44dd5da57a 100644 --- a/src/support/gettext.cpp +++ b/src/support/gettext.cpp @@ -3,7 +3,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * \author Jean-Marc Lasgouttes * * Full author contact details are available in file CREDITS. @@ -15,13 +15,9 @@ #include "support/lstrings.h" #include "support/Messages.h" +#include "support/Package.h" -#ifdef HAVE_LOCALE_H -# include -#endif - -using std::string; - +using namespace std; namespace lyx { @@ -31,25 +27,26 @@ docstring const _(string const & str) } -void locale_init() +docstring const translateIfPossible(docstring const & name) { -#ifdef ENABLE_NLS -# ifdef HAVE_LC_MESSAGES - setlocale(LC_MESSAGES, ""); -# endif - setlocale(LC_CTYPE, ""); - Messages::init(); -#endif - setlocale(LC_NUMERIC, "C"); + if (support::isAscii(name) && !name.empty()) + // Probably from a standard configuration file, try to + // translate + return _(to_ascii(name)); + else + // This must be from a user defined configuration file. We + // cannot translate this, since gettext accepts only ascii + // keys. + return name; } -docstring const translateIfPossible(docstring const & name) +docstring const translateIfPossible(docstring const & name, std::string const & language) { - if (support::isAscii(name)) + if (support::isAscii(name) && !name.empty()) // Probably from a standard configuration file, try to // translate - return _(to_ascii(name)); + return getMessages(language).get(to_ascii(name)); else // This must be from a user defined configuration file. We // cannot translate this, since gettext accepts only ascii