自己开发了一款CAT软件

| 分类 技术随笔  | 标签 CAT 

商业CAT软件太贵,作为一个有版权意识的人,我都用的免费版CAT软件。雪人CAT只支持TXT格式,但基本够用。OmegaT我也有了相当的研究,但用起来总归没有雪人CAT顺手。

在给出版社翻译indesign制作的童书时,我是直接从成品PDF导出文本,调整文本后再用markdown的标记添加标题等信息,最后用pandoc转换为word供排版人员排版。这时我发现雪人CAT生成的TXT文件会删去多余的空行,而markdown是以空行区别段落的。说明生成译文这一步雪人还是有略去原文的一些格式信息。但是因为我无法修改雪人CAT,只好直接去处理生成的译文。另外雪人CAT的搜索替换对正则的支持不加,不能在替换内容中使用正则。

后来我又尝试直接翻译idml文件,因为很多出版物并不是一段一段文字这样排下来的,比如一张介绍角色的图片,边上会有各个角色的题注,这样不方便排版人员对应译文和需要充填的内容。而且如果CAT软件可以自动替换译文,那也可以省掉不少排版的工夫。

CAT软件对于indesign文件的支持,我在前文中讲过,商业CAT软件对idml的支持尚佳,memoq表现得很不错。而okapi+omegat在翻译时碰到的标签太多,而标签一旦不对,就会影响目标文件的正确生成。另一款CAT软件CafeTran则完全没有对story文件进行排序,而且它的界面太难看了。

我感到有必要写一款能够自己控制的CAT软件。Omegat用java开发,修改稍有困难,而且在别人的基础上改很难有大的创新。于是我选择B4J重新开发一款。B4J将Basic语言转换为Java,生成Java程序。我们可以方便地利用javafx库开发跨平台的桌面应用。

经过一个月的开发,软件目前有以下功能:

  • 翻译记忆
  • 术语管理
  • 语言检查
  • 交互式机器翻译
  • 支持常见机器翻译服务的API调用
  • 支持常见源文件格式:txt, idml
  • 支持使用Git进行版本控制

因为使用的是Basic语言,所以软件名字暂定BasicCAT。我打算开放源代码,相信通过易于学习的Basic语言,即使是普通的译员也可以定制出适合自己工作流程的CAT软件。现在代码公开在此处:https://github.com/xulihang/BasicCAT,不过我还没确定用什么开源许可证。

对于软件的实现细节,我也会写相应的开发日记,供大家参考和批评。


上一篇     下一篇