内容


本地化中的 XML

通过 TM 和 TMX 重用翻译

在 XML 标准的帮助下减少翻译的时间和劳动量

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: 本地化中的 XML

敬请期待该系列的后续内容。

此内容是该系列的一部分:本地化中的 XML

敬请期待该系列的后续内容。

翻译存储(Translation memory,TM)是一种支持文档片段(句子、段落或短语)翻译的语言工具,方法是在数据库中搜索类似的片段并建议数据库中发现的匹配。

TM 是现代计算机辅助翻译(CAT)工具的基本组成部分。它在翻译行业中非常普及,以至于人们常常用“翻译存储工具”代替“计算机辅助翻译工具”。但是,这些术语不应该互换,因为 CAT 技术还包括机器翻译(一种基于语言学规则并使用双语词典的计算机技术)。

TM 系统记住翻译人员输入的翻译。当翻译人员处理类似的文本时,系统提供以前保存的版本。这样在处理重复性文本如技术手册时可以节约大量的时间,还有助于保证术语的一致性。

搜索类型

从本质上说,TM 系统就是一种搜索引擎,专门执行两种类型的搜索:

  • 精确搜索: 从数据资料库中检索和搜索文本匹配的记录。
  • 模糊搜索: 从数据资料库中检索和搜索文本在一定程度上(查询中指定)类似的记录。

模糊搜索的相似程度称为匹配质量。其定义因不同的 TM 系统实现而异。

相似性常常用 Levenshtein 距离来衡量,指的是俄国科学家 Vladimir Levenshtein 在 1965 年发明的算法。根据 Levenshtein 距离可以计算将一个短语转化成另一个短语时需要执行的插入、删除和置换的次数。比如,要将“magazine”变成“magazines”,只需要输入一个字符(“s”), 因此它们之间的距离是“1”。八个字母中取一就是 12.5%(距离通常相对短语来计算),因此采用这种方法的 CAT 工具用 87.5% 来表示这两个词之间的相似性。

Levenshtein 算法非常实用,但是还不够好。比如,翻译人员会说下面两个句子的含义是相似的:

  • “冰激淋:巧克力加香草”
  • “冰激淋:香草加巧克力”

但是,计算将一个短语转换成另一个短语所需击键次数的程序会说这两个句子完全不同,不可能从数据库中提供翻译。重新安排单词需要太多的击键次数。

对于英语或法语这样的语言,很容易划分组成句子的单词,从而能够在度量相似性时考虑单词的顺序。但是像汉语或日语这样单词之间没有空格的语言,很难超越 Levenshtein 距离。

要提供更好的匹配,关键在于 TM 引擎将每段分解成很小的切片,将其在数据库中保存为很大的片段集合。这样做的缺点是数据存储要求很多时间和工作量建立正确的索引。无论如何,搜索片段比完整文本搜索和相似性计算加起来要快得多。

在翻译过程中,常常需要随着翻译的文档改变翻译存储。因为翻译过程中不同的参与者可能使用不同的 TM 系统,于是建立了一个 TM 数据交换标准。

可重用容器/内容开放标准(Open Standards for Container/Content Allowing Re-use,OSCAR)组织定义了翻译存储交换(Translation Memory eXchange,TMX)(请参阅 参考资料),作为一种通用标准,它允许用户在使用不同的 CAT 工具或者面对不同的翻译提供者时更有效地重用翻译文本。

TMX:翻译存储交换

Localisation Industry Standards Association(本地化行业标准协会,LISA)网站上给出了 TMX 的正式定义:

TMX (Translation Memory eXchange) 是一种厂商中立的、开放式 XML 标准,用于交换计算机辅助翻译(CAT)和本地化工具创建的翻译存储(TM)数据。TMX 的目的是促进工具和/或翻译厂商之间的翻译存储数据交换,在这一过程中不损失或很少损失重要的数据。

可以使用一些完整的翻译工具。翻译人员可以选择专用于一般文档、软件本地化、技术手册或说明书等等的工具。如果使用两种或更多的工具,就需要能够跨工具重用翻译存储,这就是 TMX 的用武之地。翻译存储是很有价值的资产,将其捆绑到私有数据库格式上是不好的做法。TMX 这样的开放标准可以帮助翻译人员、翻译机构和需要本地化的公司在一定程度上独立于工具厂商。

TMX 详解

