如何在Angular2中使用ngx-translate获取当前语言

46
3个回答

82

import translate service and add in constructor

constructor(private translate: TranslateService){
}

我发现使用this.translate.currentLang可以获取当前语言。


如何访问 translate.currentLang? - godblessstrawberry
9
@godblessstrawberry 只需使用 this.translateService.currentLang,不要忘记在构造函数中添加 TranslateService - Allen
1
有没有一种方法可以获取当前语言的可观察对象? - Mateja Petrovic
2
@MatejaPetrović 嗯..我认为当前语言不是可观察的属性,但是你可以订阅translate服务的onLangChange。 - Allen

4
constructor(private translate: TranslateService){}

ngOnInit() {
    this.translate.currentLang;
}

不确定为什么它会给我返回 undefined - Ricky Levi
1
@RickyLevi 你需要先使用 this.translate.use() 方法设置语言,并将语言字符串作为参数传入('es'、'en' 等)。如果你没有设置语言,或者在应用程序的生命周期中被覆盖或丢失,currentLang 将是未定义的。 - JurgenBlitz

0
如果你想要得到一个有效的语言,即使你从未设置过,确保在导入ngx-translate模块时设置默认语言。

app.module.ts

...
@NgModule({
   imports: [
      BrowserModule,
      TranslateModule.forRoot({
         defaultLanguage: 'en'
      })
   ],
   bootstrap: [AppComponent]
})
export class AppModule { }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接