第 14 章 翻译记忆
上一页 |  | 下一页

# 第 14 章 翻译记忆

## 1. OmegaT 中的翻译记忆

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

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

omegat 文件夹

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

项目主文件夹

  项目主文件夹中包含 3 个 tmx 文件：`project_name-omegat.tmx`，`project_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 中对文件过滤器的一些修改可能会导致完全不同的片段分割，因此在少数情况下您必须手动更新译文。

上一页 |  | 下一页
第 13 章 处理纯文本 | 起始页 | 第 15 章 源片段