2013-03-25 65 views
4

在我的應用程序中,用戶可以將其應用程序語言環境切換爲其他應用程序支持的語言之一。我遇到了葡萄牙語 - 巴西和簡體中文的問題。所有其他翻譯在用戶更改區域設置時正常工作。簡體中文和葡萄牙語 - 巴西的適用於Android的適當語言環境代碼是什麼?

如果設備語言環境是pt-rBR或zh-rCN,這些翻譯可以正常工作,因此唯一可能出錯的是我使用的語言環境代碼。但是,我試過的任何東西都失敗了。任何人都知道這些適當的Android語言環境代碼,以便用戶可以根據需要正確切換?

+0

框架使用'-pt-rBR'和'-ZH-rCN',所以那些似乎是正確的值:HTTPS ://github.com/android/platform_frameworks_base/tree/master/core/res/res – CommonsWare 2013-03-25 13:55:33

+1

這些是strings.xml文件夾的正確值,但由於某些原因,它們在強制改變區域設置時不起作用。這就是爲什麼現在這很令人費解。所有其他翻譯(ar,de,fr,ru,ja和其他)都可以正常工作。我知道我可以將strings.xml放入基本目錄中,例如values-zh或values-pt,然後讓它起作用,但這不是正確的方法,因爲zh通常是繁體中文。 – Jason 2013-03-25 15:13:21

+0

哦,對不起,我沒有意識到你試圖強制在你的應用程序內改變語言環境。 – CommonsWare 2013-03-25 15:17:33

回答

2

使用下面的代碼爲我的傳統和簡體中文工作。

if(selectedLanguage.equals("zh_CN")) 
    locale = Locale.SIMPLIFIED_CHINESE; 
else if(selectedLanguage.equals("zh_TW")) 
    locale = Locale.TRADITIONAL_CHINESE; 
else 
    locale = new Locale(selectedLanguage); 

Locale.setDefault(locale); 
Configuration config = new Configuration(); 
config.locale = locale; 
baseContext.getResources().updateConfiguration(config, baseContext.getResources().getDisplayMetrics()); 
5

使用

new Locale("pt","BR"); 

,而不是

new Locale("pt_BR"); 
+0

謝謝你解決我的問題。 – 2016-12-07 06:02:32

相關問題