相关疑难解决方法(0)

获取应用程序的资源语言

是否有可能在运行时知道我的应用程序中嵌入了哪些资源语言?

即存在这个文件夹:

values-en
values-de
values-fr
...
Run Code Online (Sandbox Code Playgroud)

android

19
推荐指数
4
解决办法
6378
查看次数

如何获取提供的字符串翻译列表?

背景

我为我的应用创建了两个翻译- values-envalues-fr-。我想让用户在UI中更改应用语言。因此,我使用Locale.getAvailableLocales();方法使用系统的可用语言环境创建并填充了微调器:

Spinner languageSpinner = (Spinner)findViewById(R.id.spinnerLanguage);
Locale[] locales = Locale.getAvailableLocales();
String[] langs = new String[locales.length];
for (int i = 0 ; i < locales.length ; i++ ){
    // display a more readable language name like "English (USA)"
    langs[i] = locales[i].getDisplayName();
}
ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item,langs);
languageSpinner.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

上面的代码将为我提供当前设备中的所有可用语言环境。由于列表很长,可能会使我的用户感到困惑,所以我想显示翻译时提供的语言环境。

编辑:在这里问类似的问题,评论表明没有直接的方法。

尽管我可以向微调器提供硬编码的数据,但这是使整个过程动态化的更好方法。

有没有办法在运行时获得可用的翻译?

理想的方法示例是:getTranslationList();最终返回资源中可用翻译语言的数组,例如:{"en","fr"}{"values", "values-en", "values-fr"}

java android localization android-resources android-studio

5
推荐指数
0
解决办法
486
查看次数