]> git.lyx.org Git - lyx.git/blobdiff - src/support/gettext.cpp
Outliner: distinguish non-active refs from broken refs
[lyx.git] / src / support / gettext.cpp
index 37a50ce11c60c32b771b0b847965294a8f82e2d1..44dd5da57a71502c29544d45bcd5cd5725776cc2 100644 (file)
 
 #include "support/lstrings.h"
 #include "support/Messages.h"
-
-#ifdef HAVE_LOCALE_H
-#  include <locale.h>
-#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