在应用中更改语言

时间:2013-08-01 13:57:04

标签: android android-xml

我有一个支持英语和法语的Android应用程序。我有一个切换按钮可以在两种语言之间切换。我有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文件夹下

有没有办法,一旦用户切换切换以切换文件?

我知道Locales,但我发现它们有些错误和缓慢。

由于

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

你必须改变它:

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

2) create a strings.xml file in values-fr folder.

答案 2 :(得分: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的子类。