Ultimate Windows Tweaker (UWT)汉化笔记
转自:http://it.oyksoft.com/post/3395/
UWT汉化版本已经发布在:http://it.oyksoft.com/UWT-HH-V22/
UWT2.2仍然是采用.net 2.0编译。.net程序汉化比较麻烦,所以笔记一下,可能过了一些日子又忘了具体怎么汉化。
采用MSIL反汇编得到资源,命令行比较难搞,但有一个DotNet Helper可以大大帮忙操作。这个软件只有一个可执行程序,Ultimate Windows Tweaker.exe,使用DotNet Helper将它反编译,然后得到一堆.resources文件与Ultimate Windows Tweaker.res、Ultimate Windows Tweaker.il。
.resources文件可以用.NET Resourcer(http://www.lutzroeder.com/dotnet/ 大陆无法访问,十分悲剧。给一个softpedia下载页面:http://www.softpedia.com/progDownload/Lutz-Roeder-s-NET-Resourcer-Download-78871.html)进行编辑然后编译,里面只有2个重要文件u.resources(软件界面左侧的一些项目条目在此资源汉化)和TweakUI.Properties.Resources.resources(小部分字符串资源在此,汉化即可),其它的.resources都是空壳,不需要管。
.res文件编辑器就非常多了,可以使用VS.net 打开编辑,也可以用reshacker之类的工具打开编辑。里面就一些版本信息,想要把自己的名字挂上可以秀一把,我一般对此文件不想做改动。
最最重要的资源文件就是Ultimate Windows Tweaker.il。也是整个汉化工程的核心点。il文件就是一个文本文件,可以直接用记事本之类软件打开,因为这个文件会把长字符串截断掉,因此为了之后汉化的方便,需要将其结合起来。一般连接为第一行的最右边分号,第二行六个空格然后+分号,于是用文本替换工具批量替换,我这里采用的是DW(有人会汗颜,但使用Dreamweaver编辑网页作这样的替换确实是非常方便,而其它文本编辑工具的替换功能确实很难做到分行的字符串替换。当然有其它的工具可以做到,你们自己去发现吧……)替换内容:
引用
"
+ "
替换成空值。然后“全部替换”。
然后动用PASSOLO,首先从空白工作区启动,然后在“工具”-“插件”-新建自定义规则,导入这个附件的规则:
下载文件 (已下载 2 次)点击这里下载文件: il文件规则.rar
之后再新建汉化项目,导入Ultimate Windows Tweaker.il文件,选择文本解析器,会智能判断应用我们刚才的规则,之后便是解析字符串的工作,然后便进入到了中文汉化的一步。
但这里面包含的词条非常复杂,界面上出现的或者程序中的一些注册表项也会在其中,所以有些需要汉化有些并不需要,若是将那些注册表项也汉化了,那么你这个程序编译后肯定会有错误。所以这一部就是要照着界面上出现的内容逐一汉化,尽量避免汉化“不该汉化的”(注册表项比如很多enabled千万不要翻译成启用)。这个过程是相当耗费时间的,但你翻译完一遍后保存为字典,那么下次汉化将会非常轻松,F8键可以轻松将词条汉化。可以试试这个在线翻译宏(http://www.oyksoft.com/soft/14547.html)。
还有一个生成字典的方法就是采用Radialix ,它能够对.net程序进行界面词条的汉化,而且能生成字典,但是最终汉化输出的文件不是让我们满意的,我们需要的只是一个字典而已。将这个字典导到PASSOLO中然后按F8汉化将会减少相当多的时间,这样也能避免那些不需要汉化的词条也去汉化了。各位也许也想到了,为什么在第一步要用DW作那样的字符串替换,这是因为如果不做这样的替换,那么在PASSOLO中一个长词条会断成2个词,而从Radialix中导入的词条是作为一个词出现的,那么这些2个词合成一个词的翻译,显然导入的这个字典无法完成自动翻译,也就让字典的功能发挥不到最大。
il编辑完成就是生成CHS版的il,将所有汉化处理过的文件和没处理的文件都放在同一文件夹,然后再用DotNet Helper编译,输出的文件即为简体中文版的文件。
过程需要不断反复地生成il、然后编译,最要注意的是在PASSOLO中处理时可能将一些不需要汉化的汉化了(过度汉化)导致程序出问题,应该尽量避免。汉化过程中的辛劳是必须的,只有自己满意的东西才能让别人满意。