IETF語言標籤

title: 历史.
content: IETF语言标签的最早版本是1995年3月发布的RFC 1766。使用ISO 639的2字母语言代码,ISO 3166的2字母国家地区代码,允许登记的标签携带variant或书写文字子标签。  2001年1月发布RFC 3066, 使用ISO 639-2的3字母语言代码。  2006年9月发布RFC 4646 (规范的主体)与<nowiki>RFC 4647</nowiki> (处理匹配行为)。<nowiki>RFC 4646</nowiki>增加了使用ISO 15924 的4字母书写文字代码与UN M.49的3数字地理分区码。  2009年9月发布RFC 5646,引入了3字符码的ISO 639-3与639-5作为语言子标签。
title: 语言标签的语法.
content: 语言标签由一个或多个子标签(subtags)组成,用连字号(-)分隔。子标签只能由基本拉丁字母或数字组成。子标签出现顺序:  例外情况是"x-"前缀开头的私用语言标签,向后兼容的grandfathered语言标签(包括"i-"前缀与以前登记的老的语言标签)。  上述未指明的子标签应该小写。实际上整个语言标签是大小写无关的。  可选的script与region子标签如果没有提供可辨识信息,则将被忽略。例如拉丁字母拼写的西班牙语"es-Latn",日本的日语"ja-JP"。  并不是所有语言区域都有有效的区域子标签:主语言的国内方言区被登记为variant子标签。例如,"valencia" variant子标签用于加泰罗尼亚语的巴伦西亚语方言。由于该方言几乎只用于西班牙国内,区域子标签"ES"通常忽略。  宏语言(macrolanguage)中的语言代码或者直接用语言子标签表示,如普通话"cmn";或者用语言-扩展子标签的组合,如"zh-cmn"。  手语用扩展子标签,前缀为"sgn"。
title: 与其他国际标准的关系.
content: 虽然源自ISO或UN的标准,但并不是严格遵循。特别是ISO 639, ISO 15924, ISO 3166, UN M.49等标准撤回某些编码,甚至改变某些编码所指的时候,RFC 4646规定语言标签仍然保持最初含义不变。
title: ISO 639-3 与 ISO 639-1.
content: RFC 4646之前登记的语言标签现在分为"grandfathered"或"redundant",视其是否满足目前的语法而定。并且是过时的。现在采用ISO 639-3语言子标签。例如,"nan"取代了"zh-min-nan"表示闽南语;"hak"取代了"i-hak"、"zh-hakka"表示客家话;"ase"取代了"sgn-US"表示美国手语。
title: ISO 639-5 与 ISO 639-2.
content: ISO 639-5使用3字母表示一个语言群中所有的语言。而ISO 639-2使用3字母表示一个语言群中没有独立语言标签的那些语言。例如,ISO 639-2代码"afa"表示"Afro-Asiatic (Other)",不包含阿拉伯语。而ISO 639-5中的这个代码表示"Afro-Asiatic languages",包含亚非语系所有语言。这一变化发生在2009年。  ISO 639-5为了向后兼容ISO 639-2,对于这些老的代码,定义了grouping type attribute。  BCP 47定义了"Scope"属性用于语言集子标签的辨别。但是没有定义任何inclusive或exclusive属性,也没有使用ISO 639-5的grouping type attribute。  ISO 639-5没有定义哪些语言属于某个语言集。因此RFC 5646不建议使用语言集,除非是那些非特定的语言集,如"Multiple languages"与 "Undetermined"。
title: ISO 15924, ISO/IEC 10646 与 Unicode.
content: 某些主语言子标签携带了属性"Suppress-Script",通常某个书写系统适用于该语言。因此会忽略script子标签。例如,"yi"取代了"yi-Hebr",因为意地绪语总是使用希伯来字母书写。  另一个例子,"zh-Hans-SG"可被认为等价于"zh-Hans",因为新加坡简体中文与其他简体中文几乎一样。但是,这里的script子标签显然是有意义的。
title: ISO 3166-1 与 UN M.49.
content: 当语言的地区方言有专门的子标签,这比使用地区子标签更优。例如,"ar-DZ"应该被"arq"代替来表示阿尔及利亚阿拉伯语。
title: 扩展.
content: "Extension"子标签(不要与"extended"语言子标签混淆)允许附加额外的信息,如locale,calendar,currency。  至2014年1月已经分配了两种扩展。
title: Extension T.
content: 2012年2月,Unicode Consortium在RFC 6497发布了Extension T用于语言标签包含信息关于音译(transliterated),转写(transcribed),变换(transformed)。例如,"en-t-jp"用于从日语翻译到英语。
title: Extension U (Unicode Locale).
content: 2010年12月,Unicode Consortium在RFC 6067发布了Extension U,允许在Common Locale Data Repository(CLDR)中嵌入了宽属性,表示很多locale数据集。  例如:
title: Windows操作系统的使用.
content: Windows Vista及以后版本,采用RFC 4646作为locale标签,字符串最大长度85,包含了结尾的零字符。  只有语言子标签,称为中立locale(neutral locale)。加上地区子标签,称为specific locale。格式为<language>-<Script>-<REGION>,例如"uz-Latn-UZ"表示乌兹别克斯坦的使用拉丁字母的乌兹别克语。  排序规则应写为<language>-<Script>-<REGION>_<sort order

Summary: 语言标签是语言代码的缩写表示,例如"en"表示英语,"pt-BR"表示巴西葡萄牙语。由互联网工程任务组 (IETF)的“BCP 47”文档系列定义。现在标准化为RFC 5646 (引用了相关的RFC 5645)与RFC 4647, "IANA语言子标签登记"。使用的各成分来自ISO 639, ISO 15924, ISO 3166-1, UN M.49.

Étiquette d'identification de langues IETF: Les étiquettes d’identification de langues IETF (où le sigle désigne l'Internet Engineering Task Force) sont issues d’un code standardisé qui permet d’attribuer des étiquettes structurées et hiérarchisées permettant d’identifier les langues ou familles et collections de langues ou variétés linguistiques de ces langues. Elles ne sont pas réservées aux seules données et documents écrits, mais peuvent étiqueter aussi des contenus audio, multimédia, ou tout type de données de localisation dépendantes de la langue et d’autres paramètres de nature linguistique.