2017-10-18 78 views
2

我的问题是关于angular2中的ngx转换。我的项目支持2种语言:英文和阿拉伯文,因此有en.json和ar.json文件。下面的代码会给我关键的翻译价值根据我目前的语言如何检索翻译的值而不改变当前的语言在NGX翻译?

this.translate.get('key').subscribe((msg: string) => { 
    console.log(msg); 
    } 

问题:我如何通过具体的语言输入,并获得翻译为特定的语言?例如,我的当前语言是英语(并且不想更改当前语言),但是从ts文件中,我需要从ar.json中检索一个键的阿拉伯语翻译,而不更改当前的语言。

+0

您是否尝试过在ngx-translate网站的[如何使用ngx-translate?](http://www.ngx-translate.com)部分中使用示例? –

回答

0

我建议不要使用ngx translate来满足这个特定的需求。 ngx translate的目的是将其绑定到视图并加载当前所选语言的JSON。另一种方法是简单地设置另一个服务,通过传递一个字符串来加载你需要的json文件,例如英语'en'和阿拉伯语'ar'。您可以根据需要在您的ts中使用该JSON。

0

我没有找到任何官方解决方案,但我提出了解决方法。

const interval = Observable.interval(1000); 
const langObservable = Observable.from(['EN', 'PL']); 
langObservable.zip(interval, (v1, v2) => { 
    return v1; 
}).subscribe(lang => { 
    this.translate.getTranslation(lang).subscribe(values => { 
    const value = values['TRANSALTION_KEY']; 
    this.messageProvider.next(value); 
    }); 

});