Skip to content

Most visited

Recently visited

navigation

異なる言語のサポート

アプリのコードから UI 文字列を抜き出して外部のファイルに保存すると、さまざまな利点があります。 Android では、各 Android プロジェクトのリソース ディレクトリを使うことでこれを簡単に実現できます。

Android SDK Tools(Android プロジェクトの作成を参照)を使ってプロジェクトを作成した場合、プロジェクトのトップレベルに res/ ディレクトリが自動的に作られます。 この res/ ディレクトリには、さまざまなリソースタイプのサブディレクトリがあります。 また res/values/strings.xml など、文字列の値を保持するデフォルト ファイルもいくつかあります。

ロケール ディレクトリと文字列ファイルを作成する

サポートする言語を追加するには、res/ 内に values ディレクトリを追加します。ディレクトリ名の末尾には、ハイフンと ISO 言語コードを付けます。 たとえば values-es/ ディレクトリには、言語コードが「es」のロケール用の基本的なリソースが含まれています。 Android によって、実行時の端末のロケール設定に応じて該当するリソースが読み込まれます。 詳細については、代替リソースを提供するをご覧ください。

サポートする言語を決定したら、リソースのサブディレクトリと文字列リソースファイルを作成します。 次に例を示します。

MyProject/
    res/
       values/
           strings.xml
       values-es/
           strings.xml
       values-fr/
           strings.xml

各ロケールの文字の値を該当のファイルに追加します。

Android では実行時に、その時点でユーザーの端末に設定されているロケールに基づいて適切な文字列リソースが使用されます。

たとえば、次の例はそれぞれ別の言語に対するそれぞれの文字列リソースファイルを示しています。

英語(デフォルト ロケール)、/values/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">My Application</string>
    <string name="hello_world">Hello World!</string>
</resources>

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

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">Mi Aplicación</string>
    <string name="hello_world">Hola Mundo!</string>
</resources>

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

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">Mon Application</string>
    <string name="hello_world">Bonjour le monde !</string>
</resources>

注: ビットマップ ドローアブルのローカライズ バージョンを提供する場合など、ロケール識別子(または何らかの構成識別子)は、すべてのリソースタイプで使用できます。 詳細については、ローカライズをご覧ください。

文字列リソースを使用する

ソースコードと他の XML ファイルの文字列リソースは、<string> 要素の name 属性で定義されたリソース名を使って参照できます。

ソースコードでは、R.string.<string_name> 構文を使って文字列リソースを参照できます。このように、文字列リソースはさまざまな方法で参照されています。

次に例を示します。

// 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/<string_name> 構文を使って文字列リソースを参照できます。

次に例を示します。

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />
This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a one-minute survey?
Help us improve Android tools and documentation.