2012-08-03 62 views
0

我有一個應用程序,我想添加本地化。但是,由於該應用程序的文本很重,本地化將成爲社區項目,因此翻譯可能並不總是最新的。在應用程序中的用戶可配置本地化

因此,我寧願讓本地化爲可選,而不是強迫用戶使用混合翻譯/非翻譯文本的版本。

我認爲這可以使用配置和語言環境來完成,但我還沒有嘗試過。我確定我不是第一個需要這樣做的人,那麼對於那些與Locales做任何工作的人來說,推薦的方法是什麼?潛在的缺陷?

+0

是的,你可以更改應用程序本身的['Locale'](http://developer.android.com/reference/java/util/Locale.html),這樣你就可以擁有一個控制它的設置。這已詳細[這裏](http://stackoverflow.com/questions/2264874/changing-locale-within-the-app-itself),或更簡單[這裏](http://stackoverflow.com/questions/ 4985805 /設置區域設置編程)。 – Eric 2012-08-04 00:10:40

+0

對此有點遲了回覆,但隨時提交這個答案,我會批准它。 – 2013-02-08 07:08:06

+0

確實不錯!我已經發布它作爲答案。 :) – Eric 2013-02-08 15:27:20

回答

1

從評論:

您可以通過使用Locale.setDefault()Resources.updateConfiguration()修改應用程序本身內Locale

// From https://stackoverflow.com/a/4986481/1438733 
Locale locale = new Locale("en"); // For English; see below for more codes 
Locale.setDefault(locale); 
Configuration config = new Configuration(); 
config.locale = locale; 
getBaseContext().getResources().updateConfiguration(config, 
     getBaseContext().getResources().getDisplayMetrics()); 

(注:ISO 639-1代碼列表可以發現on Wikipedia。 )

有關此事的更復雜和詳細的帖子可以找到here