Changed: unsupported language code default fallback

--HG--
branch : patches-from-atys
Inky 6 years ago
parent 41c3d0cbe0
commit 4baed9c664

@ -2029,30 +2029,43 @@ void CClientConfig::init(const string &configFileName)
// now we can continue loading and parsing the config file
// if the config file will be modified, it calls automatically the function setValuesOnFileChange()
ClientCfg.ConfigFile.setCallback (CClientConfig::setValuesOnFileChange);
// load the config files
ClientCfg.ConfigFile.load (configFileName);
CConfigFile::CVar *pCV;
// check language code is supported
pCV = ClientCfg.ConfigFile.getVarPtr("LanguageCode");
if (pCV)
{
std::string lang = pCV->asString();
if (!CI18N::isLanguageCodeSupported(lang))
{
nlinfo("Unsupported language code \"%s\" fallback on default", lang.c_str());
// fallback to default language
ClientCfg.LanguageCode = CI18N::getSystemLanguageCode();
// update ConfigFile variable
pCV->setAsString(ClientCfg.LanguageCode);
ClientCfg.ConfigFile.save();
}
}
// update the ConfigFile variable in the config file
CConfigFile::CVar *varPtr = ClientCfg.ConfigFile.getVarPtr ("ClientVersion");
if (varPtr)
pCV = ClientCfg.ConfigFile.getVarPtr("ClientVersion");
if (pCV)
{
string str = varPtr->asString ();
std::string str = pCV->asString ();
if (str != getVersion() && ClientCfg.SaveConfig)
{
nlinfo ("Update and save the ClientVersion variable in config file %s -> %s", str.c_str(), getVersion().c_str());
varPtr->setAsString (getVersion());
ClientCfg.ConfigFile.save ();
pCV->setAsString(getVersion());
ClientCfg.ConfigFile.save();
}
}
else
{
nlwarning ("There's no ClientVersion variable in the config file!");
}
}// init //

Loading…
Cancel
Save