![](/img/trans.png)
[英]How to use i18n with component inputs that are objects in Angular?
[英]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.