0

我有一个支持英语和法语的安卓应用程序。我有一个切换按钮可以在两种语言之间切换。我有 2 个具有相同变量名的 string.xml 文件,但显然,这些值使用不同的语言。

一个例子:

英语:<string name="username">UserName</string>

法语:<string name="username">Nom d'utilisateur</string>

文件名是strings.xml(英文)。那是在 res 下的 values 文件夹中。另一个文件是 strings_fr.xml(法语)。那是在 res 下的 values-fr 文件夹下。

有没有办法,一旦用户切换切换开关来切换文件?

我知道语言环境,但我发现它们有问题而且很慢。

谢谢

4

3 回答 3

0

您应该将“strings_fr.xml”重命名为“strings.xml”,您将拥有 2 个文件夹:“values”(默认)和 values-fr(用于法语本地化)。带有文件strings.xml

于 2013-08-01T14:00:13.330 回答
0

你必须改变它:

1) Put strings.xml file in values folder which is default.

2) create a strings.xml file in values-fr folder.
于 2013-08-01T14:05:02.473 回答
0

到目前为止,我不知道您对 Locale 进行了哪些尝试,但是此代码将设置语言,直到您再次将其重新设置或重新启动应用程序。

这不应该带来任何性能上的缺陷。

Configuration originalConfig = this.getResources().getConfiguration();
Locale locale = new Locale("fr"); //as an example
Configuration c = new Configuration();
c.locale = locale;
this.getResources().updateConfiguration(c,
            this.getResources().getDisplayMetrics());

this显然 Activity 的子类在哪里。

于 2013-08-01T14:07:08.637 回答