TMX 文档是根元素为 <tmx> 的 XML 文档。<tmx> 元素有两个孩子:<header><body>

关于 TMX 文档的一般信息在 <header> 元素的属性中描述。其他信息则由 <note><ude><prop> 元素提供。

TMX 文档的主要内容保存在 <body> 元素中。它由一组翻译构成,这些翻译放在翻译单元元素(<tu>)中。每个翻译单元包含一种或多种语言的文本,这些文本放在翻译单元变量元素(<tuv>)中。

TMX DTD 允许 <tu> 包含单个 <tuv> 元素,但是这样做没有什么意义。只有当有助于从一种语言翻译成另一种语言时,片段才有意义,因此 <tu> 元素中的最少语言个数应该是 2。

翻译单元变量的文本包含在 <seg> 元素中。所有从源文档继承的格式化信息都保存在 行内(inline) 元素中。表 1 列出了所有的行内元素。

表 1. 行内元素
元素描述
<bpt>成对起始标签: 用于确定本机代码成对序列的开始之处。片段中每个 <bpt> 都有一个对应的 <ept> 元素。
<ept>成对结束标签: 用于确定本机代码中成对序列的结束之处。翻译单元中每个 <ept> 都有一个对应的 <bpt> 元素。
<hi>突出显示: 划分具有特殊含义的文本段,如术语单元、固定名词或者不能改变的项。可用于不同的处理任务,比如告诉机器翻译工具不应翻译的固定名词;用语术语验证,进行语法检查后标记有疑问的表达方式。
<it> 孤立标签: 用于分隔翻译单元中没有对应开始/结束标记的本机代码的开始/结束序列。
<ph>占位符:用于分隔翻译单元中原来独立的代码序列。
<sub>支流: 用于分隔本机代码序列中的支流文本,如脚注定义或者 HTML 锚元素中的标题文字。
<ut>未知标签: 用于分隔片段中未知的本机代码序列,建议不要使用该元素。

行内标签依赖于原始文档的格式。在 HTML 中,粗体文本用起始和结束 <b> 标签分隔,保存到 TMX 文档时这些标签可以放在 <bpt>/<ept> 对中。在 Rich Text Format (RTF) 中,粗体文本以“\b”开始,用“\b0”结束或者省略,因此正确的 TMX 行内标签是 <ph>。聪明的 CAT 工具可以重用不同格式的翻译,虽然可能采用不同的标记。

图 1 显示了包含英语、西班牙语和汉语记录的 TMX 文档,图 2 则用 TMX 编辑器打开了同一个文档。

图 1. 示例 TMX 文件
示例 TMX 文件
示例 TMX 文件
图 2. 用 TMX 编辑器打开的示例文件
TMX 编辑器
TMX 编辑器

图 1 中,<header> 元素包含 srclang 属性。该属性的有效值包括 "*all*" 一级所有翻译单元中表示的语言代码。如果 srclang 属性设置为某种特殊的语言,则该文件主要用于单向翻译:从源语言到另一种语言。如果文件可用于任何方向的翻译,则使用 "*all*",从一种语言到任何其他语言,并非所有 CAT 工具都能做到。

TMX 层

使用 TMX 文档可以在两个层次上交换翻译存储:

  • 第 1 层: TMX 文档中只包含可翻译的文本,不考虑格式化信息。这意味着 <seg> 元素不含任何行内标签。
  • 第 2 层: TMX 文档中包括文本和标记信息,使用行内标签携带格式化信息。

从理论上说,任何在第 2 层上支持 TMX 的工具都能够使用其他兼容第 2 层的工具生成的标签,但事实上实现的差异意味着这类标签不能重用。

所有主流的 CAT 工具都支持 TMX 标准,但仍然存在一些兼容性问题:

  • 有些工具不使用 XML 解析器。结果,完全合法的 TMX 文档可能被拒绝,比如将没有孩子的头元素写作 <header /> 而不是 <header></header>
  • 少数 CAT 工具生成的 TMX 文件不是有效的 XML 文档。最常见的陷阱是错误地包含了控制字符(XML 标准不允许使用控制字符)而不是实体。
  • 一些程序只支持旧版本的 TMX。TMX DTD 的当前版本是 1.4b, 但是很多工具仍然使用 1.1 版。
  • 还有一些工具不支持多语言 TMX 文档,每个文件中支持的语言最多只能是两种。

