无忧启动论坛

 找回密码
 注册
搜索
最纯净的「微PE装机优盘」UEPON大师作品系统gho:最纯净好用系统下载站数据恢复、数据保护、视频编辑
Win To Go 极致利器(IXUNCIS固态U盘)无忧启动网成立20周年!广告联系 QQ:184822951 微信:wuyouceo
楼主: lgl007

[分享] grub4dos0.45c/0.46a最新版底部说明汉化

  [复制链接]
发表于 2015-5-29 17:33:29 | 显示全部楼层
2011yaya2007777 发表于 2015-5-29 17:02
进入菜单后,直接按 e 键,没有问题。再按 e 键也没有问题。
那里有个判断语句 config_entries ?... : .. ...

请把您编译的按e键没有问题的汉化版分享一下,谢谢!!!

点评

我觉得这个版本仍然存在缓冲区溢出问题,它只不过没有引起死机罢了。这不是一件好事。死机能暴露出问题,不死机会让问题隐藏起来。如果某个编译器自动把 buff 放在 “堆” 内存而不是 “栈” 上,那就有可能避免死机  详情 回复 发表于 2015-5-29 17:55
回复

使用道具 举报

发表于 2015-5-29 17:39:17 | 显示全部楼层
本帖最后由 不点 于 2015-5-29 17:50 编辑
2011yaya2007777 发表于 2015-5-29 17:02
进入菜单后,直接按 e 键,没有问题。再按 e 键也没有问题。
那里有个判断语句 config_entries ?... : .. ...


