当前位置: 华文星空 > 知识

zh

2013-11-07知识

先回答问题:

什么关系?都是描述语言的。
什么区别?描述语言的范围不一样。

彻底让你搞明白这个问题需要追本溯源一直追到 http://www. rfc-editor.org/rfc/bcp/ bcp47.txt 规范才行,不过这里我简单描述下一般也能懂。

=== 进入正文 ===

首先一个语言的描述规则是下面这样的:

language-extlang-script-region-variant-extension-privateuse 语言文字种类-扩展语言文字种类-变体(或方言)-使用区域-变体(或方言)-扩展-私有

这些字符串对应的值拼接起来可以对应一个准确的语言。为了方便辨识和识别,通常还有约定:

  • language 全小写,通常两位,新版规范三位,比如:zh
  • extlang 全小写,三位,表示扩展语言,比如:粤语 yue (这里还有个 macrolanguage 的事情,先不提了)
  • script 首字母大写,四位,表示变体,比如:中文的 繁体字 Hant 和 简体字 Hans
  • region 全大写,两位,表示用于地区,比如:都是繁体中文,香港的惯用语与台湾的会有区别
  • 所以你问题中的惯用写法应该改成 zh-CN 和 zh-Hans。前者第二位用了地区限制匹配范围,后者用了文字变体限制。具体值对应的内容可以在这里搜索 http://www. iana.org/assignments/la nguage-subtag-registry/language-subtag-registry 。帮你搬运过来就是:

    %% Type: region Subtag: CN Description: China Added: 2005-10-16 %%

    %% Type: script Subtag: Hans Description: Han (Simplified variant) Added: 2005-10-16 %%

    所以区别就很明显了:

  • zh-CN 表示用在 中国大陆区域的中文 。包括各种大方言、小方言、繁体、简体等等都可以被匹配到。
  • zh-Hans 表示 简体中文 。适用区域范围是全宇宙用中文简体的地方,内容包括各种用简体的方言等。
  • === update ===

    Script 和 Variant 的区别不是很好区分,翻译过来就更加不准确了,所以我在上面翻译部分都将其翻译为「变体(或方言)「,如果你对语言学比较了解,欢迎评论补充。