·汉化新世纪 ·汉化新世纪论坛 ·百家争鸣 ·论坛集萃 ·汉化问答 ·软件介绍
文章首页 >> 汉化时事 >> 汉化问答 >> C程序汉化时乱码的讨论    Creative Commons License,创作共用协议(中文版)  署名 非商业性使用 禁止演绎

C程序汉化时乱码的讨论

作者: 大宇 来源:汉化教学 时间:2003-07-28 点击:12554

C程序汉化时乱码的讨论

 

  zcy:sos!!!汉化中dialog出现乱码,语系已改。


  我正在学习汉化,在win2000,vc++6.0下进行,menu汉化处理后是正确的,但dialog却是乱码的,急欲了解,请告知,或传相关的资料给我。

  大宇:什么软件?方便的话传上来大家分析分析...:)

  这样便于有的放矢...

  zcy:很抱谦!软件存在版权问题,其是一个工业测量软件。

  mago:愚蠢地回答是你对话框的字体改了吗?


  还有哦,对话框可能调用的是其他的dll,而那些你并没有注意到,特别是大型软件,尤其如此。

  zcy:字体改为9,宋,对于调用其他的dll,我再查一查。

  大宇:拙见...

  乱码肯定是由语系造成的,如果没有改变语系,设为宋体,恐显示就不大对头了;:),不过也有个别软件语系改为中国后,也会显示乱码,这种情况的对话框的语系不改则正常,不过字号好象小一点:)。具体情况不清楚,说不好,例如winzip的对话框以数字开头作ID的可修改语系,以字符开头的则不能改,改了就乱:)再试试吧,限于水平,先说到这,祝好!

  zcy:太伟大了,真不愧是老法师,谢谢,有问题还请多指教

  zcy:大宇兄,可否传seatools给我,在几处下载均碰壁。....

  大宇:不会吧?!,天涯难寻,就去海角:)

  到这里下吧,驭海人,seatools的作者主页http://extend.hk.hi.cn/~seadvr/hanhua/seatools10.zip

  zcy:谢谢!顺利地找到了!

  zcy:大宇兄,又要麻烦你了,在汉化过程中有几个问题,请多多指教!!


  1.在一个*.DLL文件中,有version,且在string table中有二个string table,一个包含了hint的内容,一个包含了最下端提示框的内容,不管改哪一个语系,总有另一个出现乱码,而二个有不能同时将语系改为CHANA[P.R.C],应该如何处理?

  2下拉框中的内容如何修改?

  3.汉化后,有些编辑框内的缺省值丢失,如何处理?

  4.汉化后,有的中文内容的后几个字无法显示出来,如何处理?但其中文串长比英文串长短。

  领导在催我完成任务了,可我还有哪么多的问题,请大宇兄救一救了。

  大宇:最好来几幅图,我替你保密:)

  一下了这么多问题我也很晕呀。主要是看得不很明白:)

  1.一般来讲,好象没碰到字串表不能汉化的问题,version的语言名能否改变,看看如何

  2.下拉框是什么?

  3.编辑框的缺省值失踪,是汉化过度了吧。

  4.中文串短于英文串,应该没有问题,调整显示的长度试试。

  说不清呀,抓几幅图看看,这样清楚一点:)

  zcy:version的语系修改都不影响这个问题


  在窗口的上面的乱码在一个string table项中出现,下面的提示栏文字在另一个string table 项中出现。

  string table

  string table (English[u.k]) (这里包含窗口上乱码的内容)

  string table (Germany[Germany])(这里包含窗口下面提示栏的内容)

  目前将germany 该为 china,如果将english改为china则上面是正确的,而下面则出现乱码。而二个string table项不能同时改为china,version语系改不改都一样。

  WWP:……


  关于2.你汉化时看不到字串很可能是ASCII字串;关于4.是对话框中的还是字串表中的字串?

  大宇:WWP兄神龙再现,快来救我:)


  兄台怎么上次知难行易后就找不着了,想念得紧。:)关于zcy友提出的问题,我也是糊里又糊涂,呵呵。zcy友抓的图没有给后缀,试了试,原来是jpg,看不清楚:(

  两种语言的字串表,如果改成english不知会如何?

  WWP兄来救救急,我很想帮帮zcy友,可不知该如何下手呀?!

  另zcy友,可将你的4种情况的具体表现抓成图,gif格式最好,小一点无所谓...

  BTW,其它朋友也来发表发表意见?怎么都藏起来,以后俺不到你们的论坛里灌水,嘿嘿。是谁?他们自己知道:)

  Ronnier:一些个人看法:


  没法不贴啊,看看下面的帖子,有某人拿着“宁愿自己淹死也不把水往外灌”相威胁,不得已……

  1.一个String Table是英语,一个是德语(语系)?它们不能同时改为中文?这是怎么回事呢?除非它们拥有相同的ID,否则应该是不可能的啊,如果真的是拥有相同ID的话,试着将其中一个改为“中性”。

  2.那些没有汉化到的E文是ASCII字串。

  3.缺省值丢失,试着找是否有与原英文字串对应的ASCII串,也将其汉化。

  4.显示不了是什么意思?把这个项目的宽度调大试试?

  不知你这个是什么软件,纸上谈兵,瞎说而已。^_^

  大宇:不要着急,慢慢来:)


  乱码很讨厌,最近有朋友说,即使改了语系,有的软件也会出现乱码,真是....

  楼上Ronnier的方法值得一试,嘻,我还没想到改中性呢:)

  那些你找不到的字符是ascii字符,在rc文件里找不到。需用其它的工具如字符串替换器来提取。

  建议先看一下汉化新世纪的有关教学文章,伟乾、明白、chinease等的文章。

  当初你的对话框乱码是如何解决的,是有的ID没有改语系吗?我以前给你的意见其实取自吕达嵘关于汉化winzip的心得,不过有所联想而已,因为做过的软件不多,没碰到过类似情况,不好妄加评述。

  提个小小建议,我从你汉化的图中看到的如“(O)选项”,如果译成“选项(O)”是不是更好一点:)

  zcy:谢谢各位仁兄的大力相助!

  将其中一个string table的语系改为“中性”,乱码就没有了,哈哈!!!多谢,多谢!!!

  Ronnier:所以说有的时候中庸之道也不错哦。:)


  zcy:很不好意思。又要请教各位了!!!

  在把所有的exe,dll文件初步汉化后,仔细走了一下程序,发现还有一个没有汉化,再搜寻一边,仍没有找到exe,dll,通过用资源管理器中字符串内容匹配,找到相关文件,但其扩展名为:DLG,无法用VC++打开,如何处理???

  大宇:这样来做...

  笨一点的办法用HW和UE打开后修改。

  更好的办法是用字串替换器或cxa来提取ascii和unicode,修改后写入。

  VC++无法读取很正常,没有一个工具是包打天下的:)

  建议系统阅读一下教学文章,世纪里都有,然后再找一些不同语言编写的小程序练练,欢迎加入汉化队伍:)


  -----------------------------

 编注:本文引自大宇论坛


汉化新世纪 责任编辑: 乾 .:|:. 标签(Tag): 乱码 语系 问答

·上一篇: 偏移量转换器 0.94 版 ·下一篇: 小菜汉化日记连载一

· 版权申明: 本文引自《汉化教学》,如有版权疑问请及时联系本站,以便本站处理。

· 转载申明: 本文引自《汉化教学》[ 作者: 大宇],如需转载请直接联系原始作者,并请注明原始出处。

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

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