ここでは、JDK (Java SE Development Kit) 6における国際化の拡張機能について概説します。
ロケールに依存するデータ(日付の書式設定文字列など)とサービス(日付フォーマッタなど)がプラグインできるように、java.text
およびjava.util
パッケージに含まれるロケール依存クラスには、いくつかのSPI (Service Provider Interface)が追加されています。これらのSPIにより、開発者はJava SEの現在使用可能なロケールのほかにも多数のロケールを容易にサポートすることができます。たとえば、JavaランタイムのBreakIterator.getSentenceInstance
ファクトリで、中国語のBreakIterator
を独自に実装できるようになります。
新しいjava.text.Normalizer
クラスは、「Unicode Standard Annex#15」で定義されたUnicodeテキスト正規化をサポートします。
新しいjava.net.IDN
クラスは、RFC 3490、3491、3454、3492に準拠したIDN (Internationalized Domain Name)をサポートします。
2005年(グレゴリオ暦)を平成 17年とするような和暦の計数をサポートするため、新しいCalendar
実装が追加されています。この和暦のインスタンスは、Locale("ja", "JP", "JP")
を指定すれば、Calendar.getInstance
ファクトリで作成することができます。java.text.SimpleDateFormat
クラスは、グレゴリオ暦以外のカレンダ固有の年号および日付形式をサポートしています。詳細は、「サポートされるカレンダ」のドキュメントを参照してください。
ResourceBundle
拡張アプリケーションによるリソース・バンドル・ロード処理の制御を強化するため、ネストされた新しいjava.util.ResourceBundle.Control
クラスが追加されています。このクラスは、リソース・バンドル・ロード処理中にResourceBundle.getBundle
ファクトリによって呼び出される一連のコールバック・メソッドを定義します。アプリケーションでは、これらのコールバック・メソッドをオーバーライドして、ファクトリ・メソッドの動作を変更することができます。
現在使用できるロケールは次のとおりです。
zh_SG
- 中国語(簡体字)、シンガポールen_MT
- 英語、マルタen_PH
- 英語、フィリピンen_SG
- 英語、シンガポールel_CY
- ギリシャ語、キプロスid_ID
- インドネシア語、インドネシアga_IE
- アイルランド語、アイルランドms_MY
- マレー語、マレーシアmt_MT
- マルタ語、マルタpt_BR
- ポルトガル語、ブラジルpt_PT
- ポルトガル語、ポルトガルes_US
- スペイン語、米国詳細は「サポートされるロケール」のドキュメントを参照してください。
SolarisおよびLinuxオペレーティング・システムにおいて英語以外のロケールで発生するキー入力の各種問題を修正するため、キーボードに関するAWTコードのアーキテクチャが変更されました。