我使用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或这个插件,而无需重新加载页面?感谢。
答案 0 :(得分:7)
是的,这很容易。事实上,有一个例子可以在jQuery.i18n.properties网站(http://codingwithcoffee.com/files/trunk/index.html)上做到这一点。
Trick是,用新语言简单地重新初始化插件。将当前代码抽象为另一个函数,接受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');