summaryrefslogtreecommitdiff
path: root/src/client.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-05-29 14:49:32 +0300
committerAndrei Karas <akaras@inbox.ru>2014-05-29 14:49:32 +0300
commit13dc76b540a0fa9bd62e3e996dd707b610e792e5 (patch)
tree4df2df7e40621dffb8d39c64f59c25b77bc93fd7 /src/client.cpp
parentae8cfcf50b00e88f6722f3b5f461b6081479a1ac (diff)
downloadmanaplus-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.cpp77
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)