2024年5月11日发(作者:)

你也能做汉化包

基础篇

很多好软件在最初推出时都是英文界面,尽管一些软件为了市场的需要推出了相应的中

文版本,但是还是有很大一部分的软件并没有提供相应的中文界面。于是,针对这个现象,

国内的一些软件商采用了翻译软件附带汉化包的方法来汉化相应的软件,如大家熟悉的金山

快译、东方快车系列以及晴窗系列等。同时一些软件爱好者也推出相应的软件汉化包,放在

网上供大家下载。我们难道不能自己为一些英文软件做汉化包吗?

一、什么是软件汉化

所谓软件的汉化就是指将一个外文版的软件(当然绝大多数是英文版)经过一系列本地

化的技术处理后,将操作界面(如菜单、对话框、提示、帮助等)变成中文,而程序内核和

功能基本保持不变。

二、常见汉化方法

1.使用自动汉化工具进行汉化,如东方快车的永久汉化等。采用这种方式进行汉化的优

点是快捷、傻瓜化,使用者不用怎么费心,比较适用于初学者使用。但是这种方式的缺点也

是显而易见的,就是翻译得不怎么贴切,感觉一些提示明显就是单词翻译的堆砌,汉化后的

使用界面也难以达到理想的要求。

2.使用手工汉化工具进行汉化。使用这种方式进行汉化的优点在于由于是使用者对相应

的资源进行全面地手工调节,因此汉化得比较完善,译文也比较合理,它的缺点就是整个汉

化过程比较慢,需要花费使用者比较多的时间,而且可能需要安装Borland C++、Visual C++

等大型软件。

三、需汉化的资源

Windows程序中所有的非源代码直接提供的内容称为资源(包括位图、字串表、对话框

等)。Windows应用程序的绝大部分字符串都是放在程序的资源部分,标准的资源文件内容

包括:①Bitmap点阵图; ②Cursor光标; ③Dialog对话框; ④Menu菜单; ⑤Icon图标; ⑥

Version版本信息;⑦Strings字符串。这些资源文件就决定了软件运行时的显示界面,因此

从某种意义上说,软件汉化的过程就是对软件资源的汉化过程。

从汉化的角度看,资源的类型可分为6种:

①VC类标准资源(包括Menu、Dialog、String等资源);

②Delphi类标准资源(RCData资源);

③非标准的Unicode字符;

④非标准的ASCII字符;

⑤语言文件(一般指包含语言资源的文本文件,扩展名多由作者随意取);

⑥其他(包括Bitmap资源中的文字等等)。

四、如何查找软件中需要汉化的资源

在进行汉化前,我们要对需要汉化的软件的资源位置进行定位。一般来说是放在.exe

和.dll格式的文件中,有些软件的资源放在专门的语言文件中(如CloneCD等),一般都

是文本文件,扩展名五花八门。

由于大多数软件的资源都存放在.exe或.dll文件中,我们查找资源可以首先看

看.exe、.dll文件中是否存在需要汉化的资源和资源的具体类型。运行eXeScope,将需要

汉化的软件目录中所有的.exe、.dll文件一一打开,仔细查看里面的资源,看看是否有我

们需要汉化的资源(Menu、Dialog、String或RCData等)。

对于一般的软件,其文件中包含的资源部分就在 eXeScope窗口左边的“Resource”项

下,而如果窗口中只有“Header”、“Import”或者“Export”项,表明打开的文件中并没

有相应需要汉化的资源。

要注意的是,有时使用eXeScope打开相关的文件时,会出现无法打开文件的错误信息,

这种情况通常是由于打开的程序正在运行或者文件被设置成只读属性,这时只要关闭该程序

或把该文件的只读属性去掉,重新用eXeScope打开就可以了!

对于各种常见的程序,利用eXeScope我们很容易地查看到VC类标准资源(包括Menu、

Dialog、String资源)和Delphi类标准资源(RCData资源),而VB类的标准资源则一般

用eXeScope无法看到,需要其他第三方的16进制编辑程序(UltraEdit、Hex-workshop等)

来查找。

五、如何选择合适的汉化工具(附表)

在eXeScope中的关键字段 软件类型 建议选择的汉化工具

推荐Visual C++、Borland C++,另

外还可以用eXeScope、Pebble等

“DIALOGEX”、“MENU”“DIALOG”、

