【问题标题】:ngx-translate with multiple translations at once and dynamic text on ts filengx-translate 一次具有多个翻译和 ts 文件上的动态文本
【发布时间】: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);
});

【问题讨论】:

    标签: angular typescript ionic2 ionic3 ngx-translate


    【解决方案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】:

      根据TranslateServiceget方法的类型注解,可以指定interpolateParams作为第二个参数。

      TranslateService.get(key: string | string[], interpolateParams?: Object): Observable<any>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-19
        • 2018-09-30
        • 2020-06-30
        • 2022-06-23
        • 2020-03-10
        • 1970-01-01
        • 1970-01-01
        • 2017-08-17
        相关资源
        最近更新 更多