我在Angular 4上使用了材质设计。我在底部有一个带有分页器的表:
有没有办法在Angular4中翻译“每页项目数”?
我可以通过
访问此标签this.paginator._intl.itemsPerPageLabel
在我的组件的.ts文件中,我放入了ngOnInit()
我也在i18n fo .json文件中有翻译,结构是:
"MESSAGES_LIST_TABLE": {
"DATE": "Date",
"FROM": "From",
"TO": "To",
"MESSAGE": "Message",
"AMOUNT": "Amount",
"BALANCE": "Balance",
"AVAILABLE_BALANCE": "Avail. bal",
"ITEMS_PER_PAGE": "Items per page"
}
我能以某种方式将其翻译成这样吗?
this.paginator._intl.itemsPerPageLabel = {{'CUSTOMER.MESSAGES_LIST_TABLE.ITEMS_PER_PAGE' | translate}}
答案 0 :(得分:5)
您从MatPaginatorIntl
进行了Injectable扩展@Injectable()
export class MatPaginatorIntlGerman extends MatPaginatorIntl {
itemsPerPageLabel = 'Pro Seite: ';
nextPageLabel = 'Nächste Seite';
previousPageLabel = 'Vorherige Seite';
getRangeLabel = (page: number, pageSize: number, length: number) => {
return ((page * pageSize) + 1) + ' - ' + ((page * pageSize) + pageSize) + ' von ' + length;
}
}
在你的模块中提供这样的
{
provide: MatPaginatorIntl,
useClass: forwardRef(() => MatPaginatorIntlGerman)
}
答案 1 :(得分:3)
https://stackoverflow.com/a/51113262/7296430
//Atribute
@ViewChild(MatPaginator) paginator: MatPaginator;
ngOnInit(){
...
this.paginator._intl.itemsPerPageLabel = 'My translation for items per page.';
...
}
答案 2 :(得分:0)
创建MatPaginatorIntl的新实例,并将其包含在自定义提供程序中,如angular material documentation中所述。