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