首页 > 解决方案 > Angular Material MatPaginator 无法翻译

问题描述

我想翻译 itemsPerPageLabel、nextPageLabel、previousPageLabel、firstPageLabel、lastPageLabel 的 matpaginator 标签

但我试图创建这样的类,但它不起作用。我的意思是订阅有效,但是当我更改语言时,标签无法更改

@Injectable()
export class MatPaginatorCustom extends MatPaginatorIntl {
    constructor(public translateService: TranslateService) {
        super();
        this.translateService.stream('vehicle.ubdate.matSnackBar.message')
            .subscribe(labelValue => {
                console.log(labelValue);
                this.itemsPerPageLabel = labelValue;
            });
    }
}

我使用 Angular 8 和 ngx-translate

标签: angularangular-materialtranslatengx-translate

解决方案


您可以在构造函数中使用 onLangChange 方法。例如:

@Injectable()
export class MatPaginatorCustom extends MatPaginatorIntl {
constructor(public translateService: TranslateService) {
    super();
    this.translateService.onLangChange.subscribe(event => {

            this.translate.get('vehicle.ubdate.matSnackBar.message')
               .subscribe(labelValue => {
            console.log(labelValue);
            this.itemsPerPageLabel = labelValue;
           
            // must call this method after change label.
            this.changes.next();
        });

     });
}

}


推荐阅读