Language codes for simplified Chinese and traditional Chinese?
我们正在网站上创建多语言子站点。
我想使用2个字母的语言代码。 西班牙语和法语很容易。 他们将获得如下网址:
1 2 | mydomain.com/es mydomain.com/fr |
但是我遇到了繁体中文和简体中文的问题。 有针对这些语言使用的2个字母代码的标准吗?
1 2 | mydomain.com/zh mydomain.com/? |
@dkarp提供了一个很好的一般答案。我将添加一些有关中文的其他细节:
在一些国家,中文是主要的书面语言。它们之间的主要区别是它们使用的是简体字还是繁体字,但是在区域方面(词汇等)也存在细微差别。区分这些的标准方法是使用国家/地区代码,例如
中国大陆和新加坡都使用简体字,其他都使用繁体字。由于中国和台湾是人口最多的两个国家,因此通常仅使用
但是,更正确的做法是对(通用)简体中文字符使用
确实有对此的标准表示。人们遇到了与您完全相同的问题-语言相同,但是方言或字符却不同-他们用两个字母的区域代码扩展了两个字母的语言代码。因此,您可能会在
简体中文的标准语言环境是
我会毫不犹豫地向您介绍实际的BCP 47标准文档,因为它们在细节上有些繁琐,在可读性上有些许不足。只需使用标准的语言环境标识符,例如Java使用的标识符,就可以了。
语言取决于说语言的地方(哦!),因此语言和语言区域代码反映了这一现实。
特定位置
要完全指定在特定位置使用哪种语言,仍然必须在国家/地区代码后缀,因此分别使用简体中文和繁体中文的
实际上,现实情况是,许多国家/地区通常需要比国家/地区代码更具体的功能,但这可能会成倍地增加像CLDR这样的数据库的复杂性和维护性,以及诸如IP到位置详细信息提取之类的支持基础架构,通常无法获得或不够准确。
固定文字
现在,如果代码只是指定要在用户界面中使用哪组固定字符串,甚至是在网站上设置整个页面集,则实际上并不需要国家/地区后缀,除非在多个地方使用不同的语言足够多(基于位置的信息)来创建整个单独的资源集。
资源集越大,就越需要基于语言环境的语言代码[在这种情况下,仅是语言属性,而不是真正的语言环境,因此您可以随意调用它!],但是至少您需要仅在必要时这样做。
即时价值
但是,如果要即时格式化日期,时间,货币和数字等特定变量值,则区域设置就变得很重要,因为所有支持此类功能的工具(例如基于Unicode CLDR数据的工具)都希望它们。这些语言环境必须是要使用内部生成的UI语言设置的代码的单独设置,除非您要为每个已知语言环境创建资源集并对其进行维护!
浏览器语言工具
请注意,当在输入框中为可编辑的网页指定区域设置时,并且为该字段启用了属性拼写检查或CSS时,浏览器的语言工具将根据该区域设置对字段进行拼写检查。
标准
您必须清楚资源集所提供的内容,因此请考虑:
- 固定的琴弦?仅语言。
- 即时格式化?语言环境。
- 在查看环境中进行拼写检查?语言环境。
- 整页/子站点?仅语言,如果需要显着不同的内容,则为语言环境(作为语言变体)。
电子表格可最大程度地减少维护费用
我使用电子表格来保存UI字符串,其中每个语言代码都有一个父代码,因此其字符串版本的单元格具有一个从父代码获取其字符串的公式。要为该语言和字符串创建一个自定义字符串,我只用确切的文本覆盖单元格公式。这样可以最大程度地减少资源维护量。我在最后运行一个宏,该宏为每种语言生成一个完整的资源文件。