|
原帖由 2011leikebade 于 2011-1-13 21:44 发表
,谢谢牛兄指导,另外版主和牛兄,我的为什么在文本方式界面就是乱码?请指教。
乱码原来是这个原因:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=135764&extra=&page=3
有一点需要弄明白:GFXMENU 所用的是 UTF-8 编码的中文,而 GRUB4DOS 中文版使用的是 GB 码的中文。因此,这个不能两全。
本来我早已打算让 grub4dos 彻底支持 UTF-8【同时也放弃支持 GB 码】。但是,身体不好,不能继续开发了。在目前的GRUB4DOS 中,在访问文件名的时候,必须用 UTF-8 的文件名,但在屏幕显示的时候,还没有支持 UTF-8,因此,UTF-8只实现了一半,需要做另一半的工作,即显示 UTF-8 字符的工作。当 UTF-8的支持完整实现后,中文版的补丁就不需要了,因为英文版本身就已经是国际化的了。这个工作很麻烦,但是如果有人愿意去做的话,应该也是可以完成的。目前来说,如果有人能够说服 bean 或者 gandalf,他们都可以搞定。不过这确实是很麻烦,是一个辛苦的活,他们不一定有时间【或者有兴趣】去做。
有个解决的办法:当使用 gfxmenu 时,使用 UTF-8 编码的菜单。当退出 GFXmenu 后,立即用 configfile 切换到 GB 编码的中文菜单,这样问题就算解决了。
http://bbs.znpc.net/viewthread.php?tid=5596
退出gfxmenu后显示中文问题的探讨
grub2里有对utf-8的支持,而grub4dos对utf-8的支持却不完美。
这导致gfxmenu退出到grub4时原utf-8的菜单可能会因编码问题而显示为乱码。
目前暂时只有两种解决方案:
1. 使用不同编码方案的两个menu.lst菜单。
即在utf-8编码主菜单的gfxmenu 命令后包含一条configfile /another-menu ,来加载另一个菜单。这样,退出gfxmenu后会自动加载另一个菜单。这样,another-menu 就可以使用gb2312编码的menu.lst。
(具体可查看readme后面的another-menu部分)
格式一般为:
find --set-root /message
gfxmenu /message
configfile /another-menu
title 0
xxx
title 1
xxx
缺点:由于使用了两个菜单文件,增加了存储空间。
2.使用单一菜单
即将menu.lst文件全部用英文书写(由于ascii码是通用的,编码格式不限),利用gfxmenu自身的翻译功能,将对应的title 翻译为中文。(不过这需要自行编译message。具体看bean 大的贴子)
缺点:需要修改message文件将对应的标题行翻译过来。对于普通用户,不易掌握。
---------------------------------------------------------------
另,在退出gfxmenu时,如果希望任意情况直接进入fontfle的中文支持环境,utf-8主菜单可采用如下格式(实际是使用前述的方案1),例如:
find --set-root /fontz.gz
fontfile /fontz.gz
gfxmenu /message
terminal graphics
configfile /gb2312-menu.lst
title 【0】普通gfx-utf-8菜单转gb2312编码菜单示例
fontfile /fonts.gz
configfile /gb2312-menu.lst
title 1
xxxx
title 2
xxxxx
总之,目前的解决方法都因为utf-8支持的不完美而具有缺憾,(主要是fontfile支持的是gb2312编码)。
希望到0.4.5正式版时能解决这个问题。
对于单一菜单部分,我其实最想表达的是 gfxmenu 退出后,默认进入的是文本模式,如果希望直接进入中文支持环境(图形模式),需要在其后加一条'terminal graphics'命令才能简单的转换到图形模式。(当然这还需要在gfxmenu前包含对图形模式的初始化,比如通过fontfile /fontz.gz来初始化)
不过,你所说gurb4dos没有'翻译功能'的理解或许需要更新一下认识。
对于标题行而言,在正式版之前很久就已经实现了标题行帮助功能。(你可以查看readme 的相关帮助,或这个帖子有个简介http://bbs.znpc.net/viewthread.php?tid=5535&;extra=page%3D3)
你所希望的'翻译‘的功能就可以通过对标题行增加提示信息来实现。比如:
title boot window \n启动Windows系统
xxx
title boot (hd0,4) \n启动(hd0,4)分区
xxx
另外,复杂和麻烦一点也可以用dd ,write等命令配合用户内存变量区来修改菜单文件,实现直接在标题行处转换。不过这样做很无聊。
[ 本帖最后由 afafvvvv 于 2011-1-14 20:36 编辑 ] |
|