张萌 北京大学语言信息工程系2010 级计算机辅助翻译硕士研究生
《全球化与本地化》2012年第一期
使用 SDL Trados 2009 翻译PDF 文件(将其转为Word 后翻译)时,经常遇到翻译完成后无法生成/导出目标翻译文件,并提示如图 1 所示的有关扩展函数“MoveToLastChild”的错误信息:
这种事故发生的频率较高,应急处理办法之一是将源文件粘贴成纯文本,用翻译记忆库(TM)自动翻译一遍,导出没有排版格式的Word 文件,再对照源文件重新排版。这种方法增加了相当大的额外工作量,所以不是好的解决方法。
为了解决这一问题,我在线搜索了较多内容,从Proz 网站发现一篇有价值的内容,提供了切实可行的解决方案。链接为:
http://www.proz.com/forum/sdl_trados_support/186130-error%3A_move_to_last_child_inner_exception.html
由于该链接给出的方法和内容比较简略,步骤不够清晰,因此,特此写本文进行详细说明。
有关“MoveToLastChild”错误的形成原因,不在本文讨论之列。这是 Trados 2009 设计中的 bug之一。
SDL Support 公司的 Paul 给出的解决方案原帖为(图 2):
鉴于很多翻译人员不熟悉解决的流程,根据我的操作经验详解如下:
假设文件1.docx 是问题文件(常常是从1.pdf 转换格式得来的)。
在项目翻译完成后,发现无法导出或生成目标翻译,并提示“MoveToLastChild”错误信息(图 1)。
此时,请复制1.docx。假设将其重命名为1-Retrans.docx 文件。如图 3 所示。
打开 Trados 2009。
注意:此时切勿使用“文件 > 新建 > 项目”来创建文件。请使用“打开文档”,直接打开1-Retrans.docx 文件。(图 4)
注意:千万不要保存!
说明:据我推测,”MoveToLastChild”错误信息的形成原因是项目文件*.sdlproj 中的编码出错。所以不保存便可以绕开这个问题。由于之前对1.docx 已做过的所有翻译已经提交TM 库,所以可以用TM 将1-Retrans.docx 快速自动翻译一遍。(图 5)
注意:不要使用“预翻译”功能,因为该功能只能“保存”后使用。
遇到空白或非100% match 的句段(图 6、图 7),可对照原文查找原因,根据具体情况合并、拆分句段或修改译文。
图 7 翻译中的非100%匹配
将全文使用翻译记忆库文件(TM) 自动翻译之后,用“文件 > 另存译文为”将译文保存为 Word 文件(图 8)。
由于过程中没有做“保存”动作,没有生成 *.sdlproj 文件,故此时不会出现调用扩展函数“MoveToLastChild”的错误提示,因此,可以顺利得到所需的翻译目标语言文件。