mirror of
https://github.com/Sude-/lgogdownloader.git
synced 2025-02-01 21:42:31 +01:00
Galaxy: Use regex for language detection in --galaxy-install
Some builds use different language codes. It looks like all of them are in format Language-Country/Region. Added these new codes to regex in GlobalConstants::LANGUAGES. Use regular expression to detect the language instead of language code.
This commit is contained in:
parent
463a9c386e
commit
dd5714690c
@ -46,29 +46,29 @@ namespace GlobalConstants
|
||||
|
||||
const std::vector<optionsStruct> LANGUAGES =
|
||||
{
|
||||
{ LANGUAGE_EN, "en", "English" , "en|eng|english" },
|
||||
{ LANGUAGE_DE, "de", "German" , "de|deu|ger|german" },
|
||||
{ LANGUAGE_FR, "fr", "French" , "fr|fra|fre|french" },
|
||||
{ LANGUAGE_PL, "pl", "Polish" , "pl|pol|polish" },
|
||||
{ LANGUAGE_RU, "ru", "Russian" , "ru|rus|russian" },
|
||||
{ LANGUAGE_CN, "cn", "Chinese" , "cn|zh|zho|chi|chinese" },
|
||||
{ LANGUAGE_CZ, "cz", "Czech" , "cz|cs|ces|cze|czech" },
|
||||
{ LANGUAGE_ES, "es", "Spanish" , "es|spa|spanish" },
|
||||
{ LANGUAGE_HU, "hu", "Hungarian" , "hu|hun|hungarian" },
|
||||
{ LANGUAGE_IT, "it", "Italian" , "it|ita|italian" },
|
||||
{ LANGUAGE_JP, "jp", "Japanese" , "jp|ja|jpn|japanese" },
|
||||
{ LANGUAGE_TR, "tr", "Turkish" , "tr|tur|turkish" },
|
||||
{ LANGUAGE_PT, "pt", "Portuguese", "pt|por|portuguese" },
|
||||
{ LANGUAGE_KO, "ko", "Korean" , "ko|kor|korean" },
|
||||
{ LANGUAGE_NL, "nl", "Dutch" , "nl|nld|dut|dutch" },
|
||||
{ LANGUAGE_SV, "sv", "Swedish" , "sv|swe|swedish" },
|
||||
{ LANGUAGE_NO, "no", "Norwegian" , "no|nor|norwegian" },
|
||||
{ LANGUAGE_DA, "da", "Danish" , "da|dan|danish" },
|
||||
{ LANGUAGE_FI, "fi", "Finnish" , "fi|fin|finnish" },
|
||||
{ LANGUAGE_EN, "en", "English", "en|eng|english|en[_-]US" },
|
||||
{ LANGUAGE_DE, "de", "German", "de|deu|ger|german|de[_-]DE" },
|
||||
{ LANGUAGE_FR, "fr", "French", "fr|fra|fre|french|fr[_-]FR" },
|
||||
{ LANGUAGE_PL, "pl", "Polish", "pl|pol|polish|pl[_-]PL" },
|
||||
{ LANGUAGE_RU, "ru", "Russian", "ru|rus|russian|ru[_-]RU" },
|
||||
{ LANGUAGE_CN, "cn", "Chinese", "cn|zh|zho|chi|chinese|zh[_-]CN" },
|
||||
{ LANGUAGE_CZ, "cz", "Czech", "cz|cs|ces|cze|czech|cs[_-]CZ" },
|
||||
{ LANGUAGE_ES, "es", "Spanish", "es|spa|spanish|es[_-]ES" },
|
||||
{ LANGUAGE_HU, "hu", "Hungarian", "hu|hun|hungarian|hu[_-]HU" },
|
||||
{ LANGUAGE_IT, "it", "Italian", "it|ita|italian|it[_-]IT" },
|
||||
{ LANGUAGE_JP, "jp", "Japanese", "jp|ja|jpn|japanese|ja[_-]JP" },
|
||||
{ LANGUAGE_TR, "tr", "Turkish", "tr|tur|turkish|tr[_-]TR" },
|
||||
{ LANGUAGE_PT, "pt", "Portuguese", "pt|por|portuguese|pt[_-]PT" },
|
||||
{ LANGUAGE_KO, "ko", "Korean", "ko|kor|korean|ko[_-]KR" },
|
||||
{ LANGUAGE_NL, "nl", "Dutch", "nl|nld|dut|dutch|nl[_-]NL" },
|
||||
{ LANGUAGE_SV, "sv", "Swedish", "sv|swe|swedish|sv[_-]SE" },
|
||||
{ LANGUAGE_NO, "no", "Norwegian", "no|nor|norwegian|nb[_-]no|nn[_-]NO" },
|
||||
{ LANGUAGE_DA, "da", "Danish", "da|dan|danish|da[_-]DK" },
|
||||
{ LANGUAGE_FI, "fi", "Finnish", "fi|fin|finnish|fi[_-]FI" },
|
||||
{ LANGUAGE_PT_BR, "br", "Brazilian Portuguese", "br|pt_br|pt-br|ptbr|brazilian_portuguese" },
|
||||
{ LANGUAGE_SK, "sk", "Slovak" , "sk|slk|slo|slovak" },
|
||||
{ LANGUAGE_BL, "bl", "Bulgarian" , "bl|bg|bul|bulgarian" },
|
||||
{ LANGUAGE_UK, "uk", "Ukrainian" , "uk|ukr|ukrainian" },
|
||||
{ LANGUAGE_SK, "sk", "Slovak", "sk|slk|slo|slovak|sk[_-]SK" },
|
||||
{ LANGUAGE_BL, "bl", "Bulgarian", "bl|bg|bul|bulgarian|bg[_-]BG" },
|
||||
{ LANGUAGE_UK, "uk", "Ukrainian", "uk|ukr|ukrainian|uk[_-]UA" },
|
||||
{ LANGUAGE_ES_419, "es_mx", "Spanish (Latin American)", "es_mx|es-mx|esmx|es-419|spanish_latin_american" }
|
||||
};
|
||||
|
||||
|
@ -3282,13 +3282,13 @@ void Downloader::galaxyInstallGame(const std::string& product_id, int build_inde
|
||||
else
|
||||
sPlatform = "windows";
|
||||
|
||||
std::string sLanguage = "en";
|
||||
std::string sLanguageRegex = "en|eng|english|en[_-]US";
|
||||
unsigned int iLanguage = Globals::globalConfig.dlConf.iGalaxyLanguage;
|
||||
for (unsigned int i = 0; i < GlobalConstants::LANGUAGES.size(); ++i)
|
||||
{
|
||||
if (GlobalConstants::LANGUAGES[i].id == iLanguage)
|
||||
{
|
||||
sLanguage = GlobalConstants::LANGUAGES[i].code;
|
||||
sLanguageRegex = GlobalConstants::LANGUAGES[i].regexp;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -3340,10 +3340,12 @@ void Downloader::galaxyInstallGame(const std::string& product_id, int build_inde
|
||||
{
|
||||
bool bSelectedLanguage = false;
|
||||
bool bSelectedArch = false;
|
||||
boost::regex language_re("^(" + sLanguageRegex + ")$", boost::regex::perl | boost::regex::icase);
|
||||
boost::match_results<std::string::const_iterator> what;
|
||||
for (unsigned int j = 0; j < json["depots"][i]["languages"].size(); ++j)
|
||||
{
|
||||
std::string language = json["depots"][i]["languages"][j].asString();
|
||||
if (language == "*" || language == sLanguage)
|
||||
if (language == "*" || boost::regex_search(language, what, language_re))
|
||||
bSelectedLanguage = true;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user