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