mirror of
https://github.com/vcmi/vcmi.git
synced 2025-11-25 22:42:04 +02:00
Add simple support for translation of strings that were changed by
another mod
This commit is contained in:
@@ -401,6 +401,21 @@ CModVersion CModHandler::getModVersion(TModID modName) const
|
||||
return {};
|
||||
}
|
||||
|
||||
static JsonNode loadReferencesList(const JsonNode & source)
|
||||
{
|
||||
if (source.isVector())
|
||||
{
|
||||
auto configList = source.convertTo<std::vector<std::string> >();
|
||||
JsonNode result = JsonUtils::assembleFromFiles(configList);
|
||||
|
||||
return result;
|
||||
}
|
||||
else
|
||||
{
|
||||
return source;
|
||||
}
|
||||
}
|
||||
|
||||
void CModHandler::loadTranslation(const TModID & modName)
|
||||
{
|
||||
const auto & mod = allMods[modName];
|
||||
@@ -408,11 +423,8 @@ void CModHandler::loadTranslation(const TModID & modName)
|
||||
std::string preferredLanguage = VLC->generaltexth->getPreferredLanguage();
|
||||
std::string modBaseLanguage = allMods[modName].baseLanguage;
|
||||
|
||||
auto baseTranslationList = mod.config["translations"].convertTo<std::vector<std::string> >();
|
||||
auto extraTranslationList = mod.config[preferredLanguage]["translations"].convertTo<std::vector<std::string> >();
|
||||
|
||||
JsonNode baseTranslation = JsonUtils::assembleFromFiles(baseTranslationList);
|
||||
JsonNode extraTranslation = JsonUtils::assembleFromFiles(extraTranslationList);
|
||||
JsonNode baseTranslation = loadReferencesList(mod.config["translations"]);
|
||||
JsonNode extraTranslation = loadReferencesList(mod.config[preferredLanguage]["translations"]);
|
||||
|
||||
VLC->generaltexth->loadTranslationOverrides(modName, baseTranslation);
|
||||
VLC->generaltexth->loadTranslationOverrides(modName, extraTranslation);
|
||||
|
||||
Reference in New Issue
Block a user