You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Material Paginator的默认标签以适配多语言及RTL样式?

Angular Material Paginator 自定义标签(RTL场景适配)

Material Paginator完全支持自定义标签,针对RTL(从右到左)布局的应用,有两种常用实现方式:

一、单个分页器局部自定义

直接在模板中通过输入属性指定各标签文本,适合只需要修改某一个分页器的场景:

<mat-paginator
  [pageSizeOptions]="[5, 10, 20]"
  previousPageLabel="上一页"
  nextPageLabel="下一页"
  firstPageLabel="首页"
  lastPageLabel="末页"
  itemsPerPageLabel="每页显示:"
></mat-paginator>

RTL样式会自动适配这些自定义标签的排版,无需额外调整控件布局方向。

二、全局统一配置自定义标签

如果整个应用需要统一替换分页器标签,推荐使用MAT_PAGINATOR_INTLS注入令牌实现全局配置:

1. 创建自定义分页器国际化服务

新建custom-paginator-intl.ts文件:

import { MatPaginatorIntl } from '@angular/material/paginator';

export class CustomPaginatorIntl extends MatPaginatorIntl {
  override itemsPerPageLabel = '每页条数:';
  override nextPageLabel = '下一页';
  override previousPageLabel = '上一页';
  override firstPageLabel = '首页';
  override lastPageLabel = '末页';

  // 自定义数据范围提示文本
  override getRangeLabel = (page: number, pageSize: number, length: number) => {
    if (length === 0) return '无数据';
    const start = page * pageSize + 1;
    const end = Math.min(start + pageSize - 1, length);
    return `${start} - ${end} / 共 ${length} 条`;
  };
}

2. 在模块中注册自定义服务

在AppModule或核心模块中替换默认的国际化服务:

import { NgModule } from '@angular/core';
import { MatPaginatorModule, MatPaginatorIntl } from '@angular/material/paginator';
import { CustomPaginatorIntl } from './custom-paginator-intl';

@NgModule({
  imports: [MatPaginatorModule],
  providers: [
    { provide: MatPaginatorIntl, useClass: CustomPaginatorIntl }
  ]
})
export class AppModule {}

RTL布局额外说明

确保应用已正确开启RTL支持:

  • 在index.html的<html>标签添加dir="rtl"
  • 或通过Angular CLI配置样式文件引入RTL主题

配置完成后,分页器的控件(如页码选择器、跳转按钮)会自动调整为从右到左的布局,自定义标签也会适配文本方向。

RTL样式下的Material分页器

内容的提问来源于stack exchange,提问作者Alex Wright

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 19:01:27