From 499496f9d0d8243713d8c0cf5f1ad3753d54933d Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Mon, 6 Mar 2023 18:39:32 +0200 Subject: [PATCH] Restored Simplified Chinese support --- config/schemas/mod.json | 2 +- config/schemas/settings.json | 2 +- lib/CGeneralTextHandler.cpp | 9 ++++----- lib/Languages.h | 7 +++++-- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/config/schemas/mod.json b/config/schemas/mod.json index 802c155c8..1a4cca448 100644 --- a/config/schemas/mod.json +++ b/config/schemas/mod.json @@ -87,7 +87,7 @@ "language" : { "type":"string", "description": "Base language of the mod, before applying localizations. By default vcmi assumes English", - "enum" : [ "english", "german", "polish", "russian", "ukrainian" ], + "enum" : [ "chinese", "english", "german", "polish", "russian", "ukrainian" ], }, "depends": { "type":"array", diff --git a/config/schemas/settings.json b/config/schemas/settings.json index 0279ab55c..8615d70c9 100644 --- a/config/schemas/settings.json +++ b/config/schemas/settings.json @@ -68,7 +68,7 @@ }, "language" : { "type":"string", - "enum" : [ "english", "german", "polish", "russian", "ukrainian" ], + "enum" : [ "chinese", "english", "german", "polish", "russian", "ukrainian" ], "default" : "english" }, "lastSave" : { diff --git a/lib/CGeneralTextHandler.cpp b/lib/CGeneralTextHandler.cpp index 37e08537b..082211d7c 100644 --- a/lib/CGeneralTextHandler.cpp +++ b/lib/CGeneralTextHandler.cpp @@ -25,8 +25,9 @@ void CGeneralTextHandler::detectInstallParameters() { using LanguageFootprint = std::array; - static const std::array knownFootprints = + static const std::array knownFootprints = { { + { { 0.1602, 0.0000, 0.0357, 0.0054, 0.0038, 0.0017, 0.0077, 0.0214, 0.0000, 0.0000, 0.1264, 0.1947, 0.2012, 0.1406, 0.0480, 0.0532 } }, { { 0.0559, 0.0000, 0.1983, 0.0051, 0.0222, 0.0183, 0.4596, 0.2405, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000 } }, { { 0.0493, 0.0000, 0.1926, 0.0047, 0.0230, 0.0121, 0.4133, 0.2780, 0.0002, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0259, 0.0008 } }, { { 0.0534, 0.0000, 0.1705, 0.0047, 0.0418, 0.0208, 0.4775, 0.2191, 0.0001, 0.0000, 0.0000, 0.0000, 0.0000, 0.0005, 0.0036, 0.0080 } }, @@ -35,8 +36,9 @@ void CGeneralTextHandler::detectInstallParameters() { { 0.0559, 0.0000, 0.1807, 0.0059, 0.0036, 0.0013, 0.0046, 0.0134, 0.0000, 0.0004, 0.0000, 0.0487, 0.0209, 0.0060, 0.4615, 0.1972 } }, } }; - static const std::array knownLanguages = + static const std::array knownLanguages = { { + "chinese", "english", "french", "german", @@ -610,9 +612,6 @@ std::string CGeneralTextHandler::getInstalledLanguage() std::string CGeneralTextHandler::getInstalledEncoding() { - auto explicitSetting = settings["general"]["encoding"].String(); - if (explicitSetting != "auto") - return explicitSetting; return settings["session"]["encoding"].String(); } diff --git a/lib/Languages.h b/lib/Languages.h index 98a4681e0..d7e3f87a9 100644 --- a/lib/Languages.h +++ b/lib/Languages.h @@ -14,6 +14,7 @@ namespace Languages enum class ELanguages { + CHINESE, ENGLISH, FRENCH, GERMAN, @@ -47,11 +48,13 @@ struct Options inline auto const & getLanguageList( ) { - static const std::array languages + static const std::array languages { { + { "chinese", "Chinese", "简体中文", "GBK", false, true }, { "english", "English", "English", "CP1252", true, true }, - { "french", "French", "Français", "CP1252", true, false }, + { "french", "French", "Français", "CP1252", true, true }, { "german", "German", "Deutsch", "CP1252", true, true }, + //TODO: korean - CP949 encoding { "polish", "Polish", "Polski", "CP1250", true, true }, { "russian", "Russian", "Русский", "CP1251", true, true }, { "ukrainian", "Ukrainian", "Українська", "CP1251", true, true }