瀏覽代碼

国家转换类bug修改

wangsy 2 月之前
父節點
當前提交
00e5d49237

+ 2 - 2
src/main/java/com/qizhen/healsphere/common/util/ContinentConverter.java

@@ -19,8 +19,8 @@ public class ContinentConverter {
         map.put("asia", "亚洲");
         map.put("europe", "欧洲");
         map.put("africa", "非洲");
-        map.put("north america", "北美洲");
-        map.put("south america", "南美洲");
+        map.put("north_america", "北美洲");
+        map.put("south_america", "南美洲");
         map.put("oceania", "大洋洲");
         map.put("antarctica", "南极洲"); // 可选
         CONTINENT_MAP = Collections.unmodifiableMap(map); // 不可变 Map

+ 58 - 50
src/main/java/com/qizhen/healsphere/common/util/CountryConverter.java

@@ -19,14 +19,16 @@ public class CountryConverter {
         // ------------------- 亚洲 -------------------
         // ------------------- 东亚 -------------------
         map.put("china", "中国");       // 中国
+        map.put("hong_kong_(sar)", "中国香港");
+        map.put("taiwan", "中国台湾");
         map.put("japan", "日本");       // 日本
-        map.put("south korea", "韩国"); // 韩国(大韩民国)
-        map.put("north korea", "朝鲜"); // 朝鲜(朝鲜民主主义人民共和国)
+        map.put("korea,_republic_of", "韩国"); // 韩国(大韩民国)
+        map.put("north_korea", "朝鲜"); // 朝鲜(朝鲜民主主义人民共和国)
         map.put("mongolia", "蒙古");    // 蒙古
 
 // ------------------- 东南亚 -------------------
         map.put("vietnam", "越南");         // 越南
-        map.put("laos", "老挝");            // 老挝
+        map.put("lao,_people's_democratic_republic", "老挝"); // 老挝
         map.put("cambodia", "柬埔寨");       // 柬埔寨
         map.put("thailand", "泰国");        // 泰国
         map.put("myanmar", "缅甸");         // 缅甸
@@ -35,13 +37,13 @@ public class CountryConverter {
         map.put("indonesia", "印度尼西亚");  // 印度尼西亚
         map.put("philippines", "菲律宾");    // 菲律宾
         map.put("brunei", "文莱");          // 文莱
-        map.put("east timor", "东帝汶");     // 东帝汶(Timor-Leste)
+        map.put("timor-leste", "东帝汶");     // 东帝汶(Timor-Leste)
 
 // ------------------- 南亚 -------------------
         map.put("india", "印度");           // 印度
         map.put("pakistan", "巴基斯坦");     // 巴基斯坦
         map.put("bangladesh", "孟加拉国");  // 孟加拉国
-        map.put("sri lanka", "斯里兰卡");    // 斯里兰卡
+        map.put("sri_lanka", "斯里兰卡");    // 斯里兰卡
         map.put("nepal", "尼泊尔");         // 尼泊尔
         map.put("bhutan", "不丹");          // 不丹
         map.put("maldives", "马尔代夫");     // 马尔代夫
@@ -56,17 +58,17 @@ public class CountryConverter {
 
 // ------------------- 西亚 -------------------
         map.put("turkey", "土耳其");         // 土耳其(部分领土在亚洲)
-        map.put("iran", "伊朗");             // 伊朗
+        map.put("iran,_islamic_republic_of", "伊朗");             // 伊朗
         map.put("iraq", "伊拉克");           // 伊拉克
-        map.put("saudi arabia", "沙特阿拉伯");// 沙特阿拉伯
+        map.put("saudi_arabia", "沙特阿拉伯");// 沙特阿拉伯
         map.put("yemen", "也门");            // 也门
-        map.put("syria", "叙利亚");          // 叙利亚
+        map.put("syrian_arab_republic", "叙利亚");          // 叙利亚
         map.put("jordan", "约旦");           // 约旦
         map.put("lebanon", "黎巴嫩");         // 黎巴嫩
         map.put("israel", "以色列");          // 以色列
-        map.put("palestine", "巴勒斯坦");     // 巴勒斯坦(联合国观察员国)
+        map.put("palestinian_territory", "巴勒斯坦");     // 巴勒斯坦(联合国观察员国)
         map.put("kuwait", "科威特");         // 科威特
-        map.put("united arab emirates", "阿联酋");  // 阿拉伯联合酋长国
+        map.put("united_arab_emirates", "阿联酋");  // 阿拉伯联合酋长国
         map.put("qatar", "卡塔尔");           // 卡塔尔
         map.put("oman", "阿曼");              // 阿曼
         map.put("georgia", "格鲁吉亚");        // 格鲁吉亚(部分领土在亚洲)
@@ -100,20 +102,20 @@ public class CountryConverter {
         map.put("portugal", "葡萄牙");
         map.put("greece", "希腊");
         map.put("malta", "马耳他");
-        map.put("san marino", "圣马力诺");
+        map.put("san_marino", "圣马力诺");
         map.put("vatican city", "梵蒂冈");
         map.put("andorra", "安道尔");
         map.put("croatia", "克罗地亚");
         map.put("slovenia", "斯洛文尼亚");
-        map.put("bosnia and herzegovina", "波黑");
+        map.put("bosnia_and_herzegovina", "波黑");
         map.put("montenegro", "黑山");
         map.put("albania", "阿尔巴尼亚");
-        map.put("north macedonia", "北马其顿");
+        map.put("macedonia,_the_former_yogoslav_republic_of", "北马其顿");
 
 // ------------------- 东欧 -------------------
-        map.put("russia", "俄罗斯");         // 欧洲部分
+        map.put("russian_federation", "俄罗斯");         // 欧洲部分
         map.put("poland", "波兰");
-        map.put("czech republic", "捷克");
+        map.put("czech_republic", "捷克");
         map.put("slovakia", "斯洛伐克");
         map.put("hungary", "匈牙利");
         map.put("romania", "罗马尼亚");
@@ -121,13 +123,13 @@ public class CountryConverter {
         map.put("serbia", "塞尔维亚");
         map.put("ukraine", "乌克兰");
         map.put("belarus", "白俄罗斯");
-        map.put("moldova", "摩尔多瓦");
+        map.put("moldova,_republic_of", "摩尔多瓦");
         map.put("estonia", "爱沙尼亚");
         map.put("latvia", "拉脱维亚");
         map.put("lithuania", "立陶宛");
 
 // ------------------- 其他 -------------------
-        map.put("united kingdom", "英国");    // 包括英格兰、苏格兰、威尔士、北爱尔兰
+        map.put("united_kingdom", "英国");    // 包括英格兰、苏格兰、威尔士、北爱尔兰
         map.put("ireland", "爱尔兰");
         map.put("cyprus", "塞浦路斯");        // 政治文化属欧洲
         map.put("georgia", "格鲁吉亚");       // 地理部分属欧洲
@@ -146,31 +148,31 @@ public class CountryConverter {
 
 // ------------------- 西非 -------------------
         map.put("benin", "贝宁");
-        map.put("burkina faso", "布基纳法索");
-        map.put("cape verde", "佛得角");
-        map.put("cote divoire", "科特迪瓦");  // Côte d'Ivoire
+        map.put("burkina_faso", "布基纳法索");
+        map.put("cape_verde", "佛得角");
+        map.put("cote_d'ivoire", "科特迪瓦");  // Côte d'Ivoire
         map.put("gambia", "冈比亚");
         map.put("ghana", "加纳");
         map.put("guinea", "几内亚");
-        map.put("guinea bissau", "几内亚比绍");
+        map.put("guinea_bissau", "几内亚比绍");
         map.put("liberia", "利比里亚");
         map.put("mali", "马里");
         map.put("mauritania", "毛里塔尼亚");
         map.put("niger", "尼日尔");
         map.put("nigeria", "尼日利亚");
         map.put("senegal", "塞内加尔");
-        map.put("sierra leone", "塞拉利昂");
+        map.put("sierra_leone", "塞拉利昂");
         map.put("togo", "多哥");
 
 // ------------------- 中非 -------------------
         map.put("cameroon", "喀麦隆");
-        map.put("central african republic", "中非共和国");
+        map.put("central_african_republic", "中非共和国");
         map.put("chad", "乍得");
-        map.put("congo brazzaville", "刚果(布)");  // Republic of the Congo
-        map.put("congo kinshasa", "刚果(金)");     // Democratic Republic of the Congo
-        map.put("equatorial guinea", "赤道几内亚");
+        map.put("congo_brazzaville", "刚果(布)");  // Republic of the Congo
+        map.put("congo,_the_democatic_republic_of", "刚果(金)");     // Democratic Republic of the Congo
+        map.put("equatorial_guinea", "赤道几内亚");
         map.put("gabon", "加蓬");
-        map.put("sao tome and principe", "圣多美和普林西比");
+        map.put("sao_tome_and_principe", "圣多美和普林西比");
 
 // ------------------- 东非 -------------------
         map.put("burundi", "布隆迪");
@@ -186,7 +188,7 @@ public class CountryConverter {
         map.put("rwanda", "卢旺达");
         map.put("seychelles", "塞舌尔");
         map.put("somalia", "索马里");
-        map.put("tanzania", "坦桑尼亚");
+        map.put("tanzania,_united_republic_of", "坦桑尼亚");
         map.put("uganda", "乌干达");
         map.put("zambia", "赞比亚");
         map.put("zimbabwe", "津巴布韦");
@@ -197,35 +199,35 @@ public class CountryConverter {
         map.put("eswatini", "斯威士兰");       // 旧称Swaziland
         map.put("lesotho", "莱索托");
         map.put("namibia", "纳米比亚");
-        map.put("south africa", "南非");
+        map.put("south_africa", "南非");
         // ------------------- 北美洲 -------------------
         map.put("canada", "加拿大");
-        map.put("united states", "美国");   // 美利坚合众国
+        map.put("united_states", "美国");   // 美利坚合众国
         map.put("mexico", "墨西哥");
 
 // ------------------- 中美洲 -------------------
         map.put("belize", "伯利兹");
-        map.put("costa rica", "哥斯达黎加");
-        map.put("el salvador", "萨尔瓦多");
+        map.put("costa_rica", "哥斯达黎加");
+        map.put("el_salvador", "萨尔瓦多");
         map.put("guatemala", "危地马拉");
         map.put("honduras", "洪都拉斯");
         map.put("nicaragua", "尼加拉瓜");
         map.put("panama", "巴拿马");
 
 // ------------------- 加勒比海地区 -------------------
-        map.put("antigua and barbuda", "安提瓜和巴布达");
+        map.put("antigua_and_barbuda", "安提瓜和巴布达");
         map.put("bahamas", "巴哈马");         // 全称:The Commonwealth of The Bahamas
         map.put("barbados", "巴巴多斯");
         map.put("cuba", "古巴");
         map.put("dominica", "多米尼克");
-        map.put("dominican republic", "多米尼加");
+        map.put("dominican_republic", "多米尼加");
         map.put("grenada", "格林纳达");
         map.put("haiti", "海地");
         map.put("jamaica", "牙买加");
-        map.put("saint kitts and nevis", "圣基茨和尼维斯");
-        map.put("saint lucia", "圣卢西亚");
-        map.put("saint vincent and the grenadines", "圣文森特和格林纳丁斯");
-        map.put("trinidad and tobago", "特立尼达和多巴哥");
+        map.put("saint_kitts_and_nevis,_federation_of", "圣基茨和尼维斯");
+        map.put("saint_lucia", "圣卢西亚");
+        map.put("saint_vincent_and_the_grenadines", "圣文森特和格林纳丁斯");
+        map.put("trinidad_and_tobago", "特立尼达和多巴哥");
         // ------------------- 南美洲 -------------------
         map.put("argentina", "阿根廷");
         map.put("bolivia", "玻利维亚");
@@ -238,25 +240,34 @@ public class CountryConverter {
         map.put("peru", "秘鲁");
         map.put("suriname", "苏里南");
         map.put("uruguay", "乌拉圭");
-        map.put("venezuela", "委内瑞拉");
+        map.put("venezuela,_bolivarian_republic_of", "委内瑞拉");
         // ------------------- 大洋洲 -------------------
         map.put("australia", "澳大利亚");
-        map.put("new zealand", "新西兰");
-        map.put("papua new guinea", "巴布亚新几内亚");
+        map.put("new_zealand", "新西兰");
+        map.put("papua_new_guinea", "巴布亚新几内亚");
 
 // ------------------- 太平洋岛国 -------------------
         map.put("fiji", "斐济");
-        map.put("solomon islands", "所罗门群岛");
+        map.put("solomon_islands", "所罗门群岛");
         map.put("vanuatu", "瓦努阿图");
         map.put("samoa", "萨摩亚");
         map.put("tonga", "汤加");
         map.put("nauru", "瑙鲁");
         map.put("kiribati", "基里巴斯");
         map.put("tuvalu", "图瓦卢");
-        map.put("marshall islands", "马绍尔群岛");
+        map.put("marshall_islands", "马绍尔群岛");
         map.put("micronesia", "密克罗尼西亚联邦");
         map.put("palau", "帕劳");
         // ... 其他国家的映射可在此补充
+        map.put("new_caledonia", "法国新喀里多尼亚");
+        map.put("puerto_rico", "波多黎各自治邦");
+        map.put("american_samoa", "美属萨摩亚");
+        map.put("guadeloupe", "法国瓜德罗普");
+        map.put("french_guiana", "法属圭亚那");
+        map.put("bahrain", "巴林");
+        map.put("northern_mariana_islands", "北马里亚纳群岛");
+        map.put("reunion", "联合国会员国");
+        map.put("martinique", "马提尼克");
         COUNTRY_MAP = Collections.unmodifiableMap(map); // 不可变 Map
     }
 
@@ -269,14 +280,11 @@ public class CountryConverter {
         if (englishNames == null || englishNames.isEmpty()) {
             return "未知地区";
         }
-        String[] parts = englishNames.split(",\\s*");
         StringBuilder result = new StringBuilder();
-        for (String part : parts) {
-            // 统一处理格式:小写 + 替换空格为下划线
-            String key = part.trim().toLowerCase().replace(" ", "_");
-            String chinese = COUNTRY_MAP.getOrDefault(key, part + "(未知)");
-            result.append(chinese).append(", ");
-        }
+        // 统一处理格式:小写 + 替换空格为下划线
+        String key = englishNames.trim().toLowerCase().replace(" ", "_");
+        String chinese = COUNTRY_MAP.getOrDefault(key, englishNames + "(未知)");
+        result.append(chinese).append(", ");
         if (result.length() > 0) {
             result.setLength(result.length() - 2); // 移除末尾的 ", "
         }