apppublic/aidocs/country_cn_en.md
2025-10-05 11:23:33 +08:00

177 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 国家中英文名称映射技术文档
## 概述
本模块提供了一个简单的国家中英文名称双向映射功能支持根据中文名称获取对应的英文名称或根据英文名称获取对应的中文名称。该功能适用于需要进行国家名称本地化处理的场景如国际化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日