Angular 6:i18n:如何更新已翻译的现有.xlf文件?

时间:2018-06-14 17:17:25

标签: angular6 angular-i18n

在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 =>目标,然后将内容翻译成新语言(例如法语)
  4. 维护:

    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 ???重复所有语言???
    4. 是否有我缺少的命令或工具可以帮助我匹配我在i18n标签中放置的持久ID(例如i18n="@@myUniqueTag"),这样我就可以自动移动翻译的目标(例如<target>my translated content</target>)到新文件?或者我是否真的必须手动将所有目标移动到新文件并将它们与每个源标记匹配?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您可以使用ngx-i18nsupport。运行query_string后,它将使用xliffmerge自动合并翻译文件。