トップページ > Androidアプリローカライズ手順

Androidアプリローカライズ手順

Androidアプリケーションローカライズ概要

Androidアプリケーションのローカライズでは、ローカライズ対象とする文字列は文字列リソースファイル( res/values/string.xml ) に定義します。
プログラムソースコード ( xxx.java ) / レイアウト定義 ( res/layout/xxx.xml) にロケール依存文字が存在する場合の、ローカライズ方法を記載します。

ページトップへ戻る

ロケールごとの文字列リソースを作成

まず始めに、ロケールごとの文字列リソースを作成します。
例えば、日本語と英語環境に対応した文字列リソースファイルを作成します。

    文字列リソースファイル定義:
  • 英語用文字リソースファイル:[ res/values/strings.xml ]
  • <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="app_name">Sample Localization</string>
        <string name="hello">Hello World.</string>
        <string name="byebye">Bye bye World</string>
        <string name="button">Change Text</string>
    </resources>
  • 日本語用文字リソースファイル:[ res/values-ja/strings.xml ]
  • <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="app_name">ローカライゼーションサンプル</string>
        <string name="hello">こんにちは、皆さん.</string>
        <string name="byebye">さようなら、皆さん</string>
        <string name="button">テキストを変える</string>
    </resources>

Androidアプリケーションは起動時に、Android OSのロケールで判断し、参照する文字列リソースを切り替えます。 「values-xx」はロケールを識別するための限定子になっており、限定子付き文字リソース > 限定子なし文字リソースの順で読み込まれます。
このほかにも、ロケールごとに切り替える必要があるリソース ( res/loyout, res/anim, res/xml, res/raw )が存在する場合は、上記同様、限定子付きリソースを作成する必要があります。
詳しくはこちらを参照してください。

ページトップへ戻る

プログラムコードから文字列リソース参照方法

プログラム ( xxx.java > 内のローカライズ対象の文字列を、文字列リソースファイルに定義し、文字列を参照するように変更します。

  • jp.sample.HelloWoldActivity.java
  • public class HelloWoldActivity extends Activity {
    ・・・
        public void onClick(View v) {
            EditText edit = (EditText)findViewById(R.id.editText1);
            edit.setText(R.string.msg_1);
        }
    ・・・
    }

文字列リソースファイルから文字列を取得するには、コンテキストクラス ( android.content.Context ) で定義されたgetStringメソッドを使用します。
getStringメソッドの引数は、R.javaで定義されたIDを指定する必要があります。
R.javaは文字列リソースファイルを更新しビルドすると、自動的に作成されるものです。

ページトップへ戻る

レイアウト定義から文字列リソース参照方法

上記同様、レイアウトファイル内のローカライズ対象の文字列を、文字列リソースファイルに定義し、文字列を参照するように変更します。

  • res/layout/xxx.xml
  • <?xml version="1.0" encoding="utf-8"?>
    <?LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
    >
    <?TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello"
    />
    <?EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
    >
    <?requestFocus />
    <?/EditText>
    <?Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/bt_name"
    />
    <?/LinearLayout>

文字列リソースファイルからの参照は、「@string/<id>」の参照で行います。

ページトップへ戻る

アプリケーション名の文字列リソース参照方法

最後に、アプリケーションが実行されたときに画面の上部に表示される文字列を、文字列リソースファイルから参照するように設定します。

  • res/layout/xxx.xml
  • <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
            package="jp.sample"
            android:versionCode="1"
            android:versionName="1.0"
            >
            <uses-sdk android:minSdkVersion="8" />
            <application
                    android:android:icon="@drawable/ic_launcher"
                    android:android:label="@string/app_name"
                    >
                    <activity
                            android:android:name=".HelloWoldActivity"
                            android:android:label="@string/app_name"
                            >
                            <intent-filter>
                                    <action android:name="android.intent.action.MAIN" />
                                    <category android:name="android.intent.category.LAUNCHER" />
                            </intent-filter>
                    </activity>
            </application>
    </manifest>

文字列リソースファイルからの参照は、「@string/<id>」の参照で行います。

ページトップへ戻る

メインメニュー

Copyright (c) 2012 Fides Medium. All rights reserved.