0
我有一個應用程序,我想添加本地化。但是,由於該應用程序的文本很重,本地化將成爲社區項目,因此翻譯可能並不總是最新的。在應用程序中的用戶可配置本地化
因此,我寧願讓本地化爲可選,而不是強迫用戶使用混合翻譯/非翻譯文本的版本。
我認爲這可以使用配置和語言環境來完成,但我還沒有嘗試過。我確定我不是第一個需要這樣做的人,那麼對於那些與Locales做任何工作的人來說,推薦的方法是什麼?潛在的缺陷?
我有一個應用程序,我想添加本地化。但是,由於該應用程序的文本很重,本地化將成爲社區項目,因此翻譯可能並不總是最新的。在應用程序中的用戶可配置本地化
因此,我寧願讓本地化爲可選,而不是強迫用戶使用混合翻譯/非翻譯文本的版本。
我認爲這可以使用配置和語言環境來完成,但我還沒有嘗試過。我確定我不是第一個需要這樣做的人,那麼對於那些與Locales做任何工作的人來說,推薦的方法是什麼?潛在的缺陷?
從評論:
您可以通過使用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。
是的,你可以更改應用程序本身的['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
對此有點遲了回覆,但隨時提交這個答案,我會批准它。 – 2013-02-08 07:08:06
確實不錯!我已經發布它作爲答案。 :) – Eric 2013-02-08 15:27:20