所以基本上我有一个在三种语言之间选择的微调器,这是代码,我的语言确实改变了,但它似乎是加载语言,而不是我为它设置的资源。
我的代码
private void setLocale(String localeName){
if (localeName.equalsIgnoreCase(""))
return;
Resources resources = getResources();
Locale locale = new Locale(localeName);
Locale.setDefault(locale);
android.content.res.Configuration config = new
android.content.res.Configuration();
config.locale = locale;
resources.updateConfiguration(config, resources.getDisplayMetrics());
//restart base activity
this.finish();
this.startActivity(this.getIntent());
}
其中一种语言strings.xml文件
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Tabibi</string>
<string name="already_have_an_account">تمتلك حساب؟</string>
<string name="join">إنشاء حساب</string>
<string name="login">تسجيل الدخول</string>
<string name="language">اللغة</string>
</resources>
3条答案
按热度按时间tyky79it1#
创建一个为所有活动设置语言应用程序类
LocalteUtils类用于在共享首选项中设置选定的语言,并默认设置英语
单击微调器选择语言,将语言设置为共享首选项,然后像这样重新启动活动
上次使用应用程序示例将首选项语言设置为MainActivity
在清单文件中添加应用程序
这段代码在android馅饼中也很好用。编码快乐...
o0lyfsai2#
接受的答案确实对我有效。但是,为了更好的兼容性,我想替换行:
在
LocaleUtils
中使用下面的代码可以更改更多Android版本的配置(API 15)polhcujo3#
如果您的应用程序工作文件处于开发模式,并且在发布此构建版本时未反映语言,则您希望添加这些行,以便更好地理解https://stackov12748481