X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Fgettext.cpp;h=44dd5da57a71502c29544d45bcd5cd5725776cc2;hb=bf56e2c8e1afa857cd5e313c19948040e41b8227;hp=37a50ce11c60c32b771b0b847965294a8f82e2d1;hpb=f1cba8ff64b369792fd49f5ddf90e8126ab476ac;p=lyx.git diff --git a/src/support/gettext.cpp b/src/support/gettext.cpp index 37a50ce11c..44dd5da57a 100644 --- a/src/support/gettext.cpp +++ b/src/support/gettext.cpp @@ -15,10 +15,7 @@ #include "support/lstrings.h" #include "support/Messages.h" - -#ifdef HAVE_LOCALE_H -# include -#endif +#include "support/Package.h" using namespace std; @@ -30,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