xliff - XLIFF 的工作流程/最佳实践

标签 xliff

我正在使用命令行工具 (ng-xi18n) 从我编写的 Angular 2 应用程序中提取 i18n 字符串。此命令的输出是 messages.xlf文件。来自 .po背景,不熟悉.xlf , 我假设这个文件相当于 .pot文件(如果我错了,请纠正我)。

然后我假设如果我想翻译我的应用程序,我必须 cp messages.xlf messages.de.xlf拥有模板文件( messages.de.xlf )的副本( messages.xlf ),我可以在其中将每条消息翻译成德语(因此是 .de.xlf )。

在翻译了一些虚拟文本并运行应用程序后,我看到它按预期工作,所以我停止翻译并继续开发应用程序。一段时间后,我添加了更多 i18n 字符串,最终认为我必须更新我的模板。这就是事情变得难以维护的地方。我更新了模板 messages.xlf文件,很快就想知道如何将新字符串更新为已翻译的 messages.de.xlf文件而不丢失我的进度。

当我使用 .po 进行开发时文件,多亏了像 poEdit 这样的好工具,这没问题,但我没有找到与 .xlf 类似的东西.在尝试了一些工具之后,我认为最好的选择是 Lokalize,但我也没有找到将模板文件合并到已经翻译(但过时)的文件的可能性。

到目前为止,这更像是一篇文章而不是一个问题,所以这里有一个简短的总结:

  • 是处理.xlf的工作流程吗?文件真的可以媲美 .po正如我最初的想法(如上所述),还是完全不同?
  • 我应该如何更新我已经翻译的文件?
  • 处理 .xlf 的最佳实践是什么?文件?
  • 可以使用哪些概念验证工具 .xlf ?


  • 旁注:
  • Lokalize 手册根本没有帮助。我看到很多听起来很有希望的功能,比如:
  • "file">“从模板更新文件”。我在手册中没有找到任何解释此功能的内容。如果我点击它,什么都不会发生。
  • “同步”>“打开文件进行同步/合并”。这似乎是一个合并两个相似文件(由多个翻译人员)的功能,而不是一个从模板更新翻译文件的工具。即使 Lokalize 的主同步选项卡中有一个工具提示,通知我“x 不匹配的条目”,我只是找不到任何东西可以将这些不匹配的条目附加到我的 .de.xlf 中。文件。
  • [更新] 事实证明,我遇到了与 this question 中类似的问题.将我的 Lokalize 版本降级到建议的版本后,许多问题(包括问题中提到的问题)都消失了。但是,现在“从模板更新文件”选项是灰色的,我不知道为什么。
  • 我还尝试了 OmegaT,它在我的平台(Ubuntu 16.04)上根本不起作用。
  • [更新] Virtaal 非常适合从模板中合并新字符串,但 UI 通常设计得很糟糕...
  • 谷歌搜索没有帮助,因为每次点击似乎都与 XCode 或其他东西有关。


  • 提前感谢您的帮助,我真的很感激

    最佳答案

    我写了一个名为 xliffmerge 的小型 npm 命令行工具。
    原则上,它的作用与 Roland Oldengarm 的博客文章中描述的 gulp 任务相同。
    它是免费的,您可以查看 https://github.com/martinroob/ngx-i18nsupport#readme

    关于xliff - XLIFF 的工作流程/最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39350177/

    相关文章:

    translation - 找不到适用于 OSX Lion 的免费 xliff 编辑器

    angular - 为什么 Angular 使用 XLIFF 1.2 而不是 XLIFF 2?

    php - 用于 PHP/Android 的 Xliff 工具

    iOS 应用程序本地化不起作用

    xcode - Xcode 6 的 XLIFF 本地化工具

    ios - Xcode 6.1.1 导入本地化错误 "XLIFF id attribute missing"

    symfony - 如何从Symfony2/Silex项目生成翻译文件(.po,.xliff,.yml等)?

    php - 在非 Symfony 项目中使用 Symfony 2 组件?

    Android XML 百分比符号

    ios - 在 Xcode 6.0 中导入 .xliff 本地化文件