如何在指令字段中使用翻译?

时间:2019-02-22 19:19:26

标签: angular translation ngx-translate

我正在构建一个Angular应用程序,我想在整个应用程序中添加翻译。为此,我正在使用ngx-translation method。使用参数构建翻译时出现问题:我的应用显示[Object object]。 我使用了一个使用[message]字段的指令,该值需要翻译,但是我不知道如何在我的消息值中添加翻译。

我的组件如下:

<app-confirmation-dialog  
[translate]="'demo.greeting'" 
[translateParams]="{name: 'Andreas'}"
[message]="?????????"
[confirmationLabel]="'quit anyway'"
(onConfirmation)="onCancel()"></app-confirmation-dialog>

我在翻译文件中添加了相同的密钥:

{
  ....
  "demo": {
    "greeting": "Hello {{name}}!"
  }
  ....
}

您是否有想法在我的消息值中添加翻译?

1 个答案:

答案 0 :(得分:1)

在这种情况下,您将无法轻松使用翻译的指令形式,因为您正在传递message作为元素的属性(在这种情况下,是指令的输入)。如果您继续使用指令格式[translate],那么它将以您不希望的方式与您自己的指令混淆。

使用管道形式,将parameters对象作为参数传递:

<app-confirmation-dialog
  [message]="'demo.greeting' | translate: {name: 'Andreas'}"
  [confirmationLabel]="'quit anyway'"
  (onConfirmation)="onCancel()">
</app-confirmation-dialog>