Ice 翻译遇到的一些非Ice技术问题

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

你可能感兴趣的:(分布式,翻译,ICE,手册,Trados)