我使用Knockout.js允許用戶選擇我的web應用程序應該顯示的語言。更改Knockout.js結合
我已經基本上做出這樣的語言:
function AppViewModelNorwegian() {
this.Username = "Brukernavn";
this.Password = "Passord";
this.Rememberpassword = "Husk passord";
}
function AppViewModelEnglish() {
this.Username = "Username";
this.Password = "Password";
this.Rememberpassword = "Remember password";
}
然後,我申請的語言是這樣的:
ko.applyBindings(new AppViewModelNorwegian());
它爲第一語言的選擇,但我怎麼能允許改變語言?
使用ko.applyBindings一遍不行,因爲我不能多次申請綁定同一個元素。
ko.applyBindings(new AppViewModelEnglish()); //Does not work
如何更改綁定以更改語言?
謝謝你詳細的解答!我還注意到,這僅適用於用戶當前視圖 - 我將如何在整個應用程序中應用KO? – Publicus
這是一個相當複雜的問題,取決於您的應用程序,它是單頁應用程序(例如,使用durandal,angular等)?或傳統的.net像網頁/形式/ mvc?在這裏搜索淘汰賽+ i18next。特別是用戶'tne'在這個問題中的重要答案非常好,http://stackoverflow.com/questions/16882171/durandal-knockout-app-with-multilanguage-support。在最基本的層面上,您可以將語言選擇存儲在Cookie或本地存儲和每個頁面中,獲取該值併爲該特定頁面創建語言viewModel。我肯定會考慮使用i18next。 –
這是一款使用Kendo UI Mobile的單頁應用程序。所以將它應用到當前的DOM就足夠了。 – Publicus