如何汉化软件

原创 2007年09月30日 16:07:00
 

看到论坛上经常有人问汉化方面的东西,我今天也来灌水一篇,来个汉化扫盲教程。写的不好的地方欢迎大家指正!OK,现在我们进入正题。
我这里所说的汉化,是指汉化Windows下的PE文件,把其他语言界面的程序翻译为中文界面。要汉化一个软件,一般的流程是这样:

一、检测软件是否加了壳。
汉化一个软件前我们首先要做的就是要看看软件是否加了壳。因为程序加了壳后,一般情况下资源也被压缩了,使用普通的汉化工具是无法汉化的。这时一般有两种办法:一种是完全脱壳后再汉化,这种方法可以汉化的比较彻底;另一种是壳太猛,不好脱,只好退而求其次,用freeRes这样的工具来释放一下资源,再来汉化。这种方法只能汉化标准资源,一般就是主界面看到的部分,非标准资源因为未脱壳,还是无法汉化,所以这种方式汉化的不彻底。平常我们看到的汉化软件一般都是完整的汉化,就是有壳的脱了壳,标准资源和非标准资源都汉化了。这里脱壳后的文件优化也要注意,平常我们分析软件的时候,只要脱了壳,程序能正常运行,没有功能丢失就可以了,但要能汉化的话要求要严格一些。因为要使用一般的汉化工具来汉化程序的话,最好脱壳后程序的资源段(一般区段名称是.rsrc)要放在最后,这可以使用FixRes或freeRes这样的工具来重建资源。另外,平常我们把脱壳后的程序优化时可以用LordPE删除垃圾区段,再重建一下。但若要用汉化工具来汉化这种用LordPE优化重建后的程序,很可能生成的汉化程序运行时会出错。如果你要会手工优化的话那是最好,可以删除垃圾区段,根据文件对齐粒度和区段对齐粒度等来优化文件,这样手工优化后的文件一般汉化时不会出错。关于优化脱壳后文件这方面也有相关文章,我就不多说了。改天若有空我会专门写一篇这样的文章,不过不要过于期待,我向来喜欢开空头支票的
如果不会手工优化,可以在脱完壳重建资源后就用汉化工具来汉化,汉化完成后再用LordPE这样的工具来优化一下汉化后的程序就可以了。

二、检测程序资源类型。
检测程序资源类型我们同样可以用PEiD、FI这样的工具,主要是看程序是用什么开发工具写的。各个开发工具编译出来的程序标准资源类型是不同的。一般可以分以下几种:

1、VC、MASM这样的开发工具做出来的程序要汉化的标准资源主要在Menu、Dialog、String等中。
2、Delphi、C++Builder这样的Borland公司开发工具做出来的东西要汉化的标准资源主要在Rcdata和String中。
3、VB开发的程序,这种程序我们一般所说的标准资源是指Form中的资源,这种VB编的程序目前还没有可以可视化编辑界面资源的工具,相比较而言汉化起来不是很痛快;)
4、上面说的主要是标准资源,再说一下一般定义的非标准资源。非标准资源一般简称为非标,指在程序中出现,但又不在标准资源中的UNICODE字串或ASCII字串,这类字串汉化需要其他的工具。
判断完程序是什么开发工具做的,我们就对资源类型大致有数了。下面就可以开始着手汉化了。

三、使用合适的汉化工具
这里首先要说明一下,像什么eXeScope、ResScope、ResHacker、PEExplorer这样的工具严格来讲都不是汉化工具,只能说是资源修改工具。一般所说的汉化工具是指如VisualLocalize、PASSOLO、Multilizer、AlchemyCATALYST这样的工具。这些工具都是可以可视化调整调整界面的,不过这些工具都不能用来汉化VB编的程序,关于汉化VB编的程序要使用其他的工具。现在针对上面所说的资源类型来谈谈工具的选用:
1、VC、MASM类程序:这种程序可以用上面提到的任何一款汉化工具汉化,就我个人来讲,我比较喜欢用PASSOLO,VisualLocalize也是个很不错的选择。

