[Scummvm-git-logs] scummvm master -> 5ef779357869006284385e5a1efb632cfa81aada

sev- sev at scummvm.org
Thu Nov 11 11:06:21 UTC 2021


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
c740f96f63 COMMON: Normalize and document language maintenance
6e1135ee8a ENGINES: Revise language constants to ISO standards
5ef7793578 COMMON: Return updated language from obsolete code


Commit: c740f96f6338b8d1528e0f85996d6447d76bc97d
    https://github.com/scummvm/scummvm/commit/c740f96f6338b8d1528e0f85996d6447d76bc97d
Author: trembyle (sean.patrick.brody at gmail.com)
Date: 2021-11-11T12:06:15+01:00

Commit Message:
COMMON: Normalize and document language maintenance

* Add documentation to add or maintain language values
* Fix and reorder existing entries to match ISO standards

Changed paths:
    common/language.cpp
    common/language.h
    devtools/create_kyradat/create_kyradat.cpp
    devtools/create_kyradat/games.cpp
    devtools/create_kyradat/resources.cpp
    engines/advancedDetector.cpp
    engines/bladerunner/detection_tables.h
    engines/director/detection_tables.h
    engines/kyra/detection_tables.h
    engines/kyra/engine/kyra_mr.cpp
    engines/kyra/engine/kyra_v2.cpp
    engines/kyra/gui/gui_v1.cpp
    engines/kyra/gui/gui_v2.cpp
    engines/kyra/resource/staticres.cpp
    engines/myst3/detection.cpp
    engines/pink/objects/actions/action_text.cpp
    engines/scumm/charset.h
    engines/scumm/detection_internal.h
    engines/scumm/dialogs.cpp
    engines/scumm/smush/smush_font.h
    engines/scumm/string.cpp
    engines/twine/detection.cpp
    engines/wintermute/detection_tables.h
    gui/ThemeEngine.cpp


diff --git a/common/language.cpp b/common/language.cpp
index 67b27495da..c54b327e6d 100644
--- a/common/language.cpp
+++ b/common/language.cpp
@@ -26,44 +26,69 @@
 
 namespace Common {
 
+/*
+	Entries should be sorted by English name of language
+
+	Explanation of language parameters:
+		1. two character macro language (use ISO-639 standard)
+		2. POSIX locale code
+		3. English name of language
+		4. two character language code followed by three character locale (use ISO-3166)
+
+	If more than one dialect or locale is needed:
+		1. two character locale (use ISO-3166 standard)
+		2. POSIX locale code
+		3. English name of language with locale/dialect name in parens
+		4. two character language code followed by three character locale (use ISO-3166)
+
+	If necessary, add entry for generic dialect
+		1. two character macro language (use ISO-639 standard)
+		2. repeat two character macro language
+		3. English name of language
+		4. two character language code followed by ANY
+
+	Additional notes:
+		* ZH_CHN (Hans 500) used for mainland China, Singapore, Malaysia
+		* ZH_TWN (Hant 502) used for Taiwan, Hong Kong, Macau, Philippines
+*/
+
 const LanguageDescription g_languages[] = {
-	{    "ar",    "ar", "Arabic", AR_ARB }, // Modern Standard Arabic
-	{    "ca", "ca_ES", "Catalan", CA_ESP },
-	{    "nz",    "nz", "Chinese", ZH_ANY }, // Generic Chinese (when only one game version exist)
-	{ "zh-cn", "zh_CN", "Chinese (China)", ZH_CNA },
-	{    "zh", "zh_TW", "Chinese (Taiwan)", ZH_TWN },
-	{    "hr", "hr_HR", "Croatian", HR_HRV },
-	{    "cz", "cs_CZ", "Czech", CZ_CZE },
-	{    "da",    "da", "Danish", DA_DAN },
-	{    "nl", "nl_NL", "Dutch", NL_NLD },
-	{    "en",    "en", "English", EN_ANY }, // Generic English (when only one game version exist)
-	{    "gb", "en_GB", "English (GB)", EN_GRB },
-	{    "us", "en_US", "English (US)", EN_USA },
-	{    "et", "et_EE", "Estonian", ET_EST },
-	{    "fi", "fi_FI", "Finnish", FI_FIN },
-	{    "vl", "nl_BE", "Flemish", NL_BEL },
-	{    "fr", "fr_FR", "French", FR_FRA },
-	{    "de", "de_DE", "German", DE_DEU },
-	{    "gr", "el_GR", "Greek", GR_GRE },
-	{    "he", "he_IL", "Hebrew", HE_ISR },
-	{    "hb", "he_IL", "Hebrew", HE_ISR }, // Deprecated
-	{    "hu", "hu_HU", "Hungarian", HU_HUN },
-	{    "it", "it_IT", "Italian", IT_ITA },
-	{    "jp", "ja_JP", "Japanese", JA_JPN },
-	{    "kr", "ko_KR", "Korean", KO_KOR },
-	{    "lv", "lv_LV", "Latvian", LV_LAT },
-	{    "nb", "nb_NO", "Norwegian Bokm\xC3\xA5l", NB_NOR },
-	{    "fa", "fa_IR", "Persian", FA_IRN },
-	{    "pl", "pl_PL", "Polish", PL_POL },
-	{    "br", "pt_BR", "Portuguese (Brazil)", PT_BRA },
-	{    "pt", "pt_PT", "Portuguese (Portugal)", PT_POR },
-	{    "ru", "ru_RU", "Russian", RU_RUS },
-	{    "sr", "sr_SP", "Serbian", SR_SER },
-	{    "sk", "sk_SK", "Slovak", SK_SVK },
-	{    "es", "es_ES", "Spanish", ES_ESP },
-	{    "se", "sv_SE", "Swedish", SE_SWE },
-	{    "tr", "tr_TR", "Turkish", TR_TUR },
-	{    "uk", "uk_UA", "Ukrainian", UA_UKR },
+	{ "ar",    "ar", "Arabic", AR_ARB }, // Modern Standard Arabic
+	{ "ca", "ca_ES", "Catalan", CA_ESP },
+	{ "zh",    "zh", "Chinese", ZH_ANY }, // Generic Chinese (when only one game version exist)
+	{ "cn", "zh_CN", "Chinese (Simplified)", ZH_CHN },
+	{ "tw", "zh_TW", "Chinese (Traditional)", ZH_TWN },
+	{ "hr", "hr_HR", "Croatian", HR_HRV },
+	{ "cz", "cs_CZ", "Czech", CZ_CZE },
+	{ "da", "da_DK", "Danish", DA_DNK },
+	{ "nl", "nl_NL", "Dutch", NL_NLD },
+	{ "en",    "en", "English", EN_ANY }, // Generic English (when only one game version exist)
+	{ "gb", "en_GB", "English (GB)", EN_GRB },
+	{ "us", "en_US", "English (US)", EN_USA },
+	{ "et", "et_EE", "Estonian", ET_EST },
+	{ "fi", "fi_FI", "Finnish", FI_FIN },
+	{ "be", "nl_BE", "Flemish", NL_BEL },
+	{ "fr", "fr_FR", "French", FR_FRA },
+	{ "de", "de_DE", "German", DE_DEU },
+	{ "el", "el_GR", "Greek", EL_GRC },
+	{ "he", "he_IL", "Hebrew", HE_ISR },
+	{ "hu", "hu_HU", "Hungarian", HU_HUN },
+	{ "it", "it_IT", "Italian", IT_ITA },
+	{ "ja", "ja_JP", "Japanese", JA_JPN },
+	{ "ko", "ko_KR", "Korean", KO_KOR },
+	{ "lv", "lv_LV", "Latvian", LV_LVA },
+	{ "nb", "nb_NO", "Norwegian (Bokm\xC3\xA5l)", NB_NOR },
+	{ "fa", "fa_IR", "Persian", FA_IRN },
+	{ "pl", "pl_PL", "Polish", PL_POL },
+	{ "br", "pt_BR", "Portuguese (Brazil)", PT_BRA },
+	{ "pt", "pt_PT", "Portuguese (Portugal)", PT_PRT },
+	{ "ru", "ru_RU", "Russian", RU_RUS },
+	{ "sr", "sr_RS", "Serbian", SR_SRB },
+	{ "sk", "sk_SK", "Slovak", SK_SVK },
+	{ "es", "es_ES", "Spanish", ES_ESP },
+	{ "se", "sv_SE", "Swedish", SE_SWE },
+	{ "tr", "tr_TR", "Turkish", TR_TUR },
+	{ "uk", "uk_UA", "Ukrainian", UA_UKR },
 	{ nullptr, nullptr, nullptr, UNK_LANG }
 };
 
diff --git a/common/language.h b/common/language.h
index fdc6493d5c..ef71ae14c2 100644
--- a/common/language.h
+++ b/common/language.h
@@ -46,38 +46,38 @@ enum Language {
 	AR_ARB,
 	CA_ESP,
 	CZ_CZE,
-	DA_DAN,
+	DA_DNK,
 	DE_DEU,
+	EL_GRC,
 	EN_ANY,     // Generic English (when only one game version exist)
 	EN_GRB,
 	EN_USA,
 	ES_ESP,
 	ET_EST,
-	FI_FIN,
 	FA_IRN,
+	FI_FIN,
 	FR_FRA,
-	GR_GRE,
 	HE_ISR,
 	HR_HRV,
 	HU_HUN,
 	IT_ITA,
 	JA_JPN,
 	KO_KOR,
-	LV_LAT,
+	LV_LVA,
 	NL_BEL,
 	NL_NLD,
 	NB_NOR,
 	PL_POL,
 	PT_BRA,
-	PT_POR,
+	PT_PRT,
 	RU_RUS,
 	SE_SWE,
 	SK_SVK,
-	SR_SER,
+	SR_SRB,
 	TR_TUR,
 	UA_UKR,
 	ZH_ANY,     // Generic Chinese (when only one game version exist)
-	ZH_CNA,
+	ZH_CHN,
 	ZH_TWN,
 
 	UNK_LANG = -1	// Use default language (i.e. none specified)
diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp
index 7cd8a3a51a..6ac12b2a60 100644
--- a/devtools/create_kyradat/create_kyradat.cpp
+++ b/devtools/create_kyradat/create_kyradat.cpp
@@ -1199,7 +1199,7 @@ const TypeTable languageTable[] = {
 	{ JA_JPN,  6 },
 	{ RU_RUS,  7 },
 	{ HE_ISR,  8 },
-	{ ZH_CNA,  9 },
+	{ ZH_CHN,  9 },
 	{ ZH_TWN, 10 },
 	{ -1, -1 }
 };
diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp
index 0432520fbd..27eb8da9be 100644
--- a/devtools/create_kyradat/games.cpp
+++ b/devtools/create_kyradat/games.cpp
@@ -99,7 +99,7 @@ const Game kyra3Games[] = {
 	{ kKyra3, kPlatformDOS, kTalkieVersion, IT_ITA },
 	{ kKyra3, kPlatformDOS, kTalkieVersion, ES_ESP },
 	{ kKyra3, kPlatformDOS, kTalkieVersion, RU_RUS },
-	{ kKyra3, kPlatformDOS, kTalkieVersion, ZH_CNA },
+	{ kKyra3, kPlatformDOS, kTalkieVersion, ZH_CHN },
 	{ kKyra3, kPlatformDOS, kTalkieVersion, ZH_TWN },
 
 	GAME_DUMMY_ENTRY
diff --git a/devtools/create_kyradat/resources.cpp b/devtools/create_kyradat/resources.cpp
index 145a8b4ee7..ea13d5e86b 100644
--- a/devtools/create_kyradat/resources.cpp
+++ b/devtools/create_kyradat/resources.cpp
@@ -1022,7 +1022,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ k3MainMenuStrings, kKyra3, kPlatformDOS, kTalkieVersion, IT_ITA, &k3MainMenuStringsDOSCDItalianProvider },
 	{ k3MainMenuStrings, kKyra3, kPlatformDOS, kTalkieVersion, ES_ESP, &k3MainMenuStringsDOSCDSpanishProvider },
 	{ k3MainMenuStrings, kKyra3, kPlatformDOS, kTalkieVersion, RU_RUS, &k3MainMenuStringsDOSCDRussianProvider },
-	{ k3MainMenuStrings, kKyra3, kPlatformDOS, kTalkieVersion, ZH_CNA, &k3MainMenuStringsDOSCDChineseSmplProvider },
+	{ k3MainMenuStrings, kKyra3, kPlatformDOS, kTalkieVersion, ZH_CHN, &k3MainMenuStringsDOSCDChineseSmplProvider },
 	{ k3MainMenuStrings, kKyra3, kPlatformDOS, kTalkieVersion, ZH_TWN, &k3MainMenuStringsDOSCDChineseTradProvider },
 	{ k3MusicFiles, kKyra3, kPlatformDOS, kTalkieVersion, UNK_LANG, &k3MusicFilesDOSCDProvider },
 	{ k3ScoreTable, kKyra3, kPlatformDOS, kTalkieVersion, UNK_LANG, &k3ScoreTableDOSCDProvider },
@@ -1037,7 +1037,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ k3FontData, kKyra3, kPlatformDOS, kTalkieVersion, IT_ITA, &k3DummyDataDOSCDProvider },
 	{ k3FontData, kKyra3, kPlatformDOS, kTalkieVersion, ES_ESP, &k3DummyDataDOSCDProvider },
 	{ k3FontData, kKyra3, kPlatformDOS, kTalkieVersion, RU_RUS, &k3DummyDataDOSCDProvider },
-	{ k3FontData, kKyra3, kPlatformDOS, kTalkieVersion, ZH_CNA, &k3FontDataDOSCDChineseSmplProvider },
+	{ k3FontData, kKyra3, kPlatformDOS, kTalkieVersion, ZH_CHN, &k3FontDataDOSCDChineseSmplProvider },
 	{ k3FontData, kKyra3, kPlatformDOS, kTalkieVersion, ZH_TWN, &k3FontDataDOSCDChineseTradProvider },
 	{ k3VqaSubtitlesIntro, kKyra3, kPlatformDOS, kTalkieVersion, EN_ANY, &k3VqaSubtitlesIntroDOSCDEnglishProvider },
 	{ k3VqaSubtitlesIntro, kKyra3, kPlatformDOS, kTalkieVersion, FR_FRA, &k3VqaSubtitlesIntroDOSCDFrenchProvider },
@@ -1045,7 +1045,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ k3VqaSubtitlesIntro, kKyra3, kPlatformDOS, kTalkieVersion, IT_ITA, &k3VqaSubtitlesIntroDOSCDItalianProvider },
 	{ k3VqaSubtitlesIntro, kKyra3, kPlatformDOS, kTalkieVersion, ES_ESP, &k3VqaSubtitlesIntroDOSCDSpanishProvider },
 	{ k3VqaSubtitlesIntro, kKyra3, kPlatformDOS, kTalkieVersion, RU_RUS, &k3VqaSubtitlesIntroDOSCDRussianProvider },
