在我的android应用程序的资源中已经建立了一些特定的语言(比如res/values es/strings.xml)。我希望用户有能力从这些可能的语言选择,以便设置他们的首选语言,如果他们想。
我想通过自动方式获取语言列表(以防以后添加新语言)。
就其本身而言, getResources().getAssets().getLocales()
不可接受,因为它列出了设备支持的所有可能的语言。相反,我只想获取res/中列出的那些。
我该怎么做呢?api中是否有内置函数,我是否应该对字符串数组进行硬编码?
最低android api:21,当前android api:30,语言:java
谢谢您!
1条答案
按热度按时间n8ghc7c11#
…这列出了设备支持的所有可能的语言。相反,我只想获取res/中列出的那些。
那不是真的,对不起。另外,事情没那么简单:
您正在使用库,其中一些库可能有翻译资源,其语言可能是您自己源代码中语言的超集
应用程序包将只向用户提供您自己语言的一个子集
用户拥有的内容与应用程序模块中的内容之间的关系
res/
目录树,很复杂。api中是否有内置函数,我是否应该对字符串数组进行硬编码?
是的,你应该计划保持你自己的语言名册。您可能需要在将来为此进行额外的工程工作(例如,应用程序包)。