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種類の使用法をそれぞれ設定できます。 フォーマット(FORMAT)設定は、リソースのフォーマットに使用されます。表示(DISPLAY)設定は、メニューおよびダイアログで使用されます。 新規の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インスタンスを作成し、setterメソッドを使用してそのインスタンスを設定するために使用できます。Localeクラスに次のメソッドが追加されました。
LOCALEクラスに次の定数が追加されました。
詳細は、JavaチュートリアルのCreating a LocaleとBCP 47 Extensionsを参照してください。
NumericShaperクラスは、Latin-1(ヨーロッパ言語)の数字をほかのUnicode10進数に変換するために使用されます。 Java SE 7リリースでは、NumericShaper.Range列挙型が追加されました。この列挙型は、独自の10進数を持つスクリプトのUnicodeの範囲を表します。 Java SE 7リリースには、このNumericShaper.Range列挙型を使用する次のメソッドが追加されています。
defaultContextを最初のコンテキストとして想定します。詳細は、JavaチュートリアルのConverting Latin Digits to Other Unicode Digitsを参照してください。
詳細は、JavaチュートリアルのUnicode Supportページを参照してください。
