Angular i18n $localize 函数不 return 源语言术语

Angular i18n $localize function doesn't return source language term

运行 我们的应用程序使用西班牙语 LOCALE_ID ("es"),我可以动态提取一个翻译术语,然后呈现一个烤面包机类型的消息,如下所示:

const message = $localize`:Toastr message|Person edit saved success@@msgPatientDetailsUpdated: i18n`;
this.toastr.success(message);

它工作得很好,我的“患者更新”消息现在是西班牙语。

但是当我们运行默认英文的应用程序LOCALE_ID时,它并没有拉取英文词条。所以我只取回“i18n”,它被分配给我的 'message' var.

在另一个地方,我将这个逻辑包装到 if/else - 即如果我的 LOCALE_ID === 'en-us',那么只需硬编码我的烤面包机消息;如果没有,那么我会调用 $localize 函数,然后它会很好地提取 'es' 项。

我不确定我在这里遗漏了什么。无论语言如何,我都不能调用 $localize 吗?在我的情况下是英语或西班牙语。

这是来自 es.xlf 消息文件的特定“msgPatientDetailsUpdated”ID:

<trans-unit **id="msgPatientDetailsUpdated"** datatype="html">
  <source>Patient details successfully updated</source>
  <target>Detalles del paciente actualizados exitosamente</target>
  <note priority="1" from="meaning">patient-edit.modal.ts toastr message</note>
  <context-group purpose="location">
    <context context-type="sourcefile">patient-edit.modal.ts</context>
    <context context-type="linenumber"/>
  </context-group>
</trans-unit>

感谢任何帮助。

更新:可能是我对文档的这一部分有误解 https://angular.io/api/localize/init/$localize:

     $localize`:@@id:source message text`;

按照此文档:https://angular.io/api/localize/init/$localize,我意识到我没有遵守 $localize 调用的结构:

$localize`:meaning|description@@id:source message text`;
$localize`:meaning|:source message text`;
$localize`:description:source message text`;
$localize`:@@id:source message text`;

例如,我缺少默认英语的源消息文本。

   const message = $localize`:Toastr message|Patient edit saved success@@msgPatientDetailsUpdated:Patient details successfully updated `;
   this.toastr.success(message);