14

在 Angular 6 中,既然我想我理解了如何制作 i18n 文件并利用它们(例如https://angular.io/guide/i18n),我想知道如何维护所述文件。如果我进入并更改 html,据我所知,我将不得不使用ng xi18n命令重新生成 messages.xml 文件,这意味着我将需要将文件重新翻译成其他语言,或者至少,进行某种视觉匹配,以便我可以将某些 div 标签的内容从已翻译的旧文件移至新文件的新位置。维护更改似乎需要很多开销,我希望我遗漏了一些东西,但这是维护文件的预期工作流程吗?以下是正确的[我希望不是],还是有更好的方法我不知道?

创建:

  1. ng xi18n使用命令生成 messages.xlf
  2. 复制并重命名 messages.xlf => messages.fr.xlf
  3. 打开messages.fr.xlf,复制标签之间的内容并将其粘贴在下面,然后重命名source => target,然后将内容翻译成新的语言(例如法语)

维护:

  1. 对 html 和/或内容进行更改后,使用ng xi18n命令重新生成 messages.xlf
  2. 制作messages.xlf的副本并重命名(例如messages.fr2.xlf)
  3. 打开messages.fr.xlf并尝试识别可以复制到messages.fr2.xlf的内容,然后删除messages.fr.xlf并重命名messages.fr.xlf??? 对所有语言重复???

是否有我缺少的命令或工具可以帮助我匹配我放入 i18n 标签(例如i18n="@@myUniqueTag")中的持久 ID,以便我可以将翻译的目标(例如<target>my translated content</target>)自动移动到新文件?还是我真的必须手动将所有目标移动到新文件并将它们与每个源标签匹配?

4

2 回答 2

2

您可以使用ngx-i18nsupport。它用于xliffmerge在运行后自动合并翻译文件ng xi18n

于 2018-08-30T12:31:42.757 回答
2

我最终为自己制定了一个解决方案,直到出现更好的解决方案:https ://github.com/maplion/angular6-i18n-helpers

到目前为止,它对我来说效果很好。

于 2018-06-27T15:23:30.027 回答