BCP 47(RFC 5646) 是互联网工程任务组(IETF)定义的一套标准,用于标识和描述人类语言、文字、地区及变体信息的标签格式。它是 “Tags for Identifying Languages” 的规范,旨在统一语言标签的表示方式,广泛应用于国际化(i18n)、本地化(l10n)、Web开发、操作系统等领域。
核心内容
语言标签结构
一个标准的BCP 47语言标签由以下部分组成(通过连字符-
连接):- 主语言子标签(Primary Language):必填,2~3字母的ISO 639代码(如
en
、zh
)。 - 扩展子标签(可选):
- 脚本子标签(Script):4字母ISO 15924代码(如
Hans
简体中文、Cyrl
西里尔字母)。 - 地区子标签(Region):2字母ISO 3166-1国家/地区代码(如
CN
、US
),或3字母UN M.49地区代码。 - 变体子标签(Variant):方言或特殊变体(如
pinyin
拼音)。 - 扩展/私有子标签:自定义用途。
- 脚本子标签(Script):4字母ISO 15924代码(如
- 主语言子标签(Primary Language):必填,2~3字母的ISO 639代码(如
常见示例
en-US
: 美国英语
zh-Hans-CN
: 简体中文(中国大陆)
es-419
: 拉丁美洲西班牙语
sr-Cyrl-RS
: 塞尔维亚语(西里尔字母,塞尔维亚)
应用场景
- HTTP头字段
Accept-Language
。 - HTML/XML的
lang
属性。 - 操作系统的区域设置。
- API或数据库中的多语言支持。
- HTTP头字段
与RFC的关系
- BCP(Best Current Practice)是IETF的实践指南,而RFC是其文档形式。RFC 5646取代了早期的RFCs(如4646、3066),成为当前权威标准。
如需更详细的技术规则或子标签注册表,可参考 IANA Language Subtag Registry。
内容由零声教学AI助手提供,问题来源于学员提问