文字列リソースのローカライゼーション

グローバル・マーケットをターゲットにしたアプリケーションを開発する際、問題になるのはやはりリソースの取扱いですね。

いまどきリソースシステムが上手いことできているものが多いので、

「きっとアンドロイドもうまいこと対処する方法はあるだろう」

と思われることでしょうが、実際にその通りです :-)

ここでは、システムのロケールを英語、日本語と切り替え、UI リソースとして文字列が英語、日本語と自動的に切り替わる所を確認します。

ロケールの変更とリソース切り替え

ここで作ったデモプログラムは次の通りです。

システムの言語設定を英語にしている場合、次のように表示されるプログラムがあったとします。

アンドロイド日本語と英語の切り替え

アプリケーションのタイトル領域と中身の文字「Hello, Demo Program!」が英語 (アルファベット) で表示されています。

そこで設定 (Settings) で言語 Language の設定を "日本語" に切り替えます。

アンドロイド日本語と英語の切り替え

システムの UI 自体、日本語になっていることがわかります。

この状態で、先のアプリケーションを見ると・・・

アンドロイド日本語と英語の切り替え

メニュー項目も日本語になっていますね (ローカライズテストというものです)。

アンドロイド日本語と英語の切り替え

アプリケーションの内容も確かに日本語に切り替わっています。

アンドロイド日本語と英語の切り替え

アンドロイドアプリケーションのローカライゼーション (L10N)

これを実現するのは実は簡単です。

文字列は res/values フォルダ以下の strings.xml に記述しますよね。実はこれがデフォルトになります。

日本語のリソースとして、res/values-ja フォルダに strings.xml を作ることで、 システムのロケールが ja のときに、それが使われるようになります。

このように代替リソース (alternative resource)res/values-<修飾子>/strings.xml に作成することで、 文字列のローカライズを簡単に実現する事が可能です。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Android 開発入門