あひる裁縫店

好きなこと、技術のこと、くだらないこと

Android編、strings.xmlでテキスト管理

前回はiOS板について書きました。

今回はAndroid編です。

AndroidStudioと、Kotlinでやっていきます。
まずはテキスト管理のみを書いて、そのあとに言語ごとに分ける方法を記入します。iOSに比べるとすぐにできるので、


まずは、いつも通りプロジェクトを作っていきます。

すると、res/valuesのなかに、strings.xmlができていると思います。

f:id:pg_0212:20171123224155p:plain

ここに、テキストを追加して使用していきます。


最初から追加されているものは、アプリ名です。
今回は、StringTest(センスの欠けらも)

<resources>
    <string name="app_name">StringTest</string>
</resources>


最初から配置されている、TextViewの文字を変更してみましょう。
strings.xmlのなかに以下のように追加していきます。

<resources>
    <string name="app_name">StringTest</string>
    <string name="hello">こんにちは!Android</string>
</resources>


activity_main.xml内で呼び出すときは、以下のように記入します。

android:text="@string/hello"

MainActivity.kt内ではこう

helloTexstView.text = resources.getString(R.string.hello)


と、これだけです。すぐできました。



次は、言語ごとにどう分けるかです。

今回も、日本語の場合・日本語以外の場合で分けてみましょう。

f:id:pg_0212:20171123194254p:plain


stringsの近くで右クリックして、新しいresourcesを作成します。

f:id:pg_0212:20171123195010p:plain


・File Nameは「strings.xml」ここはどの言語でも変わりません。

・Sources Set は今回は「Main」です。ここは自分の
状況で変更してください。

・Directory nameは、「values-ja」とします。
valuesの後ろに、言語のコードを指定します。コードは、ISO 639-1規格で指定します。
ISO 639-1コード一覧 - Wikipedia

これで準備は完了です。


ではテキストを追加してみましょう。

日本語の場合

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">日本語版</string>
    <string name="hello">こんにちは!Android</string>
</resources>


日本語以外の場合

<resources>
    <string name="app_name">StringTest</string>
    <string name="hello">Hello!Android</string>
</resources>

nameは必ず、同じ名前にしましょう。
アプリ名も、言語によって変えることができます。

使い方は先ほどと同じなので、さきにstrings.xmlを作って管理しておけば、コード部分を変えることなく、後々の多言語化は比較的やりやすいと思います。それはiOSとおなじですね。


例えば「アプリ名はどの言語も英語でいい!」のであれば、
app_nameの項目は、values/strings.xmlだけに書けばどの言語でも、そのテキストが表示されます。
(今回の場合だと、values-ja/strings.xmlには記述しない)


楽ですね〜

今回は以上です。(短かった・・・)