0

こんにちは、Androidアプリケーションをローカライズしようとしています.言語を変更する方法。res/values/strings.xml にデフォルト値があり、res/values-latin/strings.xml に他の文字列があります。しかし、アプリケーションでデフォルトの代わりに res/values-latin/strings.xml の文字列を使用する方法がわかりません。誰かが私にこれを説明できますか?

誰かが言語の変更ボタンをクリックした場合、すべての文字列を変更するようにアプリケーションに通知するにはどうすればよいでしょうか?

ありがとうございました!

4

1 に答える 1

1

Android が自動的にそれを行います。

ユーザーがアプリケーションを実行すると:

Android システムは、デバイスのロケールに基づいて、ロードするリソースを選択します。

例:

アプリケーションのデフォルト言語が英語であるとします。また、アプリケーション内のすべてのテキストをフランス語にローカライズするとします。この場合、それぞれがロケール固有のリソース ディレクトリに格納されている 2 つの代替 string.xml ファイルを作成できます。

res/values/strings.xml

アプリケーションが使用するすべての文字列の英語のテキストが含まれています。

res/values-fr/strings.xml

すべての文字列にフランス語のテキストが含まれます。

Java コードがR.string.titleを参照している場合、実行時に次のようになります。

デバイスがフランス語以外の言語に設定されている場合、Android はres/values/strings.xmlファイル から英語のタイトルを読み込みます。

デバイスがフランス語に設定されている場合、Android はres/values-fr/strings.xmlファイルからフランス語のタイトルを読み込みます。


ラテン語では機能しません。別の方法を検索する必要があります。Javaでの私の解決策:

public final class English {
    String moon = "Moon";
    String earth = "Earth";
    String mars = "Mars";
}

public final class Latin {
    String moon = "Luna";
    String earth = "Terrae";
    String mars = "Mars in Latin";
}

次に、コードでそれらにアクセスできます。

TextView textView = (TextView) findViewById(R.id.my_text);
textView.setText( Latin.moon );
于 2013-06-07T00:13:16.103 に答える