简体中文和繁体中文的语言代码?

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_CNzh_TW经常用来区别具体某个网站的简体和繁体字符版本.

然而,更正确的zh_HANS用于(通用)简体中文字符和zh_HANT繁体中文字符,除了在区分不同国家时有意义的罕见情况.

  • 实际上,URL**中的差异**与我预期的一样大.`inurl:zh_CN`给出4.3M命中率; `inurl:zh_HANS`给出20K.仍然是一个非常丰富的答案. (11认同)
  • 这是一个很好的答案 - 写得很好,可能不是大多数人都知道的.它在技术上更正确*(`zh_HANS`)与通常使用的实际用途(`zh_CN`)之间划出了一条很好的界限.你可以在谷歌搜索这两个术语 - 这是一个有利于`zh_CN`的7比1的差异,这实际上比我预期的要少. (8认同)
  • HANS 和 HANT 之间的区别远不如 CN 和 TW 有用,因为区别不仅仅是字符,而是特定于地区的用法。例如,*subroutine*在中国大陆被译为子程序,但在台湾被译为子程序。在这个例子中,简体中文和繁体中文的字符是相同的,但翻译应该还是不同的。 (3认同)
  • @AlexBinZhao 语言代码“zh”来自中文的*中文*名称“Zhōngwén”(中文)。您可以在此处找到所有 ISO 639-1 语言代码的列表:https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes (3认同)
  • @AlexBinZhao Todd Owen 是对的,zh 是 ISO 标准中的代码,它来自中文单词。然而,这忽略了韩语或日语的语言单词,这些单词的罗马化方式分别与 ko 和 ja 不同,但 ISO 对此进行了标准化。此外,ISO 总部位于瑞士,其国家代码 CH(拉丁语 Confoederatio Helvetica),小心翼翼地使用一种死语言,以表明对其四种官方语言中的任何一种都没有偏好。我认为当时用 ch 表示中文很容易与 ch 表示瑞士混淆。 (2认同)

dka*_*arp 29

这确实有一个标准的表示.由于人们遇到了你所看到的完全相同的问题 - 相同的语言,但不同的方言或字符 - 他们用两个字母的区域代码扩展了双字母语言代码.所以你可能会有一个普遍的法语页面mydomain.com/fr,但加拿大法语读者的国际化可能会留给你mydomain.com/fr_CA(加拿大)和mydomain.com/fr_FR(法国).某些平台使用短划线而不是下划线来分隔语言和区域代码(因此fr-CAfr-FR).

简体中文的标准语言环境是zh_CN.繁体中文的标准语言环境是zh_TW.

我毫不犹豫地向你指出实际的BCP 47标准文件,因为它们,呃,对细节有点沉重,对可读性有点关注.只需使用标准的语言环境标识符,就像Java使用的标识符一样,你会没事的.


Ker*_*ğan 8

我要把这个留在这里。

代码 兰格 形式 地区
zh 中国人 - -
zh_汉斯 中国人 简体中文 -
zh_Hans_CN 中国人 简体中文 中国
zh_Hans_HK 中国人 简体中文 中国香港特别行政区
zh_Hans_MO 中国人 简体中文 中国澳门特别行政区
zh_Hans_SG 中国人 简体中文 新加坡
zh_汉特 中国人 汉族传统 -
zh_Hant_HK 中国人 汉族传统 中国香港特别行政区
zh_Hant_MO 中国人 汉族传统 中国澳门特别行政区
zh_Hant_TW 中国人 汉族传统 台湾