语言与地区代码速查
一张表查语言代码(zh、ja 等两位字母与 639-2 对应)、国家地区代码(CN、CHN、.cn)与货币代码(CNY、USD 及小数位),支持中文名、英文名与代码互查,解释 zh 与 CN、el 与 GR 这类容易混用的区别。
| 代码 | 名称 | 参考 |
|---|
三个标准各管什么
<code>ISO 639-1</code> 是语言代码,两位字母,<code>zh</code> 就是它;界面语言标签(<code>zh-CN</code>)、字幕文件、翻译接口都用这套。
<code>ISO 3166-1</code> 是国家与地区代码,两位字母加三位数字,<code>CN</code>、<code>CHN</code>、<code>156</code> 指同一个地方。
<code>ISO 4217</code> 是货币代码,<code>CNY</code>、<code>USD</code> 这类,定价与结算系统里用。
中文为什么是 zh 不是 cn
<code>zh</code> 是语言(中文),<code>CN</code> 是地区(中国),两者不是一个维度:<code>zh-TW</code>、<code>zh-HK</code>、<code>zh-CN</code> 都合法,而 <code>cn</code> 单独用并不表示中文。
地区码在域名里用(<code>.cn</code>),在接口参数里也用(比如按地区区分价格),但描述「内容是什么语言」时必须用语言码。
希腊语的两个坑
希腊语的语言码是 <code>el</code>,国家码是 <code>GR</code>;希腊语的历史代码 <code>gre</code> 和国名缩写 <code>GRC</code> 是两套系统的,别混用。
以色列也有类似情况:语言 <code>he</code>(旧代码 <code>iw</code>),国家 <code>IL</code>。
收录范围
语言表收录的是 <code>ISO 639-1</code> 里常用的两位代码,第四列给出对应的 639-2 两字母与三字母代码(没有可靠对应关系的留空);地区表带三位字母码和该地区的域名后缀。
货币表只收了流通面广的那些,带小数位 —— 日元、韩元是 0 位,人民币、美元是 2 位,这在做金额取整时经常踩到。条数按表里的实际数量算。
常见问题
表里有多少条?
见页面上的「表内总数」,是按当前分类表的实际条数算的,切分类会变。
只有两位代码吗?
语言表给的是 639-1 的两位码。需要三字母代码(比如元数据里的 eng、chi)时看第四列 —— 639-2 有两字母和三字母两套,简拼全称不一致的情况很多,别混用。
能顺便查时区吗?
不能。地区和时区是两套数据(时区用的是 IANA 名,像 Asia/Shanghai),混在一起查容易错,站点里有单独的时区表。