Angular:如何从 i18n 属性和 $localize 函数生成一个跨单元?

问题描述

组件中的代码

title = $localize`Monday`;

模板中的代码

<div i18n>Monday</div>

“ng extract-i18n”命令将两个独立的传输单元提取到messages.xlf。

解决方法

是的,因为您有两个单独的翻译:ts 文件中的 title 和模板中的 <div>。如果您希望使用 title,您可以在模板中使用 i18n 属性进行插值。如果您使用 i18n 属性,它会在翻译发生之前在编译过程中被翻译成另一个 $localize

<div>{{title}}</div>

另一个选项是省略 title,只在模板中使用 i18n,我觉得这更容易。