我想用ngx-translate将动态元素实现到多个翻译中,以便融合此解决方案(多个翻译(:
this.translate.get(['HOME', 'MY_ACCOUNT', 'CHANGE_PASSWORD']).subscribe(res => {
showToast(res.HOME,res.MY_ACCOUNT,res.CHANGE_PASSWORD);
});
有了那个(动态文本(:
this.translate.get('HOME', {value: 'test_HOME'}).subscribe(res => {
showToast(res);
});
不确定你现在是否想出了自己的解决方案,但我做了这样的事情:
public translateTableHeadings(stringArr: string[] = []): Observable<string[]> {
const sub = new Subject<string[]>();
const obs$ = Observable.from(stringArr);
obs$
.map(aString=>
this.translate.get(aString)
)
.toArray()
.takeUntil(sub)
.subscribe(translatedStrings=> {
sub.next(translatedStrings);
sub.complete();
});
return sub.asObservable();
}
虽然我知道对TranslationService
上的get
函数所做的更改,以满足多个翻译字符串作为输入,但我有一个特定的用例,我需要在翻译后为每个代码运行代码(即,我在this.translate.get(...
中添加了一个.map
并在那里运行了一些代码。
希望这有帮助。
根据get
方法的类型注释,TranslateService
可以指定interpolateParams
作为第二个参数。
TranslateService.get(key: string | string[], interpolateParams?: Object): Observable<any>