ngx-translate一次有多个翻译,ts文件有动态文本

时间:2018-01-23 11:18:24

标签: angular typescript ionic2 ionic3 ngx-translate

我想使用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);
});

2 个答案:

答案 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>