软件汉化教程
来源:互联网 发布:淘宝清仓在哪里 编辑:程序博客网 时间:2024/04/30 04:16
看到网上经常有人问汉化方面的东西,我今天也来灌水一篇,来个汉化扫盲教程。写的不好的地方欢迎大家指正!OK,现在我们进入正题。我这里所说的汉化,是指汉化 Windows 下的 PE 文件,把其他语言界面的程序翻译为中文界面。要汉化一个软件,一般的流程是这样:
一、检测软件是否加了壳。
汉化一个软件前我们首先要做的就是要看看软件是否加了壳。因为程序加了壳后,一般情况下资源也被压缩了,使用普通的汉化工具是无法汉化的。这时一般有两种办法:一种是完全脱壳后再汉化,这种方法可以汉化的比较彻底;另一种是壳太猛,不好脱,只好退而求其次,用 freeRes 这样的工具来释放一下资源,再来汉化。这种方法只能汉化标准资源,一般就是主界面看到的部分,非标准资源因为未脱壳,还是无法汉化,所以这种方式汉化的不彻底。平常我们看到的汉化软件一般都是完整的汉化,就是有壳的脱了壳,标准资源和非标准资源都汉化了。这里脱壳后的文件优化也要注意,平常我们分析软件的时候,只要脱了壳,程序能正常运行,没有功能丢失就可以了,但要能汉化的话要求要严格一些。因为要使用一般的汉化工具来汉化程序的话,最好脱壳后程序的资源段(一般区段名称是 .rsrc)要放在最后,这可以使用 FixRes 或 freeRes 这样的工具来重建资源。另外,平常我们把脱壳后的程序优化时可以用 LordPE 删除垃圾区段,再重建一下。但若要用汉化工具来汉化这种用 LordPE 优化重建后的程序,很可能生成的汉化程序运行时会出错。如果你要会手工优化的话那是最好,可以删除垃圾区段,根据文件对齐粒度和区段对齐粒度等来优化文件,这样手工优化后的文件一般汉化时不会出错。关于优化脱壳后文件这方面也有相关文章,我就不多说了。改天若有空我会专门写一篇这样的文章,不过不要过于期待,我向来喜欢开空头支票的
如果不会手工优化,可以在脱完壳重建资源后就用汉化工具来汉化,汉化完成后再用 LordPE 这样的工具来优化一下汉化后的程序就可以了。
二、检测程序资源类型。
检测程序资源类型我们同样可以用 PEiD、FI 这样的工具,主要是看程序是用什么开发工具写的。各个开发工具编译出来的程序标准资源类型是不同的。一般可以分以下几种:
4、上面说的主要是标准资源,再说一下一般定义的非标准资源。非标准资源一般简称为非标,指在程序中出现,但又不在标准资源中的 UNICODE 字串或 ASCII 字串,这类字串汉化需要其他的工具。
判断完程序是什么开发工具做的,我们就对资源类型大致有数了。下面就可以开始着手汉化了。
三、使用合适的汉化工具
四、汉化标准资源中的字串
一般的汉化工具都支持字典及导入导出功能,字典主要靠自己积累,你汉化的软件越多,生成的字典越多,汉化起其他程序来就越快。因为很多内容都可以直接用字典来汉化完成。如果是汉化一个新的程序,且又没有什么可用的字典怎么办?我一般的做法是采用汉化工具的导出功能,把没翻译的源英文字串直接导出(这里注意如果是用 Multilizer 导出的话,需要把目标翻译语言栏全选,再粘贴原始语言,这样导出的采用 TAB 分隔的 ASCII 文本才好转换为对照文本),再用字典转换工具如 Fantasy Editor 或开心字典转换工具把导出的文件转换为对照文本,这样就可以采用 SeaTools 这样的工具来进行机器翻译,机器翻译完后再进行手工修改,全部翻译好后再用上面说的字典转换工具转换为对应汉化工具的字典文件,现在就可以用这样的字典文件来翻译原程序了。
五、调整界面,设置对话框字体,汉化其他内容
六、汉化非标资源中的字串
说到这大致差不多了,其他的还有一些非标字串汉化后字串长度超过原字串长度,需挪移修改、汉化后有程序有自校验需去除、字串加密后的汉化等等,我就不再这里说了,大家可以自行参考汉化新世纪的相关文章。此外还有一些图形界面游戏的汉化是不能采取我上面说的这样的方法的,如你要汉化 StarCraft,用我这种方法是不行的。汉化这样的游戏可能要你分析程序,采用外挂方式来汉化,这里不作讨论。
现在的汉化软件和汉化补丁是越来越多了,你肯定也想自己汉化一些软件试试吧。肯定你又会以为这是很麻烦或者很难的事情,只有高手才会做,其实并不是这样,你也完全可以自己汉化一些软件,有些方法还是很简单的,不需要设计到编程的知识。不相信,不相信就听我下面给你介绍三种方法,保证你看完后,你也能汉化一些平常见的软件了。(哎,我把胸口都拍痛了)
第一种方法:
直接修改源二进制的代码,不要紧张,也不要被吓倒,很简单的。这里需要用到一个二进制代码查看器,如果你没有,我推荐你用一个名字为Ultra Edit的编辑器,相信你已经用过这个编辑器,(没有用过?没有用过也不要紧,往下看!)这个软件比Windows自带的记事本的功能强大许多,用法上倒没有什么复杂的地方,至于具体好在哪里,我就不说了,呵呵,可以自己看看专门介绍它的软件。比如说,我们要汉化一个英文软件,就比如汉化Turbo C吧,把菜单中的“File”汉化成中文的“文件”。用此编辑器打开TC的可执行文件tc.exe,当然啦,在做这之前,你要先备份好你要操作的文件,免得到时候没有汉化成功,倒弄坏了文件,回不来了。打开以后,就可以看到它的原二进制代码文件。这时候,你选择查找功能。从二进制中查找到“file”,找倒后,将它修改成“文件”,然后关闭,执行这个文件,看看是不是已经汉化了。当然,这次你找到的不一定就是你要汉化的菜单,不一定会成功。这就需要反复实验了。
这类方法比较累,并且也不一定准确。这种方法现在也基本没有人使用了。
第二种方法:
这种方法是比较简单的一种,但这种方法只能适用于带有语言选择的软件,这样的软件不是很多,只能是偶尔逮着一个,方法很简单,找到它的语言选择文件夹,里面会有各个语言的选择文件,比如FlashGet的language目录下面有三十几个国家的语言版本。这里面已经有中国的了,假如你想新建一个的话,则也可以用记事本按照它的格式建立一个语言版本。提供给大家的一个思路就是将它的原语言版本复制一个后,用记事本打开,然后按照它的格式修改,将它的内容换成你的内容,注意要一行一行地换,如果你把两行弄到一行去了,这就可能会产生错误了。换完后,你也就已经汉化了这个软件了。
这种方法用途不是很大,一般的多语言版本的程序都有中文的语言版本,不需要你的汉化了。
第三种方法:
好的方法当然留在最后讲,这种方法是汉化者们经常用的一种,那就是修改文件的资源文件。我们知道,用VC和DEPHI编译成的软件都有资源文件。高手呢,就是打开VC,直接修改内核,而我们嘛,就不必掌握这些复杂的方法了,这里给大家介绍一个简单的方法,用eXeScope软件修改,特别的简单。(没有听说过?那没有关系,网络学院里面有教程的)像这类的软件还有很多,不过这个历史比较长,使用也非常的简单。就给大家介绍它了。比如我们要汉化OICQ,当然这本来就是中文版了,不需要汉化,没有关系,这里只是给大家演示一下汉化的过程而已。(要详细了解eXeScope,有专门的文章介绍)
启动eXeScope,选择文件菜单,再选择打开,打开QQ的可执行文件。这时候左边的资源栏目里面就会出现该文件的全部资源,包括什么头部文件,导入的动态连接库,以及它所用到的资源文件。而资源文件,就是我们汉化时要终点修改的内容。从资源中间选择菜单(一般汉化就是汉化菜单和对话框)当菜单栏目展开以后,你可以看到右边的栏目里面有该菜单的全部内容了,这时候,只需要你自己改动就可以了,将各个菜单的名字都改成你所要的名字就可以了,比如说要是“File”,你讲它改成“文件”就可以了。注意的是“&”这个符号,编过程序的人应该知道,这个是不能动的,如果你不知道意思,只要记住,这个符号的意义是:这个符号后面紧跟的字母是这个菜单的快捷键,就像记事本的菜单“文件(F)”那么这个F就是快捷键,最好不要删除掉。比如说有个菜单为:“&Edit”,那么你换的时候,就不能把快捷键去掉,把它写成“(&E)编辑”,就可以了。这是一个要注意的地方。
汉化还包括汉化对话框,同样从左边资源树中点开对话框,从右边就可以看到各个具体的标签与空间的名称了,只需要将各控件显示的文字改过来就可以了,按下F8键,就可以可视化地进行修改了。将修改后的文件保存就可以了(在编辑菜单中有“保存修改”项)。你运行一下你刚才修改过的文件,可以看到修改后的效果了。
当然啦,eXeScope的功能远不止这一些,但汉化是非常好的一个功能。*_*
汉化软件要注意的几点是:
1. 汉化前的备份,如果失败,还可以还原回来。切记!
2. 汉化软件的时候,最好就不要做别的事情了,因为我们都是刚学汉化的人,有可能某个错误,而使软件运行后死机,如果你别的文档没有存盘,可不要说我没有预先通知你了。呵呵。
3. 习惯问题,为了软件的通用性,一般都把“File”汉化成“文件”,把“Edit”汉化成“编辑”,最好遵守一下这个规则。
4. 软件版权问题,还是尊纪守法的好,打官司了,不要说是我害了你哟。
希望上面的汉化方法会对大家有一点帮助,谢谢。
- 软件汉化教程
- android软件汉化教程
- 软件汉化
- 软件汉化
- 汉化教程
- java汉化教程 和所需软件可用版连接
- Keil_c51软件的安装+破解+汉化详细教程
- [技巧分享-软件使用]IntelliJ IDEA 2017.1.3汉化教程
- [转自安智论坛]Android软件汉化教程(强制汉化/Apktool汉化/精简/去广告)
- 软件本地化与汉化
- 如何汉化软件
- 如何汉化软件
- 如何汉化软件
- android软件的汉化
- 汉化软件的方法
- Gadget汉化教程
- MyEclipse8.x汉化教程
- Android应用程序汉化教程
- 多文件上传
- Ruby Ruport实践—简单报表系统
- 软件需求设计评审之八项注意
- 需求验证
- struts2 动态方法调用
- 软件汉化教程
- 需求测试总结
- 零碎知识点1
- Android usb client mass-storage 多存储设备挂载问题解决
- 简单的正则表达式http://www.cainiao8.com/web/js_note/js_regular_expression.html
- 投资投机经典著作55本
- 看透人生的经典语录
- 白云深处
- 总体设计