From 18c2342ea92bec5e4e3d01e2bc25c00d6aeb9b25 Mon Sep 17 00:00:00 2001 From: Henrik Rydgard Date: Wed, 4 Sep 2013 13:25:35 +0200 Subject: [PATCH] Move unicode text out to assets/langregion.ini . Gah. --- UI/MiscScreens.cpp | 65 ++++++++++++++++++---------------- Windows/PPSSPP.vcxproj | 1 + Windows/PPSSPP.vcxproj.filters | 1 + assets/langregion.ini | 46 ++++++++++++++++++++++++ 4 files changed, 82 insertions(+), 31 deletions(-) create mode 100644 assets/langregion.ini diff --git a/UI/MiscScreens.cpp b/UI/MiscScreens.cpp index a838026f0a..52c5934042 100644 --- a/UI/MiscScreens.cpp +++ b/UI/MiscScreens.cpp @@ -96,36 +96,39 @@ void DrawBackground(float alpha) { std::map> GetLangValuesMapping() { std::map> langValuesMapping; - langValuesMapping["ja_JP"] = std::make_pair("日本語", PSP_SYSTEMPARAM_LANGUAGE_JAPANESE); - langValuesMapping["en_US"] = std::make_pair("English",PSP_SYSTEMPARAM_LANGUAGE_ENGLISH); - langValuesMapping["fr_FR"] = std::make_pair("Français", PSP_SYSTEMPARAM_LANGUAGE_FRENCH); - langValuesMapping["es_ES"] = std::make_pair("Castellano (España)", PSP_SYSTEMPARAM_LANGUAGE_SPANISH); - langValuesMapping["es_LA"] = std::make_pair("Español (América Latina)", PSP_SYSTEMPARAM_LANGUAGE_SPANISH); - langValuesMapping["de_DE"] = std::make_pair("Deutsch", PSP_SYSTEMPARAM_LANGUAGE_GERMAN); - langValuesMapping["it_IT"] = std::make_pair("Italiano", PSP_SYSTEMPARAM_LANGUAGE_ITALIAN); - langValuesMapping["nl_NL"] = std::make_pair("Nederlands", PSP_SYSTEMPARAM_LANGUAGE_DUTCH); - langValuesMapping["pt_PT"] = std::make_pair("Português", PSP_SYSTEMPARAM_LANGUAGE_PORTUGUESE); - langValuesMapping["pt_BR"] = std::make_pair("Português Brasileiro", PSP_SYSTEMPARAM_LANGUAGE_PORTUGUESE); - langValuesMapping["ru_RU"] = std::make_pair("Русский", PSP_SYSTEMPARAM_LANGUAGE_RUSSIAN); - langValuesMapping["ko_KR"] = std::make_pair("한국어", PSP_SYSTEMPARAM_LANGUAGE_KOREAN); - langValuesMapping["zh_TW"] = std::make_pair("繁體中文", PSP_SYSTEMPARAM_LANGUAGE_CHINESE_TRADITIONAL); - langValuesMapping["zh_CN"] = std::make_pair("简体中文", PSP_SYSTEMPARAM_LANGUAGE_CHINESE_SIMPLIFIED); + IniFile mapping; + mapping.LoadFromVFS("langregion.ini"); + std::vector keys; + mapping.GetKeys("LangRegionNames", keys); - //langValuesMapping["ar_AE"] = std::make_pair("العربية", PSP_SYSTEMPARAM_LANGUAGE_ENGLISH); - langValuesMapping["az_AZ"] = std::make_pair("Azeri", PSP_SYSTEMPARAM_LANGUAGE_ENGLISH); - langValuesMapping["ca_ES"] = std::make_pair("Català", PSP_SYSTEMPARAM_LANGUAGE_ENGLISH); - langValuesMapping["gr_EL"] = std::make_pair("Ελληνικά", PSP_SYSTEMPARAM_LANGUAGE_ENGLISH); - langValuesMapping["he_IL"] = std::make_pair("עברית", PSP_SYSTEMPARAM_LANGUAGE_ENGLISH); - langValuesMapping["hu_HU"] = std::make_pair("Magyar", PSP_SYSTEMPARAM_LANGUAGE_ENGLISH); - langValuesMapping["id_ID"] = std::make_pair("Indonesia", PSP_SYSTEMPARAM_LANGUAGE_ENGLISH); - langValuesMapping["pl_PL"] = std::make_pair("Polski", PSP_SYSTEMPARAM_LANGUAGE_ENGLISH); - langValuesMapping["ro_RO"] = std::make_pair("Român", PSP_SYSTEMPARAM_LANGUAGE_ENGLISH); - langValuesMapping["sv_SE"] = std::make_pair("Svenska", PSP_SYSTEMPARAM_LANGUAGE_ENGLISH); - langValuesMapping["tr_TR"] = std::make_pair("Türk", PSP_SYSTEMPARAM_LANGUAGE_ENGLISH); - langValuesMapping["uk_UA"] = std::make_pair("Українська", PSP_SYSTEMPARAM_LANGUAGE_ENGLISH); - langValuesMapping["vn_VN"] = std::make_pair("Vietnamese", PSP_SYSTEMPARAM_LANGUAGE_ENGLISH); - langValuesMapping["cz_CZ"] = std::make_pair("Česky", PSP_SYSTEMPARAM_LANGUAGE_ENGLISH); - langValuesMapping["tg_PH"] = std::make_pair("Tagalog", PSP_SYSTEMPARAM_LANGUAGE_ENGLISH); + + std::map langCodeMapping; + langCodeMapping["JAPANESE"] = PSP_SYSTEMPARAM_LANGUAGE_JAPANESE; + langCodeMapping["ENGLISH"] = PSP_SYSTEMPARAM_LANGUAGE_ENGLISH; + langCodeMapping["FRENCH"] = PSP_SYSTEMPARAM_LANGUAGE_FRENCH; + langCodeMapping["SPANISH"] = PSP_SYSTEMPARAM_LANGUAGE_SPANISH; + langCodeMapping["GERMAN"] = PSP_SYSTEMPARAM_LANGUAGE_GERMAN; + langCodeMapping["ITALIAN"] = PSP_SYSTEMPARAM_LANGUAGE_ITALIAN; + langCodeMapping["DUTCH"] = PSP_SYSTEMPARAM_LANGUAGE_DUTCH; + langCodeMapping["PORTUGUESE"] = PSP_SYSTEMPARAM_LANGUAGE_PORTUGUESE; + langCodeMapping["RUSSIAN"] = PSP_SYSTEMPARAM_LANGUAGE_RUSSIAN; + langCodeMapping["KOREAN"] = PSP_SYSTEMPARAM_LANGUAGE_KOREAN; + langCodeMapping["CHINESE_TRADITIONAL"] = PSP_SYSTEMPARAM_LANGUAGE_CHINESE_TRADITIONAL; + langCodeMapping["CHINESE_SIMPLIFIED"] = PSP_SYSTEMPARAM_LANGUAGE_CHINESE_SIMPLIFIED; + + IniFile::Section *langRegionNames = mapping.GetOrCreateSection("LangRegionNames"); + IniFile::Section *systemLanguage = mapping.GetOrCreateSection("SystemLanguage"); + + for (size_t i = 0; i < keys.size(); i++) { + std::string langName; + langRegionNames->Get(keys[i].c_str(), &langName, "ERROR"); + std::string langCode; + systemLanguage->Get(keys[i].c_str(), &langCode, "ENGLISH"); + int iLangCode = PSP_SYSTEMPARAM_LANGUAGE_ENGLISH; + if (langCodeMapping.find(langCode) != langCodeMapping.end()) + iLangCode = langCodeMapping[langCode]; + langValuesMapping[keys[i]] = std::make_pair(langName, iLangCode); + } return langValuesMapping; } @@ -308,7 +311,7 @@ void LogoScreen::render() { I18NCategory *c = GetI18NCategory("PSPCredits"); char temp[256]; - sprintf(temp, "%s Henrik Rydgård", c->T("created", "Created by")); + sprintf(temp, "%s Henrik Rydg\xc3\xa5rd", c->T("created", "Created by")); dc.Draw()->DrawImage(I_LOGO, dp_xres / 2, dp_yres / 2 - 30, 1.5f, colorAlpha(0xFFFFFFFF, alphaText), ALIGN_CENTER); //dc.Draw()->DrawTextShadow(UBUNTU48, "PPSSPP", dp_xres / 2, dp_yres / 2 - 30, colorAlpha(0xFFFFFFFF, alphaText), ALIGN_CENTER); @@ -438,7 +441,7 @@ void CreditsScreen::render() { "", "", c->T("created", "Created by"), - "Henrik Rydgård", + "Henrik Rydg\xc3\xa5rd", "(aka hrydgard, ector)", "", "", diff --git a/Windows/PPSSPP.vcxproj b/Windows/PPSSPP.vcxproj index 6e1cd10342..dec7df727b 100644 --- a/Windows/PPSSPP.vcxproj +++ b/Windows/PPSSPP.vcxproj @@ -334,6 +334,7 @@ + diff --git a/Windows/PPSSPP.vcxproj.filters b/Windows/PPSSPP.vcxproj.filters index 6b50e9739d..2ba3c25dd6 100644 --- a/Windows/PPSSPP.vcxproj.filters +++ b/Windows/PPSSPP.vcxproj.filters @@ -226,6 +226,7 @@ + diff --git a/assets/langregion.ini b/assets/langregion.ini new file mode 100644 index 0000000000..8786a4ff29 --- /dev/null +++ b/assets/langregion.ini @@ -0,0 +1,46 @@ +[LangRegionNames] +ja_JP = "日本語" +en_US = "English" +fr_FR = "Français" +es_ES = "Castellano (España)" +es_LA = "Español (América Latina)" +de_DE = "Deutsch" +it_IT = "Italiano" +nl_NL = "Nederlands" +pt_PT = "Português" +pt_BR = "Português Brasileiro" +ru_RU = "Русский" +ko_KR = "한국어" +zh_TW = "繁體中文" +zh_CN = "简体中文" +ar_AE = "العربية" +az_AZ = "Azeri" +ca_ES = "Català" +gr_EL = "Ελληνικά" +he_IL = "עברית" +hu_HU = "Magyar" +id_ID = "Indonesia" +pl_PL = "Polski" +ro_RO = "Român" +sv_SE = "Svenska" +tr_TR = "Türk" +uk_UA = "Українська" +vn_VN = "Vietnamese" +cz_CZ = "Česky" +tg_PH = "Tagalog" + +[SystemLanguage] +ja_JP = "JAPANESE" +en_US = "ENGLISH" +fr_FR = "FRENCH" +es_ES = "SPANISH" +es_LA = "SPANISH" +de_DE = "GERMAN" +it_IT = "ITALIAN" +nl_NL = "DUTCH" +pt_PT = "PORTUGUESE" +pt_BR = "PORTUGUESE" +ru_RU = "RUSSIAN" +ko_KR = "KOREAN" +zh_TW = "CHINESE_TRADITIONAL" +zh_CN = "CHINESE_SIMPLIFIED"