Разверните ключевые слова Unicode в icu:: Языковой тег локали

Скажи у меня есть 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 (с расширениями Unicode) для передачи в API, который ожидает этот формат и сам не знает о значениях по умолчанию для локали.

Попытки решения

  1. Locale::getUnicodeKeywords предоставляет только ключевые слова, которые были переопределены вручную.
  2. Явный вызов Locale::getUnicodeKeywordValue ключевое слово, которое не было переопределено вручную, приводит к ошибке вместо получения значения из известных значений по умолчанию для локали.

0 ответов

Другие вопросы по тегам