unity tmx
翻译记忆库(TM)是一种语言技术,可通过在数据库中搜索相似的句段并建议在数据库中找到的匹配项来翻译文档的句段(句子,段落或短语)。
TM是现代计算机辅助翻译(CAT)工具的基本组成部分。 在翻译行业中,它变得如此普遍,以至于经常使用术语“翻译记忆工具”代替“计算机辅助翻译工具”。 但是,这些术语不应互换使用,因为CAT技术还包括机器翻译 ,基于语言规则的计算机技术和双语词典的使用。
TM系统会记住由人工翻译者输入的译文。 当翻译人员需要处理类似的文本时,系统会提供以前保存的版本。 当翻译人员处理诸如技术手册之类的重复文本时,这可以节省大量时间,并且还可以帮助实现术语的一致性。
搜索类型
TM系统基本上是搜索引擎,专门执行两种搜索:
- 精确搜索:仅从数据存储库中检索与搜索文本匹配的条目。
- 模糊搜索:从数据存储库中检索在某种程度上类似于查询中指定的搜索文本的条目。
模糊搜索的相似度称为匹配质量 。 其定义随每个TM系统的实现而变化。
相似度通常使用Levenshtein距离来衡量, Levenshtein距离是指俄罗斯科学家Vladimir Levenshtein在1965年编写的算法。使用Levenshtein距离,您可以计算将一个词变成另一个词所需的插入,删除和替换的次数。 例如,要将单词“ magazine”更改为“ magazines”,请键入一个字符(“ s”),它们之间的差为“ 1”。 八个字符中的一个字符代表12.5%(通常与源短语相差),因此使用此方法的CAT工具将表明两个单词之间的相似度为87.5%。
Levenshtein算法非常实用,但不够实用。 例如,人类译者可以说出以下两个句子的意思相似:
- “冰淇淋:巧克力和香草”
- “冰淇淋:香草和巧克力”
但是,一个计算将一个短语转换为另一个短语所需的击键次数的程序会说这些句子完全不同,并且可能无法提供数据库的翻译。 重新排列单词需要太多的击键。
使用英语或法语这样的语言,很容易将组成句子的单词分开,从而可以在测量相似性时考虑单词顺序。 但是,中文或日语之类的语言单词之间没有空格,因此很难超越Levenshtein的距离。
提供更好匹配的关键在于TM引擎能够将每个段分成非常小的片段,并将它们作为大量片段存储在数据库中。 这样做的缺点是数据存储需要花费大量时间和精力进行正确的索引编制。 但是,搜索片段比结合相似度计算的全文搜索要快。
在翻译过程中,通常需要将翻译记忆库与要翻译的文档一起转移。 由于过程中的各个参与者可能具有不同的TM系统,因此创建了TM数据交换的标准。
集装箱开放标准/内容允许再利用(OSCAR)组定义翻译记忆交换(TMX)(请参阅相关信息 )作为一个通用的标准更有效地允许用户重复使用的文字与不同的CAT工具或翻译供应商合作时。
TMX:翻译记忆库交换
在本地化行业标准协会(LISA)网站上显示的TMX的正式定义指出:
TMX(翻译记忆库交换)是与供应商无关的开放XML标准,用于交换由计算机辅助翻译(CAT)和本地化工具创建的翻译记忆库(TM)数据。 TMX的目的是允许在工具和/或翻译供应商之间更轻松地交换翻译记忆库数据,而在此过程中不会丢失或丢失关键数据。
有几种完整的翻译工具可为您提供帮助。 译者可以选择专门用于一般文档,软件本地化,技术手册或手册的工具。 当翻译人员需要使用两个或更多工具时,必须具有跨工具重用翻译记忆库的能力。 这就是TMX成为英雄的地方。 翻译记忆库是宝贵的资产,将其与专有数据库格式绑定是一个坏主意。 像TMX这样的开放标准为翻译人员,翻译机构和需要本地化的公司提供了与工具供应商的合理程度的独立性。
TMX详细
TMX文档是XML文档,其根元素为<tmx>
。 <tmx>
元素包含两个子元素: <header>
和<body>
。
<header>
元素的属性中描述了有关TMX文档的一般信息。 <note>
, <ude>
和<prop>
元素中提供了其他信息。
TMX文档的主要内容存储在<body>
元素内。 它包含翻译单元元素( <tu>
)中包含的翻译集合。 每个翻译单元在翻译单元变体元素( <tuv>
)中包含一种或多种语言的文本。
TMX DTD将允许<tu>
包含单个<tuv>
元素,但这没有多大意义。 当段有助于将一种语言翻译成另一种语言时,它是很有价值的,因此<tu>
元素中的最小语言数应为两种。
翻译单元变体的文本包含在<seg>
元素中。 从源文档继承的所有格式信息都保留在内联元素中。 表1中描述了所有内联元素。
表1.内联元素
元件 | 描述 |
---|---|
<bpt> | 起始配对标签:用于分隔一对本机代码序列的开始。 每个<bpt> 元素在段中都有一个对应的<ept> 元素。 |
<ept> | 结束配对标签:用于分隔一对本机代码序列的结尾。 每个<ept> 在段中都有一个对应的<bpt> 元素。 |
<hi> | 突出显示:界定具有特殊含义的一段文本,例如术语单位,专有名称或不应修改的项目。 它可以用于各种处理任务-例如,向机器翻译工具指示哪些专有名称不应被翻译; 为了进行术语验证,它可以在语法检查后标记可疑表达。 |
<it> | 隔离标签:用于分隔本机代码的开始/结束序列,该代码在段中没有相应的结束/开始。 |
<ph> | 占位符:用于在段中定界本机独立代码的序列。 |
<sub> | 子流:用于在一系列本机代码内定界子流文本,例如,HTML锚元素中的脚注定义或标题文本。 |
<ut> | 未知标签:用于在段中定界本机未知代码的序列。 此元素已被弃用。 |
内联标签取决于原始文档的格式。 在HTML中,粗体文本用<b>
标记开头和结尾定界,并且保存在TMX文档中时,这些标记可以用<bpt>
/ <ept>
对括起来。 在RTF格式中,粗体文本以“ \ b”开头,并且可选地以“ \ b0”结尾,因此要使用的正确的TMX内联标记为<ph>
。 聪明的CAT工具可以重用来自不同源格式的翻译,尽管标记存在差异。
图1显示了带有英语,西班牙语和中文条目的TMX文档示例,而图2显示了在TMX编辑器中打开的同一文档。
图1.示例TMX文件

