開発者ドキュメント

Java – ResourceBundleの例

`java.util.ResourceBundle`は、国際化(複数言語)に使用されるライブラリです。システム用に構成されたデフォルトのロケールごとにメッセージを返すことができます。このような機能は、世界中で使用されるシステムを開発するときに使用されます。

1.どのように動作するのですか?

ライブラリは、プロパティの命名に使用されるロケールと名前の接尾辞に基づいてプロパティファイルを読み込みます。例えば、 `MyLabels

en

US.properties`という名前のラベルファイルを考えてみましょう。 LocaleがUS-Englishを表すen__USに設定されている場合、このファイルは `ResourceBundle`ユーティリティによって読み込まれます。

ロケールは、その属性を持つリージョンまたはロケーションを表します。ロケールは一般に、アプリケーションを使用しているクライアントに関する詳細を維持するために使用されます。ロケールには、それぞれの場所で使用される場所と言語の属性が含まれています。したがって、Localeは、ユーザが所属する場所を決定することによって正しいラベルファイルを選択するために `ResourceBundle`を支援します。

2.例

トピックをさらに明確にするために、以下の例を見てみましょう。

MyLabels

en

US.properties

how__are__you = How are you?

MyLabels

ms

MY.properties

how__are__you = apa khabar

Application.java

package com.techfou;

import java.util.Locale;
import java.util.ResourceBundle;

public class Application {

    public static void main(String[]args) {

       //en__US
        System.out.println("Current Locale: " + Locale.getDefault());
        ResourceBundle mybundle = ResourceBundle.getBundle("MyLabels");

       //read MyLabels__en__US.properties
        System.out.println("Say how are you in US English: " + mybundle.getString("how__are__you"));

        Locale.setDefault(new Locale("ms", "MY"));

       //read MyLabels__ms__MY.properties
        System.out.println("Current Locale: " + Locale.getDefault());
        mybundle = ResourceBundle.getBundle("MyLabels");
        System.out.println("Say how are you in Malaysian Malaya language: " + mybundle.getString("how__are__you"));

    }

}

このコードを実行すると、以下の出力が得られます。

Current Locale: en__US
Say how are you in US English: How are you?
Current Locale: ms__MY
Say how are you in Malaysian Malaya language: apa khabar

これは、ロケールセットに設定されているデフォルト値に応じて、出力に表示されます。このユーティリティは、主にWebアプリケーションで使用され、Webブラウザがリモートユーザのロケールを把握するのに役立ちます。これにより、Webサイトを特定の言語で表示することが可能になります。

ソースコードをダウンロードする

ダウンロードする –

ResourceBundleExample.zip(8 KB)

モバイルバージョンを終了