XLIFF,版本控制或翻译更新过程(差异杠杆步骤)

我正在考虑使用XLIFF标准化企业内的本地化工作。 我是xliff的新手并做了一些研究我想到了以下使用它的一般过程:

  1. 从开发项目资源中提取字符串(针对.Net的.resx,针对Java的.properties) – 我发现的好方法是使用来自Okapi Localization Toolbox的Rainbow – 并使用“Utilities => Translation Kit Creation”命令
  2. 然后翻译提取的文件,就像在http://www.opentag.com/okapi/wiki/index.php?title=How_to_Translate_XLIFF_Documents中描述的那样,例如使用Virtaal应用程序
  3. 最后将翻译后的xliff转换回原始格式(resx / properties) – 这可以与Rainbow一起使用“Utilities => Translation Kit Post-Processing”

到目前为止一切都很清楚,但是我想知道添加或修改字符串资源时最佳做法是什么? 每当有一个新字符串以原始格式(resx / properties)添加到字符串资源时,我宁愿不重新翻译所有资源。

如果对翻译版本控制支持,这也将是很好 – 如果它们用相同的版本标记,那么将合并多个语言翻译(提供相同的字符串集)。 添加新字符串或修改现有字符串时会更新版本。

是否有现成的解决方案? 或者我们必须自己建立什么?

编辑:

我在Okapi Rainbow的Pipeline库中找到了Diff Leverage步骤,但是我很难让它工作。 这是两个xliff文件。 第一个是用法语翻译的第一个版本的资源,第二个是从新版资源生成的文件,其中包含以下更改:

  • 更新了1个字符串(AdminTitleResource现在是管理资源)

  • 删除了1个字符串(HomeLinkResource消失了)

  • 添加了2个新字符串(项目和公司)

但是,运行Diff Leverage管道不会产生翻译的智能合并。 有什么想法吗?

以前版本资源的翻译xliff:

    Access denied Accès refusé  Error message   Administration Administration    Main page Page web principale    Categories Catégories    Configuration Paramètres    User groups Utiliser le groupe      

如何只使用需要翻译的字符串获取XLIFF文件?

上面列出的更改的新文件:

     Access denied Access denied Error message   Administration Resource Administration Resource    Categories Categories    Configuration Configuration    User groups User groups    Project Project    Company Company      

这里有一个答案: http : //tech.groups.yahoo.com/group/okapitools/message/2494


编辑:链接消息的内容

嗨保罗,

我试图弄清楚如何使用差异杠杆来改善翻译体验,并在将现有翻译与添加/修改/删除字符串的新版本文档合并/利用时获得更新xliff文件。

正如Jim所说,使用XLIFF文件,您可以利用基于ID的步骤。

但Diff杠杆步骤也会起作用。 这是怎么做的:

我假设您有XLIFF文件,只是想更新它们。 您可以创建管道来执行其他操作,例如创建翻译工具包等,但这会使事情变得简单。

首先,您需要将新的源文件放在输入列表1中,将翻译的文件放在输入列表2中。

然后,您可以创建以下管道:

  • 过滤事件的原始文档
  • 差异化利用
  • 将事件过滤到原始文档

在“差异杠杆”步骤的参数中:确保设置了“复制到目标上方/上方”选项。

然后执行管道。

我在原始新文件和输出文件之间附加了一个比较(compare_out.html)。 正如您所看到的,可以利用的所有文本现在都在输出中。 您的条目“AdminTitleResource”未翻译,因为它是翻译文件中的来源不同,您的两个新条目也未翻译。

您还会注意到新属性approved =’yes’,表示翻译已完成。 该额外标志可用于区分需要从已利用的条目转换的条目。

由于某种原因,两个杠杆条目没有它:我将不得不查看并报告。 这可能是一个我不记得的错误或某些情况(也许是吉姆)。

基于Id的复制步骤几乎可以更好。 它将通过匹配条目的resname来复制翻译的文本。 我说几乎是因为目前它没有查看源文本,所以即使新源不同(即不是“杠杆”步骤),您也可以获得翻译。 但我们可以添加一个选项来进行额外检查,这将使步骤像杠杆步骤一样工作。 我会尽力找到时间这样做。

希望这有帮助,-yves