はじめに
こんにちは、どぎーです。
皆さんはstrings.xmlを活用していますか?
今回は、strings.xmlを用いて簡単にアプリを多言語対応させるTipsを紹介します。
開発環境
- AndroidStudio 4.0.1
手順
今回は、お手元のアプリを日本語と英語に対応させてゆきます。
##日本語用のstrings.xmlを用意する。
まずはProjectツールウィンドウの表示を、AndroidビューからProjectビューに変更しましょう。
その後、resフォルダにvalues-jaフォルダ
を追加しましょう。
このフォルダで、日本語表記で使用するデータを管理します。
続いて、values-jaフォルダにstrings.xml
を追加しましょう。
strings.xmlが作成できたら、それをダブルクリックして編集できるようにしておきましょう。
ここでProjectツールウィンドウの表示をProjectビューからAndroidビューに変更してみましょう。
すると以下に示すように、各strings.xmlはstringsフォルダ内に表示されます。
先ほどvalues-jaフォルダに追加したstrings.xmlの右側には(ja)
と表示されています。
アプリで表示する文字列を各strings.xmlに記述する。
それでは早速、アプリで表示する文字列を用意してゆきましょう。
まずは英語の文字列を用意してゆきます。
<resources>
<string name="app_name">My Application</string>
<string name="text">Merry Christmas!</string>
</resources>
次に日本語の文字列を用意してゆきます。
このとき、name
の値は英語版のstrings.xmlと同じにしましょう。
<resources>
<string name="app_name">strings.xmlで多言語化</string>
<string name="text">メリクリ三年柿八年</string>
</resources>
これにて文字列の準備は完了です。
記述した文字列を使用する。
今回は以下のように、TextViewのtextを@string/text
に設定します。
これにて文字列の設定は完了です。
アプリを起動して確認してみる。
最後に、アプリがちゃんと多言語対応しているか確認してゆきましょう。
まずは、AVD(エミュレーター)の言語を日本語に設定しましょう。
お使いのAVDのSettingsアプリを起動して、System > Languages & input > Languages
を開き、以下に示すように、日本語(日本)
を一番上に設定します。
これでAVDが日本語表記になりました。
それではアプリを起動してみましょう。
以下の画像のように日本語表記の文字列が表示されましたか?
今度はEnglish(United States)
を一番上に設定します。
これでAVDが英語表記となります。
それではアプリを起動してみましょう。
以下の画像のように英語表記の文字列が表示されましたか?
これでアプリの多言語化は完了です!
お疲れ様でした。
仕組み
Android OSには、使用したい言語で記述したstrings.xmlを所定のフォルダに入れることで、OSの言語設定に従って自動的に言語を切り替える仕組みが用意されています。
その所定のフォルダは、日本語ではvalues-ja
となっています。
また一般的には、values-言語コード
です。
使用したい言語の言語コードを調べて、ぜひ他にも実装してみてください。
最後に一言、メリクリ三年柿八年。そして良いお年を!