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);
运行 我们的应用程序使用西班牙语 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);