3

我目前正在开发一个 Android 应用程序,并且已经工作了大约六周。我刚刚发现它还需要以不同的语言运行。我所有的字符串资源都保存在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 个单独的字符串文件。字符串.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在as下创建特定于语言环境的值文件夹

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 回答