Angular 5 - TypeScript中的翻译字符串

时间:2017-12-01 10:52:14

标签: angular localization internationalization translate

我正在使用i18n进行翻译,并对html方面的工作原理感到满意。

但是,如果我在我的打字稿中的字符串中定义了错误消息等,我想要一种方法来翻译这些错误消息并找不到办法。

是否有解决方法来实现这一目标?

3 个答案:

答案 0 :(得分:2)

Angular GitHub repo有一个未解决的问题。

有关详情,请查看this。不幸的是,还没有正式支持typescript的字符串。但是,一些开发人员提出了一些你可以看一看的解决方法。

答案 1 :(得分:2)

直到现在(@angular/language-service v7.2)都无法通过库的API来完成。无论如何,您可以看到my answer under another similar question的解决方法

答案 2 :(得分:2)

使用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>