
プログラマーの常識をJavaで身につける (5)
国際化プログラミングの常識
NTTデータ ビジネスブレインズ
伊賀敏樹
2007/5/2
■ ResourceBundleクラスの利用例
これらのプロパティファイルをプログラムで利用すると、以下のようになります。
| KotowazaSample.java | |
|
(1)の個所で(日本語環境で実行している場合には)kotowaza_ja.propertiesファイルから設定値を読み込みます。そして、(2)、(3)、(4)の個所でキーに対応する文字列を取得します。
実行結果 |
| MESSAGE1: 急がば回れ。 MESSAGE2: 時は金なり。 MESSAGE3: 郷に入いっては郷に従え。 |
プロパティファイル化された文字列を利用してプログラムが動作していることが確認できます。
■ すでに英語も対応しているので、試してみよう!
さて実は、このプログラムはすでに英語化対応が実現できています。Eclipseからアプリケーションをロケール指定で実行するには、下記の手順を踏みます。
- [実行(R)]→[構成および実行(N)]メニューを選ぶ
- [引数]タブの[VM引数]にJavaコマンドのオプションを指定
![]() |
| 図12 ロケール指定によるアプリケーション起動 (クリックすると画像が拡大します) |
ここで、前述のEclipseのロケール指定を行った起動方法と同様の内容を指定すると、ロケール指定を切り替えられます。
ロケールを指定する[java.util.Locale]を使うと……
次に、強制的に英語ロケールのプロパティファイルを読み込む例を示します。先ほどのソースコードKotowazaSample.javaを以下の桃色太字のように書き換えて実行してください。
| KotowazaSample.javaの一部 | |
|
実行結果 |
| MESSAGE1: Slow and steady wins the race. MESSAGE2: Time is money. MESSAGE3: When in rome, do as the romans do. |
(5)の個所をご覧ください。Localeクラスを利用して、ロケールを明示的に英語として指定しています。ただし、強制的にロケールを指定することは、通常のプログラムでは、あまり必要がないと考えます。
地域の時差を表す[java.util.TimeZone]
java.util.Calendarと連動して動作する、時差を表すクラスとしてjava.util.TimeZoneクラスがあります(Calendarについては、前回の記事を参照ください。タイムゾーンに関する記載もあります)。
いま使っているOSのタイムゾーンを取得するプログラムでTimeZoneクラスの動作を見てみましょう。
| TimeZoneSample.java | |
|
実行結果 |
| Asia/Tokyo 日本標準時 |
OS上でタイムゾーンが日本として設定されていると、上記のように日本のタイムゾーンになっていることが確認できます。
お金の情報が詰まっている[java.util.Currency]
通貨も国や地域によって異なるものの1つです。Java APIには、通貨を表すクラスとしてjava.util.Currencyクラスがあります。このクラスを使って、通貨に関する情報を取得できます。
■ 日本の通貨の情報を見てみよう
日本の通貨の情報を取得するには、(6)のように Localeクラスを併用して記述します。
| CurrencySample.java(日本) | |
|
実行結果 |
| ¥ デフォルトの小数点けた数:0 |
■ なんと、米国の通貨には小数点が!
米国の通貨を取得するには、(7)のように記述します。米国内では、小数点けた数が2けたと取得されることが確認できます。私たち日本の通貨においては、小数点以下は日常生活では利用しないので、あまり見慣れませんね。
| CurrencySample.java(米国) | |
|
実行結果 |
| USD デフォルトの小数点けた数:2 |
■ フランスの通貨はちゃんとユーロになっている
同じように、フランスの通貨を取得しましょう。(8)のように記述します。フランスでは、ユーロが利用されているのですね。
| CurrencySample.java(フランス) | |
|
実行結果 |
| EUR デフォルトの小数点けた数:2 |
なお、このCurrencyクラスはほとんどのJavaプログラマーは利用したことがないと思います。
次回は、「文字」の常識について
次回は、「文字」についての常識を取り上げます。java.lang.Stringクラス、java.lang.Characterクラスで学ぶ文字列の概念や操作、パッケージjava.util.regexのクラスで学ぶ正規表現、今回の「国際化プログラミング」にも関係がある、パッケージjava.nio.charsetのクラスで学ぶ文字コードの基礎知識、Javaで使える文字エンコードの種類などについて学んでいきましょう。
■ @IT関連記事
| Eclipseプラグインを国際化しよう Eclipseプラグイン実践テクニック(1) Eclipseプラグイン作成の基礎を理解しても、現場で活用するには実践のためのノウハウが必要だ。本連載で応用力を身につけよう 「Java Solution」フォーラム 2006/8/26 |
||
| Javaのクラスライブラリを攻略「ユーティリティ編」 [連載]基礎から学ぶサーブレット/JSP(8) 国際化機能や配列、正規表現のクラスを学び、実際的なアプリケーション作成のための基礎をつくります 「Java
Solution」フォーラム 2003/9/9 |
| 国際化対応アプリケーションの作成 Strutsを使うWebアプリケーション構築術(7) 最終回はアプリケーションの国際化対応を行います。ブラウザの言語設定で、自動的に表示言語が切り替わるようになります 「Java
Solution」フォーラム 2004/7/31 |
||
3/3 |
| Index | ||||||||
|
||||||||
| プロフィール |
| 伊賀 敏樹(いが としき) ハンドル:いがぴょん 1968年生まれ。現在、NTTデータ ビジネスブレインズ 第一SI事業部 ソリューショングループ所属。システム開発の技術支援などに従事する。仕事におけるJava言語とのかかわりは1998年から。
現在 blanco Frameworkというオープンソースによるソースコード自動生成タイプの開発フレームワーク提供に取り組んでいる。
趣味はヴァイオリン演奏。アマチュアオーケストラで演奏することもある。ホームページ いがぴょんの日記ウェブページv2(1996年から続けているWeb日記) 所属団体 blanco Framework(コミッタ) 主な著書 「やさしく学ぶ基礎からのJDBC」 「Javaプログラミング[アプリケーション編]ステップアップラーニング」 |
プログラマーの常識をJavaで身につける バックナンバー
| ご意見、ご感想はJava Solution 会議室へどうぞ |
| Java Solution全記事一覧 |
TechTargetジャパン
- Scalaのパッケージ、アクセス修飾子、オブジェクト継承 (2012/5/22)
インポート、パッケージオブジェクト、抽象クラス/抽象メソッド、オーバーライド、final、シールドクラスなども - 基幹系システムでCloud SQLは使えるか試してみた (2012/5/17)
サンプルとしてMRPシステムを作成して動かし、「再帰呼び出し」などのパフォーマンスを測定して検証してみます - アジャイル管理ツール9選+Pivotal Tracker入門 (2012/5/14)
群雄割拠のアジャイルプロジェクト管理ツールを9つ紹介し、特に注目を集めているPivotal Trackerの基本的な使い方を解説します - サーバサイドJSやJavaでWebアプリが作れるXPages (2012/5/11)
Notes/Dominoの資産をサーバサイドJavaScriptやJavaで操作し、HTMLやJavaScript、CSSをUIにできる技術を紹介
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


1968年生まれ。現在、