夜夜哥 发表于 2005-10-11 17:11:03

〖汉化教程〗如何汉化ASCII编码的软件及游戏

一、在前面要说的


      现在对于S60软件汉化有兴趣的人越来越多了,这对于我们中国人来说是个非常好的现象,如今的软件绝大多数是英文的,虽然用起来也不是很费力(那证明咱们有一定的英文知识水平:)但是英文水平再高也没有看着咱们自己的母语舒服啊,所以说汉化是一项必然要做的工作。
    论坛里已经有一些汉化Unicode码的教程,其中R威兄的最为全面,相信看过的朋友已经学会了,如果还没有学会的朋友建议先到R威兄的帖子去看一看:http://mobile.0110.cn/viewthread.php?tid=172074&extra=page%3D1
    在这里讲的是难度相对较高的ASCII码软件的汉化,Unicode码的在此就不多说了。



二、关于ASCII   


      现在软件中的字符串大致分为两种:Unicode码&ASCII码,在Unicode码中一个符号、一个英文字母和一个汉字都是占用2个字节,而在 ASCII编码中一个符号和一个英文字母只占用1个字节,而一个汉字仍然要占用2个字节,正由于这一点的不同,现在使用ASCII码的英文软件渐渐多起来,因为ASCII码能让软件的体积更小开发起来更方便。



三、汉化ASCII码的原理


      先用Unmakesis工具把.sis软件解压,我们要汉化的资源基本都在解压后的.rsc&.app这两种文件中,也有可能在其他文件当中,那要视软件而定,而ASCII编码的基本存在于.rsc文件中。
    用16进制编辑工具Hex WorkShop打开.rsc的文件,如图一所示则为ASCII编码的,如图二所示则为unicode编码的,相信大家能有所区别
http://www.bwo.com.cn/forum/attachment/39_17104.jpg

下面说一下汉化的原理:
如图所示:“setting”的ASCII字符串为
http://www.bwo.com.cn/forum/attachment/39_17112.jpg
08 08 53 65 74 74 69 6E 67 73
其中第一个08表示此字符串一共有8个字符
其中第二个08表示此字符串一共有8个字节
其中第三个53在ASCII码中表示英文字母“s”
其中第三个65在ASCII码中表示英文字母“e”
其中第三个74在ASCII码中表示英文字母“t”
...

那么如图把“setting”汉化成中文“设置”的ASCII码是:

http://www.bwo.com.cn/forum/attachment/39_17111.jpg
03 08 0F 8B BE 7F 6E 00 20 E0
其中第一个04表示此字符串一共有3个字符(“设置”+“一个空格”一共是3个字符)
其中第二个08表示此字符串一共有8个字节
其中第三个0F表示在此之后为Unicode字符串
其中第四、五个8B BE在Unicode码中表示汉字“设”
其中第六、七个7F 6E在Unicode码中表示汉字“置”
其中第八、九个00 20在Unicode码中表示为“空格”
最后一个E0代表在此之后为ASCII码,如果字符串到此为止,那么这个E0也可以写成00

ASCII码汉化的大致原理就是这样,当然例外的情况还有很多,那要视情况而定。
如“Help”的ASCII码字符串为:
04 04 48 65 6C 70
其分析方法如上,如果汉化成“帮助”的ASCII编码为:
02 05 0F 5E 2E 52 A9
这时你会发现汉化后的字符串比原来的多出一个字节,如果这样汉化后会导致程序错误,那么该如何解决呢?这里有一个最常用也是最简便的一个方法:那就是把其它字符串没有用到的多出来的字节剪切到缺少字节的地方
刚才那个“setting”汉化后的字符串:
08 0F 8B BE 7F 6E 00 20 00
这里的结尾出多出个空格00 20和一个没用的空字节00,等于一共多出3个,哈哈,那就不客气了,拿来一个字节00用先!把00剪切到“Help”的字符串后面就成为:
04 48 65 6C 70 00

这样回过头来再汉化成“帮助”:
05 0F 5E 2E 52 A9
字符串就一样长了哦:)

你从人家“setting”那里剪切了一个字节,那么千万别忘了把它的字节数改正过来!!!否则会导致程序错误,改过后“设置”的ASCII字符串应为
03 07 0F 8B BE 7F 6E 00 20

注意这种互借字节的方法只能用在软件选项中的同级目录中,如图中的“帮助”可以从“设置”中借字节,也可以从“控制”中借,不能从子目录“选择时间”中借!!总之在同一目录下有多余字节的地方借就可以了

http://www.bwo.com.cn/forum/attachment/39_17113.jpg
四、汉化的具体操作


      用Hex WorkShop打开要汉化的文件,然后就可以直接修改里面的字体编码,至于到哪里去得到汉字、符号、字母的Unicode代码,这有很多方法,可以用 Hex WorkShop的替换功能,也可以用小狗狗ResEditor随便打开一个文件,然后用小狗的替换功能就可以了,方法多种就看你喜欢哪种方式了,我比较喜欢用小狗狗ResEditor&Hex WorkShop相结合着用,效率还可以,如图

http://www.bwo.com.cn/forum/attachment/39_17120.jpg

http://www.bwo.com.cn/forum/attachment/39_17121.jpg
需要注意的是不管我们用那种方法查到的汉字、符号、字母的Unicode代码都是与我们要输入的代码是相反的,如我们查到汉字“设”的Unicode代码为“BE 8B”们在修改时要倒过来输入为“8B BE”,这样在软件里才能正常显示“设”
    汉化是一项需要耐心的工作,不能烦不能躁,更要细心,避免一些不必要的小错误,还有就是在汉化的过程中要注意随时做好备份工作&测试,不然哪里出现一些细小的错误或是家里突然停电(我家就常是,哭都没地方。。)而造成汉化半途而废,如果说真的遇见汉化错误而又不知是哪里错了,那么我推荐你用Hex WorkShop的比较功能来把你有错误的文件与没有错误的文件对比一下,也许你能找到原因,如图:

http://www.bwo.com.cn/forum/attachment/39_17105.jpg

http://www.bwo.com.cn/forum/attachment/39_17106.jpg

五、最后要说的

      这个教程只是一个汉化ASCII码软件的入门教程,都是最基本的,也可以说是我自己总结的一些汉化经验拿出来与大家分享,希望对于那些刚开始学习汉化的朋友有些帮助。
    我不是学计算机的,所以有些说的不是很恰当、错误什么的还请大家原谅、指点。

转自bwo cuckoo_1984的教程

小白 发表于 2005-10-12 22:57:11

夜夜哥好,夜夜哥威。夜夜哥是好样的,你是我的偶像。毛毛老大,夜夜哥应该做汉化的工作,要他测试软件太大才小用了

山高高 发表于 2005-10-17 21:28:01

呵!夜夜哥辛苦了。

regspy 发表于 2005-12-1 14:18:56

用 点睛字串替换器 1.05 试试

消失网络中 发表于 2005-12-2 12:03:10

R威的帖子我无权查看,能不能公开啊

消失网络中 发表于 2005-12-4 14:48:29

还是上面的要求

消失网络中 发表于 2005-12-7 11:14:05

怎么不把帖子移过来啊

夜夜哥 发表于 2005-12-12 16:24:46

发图片。。
页: [1]
查看完整版本: 〖汉化教程〗如何汉化ASCII编码的软件及游戏