以前一直在断断续续地和老婆一起翻译 ICE 的手册。从 3.4.2 版开始,手册结构发生了很大的变化。为了跟上最新版,想用原来的记忆库将 3.4.2 重新翻译。遇到了不少问题,在此总结一下。
A、下载手册。下载手册,是比如好办的,直接 wget -r http://doc.zeroc.com/display/Ice/Ice+Manual 即可。
B、首先是机器本身的问题。换了 Windows 7 之后,原来的 TRADOS 7 Freelance 不好使了。每次打开 tageditor ,进入编辑状态,就出现内存访问异常。无论是在64位台式机中,还是在 32 位笔记本中,均如此。如果只好想办法升级。此问题,升级到 SDL Trados 2007 Suite Pro 后解决。
C、升级完成之后,是利用过去的记忆库自动翻译新的手册。遇到的问题第一个是找不到文件。50009 错误,找不到文件。
解决此问题的办法简单,将每个文件,加上一个后缀名 .html 即可。应该是由于 Trados 需要根据后缀来定位,用何种翻译模板。而下下来的文件,没有后缀,所以出错。这个得写一个简单的脚本来解决,这里用 PHP(如果在 Linux 下先处理好更好,命令也更简单,ls|awk '{printf "mv %s %s.html\n",$0, $0}'|sh) ,如下:
<?php /** * 将文件全部加上 .html 的扩展名 * */ $dir = "F:\\wamp\\www\\display\\Ice"; if (chdir($dir)) { $files = `dir $dir`; $files = explode("\n", $files); foreach ($files as $file) { $parts = preg_split("#\s+#", $file); $file = $parts[count($parts) - 1]; $fullfile = $dir . "\\" . $file; if (is_file($fullfile) && substr($fullfile, -5) != ".html") { echo $fullfile . "\n"; system("move " . $fullfile . " " . $fullfile . ".html"); } } } ?>
D、下一步加成功后,是自动翻译,也出错了。报错:(35075): Conversion from Code Page 0 to Unicode failed. (Code Page 0 is not valid.)
解决办法是将文件全部转换成为:UTF-16LE 这种格式就解决了。
<?php /** * 将文件全部转换成为 UTF-16LE编码 * */ $dir = "F:\\wamp\\www\\display\\pages"; if (chdir($dir)) { $files = `dir $dir`; $files = explode("\n", $files); foreach ($files as $file) { $parts = preg_split("#\s+#", $file); $file = $parts[count($parts) - 1]; $fullfile = $dir . "\\" . $file; if (is_file($fullfile) && strpos($fullfile, "utf-16") === false) { echo $fullfile . "\n"; if (!is_file($dir . "\\utf-16." . $file)) { $content = file_get_contents($fullfile); $content = iconv("UTF-8", "UTF-16LE//IGNORE", $content); file_put_contents($dir . "\\utf-16." . $file, $content); } } } } ?>
E、处理完之后,就是自动翻译了。