TL; DRDataBinding是否会干扰本地化活动?
我有一个支持多种语言的应用程序。尽管使用了所有常用的本地化方法,但仍有一项活动未被翻译。这是该应用中唯一充分利用DataBinding
的活动。
充分说明
我有一个使用DataBinding
的Activity
。所以基本上,该活动的整个XML
布局都包含在<layout>
标记中。这是我吹的观点,并获得绑定:
SomeActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.some_activity);
有一个在XML
一些TextViews
这样有文字设置:
... android:text="@string/<name of a string>" ...
我们提供用户与预定义的语言选项并设置应用场所使用
Locale.setDefault(new Locale("<language name>"));
在英文区域设置中,一切正常。
当应用程序处于不同的区域设置思想时,有问题的活动中的字符串仍然以英语显示 - 即使这些字符串已被转换为相应的语言,并且位于相同的字符串文件中,其余部分该应用从中抓取字符串。在该活动开始之前,应用程序没问题 - 活动开始后我退出,应用程序恢复为英语区域设置,直到它被杀死并重新启动。如果该活动从未打开过,则应用按预期行事。
有没有人有任何想法可能会导致此?谢谢。
我的理解是,应用程序将从设备中检索区域设置,不需要以编程方式干扰它。 所以我的猜测是你将Locale.setDefault(...)搞乱了,但我可能错了。 – FWeigl
@Ascorbin无论设备的区域设置如何,我们仍然希望为用户提供一个选择,让他们选择喜欢的语言,只要我们支持它。请注意,该应用程序的其余部分工作正常。 – C0D3LIC1OU5
如果不使用数据绑定语法,则使用应用资源的常规规则。您是否正在重复使用SomeActivityBinding,或者在更改区域设置时重新设置它,就像您通常那样? –