【舍得按】本文原载于舍得英语魔法学苑,首发时间为2010年5月15日。

 

最近汉化UX,对.net软件的汉化着实花了点时间去了解.跟以往汉化SuperMemo2008或2006不一样,那是Delphi编的,只要祭出汉化工具Passolo,就能直接读取其中的RC数据,基本上一个工具可以通杀了.
.net的汉化首先需要反编译,原先,舍得是老老实实地用微软的ildasm来反编译,汉化完成后再用ilasm编译回去.后来碰到了一款叫DotNetHelper的小工具,发现用它来进行编译与反编译,效率要高上很多.
反编译结束后,便要找相应的文件进行汉化,最直接的莫过于三种文件:.il文件,.resource文件和.xml文件.要根据实际的情况来定.像SuperMemoUX,它是把GUI相关的部分内容放到后两种文件中的,要分别进行汉化,而UX的插件,则要直接汉化.il文件.

  • .il文件可以用记事本程序直接打开,然后找ldstr所在的代码段就行了,但不是所有的ldstr都可以翻译的,翻译错误的话,将直接导致编译后的程序出错;
  • .resources文件的打开要费点事,舍得用过最好的工具是SharpDevelop,但事实上在之前UX的汉化中,大部分的工作是由一个叫Resourcer的小工具完成的,它的作者叫Lutz Roeder. 不过最近舍得从3.7G的VS2008镜像中挖出了一个叫RESGEN的小工具,可以直接帮我将UX反编译后的资源文件转化为可编辑的XML格式文件,然后,借助于HeartSome的这款高效率的翻译工具,汉化起来顺手多了。
  • .xml的汉化之前没找到合适的工具,舍得是手工一句一句进行翻译的,直到最近发现了Heartsome XLIFF Translation Editor这款工具(有中文版),唉,真是相见恨晚哪.下面就重点讲讲这个工具的用法.

Heartsome XLIFF Translation Editor翻译记忆库的制作:

  • 其实好简单的,在EXCEL中建两列,一列原文,一列译文,然后存成CSV格式,用emeditor打开这个文件,另存为UTF-8的编码(不然会有乱码);
  • 用XLIFF Translation Editor的插件CSVConverter打开CSV文件,设置好源语言和目标语言(就是对应的原文和译文),然后转换为TMX格式;
  • 在XLIFF Translation Editor新建一个翻译记忆库,然后导入TMX文件,翻译记忆库就制作完成了.感觉比TADOS要灵活许多;

然后我们来看如何翻译XML文件:

  • 首先点XML转换器配置,分析XML样本,这里面的具体设置要根据你的XML来定,比如UX中的这个文件有<en>这样的标签,我只要这个文本,那就把它标为segment,内联类型选x-entry,其它都标为ignore,这样程序就会乖乖地为你读取只包含<en>标签的文本了.
  • 然后点"转换文件为XLIFF格式",分别设置源文件和目标文件,文件类型选XML(document)(上一步若没做,此处会出现错误提示),设置好语言和代码页,下边的目标语言和翻译记忆库也可以一并设置好,值得提醒的是,源语言和目标语言必须和翻译记忆库中的设置相对应,不对应的话,是无法调用自动翻译的.
  • 设置完后,点"转换为XLIFF格式",程序就会开始转换了.
  • 转换后的文件,便可以利用翻译记忆库开始翻译,翻译的过程就不细讲了,翻译结束后,可以将文件转换回XML格式,你会发现,跟你原来的格式完全一样,只是你要翻译的地方,已经用译文来代替.这个工具真的很棒!

.net程序的汉化根据目标软件的不同,会有很多种变化,舍得这里只是拉杂记载了一下自己在汉化过程中的些许心得,希望能够给做类似工作的童鞋一些提示.

 

本文版权归舍得英语魔法学苑所有,欢迎转载,转载请注明作者和出处。谢谢!
作者:舍得
首发:http://emagic.org.cn