如何根据用户选择更改应用程序语言?
How to change the application language by user choice?
在我的项目中,用户可以选择 select 语言。整个应用程序应该通过 selecting 语言来改变。语言是从服务器端获取的。
我参考了各种站点和链接,但找不到更好的解决方案。本地化是不可能的,因为它是一个巨大的应用程序,而且语言不是固定的,它是从服务器端获取的,并且可以变化。
还有其他解决方案吗?请帮忙...
你可以这样使用:
Locale locale = new Locale(languageCode);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, null);
这会将应用程序的语言环境设置为所需的语言环境,而不更改设备上设置的全局语言环境。所有本机本地化机制都将与上下文语言环境一起使用。
尽管不建议为您的应用程序使用除 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/
在我的项目中,用户可以选择 select 语言。整个应用程序应该通过 selecting 语言来改变。语言是从服务器端获取的。
我参考了各种站点和链接,但找不到更好的解决方案。本地化是不可能的,因为它是一个巨大的应用程序,而且语言不是固定的,它是从服务器端获取的,并且可以变化。
还有其他解决方案吗?请帮忙...
你可以这样使用:
Locale locale = new Locale(languageCode);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, null);
这会将应用程序的语言环境设置为所需的语言环境,而不更改设备上设置的全局语言环境。所有本机本地化机制都将与上下文语言环境一起使用。
尽管不建议为您的应用程序使用除 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/