【问题标题】:Using angular i18n on conditional operators (ternary)在条件运算符(三元)上使用 Angular i18n
【发布时间】:2022-02-21 04:51:23
【问题描述】:

是否可以在需要条件操作的字符串上使用 i18n

<h2 i18n>{{ updateMode ? 'Edit' : 'Add'}}</h2>

【问题讨论】:

  • 你试过了吗?我的意思是,如果您已经使用了 angulars i18n 机制,那么您可能可以在 1 分钟内对其进行测试。 (我改用 ngx-translate,所以我无法回答你的问题)。

标签: angular angular5 angular-i18n


【解决方案1】:
<h2 i18n>{{ updateMode ? 'Edit' : 'Add'}}</h2>

在您的 .xlf 文件中,您会得到类似这样的内容

<source>
  <x id="INTERPOLATION" equiv-text="{{updateMode  ? 'Edit': 'Add'}}"/>
</source>

目标应如下所示:

<target>
  {{updateMode  ? 'TranslatedValue1' : 'TranslatedValue2'}}
</target>

编辑:此答案与 Angular v.9.0 无关 您不能再使用三元运算符,而是使用:

<ng-container *ngIf="updateMode" i18n="@@translationID1>TranslatedValue1</ng-container>
<ng-container *ngIf="!updateMode" i18n="@@translationID2>TranslatedValue2</ng-container>

【讨论】:

  • 我收到一个错误:无法在“{{loading ? 'Loading Module...' : 'Log In'}}”消息中解析 ICU 表达式。
猜你喜欢
  • 2015-08-29
  • 1970-01-01
  • 1970-01-01
  • 2010-09-18
  • 2010-09-28
相关资源
最近更新 更多