·汉化新世纪 ·汉化新世纪论坛 ·百家争鸣 ·论坛集萃 ·汉化问答 ·软件介绍
文章首页 >> 汉化教学 >> 特殊汉化 >> 修改字体FAQ:    Creative Commons License,创作共用协议(中文版)  署名 非商业性使用 禁止演绎

修改字体FAQ:

作者: 雅枫 来源:teach.hanzify.org 时间:2005-03-18 点击:11109

1.为什么要修改字体

为什么要修改字体呢?修改字体的原因无非有两种:1,美化界面,2,解决部分乱码问题。

先说说第一种情况,由于英文程序普遍用的字体是8号英文字体,而中文程序普遍用的是9号宋体,所以有些地方的字体会显示比较小,中文字体能完整显示的字体是9磅字体。有些朋友会问:为什么我用8号英文字体在2000下也会正常呢?原因可能是这样:英文字体中不包括中文的字模,如果用英文字体显示中文,则系统会用一种叫“字体连接”的方式调用宋体中的字模,如果源字模中没有相应的字体大小,则用相近的来代替。可能是8号的宋体没有被连接到英文字体中,所以自动调大了一号,用9号字进行显示,所以在2000下也会正常。但是如果原字体为7号,则中文显示将非常小,必须改,8号字则为了98下完美显示,也最好改成9号。

第二种情况是字体显示出现了乱码。字体乱码的情况一般有两种:1:字体语系不对,语系也叫代码页,中文的语系代号是86h,而英文语系的代号是0h,系统默认语系的代号则是1h,一般,如果是英文语系容易出现乱码,改为其他两者则一般不会。2:UnicodeASCII或者ASCIIUnicode错误,这是由于汉字编码与英文编码的差异决定的,Unicode的英文与ASCII是兼容的,ASCII转成Uincode只要把8位字节型扩展为16位就可以转为Unicode同理,Unicode转化为ASCII也只要把16位的高8位去掉即可,所以程序员可以自己编写一些小函数来实现编码的转换。但汉字不同,必须用微软提供的WideCharToMultiByte (UnicodeASCII)或者MultiByteToWideCharASCIIUnicode)来转换,为什么程序员喜欢自己写代码来转换呢?因为微软提供的上边两个函数并不算好用(比较麻烦)。顺便说说汉化中的截字问题(就是有些字串汉化后会只显示一半),这也是统计字串长度产生的问题,ASCII转化成Unicode英文只要简单的吧字串长度*2即可,中文字串则转化前后长度相等。如果碰到的是前一种情况,简单的修正一下字体即可搞定,后一种情况难度较大,需要有比较深的windows程序设计功底与汇编分析能力,并且如果软件的数据结构比较复杂,就很难修正,建议寻找高手尝试解决,或者直接将问题反馈给作者修正(其实也就是作者几句代码的工作量,所以推荐后者,因为汉化并没有义务修正bug,除非软件停止了更新)。

2.修改字体需要什么工具

工具有两种,即静态反汇编工具与动态调试工具,此外还用到一些十六进制编辑器,PE编辑器等等,静态反汇编工具主要有W32DasmIDA Pro,动态调试工具主要有98下的TRW2000以及在各个平台下都能运行的SoftIceOllydbg,初学者我推荐用Ollydbg,因为这个工具动静结合,具有较强的调试能力,又有比较不错的反汇编分析引擎,个人认为:这款工具的反汇编分析引擎强于W32dasm调试能力比TRWSoftice差一些,但是TRWSoftIce极其难学,如果你没有用这两个工具的经验,还是用Ollydbg吧。至于IDA Pro静态能力超强,只不过程序巨大加上反汇编超慢,我没用它分析过程序。PE编辑器推荐Lord PE,我试用过好多PE编辑器,最后选择了这一个,如果你用着别的好用,那也无所谓,十六进制编辑器不用我解释,大家都会用。

3.修改字体有什么步骤

首先,要先修改完所有标准资源的字体,VC类程序要先修正所有对话框的字体,Delphi类则要修正所有DFM里的字体(否则会造成干扰),改完后如果字体还有不正常的,要先试着用梁利锋大师的字体修改工具修改,如果还无效,则必须手改了,如果决定了手改,建议修改未用自动修改工具修改过的(既然要手改了,当然要改的完美一些)如果嫌要改的地方太多,这可以考虑修改自动设置过的程序,不过千万不要改用FontSeler或者FontFly设置过的字体。如果你传给我让我帮你改^_^,还是传汉化后,修改完标准字体得程序:)

4.修改字体需要什么样的知识

汇编语言以及windows程序设计!,不过没有也不是不能改,但是有一定的汇编基础加上windows程序设计能力,无疑能使得你在修改时更具灵活性(如果能学得跟我差不多,则现在教程上写的那些都属于能秒杀的字体^_^)汇编不需要太精通,能懂MOVPUSH/POPCALL/RETLEA等几条最常用的即可,寄存器一定要明白是干吗用的,要有点寻址知识,windows程序设计则不要学MFCDELPHIVB等的“windows程序设计”一定要是WIN32,也就是平常说的SDK程序设计,也不用学得太复杂,看好GDI部分即可。学会后要多练习一下,顺便提高一些调试能力,调试能力越强,改起来就越快,就越可能修改难度大的字体。其实改正并不难,关键是找到要改的地方:)

(未完,随时更新)

汉化新世纪 责任编辑: 乾 .:|:. 标签(Tag): 字体 修正

·上一篇: Clustalx字体的修改笔记 ·下一篇: 打造个性的自解压模块, WinRAR 软件实用教程

· 版权申明: 本文引自《teach.hanzify.org》,如有版权疑问请及时联系本站,以便本站处理。

· 转载申明: 本文引自《teach.hanzify.org》[ 作者: 雅枫],如需转载请直接联系原始作者,并请注明原始出处。

相关文章                                                                                发表评论 打印此文 关闭窗口

| 设为首页 | 加入收藏 | 联系我们 | 友情链接
Creative Commons License,创作共用协议(中文版)  署名 非商业性使用 禁止演绎
本站内容,除转载或版权特别申明的内容外,皆遵守 创造共用协议中文版之“署名-非商业性使用-禁止演绎 2.5 中国大陆”条款
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.5 China License.
本网站内容源自汉化新世纪论坛的摘录和汉化新世纪成员的原创文章。
凡汉化新世纪论坛的文字皆默认为汉化新世纪与原作者共同拥有并授权发布。
如对本站发布文章有所异议请来信告知,我们将及时删除。
凡商业摘录本站文字请先与我们联系,本站将保留非授权商业发布的追究权利。
凡非商业摘录本站文字请明显注明出处和原作者,并不得改动,凡改动必先征求原作者同意。
苏ICP备05002283号