我想使用ngx-translate将动态元素实现为多个翻译,以融合this solution(多个翻译):
this.translate.get(['HOME', 'MY_ACCOUNT', 'CHANGE_PASSWORD']).subscribe(res => {
showToast(res.HOME,res.MY_ACCOUNT,res.CHANGE_PASSWORD);
});
that one(动态文字):
this.translate.get('HOME', {value: 'test_HOME'}).subscribe(res => {
showToast(res);
});
答案 0 :(得分:0)
现在还不确定你是否想出了自己的解决方案,但我做了类似的事情:
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();
}
虽然我知道get
上的TranslationService
函数对多个翻译字符串作为输入所做的更改,但我有一个特定的用例需要运行代码对于翻译后的每一个(即,我向.map
添加this.translate.get(...
并在其中运行了一些代码。
希望这有帮助。
答案 1 :(得分:0)
as get
TranslateService
方法的类型注释,您可以指定interpolateParams
作为第二个参数。
TranslateService.get(key: string | string[], interpolateParams?: Object): Observable<any>