|
@@ -0,0 +1,285 @@
|
|
|
+package com.qizhen.healsphere.common.util;
|
|
|
+
|
|
|
+
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @Description: 国家转换工具类
|
|
|
+ * @author: dsYun
|
|
|
+ * @time: 2025/04/27 14:21
|
|
|
+ */
|
|
|
+public class CountryConverter {
|
|
|
+
|
|
|
+ // 国家中英文映射表(英文小写 + 下划线格式)
|
|
|
+ private static final Map<String, String> COUNTRY_MAP;
|
|
|
+ static {
|
|
|
+ Map<String, String> map = new HashMap<>();
|
|
|
+ // ------------------- 亚洲 -------------------
|
|
|
+ // ------------------- 东亚 -------------------
|
|
|
+ map.put("china", "中国"); // 中国
|
|
|
+ map.put("japan", "日本"); // 日本
|
|
|
+ map.put("south korea", "韩国"); // 韩国(大韩民国)
|
|
|
+ map.put("north korea", "朝鲜"); // 朝鲜(朝鲜民主主义人民共和国)
|
|
|
+ map.put("mongolia", "蒙古"); // 蒙古
|
|
|
+
|
|
|
+// ------------------- 东南亚 -------------------
|
|
|
+ map.put("vietnam", "越南"); // 越南
|
|
|
+ map.put("laos", "老挝"); // 老挝
|
|
|
+ map.put("cambodia", "柬埔寨"); // 柬埔寨
|
|
|
+ map.put("thailand", "泰国"); // 泰国
|
|
|
+ map.put("myanmar", "缅甸"); // 缅甸
|
|
|
+ map.put("malaysia", "马来西亚"); // 马来西亚
|
|
|
+ map.put("singapore", "新加坡"); // 新加坡
|
|
|
+ map.put("indonesia", "印度尼西亚"); // 印度尼西亚
|
|
|
+ map.put("philippines", "菲律宾"); // 菲律宾
|
|
|
+ map.put("brunei", "文莱"); // 文莱
|
|
|
+ map.put("east timor", "东帝汶"); // 东帝汶(Timor-Leste)
|
|
|
+
|
|
|
+// ------------------- 南亚 -------------------
|
|
|
+ map.put("india", "印度"); // 印度
|
|
|
+ map.put("pakistan", "巴基斯坦"); // 巴基斯坦
|
|
|
+ map.put("bangladesh", "孟加拉国"); // 孟加拉国
|
|
|
+ map.put("sri lanka", "斯里兰卡"); // 斯里兰卡
|
|
|
+ map.put("nepal", "尼泊尔"); // 尼泊尔
|
|
|
+ map.put("bhutan", "不丹"); // 不丹
|
|
|
+ map.put("maldives", "马尔代夫"); // 马尔代夫
|
|
|
+ map.put("afghanistan", "阿富汗"); // 阿富汗
|
|
|
+
|
|
|
+// ------------------- 中亚 -------------------
|
|
|
+ map.put("kazakhstan", "哈萨克斯坦"); // 哈萨克斯坦
|
|
|
+ map.put("uzbekistan", "乌兹别克斯坦");// 乌兹别克斯坦
|
|
|
+ map.put("turkmenistan", "土库曼斯坦");// 土库曼斯坦
|
|
|
+ map.put("kyrgyzstan", "吉尔吉斯斯坦");// 吉尔吉斯斯坦
|
|
|
+ map.put("tajikistan", "塔吉克斯坦"); // 塔吉克斯坦
|
|
|
+
|
|
|
+// ------------------- 西亚 -------------------
|
|
|
+ map.put("turkey", "土耳其"); // 土耳其(部分领土在亚洲)
|
|
|
+ map.put("iran", "伊朗"); // 伊朗
|
|
|
+ map.put("iraq", "伊拉克"); // 伊拉克
|
|
|
+ map.put("saudi arabia", "沙特阿拉伯");// 沙特阿拉伯
|
|
|
+ map.put("yemen", "也门"); // 也门
|
|
|
+ map.put("syria", "叙利亚"); // 叙利亚
|
|
|
+ map.put("jordan", "约旦"); // 约旦
|
|
|
+ map.put("lebanon", "黎巴嫩"); // 黎巴嫩
|
|
|
+ map.put("israel", "以色列"); // 以色列
|
|
|
+ map.put("palestine", "巴勒斯坦"); // 巴勒斯坦(联合国观察员国)
|
|
|
+ map.put("kuwait", "科威特"); // 科威特
|
|
|
+ map.put("united arab emirates", "阿联酋"); // 阿拉伯联合酋长国
|
|
|
+ map.put("qatar", "卡塔尔"); // 卡塔尔
|
|
|
+ map.put("oman", "阿曼"); // 阿曼
|
|
|
+ map.put("georgia", "格鲁吉亚"); // 格鲁吉亚(部分领土在亚洲)
|
|
|
+ map.put("armenia", "亚美尼亚"); // 亚美尼亚
|
|
|
+ map.put("azerbaijan", "阿塞拜疆"); // 阿塞拜疆
|
|
|
+ map.put("cyprus", "塞浦路斯"); // 塞浦路斯(地理属亚洲,文化属欧洲)
|
|
|
+
|
|
|
+// 注:根据国际惯例,部分跨大洲国家仅列出其亚洲部分
|
|
|
+ // ------------------- 欧洲 -------------------
|
|
|
+ // ------------------- 西欧 -------------------
|
|
|
+ map.put("germany", "德国");
|
|
|
+ map.put("france", "法国");
|
|
|
+ map.put("netherlands", "荷兰");
|
|
|
+ map.put("belgium", "比利时");
|
|
|
+ map.put("luxembourg", "卢森堡");
|
|
|
+ map.put("switzerland", "瑞士");
|
|
|
+ map.put("austria", "奥地利");
|
|
|
+ map.put("liechtenstein", "列支敦士登");
|
|
|
+ map.put("monaco", "摩纳哥");
|
|
|
+
|
|
|
+// ------------------- 北欧 -------------------
|
|
|
+ map.put("denmark", "丹麦");
|
|
|
+ map.put("norway", "挪威");
|
|
|
+ map.put("sweden", "瑞典");
|
|
|
+ map.put("finland", "芬兰");
|
|
|
+ map.put("iceland", "冰岛");
|
|
|
+
|
|
|
+// ------------------- 南欧 -------------------
|
|
|
+ map.put("italy", "意大利");
|
|
|
+ map.put("spain", "西班牙");
|
|
|
+ map.put("portugal", "葡萄牙");
|
|
|
+ map.put("greece", "希腊");
|
|
|
+ map.put("malta", "马耳他");
|
|
|
+ map.put("san marino", "圣马力诺");
|
|
|
+ map.put("vatican city", "梵蒂冈");
|
|
|
+ map.put("andorra", "安道尔");
|
|
|
+ map.put("croatia", "克罗地亚");
|
|
|
+ map.put("slovenia", "斯洛文尼亚");
|
|
|
+ map.put("bosnia and herzegovina", "波黑");
|
|
|
+ map.put("montenegro", "黑山");
|
|
|
+ map.put("albania", "阿尔巴尼亚");
|
|
|
+ map.put("north macedonia", "北马其顿");
|
|
|
+
|
|
|
+// ------------------- 东欧 -------------------
|
|
|
+ map.put("russia", "俄罗斯"); // 欧洲部分
|
|
|
+ map.put("poland", "波兰");
|
|
|
+ map.put("czech republic", "捷克");
|
|
|
+ map.put("slovakia", "斯洛伐克");
|
|
|
+ map.put("hungary", "匈牙利");
|
|
|
+ map.put("romania", "罗马尼亚");
|
|
|
+ map.put("bulgaria", "保加利亚");
|
|
|
+ map.put("serbia", "塞尔维亚");
|
|
|
+ map.put("ukraine", "乌克兰");
|
|
|
+ map.put("belarus", "白俄罗斯");
|
|
|
+ map.put("moldova", "摩尔多瓦");
|
|
|
+ map.put("estonia", "爱沙尼亚");
|
|
|
+ map.put("latvia", "拉脱维亚");
|
|
|
+ map.put("lithuania", "立陶宛");
|
|
|
+
|
|
|
+// ------------------- 其他 -------------------
|
|
|
+ map.put("united kingdom", "英国"); // 包括英格兰、苏格兰、威尔士、北爱尔兰
|
|
|
+ map.put("ireland", "爱尔兰");
|
|
|
+ map.put("cyprus", "塞浦路斯"); // 政治文化属欧洲
|
|
|
+ map.put("georgia", "格鲁吉亚"); // 地理部分属欧洲
|
|
|
+ map.put("armenia", "亚美尼亚"); // 文化关联欧洲
|
|
|
+ map.put("azerbaijan", "阿塞拜疆"); // 部分领土在欧洲
|
|
|
+ map.put("turkey", "土耳其"); // 欧洲部分(色雷斯地区)
|
|
|
+ // ------------------- 非洲 -------------------
|
|
|
+ // ------------------- 北非 -------------------
|
|
|
+ map.put("algeria", "阿尔及利亚");
|
|
|
+ map.put("egypt", "埃及");
|
|
|
+ map.put("libya", "利比亚");
|
|
|
+ map.put("morocco", "摩洛哥");
|
|
|
+ map.put("sudan", "苏丹");
|
|
|
+ map.put("tunisia", "突尼斯");
|
|
|
+ map.put("south sudan", "南苏丹"); // 2011年独立
|
|
|
+
|
|
|
+// ------------------- 西非 -------------------
|
|
|
+ map.put("benin", "贝宁");
|
|
|
+ map.put("burkina faso", "布基纳法索");
|
|
|
+ map.put("cape verde", "佛得角");
|
|
|
+ map.put("cote divoire", "科特迪瓦"); // Côte d'Ivoire
|
|
|
+ map.put("gambia", "冈比亚");
|
|
|
+ map.put("ghana", "加纳");
|
|
|
+ map.put("guinea", "几内亚");
|
|
|
+ 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("togo", "多哥");
|
|
|
+
|
|
|
+// ------------------- 中非 -------------------
|
|
|
+ map.put("cameroon", "喀麦隆");
|
|
|
+ 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("gabon", "加蓬");
|
|
|
+ map.put("sao tome and principe", "圣多美和普林西比");
|
|
|
+
|
|
|
+// ------------------- 东非 -------------------
|
|
|
+ map.put("burundi", "布隆迪");
|
|
|
+ map.put("comoros", "科摩罗");
|
|
|
+ map.put("djibouti", "吉布提");
|
|
|
+ map.put("eritrea", "厄立特里亚");
|
|
|
+ map.put("ethiopia", "埃塞俄比亚");
|
|
|
+ map.put("kenya", "肯尼亚");
|
|
|
+ map.put("madagascar", "马达加斯加");
|
|
|
+ map.put("malawi", "马拉维");
|
|
|
+ map.put("mauritius", "毛里求斯");
|
|
|
+ map.put("mozambique", "莫桑比克");
|
|
|
+ map.put("rwanda", "卢旺达");
|
|
|
+ map.put("seychelles", "塞舌尔");
|
|
|
+ map.put("somalia", "索马里");
|
|
|
+ map.put("tanzania", "坦桑尼亚");
|
|
|
+ map.put("uganda", "乌干达");
|
|
|
+ map.put("zambia", "赞比亚");
|
|
|
+ map.put("zimbabwe", "津巴布韦");
|
|
|
+
|
|
|
+// ------------------- 南部非洲 -------------------
|
|
|
+ map.put("angola", "安哥拉");
|
|
|
+ map.put("botswana", "博茨瓦纳");
|
|
|
+ map.put("eswatini", "斯威士兰"); // 旧称Swaziland
|
|
|
+ map.put("lesotho", "莱索托");
|
|
|
+ map.put("namibia", "纳米比亚");
|
|
|
+ map.put("south africa", "南非");
|
|
|
+ // ------------------- 北美洲 -------------------
|
|
|
+ map.put("canada", "加拿大");
|
|
|
+ map.put("united states", "美国"); // 美利坚合众国
|
|
|
+ map.put("mexico", "墨西哥");
|
|
|
+
|
|
|
+// ------------------- 中美洲 -------------------
|
|
|
+ map.put("belize", "伯利兹");
|
|
|
+ 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("bahamas", "巴哈马"); // 全称:The Commonwealth of The Bahamas
|
|
|
+ map.put("barbados", "巴巴多斯");
|
|
|
+ map.put("cuba", "古巴");
|
|
|
+ map.put("dominica", "多米尼克");
|
|
|
+ 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("argentina", "阿根廷");
|
|
|
+ map.put("bolivia", "玻利维亚");
|
|
|
+ map.put("brazil", "巴西");
|
|
|
+ map.put("chile", "智利");
|
|
|
+ map.put("colombia", "哥伦比亚");
|
|
|
+ map.put("ecuador", "厄瓜多尔");
|
|
|
+ map.put("guyana", "圭亚那");
|
|
|
+ map.put("paraguay", "巴拉圭");
|
|
|
+ map.put("peru", "秘鲁");
|
|
|
+ map.put("suriname", "苏里南");
|
|
|
+ map.put("uruguay", "乌拉圭");
|
|
|
+ map.put("venezuela", "委内瑞拉");
|
|
|
+ // ------------------- 大洋洲 -------------------
|
|
|
+ map.put("australia", "澳大利亚");
|
|
|
+ map.put("new zealand", "新西兰");
|
|
|
+ map.put("papua new guinea", "巴布亚新几内亚");
|
|
|
+
|
|
|
+// ------------------- 太平洋岛国 -------------------
|
|
|
+ map.put("fiji", "斐济");
|
|
|
+ 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("micronesia", "密克罗尼西亚联邦");
|
|
|
+ map.put("palau", "帕劳");
|
|
|
+ // ... 其他国家的映射可在此补充
|
|
|
+ COUNTRY_MAP = Collections.unmodifiableMap(map); // 不可变 Map
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 将英文国家名称转换为中文(支持多个国家逗号分隔)
|
|
|
+ * @param englishNames 如 "United States, Japan"
|
|
|
+ * @return 如 "美国, 日本"
|
|
|
+ */
|
|
|
+ public static String toChinese(String englishNames) {
|
|
|
+ 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(", ");
|
|
|
+ }
|
|
|
+ if (result.length() > 0) {
|
|
|
+ result.setLength(result.length() - 2); // 移除末尾的 ", "
|
|
|
+ }
|
|
|
+ return result.toString();
|
|
|
+ }
|
|
|
+}
|