语言编码

ISO 639

旨在为语言和语种建立一个国际认可的编码。标准分为五个部分。第一部分设计了二字码用以代表世界上的大多数语言;第二部分提供了三字码,从而可以产生更多的组合;第三部分提供了三字码,意在尽可能为现存,灭绝,古老语言提供一个完备的列表;第四部分给出了语言编码的原则和使用该标准的指南;第五部分为语种提供了三字码。

在语言编码中,一些语言分类为大预言(macrolanguages),并包含其他的个体语言 individual language)。而这样分类是为了在标准 ISO 639-2 和 ISO 639-3 中建立映射。

ISO 3166

ISO 3166 是国家编码和细分编码的国际标准。分成三个部分。第一部分给出了国家编码,国家编码可以使用二字码,三字码或是三位数编码;第二部分是细分编码,使用国家二字码后接三个字符;第三部分是四字码,四字码取决于一个国家名称为什么会被移除。

ISO 15924

ISO 15924 提供了一套表示文字名称的编码。 在 ISO 15924 中 汉字对应编码 Hani,简体对应编码 Hans,繁体对应编码 Hant。

RFC 5646

定义了语言标签在实际使用中的结构,内容以及语义。 语言标签用来区分用于各种人类交流的语言。一个语言标签是一个或多个子标签的序列。子标签是字母和数字构成的序列,由连字符分隔。

语言标签的语法由 RFC 5234 给出。下面的说明做了简化。 语言标签由语言子标签,书写子标签,地区子标签构成。

语言子标签又分成主语言子标签和扩展语言子标签。

一般来说,一个语言标签中必须有主语言子标签。主语言子标签可以是 ISO 639-1:2002 中定义的二字码,也可以是 ISO 639 中定义的三字码。如果语言既有二字码又有三字码,IANA 注册表中之定义了 ISO 639-1 二字码。如果一个语言没有二字码,而 ISO 639-2/T(Terminology) 和 ISO 639-2/B (Bibliographic)编码不同,只有 Terminology 编码会定义到注册表中。

出于历史和兼容性原因,需要扩展语言子标签以区分某些特定的语言。扩展子标签由三字子标签构成,并由基于 ISO 639-3 的注册表定义。ISO 639-5 中定义的语言集合和组(collections and groupings)不能用于定义扩展语言子标签。

书写子标签用来区分一门语言或其方言的书写形式。书写子标签由 ISO 15924 定义。语言标签中至多有一个书写子标签,如果添加一个书写子标签不能区分语言标签的值,这个书写子标签应该被废弃。

地区子标签是用来说明语言在特定国家和区域的差异。二字地区子标签由 ISO 3166-1 定义。三字地区子标签由 UN_M.49 定义。和书写子标签一样,地区子标签至多只有一个,在无法区分标签值的情况下,应该被废弃。

在表示的一个语言标签的时候,一般有:

  1. 大小写敏感,但并没有意义上的不同。如"mn-Cyrl-MN" 和 "MN-cYRL-mn" 都表示在蒙古使用的用西里尔书写的蒙古文。
  2. 语言编码小写,书写编码首字母大写,国家编码大写。

示例

es-419 拉美和加勒比海区域的西班牙语。

zh-cmn-Hans-CN 大陆使用的简体书写的汉字

yue-HK 香港地区使用的粤语

zh 可以在没有扩展语言子标签的情况下使用用来将资源标记为未指定分类的中文。主语言子标签(gan,cmn)优于使用扩展语言子标签(zh-gan,zh-cmn)的形式

参考资料

ISO 639
RFC 5646
ISO 15924
ISO 3166
BCP 47
BCP 47 由 RFC 5646 和 RFC 4647 组成

扩展资料

Alphabetical list of four-letter script codes
网页头部的声明应该是用 lang="zh" 还是 lang="zh-cn"?

results matching ""

    No results matching ""