【.NET 程序初级汉化流程一例】

 

【.NET 程序初级汉化流程一例】

前言:
自从 .NET 程序出现以来,对于目前汉化的工具来说,编辑和翻译/修改等等都基本不支持。几款专业性本地化工具虽然声称支持 .NET 程序的本地化,但目前似乎基本停留在“号称”的阶段。事实上,.NET 程序也可以实现标准资源和/或非标准资源(如果有)的翻译/修改。以前对于 .NET 程序的汉化/修改一直没有什么有利工具,现在,微软自家提供的一个名为 ildasm.exe 的工具就可以实现 .NET 程序的反编译,然后可以利用 ilasm.exe 重新编译程序。在此感谢 orochi_cn 兄(一名程序员)在论坛提出后,给我们大家带来了 .NET 程序汉化/修改的福音。
经过笔者看了网上一点 ildasm 的信息和资料后(部分有关利用 ildasm 破解 .NET 程序),并对反编译后的 *.il 文件初步分析和测试之后,找到了一点 .NET 程序的资源汉化/翻译,和部分字体调整,以及控件调整的方法,本文旨在抛砖引玉,希望得到大家的补充,也希望对于广大想汉化/翻译 .NET 程序的朋友有所帮助。

在开始使用 ildasm.exe 来反编译并汉化/翻译 .NET 程序之前,建议您安装微软的 .NET Framework,但 ildasm.exe 只在 .NET Framework SDK 中提供,大家可以自网上寻找。

流程:
系统平台:WinXP SP2
汉化目标:WinMD5 2.05(一个 .NET 小工具)
官方免费下载:http://www.blisstonia.com/software
系统需求:安装 .NET Framework
所需工具:微软 .NET 工具中的 ildasm.exe 和 ilasm.exe (还有一个“强签名”的工具 sn.exe 对于附带强签名的 .NET 程序有用,以后补充),记事本或其他文本增强编辑工具,Resource Hacker(资源编辑工具)

【1.反编译 .NET 程序 exe 或 dll】
使用 ildasm.exe (微软提供了简体中文版本),将其复制到 WinMD5 软件目录内。执行 ildasm.exe 后,会启动至 GUI 界面,用鼠标将 WinMD5.exe 拖动到 ildasm 界面中,会自行打开。如图(1)。
图1
然后在菜单“文件”中点击“转储”,弹出“转储选项”对话框,将“编码”选中“Unicode”其余按默认值不变,见图(2)。
图2
点击“确定”即可得到以下几个文件:
WinMD5.il
WinMD5.res
WinMD52.WinMD5Form.resources
以上三个文件,其中 WinMD5.il 和 WinMD5.res 对于我们汉化来说最重要。
现在用记事本或其他文本编辑工具打开 WinMD5.il 文件。(推荐使用增强性文本编辑工具,笔者使用 EmEditor)
这就是反编译的代码文件,在这里可以翻译源字符串,修改字体,调整控件,甚至修改其他代码(如果您懂这些语言代码)
首先查找“ldstr”,这个字串后面跟随双引号中的内容基本都是需要翻译的,例如本例:
ldstr "Currently Processing:"
ldstr "&File"
ldstr "&Open File..."
ldstr "Open &MD5 File..."
有些 .NET 程序会有“ldstr bytearray(XXX XXX XXX)”的语句代码,这括号 ( ) 中的 XXX 等字符有些是以 Unicode 编码显示。这就需要一些转换编码的工具自己手动来转换显示为正常字串,然后自行修改,再以 Unicode 编码填写回来,本例中没有出现,所以暂略,以后再行补充。
注意:ldstr 后若跟随这类字串,则不能汉化/翻译,因为这些是控件名称,这需要您准确的判断,如本例中的:
ldstr "webLink"
ldstr "currentlyProcessingLabel"

【2.字体修改】
那么翻译完之后,由于源程序的字体有时并不适合中文用户阅读,那么哪些是字体呢?幸好,这个 il 反编译代码文件中提供了字体名称和字号大小,也是跟随于 ldstr 之后,本例中找到如下两种字体:
ldstr "Courier New"
ldc.r4 8.25
ldstr "Microsoft Sans Serif"
ldc.r4 12.
对字体名称熟悉的朋友一下可以看出上述两个字串就是两种字体命名,而下面紧跟的“ldc.r4 8.25”和“ldc.r4 12.”就是字号大小尺寸。那么我们可以将上述的“Courier New”和“Microsoft Sans Serif”都改为“宋体”,紧跟的字号改为“9”,至于“12”是大字体可以保留不变。当然您也可以修改为在 2K/XP 上字体较美观的“Tahoma”8 号字。(Tahoma 8 号字与 宋体 9 号字在 2K/XP 上基本大小等同)
ldstr "宋体"
ldc.r4 9
ldstr "宋体"
ldc.r4 12.

【3.重新编译】
翻译完这份 il 代码文件之后,就要重新将代码编译为 exe (或 dll)文件了,那么现在需要用到 .NET Framework 安装后系统 Windows 目录下“Microsoft.NET”文件夹的子目录中去寻找到 ilasm.exe 这个文件,注意:这个是编译程序,比反编译程序 ildasm.exe 少一个 d ,找到后也将其复制到 WinMD5 软件目录内。
现在以 控制台 窗口启动到当前目录。(开始菜单“运行”,输入 cmd 确定启动后,用 cd 命令转到当前目录,也可以自注册表中修改文件夹右键菜单,加上一个“命令提示符启动”的功能,此处略)
好了,现在了解一下 ilasm.exe 的命令方式和参数:

