很多时候,我看到显示有语言列表的 Android 应用程序,我可以点击任何一种语言并为这个特定的应用程序下载它(GO 天气小部件具有此功能)。
我感兴趣的是这是如何实现的,以及在 Android 应用程序中动态加载语言的最佳方式是什么?在应用程序项目中添加 100 个 string.xml 资源不是解决方案,此外,如果我想提供某种“有趣的节日语言”包或添加一种新语言,我需要一次又一次地将项目上传到 Google Play...
谢谢!
很多时候,我看到显示有语言列表的 Android 应用程序,我可以点击任何一种语言并为这个特定的应用程序下载它(GO 天气小部件具有此功能)。
我感兴趣的是这是如何实现的,以及在 Android 应用程序中动态加载语言的最佳方式是什么?在应用程序项目中添加 100 个 string.xml 资源不是解决方案,此外,如果我想提供某种“有趣的节日语言”包或添加一种新语言,我需要一次又一次地将项目上传到 Google Play...
谢谢!
虽然可以使用扩展文件添加到您的应用程序中,但它们在某些方面受到限制。您的主要问题是您只能拥有有限数量的扩展文件。如果您想要 100 种语言,您唯一的选择是将它们全部加载到扩展文件中,然后下载整个内容。虽然这可能不是问题,但由于翻译后的字符串列表可能没有那么大,您可能想走不同的路线。
我看到下载单独的语言插件的最佳选择是strings.xml
完全放弃使用。只需使用一个简单的 CSV 文件来保存您的字符串,将名称映射到字符串。当你的程序启动时,将它读入一个字符串数组/映射/任何东西,你所有的字符串都准备好了。这样,如果您想添加一种语言,就像下载一个文本文件并将其保存到您的数据目录一样简单。
此外,您可以在同一服务器上保留列出所有可用语言的文件,因此如果您想添加季节性或仅限时间的语言,则无需更新应用程序,就像您提到的那样。只需读入文件以获取列表。
请注意,您需要在某个地方托管文件,但这在当今时代几乎不是障碍。