【问题标题】:How to translate the text in angular material snackbar using ngx translate如何使用 ngx translate 翻译角材料小吃栏中的文本
【发布时间】:2021-02-11 11:15:57
【问题描述】:

我已经在我的项目中实现了 ngx 翻译器,我只能通过 json 文件将文本转换为 HTML 页面中的其他语言,但我想更改角度材料中“Snackbar”中文本的语言我该怎么做。

我的 ts 文件配置。

       import { TranslateService } from '@ngx-translate/core';
       import { CookieService } from 'ngx-cookie-service';
     

       constructor(public translate: TranslateService,private cookieService: CookieService){
        let cookieValue = this.cookieService.get('lang')
        if(cookieValue){
            translate.setDefaultLang(cookieValue);
            this.browserLang = cookieValue;
        }
        else{
          translate.setDefaultLang('en');
          this.browserLang = translate.getBrowserLang();
        }
        translate.use(this.browserLang.match(/en|es/) ? this.browserLang:'en');
       }

HTML:

           <mat-form-field appearance="outline" class="w-100">
                  <mat-label>Choose Language</mat-label>
                  <mat-select [(value)]="browserLang" #langselect (selectionChange)="translate.use(langselect.value); language_set(langselect.value)">
                    <mat-option *ngFor="let lang of languages" [value]="lang.value">
                      {{lang.viewValue}}
                    </mat-option>
                  </mat-select>
                </mat-form-field>

谁能帮我解决这个问题...?

【问题讨论】:

    标签: angular angular-material


    【解决方案1】:
    snackBar.open(this.translate.intant('your_translation_message'))
    

    【讨论】:

    • 'your_translation_message' 我这里有动态文本.. 每次都会改变...
    【解决方案2】:

    我遇到了同样的问题,我决定在 Snackbar 中加载一个组件而不是文本。当然,这意味着将自定义消息传递给 Snackbar 是没有意义的,但您可以将枚举类型的标识符传递给组件,以从有限列表中显示您想要显示的消息。

    您可以使用 openFromComponent() 将组件传递给 Snackbar https://material.angular.io/components/snack-bar/overview

    【讨论】:

      猜你喜欢
      • 2020-01-04
      • 2018-01-25
      • 2019-07-29
      • 2019-03-08
      • 2019-06-20
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多