次のページへJavaプログラミングの国際化についてそれでは、Javaの国際化に関する情報を見ていきましょう。Javaにとっての一次情報源であるサン・マイクロシステムズ提供のドキュメントに、Javaの国際化に関する有益な情報が記載されていますので、こちらを見ていきます。「プログラマーがAPIに向き合ううえでの常識」をご参照くださいサン・マイクロシステムズからさまざまな情報が提供されていますが、ドキュメントが日本語訳されているものとしては以下の2点がよくまとまっています。5.0ドキュメント:国際化(日本語)国際化関連のインデックスにもなっている。5.0ドキュメント:国際化の概要(日本語)JDKのドキュメントなので、重要な一次情報源。5.0ドキュメント:国際化の概要」をもう少し詳しく見ていきましょう。このドキュメントでは、Javaの国際化について、以下のような分類でまとめられています。各分類の詳細については、要約してあります。APIを活用などすることによって実現される国際化対応」の2種類が含まれている点に注意が必要です。このため、プログラマーがここに記載されているすべてを理解しておく必要はありません(例えば、Java実行環境のUnicode対応に関する実装については、プログラマーの多くは知る必要がないことでしょう)。Javaプログラマーが利用する国際化対応機能についても、すべてを使いこなす必要はありません。国際化対応機能をむやみに使うと、訳の分からないソースコードが出来上がってしまう懸念すらあります。目的をしっかり持ち、必要となる国際化プログラミングを選択しながら、ほどほどに適切に利用する必要があるのです。文字列をソースコードから外部ファイルへ抽出[java.util.ResourceBundle]また、国際化プログラミング技術の中には、国際化以外の目的でも有益な技術が含まれています。ResourceBundleクラスを使うと、画面表示内容やメッセージなどの文字列をソースコードから外部ファイル(*.properties)へと追い出すことができます。外部ファイル化しておくと、そのプログラムに精通していない第三者でも、メッセージなどの文字列を変更(保守)しやすくなるというメリットがあります。APIのうち、いくつかを見ていきましょう。APIの1つがjava.util.ResourceBundleクラスです。このクラスを使うと、ロケールに対応した言語の*.propertiesファイルが自動的に読み込まれます。国際化したpropertiesファイルを作る最初に、プロパティファイル(*.properties)を作成します。ResourceBundleが利用するプロパティファイルはnative2asciiコマンドを使って作成します。native2asciiコマンドは場合によって面倒なことが多いので、プロパティファイルの作成・編集には、Eclipseプラグインを利用する場合が多いです。@ITの記事「CoolなEclipseプラグイン(1):Javaのプロパティファイルを編集できるプラグイン」に、主なものが紹介されています。1.0.0)を使います。インストールや使い方については、blancoResourceBundleプラグインのサイトを参照してください。今回は、「ことわざバンドル」というリソースバンドルについて英語版と日本語版の2つを準備します。以下のように、enシートとjaシートの2つを作成します(シート名とロケールとをそろえておいてください)。リソースバンドル定義書記入(日本語)インストールしたblancoResourceBundleプラグインの[ソースコード生成]ボタンを押します。blancoResourceBundleプラグインによるプロパティファイルの自動生成すると、以下の3つのプロパティファイルが作成されます。kotowaza.properties(基底名.properties)kotowaza_en.properties(基底名_en.properties)kotowaza_jp.properties(基底名_jp.properties)これらのうち、_enのものが英語版、_jpのものが日本語版となります。ちなみに、対応するプロパティファイルがない場合(例えば、このケースにおいてフランス語としてプログラムが起動された場合)には、kotowaza.properties(基底名.properties)が利用されるようになっています。これらのファイルはJavaのクラスパスの範囲に存在する必要があります。ここでは便宜上、Eclipseがクラスパスとして取り扱うsrcフォルダへプロパティファイルをコピーして利用します。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。