C

“STRINGTABLE”

“RCData”

Builder

无 VB

Delphi、C++ 推荐eXeScope、Language

Localizator、DFM Viewer

推荐Hex-workshop、UltraEdit

实战篇

在对软件汉化有了初步了解后,有些朋友想必也希望自己动手来汉化英文软件了,下面

我们来详细地介绍一下具体的软件汉化过程。

一、对C语言类的程序进行汉化

一般采用Visual C++、Borland C++系列来进行汉化,但是Visual C++不能在Win95/98

系统中直接保存修改过的程序,只能在WinNT或Win2000中存盘!而 Borland C++在这点上

就表现得优秀些,它可以在任何系统中直接保存修改后的程序,虽然Borland C++的易操作

性在最关键的时刻要比Visual C++逊色不少,而且存在一小部分的软件在汉化后无法正常

运行的问题,但是如果在汉化时采用一定的辅助工具,可以很好地消除这些问题,因此推荐

使用Borland C++。

1.准备工作

安装Borland C++、eXeScope,以及需要汉化的软件(本例是NFOBuild,一个很好的

NFO制作工具),另外不要忘了金山词霸或者其他翻译工具。

记得备份需要汉化的软件,以免在汉化过程中出现意外导致程序无法正常运行。

2.汉化工作

找出需汉化的资源,然后用eXeScope来查找软件资源的存放处,具体的查找操作可参

考前面的介绍,本例中NFOBuild的资源就存在中。

运行Borland C++,选择打开,在打开时一定要注意在“Viewer”中选择

“Edit Resources”选项,这样才能在文件类型中选择相应的资源文件进行编辑(如图1

所示)。

打开后,进入Borland C++的操作界面。整个界面分为左右两栏,在左栏的窗口中列出

了程序中所有的资源项目,点击每个资源项目旁边的加号就会列出该资源项目所含的具体资

源分项。用鼠标双击任何一个资源分项,就可以打开它并进入编辑状态,从而可以对该分项

进行汉化了。在右栏窗口显示的是在左栏中被选中的资源分项的预览图形。如果你想查找某

个资源分项,只需用预览功能一个个预览即可!这也是 Borland C++优于Visual C++的地

方之一,Visual C++没有预览图形功能,只能在存盘后才可以看到相应的显示效果。

如图2,在左栏列出了所有的资源项目,包括了 “DIALOGEX”、“BITMAP”、“MENU”、

“DIALOG”、“STRINGTABLE”、“ACCELERATORS”以及“ICON” 这些项,其中需要我们进

行汉化的主要就是“DIALOGEX”、、“MENU”、“DIALOG”、 “STRINGTABLE”这几项。“MENU”

项是软件中的菜单项,“DIALOG”和“DIALOGEX”都是软件中的对话框(在 Visual C++中,

这两项被统一标识为“DIALOG”),“STRINGTABLE”是软件中的字串表项目,至于 “BITMAP”

项目,里面都是位图文件,因为有些位图文件中也可能包含了部分文字标识(如版权信息等)。

如果想要达到完美的汉化效果,可在其他的汉化工作都处理完毕后,根据需要用Borland C++

自带的位图编辑器对位图文件进行修改。

我们先从“DIALOGEX”出发,双击“103”分项,进入相应的编辑窗口。在这个窗口中

显示的是NFOBuild程序的“About”窗口,用鼠标双击此“About”窗口,会弹出 “About”

窗口的属性窗口(如图3),在这里可以对整个窗口的属性进行修改。首先要汉化的是整个

窗口左上角的“About”字样,看到图4中“General”中的“Caption”属性了吗?这里的

“About”就是需要修改的地方,将它替换为汉字“关于”。另外可以调节“Font”属性更

改整个“About”窗口的显示字体。

接着要修改的就是这个窗口中的显示文字以及相关的按钮了,用鼠标左键点击需要改动

的部位,会在整个字串的显示部位显示一个标识字串位置的区域,用鼠标双击相应的区域,

会弹出相应的Text和Button属性窗口,同样的,我们也可以修改相应 “Caption”中的字

样来达到汉化的目的。具体操作步骤非常简单,不过要注意的是,在将相应的英文字符修改

为汉字后,可能会出现部分汉字无法正常显示的情况,这是由于原先的英文字符显示区域过

小引起的。汉化时出现这个问题,可以在相应的弹出窗口中设置“Width”和“Height”属

性来修正,更简单的方法就是直接在修改窗口用鼠标左键点击相应的显示部位,然后利用鼠

标直接拖拉相应显示区域的大小至合适的位置,如图5中的鼠标箭头所示。

经过这几个步骤,就完成了“DIALOGEX”项的汉化工作,对于“DIALOG” 项按照上面

的步骤同样进行汉化,图6就是汉化后的“About”窗口。

接下来我们就要汉化“MENU”项中的内容了,用鼠标左键双击“MENU”项下的分项,会

弹出如图7的编辑窗口。窗口中显示的主要部分就是NFOBuild运行界面中的主菜单部分。

在“Property Inspector”中显示的就是相应位置菜单条的属性,只要移动到相应的显

示位置,对“Property Inspector”中“Text”属性中的文字进行相应的修改就能完成这个

部分的汉化工作。在这里要给大家详细地讲讲“Text”属性中的各种符号的具体含义,主菜

单中“File”项在“Text”中显示的是“&File”,其中“&”表示“F”是快捷键,因此我

们在汉化时如果不想丢了这个快捷键的话必须这样处理,在“Text”中将“&File”汉化处

理为“文件(&F)”;而对于主菜单的下层菜单,同样进行相应的汉化处理,惟一要注意的

是,快捷键的定义字母要定义为英文菜单中的带下划线的字母(如“Save As”快捷键的定

义字母是“A”)。

在上面的汉化工作完成后,现在就可以开始汉化 “STRINGTABLE”部分的内容了,点击

Borland C++主窗口左栏中的“STRINGTABLE”项,一一打开相应的下面的子项,在主窗口的

右栏中显示的就是对应的字符提示串,在右栏中将相应的英文直接替换为中文就可以了,如

图 8。

让我们来比较一下汉化前和汉化后的效果,如图9和图 10。

汉化前的NFOBuild 汉化后的NFOBuild

经过上面简单的汉化操作,NFOBuild是不是已经变成了一个界面完全汉化的中文软件

了?当然,上面的操作也只是提纲挈领地简单介绍了基本的汉化思路和步骤。要让自己的汉

化更完美些,还需要在基本汉化的基础上进行一些后期的具体润色工作,如上面提及的汉化

时字体大小的更改、图标中文字的更改。在这里就不具体介绍了。

二、对Delphi、C++ Builder语言类的程序汉化

对于Delphi、C++ Builder语言类的程序汉化,常用的工具主要有eXeScope、Language

Localizator等,而eXeScope更是比较容易上手,下面就以eXeScope为例来简单地介绍一

下对Delphi、C++ Builder语言类的程序汉化过程。

1.准备工作

安装eXeScope,以及需要进行汉化的程序(本例选用的就是用Delphi编写的程序Graph

to ASCII)。

2.汉化工作

首先,用eXeScope打开Graph to ASCII的主程序,查看其中相应的资源部分。我们可

以看到,在相应软件的资源(Resource)部分(如图11),有“Bitmap”、“String”、

“RCData”、 “Cursor”以及“Icon”,除了“RCData”这一部分外,其他部分大家在对

C语言类进行汉化的例子中都看到过了,而“RCData”这一部分也正是Delphi和 C++ Builder

语言类所特有的。

对于Delphi、C++ Builder语言类的程序汉化和上面介绍的对于C语言类的汉化的例子

差不多,这里主要对 “RCData”这一Delphi、C++ Builder语言类的程序独有的资源部分

的汉化工作做一详细介绍。

打开“RCData”部分,可以看到在“RCData”下面包含了很多分项,那么具体什么项目

是我们需要更改的部分呢?其实其中“T”开头的部分基本上都是属于需要修改的,如图12。

打开“TFORM2”,在右边的窗口中显示的就是 “TFORM2”的相关信息,要修改的部分集中

在“Caption”以及“”上,修改“Caption”属性中的英文为中文,并把“”

中默认的“MS Sans Serif”修改为宋体。

三、对VB语言类的程序汉化

在当前流行的程序设计语言中,VB是其中较易学易用的一门语言,可是,VB程序的汉

化却是几种流行的程序设计语言中难度最大的。目前,基本没有什么专门的汉化工具可以方

便地实现对这种软件的汉化。由于它的资源形式比较特殊,有些类似C的格式,有些类似

