软件汉化教程(完整版)
2021-05-09
来源:好走旅游网
软件汉化全教程初识资源『资源简介』软件界面上的各种文字、图像、图标等,在编程的时候根据特定的格式分门别类地存放在软件里面,这些特定的格式就叫“资源”(Resource)。软件资源分为标准资源和非标准资源(简称非标),标准资源通常可以通过PE类资源查看工具(如:PEExplorer、ResScope等)可视化查看编辑(VB除外),而非标目前还无法实现可视化预览。特别注意的是VB程序资源比较特殊,上述分类概念不适用,但汉化人一般把VB窗体汉化器等提取的窗体资源称为标准资源,而通过点睛字符替换器提取的VB字串、Unicode字串和ASCII字串均称为非标。常见的标准资源通常有Bitmap(位图)、Menu(菜单)、Dialog(对话框)、String(字符串)、RCData(RC-数据)、Cursor(光标)、Accelerator(加速器)、Icon(图标)、Version(版本)、Toolbar(工具栏)、Form(窗体),其中RC-data多见于Delphi程序中,Form多见于VB程序中。非标资源主要包括ASCII字串、Unicode字串两大类。标准资源汉化后,在软件界面或调用信息时显示、但又不出现在上述标准资源中的字串多数属于非标资源。『汉化资源分布』由于编写软件所使用的编程工具不同,软件中的汉化资源发布位置也不尽相同,常见如下:1.VC类标准资源Dialog、String等;2.Delphi类标准资源中;3.VB类标准资源由MicrosoftVisualBasic编写,汉化资源一般出现在Form窗体中;由BorlandDelphi编写,汉化资源一般分布在Rcdata和String由MicrosoftVisualC++编写,汉化资源一般分布于Menu、3.非标资源Unicode字串和ASCII字串,后者又可细分为VB字串、Delphi字串和其他ASCII字串。非标资源不出现标准资源中,需要专门的工具才能提取到。4.语言文件一类特殊的文件,扩展名随作者定,多数为文本格式,常见的文件类型有*.ini、*.lng、*.dll,语言文件根据不同软件,分布的位置不定,有的在安装目录根目录下,有的语言文件夹中(如:language、Lang、Lan等)。详见本人2006年写的这篇文章:http://teach.hanzify.org/index.php?Go=Show::581-1145890624『学习任务』汉化目标:请列出示例文件中的下载示例文件资源类型及汉化资源分布『参考答案』001的标准资源有Bitmap、Dialog、String、Icon、Version,非标资源只含ASCII字串,汉化资源发布:标准资源集中于Dialog、String和Version中,可用Sisulizer或Passolo等工具汉化,非标为ASCII字串,可用点睛字符替换器或CXA提取汉化。002为语言文件,在Language文件夹下,扩展名为lng,文本格式,可以用Passolo自定义解析规则汉化。003为VB程序,标准资源在VB窗体中,非标资源为VB字串,可用VBLocalize汉化。004为Delphi程序,标准资源主要集中于RC-data和Version中,但Dialog需要修改字体属性;非标为Delphi字串。汉化工具『汉化工具简介』软件汉化就是使用专门工具对外文版的软件资源进行读取、翻译、修改、回写等一系列处理,使软件的菜单、对话框、提示等用户界面显示为中文,而程序的内核和功能保持不变的过程,完整的汉化大致要经过侦壳、脱壳、预处理、翻译、编译、测试、修正、发布8个步骤。这里的专门工具就是狭义上的汉化工具,特指标准资源和非标资源汉化工具,如Passolo、Sisulizer、点睛字符替换器等。广义上的汉化工具指汉化流程中用到的各类工具软件,可谓五花八门。熟练应用各类的汉化工具是汉化人学习汉化的基本技能之一。汉化工具选用原则大体上如下:1).根据使用目的有针对性地选用工具;2).最好带字典功能,提高汉化翻译效率;3).同类工具软件,由个人使用习惯选择使用。『学习任务』实训目标:请将列出下面汉化工具的主要用途及特点(乱序排列)(1)Radialix(2)UltraEdit(3)Athena-A(4)Resscope(5)UPXShell(6)NSIS(7)StringManager(8)Passlo(9)AutoFontSet(10)Sisulizer(11)灵便汉化编辑器(12)VBLocalize(13)FreeRes(14)PE-scan(15)DictionaryHelper(16)ExeinfoPE(17)点睛字符替换器(18)ResHacker(19)INNOsetup(20)FantasyEditor(21)PEiD(22)CodeFusion(23)UniversalExtractor(25)ImportREC(26)PatchMaker(27)FixRes(28)GetVBRes(29)CXA(30)ArmaG3ddon『参考答案』(1)Radialix-主汉化工具,可以汉化标准资源和非标资源,但目前稳定性有待完善;(2)UltraEdit-16进制编辑器,用于非标汉化辅助工具;(3)Athena-A-海子开发的非标汉化工具,特色是具有挪移字符串和字典提取等功能。(4)Resscope-标准资源辅助工具,用于标准资源后期修正;(5)UPXShell-UPX加壳与脱壳工具;(6)NSIS-安装包制作工具;(7)StringManager-非标汉化工具;(8)Passlo-主汉化工具,汉化标准资源,特点是拥有强大的自定义解析规则;(9)AutoFontSet-非标字串字体修改工具(10)Sisulizer-主汉化工具,汉化软件标准资源(11)灵便汉化编辑器-非标汉化辅助工具,与点睛字符替换器是个经典的组合;(12)VBLocalize-VB汉化主程序,可以汉化VB的标准资源和非标字串;(13)FreeRes-资源处理工具,强制释放软件中可编辑的资源;(14)PE-scan-侦/脱壳工具,可以脱一下常见的壳(低版本);(15)DictionaryHelper-字典转换工具,支持常见几种工具的字典文件互相转换;(16)ExeinfoPE-侦壳工具(17)点睛字符替换器-非标字串主汉化工具,可以与灵便汉化编辑器配合使用;(18)ResHacker-资源查看、修改、反编译软件,标准资源汉化辅助工具,但不支持Delphi程序;(19)INNOsetup-安装包制作工具,功能强大;(20)FantasyEditor-字典转换工具,支持多种字典文件互相转换;(21)PEiD-最常用的侦壳工具(22)CodeFusion-补丁制作工具(23)UniversalExtractor-万能解包工具(25)ImportREC-导入表修复工具,用于软件汉化资源修复;(26)PatchMaker-补丁制作工具(27)FixRes-资源处理工具(28)GetVBRes-VB标准资源汉化工具(29)CXA-非标资源主汉化工具,与点睛功能相似,各有所长;(30)ArmaG3ddon-穿山甲壳的自动脱壳工具;加壳与脱壳植物有壳,动物有壳,软件亦然。常见的三种壳:压缩壳、保护壳、捆绑壳。壳的用途:(1)保护版权信息-不让别人随便更改作者版权信息;(2)减小程序体积-方便存储、传输、使用;(3)黑客界给木马等软件加壳,主要为躲避杀毒软件。常见的加壳工具:常见的脱壳工具:常用的侦壳工具:PEiD、StudPE、PEscan、ExEinfoPE等『学习任务』汉化目标:使用合适脱壳机将三款示例软件脱壳。下载示例文件『操作流程』1.使用PEiD侦壳,可知示例三款软件加壳分别为001sample加壳为UPX0.89.6-1.02/1.05-1.24->Markus&Laszlo002sample加壳为PECompact2.x->JeremyCollake003sample加壳为ASPack2.12->AlexeySolodovnikov2.对于UPX壳,推荐使用“UPX静态脱壳机”,直接将已加壳程序拖入下图的红色虚线框位置,蓝色虚线框显示脱壳状态:3.对于PECompact2.x壳,推荐使用“RL!dePeCompact2.x”,“Browse”选择待脱壳文件后,“Unpack”即可。4.对于ASPack壳,推荐使用Kill的ASPack脱壳机,“打开”选择文件后,“脱壳”即可:标准资源汉化Passolo篇『Passolo简介』Passolo是目前世界上最流行的软件本地化专业工具之一。它支持众多文件格式,包括可执行程序文件、资源文件和基于XML的文件。文本可以被翻译为多种语言,包括亚洲语系(Unicode码)以及书写方式为从右向左的语言,比如希伯来语和阿拉伯语。Passolo包含多种所见即所得(WYSIWYG)编辑器来处理软件的用户界面,包括对话框、菜单、位图、图标和指针编辑器。用户界面的处理非常安全,绝对不会意外删除或者改变现有的元素或结构。官方网站:http://www.passolo.com使用Passolo汉化软件标准资源三步曲:1).方案设置2).创建翻译字串列表3).生成目标文件『学习任务』汉化目标:请用Passolo汉化示例软件的标准资源。、『操作流程』显示被隐藏内容1.三步曲之一-方案设置,即设置方案属性,包括源文件、目标语言属性等(1)“添加源文件”,Passolo自动选择合适的解析器解析待汉化的程序,如果解析器选择不当,可手动调整,其他源文件属性如下图所示:(2).“添加语言”即添加目标语言,简体中文(代码页为936),字体属性为“宋体,9(磅)”。注意字符集(Charset)如果不是中文的GB2312,请点“选择”后在弹出对话框选择Chinese_GB2312字符集,此选项关系着由Delphi编写程序的语系问题,标准资源乱码问题可能源自于此。2.三步由之二-创建翻译字串列表,即创建英中对照字串列表,把菜单、对话框等资源中的对照字串一一列出。(1).在创建翻译字串列表前,可以目标语言栏点鼠标右键“字串列表设置”,可以修改目标文件的名称和路径。对于Delphi编写的程序,目标文件名后的扩展名为chs,而不是exe,故需要在chs后添加“.exe”。(2).在目标语言栏,双击即可创建翻译字串列表,此时弹出是否创建窗口,按下“是”按钮。(3).翻译字串。翻译的目标字串长度如长于原始字串时,一般可无视超长问题,直接翻译。汉化翻译过程中,遇到控件问题,可以随时调整,当选定控件周围出现六个方块点时,即可通过鼠标左键拖动操作。如果控件调整不当,可以位次通过“布局”-“重置位置”-“选定的控件”操作恢复到原始位置。对于不需要翻译的字串,可以点鼠标右键,直接点击“验证翻译”排除不译;对于不确定的翻译字串,可以设置不同状态,是如设为“复审”状态等。3.三步曲之三-生成目标文件。全部翻译完成后,可以点击“字串列表”-“生成目标文件”弹出“生成目标”窗口。当生成目标文件完成后,信息窗口会给出相应的提示,通过链接即可汉化生成的目标文件,测试即可。标准资源汉化之Sisulizer篇『Sisulizer简介』Sisulizer是一款软件本地化工具,能提供对绝大多数应用程序的良好支持,还支持对各种源代码文件、网页的本地化。使用Sisulizer汉化标准资源三步曲:1).扫描(Scan)-根据工程向导添加待汉化程序,Sisulizer自动扫描程序并定位所有的文本;2).翻译(Translate)-使用Sisulizer的可视化编辑器翻译文本,同时可以调整窗体的字体和控件属性;3).构建(Build)-构建选定语言文件,创建本地化版本。sisulizer的官方网址:http://www.sisulizer.com『学习任务』汉化目标:使用下载示例文件Sisulizer汉化示例软件的标准资源(PS:非标(unicode)已汉化)『操作流程』1.运行Sisulizer,“文件”-“新建”弹出工程向导,依次选择“本地化一个或多个文件”-“源文件(即选择待汉化的文件)”-“文件类型”(Sisulizer自动识别,如果识别不正确,请手动选择)-“本地化的资源”(默认)-“Windows二进制文件”(默认)-“选择语言”(中文,简体),最后点击“完成”。2.三步曲之一-扫描步骤1完成后,Sisulizer自动扫描待汉化的文件,并在窗口左侧上方列出资源;右侧上方为资源预览窗口,可以实时预览窗体和菜单等资源;预览窗口的下方为翻译工作区,文本对照翻译可直接“中文,简体”栏下方输入;最下方是状态栏,可以实时显示当作汉化操作的提示信息。3.三步曲之二-翻译选择需汉化翻译的资源,在翻译区直接翻译,如本示例软件的“对话框”资源,在翻译区“中文,简体”栏输入“Calculate”的中文翻译“计算”,依此类推完成翻译。汉化过程中,如有一些控件不足,还可以手动调整(控件周围显示6个黑点时即可调整)。注意:快捷键翻译成中文需用半角括号,且括号内及前后不需添加空格,如“&File”的正确翻译法为“文件(&F)”。全部翻译完成后,需要调整窗体的字体,因为Sisulizer默认把窗体的字体属性排除不考虑。“工程”-“编辑源”-源文件,弹出“Windows二进制源”窗口,在“排除类型”标签把“字体”前的钩选去除。返回Sisulizer主界面,此时翻译区多了“字体”选项,选择窗体的字体标签,在“中文,简体”栏选择相应的字体名称和大小即可。汉化软件默认规定使用9磅(12像素)的宋体作为参考标准。当然,如果要将所有的字体都设置为“宋体,9磅”,可以在前面的“Windows二进制源”窗口选择“字体”标签,在“改变”下拉列表选择“总是”,并将“被使用的字体”编辑修改为“宋体,9磅”。4.三步曲之三-构建标准资源全部汉化完成,点击菜单“工程”-“构建选定的语言”-目标文件5.生成的目标文件在源文件的zh(zh即简体中文)子目录下,测试即可....非标汉化之点睛篇『非标简介』标准资源汉化后,在软件界面或调用信息时显示、但又不出现在上述标准资源中的字串多数属于非标资源。非标资源主要包括ASCII字串和Unicode字串两大类,其中VB字串、Delphi字串又是ASCII字串中比较特殊的两类字串。非标资源无法进行可视化汉化操作,需要专门工具提取后替换回写到程序中。非标的主汉化工具有“点睛字符替换器”(简称“点睛”)、CXA、Athena-A、StringManager,辅助工具有“灵便汉化编辑器”、LoveString等,其中“点睛字符替换器+灵便汉化编辑器”是汉化非的经典组合。『点睛简介』点睛字符替换器(OverNimbleLocalizePlus)主要用于非标准资源的汉化,其主要特点有:支持多种编译程序的字符串及文本格式的字符串等的提取及替换;支持字典处理功能,方便版本升级;支持多语言版。灵便汉化编辑器,用于辅助非标汉化,主要特点:支持“导出/导入”功能;内置字典处理器,方便利用字典升级翻译;可以根据状态分组显示字串便于复查,也可以按编码排序字串。Raindy注:点睛仅限于提取PE文件和文本文件,有时候点睛会漏提或提取不到字串,此时可以通过CXA弥补不足或UltraEdit来补漏。『学习任务』汉化目标:使用“点睛+灵便”组合汉化示例软件的非标资源(PS:标准资源已汉化)下载示例文件(软件与CXA的示例软件相同,但汉化结果有所区别)『操作流程』显示被隐藏内容1.运行点睛,在“选项”设置参数,将灵便汉化编辑器的主程序设置为“点睛”的外部编辑器,建议将ACSCII和Unicode的最大字符数设置大此,其他参数可使用默认值。Raindy注:灵便主程序名称因版本而异,本版0.16b1为lxHHED.exe)。2.点睛默认查找ASCII字串,在下图的“...”按钮中添加程序文件,对照文件名由点睛字符生成,扩展名的“a”说明是ASCII字串,点击“查找ASCII”按钮自动查找程序文件中的ASCII字串。3.查找结束后,弹出“查找结束!”对话框,“确定”。点“外部编辑器”即可打开灵便汉化编辑器,在字串查看器,可以将不需要翻译的字串状态标记为“不译”,排除在翻译范围。标记完毕,可以在菜单栏“查看”-“按状态分组”或直接按F5快捷键,将不同状态的字串区分开来。4.翻译字符串,注意翻译字串长度不要超过原始字串长度,灵便右下角给出了字串度长度值,前者为原字串长度,后者为翻译字串长度。5.翻译完成后,保存文件,返回点睛主界面,选择“替换”菜单-“替换字串”,点睛默认选择00填充。如果个人程序00填充出错,可选择“多余补空格”选项,即使用20填充。选择完毕,按下“替换字串”按钮,点睛字符将翻译字串替换掉原始字串并完成回写操作。当替换完成后,会自动弹出“替换成功”的提示,并自动生成bak的备份文件。如果替换不当,可以通过备份文件重新操作,直接成功!6.此时,可以测试替换ASCII字串后的程序是否正常,包括程序和界面显示。7.下图中的“移除选定文件”后多余位图被自动截断不显示,即第5步中的0x00填充的结果。可以与http://www.raindy.org/blog/article.asp?id=61CXA汉化非标结果作个比较。非标汉化之CXA篇『非标简介』汉化标准资源后,在软件界面或调用信息时显示,但又不出现在String、Rcdata等标准资源中的字串多数属于非标资源,非标资源无法进行可视化汉化操作,需要专门工具提取后替换回写到程序中。『CXA简介』CXA是一款简单易用的字符串抓取替换工具,可以把英文程序中非标准资源的ASCII和Unicode字符迅速查找出来并经过翻译成可生成中文程序。CXA在功能上,不输于点睛字符器替换器(简称点睛),点睛限于提取PE文件和文本文件,而CXA则不限,两者各有优缺点,通常点睛漏提的字串或无法提取的字串可以通过CXA弥补不足。『学习任务』汉化目标:使用CXA汉化示例软件的非标资源(PS:标准资源已汉化)下载示例文件『操作流程』显示被隐藏内容1.运行CXA,设置CXA参数,CXA默认使用Windows自带的记事本为编辑器,可以根据个人习惯设置编辑工具,其他建议使用默认参数:2.通过“浏览”载入待汉化的程序,方式根据非标类型选择,本例软件为VC++编写(非VB或Delphi),为ASCII字串,故“方式”标签处选择“ASCII(全部)”,“自动翻译”强烈建议不要使用,因为容易翻译不该翻译的内容导致非标汉化过度。步骤1设置完毕,“确定”跳转到到“步骤2”:3.点击“编辑原始英文文本文件”打开Webtool.exe.asc文件(提取后未翻译),根据经验移除一些无用的字串,如图示的文件头等信息即可删除,完毕保存文件,“确定”转到“步骤4”:4.编辑翻译文件Webtool.exe.tra,在CXA中以三行显示,第一行为行数标记,第二行为原始字串,第三行为待翻译字串,我们要做的就是翻译第三行的字串,注意字串翻译后的长度不要超过原始长度!5.完整编辑翻译文件后,保存,返回步骤4,进行替换操作,选择填补方式后“确定”。注意在CXA中填补方式使用0x20填充,即以空格填补翻译后字串小于原始长度留下的空位置,而不推荐使用0x00填充,因为容易造成字串截断损坏导致程序异常。CXA默认使用0x20填充,而点睛默认使用0x00填充,这是两者的不同之一。6.提示是否更改程序字体,“是”,CXA回写翻译字串后自动转换成中文程序,此时,可以“把新程序改名为应用程序”(即将汉化后的程序名称用原程序名称命名,而同时原程序名称会自动添加.old标记)此时即可测试汉化程序7.下图中的“移除选定文件”后仍有许多空位置,即第5步中的0x20填充的结果;换成0x00填充,则空位置被自动截断不显示,更为美观。在保证程序正常运行的前提下,可以尝试使用0x00填充。