我当前正在开发一个支持多语言的项目,我已经为所有语言编写了所有字符串内容。
我使用BaseActivity、Application类和LocaleHelper来管理应用程序的本地化。然后我发现我的应用程序出现了这种行为。在我将语言设置为另一种语言后,某些活动中的字符串发生了更改并变得正确,但在MainActivity中没有变化,尽管其中有一些相同的字符串。我试图重新启动应用程序,但仍然没有起作用。
我还有另一个活动,在其中一些单词已被翻译,但在一个片段和一个RecyclerView中的所有单词都没有被翻译。
我仍然无法找到原因,为什么它没有正确地翻译。有人能帮帮我吗?
以下是一些代码片段:
Application类
@Override
public void onCreate() {
super.onCreate();
LocaleUtil.setLocale(new Locale(LocaleUtil.with(this).getPreference()));
LocaleUtil.updateConfig(this,getBaseContext().getResources().getConfiguration());
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
LocaleUtil.setLocale(new Locale(LocaleUtil.with(this).getPreference()));
LocaleUtil.updateConfig(this, newConfig);
}
BaseActivity
public BaseActivity() {
LocaleUtil.updateConfig(this);
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
initLocale();
super.onCreate(savedInstanceState);
}
public void initLocale(){
localeUtil = new LocaleUtil(this);
localeUtil.setListener(this);
localeUtil.setLanguageByCode(localeUtil.getPreference());
}
请帮我!谢谢!!
(更新)
我发现每当我想要访问一个包含在recyclerview和fragment中的视图的strings.xml时,我都必须再次设置语言环境。这非常不方便,我担心会影响性能。我很想听听更好的建议来更改语言。