我不知道是不是因为标点符号造成的,也许中文的标点符号只占用两字节?再仔细数一遍:

  1.         i = grub_sprintf (buff,"\n 用 %c 和 %c 两键将一个菜单置为高亮。"
复制代码


其中,汉字是 13 个。中文的句号 1 个。英文的回车符 1 个,英文空格 5 个,英文的 char 有 2 个。

  1.         " 在当前行,按  \'e\' 键进行编辑,按 \'d\' 键删除,"
  2.                 " 按 \'O\' 和 \'o\' 两键可在其之前或之后插入一个新行。当编辑结束时,"
  3.                 "按 \'b\' 键启动,按 \'c\' 键进入命令行,按 ESC 键退回到主菜单。"
复制代码


其中,汉字是 57 个。中文的逗号和句号 8 个。英文的单引号 12 个,英文空格 17 个,英文的 char 有 9 个。


这样,汉字总数是 70 个,中文的逗号和句号 9 个。英文字符共有 1+5+2+12+17+9=46 个。

70×3=210
9×2=18(姑且把中文标点符号按 2 个 utf8 字节计算,不一定对,也许是 3 个)。

这样,210 + 18 + 46 = 274,仍然是超过 256 的!

如果中文标点符号占 3 个字节,那就是 210 + 27 + 46 = 283 个字节。

这与你调试得到的 233 不符啊?问题究竟在哪里?

【更新】

我似乎猜到是怎么回事了。你只计算了第二个字符串的长度,却没有计算第一个字符串的长度。第一个字符串的长度正好是 50 个字节,这样,283 - 50 = 233 就是你调试得到的值。但这不是从 buff 处放置的字符串,而是从 buff + i 处放置的字符串。此处 i = 50,因此,这仍然是要溢出的。

回复

使用道具 举报

 楼主| 发表于 2015-5-29 17:39:51 | 显示全部楼层
chenall、不点及各位老大,你们好:
    根据不点老大的意见,我对汉化的文字进行了精简,终于解决了死机问题,现在运行正常。在这里谢谢各位老大在百忙之中给我的回复,现在我把diff文件上传,随后我把新编译的汉化版上传。
再次谢谢各位老大对我的支持。

grub4dos_0c0ea06.rar

1.77 KB, 下载次数: 22, 下载积分: 无忧币 -2

点评

这个版本是安全的,不再发生溢出。 汉字 67 个。中文标点 9 个。英文字母 11 个,回车 1 个,英文空格 13 个。 总字节数为 67×3 + 9×3 + 11 + 1 + 13 = 253,距离 256 还有 3 个字符的空间。如果连字符  详情 回复 发表于 2015-5-29 18:31
回复

使用道具 举报

发表于 2015-5-29 17:55:44 | 显示全部楼层
zqywult 发表于 2015-5-29 17:33
请把您编译的按e键没有问题的汉化版分享一下,谢谢!!!

我觉得这个版本仍然存在缓冲区溢出问题,它只不过没有引起死机罢了。这不是一件好事。死机能暴露出问题,不死机会让问题隐藏起来。如果某个编译器自动把 buff 放在 “堆” 内存而不是 “栈” 上,那就有可能避免死机。但只要溢出,会破坏堆内存的数据,是个隐患。因此我认为,这个版本不可靠。
回复

使用道具 举报

 楼主| 发表于 2015-5-29 18:05:15 | 显示全部楼层
各位老大,你们好:
    附件为我重新编译的0.45c的最新汉化版。按不点老大的意见重新对汉化部分进行了精简,我在机子上已经重新启动进行了试用,解决了按e键死机问题。对上次发布的版本对网友说声抱歉,已经下载的网友可重新对下载最新的。再次谢谢chenall、不点等给予帮助的老大们。

grub4dos-0.4.5c-2015-05-29汉化版.7z

260.29 KB, 下载次数: 117, 下载积分: 无忧币 -2

点评

谢谢! 重新编译的0.4.6a新汉化版也发出来吧!  详情 回复 发表于 2015-5-30 00:10
回复

使用道具 举报

发表于 2015-5-29 18:31:08 | 显示全部楼层
lgl007 发表于 2015-5-29 17:39
chenall、不点及各位老大,你们好:
    根据不点老大的意见,我对汉化的文字进行了精简,终于解决了死机 ...

这个版本是安全的,不再发生溢出。

  1.                 "\n用%c和%c两键将一个菜单置为高亮。"
  2.                 "在当前行,按 e 键进行编辑, d 键进行删除。"
  3.                 " 按 O 和 o 可在分别其之前或之后插入一个新行。编辑结束时,"
  4.                 "按 b 启动,c 键进入命令行,ESC 键退回到主菜单。"
复制代码


汉字 67 个。中文标点 9 个。英文字母 11 个,回车 1 个,英文空格 13 个。

总字节数为 67×3 + 9×3 + 11 + 1 + 13 = 253,距离 256 还有 3 个字符的空间。如果连字符串结尾的 Null 字节计算在内,则有 2 个字节的空间。
回复

使用道具 举报

发表于 2015-5-29 18:47:38 | 显示全部楼层
不点说得对,是溢出了。进入菜单显示 120,按 e 键显示 233 ,但是前面还有字符“\n 用 %c 和 %c 两键将一个菜单置为高亮。”
把缓存增大就没有问题了。

等待秒数放在高亮处,英文说明也要改一改了。怎样写合适?
增加 jpg 格式支持,有什么潜在问题?

点评

增加 jpg 格式支持,应该没有什么潜在的问题,主要是没有人做这一块,我也不熟,半吊子.  详情 回复 发表于 2015-5-29 21:44
回复

使用道具 举报

发表于 2015-5-29 19:00:01 | 显示全部楼层
等待秒数放在高亮处,英文说明也要改一改了。怎样写合适?


什么地方还需要英文说明?倒计时只在高亮条右端显示秒数,不显示任何英文说明。地球人一看就明白,无需说明。

增加 jpg 格式支持,有什么潜在问题?


这个应该不会有问题吧。如果有问题的话,我猜可能出现在 malloc 分配内存。你最好避免使用 malloc 函数。

回复

使用道具 举报

发表于 2015-5-29 19:54:47 | 显示全部楼层
我是说这句话
" The highlighted entry will be booted automatically in %d seconds."

点评

我的意思也正是要删除这句话。既然倒计时的秒数显示在高亮条上,就不需要这句话了。这样也就节约了它所占用的内存空间以及也同时节约了屏幕上的一行显示空间。另外一个好处,也不用翻译成各种语言了,所节约的空间是  详情 回复 发表于 2015-5-29 20:16
回复

使用道具 举报

发表于 2015-5-29 20:16:49 | 显示全部楼层
2011yaya2007777 发表于 2015-5-29 19:54
我是说这句话
" The highlighted entry will be booted automatically in %d seconds."

我的意思也正是要删除这句话。既然倒计时的秒数显示在高亮条上,就不需要这句话了。这样也就节约了它所占用的内存空间以及也同时节约了屏幕上的一行显示空间。另外一个好处,也不用翻译成各种语言了,所节约的空间是海量的。

回复

使用道具 举报

发表于 2015-5-29 20:19:57 | 显示全部楼层
这下明白了。
回复

使用道具 举报

发表于 2015-5-29 21:44:10 | 显示全部楼层
2011yaya2007777 发表于 2015-5-29 18:47
不点说得对,是溢出了。进入菜单显示 120,按 e 键显示 233 ,但是前面还有字符“\n 用 %c 和 %c 两键将一 ...

增加 jpg 格式支持,应该没有什么潜在的问题,主要是没有人做这一块,我也不熟,半吊子.

点评

按照我的理解,好像是 yaya 自己要做这个工作。你支持了 bmp 图片,是一个很大的工作。yaya 想锦上添花,再支持比较常用的 jpg 图片,这能够大大减少图片的体积。  详情 回复 发表于 2015-5-29 22:29
回复

使用道具 举报

发表于 2015-5-29 22:29:42 | 显示全部楼层
本帖最后由 不点 于 2015-5-29 22:42 编辑
chenall 发表于 2015-5-29 21:44
增加 jpg 格式支持,应该没有什么潜在的问题,主要是没有人做这一块,我也不熟,半吊子.


按照我的理解,好像是 yaya 自己要做这个工作。你支持了 bmp 图片,是一个很大的工作。yaya 想锦上添花,再支持比较常用的 jpg 图片,这能够大大减少图片的体积。

顺便说,内存占用不可以太大。屏幕顶行显示的 End: 内存地址不要与其他内存数据发生重叠。End:处所显示的内存地址,大致反映了 grldr 程序的 bss 变量所占据的内存。

为了节约内存空间,必要时,可以去掉 splashimage 命令。我们没必要在新版本中继续支持用于 vga 模式的 splashimage 命令。

回复

使用道具 举报

发表于 2015-5-30 00:10:55 | 显示全部楼层
lgl007 发表于 2015-5-29 18:05
各位老大,你们好:
    附件为我重新编译的0.45c的最新汉化版。按不点老大的意见重新对汉化部分进行了精 ...

谢谢!
重新编译的0.4.6a新汉化版也发出来吧!
回复

使用道具 举报

 楼主| 发表于 2015-5-30 09:49:22 | 显示全部楼层
附件为0.46a最新的汉化版本,在我的机子上和笔记本上实际启动没有问题,请试用。再次谢谢chenall、不点及各位老大百忙之中的回复。

grub4dos-0.4.6a-2015-05-30汉化版.7z

271.61 KB, 下载次数: 282, 下载积分: 无忧币 -2

回复

使用道具 举报

发表于 2015-5-30 10:45:35 | 显示全部楼层
本帖最后由 不点 于 2015-5-30 11:00 编辑

报告一下有关国家地区语言代码的搜索结果。

首先,两个字母组成的语言代码,似乎已经成为事实工业标准。它已经被广泛采用。举例来说,zh 表示中文,en 表示英文。

其次,关于国家地区代码,也已形成 iso 国际标准。同样地,两个字母也已经被广泛采用。比如,cn 代表中国大陆,tw 代表中国台湾,us 代表美国,gb 代表英国。需要注意的是,英国不是 uk,这很容易弄错(网上确实发现有人弄错了)。乌克兰的代码也不是 uk。而且 uk 是特别保留的,任何国家都不能使用这个代码。

第三,语言代码和地区代码合成为一个代码,中间的用下划线或者减号来连接,这很混乱,两种用法都有。

第四,语言代码似乎约定俗成都使用小写字母,而地区代码则有使用小写的,也有使用大写的。这比较混乱。

第五,除了国家地区以外,还有多如牛毛的限定规范,这些规范也都是正式的国际标准。一个精确表示某个语言的字符串,可以长达 40 字符左右,也许这还不是最长的。

第六,zh_Hans 和 zh_Hant 分别表示简体中文和繁体中文,也符合正式的国际规范。但使用得不普遍。

总结一下,语言和地区两者合起来基本可以满足电脑软件国际化的需要。其他多余的修饰一般是用不到的。

至于说究竟如何在 grub4dos 下使用,以下是两种参考方案。

第一种,采用四字节整数,恰好包含 两字节的语言代码和两字节的地区代码。语言代码用小写字母,地区代码用大写字母。(为了适应以后的变化,可以采用 8 字节的整数,其高四字节保留)。

第二种,采用字符串,字符串的最大长度定为 64,这样可以适应极其复杂的语言代码。

如果让我来权衡,我感觉第一种比较合适。第二种太过于精细,没有必要。

以上说的是内部存储方式。至于说给用户的命令接口,可以采用 lang=zh_CN 的形式。

以上也只是提供一种思路,供开发者参考。具体实施时,由开发者再进行权衡,作出最终决定。


回复

使用道具 举报

发表于 2015-6-10 20:11:19 | 显示全部楼层
感謝樓主無私分享......
去試試
回复

使用道具 举报

发表于 2015-6-10 20:11:23 | 显示全部楼层
感謝樓主無私分享......
去試試
回复

使用道具 举报

发表于 2015-6-24 01:53:06 | 显示全部楼层
本帖最后由 2011寂寞泪 于 2015-6-29 00:07 编辑

找到一个比较全的字库,感谢汉化!
无标题.jpg
回复

使用道具 举报

发表于 2015-7-3 17:26:28 | 显示全部楼层
谢谢了,下来看看
回复

使用道具 举报

发表于 2015-7-4 02:20:59 | 显示全部楼层
多谢楼主的辛苦工作,已下载,试试看。把贴子看完了,又学了些知识。
回复

使用道具 举报

发表于 2015-7-4 13:55:37 | 显示全部楼层
谢谢分享grub4dos-0.4.6a-2015-05-18汉化版.7z
回复

使用道具 举报

发表于 2015-7-13 18:51:57 | 显示全部楼层
grub4dos/0.4.6a版安装进XP系统后,无法识别USB—ZIP格式的grub4dos/0.4.6a的启动U盘,但官方原版的grub4dos/0.4.6a版却可以。
回复

使用道具 举报

发表于 2015-7-14 13:39:28 | 显示全部楼层
谢谢楼主分享啦!!
回复

使用道具 举报

发表于 2015-7-31 11:26:23 | 显示全部楼层
本帖最后由 nbv 于 2015-7-31 11:35 编辑

支持楼主!!!!!
回复

使用道具 举报

发表于 2015-8-28 21:10:15 | 显示全部楼层
非常感谢!!!
回复

使用道具 举报

发表于 2015-10-3 18:52:25 | 显示全部楼层
感谢楼主的无私奉献
回复

使用道具 举报

发表于 2015-10-17 05:12:06 | 显示全部楼层

谢谢楼主分享啦!!
回复

使用道具 举报

发表于 2015-10-17 05:12:16 | 显示全部楼层

谢谢楼主分享啦!!
回复

使用道具 举报

发表于 2015-10-20 20:02:05 | 显示全部楼层
请问一下, map --fake-write 使用了, 还是会写入数据到磁盘镜像, 是修改错误了, 还是没有实现?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2021-4-21 21:38

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表