"zh-Hans"形式的语言代码属于什么标准?

Ant*_*nto 16 iso internationalization

通过应用程序的REST API,我收到以下形式的语言代码:ll-Xxxx.

  • 两个小写字母语言(看起来像ISO 639-1),
  • 短划线,
  • 最多四个字母的代码,以大写字母开头(看起来像ISO 639-3 宏语言代码).

一些例子:

az-Arab Azerbaijani in the Arabic script
az-Cyrl Azerbaijani in the Cyrillic script
az-Latn Azerbaijani in the Latin script

sr-Cyrl Serbian in the Cyrillic script
sr-Latn Serbian in the Latin script

uz-Cyrl Uzbek in the Cyrillic script
uz-Latn Uzbek in the Latin script

zh-Hans Chinese in the simplified script
zh-Hant Chinese in the traditional script
Run Code Online (Sandbox Code Playgroud)

从我在网上找到的:

[ ISO 639-1 ]是ISO 639系列语言代码国际标准的第一部分.第1部分介绍了双字母代码的注册.

ISO 639-3是语言代码的国际标准.在定义一些语言代码时,有些被定义为宏语言 [...]

现在我需要编写一段代码来验证我是否收到了有效的语言代码.
但是,因为我收到的是639-1(2个字母语言)和639-3(宏语言)的混合,我应该遵循什么标准?这些代码是否属于某种混合(可能是常见的)标准?

Jul*_*ien 10

遵循RFC-5646(第4页),可以使用以下格式编写语言标记:[语言] - [脚本].


use*_*800 10

当前识别语言的参考是IETF BCP 47,它结合了 IETF RFC 5646 和 RFC 4647。

表单代码ll-Xxxx结合了 ISO 639-1语言代码(两个字母)和ISO 15924 脚本代码(四个字母)。BCP 47 建议语言代码写成小写,脚本代码写成“小写,首字母大写”,但这基本上是为了可读性。

BCP 47 还建议语言代码应该是最短的可用 ISO 639 标签。因此,如果一种语言同时以ISO 639-1(两个字母)和ISO 639-3(三个字母)表示,那么您应该使用 ISO 639-1。