【问题标题】:ngx-translate: Event to detect changing language (Angular)ngx-translate:检测语言变化的事件(Angular)
【发布时间】:2022-12-19 17:16:57
【问题描述】:
标签:
angular
typescript
angular-components
ngx-translate
angular13
【解决方案1】:
您可以订阅 TranslateService 的 onLangChange observable 来监听语言变化事件。
ngOnInit() {
console.log(this.translate.currentLang);
this.translate.onLangChange.subscribe((event: LangChangeEvent) => {
console.log(event.lang);
});
}
TranslateService API
【解决方案2】:
您还可以使用 Angular 自己的 BehaviorSubject 来检测语言变化。
通过这种方式:
在通用服务中编写此代码:
public langObsevable: BehaviorSubject<string> = new
BehaviorSubject<string>(null);
public onLanguageChanged(lang:string){
this.langObsevable.next(lang);
}
现在您可以通过订阅在其他组件中应用语言更改,如下所示
this.generalService.langObsevable.subscribe(res => {
translate.use(res);
});