2013-12-11 91 views
8

我有一個支持葡萄牙語的應用程序,既適用於葡萄牙語也適用於巴西地區。我創建了一個values-pt(包含葡萄牙語翻譯)和values-pt-rBR(包含巴西翻譯)。然後我嘗試將應用程序語言更改爲葡萄牙語(葡萄牙語),並且應用程序語言正確更改。當我將它設置爲葡萄牙語(巴西)時,它不會。我嘗試將手機默認語言更改爲葡萄牙語(巴西),但它仍然無效。它適用於葡萄牙語(葡萄牙)在兩種情況下(編程和系統)。有誰知道問題是什麼?以編程方式更改應用程序的語言環境中的代碼如下:以編程方式將應用程序語言環境設置爲pt_BR

Locale locale = new Locale(strLocale); 
Locale.setDefault(locale); 

config.locale = locale; 
context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics()); 

和strLocale分別被設定爲「PT」或「pt_BR表示」葡萄牙和巴西的語言。

回答

25

我假設你的目標是Android OS> 2.2,因爲從2.3+版本開始,Android都支持這兩種葡萄牙語言。
我在模擬器上測試了它,通過交換語言& keyboard並且只有一個不同的字符串:app_name,所以它出現在應用程序標題中,它工作得很好。

唯一的區別是,我命名爲葡萄牙地區值-PT-RPT INSEAD值-PT的。
我沒有測試飛行重定位,但我想它也可以。
我認爲,當你與地區工作,你必須指定每一個本地化的區域(即FR-RFR法國和FR-RCA加拿大)和你的情況不能使用默認(PT,或FR在我的第二個例子中)。

這個link更深入地說明了整個事情。

[編輯]

當創建通過代碼的新的語言環境,請嘗試:

final Locale myLocale = new Locale("pt", "PT"); 

final Locale myLocale = new Locale("pt", "BR"); 

這裏的另一頁從參考site

+1

我已經試過你的建議,但它看起來像問題是,我的電話報告當前選定的區域設置爲「PT」,不管我選擇葡萄牙語(葡萄牙)或葡萄牙語(巴西)。我的手機有什麼問題嗎? – user501223

+0

不是,它是Android 2.3+?你如何設置你的語言環境(可以用不同的方式完成 - 根據我的需要,加拿大法語與法語法語相同,而奧地利德語與德語德語相同 - 我只是使用DEFAULT語言 - 就你的情況而言,pt) 。 –

+0

請參閱我編輯的答案。 –

相關問題