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 установленным способом.