在icu :: Locale语言标签中展开Unicode关键字

时间:2019-06-20 19:59:00

标签: internationalization icu ietf-bcp-47 icu4c

说我有一个icu::Locale,其中设置了两个Unicode关键字,例如"en-US-u-ca-gregory-tz-usnyc"。 如果我致电toLanguageTag,我可以得到上面的字符串。

如果我调用addLikelySubtags以“最大化”语言环境,则可以将其扩展为"en-Latn-US-u-ca-gregory-tz-usnyc"(添加Latn脚本标识符,该标识符是隐式的)。

但是如何添加“可能的Unicode关键字”,以获得类似"en-US-u-ca-gregory-cf-standard-co-standard-cu-usd-fw-sun-ms-ussystem-nu-latn-tz-usnyc"的内容?这些应该从有关语言环境的CLDR数据中得出。

目的

我需要获取一个完全扩展的Unicode BCP-47语言环境ID(具有Unicode扩展名),以传递给需要这种格式且本身不了解语言环境默认值的API。

尝试的解决方案

  1. Locale::getUnicodeKeywords仅提供手动覆盖的关键字。
  2. 针对尚未被手动覆盖的关键字明确调用Locale::getUnicodeKeywordValue会导致错误,而不是从已知的语言环境默认值中获取值。

0 个答案:

没有答案