admin 管理员组文章数量: 1184232
2024年3月12日发(作者:怎么搭建mvc框架)
看到论坛上经常有人问汉化方面的东西,我今天也来灌水一篇,来个汉化扫盲教
程。写的不好的地方欢迎大家指正!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、PE Explorer 这
样的工具严格来讲都不是汉化工具,只能说是资源修改工具。一般所说的汉化工
具是指如 Visual Localize、PASSOLO、Multilizer、Alchemy CATALYST 这样的
工具。这些工具都是可以可视化调整调整界面的,不过这些工具都不能用来汉化
VB 编的程序,关于汉化 VB 编的程序要使用其他的工具。现在针对上面所说的
资源类型来谈谈工具的选用:
1、VC、MASM 类程序:这种程序可以用上面提到的任何一款汉化工具汉化,就我
个人来讲,我比较喜欢用 PASSOLO,Visual Localize 也是个很不错的选择。
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 为后缀名。
采用语言文件方式汉化的话,只要把汉化完标准资源的语言文件和原程序放
在同一目录就可以让主界面显示中文了,不受主程序是否加壳的影响。这里要注
意的是语言文件名要与原程序名称一致,如你要汉化 ,语言文件名就
要是 ,同样,你要是把 改名为 ,语言文件名也
相应要改为 。
3、VB 类程序:这种程序目前可以用来汉化的工具有 VB 窗体汉化器、GetVBRes、
新出的 VBLocalize 等。缺点就是没有可以可视化调整汉化后界面的工具。
4、非标准资源:这类非标资源的汉化主要采用的工具有点睛字符串替换器、CXA、
枫叶字符替换器等。主要功能是把原程序需要汉化的非标字串提取出来,汉化完
后再写入。汉化非标资源要求程序必须没有加壳,且这个地方汉化不当的话容易
让程序出现问题,比如不能汉化的字串汉化了等等这样的情况,会让程序运行出
错,也就是常说的汉化过度。所以汉化非标资源时要特别注意,要多测试,防止
出现因汉化引起的 bug。
四、汉化标准资源中的字串
版权声明:本文标题:如何汉化您的英文版软件 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1710219278a563038.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论