瀏覽代碼

Restored Simplified Chinese support

Ivan Savenko 2 年之前
父節點
當前提交
499496f9d0
共有 4 個文件被更改,包括 11 次插入9 次删除
  1. 1 1
      config/schemas/mod.json
  2. 1 1
      config/schemas/settings.json
  3. 4 5
      lib/CGeneralTextHandler.cpp
  4. 5 2
      lib/Languages.h

+ 1 - 1
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",

+ 1 - 1
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" : {

+ 4 - 5
lib/CGeneralTextHandler.cpp

@@ -25,8 +25,9 @@ void CGeneralTextHandler::detectInstallParameters()
 {
 	using LanguageFootprint = std::array<double, 16>;
 
-	static const std::array<LanguageFootprint, 6> knownFootprints =
+	static const std::array<LanguageFootprint, 7> 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<std::string, 6> knownLanguages =
+	static const std::array<std::string, 7> 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();
 }
 

+ 5 - 2
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<Options, 6> languages
+	static const std::array<Options, 7> 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 }