如何解决如何仅列出 Android 中已配置的语言
在我的 Android 应用程序的资源中建立了一些特定的语言(例如 res/values-es/strings.xml)。如果用户愿意,我希望用户能够从这些可能的语言中进行选择,以设置他们的首选语言。
我想通过自动方式获取语言列表(以防以后添加新语言)。
就其本身而言,getResources().getAssets().getLocales()
是不可接受的,因为它列出了设备支持的所有可能的语言。相反,我只想获取 res/ 中列出的那些。
我该怎么做?是否有来自 API 的内置函数,我应该使用硬编码字符串数组吗?
最低 Android API:21,当前 Android API:30,语言:Java
谢谢!
解决方法
...这列出了设备支持的所有可能的语言。相反,我只想获取 res/ 中列出的那些。
那不是真的,抱歉。另外,事情没那么简单:
-
您正在使用库,其中一些可能有翻译资源,其语言可能是您自己源代码中的语言的超集
-
App Bundle 只会向用户提供您自己语言的一个子集
与应用模块的 res/
目录树中的实际内容相比,用户拥有的内容之间的关系很复杂。
API 中是否有内置函数,我应该对字符串数组进行硬编码吗?
是的,您应该计划维护自己的语言名册。您将来可能需要为此进行额外的工程工作(例如,针对 App Bundle)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。