Move language initialisation in SetLanguage
parent
3e4c1a1ad8
commit
f4c6f49b2f
|
@ -285,48 +285,7 @@ bool CApplication::Create()
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Gettext initialization */
|
SetLanguage(m_language);
|
||||||
|
|
||||||
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!"));
|
|
||||||
|
|
||||||
//Create the sound instance.
|
//Create the sound instance.
|
||||||
if (!GetProfile().InitCurrentDirectory())
|
if (!GetProfile().InitCurrentDirectory())
|
||||||
|
@ -1456,6 +1415,53 @@ Language CApplication::GetLanguage()
|
||||||
void CApplication::SetLanguage(Language language)
|
void CApplication::SetLanguage(Language language)
|
||||||
{
|
{
|
||||||
m_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)
|
void CApplication::SetLowCPU(bool low)
|
||||||
|
|
Loading…
Reference in New Issue