分享
 
 
 

汉化 VB 程序一点心得(转贴)

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

汉化 VB 程序一点心得(转贴)

文:李应文 来源:teach.hanzify.org

以 AYE Text to MP3 v2.1 为例浅谈一下汉化过程及工具的使用

李应文

虽然玩汉化有一年多的历史了,但接触 VB 类程序的汉化还是第一次。鉴于汉化过程中出现了好多的困惑,特将汉化过程简述一下,希望能为和我一样的朋友在汉化 VB 类程序上有所帮助。

第一步,检测一下程序是否被压缩或加密。

用 PE iDentifier v0.91(我习惯用它,其实 FileInfo v3.01 也是不错的选择) 检测到该软件加了 ASPack 2.12 的壳。

用 UnASPack v2.12 脱壳后,再用 freeRes v0.94 处理一下(脱 ASPack 2.12 的壳也可以优先考虑一下 CASPR v1.100 )。

用 PE iDentifier v0.91 再检测一下,可以看到该软件使用 Microsoft Visual Basic 5.0 编译。

第二步,对ASCII 和 Unicode 进行汉化。

用 GetVBRes v0.80 打开程序,程序会自动查找 ASCII 和 Unicode 字符串并以列表的形式呈现给用户(如果你的机子够快的话,可以选择狂风VB语言汉化王 v0.98)。找到需要修改的字符串后双击该行打开字串处理对话框,在这里我们可以对其字串进行翻译。需要说明的是,当汉化后字符串长度少于原字符串的长度时就需要用 00 或 20 添充。究竟该选择哪一种呢,除按钮及一些隐藏提示外建议“用 20 添充”。如图:

修改完成后单击 [更新当前程序资源] 按钮。

单击[运行当前程序按钮] 测试一下。怎么界面中还有许多英文呢,原来这些英文都是 Unicode 字符串,由于 GetVBRes v0.80 本身的局限性找不到这部分资源,我们接下来手动完成。说到这儿也许有朋友要问,为什么不用《狂风VB语言汉化王 v0.98》呢?其实,由于这部分资源的特殊性,它也无法查找到。另外,它提取的有些资源会重复一两次,而且它的加字功能还不够完善。

还有一个问题,就是界面中字符串后出现了许多小正方形(提示: 如果在汉化时选择“使用 00 添充”遇不会出现这种情况)。不要紧,这是由于字体设置不当引起的,呆会儿我们解决。如图:

先修改“Cancel”。用 点睛文本编码查询 v0.90 算出“Cancel”及"取消"的 Unicode 值,用 UltraEdit v10.10b 替换,如图:

我们用同样的方法做好其它的按钮。

注意:此处按钮的修改。它是以 Unicode 的形式存在的,但长度标识是以 ASCII 的长度来计算的(好奇怪也),否则字符会显示不全或暂停功能损坏,修改如图:

至此,字符串资源的汉化已完毕。

第三步,修改字体及字号。

本来想偷个懒,用《狂风VB语言汉化王 v0.98》修改字体,不料竟出现了如图问题,只好手动来完成。

VB的字体块一般有个标准的结构,如图:

第一个字节表示此字体块所属的控件类型。

第三个字节代表“语系”,英文为“00”,简体中文为“86”。

第五个字节用来指示字体的风格。

第六、七字节共同组成一个双字节整数,表示字体的“粗体因素”。值一般为 90 01(规则) 或 BC 02(粗体)。

第八、九、十、十一字节共同组成一个四字节整数,表示字体的大小。9号字是“90 5F 01 00”。

第十二个字节表示字体名的长度,比如字体名是“Verdana”,则此字节就是“07”。

红色区域所表示的是字体名称。

在汉化中,我们所要做的就是将第三字节改为“86”,将第八、九、十、十一字节改为“90 5F 01 00”,至于字体名称是不需要修改的,软件会调用系统默认的字体显示。

接下来就可以用 UltraEdit v10.10b 等十六进制编辑器来查找修改了(可查找“010000009001”或“01000000BC02”)。

那么,为什么“_”变成“0”和“X”变成“r”呢?原来这些按钮不仅仅使用了图像资源,而且使用了字符“_”和“X”,并使用了很特殊的语系“02”。《狂风VB语言汉化王 v0.98》会自动识别语系代码,并将其全部修改为“86”,导致按钮显示出错。对这一部分我们不作修改(共有5处)。

至此,字体的修改已经完成。完成图:

当然,如果你觉得汉化后的控件位置不太好的话,还可以使用 VBEditor 调整一下。如图,静态文本和动态文本框的距离也太大了吧?

如何使用 VBEditor 调整呢?如图:打开程序后,点击窗体“oneForm4”在其属性下拉列表框中依次选择控件“Text1(1) TextBox”和“Text1(0) TextBox”,对其进行修改。如图:

到这一步为止,所有的修改已经完成了。全面测试一下……OK!

因为乱码问题没有将上一个版本界面中的一句话翻译,真的没有办法解决吗?回答是否定的,那么来看一下如何解决吧。

VB 对我来说很生疏,一切还得碰碰运气。用《点睛字串替换器》抓一下,看到下面的代码了吗?

修改说明:

“rtf”是文本格式,修改为“txt”也可以。

“ansi”是一种语系,修改为“default”或“gb2312”都行,当然下一处也得改动。

“charset”是字符集,当然要改为“86”。

“Verdana”一种常见的字体名称,改为“宋体”(此处不同于 VB 程序中的常规调用,不改不行)。

“s”代表字体大小,改为“18”即可。(18——9号字,)

(这段代码很长,我也是根据其字串特点猜到几个,其它的还希望诸位朋友见教。)

修改后便可以正确显示中文了,可别太高兴哦,软件不支持中文朗读的。

讨论:

李应文

常见的语系代码有"00"和"86"

另外,在汉化另一个VB程序中发现有这样两种语系代码:“02”和“EE”

问题:这两种代码是何语系?

paulhou

还有一个88,繁体中文!谁有语系代码表,我也很想了解!

莫名

rtf 中的字符集应改为 charset134,这里是用十进制计的。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有