2

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

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

还有文件存储选项。以及原始 JSON 文件。

4

2 回答 2

3

我这样做的方法是创建一个特定于语言的 json 文件来保存我的所有字符串。在这种情况下,english.json 和 spanish.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;

说得通?

于 2012-12-11T18:41:43.387 回答
0

为了持久性,我成功地使用了 Html5 本地存储。它适用于 Android、iOS 和 Windows Phone 7(我在这些平台上尝试过)。
我这样使用

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

于 2012-12-11T07:12:00.793 回答