Delphi的

RCData,对于不同的程序不像上面介绍的两种类型的程序那么有一定的规格,因此在具体汉

化时只能针对不同情况来具体分析。下文就以Skin CD为例给大家介绍一下VB语言类程序

的汉化思路和方法,供大家在汉化VB语言类程序时借鉴参考。

1.准备工作

安装eXeScope、Hex-workshop以及需要进行汉化的程序(本例就选用VB编写的程序

Skin CD为例)。当然也不要忘了安装金山词霸或者其他翻译工具以备在汉化过程中使用。

2.汉化工作

运行eXeScope打开Skin CD来看看Skin CD内部的资源形式。从eXeScope运行后的情

况来看,和上面的两种汉化时的情况大不相同,在“Resource”中根本没有对应的可以汉化

的资源,如“DIALOGEX”、 “MENU”或者“RCData”等,只有“Icon”和“Version”这两

项,不过可以从“Import”项下的“”中看出这个程序是用VB编写的,如图

14。

很显然用常规的汉化工具是无法对这样的程序进行汉化工作的,在对这样的程序进行汉

化前,我们必须首先查找相应资源的位置,这就要靠Hex-workshop了。

我们首先来看Skin CD的原版画面(如图15),把相应的英文部分记录下来,然后用

Hex- workshop打开Skin CD。我们不妨先查找一下左下角的“Tracks”的字样,在

Hex-workshop中查找“Tracks”,显示没有找到,没有关系,由于Hex-workshop默认的查

找方式是ASCII字符方式,在查找窗口中选中“Unicode String”,然后查找一下,果然查

找到4处有相应的字样,如图16就是第一处的“Tracks”。

仔细看看,“Track”后面还跟着“Total Time”,非常像Skin CD界面中左下角的显

示字样,修改一下看看。用Hex-workshop将“Tracks”修改为“音轨数”,在修改时要注

意,由于“Tracks”是用UniCode方式存储的,并不能像修改ASCII码的方式那样直接修改

相应的“Tracks”字样为“音轨数”,而是应该直接在16进制中进行修改,如上图中“Tracks”

对应的16进制是“54006B007300”。那我们如何才能知道“音轨数”对应的

UniCode的16进制代码呢?在Hex-workshop中选择“Edit”菜单中的“Replace”命令,

选择“Unicode String”,在“Replace”中输入相应的汉字,下面就会显示相应汉字的

UniCode16进制代码,如图17所示的“音轨数”对应的 UniCode16进制代码就是

“F397688F7065”。和上面的“Tracks”对应差位可以“全部填0”来补足,这是很重要的,

位数必须完全一样,否则修改后的文件将无法运行。

修改完成后的效果如图18,果然,“Tracks”的显示处已经变成了“音轨数”,看来我们

寻找和替换的位置是正确的。按照上面的办法依次将界面中的英文替换为相应的中文,最后

结果如图19所示。

在这里要补充说明的是,在VB程序中存在大量的 Unicode以及ASCII字符,上面介绍

的是Unicode字符修改方式,必须在转换后用16进制进行相应的修改,而对于 ASCII字符

就要方便得多,直接进行相应的汉字替换就可以了,惟一要注意的也是字符长度要一致,不

足的用空格补。

进阶技巧篇

通过前面文章的介绍,想必大家对于汉化以及如何对常见的软件进行简单的汉化工作有

了一定的了解,但要做出一个满意的汉化成果出来,还需要大家在汉化后进行一定工作量的

修改以及调整工作。掌握一些必要的汉化进阶技巧不仅可以提高汉化效率,而且可以减少汉

化中出现的错误,提高汉化水平。

1.解决汉化后软件图标(Icon)变形的问题

有一些软件(如 Winamp、WinZip 等)在汉化后运行时会出现图标变形而影响显示效果

的问题,原因是这些软件的图标资源采用了多于一个规格的尺寸和颜色,即一个图标里面包

含了(256色16×16、16色8×8等)多种不同尺寸颜色的规格,由于汉化后不同规格的先

后次序被改变了,所以在运行时引起图标显示变形。解决的办法就是在汉化后手工调整采用

多种规格图标的先后次序,把(16×16, 256色)的规格放到最上层即可。

2.鼠标右键快捷菜单的汉化