图2.在TMX编辑器中打开的示例文件

在图1中 , <header>
元素包含srclang
属性。 此属性的有效值为"*all*"
或所有翻译单元中都存在的语言代码。 当srclang
属性设置为特定语言时,该文件仅用于在一个方向上进行翻译:从源语言到另一种语言。 当文件可用于以任何方向(从任何一种语言到任何其他语言)进行翻译(并非所有CAT工具都能做到)时,将使用值"*all*"
。
TMX水平
您可以使用TMX文档在两个级别上交换翻译记忆库:
- 级别1: TMX文档中仅包含可翻译的文本,而忽略了格式设置信息。 这意味着
<seg>
元素不包含任何内联标签。 - 级别2:文本和标记信息包含在TMX文档中。 内联标签用于承载格式信息。
从理论上讲,任何在第2级支持TMX的工具都应该能够使用由其他第2级兼容工具生成的标签,但是在现实世界中,实现上的差异意味着无法重复使用标签。
当前,所有主要的CAT工具都支持TMX标准,但是仍然存在一些兼容性问题:
- 一些工具不使用XML解析器。 结果,例如,如果将没有子元素的标头元素写为
<header />
而不是<header></header>
,则可以拒绝完全有效的TMX文档。 - 一些CAT程序生成的TMX文件不是有效的XML文档。 最常见的陷阱是错误地包含了控制字符(XML标准不允许)而不是实体。
- 某些程序仅支持旧版本的TMX。 TMX DTD的当前版本为1.4b,但是许多工具仍可与1.1版一起使用。
- 其他工具不支持多语言TMX文档,并将每个文件允许的语言数量限制为两种。
本文随附了用于验证TMX文件的简单Java工具的源代码- 有关下载的详细信息,请参阅参考资料 。
文件对齐
多亏了称为alignment的过程,您仍然可以重用不属于TM引擎的翻译。 对齐工具需要两个文件(一个原始文档及其翻译)来生成可以导入TM系统的TMX文件。 一个简单的对齐方法可能如下所示:
- 将原始文件和翻译文件转换为XLIFF格式。 有关此过程的详细信息,请参阅本系列的第二篇文章 。
- 从新生成的XLIFF文件的所有翻译单元中读取
<source>
元素,并创建两个列表,每个文件一个。 - 创建一个空的TMX文件。
- 遍历列表,将每个列表中的元素作为
<tuv>
元素添加到TMX文件中。 - 使用TMX编辑器来纠正所有不同语言的句子结构中正常差异引起的所有对齐问题。
- 将生成的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转换将数据从一种格式转换为另一种格式。
CAT工具可以使用TMX或TBX格式的词汇表,以类似机器翻译的样式提供部分翻译。 我之前提到过,确保高质量匹配的最佳方法之一就是将要翻译的文本分成很小的一部分。 当高于所需相似性百分比的多个片段与数据库条目匹配时,将从TM数据库中提取翻译。 以类似的方式,当一定数量的片段与词汇表条目中的所有片段完全匹配时,可以检索部分翻译。
从词汇表中提取部分翻译(通常是一个句子中的几个单词),并以清晰的方式将其呈现给翻译人员,这有助于翻译人员在整个文档中实现连贯性。
摘要
本文解释了翻译记忆库的重要性以及本地化行业如何使用它们,并着重强调了TMX格式在不同TM实现之间传输翻译数据的相关性。
我还简要介绍了用于恢复旧版翻译的对齐过程,说明了如何使用其他相关标准(例如XLIFF)来帮助解决一个常见问题。
翻译自: https://www.ibm.com/developerworks/xml/library/x-localis3/index.html
unity tmx