Java SE 7の国際化の拡張機能には、次のものがあります。
Java SE 7リリースの初期バージョンでは、Unicode 5.1.0のサポートが追加されました。Java SE 7リリースの最終バージョンでは、Unicode 6.0.0がサポートされています。Unicode 6.0.0は、Unicode標準のメジャー・バージョンであり、2000を超える文字や、プロパティとデータのファイルが追加でサポートされています。
Javaチュートリアルには、Unicodeについて説明する新しいセクションがあります。
通貨は、ISO 4217コードで識別されます。これらのコードは外部機関によって管理され、Java SEプラットフォームとは関係なくリリースされています。Java SE 7以降は、JDKの新しいリリースを必要とせずに、新しい通貨に対応できます。
デフォルトの通貨を実行時に置き換えるには、<JAVA_HOME>/lib/currency.properties
という名前のプロパティ・ファイルを作成します。このファイルには、ISO 3166国番号とISO 4217通貨データからなるキーと値のペアが格納されます。値の部分は、カンマで区切られたISO 4217の3つの通貨の値(英字コード、数値コード、およびマイナー単位)で構成されます。シャープ記号(#
)で始まる行は、コメント行として扱われます。たとえば、
# Sample currency property for Japan JP=JPZ,999,0
この機能の新しいAPIには、次のメソッドが含まれています。これらはすべてCurrency
クラスにあります。
デフォルト・ロケールは、次の2種類の用途に対して別々に設定できます。フォーマット設定はリソースをフォーマットするために使用され、表示設定はメニューやダイアログで使用されます。新しいgetDefault(Locale.Category)メソッドは、Locale.Category
パラメータを取ります。このメソッドにFORMAT
列挙を渡すと、リソースをフォーマットするためのデフォルト・ロケールが返されます。同様に、DISPLAY
列挙を渡すと、UIで使用されるデフォルト・ロケールが返されます。setDefault(Locale.Category, Locale)メソッドは、指定されたカテゴリのロケールを設定するために使用されます。引数なしのgetDefault
メソッドでは、DISPLAY
のデフォルト値が返されます。
Microsoft Windowsでは、これらのデフォルト値はWindowsコントロール・パネルの「標準と形式」および「表示言語」の設定に従って初期化されます。
Locale
クラスは、BCP 47 (IETF BCP 47「Tags for Identifying Languages」)と相互に交換できる識別子を実装するように更新され、ロケール・データ交換用のLDML (UTS#35「Unicode Locale Data Markup Language」)のBCP 47互換拡張をサポートしています。
このリリースでは、Locale
クラスに次のネストされたクラスが追加されました。
Locale
インスタンスを作成し、設定メソッドを使ってそのインスタンスを構成するために使用できます。Locale
クラスに次のメソッドが追加されました。
LOCALE
クラスに次の定数が追加されました。
詳細は、Javaチュートリアルのロケールの作成およびBCP 47拡張に関するレッスンを参照してください。
NumericShaper
クラスは、Latin-1 (ヨーロッパ言語)の数字をほかのUnicode 10進数に変換するために使用します。Java SE 7リリースでは、独自の10進数を持つスクリプトのUnicodeの範囲を表すNumericShaper.Range列挙が追加されました。Java SE 7リリースには、このNumericShaper.Range
列挙を使用する次のメソッドが追加されています。
defaultContext
を開始コンテキストとして使います。詳細は、Javaチュートリアルのラテン数字から他のUnicode数字への変換に関するレッスンを参照してください。
正規表現のパターン・マッチング機能が、Unicode 6.0をサポートするように拡張されました。\u
または\x
エスケープ・シーケンスを使用してUnicodeコード・ポイントを照合できます。
詳細は、JavaチュートリアルのUnicodeのサポートに関するページを参照してください。