以前一直在断断续续地和老婆一起翻译 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、处理完之后,就是自动翻译了。