2、Delphi、C++Builder类程序:这种程序可以使用PASSOLO、Multilizer来汉化,一般用PASSOLO时应该选择PASSOLO的UNICODE版本。对这类程序,还可以采用外挂语言包的方式来汉化标准资源。这种外挂语言文件的方法对一些加了猛壳,且又不想脱壳或不好脱壳的程序非常有用。因为Borland公司的编译器编译出来的程序默认对语言文件支持,编译好的程序会自动检测是否有语言文件。一般的未加壳的此类程序,要采用语言文件汉化标准资源的话,只需生成对应的语言文件放到原程序目录就可以了。对于加了猛壳的此类程序,如果只是汉化标准资源的话,不需要脱壳,只要用freeRes这样的工具释放一下压缩资源,再汉化释放资源后的程序,生成语言文件后放到原程序目录下就可以让主界面显示对应语言了。用PASSOLO、Multilizer来汉化这样的程序,还有一些区别的地方:

(1)、PASSOLO,汉化这类程序时选目标为简体中文时默认生成的目标是后缀名为CHS的文件。不过生成的文件其实只是改了后缀名的汉化后的EXE或DLL等可执行文件。这可以预先设置一下目标文件的后缀名,使生成的汉化后的文件后缀名为EXE或DLL等这样的可执行文件。如果只是想生成语言文件,最好在生成目标文件的高级选项中设置一下,把生成纯资源DLL的选项选上,再把汉化生成的CHS文件的和汉化资源无关的项如图标、位图等删掉,减小体积。
(2)、Multilizer,这个工具汉化此类的程序时,默认生成的就是语言文件,要想生成汉化后的可执行文件,要在工程选项中把输出文件中的“已本地化的文件”选项选上。而生成的简体中文语言文件一般也使以CHS为后缀名。
采用语言文件方式汉化的话,只要把汉化完标准资源的语言文件和原程序放在同一目录就可以让主界面显示中文了,不受主程序是否加壳的影响。这里要注意的是语言文件名要与原程序名称一致,如你要汉化test.exe,语言文件名就要是test.CHS,同样,你要是把test.exe改名为test1.exe,语言文件名也相应要改为test1.CHS。
3、VB类程序:这种程序目前可以用来汉化的工具有VB窗体汉化器、GetVBRes、新出的VBLocalize等。缺点就是没有可以可视化调整汉化后界面的工具。
4、非标准资源:这类非标资源的汉化主要采用的工具有点睛字符串替换器、CXA、枫叶字符替换器等。主要功能是把原程序需要汉化的非标字串提取出来,汉化完后再写入。汉化非标资源要求程序必须没有加壳,且这个地方汉化不当的话容易让程序出现问题,比如不能汉化的字串汉化了等等这样的情况,会让程序运行出错,也就是常说的汉化过度。所以汉化非标资源时要特别注意,要多测试,防止出现因汉化引起的bug。

四、汉化标准资源中的字串
一般的汉化工具都支持字典及导入导出功能,字典主要靠自己积累,你汉化的软件越多,生成的字典越多,汉化起其他程序来就越快。因为很多内容都可以直接用字典来汉化完成。如果是汉化一个新的程序,且又没有什么可用的字典怎么办?我一般的做法是采用汉化工具的导出功能,把没翻译的源英文字串直接导出(这里注意如果是用Multilizer导出的话,需要把目标翻译语言栏全选,再粘贴原始语言,这样导出的采用TAB分隔的ASCII文本才好转换为对照文本),再用字典转换工具如FantasyEditor或开心字典转换工具把导出的文件转换为对照文本,这样就可以采用SeaTools这样的工具来进行机器翻译,机器翻译完后再进行手工修改,全部翻译好后再用上面说的字典转换工具转换为对应汉化工具的字典文件,现在就可以用这样的字典文件来翻译原程序了。

五、调整界面,设置对话框字体,汉化其他内容
设置字体一些汉化工具在创建工程时就可以完成,如用VisualLocalize的话需要在工程中设置一下对话框字体。字串汉化完后要做的工作就是调整界面,因为汉化后有些对话框的字串会显示不全,按钮过大或过小,对话框大小不合适等等都要调整。如果还有什么其他的资源如图片等要汉化的,可以导出后修改了再导入。

六、汉化非标资源中的字串
标准资源汉化完成后就要开始汉化非标准资源字串了。汉化方法与汉化标准资源类似,用我上面所说的非标资源提取工具先把非标字串提取出来,删除不需要翻译的,再做一下字典转换(对于点睛字符串替换器、CXA这样的工具,如果有当前汉化的程序以前的非标字串翻译,可以直接作为字典导入),先机器翻译,再手工修改后导入。汉化非标字串如果有经验的话比较好,一般可以看出那些东西是需要翻译的哪些是不需要翻译的,哪些翻译后字串长度比原字串短时补0还是空格。如果没什么经验,就要多测试了。

