1998/3/23
目前大多数的软体的操作介面和讯息都是写在 resource (资源)中,所以我们只要把 exe 档或 dll 档中的 resource 撷取出来,就可以轻易的将讯息翻译修改成中文。而 Visual C++ 中的资源编辑器 (Resource Edit) 可以将一个已经编译完成的 exe 档或 dll 档中的 resource 撷取出来让我们编辑。
使用前要注意的是∶只有在 Windows NT 下才可以将编辑过的 resource 存回到原本的 exe 档 (或 dll 档) 中,Windows95 可以编辑,但是无法存回去!!
撷取 resource |
首先,开启 Visual C++,我所使用的是 5.0 版本。使用
File → Open...
开启要中文化的 exe 档 (或 dll 档),必须注意的是,Open as...
的地方要选择Resources
,如下图∶
准备编辑 resource |
开启之後,视窗中显示的便是这个程式的 resource,包括了各种图形使用介面的资源,其中我们需要编辑的是
Dailog
(对话框)、Menu
(选单) 和String Table
(字串表)。
在开始翻译以前,要先修改语系和编码,否则翻译过的中文字会变成乱码,就前功尽弃了!!
按一下
Version
资料夹旁边的加号,打开资料夹会出现 Version。
滑鼠双击
1[English (U.S.)]
开启 Version 的内容,双击 Block Header 的那一行,把 Language ID 改为中文,Code Page 确定是 Unicode 没有错,就可以关闭对话框,再关闭 Version 内容视窗。
接下来点选
1[English (U.S.)]
让它成为选取状态,按滑鼠右键,选择Properties
,然後把Language
的地方设成 Chinese (Taiwan)。以後每编辑一项东西,也都要做这个动作,把 Properties 里的 Language 设成 Chinese (Taiwan)。但是在做这个动作以前,被须先双击该项目开启内容,然後关闭再来设定 Properties,否则有时设定语系後便无法开启内容编辑。
设定好後,就不会出现
[English (U.S.)]
的字样。
编辑 Dailog |
按一下
Dailog
(对话框)资料夹旁边的加号,打开资料夹会出现一系列的 Dailog 项目,每一个项目是一个对话框。在编辑以前你要先改变每一个对话框的语系,但在改变语系之前,必须先开启它 (双击该项目) 然後关闭,以避免改变语系後无法打开编辑。
这么多对话框一个一个打开关闭非常的麻烦,所以小正正教你一招,先选取全部的对话框项目 (滑鼠拖曳选取或按住 Shift 再点选头和尾的项目),然後按下 Enter,就可以一次打开全部的对话框内容 (可能会有点慢,要看有多少对话框)。
要一次全部关闭,选择 Visual C++ 下拉选单的
Windows → Windows...
,它会列出所有的视窗,选择所有刚刚开启的对话框视窗 (字尾有 [Dialog] 字的),然後按下Close Window(s)
,就可以一次全部关闭啦!! 注意别把所有的视窗都关闭了,连程式本身的视窗都关闭。最後按下OK
关闭检视视窗。趁著这些项目都还被选取的时候,按下滑鼠右键,选择
Properties
,然後把Language
的地方设成 Chinese (Taiwan)。就可以一次把所有的对话框的语系都改了,多方便!!接下来要做的就是一个一个分别去修改对话框的内容 (双击该项目开启内容),把讯息翻译成中文,再关闭。
在编修内容的时候,要编辑那一个字串,就用滑鼠双击它开启讯息内容,然後把英文字串翻译成中文。
某些英文字元前可能会有 & 这个符号,例如∶&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 存回到程式中了,你再去执行那个程式,会发现一切都不一样罗!! 好好享受自己的成果吧!!
常见问题 |
■ 我该到哪里取得 Visual C++ 来使用?
Visual C++ 是微软公司出的商业软体,必须购买合法软体使用。
■ 为什么我开启一个档案的 resource,却看不到 Dailog、Menu...呢?
并不是每一个 exe 或 dll 档案的 resource 都完整的有这几个项目,有些有、有些没有,看原本的程式设计者如何设计。我们只要翻译有的部份就好了!!
■ 当我翻译完成要存档的时候,Windows 出现下面的视窗,并且不让我存档,为什么?
Visual C++ 要在 Windows NT 的环境下才能把修改後的 resource 存回到程式中,在 Windows95 下不行,所以会出现这个讯息。为什么 95 下不行呢?? 这就要去问问微软了...。
■ 我翻译好後也存档了,但是执行程式,中文字全变成乱码了,为什么呢?
因为你在翻译之前没有修改语系,所以中文字就变成乱码了。
■ 我刚翻译完一个项目後才发现忘记修改它的语系了,怎么办,难道只能重来吗?
这时有一个方法可以试试,先不要修改语系,开启该项目,确定中文都还没变乱码。不要关闭项目内容这个视窗,同时切换到主视窗去修改语系,关闭修改语系的对话框,再关闭项目内容视窗。这个方式不一定能成功,你再次打开项目内容,如果中文没有变乱码,就表示成功罗!! (替自己偷笑一下吧!! =^_^=)
■ 修改语系後,却无法开启项目的内容来编辑,怎么回事?
在修改语之前,应该先开启一次该项目,关闭後再修改,才保证不会发生这种状况。
◎ 有其他问题请写信给小正正,也欢迎跟小正正讨论!!
Email: [email protected]