如何使用jquery-i18n-properties和JavaScript动态更改语言?

Bar*_* PM 2 html javascript jquery internationalization

我正在使用jquery-i18n-properties插件向我的网站提供i18n.我已经更改了我的HTML并执行以下操作以加载所需的.properties:

jQuery.i18n.properties({
    name: 'Messages', 
    path: 'bundle/', 
    mode: 'both',
    language: lang, 
    callback: function() {
        $("#msg_welcome").text(jQuery.i18n.prop('msg_welcome'));
        ...
    }
});
Run Code Online (Sandbox Code Playgroud)

一切正常.我现在要做的是允许用户按下按钮更改语言.有没有办法只使用javascript或这个插件,而无需重新加载页面?谢谢.

WTK*_*WTK 7

是的,这很容易.实际上,有一个例子就是在jQuery.i18n.properties站点上做的(http://codingwithcoffee.com/files/trunk/index.html).

诀窍是,用新语言简单地重新初始化插件.将当前代码抽象为另一个函数,接受lang作为参数.使用某种默认语言初始化,一旦用户更改当前语言,将其传递给该函数.

function changeLang(lang) {
    jQuery.i18n.properties({
        name: 'Messages', 
        path: 'bundle/', 
        mode: 'both',
        language: lang, 
        callback: function() {
            $("#msg_welcome").text(jQuery.i18n.prop('msg_welcome'));
            ...
        }
    });
}

// somewhere else in your code
// change to english
changeLang('en_EN');
// change to other
changeLang('pt_PT');
Run Code Online (Sandbox Code Playgroud)