第 14 章 翻译记忆

1. OmegaT 中的翻译记忆
1.1. tmx 文件夹 - 位置及用途
1.2. TMX 备份
1.3. tmx 文件和语种
1.4. 孤立片段
2. 重用翻译记忆
2.1. 导入和导出翻译记忆
3. 伪翻译记忆
4. 更新翻译记忆

1. OmegaT 中的翻译记忆

1.1. tmx 文件夹 - 位置及用途

OmegaT 项目含有在四个不同位置的翻译记忆文件,即扩展名为 tmx 的文件:

omegat 文件夹

omegat 文件夹包含 project_save.tmx 文件,以及一些备份的 TMX 文件。project_save.tmx 文件包含了自项目开始以来所有被保存的片段。项目中总是存在此文件。其内容总是根据源片段的字母进行排序。

项目主文件夹

项目主文件夹中包含 3 个 tmx 文件:project_name-omegat.tmxproject_name-level1.tmx 以及 project_name-level2.tmx(project_name 是项目的名称)。

  • level1 文件仅包含文本信息。

  • level2 文件以适当的 TMX 标签封装了 OmegaT 的特殊标签,因此它可以在支持第 2 级 TMX 的翻译工具中使用其中的格式信息,包括 OmegaT 本身。

  • OmegaT 文件包含了 OmegaT 特殊的格式标签,因此该文件可用于其他 OmegaT 项目。

这些文件是 project_save.tmx文件的副本,即不包括被称为孤立片段的主翻译记忆。它们使用适当但稍变化的名称,这样在其他地方使用时容易识别其中包含的内容,例如在其中项目的 tm 子文件夹(请参阅下面)。

tm 目录

/tm/ 可包含任何数量的辅助翻译记忆,即 TMX 文件。这样的文件可创建为上面提示的三种形式。注意:其他 CAT 也能导出(以及导入)TMX 文件,一般也有三种形式。最好的来源是使用 OmegaT 特定的 TMX 文件(请参阅上面),这样可以保持片段中的内联格式。

在 tm 子目录中翻译记忆的内容是为要翻译文本提供建议。这些文件中已经保存并翻译的任何文本,当它们与正在翻译的文本十分相似时,将出现在模糊匹配窗格中。

如果某个辅助 TM 中的某个源片段与待译的文本完全相同,OmegaT 会进行在选项编辑行为……对话框中设置的操作。例如(使用缺省设置),在辅助 TM 中的译文被接受并加上前缀 [模糊],这样译员随后可以通过这个标记检查译文是否正确翻译(请参阅编辑行为章节)

tm/auto 目录

如果在提供的 TM 中的译文完全可靠的话,那么可以把它们放到 tm/auto 目录以避免需要对大量的 [模糊]进行确认。这样能更有效地预翻译源文本:在源文本中其翻译可以在那些“自动”TM 中找到的所有片段,将会自动加载到项目的主 TM 中。

或者,您可以让 OmegaT 制作一份附加的 TMX 文件(OmegaT 风格)到您指定的地方,包含了项目所有的可译片段。请参阅下面的伪翻译记忆。

注意:打开项目时会把所有的翻译记忆加载到内存中。对项目翻译记忆的备份会定期进行(请参阅下一章),同时在打开或关闭项目时也会保存/更新 project_save.tmx。这里的意思是,例如如果您想添加一个辅助 TM 到当前正在工作的项目时,无需退出项目:只要简单地重新载入项目,所做的更改就会生效。

对于指定的项目,多种不同翻译记忆的位置是由用户定义的(请参阅快速入门指南中的项目对话框窗口)。

根据不同的情况可采取不同的策略,例如:

在相同主题中保存多个项目:保留项目结构,同时改变源和目标目录(Source = source/order1,target = target/order1 等)。需要注意到来自 order1 的片段,而不是 order2 或其他系列的任务,会被标记为孤立片段;不过这样仍可用来获取模糊匹配。

