A. *_*. N 6 java string android localization android-fragments
(我在帖子底部添加了更新)
我目前正在开发一个支持多种语言的项目。我已经编写了所有语言的所有字符串。
我使用 BaseActivity、Application 类和 LocaleHelper 来管理应用程序上的本地化。然后我在我的应用程序上发现了这种行为。在我将Locale设置为另一种语言后,某些活动中的字符串被更改并正确,但在MainActivity中却没有,即使它们具有一些相同的字符串。我尝试重新启动应用程序,但它仍然无法正常工作。
我还有另一个活动,活动中的一些单词被翻译了,但片段和回收器视图中的所有单词根本没有被翻译。
我仍然找不到它翻译不正确的原因。有人能帮我吗??
这是一些片段:
应用类
@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);
}
Run Code Online (Sandbox Code Playgroud)
基础活动
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());
}
Run Code Online (Sandbox Code Playgroud)
请帮我!谢谢!!
(更新)
我发现每当我想要访问Recyclerview 和片段中的任何视图的Strings.xml时,我都必须再次设置Locale。这完全不方便,而且我担心性能。我很想听到关于更改语言的更好建议。
小智 2
看一下这个。也许某些字符串不包括在内。来自文档。
https://developer.android.com/guide/topics/resources/localization.html#using-framework
假设您的应用程序的默认语言是英语。还假设您希望将应用程序中的所有文本本地化为法语,并将应用程序中的大部分文本(除应用程序标题之外的所有文本)本地化为日语。在这种情况下,您可以创建三个备用 strings.xml 文件,每个文件都存储在特定于区域设置的资源目录中:
res/values/strings.xml 包含应用程序使用的所有字符串的英文文本,包括名为 title 的字符串的文本。res/values-fr/strings.xml 包含所有字符串的法文文本,包括标题。res/values-ja/strings.xml 包含除标题之外的所有字符串的日文文本。如果您的 Java 代码引用 R.string.title,则运行时会发生以下情况:
如果设备设置为法语以外的任何语言,Android 将从 res/values/strings.xml 文件加载标题。如果设备设置为法语,Android 将从 res/values-fr/strings.xml 文件加载标题。请注意,如果设备设置为日语,Android 将在 res/values-ja/strings.xml 文件中查找标题。但由于该文件中不包含此类字符串,Android将回退到默认值,并从 res/values/strings.xml 文件加载英文标题。
我希望它会起作用。
| 归档时间: |
|
| 查看次数: |
7318 次 |
| 最近记录: |