很多软件在安装后,会在鼠标右键的Windows快捷菜单中添加一些快速操作的命令,如

UltraEdit32在安装后会在其中添加“UltraEdit-32”等,这些快捷菜单的汉化也应该属于

一个完整的汉化过程。对于鼠标右键菜单中这些快捷命令的汉化,我们同样也要先找出其相

应的资源位置,然后进行相应的汉化工作。从目前来看,关于鼠标右键菜单中的显示字样一

般隐藏在以下三个地方,大家在汉化时可以注意一下: ①就在整个软件的总资源部分,这样

在汉化软件的时候也许你已经把它顺便汉化了; ②如果不是①的情况,那么这个资源部分可

能隐藏在注册表中,你可以根据右键菜单中显示的英文信息在注册表中进行搜索,将完全符

合的字符串键值修改为相应的中文; ③如果不是①和②的情况,那么一般隐藏在Windows

系统目录或者相应软件目录的某个文件中,可以利用Windows搜索功能中的“包含文字”功

能选择相应目录进行搜索,将搜索到的文件中的对应部分进行汉化就可以了。

笔者只在有限的范围内介绍了具体的汉化过程,当然,一个完整意义上的汉化工作,还

包括汉化后的后续处理(如字体优化等)以及帮助的汉化等。但对于想自己进行汉化操作的

计算机爱好者来说,上面的介绍我想应该是会有一定帮助的。而且,汉化并不需要触及软件

的内核,再加上当前的软件大都采用模块化设计,这也为我们汉化软件带来更大的方便。

汉化其实并不难,只要你有信心,绝对能掌握好相应的汉化技术,就让我们一起动手,

为自己喜欢的软件设计出漂亮的中文界面吧!

打包篇

在一系列的汉化操作完成后,如果想让自己的汉化“成果”与人分享的话,还要把自己

汉化后的程序打包发布,也就是汉化补丁。常见汉化补丁的制作主要有以下两种方式: ①文

件打包方式的补丁制作: 直接把相应修改后的资源文件(exe、dll等)放置到相应的汉化

补丁包中; ②文件修改方式的补丁制作: 通过比较修改前后的资源文件(exe、dll等),

生成相应的修改程序来完成最后的汉化工作。

一、文件打包方式的补丁制作

这种方式从某种意义上说就是简单的文件覆盖,用汉化后的资源文件来覆盖汉化前的资

源文件。这类补丁的制作比较简单,可以利用常用的压缩程序(Winzip、WinRAR等)的自

解压程序包来制作相应的汉化包。

在制作时首先把修改后的资源文件存放到同一个目录中,对于资源文件分布在不同子目

录的,请按照原先英文版安装后的文件目录结构存放。然后把相应的目录压缩成相应的压缩

包,从而可以利用这些压缩软件自带的自解压制作工具对相应的压缩包进行处理。对于

Winzip制作的压缩包,用鼠标右键单击相应的压缩包,选择“Create Self-Extractor”命

令来生成相应的自解压程序。对于WinRAR制作的压缩包,用WinRAR打开相应的压缩包,选

择快捷菜单上的“自释放格式”,按照后面的提示直接进行操作就可以了。

二、文件修改方式的补丁制作

对于用这种方式制作的补丁,需要比较修改前后的资源文件,因此要采用一些第三方的补丁

生成工具来生成,常见的主要有Winpatch等补丁制作工具。

以Winpatch为例,首先我们要建立两个对应的目录,一个目录中存放修改前的资源文件,

一个目录中存放修改后的资源文件,然后运行 Winpatch,如图。在主窗口选择相应的原始

资源存放目录以及修改后的资源文件的存放目录,记得不要忘了在“Create

Self-Extracting Patch”前打对钩,这样可以生成一个单独运行的Patch可执行文件。点

击“Build Patch”按钮就可以生成相应的Patch文件。

这样生成的Patch文件就可以直接发布了,使用者下载生成的Patch可执行文件后,只要运

行相应的Patch文件,并选择相应需要Patch的目录就可以了。

当然,上面介绍的都是相应补丁制作中最简单的方法,大家可以在安装上再下些功夫,

把补丁的安装也搞得更专业一些,如采用一些专业级别的Install安装程序制作工具来制作

相应的安装程序,其原理和上面介绍的基本类似,大家可以参照上面的来进行相应的制作工

作。