多个译员工作于相同项目:把源文件分成 source/Alice, source/Bob 等,同时把它们分配给项目成员 (Alice, Bob ...)。随后他们可创建自己的项目,当结束或到达阶段性目标时实现他们自己的 project_save.tmx。然后收集 project_save.tmx,并解决可能存在的用词冲突。 之后创建新的主 TM,或者放到项目成员的 tm/auto子目录或替换他们的 project_save.tmx 文件。该团队还可以使用相同的子目录结构来保存目标文件。这样允许他们,例如在任何时刻进行检查整个项目的目标版本是否已经完成。

1.2. TMX 备份

进行翻译时,OmegaT 会持续在项目 /omegat 子目录的 project_save.tmx 文件中保存您的工作。

OmegaT 还会在每次项目被打开或重新载入时备份翻译记忆到同一子目录的 project_save.tmx.YEARMMDDHHNN.bak。YEAR 是 4 位数的年份;MM 是月份;DD 是日期;HH 和 NN 是前一份翻译记忆保存时的小时和分钟。

如果您认为丢失了翻译数据,可执行下列步骤:

  1. 关闭项目

  2. 重命名当前的 project_save.tmx 文件(例如改名为 project_save.tmx.temporary

  3. 选择最有可能包含所需数据的翻译记忆备份(例如最近的那个或从某个日子的最后版本)

  4. 复制并更名为 project_save.tmx

  5. 打开项目

1.3. tmx 文件和语种

tmx 文件包含的翻译单元由一定数量不同语言的等同片段组成。一个翻译单元至少由两个翻译单元变体 (tuv) 组成。每个都可以当作源或者目标使用。

项目的设置将指出哪个是源语言,哪个是目标语言。因此 OmegaT 与项目的源和目标语言代码对应的 tuv 片段,并把它们分别用作源和目标片段。OmegaT 使用下面两个标准约定来识别语言代码:

  • 2 字母(例如对于 Japanese 为 JA),或者

  • 2 或 3 个字母的语言代码后跟着 2 个字母的国家代码(例如 EN-US - 请参阅附录 B, 语言 - ISO 639 代码列表 了解部分的语言和国家代码)。

如果项目语言代码和 TMX 语言代码完全匹配,片段将会导入内存中。如果语言匹配但国家不匹配,仍会导入片段。如果语言代码和国家代码都不符合,片段将被忽略。

1.4. 孤立片段

project_save.tmx 文件包含了自项目开始以来已翻译的所有片段。如果您修改了项目的分割规则或从源中删除了文件,那么在匹配查看器中可能出现孤立字符串。这样的匹配指向源文档中不存在的片段,而是指向修改发生前的片段记录。

2. 重用翻译记忆

在创建项目时,项目的主 TM project_save.tmx 是空的。该 TM 文件会在翻译时逐步进行填充。要加快这个过程,可重用现有的翻译。如果指定的片段已翻译过一次且翻译正确,则无需再次翻译它们。翻译记忆还可以包含参考翻译:多国法律,例如欧共体的法律是个实际的例子。

OmegaT 项目中创建目标文档时,项目的翻译记忆将会在 OmegaT 项目根目录中输出三份文件(查阅之前的表述)。可将这三份 TMX 文件(-omegat.tmx-level1.tmx-level2.tmx)视为一份“导出的翻译记忆”,即当前项目的可导出双语形式。

如果希望复用之前某个项目的翻译记忆(例如新的项目与之前的项目非常相似,或者使用了之前可能用到的术语),您可以将这些用法记忆用作“输入翻译记忆”,也就是说导入您的新项目。在此情况下,可将这些译法记忆文件放置在新项目的 \tm\tm\auto 目录下:以前您将在模糊匹配查看器中获取来自这些翻译记忆的提示,现在开始将使用这些翻译记忆预翻译您的源文本。

默认情况下,\tm 文件夹位于项目的根文件夹中(例如: ...\MyProject\tm),但如果您想的话也可以在项目属性对话框中选择不同的文件夹。如果您频繁使用过去创建的翻译记忆,这将非常有用,比方说因为您一直在同一领域或为同一客户服务。在此情况下,有益的过程可能包括如下步骤:

  • 在硬盘上某个习惯的位置创建一个文件夹(“仓库文件夹”)以保存某个客户或者主题的翻译记忆。

  • 每当完成一个项目,将该三份“导出”翻译记忆从项目的根文件夹复制到仓库文件夹。

  • 当您为同一主题或者客户启动一个新项目时,在项目 > 属性 > 编辑项目对话框找到该仓库文件夹,将其选中为翻译记忆文件夹。

注意在程序启动时,/tm 仓库中的所有 TMX 文件将会被解析,因此将手头所有的 TMX 文件导入将会不必要地减慢 OmegaT 的运行。每当翻译记忆文件的内容已经转到 project-save.tmx 文件的时候,您可能要考虑移除那些不再需要的文件。

2.1. 导入和导出翻译记忆

OmegaT 支持导入 tmx 的 1.1-1.4b 版本(包括级别 1 和级别 2)。这样就可以在 OmegaT 中使用其他工具创建的翻译记忆。然而,OmegaT 不完全支持导入级别 2 tmx 文件(同时保存了译文和格式)。支持导入级别 2 tmx 文件并在 OmegaT 中看到它们的文本信息,但模糊匹配的质量会有所下降。

OmegaT在加载翻译记忆文件(TMX 文件)时遵循非常严格的过程。如果在文件中发现了错误,则 OmegaT 将提示问题文件中发现错误的位置。

已知有些工具在某些情况下会产生非法的TMX文件。如果您想在 OmegaT 中使用这样的文件作为参考翻译,您必须对它们进行修补,否则 OmegaT 会加载失败并报告错误。修补是琐碎的操作,OmegaT 将会在相关的错误信息中给您一些提示。如果遇到麻烦,可以向用户组垂询。

OmegaT 导出 1.4 版本的 TMX 文件(包括级别 1 和级别 2)。导出的级别 2 不是标准的级别 2,但是足以在支持 TMX 级别 2 的翻译工具中产生正确的匹配。如果您只需要文本信息(而不是格式信息),可以使用 OmegaT 创建的级别 1 文件。

3. 伪翻译记忆

注意

这些内容为感兴趣的高级用户准备的!

在翻译片段之前,您可能想以不同于 OmegaT 的其他方式预处理它们。例如,如果想创建伪翻译进行测试,OmegaT 能为您创建包含项目所有片段的附加 TMX 文件。该翻译记忆中的译文可以是:

  • 和原文相同的译文(默认)

  • 译文片段为空

翻译记忆文件的名称可以任意指定。通过下列命令行参数可生成伪翻译记忆:

java -jar omegat.jar --pseudotranslatetmx=<filename> [pseudotranslatetype=[equal|empty]]

把其中的 <filename> 替换为想创建的文件名,可以是绝对的也可以相对于工作目录(启动 OmegaT 的目录)。第二个参数 --pseudotranslatetype 是可选的。它的值可以是 equal(默认值,此时 source=target)或 empty(目标片段为空)。可以使用任何工具处理生成的 tmx 文件。要在 OmegaT 重用这个文件,请把它更名为 project_save.tmx 并放置到项目的 omegat 文件夹。

4. 更新翻译记忆

OmegaT 的早期版本只能将源文本按照段落切割成片段,而且对HTML和开放文档文件的格式标签编号时会出现前后不一致。OmegaT 2.5 可以实时检测并更新这样的 TMX 文件,以此提高模糊匹配的质量、提高现有翻译的水平,节省您手动完成此操作的时间。

项目的 TMX 只会更新一次,且会以更新过的格式写入 project-save.tmx,而每次项目被载入时都会对所继承的TMX文件进行更新。注意:在 OmegaT 2.5 中对文件过滤器的一些修改可能会导致完全不同的片段分割,因此在少数情况下您必须手动更新译文。