jep*_*rro 67 utf-8 internationalization cjk chinese-locale
我们正在我们的网站上创建多语言子网站.
我想使用2个字母的语言代码.西班牙语和法语很容易.他们会得到以下网址:
mydomain.com/es
mydomain.com/fr
Run Code Online (Sandbox Code Playgroud)
但是我遇到了传统和简体中文的问题.是否有两个字母代码用于这些语言的标准?
mydomain.com/zh
mydomain.com/?
Run Code Online (Sandbox Code Playgroud)
Tod*_*wen 142
@dkarp给出了一个很好的一般答案.我将添加一些关于中文的其他细节:
有几个国家的中文是主要的书面语言.它们之间的主要区别在于它们是使用简化字符还是传统字符,但也存在较小的区域差异(词汇表等).区分这些的标准方法是使用国家代码,例如zh_CN中国大陆,zh_SG新加坡,zh_TW台湾或zh_HK香港.
中国大陆和新加坡都使用简体字,其他人使用传统字符.由于中国大陆和台湾是两个拥有最大的人群,只是zh_CN和zh_TW经常用来区别具体某个网站的简体和繁体字符版本.
然而,更正确的是zh_HANS用于(通用)简体中文字符和zh_HANT繁体中文字符,除了在区分不同国家时有意义的罕见情况.
dka*_*arp 29
这确实有一个标准的表示.由于人们遇到了你所看到的完全相同的问题 - 相同的语言,但不同的方言或字符 - 他们用两个字母的区域代码扩展了双字母语言代码.所以你可能会有一个普遍的法语页面mydomain.com/fr,但加拿大法语读者的国际化可能会留给你mydomain.com/fr_CA(加拿大)和mydomain.com/fr_FR(法国).某些平台使用短划线而不是下划线来分隔语言和区域代码(因此fr-CA和fr-FR).
简体中文的标准语言环境是zh_CN.繁体中文的标准语言环境是zh_TW.
我毫不犹豫地向你指出实际的BCP 47标准文件,因为它们,呃,对细节有点沉重,对可读性有点关注.只需使用标准的语言环境标识符,就像Java使用的标识符一样,你会没事的.
我要把这个留在这里。
| 代码 | 兰格 | 形式 | 地区 |
|---|---|---|---|
| zh | 中国人 | - | - |
| zh_汉斯 | 中国人 | 简体中文 | - |
| zh_Hans_CN | 中国人 | 简体中文 | 中国 |
| zh_Hans_HK | 中国人 | 简体中文 | 中国香港特别行政区 |
| zh_Hans_MO | 中国人 | 简体中文 | 中国澳门特别行政区 |
| zh_Hans_SG | 中国人 | 简体中文 | 新加坡 |
| zh_汉特 | 中国人 | 汉族传统 | - |
| zh_Hant_HK | 中国人 | 汉族传统 | 中国香港特别行政区 |
| zh_Hant_MO | 中国人 | 汉族传统 | 中国澳门特别行政区 |
| zh_Hant_TW | 中国人 | 汉族传统 | 台湾 |