allow language toggle to switch faction names in menus
This commit is contained in:
parent
958872cacf
commit
c04a73017c
|
@ -819,6 +819,8 @@ void MenuStateCustomGame::reloadUI() {
|
||||||
|
|
||||||
labelScenario.setText(lang.getString("Scenario"));
|
labelScenario.setText(lang.getString("Scenario"));
|
||||||
|
|
||||||
|
reloadFactions(true,(checkBoxScenario.getValue() == true ? scenarioFiles[listBoxScenario.getSelectedItemIndex()] : ""));
|
||||||
|
|
||||||
// write hint to console:
|
// write hint to console:
|
||||||
Config &configKeys = Config::getInstance(std::pair<ConfigType,ConfigType>(cfgMainKeys,cfgUserKeys));
|
Config &configKeys = Config::getInstance(std::pair<ConfigType,ConfigType>(cfgMainKeys,cfgUserKeys));
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ void FactionType::load(const string &factionName, const TechTree *techTree, Chec
|
||||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
|
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
|
||||||
|
|
||||||
string techTreePath = techTree->getPath();
|
string techTreePath = techTree->getPath();
|
||||||
string techTreeName=techTree->getName();
|
string techTreeName=techTree->getNameUntranslated();
|
||||||
string currentPath = "";
|
string currentPath = "";
|
||||||
|
|
||||||
//open xml file
|
//open xml file
|
||||||
|
|
|
@ -45,17 +45,26 @@ TechTree::TechTree(const vector<string> pathList) {
|
||||||
attackTypes.clear();
|
attackTypes.clear();
|
||||||
translatedTechNames.clear();
|
translatedTechNames.clear();
|
||||||
translatedTechFactionNames.clear();
|
translatedTechFactionNames.clear();
|
||||||
|
languageUsedForCache = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
string TechTree::getName(bool translatedValue) const {
|
string TechTree::getNameUntranslated() const {
|
||||||
if(translatedValue == false) return name;
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
string TechTree::getName(bool translatedValue) {
|
||||||
|
if(translatedValue == false) {
|
||||||
|
return getNameUntranslated();
|
||||||
|
}
|
||||||
|
|
||||||
Lang &lang = Lang::getInstance();
|
Lang &lang = Lang::getInstance();
|
||||||
if(lang.getTechNameLoaded() != name) {
|
if(lang.getTechNameLoaded() != name ||
|
||||||
|
lang.getLanguage() != languageUsedForCache) {
|
||||||
//printf("Line: %d Tech [%s]\n",__LINE__,name.c_str());
|
//printf("Line: %d Tech [%s]\n",__LINE__,name.c_str());
|
||||||
|
|
||||||
lang.loadTechTreeStrings(name,false);
|
lang.loadTechTreeStrings(name,lang.getLanguage() != languageUsedForCache);
|
||||||
//translatedTechFactionNames.erase(name);
|
languageUsedForCache = lang.getLanguage();
|
||||||
|
translatedTechFactionNames.erase(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
return lang.getTechTreeString("TechTreeName",name.c_str());
|
return lang.getTechTreeString("TechTreeName",name.c_str());
|
||||||
|
@ -66,8 +75,10 @@ string TechTree::getTranslatedName(string techName, bool forceLoad, bool forceTe
|
||||||
|
|
||||||
//printf("Line: %d Tech [%s] forceLoad = %d forceTechtreeActiveFile = %d\n",__LINE__,techName.c_str(),forceLoad,forceTechtreeActiveFile);
|
//printf("Line: %d Tech [%s] forceLoad = %d forceTechtreeActiveFile = %d\n",__LINE__,techName.c_str(),forceLoad,forceTechtreeActiveFile);
|
||||||
|
|
||||||
|
Lang &lang = Lang::getInstance();
|
||||||
if(forceTechtreeActiveFile == false &&
|
if(forceTechtreeActiveFile == false &&
|
||||||
translatedTechNames.find(techName) != translatedTechNames.end()) {
|
translatedTechNames.find(techName) != translatedTechNames.end() &&
|
||||||
|
lang.getLanguage() != languageUsedForCache) {
|
||||||
result = translatedTechNames[techName];
|
result = translatedTechNames[techName];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -79,8 +90,8 @@ string TechTree::getTranslatedName(string techName, bool forceLoad, bool forceTe
|
||||||
treePath = currentPath;
|
treePath = currentPath;
|
||||||
name= lastDir(currentPath);
|
name= lastDir(currentPath);
|
||||||
|
|
||||||
Lang &lang = Lang::getInstance();
|
lang.loadTechTreeStrings(name,lang.getLanguage() != languageUsedForCache);
|
||||||
lang.loadTechTreeStrings(name,forceLoad);
|
languageUsedForCache = lang.getLanguage();
|
||||||
|
|
||||||
translatedTechFactionNames.erase(name);
|
translatedTechFactionNames.erase(name);
|
||||||
|
|
||||||
|
@ -97,10 +108,13 @@ string TechTree::getTranslatedFactionName(string techName, string factionName) {
|
||||||
//printf("Line: %d Tech [%s] name [%s] factionName [%s]\n",__LINE__,techName.c_str(),name.c_str(),factionName.c_str());
|
//printf("Line: %d Tech [%s] name [%s] factionName [%s]\n",__LINE__,techName.c_str(),name.c_str(),factionName.c_str());
|
||||||
|
|
||||||
Lang &lang = Lang::getInstance();
|
Lang &lang = Lang::getInstance();
|
||||||
if(lang.getTechNameLoaded() != techName) {
|
if(lang.getTechNameLoaded() != techName ||
|
||||||
|
lang.getLanguage() != languageUsedForCache) {
|
||||||
//printf("Line: %d Tech [%s] name [%s] lang.getTechNameLoaded() [%s] factionName [%s]\n",__LINE__,techName.c_str(),name.c_str(),lang.getTechNameLoaded().c_str(),factionName.c_str());
|
//printf("Line: %d Tech [%s] name [%s] lang.getTechNameLoaded() [%s] factionName [%s]\n",__LINE__,techName.c_str(),name.c_str(),lang.getTechNameLoaded().c_str(),factionName.c_str());
|
||||||
|
|
||||||
lang.loadTechTreeStrings(techName,false);
|
lang.loadTechTreeStrings(techName,lang.getLanguage() != languageUsedForCache);
|
||||||
|
languageUsedForCache = lang.getLanguage();
|
||||||
|
|
||||||
translatedTechFactionNames.erase(techName);
|
translatedTechFactionNames.erase(techName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -172,6 +186,7 @@ void TechTree::load(const string &dir, set<string> &factions, Checksum* checksum
|
||||||
|
|
||||||
Lang &lang = Lang::getInstance();
|
Lang &lang = Lang::getInstance();
|
||||||
lang.loadTechTreeStrings(name, true);
|
lang.loadTechTreeStrings(name, true);
|
||||||
|
languageUsedForCache = lang.getLanguage();
|
||||||
|
|
||||||
char szBuf[8096]="";
|
char szBuf[8096]="";
|
||||||
snprintf(szBuf,8096,Lang::getInstance().getString("LogScreenGameLoadingTechtree","",true).c_str(),formatString(getName(true)).c_str());
|
snprintf(szBuf,8096,Lang::getInstance().getString("LogScreenGameLoadingTechtree","",true).c_str(),formatString(getName(true)).c_str());
|
||||||
|
|
|
@ -53,6 +53,7 @@ private:
|
||||||
DamageMultiplierTable damageMultiplierTable;
|
DamageMultiplierTable damageMultiplierTable;
|
||||||
Checksum checksumValue;
|
Checksum checksumValue;
|
||||||
|
|
||||||
|
string languageUsedForCache;
|
||||||
std::map<string,string> translatedTechNames;
|
std::map<string,string> translatedTechNames;
|
||||||
std::map<string,std::map<string,string> > translatedTechFactionNames;
|
std::map<string,std::map<string,string> > translatedTechFactionNames;
|
||||||
|
|
||||||
|
@ -73,7 +74,8 @@ public:
|
||||||
int getTypeCount() const {return factionTypes.size();}
|
int getTypeCount() const {return factionTypes.size();}
|
||||||
const FactionType *getType(int i) const {return &factionTypes[i];}
|
const FactionType *getType(int i) const {return &factionTypes[i];}
|
||||||
const ResourceType *getResourceType(int i) const {return &resourceTypes[i];}
|
const ResourceType *getResourceType(int i) const {return &resourceTypes[i];}
|
||||||
string getName(bool translatedValue=false) const;
|
string getName(bool translatedValue=false);
|
||||||
|
string getNameUntranslated() const;
|
||||||
|
|
||||||
string getTranslatedName(string techName, bool forceLoad=false, bool forceTechtreeActiveFile=false);
|
string getTranslatedName(string techName, bool forceLoad=false, bool forceTechtreeActiveFile=false);
|
||||||
string getTranslatedFactionName(string techName, string factionName);
|
string getTranslatedFactionName(string techName, string factionName);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user