本文所提供的用于验证 TMX 文件的简单 Java 工具的源代码,可以从 参考资料 中下载。

文档校准

归功于称为校准的过程,从而能够重用不属于 TM 引擎的翻译。校准工具需要两个文件,原文档和译文,以生成能够导入 TM 系统的 TMX 文件。简单的校准方法如下:

  1. 将原文件和翻译文件转化成 XLIFF 格式。详请参阅 本系列的第二篇文章
  2. 从新生成的 XLIFF 文件的所有翻译单元中读入 <source> 元素,创建两个列表,每个文件一个。
  3. 创建一个空白 TMX 文件。
  4. 遍历生成的列表,将列表中的元素作为 <tuv> 添加到 TMX 文件中。
  5. 使用 TMX 编辑器修正由于不同语言句子结构的一般差别造成的所有未对准的地方。
  6. 将得到的 TMX 文件导入 TM 系统。

上述过程校准的是两个 XLIFF 文件而不是原文档。原来的格式化信息转化成 XLIFF 行内标签,然后可以包装到 <ph> 元素中。以这种方式校准文档的好处是,得到的片段可用于任何兼容 XLIFF 的工具,不需要经过复杂的、容易出错的标签转换。

校准校正过程的结果依赖于翻译的质量。如果校准的文档有相同或者类似的结构,不需要多少修改就能恢复翻译并重用。如果使用 CAT 工具执行翻译,通常会保留结构和格式。

用 TMX 管理术语表

本系列的第一篇文章中曾经提到,TermBase eXchange (TBX) 适合用作术语表的 XML 格式。不管怎么说,TMX 也可以用来创建和维护多语言的术语表。

TMX 包含的 <prop><note> 元素可用于向文档中添加术语信息。

清单 1 说明了如何使用 TMX DTD 中的元素来注解带有术语表数据的 TMX 文件。

清单 1. 带有术语表的 TMX 文件
<?xml version="1.0" encoding="UTF-8" ?>
<tmx version="1.4">
  <header adminlang="en" 
     creationtool="Heartsome Dictionary Editor" 
     creationtoolversion="1.0" 
     datatype="tbx" 
     o-tmf="unknown" 
     segtype="block" 
     srclang="en"/>
  <body>
    <tu origin="tbx" tuid="1108600011738">
      <tuv xml:lang="en">
        <prop type="administrativeStatus">admittedTerm-admn-sts</prop>
        <prop type="termType">entryTerm</prop>
        <prop type="usageNote">Colloquial use term</prop>
        <note>Informal salutation</note>
        <seg>Hello</seg>
      </tuv>
      <tuv xml:lang="es">
        <prop type="administrativeStatus">admittedTerm-admn-sts</prop>
        <prop type="termType">entryTerm</prop>
        <prop type="usageNote">Termino de uso coloquial</prop>
        <note>Saludo informal</note>
        <seg>Hola</seg>
      </tuv>
    </tu>
  </body>
</tmx>

编写 TMX 规范的团队指出,TMX 标准对于管理术语表数据还不够,因此创建了 TBX 标准。这一新标准更适合创建和维护词典、术语表,但是对于初学者而言,TMX 不失为一种不错的替代品。

必须要指出,TMX 和 TBX 都是基于 XML 的,因此可以通过 XSL 转换把数据从一种格式转化成另一种格式。

无论术语表采用 TMX 还是 TBX 格式,CAT 工具都可以以类似机器翻译的方式用它提供部分翻译。我曾经说过,保证高质量匹配的最佳方法之一就是将翻译文本分解成非常小的小片。如果很多片段与数据库记录的相似百分比超过要求,就从 TM 数据库中提取译文。类似地,如果一定数量的片段和术语表记录中的所有片段完全匹配,也可以检索部分译文。

从术语表中提取部分译文——通常是句子中的少量词汇,然后以明确的方式提供给翻译人员,可以在整个文档中保证术语的一致性。

结束语

本文介绍了翻译存储的重要性及其在本地化行业中的应用,强调了 TMX 在不同的 TM 实现之间传递翻译数据的适用性。

还简要介绍了用于恢复遗留翻译的校准过程,示范了如何使用其他相关标准如 XLIFF 来帮助解决常见的问题。


下载资源


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=XML
ArticleID=58275
ArticleTitle=本地化中的 XML: 通过 TM 和 TMX 重用翻译
publish-date=03012005