summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDidier Raboud <odyx@debian.org>2012-12-28 22:31:47 +0100
committerDidier Raboud <odyx@debian.org>2012-12-28 22:31:47 +0100
commitf4c6f49b2fd01de2d6daff5ec1b9c181c39d09b7 (patch)
tree7ddb32243c2c299d2815bec6f325801328573166
parent3e4c1a1ad88456ebf201b257b91847bd995c8773 (diff)
downloadcolobot-f4c6f49b2fd01de2d6daff5ec1b9c181c39d09b7.tar.gz
colobot-f4c6f49b2fd01de2d6daff5ec1b9c181c39d09b7.tar.bz2
colobot-f4c6f49b2fd01de2d6daff5ec1b9c181c39d09b7.zip
Move language initialisation in SetLanguage
-rw-r--r--src/app/app.cpp90
1 files changed, 48 insertions, 42 deletions
diff --git a/src/app/app.cpp b/src/app/app.cpp
index 4d32de3..32f68e1 100644
--- a/src/app/app.cpp
+++ b/src/app/app.cpp
@@ -285,48 +285,7 @@ bool CApplication::Create()
return false;
}
- /* Gettext initialization */
-
- std::string locale = "";
- switch (m_language)
- {
- default:
- case LANGUAGE_ENV:
- locale = "";
- break;
-
- case LANGUAGE_ENGLISH:
- locale = "en_US.utf8";
- break;
-
- case LANGUAGE_GERMAN:
- locale = "de_DE.utf8";
- break;
-
- case LANGUAGE_FRENCH:
- locale = "fr_FR.utf8";
- break;
-
- case LANGUAGE_POLISH:
- locale = "pl_PL.utf8";
- break;
- }
-
- if (!locale.empty())
- {
- std::string langStr = "LANG=";
- langStr += locale;
- strcpy(S_LANGUAGE, langStr.c_str());
- putenv(S_LANGUAGE);
- }
- setlocale(LC_ALL, "");
- GetLogger()->Debug("Set locale to '%s'\n", locale.c_str());
-
- bindtextdomain("colobot", COLOBOT_I18N_DIR);
- bind_textdomain_codeset("colobot", "UTF-8");
- textdomain("colobot");
-
- GetLogger()->Debug("Testing gettext translation: '%s'\n", gettext("Colobot rules!"));
+ SetLanguage(m_language);
//Create the sound instance.
if (!GetProfile().InitCurrentDirectory())
@@ -1456,6 +1415,53 @@ Language CApplication::GetLanguage()
void CApplication::SetLanguage(Language language)
{
m_language = language;
+
+ /* Gettext initialization */
+
+ std::string locale = "";
+ switch (m_language)
+ {
+ default:
+ case LANGUAGE_ENV:
+ locale = "";
+ break;
+
+ case LANGUAGE_ENGLISH:
+ locale = "en_US.utf8";
+ break;
+
+ case LANGUAGE_GERMAN:
+ locale = "de_DE.utf8";
+ break;
+
+ case LANGUAGE_FRENCH:
+ locale = "fr_FR.utf8";
+ break;
+
+ case LANGUAGE_POLISH:
+ locale = "pl_PL.utf8";
+ break;
+ }
+
+ if (locale.empty())
+ {
+ GetLogger()->Trace("SetLanguage: Inherit LANGUAGE=%s from environment\n", getenv("LANGUAGE"));
+ }
+ else
+ {
+ std::string langStr = "LANGUAGE=";
+ langStr += locale;
+ strcpy(S_LANGUAGE, langStr.c_str());
+ putenv(S_LANGUAGE);
+ GetLogger()->Trace("SetLanguage: Set LANGUAGE=%s in environment\n", locale.c_str());
+ }
+ setlocale(LC_ALL, "");
+
+ bindtextdomain("colobot", COLOBOT_I18N_DIR);
+ bind_textdomain_codeset("colobot", "UTF-8");
+ textdomain("colobot");
+
+ GetLogger()->Debug("SetLanguage: Test gettext translation: '%s'\n", gettext("Colobot rules!"));
}
void CApplication::SetLowCPU(bool low)