JEP 314: Additional Unicode Language-Tag Extensions
Дополнительные расширения языковых тегов Unicode
| Ответственный | Naoto Sato |
| Тип | Feature |
| Область | SE |
| Статус | Closed / Delivered |
| Выпуск | 10 |
| Компонент | core-libs / java.util:i18n |
| Обсуждение | i18n dash dev at openjdk dot java dot net |
| Рецензенты | Alan Bateman, Brian Goetz |
| Одобрен | Brian Goetz |
| Создан | 2017/03/24 23:19 |
| Обновлён | 2018/03/06 17:15 |
| Задача | 8177568 |
Аннотация
Доработать java.util.Locale и связанные API, чтобы реализовать дополнительные расширения Unicode для языковых тегов BCP 47.
Цели
Поддержка языковых тегов BCP 47 изначально была добавлена в Java SE 7, при этом поддержка расширения локали Unicode ограничивалась календарями и числами. Этот JEP реализует в соответствующих классах JDK больше расширений из последней версии спецификации LDML.
Что не является целью
Расширения языковых тегов Unicode, кроме описанных ниже, будут игнорироваться.
Описание
В Java SE 9 поддерживаемые расширения U языковых тегов BCP 47 — это ca и nu. Этот JEP добавит поддержку следующих дополнительных расширений:
cu(тип валюты)fw(первый день недели)rg(переопределение региона)tz(часовой пояс)
Для поддержки этих дополнительных расширений будут изменены следующие API:
java.text.DateFormat::get*Instanceбудет возвращать экземпляры с учётом расширенийca,rgи/илиtzjava.text.DateFormatSymbols::getInstanceбудет возвращать экземпляры с учётом расширенияrgjava.text.DecimalFormatSymbols::getInstanceбудет возвращать экземпляры с учётом расширенияrgjava.text.NumberFormat::get*Instanceбудет возвращать экземпляры с учётом расширенийnuи/илиrgjava.time.format.DateTimeFormatter::localizedByбудет возвращать экземплярыDateTimeFormatterс учётом расширенийca,rgи/илиtzjava.time.format.DateTimeFormatterBuilder::getLocalizedDateTimePatternбудет возвращать строку шаблона с учётом расширенияrg.java.time.format.DecimalStyle::ofбудет возвращать экземплярыDecimalStyleс учётом расширенийnuи/илиrgjava.time.temporal.WeekFields::ofбудет возвращать экземплярыWeekFieldsс учётом расширенийfwи/илиrgjava.util.Calendar::{getFirstDayOfWeek,getMinimalDaysInWeek}будет возвращать значения с учётом расширенийfwи/илиrgjava.util.Currency::getInstanceбудет возвращать экземплярыCurrencyс учётом расширенийcuи/илиrgjava.util.Locale::getDisplayNameбудет возвращать строку, включающую отображаемые имена для этих расширений U- В
java.util.spi.LocaleNameProviderпоявятся новые SPI для ключей и типов этих расширений U
Риски и допущения
Отображаемые имена, которые возвращает Locale::getDisplayName, зависят от локализованных данных, предоставляемых каждым поставщиком локалей.