国際化対応で考慮しなくてはいけないことに、
日付や金額の数値表現など言語によって慣習的に決められた記述方法があります。
単純にメッセージを各国語に直訳するだけでは問題はかたづきません。
たとえば日付の表示の場合では、
年月日や曜日の記述の順番にも言語(国)ごとに違いがあります。
java.text
パッケージには複雑な書式に合わせて数値や文字の情報を整形するための
Formatクラスを共通のスーパークラスとするクラス群が用意されています。
国際化に対応するリソースを利用するためには、
これらのクラスを活用すると便利です。
| クラス名 | 用途 |
|---|---|
| NumberFormat | 数値表現の Formatの共通のスーパークラス。 |
| DecimalFormat | 10進数表現の Format。 整数、小数、金額の表示。 |
| ChoiceFormat | 配列の添字によって内容を指定できる Format。 |
| MessageFormat | 最終的に必要となるリソースを与えるため複雑な代入が可能な Format。 |
| DateFormat | 標準的な日付の表示の形式を与える Format。 |
| SimpleDateFormat | 日付の表示の形式を調整するための Format。 |
上記のクラスのうち、DateFormatは与えられた Localeに合わせて
標準的な Formatを提供してくれます。
したがって、特別なリソースを用意しなくても複数の Localeに対応できる
アプリケーションが作成できます。
これに対して、金額の表示などの Formatは内部に Localeを処理する機能はありません。
むしろプログラマはこれらのクラスを元にして Localeに対応するリソースのクラスを
設計します。そして複数のリソースが用意できたならば、
それらを
ResourceBundle
を使ってまとめることになります。
ソースファイル