七、汉化后程序测试及字体调整
这个地方是比较繁琐的,因为汉化后有可能造成程序出错,这里就要重点检测非标部分。另外汉化后有些地方的字体比较难看,这些地方是无法通过在标准资源中设置字体来修改的,这时就要通过调试来设置字体了。设置字体在OD中主要断这几个函数:CreateFontA(W)、CreateFontIndirectA(W)、GetStockObject。找到地方再作修改。

说到这大致差不多了,其他的还有一些非标字串汉化后字串长度超过原字串长度,需挪移修改、汉化后有程序有自校验需去除、字串加密后的汉化等等,我就不再这里说了,大家可以自行参考汉化新世纪的相关文章。此外还有一些图形界面游戏的汉化是不能采取我上面说的这样的方法的,如你要汉化StarCraft,用我这种方法是不行的。汉化这样的游戏可能要你分析程序,采用外挂方式来汉化,这里不作讨论。

相关文章推荐

安卓Android ROM定制、移植,安卓软件反编译、汉化实战教程第五篇:厨房的使用教程(G15实例)

首先按照前面的配备好厨房,OK!不解释!粗略讲下厨房的安装:比如我下载的是ioz9_Android_Tools_GoAPK_0.179.zip(现在已经有0.180你可以百度到汉化版)解压后,文件夹里...
  • sky79
  • sky79
  • 2014年09月13日 17:45
  • 1021

人人都来做ROM(2). APK文件详解--软件的汉化

上一贴说到了软件的反编译,相信只要认真看过贴的,都会反编译文件了。. i1 e% Y- x; x8 o         没看过的先去看看吧:http://blog.csdn.net/centau...

顶级数码照片后期软件DxO Optics Pro 9.1.4 汉化补丁+破解补丁

DxO Optics Pro 破解版是世界上最好的照片后期处理软件之一,也是一款数码单反相机自动图象质量优化软件,具有图像光学纠正、优化曝光、调整对比度、色彩控制、RAW格式转换、消除噪点和增强细节等...
  • xwm0008
  • xwm0008
  • 2014年05月26日 14:01
  • 2753

android软件汉化教程

 一、  android软件安装包解析android软件安装包为apk文件,apk是android package的缩写。apk文件实际是一个zip压缩包,可以通过解压工具解开。下面我们以andro...
  • yb980
  • yb980
  • 2011年05月15日 10:02
  • 195

最近在建模,顺便汉化一个软件玩玩

初次汉化,没看教程自己摸索的,嘿嘿,顺便写了个Readme~~ ***********************汉化补丁使用说明****************************** 1.本补...

Android APK软件汉化整合与探讨

Android平台越来越大众化,其应用需求也很多,但经常会遇到要用的应用,有不适配的地方,就语言汉化方面进行下探讨,希望能得到更多支持。 首先Android平台,能进行汉化的软件很少,也汉化不全面,...
  • foxdow
  • foxdow
  • 2016年12月24日 16:06
  • 131

无所不能的文件批量重命名软件 – Bulk Rename Utility汉化绿色版

以前还真没见过这款名为“Bulk Rename Utility”的文件名批量重命名软件,光看到它的界面就知道它已经包含几乎所有的重命名方式。有了它,真的不需要再找其它的批量重命名软件了。刚刚小小测试了...

java汉化教程 和所需软件可用版连接

java的开发建议使用jbuilder、eclipse或是netbeans eclipse在这里免费下载:http://www.eclipse.org/downloads/ netbeans在这里免费...

Keil_c51软件的安装+破解+汉化详细教程

Keil_C51简介 KeilC51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。...

SCR Screen Recorder Pro 0.21.7 汉化专业版(安卓手机屏幕录像软件)

SCR Screen Recorder Pro 是一款Android(安卓手机)视频录制工具,可以将你屏幕上的操作录制成一段视频,使用了硬件加速来获取高质量的图像,支持tegra设备。SCR Scre...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何汉化软件
举报原因:
原因补充:

(最多只允许输入30个字)