转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
汉化 VB 程序一点心得(转贴)         ★★★★

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

作者:闵涛 文章来源:闵涛的学习笔记 点击数:764 更新时间:2009/4/23 18:59:02
汉化 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,这里是用十进制计的。


[VB.NET程序]GSM短信模块库函数,可以用VB,VC,调用简单实用  [办公软件]PowerPoint做交互课件之弃用VBA
[办公软件]VBA获取U盘、主板、CPU序列号和网卡MAC地址  [办公软件]VBA设置文件属性及加密源代码示例
[办公软件]VBA中初始化ADO连接的几种方法  [网络安全]“VB破坏者变种N”病毒摘要
[Web开发]ASP.NET上传文件到数据库VB版  [办公软件]在Excel中利用VBA实现多表单元格数据的读取与赋值…
[办公软件]使用Vba读取已关闭的Excel工作薄数据到当前工作表…  [办公软件]Excel编程基础之VBA文件操作详解
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台