地区语言代码

地区语言代码

June 15, 2023

国家地区代码

ISO标准国家代码 - ISO 3166

形如:CN

分为3种,即二位字母代码(alpha-2)、三位字母代码(alpha-3)、数字代码(numeric)。其中,二位字母代码适用于通常情况,三位字母代码较接近国家名称,而数字代码则适用于非拉丁字母环境中。

国家顶级域

形如:.cn

2字母国家代码顶级域的DNS名称。它们遵循ISO 3166-1两字母代码,除了个别一些例外:“.ac”用于阿森松岛、“.eu”用于欧盟或英国选用“.uk”而非“.gb”。

语言代码

ISO标准语言代码 - ISO 639

形如:zh、zho

ISO 639 是为语言分类的设计的一套标准代码。每种语言都被分配了两个字母(639-1)或三个字母(639-2 和 639-3)的小写代码。

IETF语言标签

形如:zh(中文)、zh-CN(大陆中文)、zh-Hans-CN(大陆简体中文)、yue / zh-yue(粤语), cmn / zh-cmn(普通话)

IETF语言标签由互联网工程任务组(IETF)的“BCP 47”文档系列定义。现在标准化为RFC 5646(引用了相关的RFC 5645)与RFC 4647,IANA语言子标签登记。使用的各成分来自ISO 639ISO 15924ISO 3166-1以及UN M.49。 IETF语言标签的最早版本是1995年3月发布的RFC 1766。使用ISO 639的2字母语言代码,ISO 3166的2字母国家地区代码,允许登记的标签携带variant或书写文字子标签。 2001年1月发布RFC 3066, 使用ISO 639-2的3字母语言代码。 2006年9月发布RFC 4646 (规范的主体)与RFC 4647 (处理匹配行为)。RFC 4646增加了使用ISO 15924 的4字母书写文字代码与UN M.49的3数字地理分区码。 2009年9月发布RFC 5646,引入了3字符码的ISO 639-3与639-5作为语言子标签。

语言代码实例

Linux Locale

命名规则为:language[_territory[.codeset]][@modifier] 其中language是ISO 639-1标准中定义的双字母的语言代码,territory是ISO 3166-1标准中定义的双字母的国家和地区代码,codeset是字符集的名称 (如 UTF-8等),而 modifier 则是某些 locale 变体的修正符。1

目前的 Debian 桌面 GUI(图形用户界面)系统通常在 GUI 环境中设置语言环境为 LANG=xx_YY.UTF-8。这里,xx 是 ISO 639 语言代码 ,YY 是 ISO 3166 国家地区代码 2

Windows 开发

  • 语言字符串 Windows 媒体格式 SDK 的多语言支持功能使用符合 RFC 1766 的语言字符串。3
  • .NET 类 CultureInfo 根据 RFC 4646 为每个区域性指定唯一名称。 该名称是与语言关联的 ISO 639 双字母或三字母小写区域性代码和与国家或地区关联的 ISO 3166 双字母大写子区域性代码的组合。 此外,对于面向 .NET Framework 4 或更高版本且在 Windows 10 或更高版本下运行的应用,支持对应于有效 BCP-47 语言标记的区域性名称。 基于 RFC 4646 的区域性名称的格式为 languagecode2-country/regioncode2,其中 languagecode2 是双字母语言代码, country/regioncode2 是双字母子区域性代码。4

HTML lang 属性

用于定义语言的标签 (BCP47) IETF 文档定义。5

BCP 47标准代替了早期使用的RFC 3066 与RFC 1766标准,且信息量远远超过了ISO语言与国家地区标准。您还应该使用IANA语言子标签注册表(IANA Language Subtag Registry)来改善语言标记,而非ISO标准。6