【发布时间】:2018-05-15 11:12:26
【问题描述】:
我正在使用 i18n 进行翻译,并且对它在 html 端的工作方式感到满意。
但是,如果我在我的打字稿中的字符串中定义了错误消息等,我想要一种方法来翻译这些但找不到方法。
是否有解决方法来实现这一点?
【问题讨论】:
标签: angular localization internationalization translate
我正在使用 i18n 进行翻译,并且对它在 html 端的工作方式感到满意。
但是,如果我在我的打字稿中的字符串中定义了错误消息等,我想要一种方法来翻译这些但找不到方法。
是否有解决方法来实现这一点?
【问题讨论】:
标签: angular localization internationalization translate
直到现在 (@angular/language-service v7.2),这还不能通过库的 API 实现。无论如何,您可以查看my answer under another similar question 以获得解决方法。
【讨论】:
使用 Angular 9+ 你可以做到这一点
let <local_variable> = $localize`:@@<unique_id>:<optional_text>`
Example: let err_msg = $localize`:@@err_username:Invalid username, please check your inputs`;
到目前为止,您无法使用 npm 脚本自动提取这些变量。您必须像这样手动添加它
在 messages.xlf 文件中
<trans-unit id="err_username:Invalid" datatype="html">
<source>Invalid username, please check your inputs</source>
</trans-unit>
messages.lang.xlf 文件中(语言的翻译文件
<trans-unit id="err_username:Invalid" datatype="html">
<source/>
<target>Ungültiger Benutzername, bitte überprüfen Sie Ihre Eingaben</target>
</trans-unit>
【讨论】:
Angular GitHub repo 上有一个悬而未决的问题。
欲了解更多信息,请查看this。不幸的是,typescript 的字符串还没有被正式支持。但是,一些开发人员提出了一些解决方法,您可以看看。
【讨论】: