// convert-geojson-names.cjs
// 该脚本用于将 GeoJSON 文件中的国家/地区名称从英文转换为中文

const fs = require('fs');
const path = require('path');

// 英文-中文对照表（可补充）
const nameMap = {
	China: '中国',
	'United States of America': '美国',
	Japan: '日本',
	'South Korea': '韩国',
	Australia: '澳大利亚',
	Canada: '加拿大',
	Russia: '俄罗斯',
	India: '印度',
	Brazil: '巴西',
	'United Kingdom': '英国',
	France: '法国',
	Germany: '德国',
	Italy: '意大利',
	'New Zealand': '新西兰',
	'Papua New Guinea': '巴布亚新几内亚',
	Fiji: '斐济',
	Samoa: '萨摩亚',
	Tonga: '汤加',
	Vanuatu: '瓦努阿图',
	'Solomon Islands': '所罗门群岛',
	Micronesia: '密克罗尼西亚',
	Palau: '帕劳',
	Nauru: '瑙鲁',
	Tuvalu: '图瓦卢',
	Kiribati: '基里巴斯',
	Maldives: '马尔代夫',
	'Sri Lanka': '斯里兰卡',
	Cambodia: '柬埔寨',
	Vietnam: '越南',
	Thailand: '泰国',
	Philippines: '菲律宾',
	Indonesia: '印度尼西亚',
	Myanmar: '缅甸',
	Pakistan: '巴基斯坦',
	Nepal: '尼泊尔',
	Bangladesh: '孟加拉国',
	Mongolia: '蒙古',
	Tajikistan: '塔吉克斯坦',
	Uzbekistan: '乌兹别克斯坦',
	Kazakhstan: '哈萨克斯坦',
	Chile: '智利',
	Argentina: '阿根廷',
	Colombia: '哥伦比亚',
	Peru: '秘鲁',
	Bolivia: '玻利维亚',
	Ecuador: '厄瓜多尔',
	Paraguay: '巴拉圭',
	Uruguay: '乌拉圭',
	'Hong Kong': '中国香港',
	Macau: '中国澳门',
	Taiwan: '中国台湾',
	'South Africa': '南非',
	Nigeria: '尼日利亚',
	Kenya: '肯尼亚',
	Egypt: '埃及',
	Morocco: '摩洛哥',
	Ghana: '加纳',
	Senegal: '塞内加尔',
	Tanzania: '坦桑尼亚',
	Uganda: '乌干达',
	Zimbabwe: '津巴布韦',
	Algeria: '阿尔及利亚',
	Mali: '马里',
	Cameroon: '喀麦隆',
	Gabon: '加蓬',
	Congo: '刚果',
	Angola: '安哥拉',
	Mozambique: '莫桑比克',
	Zambia: '赞比亚',
	Botswana: '博茨瓦纳',
	Zambia: '赞比亚',
	Madagascar: '马达加斯加',
	Rwanda: '卢旺达',
	Burundi: '布隆迪',
	Togo: '多哥',
	Benin: '贝宁',
	Niger: '尼日',
	Chad: '乍得',
	Cameroon: '喀麦隆',
	'South Sudan': '南苏丹',
	Sudan: '苏丹',
	Libya: '利比亚',
	Ethiopia: '埃塞俄比亚',
	Djibouti: '吉布提',
	Somalia: '索马里',
	Eritrea: '厄立特里亚',
	Seychelles: '塞舌尔',
	Comoros: '科摩罗',
	Mayotte: '马约特',
	Reunion: '留尼旺',
	Mauritius: '毛里求斯',
	'Saint Helena': '圣赫勒拿',
	'Saint Kitts and Nevis': '圣基茨和尼维斯',
	'Saint Lucia': '圣卢西亚',
	'Saint Pierre and Miquelon': '圣皮埃尔和密克隆',
	'Saint Vincent and the Grenadines': '圣文森特和格林纳丁斯',
	'Saint Martin': '圣马丁',
	'Saint Barthelemy': '圣巴泰勒米',
	'Saint Martin': '圣马丁',
	'Saint Barthelemy': '圣巴泰勒米',
	'Antigua and Barbuda': '安提瓜和巴布达',
	Dominica: '多米尼克',
	Grenada: '格林纳达',
	'Trinidad and Tobago': '特立尼达和多巴哥',
	Bahamas: '巴哈马',
	Cuba: '古巴',
	'Dominican Republic': '多米尼加共和国',
	Haiti: '海地',
	Jamaica: '牙买加',
	Barbados: '巴巴多斯',
	Suriname: '苏里南',
	'French Guiana': '法属圭亚那',
	Mexico: '墨西哥',
	'Cayman Islands': '开曼群岛',
	Bermuda: '百慕大',
	'Puerto Rico': '波多黎各',
	'Costa Rica': '哥斯达黎加',
	Nicaragua: '尼加拉瓜',
	'El Salvador': '萨尔瓦多',
	Honduras: '洪都拉斯',
	Guatemala: '危地马拉',
	Belize: '伯利兹',
	Panama: '巴拿马',
	Aruba: '阿鲁巴',
	Antarctica: '南极洲',
	Malaysia: '马来西亚',
	Singapore: '新加坡',
	Laos: '老挝',
	Brunei: '文莱',

	// ...可继续补充
};

function convertGeoJson(filePath) {
	const geojson = JSON.parse(fs.readFileSync(filePath, 'utf8'));
	geojson.features.forEach((f) => {
		const en = f.properties.name;
		if (nameMap[en]) {
			f.properties.name = nameMap[en];
		}
	});
	fs.writeFileSync(filePath, JSON.stringify(geojson, null, 2), 'utf8');
	console.log(`已处理: ${filePath}`);
}

convertGeoJson(path.join(__dirname, 'public/map/custom.geo.json'));
convertGeoJson(path.join(__dirname, 'public/map/oceania.geo.json'));
convertGeoJson(path.join(__dirname, 'public/map/africa.geo.json'));
convertGeoJson(path.join(__dirname, 'public/map/asia.geo.json'));
convertGeoJson(path.join(__dirname, 'public/map/europe.geo.json'));
convertGeoJson(path.join(__dirname, 'public/map/northAmerica.geo.json'));
convertGeoJson(path.join(__dirname, 'public/map/southAmerica.geo.json'));
