[英]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”,它被分配給我的“消息”變量。
在另一個地方,我將這個邏輯包裝到一個 if/else 中——即如果我的 LOCALE_ID === 'en-us',那么只需硬編碼我的烤面包機消息; 如果沒有,那么我調用 $localize function,然后它就可以很好地提取“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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.