如何在手机空白应用程序中存储翻译并保存用户首选项?

时间:2012-12-10 22:15:11

标签: sqlite cordova jquery-mobile translation

我正在使用jQuery Mobile开发Phonegap应用程序。这是一个非常基本的应用程序,其目的是以西班牙语和英语显示有关大型组织的信息。在第一页上,该应用程序显示2个选项,西班牙语和英语。如果用户选择西班牙语,则显示的信息必须为西班牙语,反之亦然。

使用SQLite DB可能会在Windows手机上出现一些问题,因为它尚不支持(请参阅Phonegap Storage)。

也有File Storage选项。还有原始的JSON文件。

2 个答案:

答案 0 :(得分:3)

我这样做的方法是创建一个特定于语言的json文件来保存我的所有字符串。在这种情况下,english.json和spanish.json。像json那样构造json:

{ 
    help: "Help",
    ok: "Okay"
}

在用户点击西班牙语按钮的应用的第一页上,它应该在localStorage中设置一个值。

localStorage.setItem("lang", "spanish");

然后在第二页中,一旦你得到“deviceready”事件,你应该使用XHR加载正确的json文件。

var request = new XMLHttpRequest();
    request.open("GET", localStorage.getItem("lang") + ".json", true);
    request.onreadystatechange = function(){//Call a function when the state changes.
        if (request.readyState == 4) {
            if (request.status == 200 || request.status == 0) {
                langStrings = JSON.parse(request.responseText);
            }
        }
    }
    request.send();

现在,只要您想使用已翻译的字符串,就可以从langStrings中获取它。

langStrings.ok;

有意义吗?

答案 1 :(得分:0)

为了坚持下去,我成功使用了Html5本地存储。 它适用于Android,iOS和Windows Phone 7(我在这些平台上试过它) 我像this一样使用它。

对于i18n,您可以使用任何javascript i18n库。我创建了自己的简单solution