Angular i18n选择:转换某些值,按原样使用其他值

时间:2019-03-08 15:37:26

标签: angular internationalization

我正在像这样的角度7项目中使用i18n:

 <a *ngIf="!last" [routerLink]="[item.url]" i18n="Breadcrumbs@@breadcrumb-label"> {item.label, select, projects {Projekte} new {Neu}}</a>

到目前为止,这个方法工作正常。较低级别的面包屑显示不会被翻译的名称属性。例如,如何翻译item.label。项目或新项目,如果不是则保留原样?

我尝试过

 {item.label, select, projects {Projekte} new {Neu} other {item.label}}

 {item.label, select, projects {Projekte} new {Neu} other item.label}

但显然他们俩都不起作用。

1 个答案:

答案 0 :(得分:0)

我通过使用单独的模板解决了这个问题:

<ng-container *ngTemplateOutlet="isFixedLabel(item.label) ? fixed : other; context: { item: item }"></ng-container>

<ng-template #fixed i18n="Breadcrumbs@@breadcrumb-label" let-item="item"> {item.label, select, projects {Projekte} new {Neu}}</ng-template>
<ng-template #other let-item="item">{{ item.label }}</ng-template>