mucchinのAndroid戦記

Androidアプリの多国語対応の方法

Androidアプリを多国語対応するやり方は?

Androidは、実に色んな言語のサポートをしています。
自分で作ったAndroidアプリを、色んな国の人に使ってもらいたい!と思っている方も多いと思います。
Android端末の表示言語設定に合わせて、自分で作っているAndroidアプリの言語を切り替える事ができます。
但し、勝手に翻訳してくれるというわけではありませんケド。


Androidアプリでは、アプリ内で使用する文字列のリソースは、基本的にはXMLファイルにて定義します。
通常、これらのXMLファイルは以下に作成します。
Androidプロジェクト->res->values
この「values」というフォルダにあるstring.xmlに、文字列を定義していきます。


例えば、下記のような言語対応をしたいとします。
・日本語モードの場合は、日本語用の文字列を使用する
・それ以外は、英語の文字列を使用する
上記の場合、下図のように、まずは、resフォルダ直下に、「values-ja」という名前のフォルダを用意します。
Androidアプリの多国語対応の方法
そして、「values」フォルダと同じように、string.xmlを作成します。
※XMLの追加方法は下記記事参照
EclipseでのXMLの追加方法


スポンサーリンク




そして、「values」フォルダにあるstring.xmlと、「values-ja」フォルダにあるstring.xml両方に、アプリ内で使用する文字列を定義します。
Nameはそれぞれ同じNameを設定しますが、Valueには、その言語に合わせた文字列を設定してください。
(下図のName欄には、両方のXMLで同じ値、Value欄は言語に合わせた文字列を設定)
Androidアプリの多国語対応の方法


このようにしてAndroidアプリを作成します。
これでOKです。
あとは、端末の言語設定(設定の変更方法はAndroidエミュレータを日本語表示にする方法 参照)を「日本語」にすれば、values-jaフォルダのXMLを使用し、それ以外の言語設定だと、valuesフォルダのXMLを使うように、自動的になります。


「values-xx」の「xx」に対応する言語のフォルダが存在すれば、そのフォルダ内のリソースを使い、そうでないものはデフォルトの「values」フォルダのリソースを使う、というように動作してくれます。
「xx」に指定できる言語ですが、もちろん日本語だけではありません。
ISO 639-1で定義されているものを使用できます。


ちなみに、今回は言語の設定による文言切替を説明しましたが、言語だけでなく、端末の向き、解像度等でもリソースを切り替える事が出来るみたいです。(試してませんが。)
APIリファレンス内を探してみたところ、以下に詳細が記されています。
Android SDKインストールフォルダ配下の、
docs\guide\topics\resources\resources-i18n.html
このHTMLの「Table 2」というところを見てください。
この表に色々書いてくれているみたいですよ。
参考にしてください。
コレを使えば、横向き、縦向きで画面の表示を切り替えるのも、レイアウトXMLの定義を分けておけばいいのです!


スポンサーリンク

URL :
TRACKBACK URL :

Leave a Reply

*
*
* (公開されません)

CAPTCHA


*

Return Top