如何获得可用的语言(不是全部,只是我的应用程序上可用的语言)

Vas*_*des 5 android localization

我知道已经存在一个Locale.getAvailableLocales()函数和一些其他同类函数,它们会返回所有可用的语言(无论它们是否可用于您的手机或没有)

我正在寻找一种方法来返回我翻译的语言(即:如果我有3个文件夹值-en,values-es,values-pt;我希望得到答案:[en,es,pt] ,或[英语,西班牙语,葡萄牙语]

Paw*_*yda 0

Locale.getAvailableLocales()将为您提供系统范围内可用的区域设置的列表。它们用于格式化日期、时间、数字等。它与您的应用程序本地化文件无关。

我猜测您想在运行时切换语言,这就是您想要枚举语言列表的原因。好吧,您可能需要使用该列表创建特定的配置文件并在运行时读取该文件。添加 L10n 文件需要另一个步骤 - 将其注册到配置文件中。
或者,您可能想枚举资源目录(值-<Locale-ID>)并从其名称中获取支持的区域设置,但我认为这不是最优雅的解决方案。不过,无需注册即可使用...