Android対応(一)異なる言語に対応

2076 ワード

UIの文字列を外部ファイルに格納し、コードで抽出するのは良い方法です.工事下のres/values/strings.xmlファイル.文字列値を保存します.
1.ゾーン設定ディレクトリおよび文字列ファイルの作成
複数の言語をサポートするために、res/に追加のvaluesディレクトリを作成し、values-es/は言語コードが「es」の領域に設定された簡単なリソースファイルのディレクトリなどのハイフンとISO国家コードの末尾に名前を付けます.Androidは、実行時にデバイスの領域設定に基づいて、対応するリソースをロードします.言語のサポートを決定するには、次のようなリソースサブディレクトリと文字列リソースファイルを作成する必要があります.
MyProject/
    res/
       values/
           strings.xml
       values-es/
           strings.xml
       values-fr/
           strings.xml

異なる領域言語の文字列値を対応するファイルに追加します.Androidシステムの実行時には、ユーザーデバイスの現在の領域設定に基づいて、対応する文字列リソースが使用されます.
たとえば、以下に、異なる文字列リソースファイルに対応するいくつかの異なる言語を列挙します.
(1)英語(デフォルト領域言語),/values/strings.xml:


    My Application
    Hello World!


(2)スペイン語、/values-es/strings.xml:


    Mi Aplicación
    Hola Mundo!


(3)フランス語、/values-fr/strings.xml:


    Mon Application
    Bonjour le monde !


注意:bitmapのローカライズされたバージョンなど、任意のリソースタイプで領域修飾語(または任意の構成修飾子)を使用できます.
2.文字リソースの使用
ソースコードや他のXMLファイルでは、要素のnameプロパティを使用して独自の文字列リソースを参照できます.
ソースコードにはR.string.構文は文字列リソースを参照し、多くの方法で文字列を受け入れることができます.例:
// Get a string resource from your app's Resources
String hello = getResources().getString(R.string.hello_world);

// Or supply a string resource to a method that requires a string
TextView textView = new TextView(this);
textView.setText(R.string.hello_world);

他のXMLファイルでは、XMLプロパティが文字列値を受け入れるたびに、@string/構文で文字列リソースを参照できます.例: