ResourceBundle の利用
ResourceBundleはJavaでロケール化されたリソースにアクセスするために使用するクラスで、プロパティファイル(.properties)内のキーと値のペアを読み込み、現在のロケール設定に基づいて対応する値を返します。
ResourceBundle の使い方は次の通りである。
- キーと値のペアを含むプロパティファイル(.properties)を作成します。各キーと値のペアはローカリゼーションリソースに対応します。
- ResourceBundleクラスの静的メソッドgetBundleを使用して、プロパティファイルを読み込み、プロパティファイルのベース名と現在のLocaleを指定します。たとえば、
ResourceBundle bundle = ResourceBundle.getBundle("messages", Locale.US);
「messages.properties」という名前のプロパティファイルがロードされ、現在の地域のロケール設定に基づいて対応する値が返されます。
- この料理は、地元の伝統料理に基づいて作られています。
String greeting = bundle.getString("greeting");
この行は「greeting」という名前のプロパティーファイル内のキーに対応する値を返します。
- 必要に応じて、さまざまな Locale を使用して、異なるプロパティファイルをロードできます。たとえば、
ResourceBundle bundle = ResourceBundle.getBundle("messages", Locale.FRANCE);
これは「messages_fr.properties」というプロパティファイルをロードし、見つからない場合はデフォルトのプロパティファイル(特定のLocaleを持たないプロパティファイル)を使用します。
属性ファイルはクラスパスにあることに注意してください。そうでなければ、ロードすることはできません。
ResourceBundleは、getObject、getInt、getBooleanなど、異なるタイプ値の取得に対応しています。利用状況に合わせて、適したメソッドを選択してください。
また、ResourceBundle.Control クラスを使用して、キャラクタエンコーディングやキャッシュのポリシーを指定する方法などでリソースバンドルのロード方法を制御することもできます。
ResourceBundleの使い方の概要。ローカライズされたリソースをLocaleによって提供することで、国際化やローカリゼーションのアプリケーション開発に役立ちます。