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

我正在使用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')); ... } }); 

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

是的,这很容易。 事实上,有一个例子就是在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');