使用与其他变量相同的变量加载脚本并覆盖

时间:2013-02-05 19:33:31

标签: javascript jquery cordova jquery-mobile

我使用2个不同的javascript文件用于两种不同的语言,1个文件调用lang.en.js,这是英文,另一个是lang.es.js,两个文件包含相同的变量,例如: lang.es.js

var messages: {
    settings: {
        settings: "Opciones",
        language: "Idioma"
    }
}

lang.en.js

var messages: {
    settings: {
        settings: "Settings",
        language: "Language"
    }
}

所以在我的phonegap应用程序的第一个时候我只加载其中一个文件,我想给用户一个选项,这样他就可以在应用程序执行期间更改语言,如何覆盖其他文件或重新加载整个应用程序? 问候。

1 个答案:

答案 0 :(得分:0)

使用XHR将文件作为JSON加载并解析它。像这样:

    var messages = {};
    var request = new XMLHttpRequest();
    request.open("GET", "lang.en.json", true);
    request.onreadystatechange = function(){
        console.log("state = " + request.readyState);
        if (request.readyState == 4) {
            if (request.status == 200 || request.status == 0) {
                messages = JSON.parse(request.responseText);
            }
        }
    }
    request.send();

并将.js文件更改为.json:

{
    settings: {
        settings: "Settings",
        language: "Language"
    }
}