177 lines
5.2 KiB
Markdown
177 lines
5.2 KiB
Markdown
# 国家中英文名称映射技术文档
|
||
|
||
## 概述
|
||
|
||
本模块提供了一个简单的国家中英文名称双向映射功能,支持根据中文名称获取对应的英文名称,或根据英文名称获取对应的中文名称。该功能适用于需要进行国家名称本地化处理的场景,如国际化(i18n)、数据清洗、用户界面显示等。
|
||
|
||
---
|
||
|
||
## 文件信息
|
||
|
||
- **文件编码**:UTF-8
|
||
- **语言**:Python 3
|
||
- **用途**:国家名称中英互译字典与工具函数
|
||
|
||
---
|
||
|
||
## 核心数据结构
|
||
|
||
### `ecc` 字典:英文 → 中文 映射
|
||
|
||
```python
|
||
ecc = {
|
||
"Afghanistan": "阿富汗",
|
||
"Albania": "阿尔巴尼亚",
|
||
...
|
||
}
|
||
```
|
||
|
||
- **说明**:
|
||
键为国家的英文全称(标准英文拼写),值为对应的简体中文名称。
|
||
- **覆盖范围**:包含全球绝大多数主权国家及部分地区(如中国香港、澳门、台湾)和海外领地。
|
||
- **特殊命名示例**:
|
||
- `"Congo (Congo-Kinshasa)"`: 刚果民主共和国(简称“刚果(金)”)
|
||
- `"Korea (South)"` / `"Korea (North)"`: 区分韩国与朝鲜
|
||
- `"Hong Kong"`: 香港(中国)
|
||
- `"Taiwan"`: 台湾(中国)
|
||
|
||
> ⚠️ 注意:所有条目均基于通用国际认知及中国官方立场进行翻译。
|
||
|
||
---
|
||
|
||
### `cec` 字典:中文 → 英文 映射
|
||
|
||
```python
|
||
cec = {v: k for k, v in ecc.items()}
|
||
```
|
||
|
||
- **生成方式**:通过字典推导式将 `ecc` 的键值对反转。
|
||
- **作用**:实现从中文国名到英文国名的快速查找。
|
||
- **示例**:
|
||
```python
|
||
cec["中国"] → "China"
|
||
cec["法国"] → "France"
|
||
```
|
||
|
||
---
|
||
|
||
## 功能函数
|
||
|
||
### `get_en_country_name(country)`
|
||
|
||
#### 功能
|
||
根据输入的中文国家名称返回其对应的英文名称;若未找到匹配项,则原样返回输入值。
|
||
|
||
#### 参数
|
||
| 参数名 | 类型 | 描述 |
|
||
|-----------|--------|--------------------------|
|
||
| `country` | str | 输入的中文国家名称 |
|
||
|
||
#### 返回值
|
||
- 若存在映射:返回对应的英文国家名称(字符串)
|
||
- 否则:返回原始输入 `country`
|
||
|
||
#### 示例
|
||
```python
|
||
get_en_country_name("中国") # → "China"
|
||
get_en_country_name("德国") # → "Germany"
|
||
get_en_country_name("火星") # → "火星" (无匹配,原样返回)
|
||
```
|
||
|
||
---
|
||
|
||
### `get_cn_country_name(country)`
|
||
|
||
#### 功能
|
||
根据输入的英文国家名称返回其对应的中文名称;若未找到匹配项,则原样返回输入值。
|
||
|
||
#### 参数
|
||
| 参数名 | 类型 | 描述 |
|
||
|-----------|--------|--------------------------|
|
||
| `country` | str | 输入的英文国家名称 |
|
||
|
||
#### 返回值
|
||
- 若存在映射:返回对应的中文国家名称(字符串)
|
||
- 否则:返回原始输入 `country`
|
||
|
||
#### 示例
|
||
```python
|
||
get_cn_country_name("Japan") # → "日本"
|
||
get_cn_country_name("Italy") # → "意大利"
|
||
get_cn_country_name("Mars") # → "Mars" (无匹配,原样返回)
|
||
```
|
||
|
||
---
|
||
|
||
## 使用场景
|
||
|
||
1. **国际化系统中的国家名称本地化**
|
||
- 将数据库中的英文国家名转换为中文展示给用户。
|
||
2. **表单数据清洗**
|
||
- 统一用户输入的国家名称格式(如“CHINA”、“中国”、“PRC” → “中国”)。
|
||
3. **API 接口适配**
|
||
- 在不同语言系统间传递国家信息时做标准化转换。
|
||
4. **报表生成**
|
||
- 自动生成多语言版本的统计报告。
|
||
|
||
---
|
||
|
||
## 注意事项
|
||
|
||
1. **大小写敏感性**
|
||
当前实现是**完全匹配且区分大小写**的。建议在调用前对输入进行标准化处理(如首字母大写、去除多余空格等)。
|
||
|
||
✅ 建议预处理:
|
||
```python
|
||
get_cn_country_name(country.strip().title())
|
||
```
|
||
|
||
2. **别名支持有限**
|
||
仅支持字典中明确定义的名称。例如:
|
||
- `"USA"` 不等于 `"United States"`
|
||
- `"UK"` 不等于 `"United Kingdom"`
|
||
|
||
如需支持别名,可扩展字典或增加别名映射层。
|
||
|
||
3. **编码要求**
|
||
- 文件以 UTF-8 编码保存,确保中文字符正确解析。
|
||
|
||
4. **维护建议**
|
||
- 新增国家或修改译名时,请同步更新 `ecc` 字典,并验证 `cec` 自动生成逻辑是否正常。
|
||
|
||
---
|
||
|
||
## 扩展建议
|
||
|
||
| 功能需求 | 实现建议 |
|
||
|----------------------|--------|
|
||
| 支持别名(如 USA → 美国) | 添加 `aliases` 字典,预先映射常见别名至标准名称 |
|
||
| 不区分大小写查询 | 在函数内部统一转为小写/大写后查询 |
|
||
| 返回标准化名称 | 提供 `normalize_country()` 函数输出标准中/英文名 |
|
||
| 支持 ISO 国家代码 | 扩展为包含 ISO 3166-1 alpha-2/alpha-3 代码的结构化字典 |
|
||
|
||
---
|
||
|
||
## 版权与声明
|
||
|
||
- 中文译名参考中国官方出版物及外交部标准译法。
|
||
- 本数据不用于任何商业目的之外的责任归属。
|
||
- “台湾”、“香港”、“澳门”按一个中国原则标注为中国地区。
|
||
|
||
---
|
||
|
||
## 示例代码
|
||
|
||
```python
|
||
# 示例:中英文互译
|
||
print(get_en_country_name("日本")) # 输出: Japan
|
||
print(get_cn_country_name("Brazil")) # 输出: 巴西
|
||
|
||
# 示例:未识别名称原样返回
|
||
print(get_cn_country_name("Middle Earth")) # 输出: Middle Earth
|
||
```
|
||
|
||
---
|
||
|
||
✅ **版本状态**:稳定可用
|
||
📅 **最后更新**:2025年4月5日 |