conta's diary

思ったこと、やったことを書いてます。 twitter: @conta_

Android string.xmlの分割と多言語化

多言語化はフォルダ名をvalues-XX(XXは国コード"ja"とか"cn"とか)にして、同じようなリソースを置くことでAndroidが勝手に入れ替えてくれる。

また、言語ファイルをよく記述しているres/values/string.xmlは、他の名前で定義しても利用可能。
なので、string.xmlが大きくなりそうになったらファイルを分割するとスッキリする。
例えば、string_test.xml内で"hello"という文字列を定義すると、R.string.helloでアクセスできるようになる。

下記はサンプル。

res/values/string_test.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
 
  <string name="hello">hello!</string>
</resources>


res/values-ja/string_test.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
 
  <string name="hello">こんにちわ!</string>
</resources>

利用例)

Log.d("debug", getString(R.string.hello));

これで言語が日本語の際は"こんにちは!"、それ以外は"hello"と出力される。