Java - ResourceBundleの例

Java – ResourceBundleの例

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

1. 使い方?

ライブラリは、プロパティの命名に使用されるロケールと名前のサフィックスに基づいてプロパティファイルを読み取ります。 たとえば、MyLabels_en_US.propertiesという名前のラベルファイルについて考えてみます。 このファイルは、ロケールがUS-Englishを表すen_USに設定されている場合、ResourceBundleユーティリティによって読み取られます。

ロケールは、属性を持つ地域または場所を表します。 ロケールは通常、アプリケーションを使用するクライアントに関する詳細を維持するために使用されます。 ロケールには、それぞれの場所で使用される場所と言語の属性が含まれます。 したがって、ロケールは、ユーザーが属する場所を判別することにより、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.example;

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)