diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-05-29 14:49:32 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-05-29 14:49:32 +0300 |
commit | 13dc76b540a0fa9bd62e3e996dd707b610e792e5 (patch) | |
tree | 4df2df7e40621dffb8d39c64f59c25b77bc93fd7 /src/client.cpp | |
parent | ae8cfcf50b00e88f6722f3b5f461b6081479a1ac (diff) | |
download | manaplus-13dc76b540a0fa9bd62e3e996dd707b610e792e5.tar.gz manaplus-13dc76b540a0fa9bd62e3e996dd707b610e792e5.tar.bz2 manaplus-13dc76b540a0fa9bd62e3e996dd707b610e792e5.tar.xz manaplus-13dc76b540a0fa9bd62e3e996dd707b610e792e5.zip |
Move gettext related methods into separate file.
Diffstat (limited to 'src/client.cpp')
-rw-r--r-- | src/client.cpp | 77 |
1 files changed, 2 insertions, 75 deletions
diff --git a/src/client.cpp b/src/client.cpp index c0733c50b..1d3051372 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -121,6 +121,7 @@ #include "utils/files.h" #include "utils/fuzzer.h" #include "utils/gettext.h" +#include "utils/gettexthelper.h" #include "utils/mkdir.h" #include "utils/paths.h" #include "utils/physfstools.h" @@ -304,7 +305,7 @@ void Client::gameInit() "Exiting.", settings.localDataDir.c_str())); } - initLang(); + GettextHelper::initLang(); chatLogger = new ChatLogger; if (settings.options.chatLogDir.empty()) @@ -594,80 +595,6 @@ static void setProgress(const int val) #endif #endif -void Client::initLang() -{ -#ifdef ENABLE_NLS - std::string lang = config.getStringValue("lang"); -#ifdef WIN32 - if (lang.empty()) - lang = std::string(_nl_locale_name_default()); - - putenv(const_cast<char*>(("LANG=" + lang).c_str())); - putenv(const_cast<char*>(("LANGUAGE=" + lang).c_str())); - // mingw doesn't like LOCALEDIR to be defined for some reason - if (lang != "C") - bindTextDomain("translations/"); -#else // WIN32 - - if (!lang.empty()) - { - setEnv("LANG", lang.c_str()); - setEnv("LANGUAGE", lang.c_str()); - } -#ifdef ANDROID -#ifdef USE_SDL2 - bindTextDomain((std::string(getenv("APPDIR")).append("/locale")).c_str()); -#else // USE_SDL2 - - bindTextDomain((std::string(PhysFs::getBaseDir()).append( - "/locale")).c_str()); -#endif // USE_SDL2 -#else // ANDROID -#ifdef ENABLE_PORTABLE - bindTextDomain((std::string(PhysFs::getBaseDir()).append( - "../locale/")).c_str()); -#else // ENABLE_PORTABLE -#ifdef __APPLE__ - bindTextDomain((std::string(PhysFs::getBaseDir()) - .append("ManaPlus.app/Contents/Resources/locale/")).c_str()); -#else // __APPLE__ - - bindTextDomain(LOCALEDIR); -#endif // __APPLE__ -#endif // ENABLE_PORTABLE -#endif // ANDROID -#endif // WIN32 - - char *locale = setlocale(LC_MESSAGES, lang.c_str()); - if (locale) - { - logger->log("locale: %s", locale); - } - else - { - locale = setlocale(LC_MESSAGES, (lang + ".utf8").c_str()); - if (locale) - logger->log("locale: %s", locale); - else - logger->log("locale empty"); - } - bind_textdomain_codeset("manaplus", "UTF-8"); - textdomain("manaplus"); -#endif // ENABLE_NLS - -} - -void Client::bindTextDomain(const char *const path) -{ -#ifdef ENABLE_NLS - const char *const dir = bindtextdomain("manaplus", path); - if (dir) - logger->log("bindtextdomain: %s", dir); - else - logger->log("bindtextdomain failed"); -#endif -} - void Client::setEnv(const char *const name, const char *const value) { if (!name || !value) |