我知道已经存在一个Locale.getAvailableLocales()函数和其他一些类似的函数,它们返回所有可用的语言(无论它们是否在您的手机上可用)
我正在寻找一种方法仅返回我所翻译的语言(例如:如果我有3个文件夹values-en、values-es、values-pt;我希望得到响应:[en,es,pt]或[英语,西班牙语,葡萄牙语])
我知道已经存在一个Locale.getAvailableLocales()函数和其他一些类似的函数,它们返回所有可用的语言(无论它们是否在您的手机上可用)
我正在寻找一种方法仅返回我所翻译的语言(例如:如果我有3个文件夹values-en、values-es、values-pt;我希望得到响应:[en,es,pt]或[英语,西班牙语,葡萄牙语])
Locale.getAvailableLocales()
会返回系统中可用 Locales 列表。这些 Locale 可以用于格式化日期、时间、数字等数据,但与应用程序本地化文件无关。
我猜测您想在运行时切换语言,因此需要枚举语言列表。那么,您可能需要创建特定的配置文件,并在运行时读取该文件。添加 L10n 文件需要另一步操作——在配置文件中注册。
或者,您可以枚举资源目录(values-<Locale-ID>),并从它们的名称中抓取支持的 Locale,但我认为这不是最优雅的解决方案。但是,这种方法可以在不进行任何注册的情况下使用。