JDK 8における国際化の拡張機能

JDK 8の国際化の拡張機能には、次のものがあります。

Unicodeの拡張機能

JDK 8リリースには、Unicode 6.2.0のサポートが含まれています。Unicode 6.0をサポートするJDK 7のリリース以降、Unicode 6.1.0および6.2.0の仕様で次の新機能が導入され、JDK 8に追加されています。

Javaチュートリアルには、Unicodeについて説明するセクションがあります。

Unicode CLDRデータの採用とjava.locale.providersシステム・プロパティ

Unicode Consortiumは、「もっとも大規模かつ広範な標準ロケール・データ・リポジトリによって世界の言語をサポートする」ために、共通ロケール・データ・リポジトリ(CLDR)プロジェクトをリリースしました。CLDRはロケール・データの事実上の標準となりつつあります。

CLDRのXMLベースのロケール・データはJDK 8リリースに組み込まれていますが、デフォルトでは無効になっています。

現在、ロケール・データには異なる4つのソースがあります。

使用するロケール・データ・ソースを選択するには、java.locale.providersシステム・プロパティを使用して、データ・ソースを優先順に並べます。たとえば、

java.locale.providers=HOST,SPI,CLDR,JRE

デフォルトの動作は次の設定と同等です。

java.locale.providers=JRE,SPI

詳細については、API仕様のページのjava.util.spi.LocaleServiceProviderおよびJDK 8とJRE 8でサポートされているロケールに関するページを参照してください。このページはOracle JDK 8のリリース後に使用可能になります。

新しいCalendar APIとLocale API

Unicode共通ロケール・データ・リポジトリ(CLDR)プロジェクトの進展に伴い、Java SE APIは更新されます。JDK 8リリースでは、2つの新規クラスといくつかの新規メソッドが追加され、既存のstaticメソッドに新しい戻り値が追加されました。

カスタム・リソース・バンドルを拡張機能としてインストールする機能

JDK 8では、サービス・プロバイダ・インタフェース(SPI)であるjava.util.spi.ResourceBundleControlProviderインタフェースが導入されました。SPIを使用すると、拡張可能なアプリケーションを作成できます。このようなアプリケーションは、元のコード・ベースを変更せずに簡単に拡張できます。このSPIを使用すると、メソッドResourceBundle getBundle(String baseName, Locale targetLocale)でのリソース・バンドルのロード方法を変更できます。このメソッドはResourceBundle.Controlクラスのインスタンスを必要としません。ResourceBundleControlProvider SPIの実装がインストールされると、デフォルトのResourceBundle.Controlクラスが置き換えられます。これは、デフォルトのバンドル・ロード処理を定義します。詳細は、カスタム・リソース・バンドルを拡張機能としてインストールする方法に関するトピックを参照してください。


Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.