3

jquery-i18n-propertiesプラグインを使用してi18nを自分のWebサイトに提供しています。すでにHTMLを変更しており、必要な.propertiesをロードするために次のことを行います。

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

すべてが正常に動作します。私が今やりたいのは、ユーザーがボタンを押して言語を変更できるようにすることです。ページをリロードせずにjavascriptまたはこのプラグインのみを使用してそれを行う方法はありますか?ありがとう。

4

1 に答える 1

9

ええ、それは簡単です。実際、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');
于 2013-03-26T12:40:30.307 に答える