2013年5月11日土曜日

Android アプリを多言語に対応する

Android アプリでは文字列をソースコードとは別に管理します。

/res/values/strings.xml に文字列が定義されています。
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">MultiLang</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>

</resources>

まずデフォルトの文字列を日本語に変更します
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">多言語対応</string>
    <string name="action_settings">設定</string>
    <string name="hello_world">こんには世界!</string>

</resources>

日本語になった

画面左上の新規作成ボタンを押してフォルダ新規作成します。

フォルダの新規作成


/res/values-en/ フォルダを作成します

values-en を作成する


多言語対応で作成するディレクトリ名は values-◯◯ です。
◯◯には言語コードが入ります。
中国語なら values-zh、韓国語なら values-ko という感じ。
今回は英語に対応させるため values-en を作成します。

/values/strings.xml を /values-en/ へコピーします。



/values-en/strings.xml の文字列を英語に変えます。
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Multi Languages</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>

</resources>

実行する Android の設定を英語に変更します。
Android 4.0 なら 設定 -> 言語と文字入力 で変更できます。

設定で言語を英語に変える

アプリを実行してみるとインタフェースの文字列が
英語に変わっていることが確認できました。
設定で日本語に戻すと、インタフェースが日本語になります。

インタフェースが英語になった

ちなみに最初から作成されている /res/values/strings.xml
はデフォルトの言語ファイルになります。
中国語や韓国語など、準備していない言語が選ばれている場合は、
このデフォルトの言語ファイルが使われます。


多言語対応についてはこちらに解説があります
Supporting Different Languages - Android Developers
http://developer.android.com/training/basics/supporting-devices/languages.html

Localization - Android Developers
http://developer.android.com/guide/topics/resources/localization.html

0 件のコメント:

コメントを投稿