openjdk.ruOpenJDK на русском

JEP 127: Improve Locale Data Packaging and Adopt Unicode CLDR Data

Улучшение упаковки данных локалей и переход на данные Unicode CLDR

ОтветственныйNaoto Sato
ТипFeature
ОбластьJDK
СтатусClosed / Delivered
Выпуск8
Компонентcore-libs / java.util:i18n
Обсуждениеi18n dash dev at openjdk dot java dot net
ТрудоёмкостьM
ДлительностьL
ОдобренBrian Goetz
Создан2011/07/15 20:00
Обновлён2024/07/12 11:25
Задача8046117

Аннотация

Создать инструмент, который преобразует файлы LDML (Locale Data Markup Language) в формат, пригодный для непосредственного использования библиотекой среды выполнения, определить способ упаковки результатов в модули, а затем с их помощью включить в JDK данные локалей, публикуемые проектом CLDR консорциума Unicode и ставшие стандартом де-факто.

Описание

  • Разработать инструмент, который генерирует файлы данных локалей для среды выполнения из формата LDML, исходя из того, что интерпретация LDML во время выполнения невозможна из-за ограничений по производительности. Формат выходных файлов должен быть непрозрачным, чтобы в будущем его можно было расширять.

  • Разработать механизм упаковки и установки данных локалей в виде модулей.

  • Поддержать некоторые элементы локали, заданные на уровне нижележащих платформ. Например, если в пользовательских настройках формата даты указан японский календарь, среда выполнения Java должна использовать эту информацию и выбрать японский календарь в качестве календаря по умолчанию. (См. 6337471: desktop/system locale preferences support)

  • Предоставить механизм управления пользовательскими настройками данных локали через какой-либо пользовательский интерфейс: в приложении (через SPI) или на уровне ОС (например, через панель управления Java в Windows).

Тестирование

Необходимо проверить, что установленные данные локалей корректно возвращаются через API, зависящие от локали, такие как DateFormat/NumberFormat и т. д.

Риски и допущения

Поскольку API сортировки (collation) в JDK пока не поддерживает Unicode Collation Algorithm, на котором основан LDML, данные сортировки из файлов LDML поддерживаться не будут.

Влияние

  • Совместимость: часть данных локалей в CLDR будет несовместима с собственными данными локалей JDK. Нужен механизм, с помощью которого пользователи смогут указать свои предпочтения.

  • Локализация: разработчики, занимающиеся локализацией, смогут добавлять и изменять данные локалей из CLDR установленным способом.