-	{ k3VqaSubtitlesIntro, kKyra3, kPlatformDOS, kTalkieVersion, ZH_CNA, &k3VqaSubtitlesIntroDOSCDChineseSmplProvider },
+	{ k3VqaSubtitlesIntro, kKyra3, kPlatformDOS, kTalkieVersion, ZH_CHN, &k3VqaSubtitlesIntroDOSCDChineseSmplProvider },
 	{ k3VqaSubtitlesIntro, kKyra3, kPlatformDOS, kTalkieVersion, ZH_TWN, &k3VqaSubtitlesIntroDOSCDChineseTradProvider },
 	{ k3VqaSubtitlesBoat, kKyra3, kPlatformDOS, kTalkieVersion, EN_ANY, &k3VqaSubtitlesBoatDOSCDEnglishProvider },
 	{ k3VqaSubtitlesBoat, kKyra3, kPlatformDOS, kTalkieVersion, FR_FRA, &k3VqaSubtitlesBoatDOSCDFrenchProvider },
@@ -1053,7 +1053,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ k3VqaSubtitlesBoat, kKyra3, kPlatformDOS, kTalkieVersion, IT_ITA, &k3VqaSubtitlesBoatDOSCDItalianProvider },
 	{ k3VqaSubtitlesBoat, kKyra3, kPlatformDOS, kTalkieVersion, ES_ESP, &k3VqaSubtitlesBoatDOSCDSpanishProvider },
 	{ k3VqaSubtitlesBoat, kKyra3, kPlatformDOS, kTalkieVersion, RU_RUS, &k3VqaSubtitlesBoatDOSCDRussianProvider },
-	{ k3VqaSubtitlesBoat, kKyra3, kPlatformDOS, kTalkieVersion, ZH_CNA, &k3VqaSubtitlesBoatDOSCDChineseSmplProvider },
+	{ k3VqaSubtitlesBoat, kKyra3, kPlatformDOS, kTalkieVersion, ZH_CHN, &k3VqaSubtitlesBoatDOSCDChineseSmplProvider },
 	{ k3VqaSubtitlesBoat, kKyra3, kPlatformDOS, kTalkieVersion, ZH_TWN, &k3VqaSubtitlesBoatDOSCDChineseTradProvider },
 	{ kEoBBaseNpcPresetsNames, kEoB1, kPlatformDOS, kNoSpecial, EN_ANY, &kEoB1NpcPresetsNamesDOSEnglishProvider },
 	{ kEoBBaseChargenStrings1, kEoB1, kPlatformDOS, kNoSpecial, EN_ANY, &kEoB1ChargenStrings1DOSEnglishProvider },
diff --git a/engines/advancedDetector.cpp b/engines/advancedDetector.cpp
index 945e2ecd60..2601a61193 100644
--- a/engines/advancedDetector.cpp
+++ b/engines/advancedDetector.cpp
@@ -248,7 +248,6 @@ bool AdvancedMetaEngineDetection::cleanupPirated(ADDetectedGames &matched) const
 	return false;
 }
 
