有人发布了一个plnkr来展示如何通过服务下载json文件并从管道中使用它进行翻译
但它只适用于一个翻译,因为我是棱角分明的新手,我觉得很难理解/调试,我问是否有人可以指出我这个代码有什么问题
https://plnkr.co/edit/VMqCvX(我可以分叉但不保存:-()
当我添加另一个词来翻译和另一个翻译时,只翻译了最后一个词
应用程序/ I18N / localizable.it.strings
{
"home.nav.calendar": "Calendar"
"home.nav.test": "Test"
}
应用程序/ app.component.ts
<span>{{'home.nav.calendar' | translate}}</span>
<span>{{'home.nav.test' | translate}}</span>
plz help
感谢
答案 0 :(得分:0)
我不确定你从哪里得到这个例子,但我看到那些似乎不需要的东西。有一个Observable不需要在那里(这导致只重放流中的最后一项)。我把那个笨蛋分开了:
transform(value: string, args: string[]) : any {
console.log("transform", value);
// this.translationLoadedSub = this._translation.translationLoaded.subscribe((data) => {
// console.log("transform", value);
// this.value = this._translation.getTranslationByKey(value);
// this._ref.markForCheck();
// this.loaded = true;
// });
this.loaded = true;
https://plnkr.co/edit/t3pkj02cVBHPyjTTdXop?p=preview
这个有效。
答案 1 :(得分:0)
问题是Observable只对订阅它的最后一个值发出true。这是因为观察者之间没有共享观察者。您可以修改观察者以在订阅之间共享自己,以便他们都知道何时加载数据:
this.translationLoaded = Observable.create((observer) => {
this.translationLoadedObserver = observer;
}).share();