如何使用 ngx translate 翻译有角材料小吃店中的文本

时间:2021-02-11 11:15:57

标签: angular angular-material

我在我的项目中实现了 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>

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

2 个答案:

答案 0 :(得分:0)

snackBar.open(this.translate.intant('your_translation_message'))

答案 1 :(得分:0)

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

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

相关问题