我使用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