summaryrefslogtreecommitdiff
path: root/src/language.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2010-10-23 16:12:15 -0400
committerAdam <Adam@anope.org>2010-10-23 16:12:15 -0400
commitec5fa9e63e54fc9eaef5d4b5d6b31bdcf7161031 (patch)
treeb1f99b74d1aab0564ca9a5cded7d9bd1668fbfc3 /src/language.cpp
parent7e47b9774058b29e117a9aab37e25b3f725fa837 (diff)
Made the language system still work even if the locales are not installed on the system
Diffstat (limited to 'src/language.cpp')
-rw-r--r--src/language.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/language.cpp b/src/language.cpp
index ca55f0bb8..885394b0c 100644
--- a/src/language.cpp
+++ b/src/language.cpp
@@ -54,9 +54,12 @@ const Anope::string GetString(Anope::string language, LanguageString string)
return language_strings[string];
#if GETTEXT_FOUND
- setlocale(LC_ALL, language.c_str());
+ extern int _nl_msg_cat_cntr;
+ ++_nl_msg_cat_cntr;
+ setenv("LANGUAGE", language.c_str(), 1);
+ setlocale(LC_ALL, "en_US");
const char *ret = dgettext("anope", language_strings[string].c_str());
- setlocale(LC_ALL, "");
+ unsetenv("LANGUAGE");
return ret ? ret : "";
#endif