2013-08-01 124 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. 
相關問題