2012-08-03 29 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