2013-08-01 96 views
0

我有一个支持英语和法语的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,但我发现他们是越野车和慢。

感谢

+0

当你说“切换切换”,你的意思是在你的应用程序内切换切换或切换在Android设置上的切换? – nunofmendes

回答

0

我不知道你有语言环境尝试,到目前为止,但直到你把它再回来这个代码将设置语言或该应用程序重新启动。

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

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是活动的一个子类明显。

+0

我可以马上改变我的所有数值吗?在更改切换键后,我需要更改所有内容,包括TabBar。 – BigT

+0

不,只有后来的getString调用才会受到影响。你将不得不重新加载你的活动。 –

0

你应该在重命名 “strings_fr.xml” 到 “的strings.xml” ,你将有2个文件夹: “值”(默认)和值-FR(法语的本地化)。与文件的strings.xml

0

你必须有能力改变它:

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

2) create a strings.xml file in values-fr folder. 
相关问题