我在我的项目中实现了 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>
谁能帮我解决这个问题...?
答案 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