安卓 Kotlin 获取所有系统语言

3

在Android设备上,我可以加载不同的语言。

例如:

English (Set as default language)
French
Italian

如何通过程序获取此列表?

我知道可以使用以下代码获取语言:

Locale.getDefault().getDisplayLanguage()

有没有一种方法可以将我的Android应用程序的后备语言设置为系统的第二种语言?


编辑://

情景:

已选择的Android系统语言:

  • 英语(设置为默认)
  • 法语
  • 意大利语

支持的应用程序语言:

  • string.xml(德语) -> 设置为默认
  • string-fr.xml(法语)
  • string-it.xml(意大利语)

当前应用程序行为:

  • 使用德语翻译显示应用程序。

期望的新应用程序行为:

  • 由于法语在我的Android系统语言列表中位于第二位,因此以法语翻译显示应用程序。

默认情况下,strings.xml 文件将包含您的默认语言。例如,如果您有一个名为 language-it.xml 的文件,而设备的语言是 DE,则会退回到默认的 strings.xml 文件。 - ArbenMaloku
你会尝试使用不同语言常量来管理strings.xml吗? - Nice umang
@ArbenMaloku 没错,但是如果我的strings.xml(默认语言)是德语,而在我的系统中我只选择了英语、法语和意大利语(英语在应用程序中没有翻译)。那么应用程序将显示为德语,但我不希望这样,因为它不是所选的系统语言。在这种情况下,我期望有一个法语翻译。 - Lingo
@Niceumang 用一个场景解释修改了我的第一篇帖子。 - Lingo
@Lingo 在这种情况下,我建议您添加一个设置选项,让用户可以选择您的应用程序提供的语言。或者,您可以拥有一个包含您提供的语言的数组,然后检查设备语言是否存在于数组中,并应用该语言,否则使用默认语言。 - ArbenMaloku
1个回答

2
这将返回设备上所有可用的语言环境。
Locale.getAvailableLocales()

这个函数返回Android支持的所有700多种语言。在我的设备的系统设置中,我只添加了英语、法语和意大利语。 - Lingo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接