有没有办法检索 Android 应用程序标签的所有本地化版本?
如果应用程序标签已本地化,我需要检索所有本地化变体。实际上,我需要知道 android:label 是否指向字符串引用,如果是,则需要知道字符串资源中存在的所有区域设置值。有什么想法吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如果应用程序标签已本地化,我需要检索所有本地化变体。实际上,我需要知道 android:label 是否指向字符串引用,如果是,则需要知道字符串资源中存在的所有区域设置值。有什么想法吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
我没有完整的答案,但这就是我的想法。
本地化 - 这是 Android 本地化的官方文档。如果您的 android:label 指向 /res/values/strings.xml 中的键,则可以确保它指向字符串引用。可以通过在目录上使用限定符来覆盖特定的本地化字符串,例如对于法语版本,您可以将它们放在 /res/values-fr/strings.xml 中。在法语版本中找不到的任何值将默认为以前的不合格文件。
我不确定是否获取特定资源的所有区域设置字符串,但有 getAssets().getLocales() 它将返回资产管理器拥有资源的语言环境的字符串数组(我假设对于任何资源,而不仅仅是特定资源)
最后,如果您不需要在运行时执行此操作,您可以尝试编写一个脚本/程序来检查 /res 下的所有本地化目录,并编译所有资源及其本地化值的列表。
I don't have a full answer but here's what I came up with.
Localization - Here is the official documentation for android localization. You can ensure that your android:label points to a string reference if you have it point to a key in the /res/values/strings.xml. Specific localization strings can be overridden by using qualifiers on the directory, for instance for French versions you can put them in /res/values-fr/strings.xml. Any values not found in the French version will default to the previous unqualified file.
I'm not sure about getting all the locale strings for a specific resource but there is getAssets().getLocales() which will return a string array of the locales the asset manager has resources for (I'd assume for any resource, not just a particular resource)
Lastly, if you don't need to do this at run time you could try to write a script/program to examine all the localization directories under /res and compile a list of all resources with their localized values.