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