辛玉华 王哲
摘要:利用Passolo读取IL文件中的软件资源,进而修改其中的文本,并重新封装。利用这一功能我们可以把外文软件汉化成中文界面,方便软件的推广。
关键词:net framework;SDL Passolo;ilasm.exe;ildasm.exe;IL文件
中图分类号:TP3文献标识码:A文章编号:1009-3044(2012)05-1184-03
The First Attempt Localized an Software Base on .Net Frame
XIN Yu-hua1,WANG Zhe2
(1.Xingtai Xinguan Engineering and technology Co.,Ltd, Xingtai 054000, China; 2. Central South University, Changsha 410012, China)Abstract: Using Passolo reading software resources in the IL file, and then modify the text, and re-package. Using this feature we can translated into Chinese to facilitate the promotion of the software.
Key words: net framework; SDL Passolo; ilasm.exe; ildasm.exe; IL file
随着信息科学技术的推陈出新,功能强大的软件越来越多地发布出来。网络在软件的传播方面起着重要的作用,可是由于作者的国籍不同,软件界面的语言也不尽相同,使不同的语种的人们使用起来有一些困难。软件的本地化的需求就显得很迫切。
我们下面就对一个英文版的ftp(文件传输协议)软件的汉化做一次尝试。
1汉化的基本原理
在这里要汉化的软件是一个基于net framework架构的一个ftp软件,由于.NET FRAMWORK架构的特点,我们利用反编译软件ildasm对软件进行反编译生成(MSIL)微软中间语言,这是一组可以有效地转换为本机代码且独立于CPU的指令语言。然后使用SDL Passolo软件读取IL文件中的软件资源,进而修改其中的文本,使用编译软件ilasm进行编译重新封装成可以运行的EXE文件。
2做汉化之前的准备
2.1硬件
一台基于windows xp系统的普通计算机
2.2软件
2.2.1 SDL Passolo是目前世界上最流行的软件本地化专业工具之一
它支持众多文件格式,包括可执行程序文件、资源文件和基于XML的文件。文本可以被翻译为多种语言,包括亚洲语系(Uni? code码)以及书写方式为从右向左的语言,比如希伯来语和阿拉伯语。
在SDL Passolo中,翻译数据的编译、交换和处理都非常容易。使用它的模拟翻译功能可以在实际翻译之前检查软件是否适合进行本地化。Passolo包含多种所见即所得(WYSIWYG)编辑器来处理软件的用户界面,包括对话框、菜单、位图、图标和指针编
辑器。用户界面的处理非常安全,绝对不会意外删除或者改变现有的元素或结构。
2.2.2 ilasm.exe和ildasm.exe
ilasm.exe(中间语言编译器)从MSIL语言生成可执行文件。ildasm.exe(中间语言反编译器)把基于.NET FRAMEWORK框架的可执行文件转换为可以阅读的MSIL语言代码。
2.2.3 WinFormClient.exe
一个从网络上下载的开源的英文版的ftp软件。
3软件汉化的具体步骤:
3.1对要汉化的软件执行反编译。
先看一下原软件的英文界面(图1)。
运行ILDASM.EXE(如果安装有vs2005,则在C:Program FilesMicrosoft Visual Studio 8SDKv2.0Bin下有该文件)。
图1
读取WinFormClient.exe文件并转储到一个特定的文件夹下(本文设定文件夹是C: est)(图2)。
图2
保存.IL文件为test.il。
3.2准备进行汉化。
这时候就要使用我们的主要工具:SDL Passolo。这里选用的是SDL Passolo 2007。
①运行SDL Passolo 2007,新建一个项目:test1,保存于c:object文件夹中,并添加源文件,即为C: est est.il。
②在弹出的源列表属性中点击“代码页”的下拉框,选择“936简体中文”,“文本语言”下拉框,选择“中文(.NET简体)”,确定。(图3)
图3
③在方案设置窗口,点击“添加语言”,“语言”下拉框,选择“中文(.NET简体)”,“代码页”选为“936简体中文”,确定。④在“全部字符串列表”栏,会看到文件名为“testchs.il”的一行,双击后生成“打开字串列表”。
⑤在“字串列表”子窗口,参照英文界面,进行翻译并保存。
图4
⑥在“全部字符串列表”栏,选中“testchs.il”行,点击右键,“生成目标文件”。在C: est目录下生成testchs.il文件。
3.3使用ILASM软件进行封装。
把C: est目录下生成test.il文件更名为test1.il,把testchs.il更名为test.il。
在命令行窗口,运行ILASM,具体格式“C:WINDOWSMicrosoft.NETFrameworkv2.0.5ilasm.exe /EXE C: est est.il”。
在C: est中生成test_Output.exe
运行test_Output.exe,即为图5:
图5
4总结
经过这次软件的汉化,是不是感觉很简单?其实在实施汉化之前,一些基本的软件编程常识还是要了解一下的,例如.NET的通用语言框架机制(Common Language Runtime, CLR)以及面向对象编程的软件中的元素。
同时也认识到:
1)在操作软件汉化前要做好备份。由于操作的过程中,修改的标签比较多,难免会有操作错误的时候,这时及时的备份会救我们于水火之中,使我们保持一个清晰的头脑,完成汉化任务。
2)因为软件涉及到知识产权保护,所以在汉化时一定要注意保护好原作者的权益。我国《著作权法》第45条规定,除著作权法另有规定外(如为个人学习、研究、欣赏,用于课堂教学和科学研究等),未经著作权人许可,以改编、翻译、注释、编辑等方式使用作品的,视为侵权行为。这一点是很重要的,以免引起不必要的麻烦。