簡體   English   中英

如何將 i18n 與 Angular mat-table 一起使用

[英]How to use i18n with Angular mat-table

我似乎無法使用 i18n 和 Angular 的 mat-table 翻譯動態列標題。

我嘗試使用 i18n-title [title]="field.i18n" 和 i18n-header [header]="field.18n" 和 i18n-table-header table-header="field.i18n" 沒有任何成功。

 <table mat-table [dataSource]="dataSource"> <ng-container *ngFor="let field of tableData" [matColumnDef]="field.name"> <th mat-header-cell *matHeaderCellDef [i18n]="field.i18n"> {{field.name}} </th> <td mat-cell *matCellDef="let element"> {{element[field.dbField]}} </td> </ng-container> <tr mat-header-row *matHeaderRowDef="getDisplayedColumns();"></tr> <tr mat-row *matRowDef="let row; columns: getDisplayedColumns();" ></tr> </table>

我希望列標題來自使用 i18n 模板的 field.name。

i18n不是指令。 它在運行時不存在。

它只是在編譯時用於提取和重新插入靜態值以從/轉換到模板的屬性。

如果您嘗試在運行時使用 Angular i18n 轉換密鑰,那就太糟糕了,因為它不受支持。

我認為您可以使用應用程序的localeId ,並在組件中創建標簽。 不是很好,但至少它有效。

constructor(@Inject(LOCALE_ID) protected localeId: string) {
      console.log(this.localeId);
}

在您的組件中,您可以根據語言環境分配標題的名稱

if (this.localeId == 'de') {
/// Your code
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM