Android:将翻译存储到本地缓存

时间:2014-05-20 11:01:17

标签: android json performance sharedpreferences translation

我正在制作一个具有多语言支持的Android应用程序。但是我不是在我的资源中定义不同的字符串文件夹(即.string-en),而是必须通过来自服务器的HTTP GET请求获取翻译。我只在应用程序的初始运行时发出此请求,当然后来需要更新时(但我们自然不希望更新经常发生,就翻译而言)。

服务器使用包含JSON对象的字符串进行响应。然后我继续解析该字符串并获取必要的翻译(即“no_data”:“No data。”)。

所以我的问题如下:处理这些翻译的最有效方法是什么?当我构建我的视图时,我必须获取UI的不同部分的翻译。在那一刻解析那个JSON(通常在onCreate(),因为我有很多片段)甚至是一种有效的方法吗?如果我将每个翻译条目存储为SharedPreferences的条目(即putString(“no_data”,“No data。”)怎么办?这会占用太多的存储空间吗?我也在使用2.3.3所以使用一个Set不是一个选项,因为它的API级别为11。

任何建议都会非常感激!

1 个答案:

答案 0 :(得分:1)

我最终解析了JSON并以key和value的形式将翻译存储到SharedPreferences,其中键因语言标签而异(即trans_ en _log_out或trans_ da _登出)。它很快,并且在应用程序中没有占用太多空间。