【问题标题】:ngx-translate: Event to detect changing language (Angular)ngx-translate:检测语言变化的事件(Angular)
【发布时间】:2022-12-19 17:16:57
【问题描述】:

我想使用检测“当前语言”的切换ngx翻译图书馆。

我可以使用哪个 js 事件来实现?

为了更好地理解我的意思,请检查这个简单的例子:https://stackblitz.com/edit/github-yvbmgu

我想在 ngOnInit() 上从“diff”组件检测 currentLang 的变化。

【问题讨论】:

    标签: 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);
        });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-13
        • 1970-01-01
        • 2018-04-14
        • 2019-02-09
        • 1970-01-01
        • 2018-03-01
        相关资源
        最近更新 更多