用 Vusial C++6.0将软件汉化
---- 大多数软件的操作界面和信息都是写在resource(资源)中,所以,只要把exe文件或dll文件中的resource提取出来,就可以轻易地将信息翻译成中文。而
Vusial C++中的资源编辑器(Resource Edit)可以将一个已经编译完成的exe文件
或dll文件中的resource提取出来进行编辑。
---- 一、建立Demo项目
---- 单击Visual C++File菜单中的New命令,选择Project选项中的MFC AppWizard(exe)图标,键入Demo作为项目名字。单击OK运行AppWizard,创建Demo
项目。当指定项目选项时,在AppWizard的步骤1中选择Single Document按钮,其
余各步均采用默认设置项,产生如图1的项目,现在对这个英文项目进行汉化处理
。但处理前二个问
必须注意:
---- 1、VisualC++允许你在建立MFC AppWizard程序时选择不同的语系。在使用
远东语系支持DLL时(日语、朝鲜语和中文),需要支持双字节的操作系统。这些DLL在缺省安装时并没有安装,需要你自己动手来安装。这些文件在VisualC++光
盘的\Bin\IDE
中(表1):
---- 表1
语言AppWizarDll
日语appwzjpn.dll
朝鲜appwzkor.dll
简体中文appwzchs.dll
台湾中文appwzcht.dll
---- 例如,如果你想在你的软件中支持中文,你可以把上面的appwzchs.dll 复制
到你安装 Vusial C++ 的目录下相同路径的地方。
---- 2、必须在Windows NT下才可以将编辑过的resource存回到原本的exe 文件(
或dll文件)中,在Windows95中编辑过程一样,但是无法存回去。
---- 二、提取resource
---- 首先,使用File>Open...打开要汉化的exe文件(或dll文件),必须注意的是
Open as的地方要选择Resources。打开之后,窗口中显示的便是这个程序的resource,包括了各种图形使用界面的资源,其中我们需要编辑的是Dailog(对话
框)、Menu(菜单)和String Table(字串表)。
---- 1、在开始翻译以前,要先修改语系和编码,否则翻译过的中文字会变成乱码。按一下Version项旁边的加号,打开项会出现Version。鼠标双击1[English (U.S.)]打开Version的
,双击Block Header 的那一行,把Language ID
改为
中文,Code Page确定是Unicode没有错,关闭对话框,再关闭Version内容窗口。
---- 2、接下来单击1[English (U.S.)]让它成为选取状态,按鼠标右键,选择Properties,然后把Language的地方设成Chinese(P.R.C)。以后每编辑一项,也
都要做这个动作,把Properties里的Language设成Chinese(P.R.C)。但是在
做这
个动作以前,必须先双击该项目打开内容,然后关闭再来设定Properties,否
则
有时设定语系后便无法打开内容编辑。设定好后,就不会出现[English (U.S.)] 的字样。
---- 三、编辑Dailog
---- 按一下Dailog (对话框)项旁边的加号,打开项会出现一系列的Dailog项目
,每一个项目是一个对话框(对本例当然只有一个对话框)。在编辑以前你要先
改变每一个对话框的语系,但在改变语系之前,必须先打开它(双击该项目)然后关闭,以避免改变语系后无法打开编辑。这么多对话框一个一个打开关闭非常麻
烦,你可先选取全部的对话框项目,然后按下 Enter,就可以一次打开全部的对话框内容。要一次全部关闭,选择Vusial C++下拉菜单的Windows>Windows...,它会列出所有的窗口,选择所有刚刚打开的对话框窗口(字尾有 [Dialog]字的),然后按下Close Window(s),就可以一次全部关闭。注意别把所有的窗口都关闭了
。最后按下OK。在这些项目都还被选取的时候,按下鼠标右键,选择Properties ,然后把Language的地方设成Chinese(P.R.C)。就可以一次把所有的对话框的语
系都改了。
---- 接下来要做的就是一个一个分别去修改对话框的内容(双击该项目打开内容)
,把信息翻译成中文,再关闭。要编辑那一个字串,就用鼠标双击它打开信息内容,然后把英文字串翻译成中文。对英文字符前有&这个符号的,例如:&Help,在H前面有&,对话框会把H加上底线,表示这是一个快捷键。由于无法在中文字前
加&,所以就把&Help翻译成「帮助(&H)」,保留&H这个快捷键,若是Brow&ser... 就翻译成「浏览(&s)...」,以此类推。快捷键不一定要有,有时为了美观起见可
以省略,若省略快捷键就无法用键盘操作程序,只能用鼠标。
---- 有一些比较特别的字串,例如:Static,看起来不像是信息的,就不要去翻
译或改变它,因为它很可能是程序中传递的参数或记号。有时字串长度可能太长或太短,以致于对话框位置不符合或不好看,为了美观起见,你可以自行调整位置或大小。总之,你此时可根据常规习惯自由发挥。
---- 四、编辑Menu
---- 编辑Menu(菜单)跟编辑Dialog的方法很类似,按一下Menu项旁边的加号,打
开项会出现一系列的Menu项目,每一个项目是一个菜单。在编辑之前也是一样要
修改语系,修改语系的方式跟Dialog是一样的,一个一个修改嫌麻烦,也可以整
批一起修改。双击一项菜单的项目,打开菜单内容开始编辑翻译,要翻译那一个
字串就双击那一个字串。菜单一定都有快捷键,最好全部保留。字串中有一些特
殊符号,例如:\t(Tab)、\n(换行),就把它保留下来,翻译信息的部份力求和原
本的程序一模一样。
---- 五、翻译String Table
---- 最后就是要翻译String Table(字串表)了,这里要翻译的东西最多。按一下
String Table项旁边的加号,打开项会出现String Table,通常只会有一个项目
。在翻译前要先修改语系。还是一样,要翻译那一个字串就双击那一个字串。快捷键、特殊符号、参数字串最好都完整的保留下来。全部都翻译完成后,按下存盘的图标就可以将翻译完成的resource 存回到程序中,你再去执行那个程序。