目次へ

6. ロケール/プロパティ/リソースバンドル

この章ではJavaの特徴の1つである「国際化対応」において、中心的な役割を果たす「ロケール」「プロパティ」「リソースバンドル」について説明します。

6.1. ロケール

ロケールとは言語を共有する区域の事で、Javaでは「java.util.Locale」クラスを利用して管理されています。ロケールが違えば使用言語はもちろんの事、「数字」「日付」「通貨」などの表記法も異なってきます。したがってアプリケーションを全世界に対応させるためには、エラーメッセージなどの文言を1つずつ変えていかなければなりません。そういった言語依存の部分を容易に実装できる仕組をJavaは提供しているのですが、その仕組の鍵となる区域情報を管理するのがLocaleクラスです。

ロケールはJava内部では

(言語コード2桁)_(国コード2桁)_(付加情報)

という形式で管理されています(国コード、付加情報は省略される場合があります)。例えばアメリカの場合は、言語コード「en」国コード「US」を組み合わせて「en_US」となります。イタリアで通貨としてユーロを基本とする場合には、「it_IT_EURO」となります(リラの場合は「it_IT」)。日本は「ja_JP」です。なお言語コードはISO-639、国コードはISO-3166に従っています。付加情報はJava独自のものです。

さてLocaleには引数が1つのものから3つのものまで3種類のコンストラクタがあり、それぞれ「言語コードのみ」「言語コードと国コード」「3種類全て」に対応しています。しかし通常はコンストラクタからLocaleインスタンスを作成する事は無く、Localeクラスに定数として定義されているものを使用するか、「getDefault」メソッドの返り値(デフォルトロケール)を使用するかのいずれかです。

以下はデフォルトロケールの国名および言語名を表示するサンプルプログラムです。

import java.util.Locale;
...
Locale defaultLocale = Locale.getDefault();
System.out.println(defaultLocale.getDisplayCountry());
System.out.println(defaultLocale.getDisplayLanguage());

他に、利用可能なロケール一覧を返す「getAvailableLocales」メソッド、デフォルトロケールを設定する「setLocale」メソッドなどがあります。

(実習課題1)

以下のアプリケーションを作成する事。

  • 利用可能なロケールの言語名・国名一覧を表示する。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp