在我的项目中,用户可以选择语言。整个应用程序应该通过选择语言来改变。语言是从服务器端获取的。
我提到了各种网站和链接,但找不到更好的解决方案。本地化是不可能的,因为它是一个巨大的应用程序,并且语言不是固定的,它是从服务器端获取的,它可以变化。
是否有其他解决方案?请帮忙......
答案 0 :(得分:2)
您可以使用以下内容:
Locale locale = new Locale(languageCode);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, null);
这会将应用的区域设置设置为所需的区域设置,而不是更改设备上设置的全局区域设置。所有本机本地化机制都将与上下文区域设置一起使用。
答案 1 :(得分:1)
虽然不建议您为Android系统以外的应用使用单独的语言。但你仍然可以改变它。
以下是代码:
private void setLocale (String localeCode , Bundle b ){
Log.d(TAG+"set location function: "+localeCode);
locale = new Locale(localeCode);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
getApplicationContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
UserDetail.this.getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
onCreate(null);
}
对某些用户触发器使用此方法调用:
setLocale("en-us",savedInstanceStat); // for english
setLocale("ar",savedInstanceStat); // for arabic
要了解有关Android本地人的更多信息: http://www.icanlocalize.com/site/tutorials/android-application-localization-tutorial/