녹아웃으로 작성된 내 응용 프로그램의 UI (다른 언어로 번역)를 현지화하려고합니다. 현재 가능한 해결책과 그들이 소개 할 수있는 문제점을 조사하고 있습니다.녹아웃을 사용한 현지화
그러므로 나는 (실제 코드를 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
이 바뀌고 있음을 알 수 있습니다.
내가 관찰 할 수있는 것으로 초기화하고 있기 때문에 문제가 있다고 가정합니다 (그러나 이것은 개체입니다). 그러나 관찰 가능한 대상과 같은 것은 없습니다.
내 질문은 : 어떻게이 작품을 만들 수 있습니까? 더 중요한 것은 녹아웃으로 작성된 응용 프로그램을 현지화 할 수있는 수용 가능한 방법입니까? 추신. this question은 그 이름에도 불구하고 완전히 다릅니다.
당신은 ** 오버라이드 (override) **이며, 당신의 관찰을 재 할당 없습니다. 그것은'self.translation (translation [lang]);'http://jsfiddle.net/5PJ4N/ '이어야하고 이것도 자기 처리 또한 버그가있다 ...'self = this; '그래서 그것은'var self = this'이어야합니다. – nemesv