设为主页 | 加入收藏 | 繁體中文

如何汉化软件

  看到论坛上每每有人问汉化方面的东西,我今天也来灌水一篇,来个汉化扫盲教程。写的欠好的地方欢迎各人指正!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 为后缀名。
  采用语言文件方式汉化的话,只需把汉化完标准资源的语言文件和原程序放在统一目次就可以让主界面显示中文了,不受主程序是否加壳的影响。这里要注意的是语言文件名要与原程序称号一致,如你要汉化 test.exe,语言文件名就要是 test.CHS,异样,你要是把 test.exe 更名为 test1.exe,语言文件名也相应要改为 test1.CHS。
  3、VB 类程序:这种程序如今可以用来汉化的工具有 VB 窗体汉化器、GetVBRes、新出的 VBLocalize 等。缺陷就是没有可以可视化调整汉化后界面的工具。
  4、非标准资源:这类非标资源的汉化主要采用的工具有点睛字符串替换器、CXA、枫叶字符替换器等。主要功效是把原程序需要汉化的非标字串提取出来,汉化完后再写入。汉化非标资源要求程序必须没有加壳,且这个地方汉化不妥的话容易让程序出现问题,比如不克不及汉化的字串汉化了等等如许的情况,会让程序运行出错,也就是常说的汉化过分。所以汉化非标资源时要分外注意,要多测试,防备出现因汉化引起的 bug。
  四、汉化标准资源中的字串
  一样平常的汉化工具都支持字典及导入导出功效,字典主要靠自己积累,你汉化的软件越多,生成的字典越多,汉化起其他程序来就越快。因为很多内容都可以间接用字典来汉化完成。要是是汉化一个新的程序,且又没有什么可用的字典怎样办?我一样平常的做法是采用汉化工具的导出功效,把没翻译的源英笔墨串间接导出(这里注意要是是用 Multilizer 导出的话,需要把目标翻译语言栏全选,再粘贴原始语言,如许导出的采用 TAB 分隔的 ASCII 文本才好转换为对照文本),再用字典转换工具如 Fantasy Editor 或开心字典转换工具把导出的文件转换为对照文本,如许就可以采用 SeaTools 如许的工具来进行呆板翻译,呆板翻译完后再进行手工修正,全部翻译好后再用上面说的字典转换工具转换为对应汉化工具的字典文件,如今就可以用如许的字典文件来翻译原程序了。
  五、调整界面,设置对话框字体,汉化其他内容
  设置字体一些汉化工具在创建工程时就可以完成,如用 Visual Localize 的话需要在工程中设置一下对话框字体。字串汉化完后要做的事情就是调整界面,因为汉化后有些对话框的字串会显示不全,按钮过大或过小,对话框大小分歧适等等都要调整。要是另有什么其他的资源如图片等要汉化的,可以导出后修正了再导入。
  六、汉化非标资源中的字串
  标准资源汉化完成后就要开始汉化非标准资源字串了。汉化要领与汉化标准资源雷同,用我上面所说的非标资源提取工具先把非标字串提取出来,删除不需要翻译的,再做一下字典转换(对付点睛字符串替换器、CXA 如许的工具,要是有以后汉化的程序曩昔的非标字串翻译,可以间接作为字典导入),先呆板翻译,再手工修正后导入。汉化非标字串要是有履历的话比较好,一样平常可以看出那些东西是需要翻译的哪些是不需要翻译的,哪些翻译后字串长度比原字串短时补 0 还是空格。要是没什么履历,就要多测试了。
  七、汉化后程序测试及字体调整
  这个地方是比较繁琐的,因为汉化后有大概造成程序出错,这里就要重点检测非标部分。另外汉化后有些地方的字体比较难看,这些地方是无法通过在标准资源中设置字体来修正的,这时就要通过调试来设置字体了。设置字体在 OD 中主要断这几个函数:CreateFontA(W)、CreateFontIndirectA(W)、GetStockObject。找到地方再作修正。
  说到这大致差未几了,其他的另有一些非标字串汉化后字串长度超过原字串长度,需挪移修正、汉化后有程序有自校验需去除、字串加密后的汉化等等,我就不再这里说了,各人可以自行参考汉化新世纪的相关文章。别的另有一些图形界面游戏的汉化是不克不及接纳我上面说的如许的要领的,如你要汉化 StarCraft,用我这种要领是不可的。汉化如许的游戏大概要你分析程序,采用外挂方式来汉化,这里不作讨论。
 


    文章作者: 福州军威计算机技术有限公司
    军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。

TAG:
评论加载中...
内容:
评论者: 验证码: