3

私は現在Androidアプリに取り組んでおり、約6週間働いています。また、別の言語で実行する必要があることがわかりました。すべての文字列リソースがstrings.xmlファイルに保存されます。

私が疑問に思っていたのは、のような別のファイルを作成できるかどうかでしstrings2.xmlた。ユーザーが選択した内容に応じて、プログラムはstrings.xml or strings2.xmlすべての文字列参照に対していずれかを選択します。

これは私のレイアウトファイルにありmain.xmlます。

<Button
android:id="@+id/more_parametersButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/more_parameters" />

次に、2つの別々の文字列ファイルがあります。strings.xml

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
    <string name="more_parameters">More Parameters</string>
</resources>

およびstrings2.xml

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
    <string name="more_parameters">Mais Parâmetros</string>
</resources>

これは不可能のようですが、可能であれば、情報をいただければ幸いです。

4

3 に答える 3

8

アプリを国際化しようとしているようです。もちろん、androidにはこのための明確な機能があります。resとしてロケール固有の値フォルダを作成します

res/values-<locale>/strings.xml

このファイルにロケールに応じた値を入力します。例えば、

res/values-fr_FR/strings.xml

詳細については、開発者サイトのAndroidローカリゼーションページをお読みください。

于 2012-07-06T16:19:44.807 に答える
2

それはAndroidで非常に簡単に行うことができます、

String.xml(さまざまな言語用)だけでなく、同じlayouts.xml、drawables(さまざまな画面サイズ用)を使用することもできます。それに応じてres / folder-nameフォルダーに名前を付けるだけで、Blattman氏はすでに詳細に回答しています。

于 2012-07-06T16:29:31.870 に答える
2

言語を手動で切り替えることができます。

  String[] array={"English","Deutsch"};
                Locale locale = new Locale(array[0]);
Locale.setDefault(locale);
                Configuration config = new Configuration();
                config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());

ただし、このためには、ドイツ語のローカリゼーション用にres / values-de/strings.xmlが必要です。

于 2012-07-06T16:26:14.767 に答える