【发布时间】:2016-04-20 06:33:03
【问题描述】:
我有一个应用需要提供以其他设备语言本地化的字符串。一旦我的应用知道其他设备的语言,它就会创建一个新的资源类。类似于这个question。
如果语言不支持,刚创建的资源对象在获取字符串时会回退(假设其他设备设置为en_US):
- values-en-rUS/strings.xml
- values-en/strings.xml
- values/strings.xml
我想回退到我自己设备的语言,而不是第三次回退(假设我的设备设置为 es_ES):
- values-en-rUS/strings.xml
- values-en/strings.xml
- values-es-rES/strings.xml
- values-es/strings.xml
- values/strings.xml
如果我可以以编程方式检查我的应用是否支持某种语言/地区,我可以很容易地做到这一点。找到了这个AssetManager.getLocales(),但认为它没有帮助。
有没有办法实现所需的回退或检查应用是否本地化为特定语言/地区?
【问题讨论】:
-
"或一种检查应用程序是否本地化为特定语言/地区的方法?" -- 因为您是编写应用程序的人,并且您知道将其本地化为哪些语言,所以只需将该信息编码到您的应用程序中的某个位置。
-
没错,但正是我想要避免的。此代码应在具有不同支持语言集的不同应用程序上运行。如果这可以通过编程方式完成,它将减少维护和故障风险。
标签: android localization