ngx-translate 一次具有多个翻译和 ts 文件上的动态文本
Posted
技术标签:
【中文标题】ngx-translate 一次具有多个翻译和 ts 文件上的动态文本【英文标题】:ngx-translate with multiple translations at once and dynamic text on ts file 【发布时间】:2018-07-02 04:42:15 【问题描述】:我想用 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);
);
【问题讨论】:
【参考方案1】:不确定您现在是否想出了自己的解决方案,但我做了类似的事情:
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
并在其中运行了一些代码。
希望这会有所帮助。
【讨论】:
【参考方案2】:根据TranslateService
中get
方法的类型注解,可以指定interpolateParams
作为第二个参数。
TranslateService.get(key: string | string[], interpolateParams?: Object): Observable<any>
【讨论】:
以上是关于ngx-translate 一次具有多个翻译和 ts 文件上的动态文本的主要内容,如果未能解决你的问题,请参考以下文章
ionic2 基于ngx-translate实现多语言切换,翻译
Highcharts lang with ngx-translate