JEP 314: Additional Unicode Language-Tag Extensions | 附加 Unicode 语言标记扩展
摘要
增强 java.util.Locale
和相关 API,以实现 BCP 47 语言标记的附加 Unicode 扩展。
目标
对 BCP 47 语言标记的支持最初是在 Java SE 7 中添加的,其中对 Unicode 区域设置扩展的支持仅限于日历和数字。本 JEP 将在相关的 JDK 类中实现 最新 LDML 规范 中指定的更多扩展。
非目标
不支持本文档未描述的其他 Unicode 语言标记扩展。
描述
自 Java SE 9 起,支持的 BCP 47 U 语言标记扩展有 ca
和 nu
。本 JEP 将添加对以下附加扩展的支持:
cu
(货币类型)fw
(一周的第一天)rg
(区域覆盖)tz
(时区)
为了支持这些附加扩展,将对以下 API 进行更改:
java.text.DateFormat::get*Instance
将根据扩展ca
、rg
和/或tz
返回实例java.text.DateFormatSymbols::getInstance
将根据扩展rg
返回实例java.text.DecimalFormatSymbols::getInstance
将根据扩展rg
返回实例java.text.NumberFormat::get*Instance
将根据扩展nu
和/或rg
返回实例java.time.format.DateTimeFormatter::localizedBy
将根据扩展ca
、rg
和/或tz
返回DateTimeFormatter
实例java.time.format.DateTimeFormatterBuilder::getLocalizedDateTimePattern
将根据rg
扩展返回模式字符串。java.time.format.DecimalStyle::of
将根据扩展nu
和/或rg
返回DecimalStyle
实例java.time.temporal.WeekFields::of
将根据扩展fw
和/或rg
返回WeekFields
实例java.util.Calendar::{getFirstDayOfWeek,getMinimalDaysInWeek}
将根据扩展fw
和/或rg
返回值java.util.Currency::getInstance
将根据扩展cu
和/或rg
返回Currency
实例java.util.Locale::getDisplayName
将返回一个包括这些 U 扩展显示名称的字符串java.util.spi.LocaleNameProvider
将为这些 U 扩展的键和类型提供新的 SPI
风险和假设
Locale::getDisplayName
返回的显示名称取决于每个区域设置提供者提供的本地化数据。