search
LoginSignup
3
Help us understand the problem. What are the problem?

Life is Tech ! #2 Advent Calendar 2020 Day 24

posted at

updated at

【Android Kotlin】strings.xmlを用いて、Androidアプリを多言語化してみる

#はじめに
こんにちは、どぎーです。
皆さんはstrings.xmlを活用していますか?
今回は、strings.xmlを用いて簡単にアプリを多言語対応させるTipsを紹介します。

#開発環境

  • AndroidStudio 4.0.1

#手順
今回は、お手元のアプリを日本語と英語に対応させてゆきます。

##日本語用のstrings.xmlを用意する。
まずはProjectツールウィンドウの表示を、AndroidビューからProjectビューに変更しましょう。
その後、resフォルダにvalues-jaフォルダを追加しましょう。
このフォルダで、日本語表記で使用するデータを管理します。
スクリーンショット 2020-12-23 0.41.13.png
スクリーンショット 2020-12-23 0.41.42.png

続いて、values-jaフォルダにstrings.xmlを追加しましょう。
スクリーンショット 2020-12-23 0.42.08.png
スクリーンショット 2020-12-23 0.42.38.png

strings.xmlが作成できたら、それをダブルクリックして編集できるようにしておきましょう。

ここでProjectツールウィンドウの表示をProjectビューからAndroidビューに変更してみましょう。
すると以下に示すように、各strings.xmlはstringsフォルダ内に表示されます。
先ほどvalues-jaフォルダに追加したstrings.xmlの右側には(ja)と表示されています。
スクリーンショット 2020-12-23 0.53.56.png

##アプリで表示する文字列を各strings.xmlに記述する。
それでは早速、アプリで表示する文字列を用意してゆきましょう。
まずは英語の文字列を用意してゆきます。

res/values/strings.xml
<resources>
    <string name="app_name">My Application</string>
    <string name="text">Merry Christmas!</string>
</resources>

次に日本語の文字列を用意してゆきます。
このとき、nameの値は英語版のstrings.xmlと同じにしましょう。

res/values-ja/strings.xml
<resources>
    <string name="app_name">strings.xmlで多言語化</string>
    <string name="text">メリクリ三年柿八年</string>
</resources>

これにて文字列の準備は完了です。

##記述した文字列を使用する。
今回は以下のように、TextViewのtextを@string/textに設定します。
スクリーンショット 2020-12-23 1.15.48.png
これにて文字列の設定は完了です。

##アプリを起動して確認してみる。
最後に、アプリがちゃんと多言語対応しているか確認してゆきましょう。

まずは、AVD(エミュレーター)の言語を日本語に設定しましょう。
お使いのAVDのSettingsアプリを起動して、System > Languages & input > Languagesを開き、以下に示すように、日本語(日本)を一番上に設定します。
これでAVDが日本語表記になりました。
スクリーンショット 2020-12-23 1.24.01.png

それではアプリを起動してみましょう。
以下の画像のように日本語表記の文字列が表示されましたか?
スクリーンショット 2020-12-23 1.27.03.png

今度はEnglish(United States)を一番上に設定します。
これでAVDが英語表記となります。
スクリーンショット 2020-12-23 1.26.30.png

それではアプリを起動してみましょう。
以下の画像のように英語表記の文字列が表示されましたか?
スクリーンショット 2020-12-23 1.26.41.png
これでアプリの多言語化は完了です!
お疲れ様でした。

#仕組み
Android OSには、使用したい言語で記述したstrings.xmlを所定のフォルダに入れることで、OSの言語設定に従って自動的に言語を切り替える仕組みが用意されています。
その所定のフォルダは、日本語ではvalues-jaとなっています。
また一般的には、values-言語コードです。
使用したい言語の言語コードを調べて、ぜひ他にも実装してみてください。

最後に一言、メリクリ三年柿八年。そして良いお年を!

#参考文献

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
3
Help us understand the problem. What are the problem?