ISO 639 - PHP 中的可靠查找资源


ISO 639 - Reliable Lookup Resource in PHP

Intl 扩展使用 RFC 4646 语言标记

在 PHP intl 扩展中,特别是 Locale 类,它说:

区域设置使用 RFC 4646 语言标记进行标识

RFC 4646 已弃用

我提到这一点的原因是 RFC 4646 已被弃用,取而代之的是 RFC 5646。

我原本打算使用 intl 扩展名将 ISO 639 代码翻译成它们各自的语言名称(例如 en英语)。虽然这不是必需的,但将是一种有用的能力。

ISO 639 經常更改

639种语言代码由各自的注册机构积极维护和更改。这也不是一个假设的问题,只需查看ISO 639-3的更改日志即可。

使用现已弃用的语言标签让我有点担心 intl 扩展的维护程度;RFC 5656 于 2009 年发布,这几乎不是一个前沿标准。

问题

  • 国际使用的 ISO-639 语言代码是否定期更新?
  • 是否可以依赖 intl 作为 ISO 639 的权威查找资源?
  • 如果没有,PHP 中是否有 ISO 639 的权威查找资源?

intl 扩展依赖于 ICU 来提供语言代码等。ICU版本存储在常量PHP_ICU_VERSION中。ICU 本身依赖于 Unicode 通用语言环境数据存储库 (CLDR),如您在 Locale 类中引用的同一文档中指定的那样:"CLDR 在 [Unicode 标准附件] #35 中使用的扩展名(并由 ICU 继承)是有效的,并且在 ICU 中正常使用的任何地方使用。