检测Android中加载的本地化资源

时间:2013-10-17 09:12:54

标签: java android

我的项目中有strings.xml,strings-es.xml和strings-ca.xml。我如何知道为字符串加载了哪个文件?注意:我不想要操作系统语言。

编辑:如果我的设备区域设置是意大利语,我想返回英语,因为我的应用程序未翻译成意大利语。

1 个答案:

答案 0 :(得分:3)

我认为没有任何直接的apis。解决方法可以是,在每个xml文件中都有一个字符串资源,这个字符串资源可以解释加载了哪个资源。

例如,

<string name="language">English</string>

并在strings-es.xml文件中可以有

<string name="language">espanol</string>

在代码中,您可以检查此字符串的值以了解当前加载的语言。

但是,android会根据操作系统语言加载相应的xml文件。因此,您只需检查相应的OS语言即可知道加载了哪个XML文件。这可以通过Locale.getDefault().getDisplayLanguage();

实现