From 13dc76b540a0fa9bd62e3e996dd707b610e792e5 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 29 May 2014 14:49:32 +0300 Subject: Move gettext related methods into separate file. --- src/client.cpp | 77 ++-------------------------------------------------------- 1 file changed, 2 insertions(+), 75 deletions(-) (limited to 'src/client.cpp') 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(("LANG=" + lang).c_str())); - putenv(const_cast(("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) -- cgit v1.2.3-70-g09d2