Android アプリケーション開発 ローカライズ【Android TIPS】
前回は文字列リソースファイルであるstrings.xmlについて紹介しました。
HelloWorldプログラムに表示されている「Hello world!」という文字は、このstrings.xmlの中に定義されているのです。
いちいち「strings.xml」。めんどくさくないですか?
開発中は、表示する文字をソースコード上にそのまま書いてしまったほうが圧倒的に楽です。
レイアウトファイルを作成中にいちいちstrings.xmlと行ったり来たりする必要がないですし、なによりkey文字列を何にするか悩む必要がありません。
まずは、よくない例。「strings.xml」を使わないで表示する文字を変更してみましょう。
「res/layout/activity_main.xml」をダブルクリックします。
赤枠の部分を「Nice to meet you!(hard code)」に書き換えます。
画面レイアウトファイル「activity_main.xml」上に文字列を直接設定しました。
実行するとこのようになります。
文字列リソースファイル「strings.xml」を参照せずに、画面レイアウトファイル「activity_main.xml」に直接設定した値が画面上に表示されています。
このことを「ハードコーディング」といいます。
では、なぜわざわざ文字列を別ファイルに保存しているのでしょうか?
答えは簡単です。
ずばり、アプリケーションを「ローカライズ」するためです。
ローカライズとは、アプリケーションをいろいろな国、いろいろな端末で動かせるように対応することを指します。
国際化、多言語対応など呼ぶこともあります。
さっそく、実践してみましょう。
(先ほど修正した「Nice to meet you!(hard code)」は「@string/hello_world」に戻しておいてください。)