-
 DetectedGames AdvancedMetaEngineDetection::detectGames(const Common::FSList &fslist) const {
 	FileMap allFiles;
 
diff --git a/engines/bladerunner/detection_tables.h b/engines/bladerunner/detection_tables.h
index a70d43d2fd..4ded09cdbb 100644
--- a/engines/bladerunner/detection_tables.h
+++ b/engines/bladerunner/detection_tables.h
@@ -129,7 +129,7 @@ static const ADGameDescription gameDescriptions[] = {
 		_s("Missing game code"), // Reason for being unsupported
 		AD_ENTRY2s("STARTUP.MIX", "c198b54a5366b88b1734bbca21d3b192", 2678672,
 				   "95blade.dll", "187f257c3183d6b0a0aee69e5cde4c76", 307200),
-		Common::ZH_CNA,
+		Common::ZH_CHN,
 		Common::kPlatformWindows,
 		ADGF_UNSUPPORTED,
 		GUIO6(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GAMEOPTION_DISABLE_STAMINA_DRAIN, GUIO_NOMIDI)
diff --git a/engines/director/detection_tables.h b/engines/director/detection_tables.h
index 0d6372c53b..4814b610d3 100644
--- a/engines/director/detection_tables.h
+++ b/engines/director/detection_tables.h
@@ -2632,7 +2632,7 @@ static const DirectorGameDescription gameDescriptions[] = {
 	WINGAME2_l("dcanyon", "", "DCANYON.EXE",		   "f5033a9fd54d41d348fa97bd13f8f088", 1050728,
 							  "00intro.Dir",		   "f6ca66b328f7fbcdd2e911273d74677c", 3777126, Common::IT_ITA, 404),
 	WINGAME2_l("dcanyon", "", "DCANYON.EXE",		   "85e7939a0c3041660defb80e0d530230", 744381,
-							  "00INTRO.DIR",		   "3621850ac727f9cf116c41143482c16c", 4044830, Common::ZH_CNA, 404),
+							  "00INTRO.DIR",		   "3621850ac727f9cf116c41143482c16c", 4044830, Common::ZH_CHN, 404),
 	WINGAME1("dcanyoncd", "", "DINO_CD.EXE",		   "5fe054ed623541a92c04f1572ecb6c5d", 3160272, 404),
 
 	// Mac executable is Derrat Sorcerumâ„¢ v1.0.3
@@ -2643,8 +2643,8 @@ static const DirectorGameDescription gameDescriptions[] = {
 	MACGAME1("devo", "", "Smart Patrol", "01be45e7241194dad07938e7059b88e3", 478506, 400),
 	WINGAME1("devo", "", "SMRTPTRL.EXE", "6030100dbff520b8763f6e98d15389d7", 741904, 400),
 
-	MACGAME1_l("digby", "", "Start Digby's Adventures", "a8e65a2268226bd59f12ebdc58a221f3", 481482, Common::ZH_CNA, 404),
-	WINGAME1_l("digby", "", "DIGBY.EXE", "adc126fbc4387e5d8e84dcd5abd33653", 684269, Common::ZH_CNA, 400),
+	MACGAME1_l("digby", "", "Start Digby's Adventures", "a8e65a2268226bd59f12ebdc58a221f3", 481482, Common::ZH_CHN, 404),
+	WINGAME1_l("digby", "", "DIGBY.EXE", "adc126fbc4387e5d8e84dcd5abd33653", 684269, Common::ZH_CHN, 400),
 
 	MACDEMO1_l("dirmacromedia", "v4.0.3J Demo", "Director 4.0 Demo", "e258089af01c8233db77039828cc83f8", 1488951, Common::JA_JPN, 403),
 
@@ -2895,11 +2895,11 @@ static const DirectorGameDescription gameDescriptions[] = {
 	// English is always available, along with one alternate language
 	// Dutch version was localized by Pride Kids Interactive of Ede, Netherlands
 	MACGAME2_l("hamsterland1", "", "Hamsterland", "bcd3c718db258701496b3c5bcb827ef2", 483774,
-								   "AIRDK",		  "f74f18a9d454db63465dac151a6b5706", 8425728, Common::DA_DAN, 400),
+								   "AIRDK",		  "f74f18a9d454db63465dac151a6b5706", 8425728, Common::DA_DNK, 400),
 	MACGAME2_l("hamsterland1", "", "Hamsterland", "bcd3c718db258701496b3c5bcb827ef2", 483774,
 								   "AIRSW",		  "ccf7c642796c5aeb9fee4c663bdd02d9", 7588992, Common::SE_SWE, 400),
 	WINGAME2_l("hamsterland1", "", "HAMSTER.EXE", "2bb6e93d9aab502f46dbf163d51eb785", 785327,
-								   "AIRDK",		  "ad98bbbd724e31a8a125e284a74d0241", 8425546, Common::DA_DAN, 400),
+								   "AIRDK",		  "ad98bbbd724e31a8a125e284a74d0241", 8425546, Common::DA_DNK, 400),
 	WINGAME2_l("hamsterland1", "", "HAMSTER.EXE", "a0d2cfdf10ec14c00338329277bc8acc", 727653,
 								   "AIRSP",		  "9b5b82d488b96b2fcf5e78ec8769e29a", 8432260, Common::ES_ESP, 400),
 	WINGAME2_l("hamsterland1", "", "HAMSTER.EXE", "11669580c1f85b8caa4cd02373e7c947", 785221,
@@ -4972,11 +4972,11 @@ static const DirectorGameDescription gameDescriptions[] = {
 
 	// Projectors on the installation disc for Swedish, Norwegian, Danish, Finnish
 	MACGAME1_l("polis1", "", "KRIPOS", "921df0a5f150a57b621baa2cace66e12", 1032653, Common::NB_NOR, 650),
-	MACGAME1_l("polis1", "", "STRISSER", "921df0a5f150a57b621baa2cace66e12", 1032653, Common::DA_DAN, 650),
+	MACGAME1_l("polis1", "", "STRISSER", "921df0a5f150a57b621baa2cace66e12", 1032653, Common::DA_DNK, 650),
 	MACGAME1_l("polis1", "", "POLIS", "921df0a5f150a57b621baa2cace66e12", 1032653, Common::SE_SWE, 650),
 	MACGAME1_l("polis1", "", "POLIISI", "921df0a5f150a57b621baa2cace66e12", 1032653, Common::FI_FIN, 650),
 	WINGAME1_l("polis1", "", "Kripos.exe", "d62438566e44826960fc16c5c23dbe43", 1514881, Common::NB_NOR, 650),
-	WINGAME1_l("polis1", "", "Strisser.exe", "d62438566e44826960fc16c5c23dbe43", 1514881, Common::DA_DAN, 650),
+	WINGAME1_l("polis1", "", "Strisser.exe", "d62438566e44826960fc16c5c23dbe43", 1514881, Common::DA_DNK, 650),
 	WINGAME1_l("polis1", "", "Polis.exe", "d62438566e44826960fc16c5c23dbe43", 1514881, Common::SE_SWE, 650),
 	WINGAME1_l("polis1", "", "Poliisi.exe", "d62438566e44826960fc16c5c23dbe43", 1514881, Common::FI_FIN, 650),
 
@@ -5150,9 +5150,9 @@ static const DirectorGameDescription gameDescriptions[] = {
 	// Later releases are D8
 	WINGAME1_l("beautyorbeast", "", "Beauty or the Beast.exe", "02b0d114c93b598c737b1c627178195c", 2190754, Common::RU_RUS, 702),
 
-	MACGAME1_l("bellini3", "", "Bellinis bikini",	   "0944b962ebb00f4b5d5149d220f8449b", 114321, Common::DA_DAN, 702),
+	MACGAME1_l("bellini3", "", "Bellinis bikini",	   "0944b962ebb00f4b5d5149d220f8449b", 114321, Common::DA_DNK, 702),
 	MACGAME1_l("bellini3", "", "Bellinin bikinit",	   "0944b962ebb00f4b5d5149d220f8449b", 114321, Common::FI_FIN, 702),
-	WINGAME1_l("bellini3", "", "Bellinis bikini.exe",  "7c18c9a6af2694156bf09ed195c1ab09", 2596204, Common::DA_DAN, 702),
+	WINGAME1_l("bellini3", "", "Bellinis bikini.exe",  "7c18c9a6af2694156bf09ed195c1ab09", 2596204, Common::DA_DNK, 702),
 	WINGAME1_l("bellini3", "", "Bellinin bikinit.exe", "7c18c9a6af2694156bf09ed195c1ab09", 2596204, Common::FI_FIN, 702),
 
 	MACGAME1_l("bibi2", "", "Spielstart",  "0944b962ebb00f4b5d5149d220f8449b", 117347, Common::DE_DEU, 702),
@@ -5458,10 +5458,10 @@ static const DirectorGameDescription gameDescriptions[] = {
 	MACDEMO1("balto2", "Trailer", "MacBolto", "08c9ea94f6469e71ae0c71987bbf6323", 155737, 850),
 	WINDEMO1("balto2", "Trailer", "Balto.exe", "c163f36141579ee374f7b4b2bddee95a", 2309044, 850),
 
-	MACGAME1_l("bamse1", "", "Spillerom", "a44511b8ff0e46b4f9c85dd1cb58d458", 199093, Common::DA_DAN, 851),
-	MACGAME1_l("bamse2", "", "Bamses egen", "a44511b8ff0e46b4f9c85dd1cb58d458", 157079, Common::DA_DAN, 851),
-	WINGAME1_l("bamse1", "", "spillerom.exe", "0c81c84ca4966313ad27d47daba44537", 2158320, Common::DA_DAN, 851),
-	WINGAME1_l("bamse2", "", "Bamsesegen.exe", "0c81c84ca4966313ad27d47daba44537", 2158340, Common::DA_DAN, 851),
+	MACGAME1_l("bamse1", "", "Spillerom", "a44511b8ff0e46b4f9c85dd1cb58d458", 199093, Common::DA_DNK, 851),
+	MACGAME1_l("bamse2", "", "Bamses egen", "a44511b8ff0e46b4f9c85dd1cb58d458", 157079, Common::DA_DNK, 851),
+	WINGAME1_l("bamse1", "", "spillerom.exe", "0c81c84ca4966313ad27d47daba44537", 2158320, Common::DA_DNK, 851),
+	WINGAME1_l("bamse2", "", "Bamsesegen.exe", "0c81c84ca4966313ad27d47daba44537", 2158340, Common::DA_DNK, 851),
 
 	MACGAME1("barbrapunzel", "", "Rapunzel", "08c9ea94f6469e71ae0c71987bbf6323", 213604, 850),
 	MACDEMO1("barbrapunzel", "Trailer", "Trailer", "08c9ea94f6469e71ae0c71987bbf6323", 155737, 850),
@@ -5714,7 +5714,7 @@ static const DirectorGameDescription gameDescriptions[] = {
 	MACGAME1_l("sethi3", "Classic OS", "Start Me OS9", "789536da81694518f494945bb161ace9", 179887, Common::DE_DEU, 851),
 	WINGAME1_l("sethi2", "", "Sethi_Incas.exe", "0c81c84ca4966313ad27d47daba44537", 2158774, Common::FR_FRA, 851),
 
-	WINGAME1_l("skeeto10", "", "mm7main.exe", "0c81c84ca4966313ad27d47daba44537", 12051446, Common::DA_DAN, 851),
+	WINGAME1_l("skeeto10", "", "mm7main.exe", "0c81c84ca4966313ad27d47daba44537", 12051446, Common::DA_DNK, 851),
 
 	// Dutch demos found on Flipper & Lopaka compilation
 	MACGAME1_l("skippy", "",     "Skippy",      "4ea5fc09f79eee6dded94dc40f303779", 197127, Common::NL_NLD, 800),
diff --git a/engines/kyra/detection_tables.h b/engines/kyra/detection_tables.h
index 5abe72a00b..79ea4b4304 100644
--- a/engines/kyra/detection_tables.h
+++ b/engines/kyra/detection_tables.h
@@ -1188,7 +1188,7 @@ const KYRAGameDescription adGameDescs[] = {
 			0,
 			AD_ENTRY2s("ONETIME.PAK", "93b4ca2847ab7cfe52188cbde2ffe561", -1,
 					   "WESTWOOD.001", "c782e09a3b80510962af1426acf5a130", -1),
-			Common::ZH_CNA,
+			Common::ZH_CHN,
 			Common::kPlatformDOS,
 			ADGF_DROPLANGUAGE,
 			GUIO5(GUIO_NOMIDI, GUIO_RENDERVGA, GAMEOPTION_KYRA3_AUDIENCE, GAMEOPTION_KYRA3_SKIP, GAMEOPTION_KYRA3_HELIUM)
@@ -1262,7 +1262,7 @@ const KYRAGameDescription adGameDescs[] = {
 				{ "AUD.PAK", 0, 0, -1 },
 				AD_LISTEND
 			},
-			Common::ZH_CNA,
+			Common::ZH_CHN,
 			Common::kPlatformDOS,
 			ADGF_DROPLANGUAGE,
 			GUIO5(GUIO_NOMIDI, GUIO_RENDERVGA, GAMEOPTION_KYRA3_AUDIENCE, GAMEOPTION_KYRA3_SKIP, GAMEOPTION_KYRA3_HELIUM)
diff --git a/engines/kyra/engine/kyra_mr.cpp b/engines/kyra/engine/kyra_mr.cpp
index 06105d4cdd..55ec5374e1 100644
--- a/engines/kyra/engine/kyra_mr.cpp
+++ b/engines/kyra/engine/kyra_mr.cpp
@@ -486,7 +486,7 @@ void KyraEngine_MR::playStudioSFX(const char *str) {
 		return;
 
 	const int strSize = strlen(str) - 1;
-	if (_flags.lang == Common::ZH_CNA || _flags.lang == Common::ZH_TWN) {
+	if (_flags.lang == Common::ZH_CHN || _flags.lang == Common::ZH_TWN) {
 		// WORKAROUND: The studio sfx is broken in the original, since it still has the
 		// check for '!' and '?' even if the language is set to Chinese. I have fixed this here...
 		if (str[strSize] != '\x80' || !(str[strSize - 1] == '\x81' || str[strSize - 1] == '\x91'))
@@ -1414,7 +1414,7 @@ void KyraEngine_MR::writeSettings() {
 		break;
 
 	case 3:
-		_flags.lang = _langIntern ? Common::ZH_TWN : Common::ZH_CNA;
+		_flags.lang = _langIntern ? Common::ZH_TWN : Common::ZH_CHN;
 		break;
 
 	default:
diff --git a/engines/kyra/engine/kyra_v2.cpp b/engines/kyra/engine/kyra_v2.cpp
index abf1dc3ebf..79e6017aff 100644
--- a/engines/kyra/engine/kyra_v2.cpp
+++ b/engines/kyra/engine/kyra_v2.cpp
@@ -101,7 +101,7 @@ KyraEngine_v2::KyraEngine_v2(OSystem *system, const GameFlags &flags, const Engi
 		_langIntern = 1;
 		// fall through
 	case Common::JA_JPN:
-	case Common::ZH_CNA:
+	case Common::ZH_CHN:
 		_lang = 3;
 		break;
 
diff --git a/engines/kyra/gui/gui_v1.cpp b/engines/kyra/gui/gui_v1.cpp
index cabfa62e15..43f2d4a721 100644
--- a/engines/kyra/gui/gui_v1.cpp
+++ b/engines/kyra/gui/gui_v1.cpp
@@ -139,7 +139,7 @@ void GUI_v1::initMenu(Menu &menu) {
 			} else {
 				Screen::FontId of = _screen->_currentFont;
 				if (menu.item[i].saveSlot > 0)
-					_screen->setFont((_vm->gameFlags().lang == Common::ZH_CNA || _vm->gameFlags().lang == Common::ZH_TWN) ? Screen::FID_CHINESE_FNT : Screen::FID_8_FNT);
+					_screen->setFont((_vm->gameFlags().lang == Common::ZH_CHN || _vm->gameFlags().lang == Common::ZH_TWN) ? Screen::FID_CHINESE_FNT : Screen::FID_8_FNT);
 
 				if (_vm->gameFlags().platform != Common::kPlatformAmiga)
 					printMenuText(getMenuItemTitle(menu.item[i]), textX - 1, textY + 1, defaultColor1(), 0, 0);
@@ -259,7 +259,7 @@ void GUI_v1::redrawText(const Menu &menu) {
 	} else {
 		Screen::FontId of = _screen->_currentFont;
 		if (menu.item[i].saveSlot > 0)
-			_screen->setFont((_vm->gameFlags().lang == Common::ZH_CNA || _vm->gameFlags().lang == Common::ZH_TWN) ? Screen::FID_CHINESE_FNT : Screen::FID_8_FNT);
+			_screen->setFont((_vm->gameFlags().lang == Common::ZH_CHN || _vm->gameFlags().lang == Common::ZH_TWN) ? Screen::FID_CHINESE_FNT : Screen::FID_8_FNT);
 		if (_vm->gameFlags().platform != Common::kPlatformAmiga)
 			printMenuText(getMenuItemTitle(menu.item[i]), textX - 1, textY + 1, defaultColor1(), 0, 0);
 		printMenuText(getMenuItemTitle(menu.item[i]), textX, textY, menu.item[i].textColor, 0, 0);
@@ -289,7 +289,7 @@ void GUI_v1::redrawHighlight(const Menu &menu) {
 	} else {
 		Screen::FontId of = _screen->_currentFont;
 		if (menu.item[i].saveSlot > 0)
-			_screen->setFont((_vm->gameFlags().lang == Common::ZH_CNA || _vm->gameFlags().lang == Common::ZH_TWN) ? Screen::FID_CHINESE_FNT : Screen::FID_8_FNT);
+			_screen->setFont((_vm->gameFlags().lang == Common::ZH_CHN || _vm->gameFlags().lang == Common::ZH_TWN) ? Screen::FID_CHINESE_FNT : Screen::FID_8_FNT);
 		if (_vm->gameFlags().platform != Common::kPlatformAmiga)
 			printMenuText(getMenuItemTitle(menu.item[i]), textX - 1, textY + 1, defaultColor1(), 0, 0);
 		printMenuText(getMenuItemTitle(menu.item[i]), textX, textY, menu.item[i].highlightColor, 0, 0);
@@ -511,7 +511,7 @@ int MainMenu::handle(int dim) {
 	int fh = _screen->getFontHeight();
 	if (_vm->gameFlags().lang == Common::JA_JPN)
 		fh++;
-	else if (_vm->gameFlags().lang == Common::ZH_CNA || _vm->gameFlags().lang == Common::ZH_TWN)
+	else if (_vm->gameFlags().lang == Common::ZH_CHN || _vm->gameFlags().lang == Common::ZH_TWN)
 		fh--;
 
 	int textPos = ((_screen->_curDim->w >> 1) + _screen->_curDim->sx) << 3;
@@ -565,7 +565,7 @@ void MainMenu::draw(int select) {
 	int fh = _screen->getFontHeight();
 	if (_vm->gameFlags().lang == Common::JA_JPN)
 		fh++;
-	else if (_vm->gameFlags().lang == Common::ZH_CNA || _vm->gameFlags().lang == Common::ZH_TWN)
+	else if (_vm->gameFlags().lang == Common::ZH_CHN || _vm->gameFlags().lang == Common::ZH_TWN)
 		fh--;
 
 	for (int i = 0; i < _static.menuTable[3]; ++i) {
diff --git a/engines/kyra/gui/gui_v2.cpp b/engines/kyra/gui/gui_v2.cpp
index 32b6efb41b..bc2cdcde5f 100644
--- a/engines/kyra/gui/gui_v2.cpp
+++ b/engines/kyra/gui/gui_v2.cpp
@@ -447,7 +447,7 @@ void GUI_v2::setupSavegameNames(Menu &menu, int num) {
 			Common::String s = header.description;
 			s = Util::convertUTF8ToDOS(s);
 
-			if (_vm->gameFlags().lang == Common::JA_JPN || _vm->gameFlags().lang == Common::ZH_CNA || _vm->gameFlags().lang == Common::ZH_TWN) {
+			if (_vm->gameFlags().lang == Common::JA_JPN || _vm->gameFlags().lang == Common::ZH_CHN || _vm->gameFlags().lang == Common::ZH_TWN) {
 				// Strip special characters from GMM save dialog which might get misinterpreted as 2-byte characters
 				for (Common::String::iterator ii = s.begin(); ii != s.end(); ++ii) {
 					if (*ii < 32) // due to the signed char type this will also clean up everything >= 0x80
diff --git a/engines/kyra/resource/staticres.cpp b/engines/kyra/resource/staticres.cpp
index 7a8a68f7d6..b0d77a633b 100644
--- a/engines/kyra/resource/staticres.cpp
+++ b/engines/kyra/resource/staticres.cpp
@@ -95,7 +95,7 @@ const IndexTable iLanguageTable[] = {
 	{ Common::JA_JPN,  6 },
 	{ Common::RU_RUS,  7 },
 	{ Common::HE_ISR,  8 },
-	{ Common::ZH_CNA,  9 },
+	{ Common::ZH_CHN,  9 },
 	{ Common::ZH_TWN, 10 },
 	{ -1, -1 }
 };
diff --git a/engines/myst3/detection.cpp b/engines/myst3/detection.cpp
index 31b315adb8..03a1d915d5 100644
--- a/engines/myst3/detection.cpp
+++ b/engines/myst3/detection.cpp
@@ -146,7 +146,7 @@ static const Myst3GameDescription gameDescriptions[] = {
 				{ "localized.m3t", 0, "3a9f299f8d061ce3d2862d985edb84e3", 2341588 },
 				{ "ENGLISHjp.m3t", 0, "19dcba1074f235ec2119313242d891de", 5658925 },
 			},
-			Common::ZH_CNA,
+			Common::ZH_CHN,
 			Common::kPlatformWindows,
 			ADGF_UNSUPPORTED,
 			GUIO_NONE
diff --git a/engines/pink/objects/actions/action_text.cpp b/engines/pink/objects/actions/action_text.cpp
index 2aafc2b61d..fe712ba242 100644
--- a/engines/pink/objects/actions/action_text.cpp
+++ b/engines/pink/objects/actions/action_text.cpp
@@ -87,7 +87,7 @@ void ActionText::start() {
 	delete stream;
 
 	switch(_actor->getPage()->getGame()->getLanguage()) {
-	case Common::DA_DAN:
+	case Common::DA_DNK:
 	case Common::ES_ESP:
 	case Common::FR_FRA:
 	case Common::PT_BRA:
diff --git a/engines/scumm/charset.h b/engines/scumm/charset.h
index 1f6befa114..f0b3a62b38 100644
--- a/engines/scumm/charset.h
+++ b/engines/scumm/charset.h
@@ -59,7 +59,7 @@ static inline bool is2ByteCharacter(Common::Language lang, byte c) {
 		return (c >= 0x80 && c <= 0x9F) || (c >= 0xE0 && c <= 0xFD);
 	else if (lang == Common::KO_KOR)
 		return (c >= 0xB0 && c <= 0xD0);
-	else if (lang == Common::ZH_TWN || lang == Common::ZH_CNA)
+	else if (lang == Common::ZH_TWN || lang == Common::ZH_CHN)
 		return (c >= 0x80);
 	return false;
 }
diff --git a/engines/scumm/detection_internal.h b/engines/scumm/detection_internal.h
index 81e16c2db0..b5db93693d 100644
--- a/engines/scumm/detection_internal.h
+++ b/engines/scumm/detection_internal.h
@@ -215,7 +215,7 @@ static Common::Language detectLanguage(const Common::FSList &fslist, byte id, Co
 
 	if (searchFSNode(fslist, "chinese_gb16x12.fnt", fontFile)) {
 		debugC(0, kDebugGlobalDetection, "Chinese detected");
-		return Common::ZH_CNA;
+		return Common::ZH_CHN;
 	}
 
 	if (id != GID_CMI && id != GID_DIG) {
diff --git a/engines/scumm/dialogs.cpp b/engines/scumm/dialogs.cpp
index 1f3076f053..127bad18c2 100644
--- a/engines/scumm/dialogs.cpp
+++ b/engines/scumm/dialogs.cpp
@@ -376,7 +376,7 @@ static bool isCJKLanguage(Common::Language lang) {
 	case Common::KO_KOR:
 	case Common::JA_JPN:
 	case Common::ZH_TWN:
-	case Common::ZH_CNA:
+	case Common::ZH_CHN:
 		return true;
 	default:
 		return false;
diff --git a/engines/scumm/smush/smush_font.h b/engines/scumm/smush/smush_font.h
index c870424ec2..b046154129 100644
--- a/engines/scumm/smush/smush_font.h
+++ b/engines/scumm/smush/smush_font.h
@@ -53,7 +53,7 @@ public:
 			return (c >= 0x80 && c <= 0x9F) || (c >= 0xE0 && c <= 0xFD);
 		else if (lang == Common::KO_KOR)
 			return (c >= 0xB0 && c <= 0xD0);
-		else if (lang == Common::ZH_TWN || lang == Common::ZH_CNA)
+		else if (lang == Common::ZH_TWN || lang == Common::ZH_CHN)
 			return (c >= 0x80);
 		return false;
 	}
diff --git a/engines/scumm/string.cpp b/engines/scumm/string.cpp
index b516ccacfa..00e81119d9 100644
--- a/engines/scumm/string.cpp
+++ b/engines/scumm/string.cpp
@@ -2142,7 +2142,7 @@ Common::CodePage ScummEngine::getDialogCodePage() const {
 	case Common::JA_JPN:
 		return Common::kWindows932;
 	case Common::ZH_TWN:
-	case Common::ZH_CNA:
+	case Common::ZH_CHN:
 		return Common::kWindows950;
 	case Common::RU_RUS:
 		return Common::kDos866;
diff --git a/engines/twine/detection.cpp b/engines/twine/detection.cpp
index e2d0fe5607..60f2dec00d 100644
--- a/engines/twine/detection.cpp
+++ b/engines/twine/detection.cpp
@@ -453,7 +453,7 @@ static const ADGameDescription twineGameDescriptions[] = {
 		"lba",
 		"Fan Translation by xesf",
 		AD_ENTRY1s("TEXT.HQR", "2a8df71946aa9ee4c777a9d6414b89ce", 282308),
-		Common::PT_POR,
+		Common::PT_PRT,
 		Common::kPlatformDOS,
 		ADGF_NO_FLAGS,
 		GUIO1(GUIO_NONE)
diff --git a/engines/wintermute/detection_tables.h b/engines/wintermute/detection_tables.h
index 74b05a93ef..54ff9668d1 100644
--- a/engines/wintermute/detection_tables.h
+++ b/engines/wintermute/detection_tables.h
@@ -3974,7 +3974,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Return (Steam, November 2020) (Serbian)
 	WME_WINENTRY("reversion3", "Steam",
 		WME_ENTRY2s("data.dcp", "5df2540652f0b77d8bb48e7454840c5e", 1806937960,
-					"xlanguage_sr.dcp", "dc43cc4e382dfa8b4a336e9fcc723bf3", 10164273), Common::SR_SER, ADGF_UNSTABLE, WME_1_9_2),
+					"xlanguage_sr.dcp", "dc43cc4e382dfa8b4a336e9fcc723bf3", 10164273), Common::SR_SRB, ADGF_UNSTABLE, WME_1_9_2),
 
 	// Reversion: The Return (Steam, December 2020) (Spanish)
 	WME_WINENTRY("reversion3", "Steam",
@@ -4009,12 +4009,12 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Return (Steam, December 2020) (Serbian)
 	WME_WINENTRY("reversion3", "Steam",
 		WME_ENTRY2s("data.dcp", "ca788ebe1b607c24c3e4db4771c16559", 1806937971,
-					"xlanguage_sr.dcp", "e16438a25527e99fb974dd2cdb5ed945", 10164285), Common::SR_SER, ADGF_UNSTABLE, WME_1_9_2),
+					"xlanguage_sr.dcp", "e16438a25527e99fb974dd2cdb5ed945", 10164285), Common::SR_SRB, ADGF_UNSTABLE, WME_1_9_2),
 
 	// Reversion: The Return (Steam, December 2020) (Simplified Chinese)
 	WME_WINENTRY("reversion3", "Steam",
 		WME_ENTRY2s("data.dcp", "ca788ebe1b607c24c3e4db4771c16559", 1806937971,
-					"xlanguage_zh_s.dcp", "d82a5708af24a879cbeaf7338ea89ab4", 10233899), Common::ZH_CNA, ADGF_UNSTABLE, WME_1_9_2),
+					"xlanguage_zh_s.dcp", "d82a5708af24a879cbeaf7338ea89ab4", 10233899), Common::ZH_CHN, ADGF_UNSTABLE, WME_1_9_2),
 
 	// Reversion: The Return (Steam, December 2020) (Traditional Chinese)
 	WME_WINENTRY("reversion3", "Steam",
diff --git a/gui/ThemeEngine.cpp b/gui/ThemeEngine.cpp
index 9dbc256bb8..91524b0ecc 100644
--- a/gui/ThemeEngine.cpp
+++ b/gui/ThemeEngine.cpp
@@ -584,7 +584,7 @@ Common::Array<Common::Language> getLangIdentifiers(const Common::String &languag
 		{ "ja", Common::JA_JPN },
 		{ "ko", Common::KO_KOR },
 		{ "zh", Common::ZH_ANY },
-		{ "zh", Common::ZH_CNA },
+		{ "zh", Common::ZH_CHN },
 		{ "zh", Common::ZH_TWN }
 	};
 


Commit: 6e1135ee8af9d899b1a0c6e91bb2fc5a63413d07
    https://github.com/scummvm/scummvm/commit/6e1135ee8af9d899b1a0c6e91bb2fc5a63413d07
Author: trembyle (sean.patrick.brody at gmail.com)
Date: 2021-11-11T12:06:15+01:00

Commit Message:
ENGINES: Revise language constants to ISO standards

* Use ISO-3166 country codes and ISO-639 language codes

Changed paths:
    engines/glk/zcode/detection_tables.h
    engines/gob/detection/tables_crousti.h
    engines/kyra/detection_tables.h
    engines/pink/detection_tables.h
    engines/queen/command.cpp
    engines/queen/display.cpp
    engines/queen/input.cpp
    engines/queen/resource.cpp
    engines/saga/detection_tables.h
    engines/scumm/charset.cpp
    engines/sherlock/tattoo/widget_inventory.cpp
    engines/wintermute/base/base_file_manager.cpp
    engines/wintermute/base/base_game.cpp
    engines/wintermute/detection_tables.h
    engines/wintermute/utils/string_util.cpp


diff --git a/engines/glk/zcode/detection_tables.h b/engines/glk/zcode/detection_tables.h
index 6da7e6e4e7..9e7b441273 100644
--- a/engines/glk/zcode/detection_tables.h
+++ b/engines/glk/zcode/detection_tables.h
@@ -2380,7 +2380,7 @@ const FrotzGameDescription FROTZ_GAMES[] = {
 
 
 	// Danish games
-	ENTRY1("nissen", "171207", "c81784afb569b863098e8374dfdd4f32", 142848, Common::DA_DAN),
+	ENTRY1("nissen", "171207", "c81784afb569b863098e8374dfdd4f32", 142848, Common::DA_DNK),
 
 	// Dutch games
 	ENTRY1("adv", "020822", "dff45a0d89ed78a204d49d18341d15ce", 153600, Common::NL_NLD),
diff --git a/engines/gob/detection/tables_crousti.h b/engines/gob/detection/tables_crousti.h
index 5089d3c0ca..81ccfefb7a 100644
--- a/engines/gob/detection/tables_crousti.h
+++ b/engines/gob/detection/tables_crousti.h
@@ -32,7 +32,7 @@
 		"crousti",
 		"",
 		AD_ENTRY1s("intro.stk", "63fd795818fa72c32b903bbd99e18ea1", 851926),
-		PT_POR,
+		PT_PRT,
 		kPlatformDOS,
 		ADGF_NO_FLAGS,
 		GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
diff --git a/engines/kyra/detection_tables.h b/engines/kyra/detection_tables.h
index 79ea4b4304..9ab4049b10 100644
--- a/engines/kyra/detection_tables.h
+++ b/engines/kyra/detection_tables.h
@@ -1787,7 +1787,7 @@ const KYRAGameDescription adGameDescs[] = {
 			"Extracted",
 			AD_ENTRY2s("GENERAL.PAK",  "f2c305bfb10c08371e947ab4d0a2f5f5", -1,
 					   "CHAPTER7.PAK", "f3cbab6d945ceda35149a5c9a324a8fe", -1),
-			Common::ZH_CNA,
+			Common::ZH_CHN,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
 			GUIO9(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS, GAMEOPTION_LOL_SAVENAMES)
diff --git a/engines/pink/detection_tables.h b/engines/pink/detection_tables.h
index bae023ab44..11597538f3 100644
--- a/engines/pink/detection_tables.h
+++ b/engines/pink/detection_tables.h
@@ -31,7 +31,7 @@ static const ADGameDescription gameDescriptions[] = {
 		"peril",
 		0,
 		AD_ENTRY1s("PPTP.ORB", "eae050c09d7f6bfbb3166d2c39957e31", 608976918),
-		Common::DA_DAN,
+		Common::DA_DNK,
 		Common::kPlatformWindows,
 		ADGF_UNSTABLE | ADGF_DROPPLATFORM,
 		GUIO1(GUIO_NOMIDI)
@@ -298,7 +298,7 @@ static const ADGameDescription gameDescriptions[] = {
 		"pokus",
 		0,
 		AD_ENTRY1s("HPP.orb", "3428dda98c21c4b6cd798750016796ab", 513518023),
-		Common::DA_DAN,
+		Common::DA_DNK,
 		Common::kPlatformWindows,
 		ADGF_UNSTABLE | ADGF_DROPPLATFORM,
 		GUIO1(GUIO_NOMIDI)
diff --git a/engines/queen/command.cpp b/engines/queen/command.cpp
index 8a042e8c8b..e4aa44ded3 100644
--- a/engines/queen/command.cpp
+++ b/engines/queen/command.cpp
@@ -137,7 +137,7 @@ CmdText *CmdText::makeCmdTextInstance(uint8 y, QueenEngine *vm) {
 	switch (vm->resource()->getLanguage()) {
 	case Common::HE_ISR:
 		return new CmdTextHebrew(y, vm);
-	case Common::GR_GRE:
+	case Common::EL_GRC:
 		return new CmdTextGreek(y, vm);
 	default:
 		return new CmdText(y, vm);
diff --git a/engines/queen/display.cpp b/engines/queen/display.cpp
index 45858a7bbe..4f13091008 100644
--- a/engines/queen/display.cpp
+++ b/engines/queen/display.cpp
@@ -913,7 +913,7 @@ void Display::initFont() {
 	case Common::RU_RUS:
 		_font = _fontRussian;
 		break;
-	case Common::GR_GRE:
+	case Common::EL_GRC:
 		_font = _fontGreek;
 		break;
 	default:
diff --git a/engines/queen/input.cpp b/engines/queen/input.cpp
index 4a49f16e9c..d7ddfd770f 100644
--- a/engines/queen/input.cpp
+++ b/engines/queen/input.cpp
@@ -59,7 +59,7 @@ Input::Input(Common::Language language, OSystem *system) :
 
 	switch (language) {
 	case Common::EN_ANY:
-	case Common::GR_GRE:
+	case Common::EL_GRC:
 	case Common::RU_RUS:
 		_currentCommandKeys = _commandKeys[0];
 		break;
diff --git a/engines/queen/resource.cpp b/engines/queen/resource.cpp
index 1e4438e93c..7d3739a117 100644
--- a/engines/queen/resource.cpp
+++ b/engines/queen/resource.cpp
@@ -170,8 +170,8 @@ bool Resource::detectVersion(DetectedGameVersion *ver, Common::File *f) {
 	case 'E':
 		if (Common::parseLanguage(ConfMan.get("language")) == Common::RU_RUS) {
 			ver->language = Common::RU_RUS;
-		} else if (Common::parseLanguage(ConfMan.get("language")) == Common::GR_GRE) {
-			ver->language = Common::GR_GRE;
+		} else if (Common::parseLanguage(ConfMan.get("language")) == Common::EL_GRC) {
+			ver->language = Common::EL_GRC;
 		} else {
 			ver->language = Common::EN_ANY;
 		}
@@ -192,7 +192,7 @@ bool Resource::detectVersion(DetectedGameVersion *ver, Common::File *f) {
 		ver->language = Common::ES_ESP;
 		break;
 	case 'g':
-		ver->language = Common::GR_GRE;
+		ver->language = Common::EL_GRC;
 		break;
 	case 'R':
 		ver->language = Common::RU_RUS;
diff --git a/engines/saga/detection_tables.h b/engines/saga/detection_tables.h
index 6a2983549c..aa1488d3f3 100644
--- a/engines/saga/detection_tables.h
+++ b/engines/saga/detection_tables.h
@@ -993,7 +993,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 				{"scripts.rsc",	GAME_SCRIPTFILE,					"516f7330f8410057b834424ea719d1ef", 281071},
 				AD_LISTEND
 			},
-			Common::ZH_CNA,
+			Common::ZH_CHN,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
 			GUIO1(GUIO_NOSPEECH)
diff --git a/engines/scumm/charset.cpp b/engines/scumm/charset.cpp
index 5144a5d391..471f9799cd 100644
--- a/engines/scumm/charset.cpp
+++ b/engines/scumm/charset.cpp
@@ -102,7 +102,7 @@ void ScummEngine::loadCJKFont() {
 		_2byteFontPtr[0] = 0xFF;
 	} else if (_language == Common::KO_KOR ||
 			   (_game.version >= 7 && (_language == Common::JA_JPN || _language == Common::ZH_TWN)) ||
-			   (_game.version >= 3 && _language == Common::ZH_CNA)) {
+			   (_game.version >= 3 && _language == Common::ZH_CHN)) {
 		int numChar = 0;
 		const char *fontFile = NULL;
 
@@ -120,7 +120,7 @@ void ScummEngine::loadCJKFont() {
 			fontFile = "chinese.fnt";
 			numChar = 13630;
 			break;
-		case Common::ZH_CNA:
+		case Common::ZH_CHN:
 			if (_game.id == GID_FT || _game.id == GID_LOOM || _game.id == GID_INDY3 ||
 				_game.id == GID_INDY4 || _game.id == GID_MONKEY || _game.id == GID_MONKEY2 ||
 				_game.id == GID_TENTACLE) {
@@ -153,7 +153,7 @@ void ScummEngine::loadCJKFont() {
 				_2byteHeight = 15;
 				_newLineCharacter = 0x21;
 				break;
-			case Common::ZH_CNA:
+			case Common::ZH_CHN:
 				_2byteWidth = 12;
 				_2byteHeight = 12;
 				_newLineCharacter = 0x21;
@@ -299,7 +299,7 @@ byte *ScummEngine::get2byteCharPtr(int idx) {
 
 			return _2byteFontPtr + base;
 		}
-	case Common::ZH_CNA:
+	case Common::ZH_CHN:
 		idx = ((idx % 256) - 0xa1)* 94  + ((idx / 256) - 0xa1);
 		break;
 	default:
diff --git a/engines/sherlock/tattoo/widget_inventory.cpp b/engines/sherlock/tattoo/widget_inventory.cpp
index 24c32f6332..f0780c32a8 100644
--- a/engines/sherlock/tattoo/widget_inventory.cpp
+++ b/engines/sherlock/tattoo/widget_inventory.cpp
@@ -140,7 +140,7 @@ void WidgetInventoryTooltip::handleEvents() {
 				Object &obj = scene._bgShapes[select];
 
 				if (!obj._description.empty() && !obj._description.hasPrefix(" ")) {
-					if (_vm->getLanguage() == Common::GR_GRE) {
+					if (_vm->getLanguage() == Common::EL_GRC) {
 
 						if (!_owner->_swapItems)
 							str = Common::String::format("%s %s %s %s", _owner->_action.c_str(), obj._description.c_str(),
@@ -161,7 +161,7 @@ void WidgetInventoryTooltip::handleEvents() {
 				Person &person = people[ui._bgFound - 1000];
 
 				if (!person._description.empty() && !person._description.hasPrefix(" ")) {
-					if (_vm->getLanguage() == Common::GR_GRE) {
+					if (_vm->getLanguage() == Common::EL_GRC) {
 						if (!_owner->_swapItems)
 							str = Common::String::format("%s %s %s %s", _owner->_action.c_str(), person._description.c_str(),
 								inv[_owner->_invSelect]._name.c_str(), _owner->_verb.c_str());
@@ -267,7 +267,7 @@ void WidgetInventoryVerbs::load() {
 	_inventCommands.push_back(FIXED(Look));
 
 	// Default the Action word to "with"
-	_owner->_action = _vm->getLanguage() == Common::GR_GRE ? "" : FIXED(With);
+	_owner->_action = _vm->getLanguage() == Common::EL_GRC ? "" : FIXED(With);
 
 	// Search all the bgshapes for any matching Target Fields
 	for (uint idx = 0; idx < scene._bgShapes.size(); ++idx) {
diff --git a/engines/wintermute/base/base_file_manager.cpp b/engines/wintermute/base/base_file_manager.cpp
index 7d7d015fc4..06cea5216b 100644
--- a/engines/wintermute/base/base_file_manager.cpp
+++ b/engines/wintermute/base/base_file_manager.cpp
@@ -248,7 +248,7 @@ bool BaseFileManager::registerPackages() {
 					}
 				// Simplified Chinese
 				} else if (fileName == "xlanguage_zh_s.dcp") {
-					if (_language != Common::ZH_CNA) {
+					if (_language != Common::ZH_CHN) {
 						continue;
 					}
 				// Traditional Chinese
@@ -278,7 +278,7 @@ bool BaseFileManager::registerPackages() {
 					}
 				// Latvian
 				} else if (fileName == "latvian.dcp" || fileName == "xlanguage_lv.dcp" || fileName == "latvian_language_pack.dcp") {
-					if (_language != Common::LV_LAT) {
+					if (_language != Common::LV_LVA) {
 						continue;
 					}
 				// Persian
@@ -303,7 +303,7 @@ bool BaseFileManager::registerPackages() {
 					}
 				// Serbian
 				} else if (fileName == "serbian.dcp" || fileName == "xlanguage_sr.dcp" || fileName == "serbian_language_pack.dcp") {
-					if (_language != Common::SR_SER) {
+					if (_language != Common::SR_SRB) {
 						continue;
 					}
 				// Spanish
diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp
index 61e244348d..3078ef626e 100644
--- a/engines/wintermute/base/base_game.cpp
+++ b/engines/wintermute/base/base_game.cpp
@@ -2841,7 +2841,7 @@ ScValue *BaseGame::scGetProperty(const Common::String &name) {
 		case Common::CZ_CZE:
 			_scValue->setString("czech");
 			break;
-		case Common::DA_DAN:
+		case Common::DA_DNK:
 			_scValue->setString("danish");
 			break;
 		case Common::DE_DEU:
@@ -2856,7 +2856,7 @@ ScValue *BaseGame::scGetProperty(const Common::String &name) {
 		case Common::FR_FRA:
 			_scValue->setString("french");
 			break;
-		case Common::GR_GRE:
+		case Common::EL_GRC:
 			_scValue->setString("greek");
 			break;
 		case Common::HU_HUN:
@@ -2880,7 +2880,7 @@ ScValue *BaseGame::scGetProperty(const Common::String &name) {
 		case Common::PT_BRA:
 			_scValue->setString("brazilian");
 			break;
-		case Common::PT_POR:
+		case Common::PT_PRT:
 			_scValue->setString("portuguese");
 			break;
 		case Common::PL_POL:
@@ -2895,7 +2895,7 @@ ScValue *BaseGame::scGetProperty(const Common::String &name) {
 		case Common::UA_UKR:
 			_scValue->setString("ukrainian");
 			break;
-		case Common::ZH_CNA:
+		case Common::ZH_CHN:
 			_scValue->setString("schinese");
 			break;
 		case Common::ZH_TWN:
diff --git a/engines/wintermute/detection_tables.h b/engines/wintermute/detection_tables.h
index 54ff9668d1..980e2a608e 100644
--- a/engines/wintermute/detection_tables.h
+++ b/engines/wintermute/detection_tables.h
@@ -1368,7 +1368,7 @@ static const WMEGameDescription gameDescriptions[] = {
 
 	// Hamlet or the last game without MMORPG features, shaders and product placement (Steam) (Portuguese)
 	WME_WINENTRY("hamlet", "v1.03",
-		WME_ENTRY1s("data.dcp", "f55674e17df2816145d3473401081f05", 88245004), Common::PT_POR, ADGF_UNSTABLE, WME_1_9_1),
+		WME_ENTRY1s("data.dcp", "f55674e17df2816145d3473401081f05", 88245004), Common::PT_PRT, ADGF_UNSTABLE, WME_1_9_1),
 
 	// Hamlet or the last game without MMORPG features, shaders and product placement (Steam) (Russian)
 	WME_WINENTRY("hamlet", "v1.03",
@@ -1895,7 +1895,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Escape Version 1.3 (Latvian)
 	WME_WINENTRY("reversion1", "Version 1.3",
 		WME_ENTRY2s("xlanguage_lv.dcp", "351e8226a2a86dd15b8568b9d695a3c0", 4959028,
-					"data.dcp", "9ebb12f6fd7c038d079f81beb3bd96d5", 254185907), Common::LV_LAT, ADGF_UNSTABLE, WME_1_9_3),
+					"data.dcp", "9ebb12f6fd7c038d079f81beb3bd96d5", 254185907), Common::LV_LVA, ADGF_UNSTABLE, WME_1_9_3),
 
 	// Reversion: The Escape Version 1.3 (Portuguese)
 	WME_WINENTRY("reversion1", "Version 1.3",
@@ -1935,7 +1935,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Escape Version 1.3.2369 (Latvian)
 	WME_WINENTRY("reversion1", "Version 1.3.2369",
 		WME_ENTRY2s("xlanguage_lv.dcp", "704359ab5040b0dab6545064d7aa6eb9", 11414925,
-					"data.dcp", "aecb5deeea7b0baa871fbd0cef35a648", 254219204), Common::LV_LAT, ADGF_UNSTABLE, WME_1_9_3),
+					"data.dcp", "aecb5deeea7b0baa871fbd0cef35a648", 254219204), Common::LV_LVA, ADGF_UNSTABLE, WME_1_9_3),
 
 	// Reversion: The Escape Version 1.3.2369 (Polish)
 	WME_WINENTRY("reversion1", "Version 1.3.2369",
@@ -1975,7 +1975,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Escape (Steam, July 2014) (Latvian)
 	WME_WINENTRY("reversion1", "Steam",
 		WME_ENTRY2s("data.dcp", "438e04e70a107539a56fcd332d31f04d", 254298579,
-					"xlanguage_lv.dcp", "846f1b99257c9f034d4cd5c89986a8c5", 11414925), Common::LV_LAT, ADGF_UNSTABLE, WME_1_9_3),
+					"xlanguage_lv.dcp", "846f1b99257c9f034d4cd5c89986a8c5", 11414925), Common::LV_LVA, ADGF_UNSTABLE, WME_1_9_3),
 
 	// Reversion: The Escape (Steam, July 2014) (Chinese)
 	WME_WINENTRY("reversion1", "Steam",
@@ -2026,7 +2026,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	WME_PLATENTRY("reversion1", "Steam",
 		WME_ENTRY3s("data.dcp", "e9d47580933860b2254e14ec04a514fe", 254310313,
 					"xlanguage_lv.dcp", "613a9ada4dffe012b7a25f69818c9353", 11414925,
-					"Linux.dcp", "2e27778dce77db368b8353895a32930f", 3788181), Common::LV_LAT, Common::kPlatformLinux, ADGF_UNSTABLE, WME_LITE),
+					"Linux.dcp", "2e27778dce77db368b8353895a32930f", 3788181), Common::LV_LVA, Common::kPlatformLinux, ADGF_UNSTABLE, WME_LITE),
 
 	// Reversion: The Escape (Steam, August 2014) (Chinese)
 	WME_PLATENTRY("reversion1", "Steam",
@@ -2080,7 +2080,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	WME_PLATENTRY("reversion1", "Steam",
 		WME_ENTRY3s("data.dcp", "e9d47580933860b2254e14ec04a514fe", 254310313,
 					"xlanguage_lv.dcp", "613a9ada4dffe012b7a25f69818c9353", 11414925,
-					"Mac.dcp", "50911598561dc0ac7d050aeadbb58815", 4866263), Common::LV_LAT, Common::kPlatformMacintosh, ADGF_UNSTABLE, WME_LITE),
+					"Mac.dcp", "50911598561dc0ac7d050aeadbb58815", 4866263), Common::LV_LVA, Common::kPlatformMacintosh, ADGF_UNSTABLE, WME_LITE),
 
 	// Reversion: The Escape (Steam, August 2014) (Chinese)
 	WME_PLATENTRY("reversion1", "Steam",
@@ -2140,7 +2140,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Escape (Steam, January 2016) (Latvian)
 	WME_WINENTRY("reversion1", "Steam",
 		WME_ENTRY2s("data.dcp", "2ab1e724ea83e61049cc46a3604a9a53", 254281202,
-					"xlanguage_lv.dcp", "44e5b05c60cebdb1c4d969827d5870e3", 11427642), Common::LV_LAT, ADGF_UNSTABLE, WME_1_9_3),
+					"xlanguage_lv.dcp", "44e5b05c60cebdb1c4d969827d5870e3", 11427642), Common::LV_LVA, ADGF_UNSTABLE, WME_1_9_3),
 
 	// Reversion: The Escape (Steam, January 2016) (Chinese)
 	WME_WINENTRY("reversion1", "Steam",
@@ -2196,7 +2196,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	WME_PLATENTRY("reversion1", "Steam",
 		WME_ENTRY3s("data.dcp", "c34389202fb2c20cb89687d83f3af4fb", 254298801,
 					"xlanguage_lv.dcp", "4230c16f5b8625b30b961c0bc4312935", 11427642,
-					"Linux.dcp", "2e27778dce77db368b8353895a32930f", 3788181), Common::LV_LAT, Common::kPlatformLinux, ADGF_UNSTABLE, WME_LITE),
+					"Linux.dcp", "2e27778dce77db368b8353895a32930f", 3788181), Common::LV_LVA, Common::kPlatformLinux, ADGF_UNSTABLE, WME_LITE),
 
 	// Reversion: The Escape (Steam, January 2016) (Chinese)
 	WME_PLATENTRY("reversion1", "Steam",
@@ -2256,7 +2256,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	WME_PLATENTRY("reversion1", "Steam",
 		WME_ENTRY3s("data.dcp", "c34389202fb2c20cb89687d83f3af4fb", 254298801,
 					"xlanguage_lv.dcp", "4230c16f5b8625b30b961c0bc4312935", 11427642,
-					"Mac.dcp", "50911598561dc0ac7d050aeadbb58815", 4866263), Common::LV_LAT, Common::kPlatformMacintosh, ADGF_UNSTABLE, WME_LITE),
+					"Mac.dcp", "50911598561dc0ac7d050aeadbb58815", 4866263), Common::LV_LVA, Common::kPlatformMacintosh, ADGF_UNSTABLE, WME_LITE),
 
 	// Reversion: The Escape (Steam, January 2016) (Chinese)
 	WME_PLATENTRY("reversion1", "Steam",
@@ -2316,7 +2316,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	WME_PLATENTRY("reversion1", "Steam",
 		WME_ENTRY3s("data.dcp", "e63ddf8801404555010c32bf849b3428", 254307881,
 					"xlanguage_lv.dcp", "3019b4f0854aa5f25eed35d4e04f589b", 11436318,
-					"Linux.dcp", "2e27778dce77db368b8353895a32930f", 3788181), Common::LV_LAT, Common::kPlatformLinux, ADGF_UNSTABLE, WME_LITE),
+					"Linux.dcp", "2e27778dce77db368b8353895a32930f", 3788181), Common::LV_LVA, Common::kPlatformLinux, ADGF_UNSTABLE, WME_LITE),
 
 	// Reversion: The Escape (Steam, August 2016) (Chinese)
 	WME_PLATENTRY("reversion1", "Steam",
@@ -2376,7 +2376,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	WME_PLATENTRY("reversion1", "Steam",
 		WME_ENTRY3s("data.dcp", "fe268238ebdf069db1954278f174614f", 254307881,
 					"xlanguage_lv.dcp", "32b6f5d51a7a4e4e52a89146b02d69a2", 11436318,
-					"Mac.dcp", "50911598561dc0ac7d050aeadbb58815", 4866263), Common::LV_LAT, Common::kPlatformMacintosh, ADGF_UNSTABLE, WME_LITE),
+					"Mac.dcp", "50911598561dc0ac7d050aeadbb58815", 4866263), Common::LV_LVA, Common::kPlatformMacintosh, ADGF_UNSTABLE, WME_LITE),
 
 	// Reversion: The Escape (Steam, August 2016) (Chinese)
 	WME_PLATENTRY("reversion1", "Steam",
@@ -2430,7 +2430,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Escape (Steam, August 2016) (Latvian)
 	WME_WINENTRY("reversion1", "Steam",
 		WME_ENTRY2s("data.dcp", "2ac5dac7b06ab6ca54beaee85b60c0da", 254290282,
-					"xlanguage_lv.dcp", "49f76e07d2066ec6c4a5507ae9c1aad8", 11436318), Common::LV_LAT, ADGF_UNSTABLE, WME_1_9_3),
+					"xlanguage_lv.dcp", "49f76e07d2066ec6c4a5507ae9c1aad8", 11436318), Common::LV_LVA, ADGF_UNSTABLE, WME_1_9_3),
 
 	// Reversion: The Escape (Steam, August 2016) (Chinese)
 	WME_WINENTRY("reversion1", "Steam",
@@ -2497,7 +2497,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Escape (Steam, November 2016) (Latvian)
 	WME_WINENTRY("reversion1", "Steam",
 		WME_ENTRY2s("data.dcp", "5e4d40075f69fa7702530e38c349d2fd", 254293949,
-					"xlanguage_lv.dcp", "6983daaf6bba6a496a73e272dbe274c4", 11436318), Common::LV_LAT, ADGF_UNSTABLE, WME_1_9_3),
+					"xlanguage_lv.dcp", "6983daaf6bba6a496a73e272dbe274c4", 11436318), Common::LV_LVA, ADGF_UNSTABLE, WME_1_9_3),
 
 	// Reversion: The Escape (Steam, November 2016) (Chinese)
 	WME_WINENTRY("reversion1", "Steam",
@@ -2553,7 +2553,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	WME_PLATENTRY("reversion1", "Steam",
 		WME_ENTRY3s("data.dcp", "0cdbcf31b0a4aa66c1307a66962cb94e", 254311548,
 					"xlanguage_lv.dcp", "aa6be87b3227a7786206f05786e9982a", 11436318,
-					"Linux.dcp", "2e27778dce77db368b8353895a32930f", 3788181), Common::LV_LAT, Common::kPlatformLinux, ADGF_UNSTABLE, WME_LITE),
+					"Linux.dcp", "2e27778dce77db368b8353895a32930f", 3788181), Common::LV_LVA, Common::kPlatformLinux, ADGF_UNSTABLE, WME_LITE),
 
 	// Reversion: The Escape (Steam, November 2016) (Chinese)
 	WME_PLATENTRY("reversion1", "Steam",
@@ -2613,7 +2613,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	WME_PLATENTRY("reversion1", "Steam",
 		WME_ENTRY3s("data.dcp", "0cdbcf31b0a4aa66c1307a66962cb94e", 254311548,
 					"xlanguage_lv.dcp", "aa6be87b3227a7786206f05786e9982a", 11436318,
-					"Mac.dcp", "50911598561dc0ac7d050aeadbb58815", 4866263), Common::LV_LAT, Common::kPlatformMacintosh, ADGF_UNSTABLE, WME_LITE),
+					"Mac.dcp", "50911598561dc0ac7d050aeadbb58815", 4866263), Common::LV_LVA, Common::kPlatformMacintosh, ADGF_UNSTABLE, WME_LITE),
 
 	// Reversion: The Escape (Steam, November 2016) (Chinese)
 	WME_PLATENTRY("reversion1", "Steam",
@@ -2667,7 +2667,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Escape (Steam, July 2019) (Latvian)
 	WME_WINENTRY("reversion1", "Steam",
 		WME_ENTRY2s("data.dcp", "371f8cde148050eda33e60cf059bf894", 283546874,
-					"xlanguage_lv.dcp", "6983daaf6bba6a496a73e272dbe274c4", 11436318), Common::LV_LAT, ADGF_UNSTABLE, WME_1_9_3),
+					"xlanguage_lv.dcp", "6983daaf6bba6a496a73e272dbe274c4", 11436318), Common::LV_LVA, ADGF_UNSTABLE, WME_1_9_3),
 
 	// Reversion: The Escape (Steam, July 2019) (Chinese)
 	WME_WINENTRY("reversion1", "Steam",
@@ -2692,7 +2692,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Escape (Steam, July 2019) (Simplified Chinese)
 	WME_WINENTRY("reversion1", "Steam",
 		WME_ENTRY2s("data.dcp", "371f8cde148050eda33e60cf059bf894", 283546874,
-					"xlanguage_zh_s.dcp", "9df07bd28ee2378f684892f079e4166b", 12625743), Common::ZH_CNA, ADGF_UNSTABLE, WME_1_9_3),
+					"xlanguage_zh_s.dcp", "9df07bd28ee2378f684892f079e4166b", 12625743), Common::ZH_CHN, ADGF_UNSTABLE, WME_1_9_3),
 
 	// Reversion: The Escape (Steam, July 2019) (Traditional Chinese)
 	WME_WINENTRY("reversion1", "Steam",
@@ -2733,7 +2733,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	WME_PLATENTRY("reversion1", "Steam",
 		WME_ENTRY3s("data.dcp", "8e8e5f889b93be60ec9b4fb49fa57f35", 283564473,
 					"xlanguage_lv.dcp", "aa6be87b3227a7786206f05786e9982a", 11436318,
-					"Linux.dcp", "2e27778dce77db368b8353895a32930f", 3788181), Common::LV_LAT, Common::kPlatformLinux, ADGF_UNSTABLE, WME_LITE),
+					"Linux.dcp", "2e27778dce77db368b8353895a32930f", 3788181), Common::LV_LVA, Common::kPlatformLinux, ADGF_UNSTABLE, WME_LITE),
 
 	// Reversion: The Escape (Steam, July 2019) (Chinese)
 	WME_PLATENTRY("reversion1", "Steam",
@@ -2793,7 +2793,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	WME_PLATENTRY("reversion1", "Steam",
 		WME_ENTRY3s("data.dcp", "5a68f570fa4ff84b1479794447d69f48", 283564473,
 					"xlanguage_lv.dcp", "aa6be87b3227a7786206f05786e9982a", 11436318,
-					"Mac.dcp", "50911598561dc0ac7d050aeadbb58815", 4866263), Common::LV_LAT, Common::kPlatformMacintosh, ADGF_UNSTABLE, WME_LITE),
+					"Mac.dcp", "50911598561dc0ac7d050aeadbb58815", 4866263), Common::LV_LVA, Common::kPlatformMacintosh, ADGF_UNSTABLE, WME_LITE),
 
 	// Reversion: The Escape (Steam, July 2019) (Chinese)
 	WME_PLATENTRY("reversion1", "Steam",
@@ -2847,7 +2847,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Escape (Steam, February 2020) (Latvian)
 	WME_WINENTRY("reversion1", "Steam",
 		WME_ENTRY2s("data.dcp", "89378191c6ef7a1e8943d51eab577ca9", 283546932,
-					"xlanguage_lv.dcp", "6983daaf6bba6a496a73e272dbe274c4", 11436318), Common::LV_LAT, ADGF_UNSTABLE, WME_1_9_3),
+					"xlanguage_lv.dcp", "6983daaf6bba6a496a73e272dbe274c4", 11436318), Common::LV_LVA, ADGF_UNSTABLE, WME_1_9_3),
 
 	// Reversion: The Escape (Steam, February 2020) (Chinese)
 	WME_WINENTRY("reversion1", "Steam",
@@ -2872,7 +2872,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Escape (Steam, February 2020) (Simplified Chinese)
 	WME_WINENTRY("reversion1", "Steam",
 		WME_ENTRY2s("data.dcp", "89378191c6ef7a1e8943d51eab577ca9", 283546932,
-					"xlanguage_zh_s.dcp", "9df07bd28ee2378f684892f079e4166b", 12625743), Common::ZH_CNA, ADGF_UNSTABLE, WME_1_9_3),
+					"xlanguage_zh_s.dcp", "9df07bd28ee2378f684892f079e4166b", 12625743), Common::ZH_CHN, ADGF_UNSTABLE, WME_1_9_3),
 
 	// Reversion: The Escape (Steam, February 2020) (Traditional Chinese)
 	WME_WINENTRY("reversion1", "Steam",
@@ -2913,7 +2913,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	WME_PLATENTRY("reversion1", "Steam",
 		WME_ENTRY3s("data.dcp", "db3b7d57a9b9decf188328c14bb8118e", 283564531,
 					"xlanguage_lv.dcp", "aa6be87b3227a7786206f05786e9982a", 11436318,
-					"Linux.dcp", "2e27778dce77db368b8353895a32930f", 3788181), Common::LV_LAT, Common::kPlatformLinux, ADGF_UNSTABLE, WME_LITE),
+					"Linux.dcp", "2e27778dce77db368b8353895a32930f", 3788181), Common::LV_LVA, Common::kPlatformLinux, ADGF_UNSTABLE, WME_LITE),
 
 	// Reversion: The Escape (Steam, February 2020) (Chinese)
 	WME_PLATENTRY("reversion1", "Steam",
@@ -2973,7 +2973,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	WME_PLATENTRY("reversion1", "Steam",
 		WME_ENTRY3s("data.dcp", "0edb5877848e820b79d66002fe927a03", 283564531,
 					"xlanguage_lv.dcp", "aa6be87b3227a7786206f05786e9982a", 11436318,
-					"Mac.dcp", "50911598561dc0ac7d050aeadbb58815", 4866263), Common::LV_LAT, Common::kPlatformMacintosh, ADGF_UNSTABLE, WME_LITE),
+					"Mac.dcp", "50911598561dc0ac7d050aeadbb58815", 4866263), Common::LV_LVA, Common::kPlatformMacintosh, ADGF_UNSTABLE, WME_LITE),
 
 	// Reversion: The Escape (Steam, February 2020) (Chinese)
 	WME_PLATENTRY("reversion1", "Steam",
@@ -3027,7 +3027,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Escape (Steam, April 2020) (Latvian)
 	WME_WINENTRY("reversion1", "Steam",
 		WME_ENTRY2s("data.dcp", "9074481da1b8a3f89f6951cba5031fbd", 283546933,
-					"xlanguage_lv.dcp", "6983daaf6bba6a496a73e272dbe274c4", 11436318), Common::LV_LAT, ADGF_UNSTABLE, WME_1_9_3),
+					"xlanguage_lv.dcp", "6983daaf6bba6a496a73e272dbe274c4", 11436318), Common::LV_LVA, ADGF_UNSTABLE, WME_1_9_3),
 
 	// Reversion: The Escape (Steam, April 2020) (Chinese)
 	WME_WINENTRY("reversion1", "Steam",
@@ -3052,12 +3052,12 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Escape (Steam, April 2020) (Serbian)
 	WME_WINENTRY("reversion1", "Steam",
 		WME_ENTRY2s("data.dcp", "9074481da1b8a3f89f6951cba5031fbd", 283546933,
-					"xlanguage_sr.dcp", "2455cc3770766787b6d7ca7301079230", 10702894), Common::SR_SER, ADGF_UNSTABLE, WME_1_9_3),
+					"xlanguage_sr.dcp", "2455cc3770766787b6d7ca7301079230", 10702894), Common::SR_SRB, ADGF_UNSTABLE, WME_1_9_3),
 
 	// Reversion: The Escape (Steam, April 2020) (Simplified Chinese)
 	WME_WINENTRY("reversion1", "Steam",
 		WME_ENTRY2s("data.dcp", "9074481da1b8a3f89f6951cba5031fbd", 283546933,
-					"xlanguage_zh_s.dcp", "9df07bd28ee2378f684892f079e4166b", 12625743), Common::ZH_CNA, ADGF_UNSTABLE, WME_1_9_3),
+					"xlanguage_zh_s.dcp", "9df07bd28ee2378f684892f079e4166b", 12625743), Common::ZH_CHN, ADGF_UNSTABLE, WME_1_9_3),
 
 	// Reversion: The Escape (Steam, April 2020) (Traditional Chinese)
 	WME_WINENTRY("reversion1", "Steam",
@@ -3421,8 +3421,8 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Meeting (Steam, August 2019) (Simplified Chinese)
 	WME_WINENTRY("reversion2", "Steam",
 		WME_ENTRY2s("data.dcp", "28256eacb651a82cb07ffd99d0102988", 272211168,
-					"xlanguage_zh_s.dcp", "f668735372b0dde4b619c4d9d4678e3c", 8498109), Common::ZH_CNA, ADGF_UNSTABLE, WME_1_9_3),
-
+					"xlanguage_zh_s.dcp", "f668735372b0dde4b619c4d9d4678e3c", 8498109), Common::ZH_CHN, ADGF_UNSTABLE, WME_1_9_3),
+	
 	// Reversion: The Meeting (Steam, August 2019) (Traditional Chinese)
 	WME_WINENTRY("reversion2", "Steam",
 		WME_ENTRY2s("data.dcp", "28256eacb651a82cb07ffd99d0102988", 272211168,
@@ -3543,8 +3543,8 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Meeting (Steam, November 2019) (Simplified Chinese)
 	WME_WINENTRY("reversion2", "Steam",
 		WME_ENTRY2s("data.dcp", "5b1f360d29a650ea202a89903412e539", 272211168,
-					"xlanguage_zh_s.dcp", "fa6a6f5742184676cd7d967b518db52c", 8498109), Common::ZH_CNA, ADGF_UNSTABLE, WME_1_9_3),
-
+					"xlanguage_zh_s.dcp", "fa6a6f5742184676cd7d967b518db52c", 8498109), Common::ZH_CHN, ADGF_UNSTABLE, WME_1_9_3),
+	
 	// Reversion: The Meeting (Steam, November 2019) (Traditional Chinese)
 	WME_WINENTRY("reversion2", "Steam",
 		WME_ENTRY2s("data.dcp", "5b1f360d29a650ea202a89903412e539", 272211168,
@@ -3590,7 +3590,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	WME_PLATENTRY("reversion2", "Steam",
 		WME_ENTRY3s("data.dcp", "3c34d583c658b75650f0c978d47fd59d", 272228767,
 					"xlanguage_zh_s.dcp", "63f3e7f876252fc36b30995d3c9afdf6", 10407767,
-					"Linux.dcp", "16c3a8627216aab5b31c43186e0dfa70", 984535), Common::ZH_CNA, Common::kPlatformLinux, ADGF_UNSTABLE, WME_LITE),
+					"Linux.dcp", "16c3a8627216aab5b31c43186e0dfa70", 984535), Common::ZH_CHN, Common::kPlatformLinux, ADGF_UNSTABLE, WME_LITE),
 
 	// Reversion: The Meeting (Steam, November 2019) (Traditional Chinese)
 	WME_PLATENTRY("reversion2", "Steam",
@@ -3638,7 +3638,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	WME_PLATENTRY("reversion2", "Steam",
 		WME_ENTRY3s("data.dcp", "99ab5a155c60377a7a1e64d9dd8f71aa", 272228767,
 					"xlanguage_zh_s.dcp", "39aedb26886f354f214ea4f91c919731", 8498109,
-					"Mac.dcp", "0b8d95dcb1f7e8c7c2c49e58db2764b6", 1728476), Common::ZH_CNA, Common::kPlatformMacintosh, ADGF_UNSTABLE, WME_LITE),
+					"Mac.dcp", "0b8d95dcb1f7e8c7c2c49e58db2764b6", 1728476), Common::ZH_CHN, Common::kPlatformMacintosh, ADGF_UNSTABLE, WME_LITE),
 
 	// Reversion: The Meeting (Steam, November 2019) (Traditional Chinese)
 	WME_PLATENTRY("reversion2", "Steam",
@@ -3708,7 +3708,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	WME_PLATENTRY("reversion2", "Steam",
 		WME_ENTRY3s("data.dcp", "90d95f3415e1c33ea76de75c329f14ca", 272228827,
 					"xlanguage_zh_s.dcp", "63f3e7f876252fc36b30995d3c9afdf6", 10407767,
-					"Linux.dcp", "16c3a8627216aab5b31c43186e0dfa70", 984535), Common::ZH_CNA, Common::kPlatformLinux, ADGF_UNSTABLE, WME_LITE),
+					"Linux.dcp", "16c3a8627216aab5b31c43186e0dfa70", 984535), Common::ZH_CHN, Common::kPlatformLinux, ADGF_UNSTABLE, WME_LITE),
 
 	// Reversion: The Meeting (Steam, March 2020) (Traditional Chinese)
 	WME_PLATENTRY("reversion2", "Steam",
@@ -3768,7 +3768,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	WME_PLATENTRY("reversion2", "Steam",
 		WME_ENTRY3s("data.dcp", "e8140afacd9ae3e2e0b2c2a42a8d4cd3", 272228827,
 					"xlanguage_zh_s.dcp", "39aedb26886f354f214ea4f91c919731", 8498109,
-					"Mac.dcp", "0b8d95dcb1f7e8c7c2c49e58db2764b6", 1728476), Common::ZH_CNA, Common::kPlatformMacintosh, ADGF_UNSTABLE, WME_LITE),
+					"Mac.dcp", "0b8d95dcb1f7e8c7c2c49e58db2764b6", 1728476), Common::ZH_CHN, Common::kPlatformMacintosh, ADGF_UNSTABLE, WME_LITE),
 
 	// Reversion: The Meeting (Steam, March 2020) (Traditional Chinese)
 	WME_PLATENTRY("reversion2", "Steam",
@@ -3819,13 +3819,13 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Meeting (Steam, May 2020) (Serbian)
 	WME_WINENTRY("reversion2", "Steam",
 		WME_ENTRY2s("data.dcp", "a59f2f4fe04478a3a078f8b84651ab27", 272211206,
-					"xlanguage_sr.dcp", "71f1fc086026bb76137cc9b91c642eff", 8541059), Common::SR_SER, ADGF_UNSTABLE, WME_1_9_3),
-
+					"xlanguage_sr.dcp", "71f1fc086026bb76137cc9b91c642eff", 8541059), Common::SR_SRB, ADGF_UNSTABLE, WME_1_9_3),
+	
 	// Reversion: The Meeting (Steam, May 2020) (Simplified Chinese)
 	WME_WINENTRY("reversion2", "Steam",
 		WME_ENTRY2s("data.dcp", "a59f2f4fe04478a3a078f8b84651ab27", 272211206,
-					"xlanguage_zh_s.dcp", "7a46d2c1bb6a6ed07583e347d4e13d9c", 8498688), Common::ZH_CNA, ADGF_UNSTABLE, WME_1_9_3),
-
+					"xlanguage_zh_s.dcp", "7a46d2c1bb6a6ed07583e347d4e13d9c", 8498688), Common::ZH_CHN, ADGF_UNSTABLE, WME_1_9_3),
+	
 	// Reversion: The Meeting (Steam, May 2020) (Traditional Chinese)
 	WME_WINENTRY("reversion2", "Steam",
 		WME_ENTRY2s("data.dcp", "a59f2f4fe04478a3a078f8b84651ab27", 272211206,
@@ -3859,7 +3859,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Return (Steam, February 2020) (Simplified Chinese)
 	WME_WINENTRY("reversion3", "Steam",
 		WME_ENTRY2s("data.dcp", "326b44d1edfe2cba6e4135bb2dec801f", 1806938525,
-					"xlanguage_zh_s.dcp", "3c0beb597313226a78e15a38194772c6", 10146103), Common::ZH_CNA, ADGF_UNSTABLE, WME_1_9_2),
+					"xlanguage_zh_s.dcp", "3c0beb597313226a78e15a38194772c6", 10146103), Common::ZH_CHN, ADGF_UNSTABLE, WME_1_9_2),
 
 	// Reversion: The Return (Steam, April 16th 2020) (Spanish)
 	WME_WINENTRY("reversion3", "Steam",
@@ -3894,7 +3894,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Return (Steam, April 16th 2020) (Simplified Chinese)
 	WME_WINENTRY("reversion3", "Steam",
 		WME_ENTRY2s("data.dcp", "b8c6bb6a0bc56bc814f336468bf4f660", 1806937965,
-					"xlanguage_zh_s.dcp", "f104564a8d8b19f6ad83ea32c0e7ac01", 10146103), Common::ZH_CNA, ADGF_UNSTABLE, WME_1_9_2),
+					"xlanguage_zh_s.dcp", "f104564a8d8b19f6ad83ea32c0e7ac01", 10146103), Common::ZH_CHN, ADGF_UNSTABLE, WME_1_9_2),
 
 	// Reversion: The Return (Steam, April 20th 2020) (Spanish)
 	WME_WINENTRY("reversion3", "Steam",
@@ -3929,7 +3929,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Return (Steam, April 20th 2020) (Simplified Chinese)
 	WME_WINENTRY("reversion3", "Steam",
 		WME_ENTRY2s("data.dcp", "d868bcc82a3c4d7b17f24b8f7cabcc78", 1806937960,
-					"xlanguage_zh_s.dcp", "d059c8c11e39e063a60c602a0127d244", 10146103), Common::ZH_CNA, ADGF_UNSTABLE, WME_1_9_2),
+					"xlanguage_zh_s.dcp", "d059c8c11e39e063a60c602a0127d244", 10146103), Common::ZH_CHN, ADGF_UNSTABLE, WME_1_9_2),
 
 	// Reversion: The Return (Steam, May 2020) (Spanish)
 	WME_WINENTRY("reversion3", "Steam",
@@ -3964,7 +3964,7 @@ static const WMEGameDescription gameDescriptions[] = {
 	// Reversion: The Return (Steam, May 2020) (Simplified Chinese)
 	WME_WINENTRY("reversion3", "Steam",
 		WME_ENTRY2s("data.dcp", "5df2540652f0b77d8bb48e7454840c5e", 1806937960,
-					"xlanguage_zh_s.dcp", "d82a5708af24a879cbeaf7338ea89ab4", 10233899), Common::ZH_CNA, ADGF_UNSTABLE, WME_1_9_2),
+					"xlanguage_zh_s.dcp", "d82a5708af24a879cbeaf7338ea89ab4", 10233899), Common::ZH_CHN, ADGF_UNSTABLE, WME_1_9_2),
 
 	// Reversion: The Return (Steam, May 2020) (Traditional Chinese)
 	WME_WINENTRY("reversion3", "Steam",
diff --git a/engines/wintermute/utils/string_util.cpp b/engines/wintermute/utils/string_util.cpp
index 7afab82963..a9dbf9a8cf 100644
--- a/engines/wintermute/utils/string_util.cpp
+++ b/engines/wintermute/utils/string_util.cpp
@@ -104,7 +104,7 @@ Common::CodePage StringUtil::mapCodePage(TTextCharset charset) {
 			return Common::kWindows1251;
 
 		//cp1252: Western Europe
-		case Common::DA_DAN:
+		case Common::DA_DNK:
 		case Common::DE_DEU:
 		case Common::EN_ANY:
 		case Common::EN_GRB:
@@ -116,13 +116,13 @@ Common::CodePage StringUtil::mapCodePage(TTextCharset charset) {
 		case Common::NB_NOR:
 		case Common::NL_NLD:
 		case Common::PT_BRA:
-		case Common::PT_POR:
+		case Common::PT_PRT:
 		case Common::SE_SWE:
 		case Common::UNK_LANG:
 			return Common::kWindows1252;
 
 		//cp1253: Greek
-		case Common::GR_GRE:
+		case Common::EL_GRC:
 			return Common::kWindows1253;
 
 		//cp1254: Turkish
@@ -139,12 +139,12 @@ Common::CodePage StringUtil::mapCodePage(TTextCharset charset) {
 
 		//cp1257: Baltic
 		case Common::ET_EST:
-		case Common::LV_LAT:
+		case Common::LV_LVA:
 			return Common::kWindows1257;
 
 		case Common::JA_JPN:
 		case Common::KO_KOR:
-		case Common::ZH_CNA:
+		case Common::ZH_CHN:
 		case Common::ZH_TWN:
 		default:
 			warning("Unsupported charset: %d", charset);


Commit: 5ef779357869006284385e5a1efb632cfa81aada
    https://github.com/scummvm/scummvm/commit/5ef779357869006284385e5a1efb632cfa81aada
Author: trembyle (sean.patrick.brody at gmail.com)
Date: 2021-11-11T12:06:15+01:00

Commit Message:
COMMON: Return updated language from obsolete code

When an obsolete language code is encountered in a user's
config file, we translate this to the updated language ID.

Changed paths:
    common/language.cpp
    common/language.h


diff --git a/common/language.cpp b/common/language.cpp
index c54b327e6d..9db21cb07c 100644
--- a/common/language.cpp
+++ b/common/language.cpp
@@ -92,6 +92,16 @@ const LanguageDescription g_languages[] = {
 	{ nullptr, nullptr, nullptr, UNK_LANG }
 };
 
+const LanguageDescription g_obsoleteLanguages[] = {
+	{	 "gr", "el_GR", "Greek", EL_GRC },
+	{	 "hb", "he_IL", "Hebrew", HE_ISR },
+	{	 "jp", "ja_JP", "Japanese", JA_JPN },
+	{	 "kr", "ko_KR", "Korean", KO_KOR },
+	{	 "nz",    "zh", "Chinese", ZH_ANY },
+	{ "zh-cn", "zh_CN", "Chinese (Simplified)", ZH_CHN },
+	{ nullptr, nullptr, nullptr, UNK_LANG }
+};
+
 Language parseLanguage(const String &str) {
 	if (str.empty())
 		return UNK_LANG;
@@ -102,6 +112,12 @@ Language parseLanguage(const String &str) {
 			return l->id;
 	}
 
+	const LanguageDescription *ol = g_obsoleteLanguages;
+	for (; ol->code; ++ol) {
+		if (str.equalsIgnoreCase(ol->code))
+			return ol->id;
+	}
+
 	return UNK_LANG;
 }
 
diff --git a/common/language.h b/common/language.h
index ef71ae14c2..8e5f121dd0 100644
--- a/common/language.h
+++ b/common/language.h
@@ -91,7 +91,7 @@ struct LanguageDescription {
 };
 
 extern const LanguageDescription g_languages[];
-
+extern const LanguageDescription g_obsoleteLanguages[];
 
 /** Convert a string containing a language name into a Language enum value. */
 extern Language parseLanguage(const String &str);




More information about the Scummvm-git-logs mailing list