2013-03-26 79 views
2

我使用jquery-i18n-properties插件向我的網站提供i18n。我已經改變了我的HTML,並做以加載所需的的.properties如下:如何使用jquery-i18n-properties和JavaScript動態更改語言?

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

,一切工作正常。我現在想要做的是允許用戶按下按鈕來改變語言。有沒有辦法做到這一點,只使用JavaScript或這個插件,而無需重新加載頁面?謝謝。

回答

5

是的,這很容易。實際上,在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');