ilasm xxx.il (注意空格)
此命令表示将 MSIL 文件 xxx.il 汇编生成 xxx.exe 可执行文件
ilasm xxx.il /dll (注意空格)
此命令表示将 MSIL 文件 xxx.il 汇编生成 xxx.dll 扩展库文件
ilasm xxx.il /output:test.exe (注意空格)
此命令表示将 MSIL 文件 xxx.il 汇编生成以 test 为新名称的 test.exe 可执行文件
ilasm xxx.il /output:test.dll (注意空格)
此命令表示将 MSIL 文件 xxx.il 汇编生成以 test 为新名称的 test.dll 扩展库文件

本例为 exe 文件,那么我们将 ilasm.exe 复制到 WinMD5 目录后,启动控制台窗口以如下命令编译:
ilasm WinMD5.il /output:000.exe
回车之后就会在当前目录下创建了一个新的 000.exe 文件,现在双击执行如图(3),这是汉化/翻译了部分字串后重新汇编的程序界面:
图3

【4.资源重组】
程序执行正常,界面也汉化/翻译为中文了,那么有朋友会发现:程序的图标,以及右键“属性”中的“版本”信息却没有了?用资源编辑类工具 Resource Hacker 打开原版程序一看,可以看到“图标/图标组/版本”等内容,那么这些内容怎么找到,再重新加入汉化/翻译并重新编译的 exe 文件中呢?别担心,现在就来告诉您如何用 Resource Hacker 帮您重组资源加上原版的图标和版本信息。
记得在我们用 ildasm.exe 对原版反编译之后得到的三个文件吗?
WinMD5.il
WinMD5.res
WinMD52.WinMD5Form.resources
我上文曾说过“以上三个文件,其中 WinMD5.il 和 WinMD5.res 对于我们汉化来说最重要”这句话,您可能已猜到了,没错,图标和版本等信息就在 WinMD5.res 这个文件中,现在用 Resource Hacker 来重新添加这些资源进去,借用 CS 游戏的一句“follow me”,跟着我以下列方法做:

用 Resource Hacker 打开汉化/翻译后重新编译过的 000.exe 资源框一片空白,没关系,点菜单“操作”(这里以 世纪主页上吕老大汉化的 Resource Hacker 3.4.0.79 为例),再选择“添加一个新资源”,在弹出界面中选“打开新资源文件”,找到 WinMD5.res 这个文件后打开,先选中“图标组”中“32512”下的“0”资源,然后点击“添加资源”即可,如图(4):
图4
现在 Resource Hacker 资源框树状列表中已有了图标信息了,我们再点菜单“操作”-“添加一个新资源”- 找到 WinMD5.res 打开后 重复上述操作添加“版本”资源即可看到版本信息也被加入了。
然后我们重新保存 000.exe 为 111.exe 即可,现在我们就可以看到程序原本自带的图标和版本信息了,并且运行正常,如图(5):
图5

【5.小结】
现在 WinMD5 2.05 这个免费的 .NET 小工具已经被汉化/翻译完毕并重新编译成功了。但现在很多 .NET 程序都有强签名/资源加密等等措施,对于这些 .NET 程序,微软的反编译工具 ildasm.exe 通常会拒绝打开。那么这就要用被修改/破解过的 ildasm.exe 和上文提到的 sn.exe 了,大家可以自网上找到,或到汉化工具 FTP 交流区寻找,限于篇幅,本文暂时不讨论 sn.exe 的使用,限于时间关系,笔者也暂时不附上“控件调整”的代码修改方法,以后有时间我再行补上。(其他知道的朋友也可以补充本文)

 

本文引自《汉化新世纪论坛》[ 作者: 决斗] 原文网址:http://www.hanzify.org/teach/index.php?Go=Show::444-1119628800

FastReport .NET v2020是一款强大的报表生成工具,它提供了丰富的功能和灵活的报表设计能力,方便开发人员快速生成各种复杂的报表。目前,FastReport .NET v2020尚未提供官方的汉化版本。但是我们可以通过一些额外的操作来实现其中文的显示。 首先,我们需要从官方网站下载FastReport .NET v2020的安装包,并按照指示进行安装。安装完成后,打开FastReport .NET v2020的可视化设计界面。在界面中,默认是英文显示,我们需要切换到中文语言。 为了实现汉化,我们需要找到FastReport .NET v2020安装目录中的语言文件。根据安装路径的不同,这个文件可能位于`C:\Program Files\FastReport.Net`或者`C:\Program Files (x86)\FastReport.Net`等目录下。 找到语言文件后,我们可以使用文本编辑器(如记事本、Sublime Text等)打开。语言文件一般是以`.lng`为后缀的文件,例如`EN.lng`。 在文件中,我们需要找到所支持的语言选项,并将其对应的值修改为中文呈现。例如,将`[frmDesigner, Text]`节点下的值修改为中文,即可将设计界面的文字显示为中文。 当修改完成并保存文件后,重新启动FastReport .NET v2020,界面就会显示为中文了。 需要注意的是,这种汉化解决方案是非官方的,因此在使用过程中可能会遇到一些问题。此外,由于FastReport .NET v2020是商业软件,我们需要遵守其使用协议,并且在官方提供正式汉化版本之后,建议使用官方版本以获得更好的稳定性和支持。 总之,通过上述操作,我们可以尝试将FastReport .NET v2020汉化,从而更好地满足中文用户的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值