翻译原始程式

 

1. 翻译 rc 档
将字典档翻译好了之後,我们利用 glossary 中的 trans.pl,把刚刚那个英文 rc 档给翻译成中文。如果你是用其他的软体来产生字典档 (例如: cpatch),请先将字典档中的特殊记号去掉 (只剩下英文和中文翻译) 再使用 trans.pl。

2. 将 resource 剪贴回原始程式
用 Visual C++ 打开这个翻译过的 rc 档案和该 rc 档的原始程式 (例如∶Fusion.exe 的 rc 档是 Fusion.rc),把翻译过的 rc 中的资源 (Dailog、Menu、String Table) 一一用剪贴复制的方式贴到原始程式的 resource 中,把原来英文的资源删除掉 (同样的资源保留一个中文的就好),并且顺便检查翻译的正确性,Dailog 中有没有字串被挡住,需要调整大小...等等。

在这里,如果你之前没有把 rc 的语系先设成 Chinese (Taiwan) 的话,开启 rc 中的资源就会变成乱码,要特别的注意。

3. 回存档案
都弄好、调整好了以後,就把 resource 回存档案中吧!! 千万记得, Visual C++ 要在 Windows NT 下才能回存, Windows 95 或 98 都不可以!! 所以之前的步骤你可以在 Windows 95 上做,但是这个步骤一定得在 Windows NT 做上才行。

4. 测试中文化後的程式
把中文化好的程式复制回原本程式安装的目录,取代原来的档案,执行看看,开始测试是否可以正确的执行程式各项功能,或是哪边有翻译不妥的地方,再回到 Visual C++ 中修改。

如果程式不能正确执行,表示你在 String Table 中修改到了一些系统变数,回去检查看看、猜猜哪些比较像是系统变数,把它恢复成原来的英文字串。然後存档再执行、再测试,你可能需要来回跑好几遍,到一切都完整无误才行。(你总不能把一个程式中文化到坏掉吧!!)

 

 

小魔法 要特别注意有下拉选单的 Dailog,因为这些下拉选单中的内容往往是 ASCII 文字,不是从 String Table 中去取字串 (我称之为程式写的烂,让我们中文化很麻烦)。 resource 中都是 Unicode 字串,在 Visual C++ 中也无法看到 ASCII 文字,更糟的是,如果你变动了有下拉选单的 Dailog 的任何内容,存档时 Visual C++ 就会把 ASCII 文字都存成 Unicode。这时我们测试程式时,下拉选单中的内容就会不见啦!!

所以小正正的方法是,编辑 resource 时不要去动有下拉选单的 Dailog,让它保有原来的样子,甚至不要去改变它的语系,这样存档时 Visual C++ 就不会去动到它的 ASCII 文字。但这样就没有中文化那个 Dailog 了啊!! 没关系,後面会教你其他的方法来补救。

有些有下拉选单的 Dailog 是可以去编辑修改的,因为该下拉选单的内容并不是 ASCII 文字,它有可能是从 String Table 中去取字串,或是一些系统资讯 (例如∶字型),判断原则是,那些下拉选单内容是虽情况变动的。这就要靠你自己聪明的头脑去判断到底那些可以翻译,哪些不行了!!

遇到这类 Dailog 时,你可以将翻译一半的程式先存档备份,然後来做个试验,修改这种 Dailog 看看会不会有问题。如果有问题的话再把备份拿回来就好了。要特别注意的是,万一有问题,你把原始 rc 中的那一个英文 Dialog 剪贴回来可能没有用处,因为剪贴的过程就相当於修改 Dailog,ASCII 文字早就死翘翘了。 (我只说 "可能" 没有用处,有些程式这样剪贴还是有用的。)

 

 

 

上一页回首页下一页