簡體   English   中英

Angular i18n $localize function 不返回源語言術語

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM