2013-03-01 62 views
1

很多次,我已经看到了有一个语言列表Android应用程序中显示,我可以通过点击任意这种语言并下载该特定应用(GO天气小部件有此功能)。动态Android应用语言

我很感兴趣,这是怎么实现的,什么是对Android应用程序动态加载语言的最佳方式?在应用程序项目中添加100个string.xml资源不是解决方案,除此之外,如果我想提供某种“有趣的节日语言”包或添加一种新语言,我需要一次又一次将项目上传到Google Play。

谢谢!

+0

您有任何解决方案吗?或者这只是一个模糊的想法? – lokoko 2013-03-01 18:51:09

回答

2

虽然可以使用Expansion Files对添加到您的应用程序,它们在某些方面受到限制。你的主要问题是你只能拥有有限数量的扩展文件。如果你想要100种语言,你唯一的选择就是在扩展文件中加载它们全部,然后下载整个文件。虽然这可能不成问题,但由于翻译后的字符串列表可能不是那么大,因此您可能想要采用不同的路线。

我看到下载单独语言插件最好的办法是使用strings.xml干脆放弃。只需使用简单的CSV文件来保存字符串,将名称映射到字符串。当你的程序启动时,将它读入字符串数组/地图/任何内容,并且你已经准备好了所有的字符串。这样,如果您想添加一种语言,就像下载一个文本文件并将其保存到您的数据目录一样简单。

此外,您还可以保持一个文件,列出在同一台服务器上的所有可用的语言,所以你不必更新应用,如果你想添加季节性或有限的时间只有语言,就像你提到的。只需阅读文件即可获取列表。

注意,你需要的地方主机上的文件,但是这是很难在这个时代的一个障碍。

+0

我认为这是最好的解决方案。谢谢你的回答!我会朝这个方向走;) – lomza 2013-03-02 14:10:03