BCP 47 语言标签
BCP 47 语言标签是一串字符,它精确地指定了一种人类语言,包括基本语言,以及可选的文字系统和方言。例如,en
指定英语,而 en-GB
和 en-US
则更精确地指定了英式英语和美式英语。
BCP 47 语言标签在 Web 平台中用于任何根据指定语言输出不同结果的功能,从而实现国际化支持。
示例包括
- HTML
lang
属性 - HTML
<track>
元素 Temporal
对象CanvasRenderingContext2D.lang
属性- 翻译器和语言检测器 API
BCP 47 语法
完整的 BCP 47 语法在 RFC 5646 中指定。它能够识别极其具体的语言方言,但大多数用法要简单得多。
语言标签由连字符分隔的子标签组成,每个子标签表示语言的某个属性。最常见的三个子标签是:
- 语言子标签
-
一个 2 或 3 个字符的代码,定义了基本语言,通常全部小写。例如,英语的语言代码是
en
,Badeshi 语的代码是bdz
。 - 文字子标签 可选
-
此子标签定义了语言使用的文字系统,始终为 4 个字符长,首字母大写。例如,法语盲文是
fr-Brai
,片假名书写的日语是ja-Kana
。注意:如果语言以高度典型的方式书写,例如拉丁字母的英语,则无需使用此子标签。
- 地区子标签 可选
-
此子标签定义了来自特定位置的基础语言的方言,它要么是两个大写字母(与国家代码匹配),要么是三个数字(与非国家地区匹配)。例如,
es-ES
表示西班牙使用的西班牙语,es-013
表示中美洲使用的西班牙语。“国际西班牙语”则只是es
。
如果文字子标签和地区子标签都存在,则文字子标签在地区子标签之前 — ru-Cyrl-BY
是俄语,用西里尔字母书写,在白俄罗斯使用。
另见
- 常见主要语言子标签列表
- RFC 5646:用于识别语言的标签:BCP 47 语言标签的指定位置。
- 选择语言标签:W3C 关于选择正确语言标签的指南。
- BCP 47 语言子标签查找:查找语言的子标签代码。