0
我想本地化(翻譯成其他語言)我的應用程序的用戶界面,用knockout編寫。目前,我正在調查可能的解決方案以及他們可能引入的問題。本地化與淘汰賽
所以我建立我用下面的代碼第一次嘗試(檢查fiddle真正的代碼):
var translation = {
'En' : {
name: 'Type your name',
surname: 'Type your surname'
},
...
};
function AppViewModel() {
self = this;
this.translation = ko.observable(translation['En']);
this.change = function(lang){
self.translation = ko.observable(translation[lang]);
console.log(self.translation());
}
}
ko.applyBindings(new AppViewModel());
因此,我希望一個按鈕被點擊「恩」,「神父」,「頻道」時,2個文本行將被改變。顯然這不會發生(否則我不會在這裏寫)。但是如果你打開控制檯,你可以看到this.translation
正在改變。
我認爲問題是因爲我初始化它爲可觀察的(但這是一個對象)。但是沒有可觀察對象的東西。
所以我的問題是:我該如何做這項工作,但更重要的是有一種可接受的本地化應用程序的方式,用knockout編寫? PS。 this question是完全不同的,但它的名字。
您是**重寫**並且不重新分配您的可觀察值。它應該是'self.translation(translation [lang]);'你的這個,自我處理也是越野車......你在'self = this中缺少'var'; '所以它應該'var self = this' – nemesv