无忧启动论坛

标题: grub4dos0.45c/0.46a最新版底部说明汉化 [打印本页]

作者: lgl007    时间: 2015-5-19 16:11
标题: grub4dos0.45c/0.46a最新版底部说明汉化
本汉化版是采用chenall大和yaya 大2015-05-18版本部分文件源码进行汉化,然后重新编译而成,这里要感谢无忧启动论坛的各位高手大侠们。
这次对上次网友提出的汉化语句表达问题进行改进,请各位继续试用。谢谢

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

259.21 KB, 下载次数: 1778, 下载积分: 无忧币 -2

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

270.57 KB, 下载次数: 2684, 下载积分: 无忧币 -2


作者: photor    时间: 2015-5-19 18:27

作者: devilma    时间: 2015-5-19 20:10
拿走了谢楼主(・ิϖ・ิ)っ
作者: 2010win5xp    时间: 2015-5-21 21:01
感谢楼主的无私奉献
作者: jyf007    时间: 2015-5-22 00:14
回车间去无私奉献了
作者: 看见飞机场    时间: 2015-5-22 20:42
谢谢楼主分享啦!!
作者: 不点    时间: 2015-5-24 12:47
我觉得这个可以集成到正式发布版中。以下是我的思路,供 chenall 参考。

grub4dos 要处理菜单,这是肯定的。无论内置还是外置,它都是菜单,也都要经过 grub4dos 的菜单读取程序进行处理。在读取菜单的时候,可以通过分析,确定菜单的 title 中是否含有 utf8 编码的汉字,如果有,就记录在某个全局变量中,比如说 lang=zh 之类的。同时,修改菜单显示程序,让它在 lang=zh 时显示中文信息,而不是显示英文信息。




作者: nbv    时间: 2015-5-27 08:25

grub4dos-0.4.6a 的启动后,按“E”键无法进行编辑,也没有显示任何菜单,也无法退回菜单。貌是进入死机状态。


作者: lgl007    时间: 2015-5-27 22:09
我试了一下,用上下箭头选择菜单后,再按E键就可以进入命令行,刚刚进入后按E键进入死机状态。这还得请chenall和yaya来测试一下英文版是否有这种情况。
作者: lgl007    时间: 2015-5-27 22:10
我只是把部分文件中的英文汉化了一下,别的还是源程序编译的
作者: chenall    时间: 2015-5-27 23:26
nbv 发表于 2015-5-27 08:25
grub4dos-0.4.6a 的启动后,按“E”键无法进行编辑,也没有显示任何菜单,也无法退回菜单。貌是进入死机 ...

麻烦你用原版的先测试一下看看是否有一样的问题.
作者: 不点    时间: 2015-5-28 04:55
lgl007 发表于 2015-5-27 22:09
我试了一下,用上下箭头选择菜单后,再按E键就可以进入命令行,刚刚进入后按E键进入死机状态。这还得请chen ...

你自己就能测试啊,你有测试条件。换成别人测试,即使成功了,也不能证明在你的机器上也成功。

作者: lgl007    时间: 2015-5-28 08:49
C大和不点老大,你们好:
   刚才我实际启动了一下,没有汉化的版本没有问题,按E键能够编辑,汉化版本不显示菜单内容,无法编辑,且按任何键没有反应。看来, 测试和实际启动之间还是有差别的。不知我哪里出错了,我是下载了C大的colinux系统进行编译的,不知哪里出错了,上次我是在win7下进行编译的,这次是xp,这有区别吗?
作者: lgl007    时间: 2015-5-28 09:10
两位老大,我只是把菜单中底部说明改成了中文,别的源文件没有改动,这有关系吗?0.45C版本的grub4dos也是这种情况,原版没有问题,但改成中文后,按E键后,进入死机状态,无法进行编辑。
作者: 不点    时间: 2015-5-28 11:01
lgl007 发表于 2015-5-28 09:10
两位老大,我只是把菜单中底部说明改成了中文,别的源文件没有改动,这有关系吗?0.45C版本的grub4dos也是 ...

你确信你的改动不会对程序本身产生影响吗?我猜测恐怕是你的改动有 bug 吧?

要不你换编译器(或者换操作系统)再试一次,因为以前也确实因为编译器的问题产生过错误。

或者你让别人在别的环境进行编译(比如在某个 Linux 系统下编译)。


作者: chenall    时间: 2015-5-28 11:14
你可以把你修改的DIFF文件传上来,看看是不是有改错了.

作者: lgl007    时间: 2015-5-28 11:52
我是在widwos下把源码包下载后,在colinux系统下解压,然后在widow中用notepad++把cmdline.c和stage2.c两个文件中的相关的显示英文的地方改成了中文,别的文件没有动。然后在colinux系统下编译而成。没有diff文件生成。

作者: 不点    时间: 2015-5-28 15:03
还是 chenall 自己弄吧,不用再麻烦楼主了。

把某些东西汉化。如果时间不够,就只把菜单部分汉化。如果时间充裕,就连 help 中的信息也可汉化。


作者: 2012zcsh    时间: 2015-5-28 15:29
感谢楼主。。。
作者: 2011yaya2007777    时间: 2015-5-29 06:34
本帖最后由 2011yaya2007777 于 2015-5-29 06:41 编辑
你可以把你修改的DIFF文件传上来,看看是不是有改错了.

同感

通过菜单设置标志,分别显示帮助菜单的中英文。这个我来处理吧。
想问一下,是通过 if 语句,还是宏?如果是宏,怎么写?
作者: lgl007    时间: 2015-5-29 08:20
chenall、不点、yaya各位老大你好:
   附件为在colinux系统下用git clone下载的0.45c的源码,然后在cdlinux下修改cmdline.c和stage2.c文件产生的diff文件。烦请你们给看一下,哪里出错了。谢谢!
   注:直接在grub4dos.chenall.net网站上下载的源码编译后不生成diff文件。

grub4dos_0c0ea06.rar

1.37 KB, 下载次数: 17, 下载积分: 无忧币 -2


作者: 不点    时间: 2015-5-29 09:51
本帖最后由 不点 于 2015-5-29 11:45 编辑
2011yaya2007777 发表于 2015-5-29 06:34
同感

通过菜单设置标志,分别显示帮助菜单的中英文。这个我来处理吧。


可能是我没把意思表达清楚吧(我现在语文水平也在下降,这是自然规律)。

我的意思是,grub4dos 内核在读取菜单的时候,要处理 title (和 iftitle)命令并且保存 title 的内容到内存数组中。

在处理 title 的过程中(或者也可在全部 title 数组保存之后),立即检查 title 的字符串数组中是否含有 UTF8 格式的汉字。如果有,就把默认的 lang 变量设置为 zh。

lang 变量需要重新建立,它的默认值是 0 或者是空的字符串。lang 的变量名只是举例,我不懂 linux 和 windows 关于地区语言设置方面的约定,所以,你可以寻找一个更恰当的名字。lang 的变量类型可以是整数型,也可以是字符串型,依你的权衡而定。同样,其值可以是 zh 或 cn 或 zh_CN 之类的,我也不知道究竟怎么才好。也可以查阅有关语言设置方面的 RFC 文档。

这整个过程是在 grub4dos 的内核中处理的(是在内核的菜单处理部分进行处理的;也就是说,是自动的,无需用户干预),不是在菜单中由用户设置来处理的。当然用户也可以在菜单中设置 lang 变量,这样就强制覆盖了 grub4dos 从 title 中探测到的语言类型。

当读取一个 menu.lst 时,grub4dos 都要给出一个探测到的 lang 值。目前可以只探测中文,不探测别的语言。当未探测到中文时,lang 应该保持默认值(即空的字符串值;如果是整数,则为0)。在 menu.lst 中,当遇到用户设置 lang 变量时,以用户的设置为准。

lang 变量可以放在 grub4dos 的固定变量区。甚至也可以在 builtins.c 中为它创建一条同名的命令(添加lang_func() 函数)。

如果把 lang 放在固定变量区,我觉得最好不要放在 0x8200 处的区域,因为这个区域是在常规内存中,很宝贵。我们应该节约常规内存,因此,可以放在第二块固定变量区中,即,放在 0x307000 至 0x308200 这个区域中。其实我已经在第二个固定变量区中放置了几个变量。比如说,我在 0x308000 处放置了 cpu 的信息,占用 32 字节(即 8 个四字节整数的长度):

unsigned int *sig = (unsigned int *)0x308000; //&vm_cpu_signature;

在 0x307FFC 处放置了 preset_menu 变量(四字节整数)。
在 0x307FF8 处放置了 use_preset_menu 变量(四字节整数)。

我不知道 chenall 后来有没有使用这个空间。如果没有使用,你可以接着使用 0x307FF4,0x307FF0,……,一直到 0x307000,都是可以使用的。个别大块的字符串变量,可以使用 0x308020 至 0x308200 的空间(因为 刚才说了,0x308000 处的 32 字节已经用于 cpu 信息了)。

内核在显示菜单的时候,可以根据 lang 变量的值,来决定显示中文或英文。举例来说,如果 lang 的值是 zh,就显示中文,否则,显示英文。当然,如果是文本模式,那只能显示英文。必须进入 VBE 图形模式以后,才可以显示中文。

整个过程是自动的,不需要用户在菜单中有任何设置。用户以前的菜单不需要进行任何修改,只要换成新版,就能够自动处理中文。用户唯一需要保证的是,title 行上能够找到一个 UTF-8 编码的中文字符。只要满足这个条件,剩余的事都是 grub4dos 内核的工作了。

希望这次我说明白了。如果还有不清楚的,请继续交流。


关于汉字探测,再提醒一点需要注意。grub4dos 只支持 65536 个 Unicode 字符,也就是 BMP 的 unicode 字符。超过这个范围的汉字是不支持的,无需探测。


作者: chenall    时间: 2015-5-29 10:31
我倒是有另外一个想法.

首先把内核里面的英文资源全部提取出来到某个文件或数组中(也比较方便进行翻译等).内核在默认情况下直接调用这里面的资源,或根据菜单内容显示.指定资源.
另外也要充许用户通过某些命令来调用显示自己翻译的资源,这样就实现了多语言.

外置的翻译考虑使用INI格式.比如如下,通过数字编号确定资源对应关系.类似如下.
1=某菜单信息
101=某错误提示
1001=某命令帮助
作者: 不点    时间: 2015-5-29 10:39
本帖最后由 不点 于 2015-5-29 11:18 编辑
chenall 发表于 2015-5-29 10:31
我倒是有另外一个想法.

首先把内核里面的英文资源全部提取出来到某个文件或数组中(也比较方便进行翻译等 ...


这也不错。现在上了年纪,不再研究新知识了,我不知道其他国际化的软件,通常都是怎么做的。可以参考借鉴别的软件的做法。

如果需要放在文件里面,可以考虑放在 unifont.hex 的开头,与字库共用一个文件。

另外,我觉得,英文是默认的,应该内嵌到二进制文件的程序体里面(就像目前这样)。

其他主要语言(中、法、西、俄等)也都可以内嵌(可以采用数组的方式)。

help 的内容不翻译,因为内容太多,其占用空间太大。使用 help 的人大多都是有一定基础的,可以看懂英文。可以搞个外部的 txt 文件,用 cat 命令来看文档(需要不同语言的翻译者来翻译文档;现在是网络时代,也可以使用谷歌翻译)。

如果不翻译 help,那么,剩下的那些与语言有关的字符数已经不多了,完全可以支持所有的语言(需要有不同国家的贡献者才能支持相应的语言;现在是网络时代,也可以使用谷歌翻译)。

以前我还提到过一个想法,就是把倒计时的秒数显示在靠近高亮条的最右端(与高亮条处于同一行)。倒计时所使用的阿拉伯数字是全球通用的,因此不用任何提示信息。

作者: 不点    时间: 2015-5-29 11:36
本帖最后由 不点 于 2015-5-29 11:40 编辑
lgl007 发表于 2015-5-29 08:20
chenall、不点、yaya各位老大你好:
   附件为在colinux系统下用git clone下载的0.45c的源码,然后在cdlin ...


buff 的缓冲区只有 256 个字节。UTF8 汉字太长,每个汉字占用 3 字节,整个字符串超过了 256 字节,造成字符串溢出,引起程序错乱和死机。

你把 buff 的定义扩大为 512 字节,应该不会出问题了。


作者: 2011yaya2007777    时间: 2015-5-29 13:10
看了一下 diff 文件,没见端倪。按说修改显示信息,最多是翻译错误,不可能引起按键出错。

能内部自动判断是否加载汉字,是最好不过的。这需要比对菜单项标题。
我觉得既然本软件主要由国人开发,那首先应当做好汉化工作。他国人员也可通过谷歌自己翻译。
对于‘汉’鸭子,我觉得首先应当汉化帮助信息,其次是错误信息。菜单汉化内容小,直接内嵌就好了。

我觉得 chenall 想法很好。把要显示的英文字符串放在一个文件里。汉化,法化,日化...后,使用不同的文件名存放。使用时修改为默认文件名即可。
作者: 不点    时间: 2015-5-29 13:27
2011yaya2007777 发表于 2015-5-29 13:10
看了一下 diff 文件,没见端倪。按说修改显示信息,最多是翻译错误,不可能引起按键出错。

能内部自动判 ...

世上什么事都有可能。不可能的事发生了。前面我已经指出了错误的根源。

buff 这个变量的空间只有 256 个字节。strcpy 函数把 utf8 汉字字符串拷贝到 buff 上,导致溢出,立即死机。

buff 是在堆栈上,所以,溢出是会导致立即死机的。像这样的错误是最容易调试出来的了。

死机有利于排错。只要死机,这个错误就不难查到。


作者: 2011yaya2007777    时间: 2015-5-29 14:43
grub4dos-0.4.6a 的启动后,按“E”键无法进行编辑,也没有显示任何菜单,也无法退回菜单。貌是进入死机状态。

我这里,使用提供的 diff 修改源码,编译后测试,没有问题。
作者: 不点    时间: 2015-5-29 14:59
本帖最后由 不点 于 2015-5-29 15:09 编辑
2011yaya2007777 发表于 2015-5-29 14:43
我这里,使用提供的 diff 修改源码,编译后测试,没有问题。


数数拷贝到 buff 上的字节数,看看是否溢出。如果没有溢出,那就不是这里的问题。

那就可能是编译器的问题了。你的编译环境与楼主的不同?也许是 Windows 的问题?

我刚刚数了一遍,确实是超限了。

光是拷贝到 buff 上的汉字(中文标点符号也是一个汉字),就满满 80 个。这占用 UTF-8 的字节长度 = 80 × 3 = 240 个。再数数其中的英文字符和空格,很快就知道超过 16,没有精确去数。但超过 16 个字节。两者相加就超过 256 字节了。

你没遇上死机,是不是因为你没有按 e 键进入编辑状态?你按 e 键试试看?


作者: 2011yaya2007777    时间: 2015-5-29 17:02
进入菜单后,直接按 e 键,没有问题。再按 e 键也没有问题。
那里有个判断语句 config_entries ?... : ...,没有全部加载到缓存。
使用 grub_strlen 函数,返回 233 ,缓存没有溢出。
作者: zqywult    时间: 2015-5-29 17:33
2011yaya2007777 发表于 2015-5-29 17:02
进入菜单后,直接按 e 键,没有问题。再按 e 键也没有问题。
那里有个判断语句 config_entries ?... : .. ...

请把您编译的按e键没有问题的汉化版分享一下,谢谢!!!
作者: 不点    时间: 2015-5-29 17:39
本帖最后由 不点 于 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,因此,这仍然是要溢出的。


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

grub4dos_0c0ea06.rar

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


作者: 不点    时间: 2015-5-29 17:55
zqywult 发表于 2015-5-29 17:33
请把您编译的按e键没有问题的汉化版分享一下,谢谢!!!

我觉得这个版本仍然存在缓冲区溢出问题,它只不过没有引起死机罢了。这不是一件好事。死机能暴露出问题,不死机会让问题隐藏起来。如果某个编译器自动把 buff 放在 “堆” 内存而不是 “栈” 上,那就有可能避免死机。但只要溢出,会破坏堆内存的数据,是个隐患。因此我认为,这个版本不可靠。
作者: lgl007    时间: 2015-5-29 18:05
各位老大,你们好:
    附件为我重新编译的0.45c的最新汉化版。按不点老大的意见重新对汉化部分进行了精简,我在机子上已经重新启动进行了试用,解决了按e键死机问题。对上次发布的版本对网友说声抱歉,已经下载的网友可重新对下载最新的。再次谢谢chenall、不点等给予帮助的老大们。

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

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


作者: 不点    时间: 2015-5-29 18:31
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 个字节的空间。
作者: 2011yaya2007777    时间: 2015-5-29 18:47
不点说得对,是溢出了。进入菜单显示 120,按 e 键显示 233 ,但是前面还有字符“\n 用 %c 和 %c 两键将一个菜单置为高亮。”
把缓存增大就没有问题了。

等待秒数放在高亮处,英文说明也要改一改了。怎样写合适?
增加 jpg 格式支持,有什么潜在问题?
作者: 不点    时间: 2015-5-29 19:00
等待秒数放在高亮处,英文说明也要改一改了。怎样写合适?


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

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


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


作者: 2011yaya2007777    时间: 2015-5-29 19:54
我是说这句话
" The highlighted entry will be booted automatically in %d seconds."
作者: 不点    时间: 2015-5-29 20:16
2011yaya2007777 发表于 2015-5-29 19:54
我是说这句话
" The highlighted entry will be booted automatically in %d seconds."

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


作者: 2011yaya2007777    时间: 2015-5-29 20:19
这下明白了。
作者: chenall    时间: 2015-5-29 21:44
2011yaya2007777 发表于 2015-5-29 18:47
不点说得对,是溢出了。进入菜单显示 120,按 e 键显示 233 ,但是前面还有字符“\n 用 %c 和 %c 两键将一 ...

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

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


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

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

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


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

谢谢!
重新编译的0.4.6a新汉化版也发出来吧!
作者: lgl007    时间: 2015-5-30 09:49
附件为0.46a最新的汉化版本,在我的机子上和笔记本上实际启动没有问题,请试用。再次谢谢chenall、不点及各位老大百忙之中的回复。

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

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


作者: 不点    时间: 2015-5-30 10:45
本帖最后由 不点 于 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 的形式。

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



作者: jydusping    时间: 2015-6-10 20:11
感謝樓主無私分享......
去試試
作者: jydusping    时间: 2015-6-10 20:11
感謝樓主無私分享......
去試試
作者: 2011寂寞泪    时间: 2015-6-24 01:53
本帖最后由 2011寂寞泪 于 2015-6-29 00:07 编辑

找到一个比较全的字库,感谢汉化!

作者: 2012leafmaple    时间: 2015-7-3 17:26
谢谢了,下来看看
作者: wangxiongfang    时间: 2015-7-4 02:20
多谢楼主的辛苦工作,已下载,试试看。把贴子看完了,又学了些知识。
作者: mochi    时间: 2015-7-4 13:55
谢谢分享grub4dos-0.4.6a-2015-05-18汉化版.7z
作者: 有阴也有阳    时间: 2015-7-13 18:51
grub4dos/0.4.6a版安装进XP系统后,无法识别USB—ZIP格式的grub4dos/0.4.6a的启动U盘,但官方原版的grub4dos/0.4.6a版却可以。
作者: 浅安3    时间: 2015-7-14 13:39
谢谢楼主分享啦!!
作者: nbv    时间: 2015-7-31 11:26
本帖最后由 nbv 于 2015-7-31 11:35 编辑

支持楼主!!!!!
作者: 呆强强    时间: 2015-8-28 21:10
非常感谢!!!
作者: lhpmain    时间: 2015-10-3 18:52
感谢楼主的无私奉献
作者: jay508@sina.com    时间: 2015-10-17 05:12

谢谢楼主分享啦!!
作者: jay508@sina.com    时间: 2015-10-17 05:12

谢谢楼主分享啦!!
作者: zzz654321    时间: 2015-10-20 20:02
请问一下, map --fake-write 使用了, 还是会写入数据到磁盘镜像, 是修改错误了, 还是没有实现?
作者: 不点    时间: 2015-10-20 21:14
Fake write 以及 read only 都是 grub4dos 的实模式仿真参数,不是 windows 下的 firadisk 和 winvblock 的仿真参数。这两个驱动程序没有实现 fake write 和 read only 参数。

因此,这两个参数在实模式有效,在 windows 下无效。


作者: zzz654321    时间: 2015-10-21 11:30
哦, 谢谢, 那可以在说明文档里面提示一下, 也许是我没有仔细看. 但仿佛是查找过的.
作者: vf21    时间: 2015-10-22 00:41
非常感谢,解决了大问题。
作者: 2008cn    时间: 2015-10-23 12:43
谢谢分享
作者: apachi1012    时间: 2015-11-5 14:39
恭喜恭喜感谢分享!!!!!!!!
作者: xyxb    时间: 2015-11-6 18:31
感谢楼主的无私奉献
作者: zengqcyxx    时间: 2015-12-4 11:45
感谢分享,拿走!
作者: dongwu    时间: 2016-1-12 16:39
谢楼主的无私奉献
作者: snajfengjian    时间: 2016-1-12 20:20

拿走了谢楼主
作者: netarrow    时间: 2016-10-17 07:32
原来看帖要细致,需要grub4dos0.4.6a版本,直接下了,是有问题的版本。多亏细细的看了,受教了。也谢谢楼主,辛苦了。
作者: pepsicool    时间: 2016-11-9 11:09
感谢分享
作者: oohhoo    时间: 2017-1-13 14:44
学习了
作者: lgl007    时间: 2017-1-14 16:34
附件为grub4dos0.46a-2016-12-24版本重新编译,只是把命令行说明进行汉化,其余没有改动,经本人实机测试运行正常。现在上传请各位进行测试。

grub4dos-0.4.6a-2017-01-05.7z

283.17 KB, 下载次数: 75, 下载积分: 无忧币 -2


作者: 窄口牛    时间: 2017-1-14 17:54
非常感谢,第一个下载下载新的
作者: bgbgbg    时间: 2017-2-1 08:58
謝謝大大分享~下載測試中!!
作者: hellour    时间: 2017-2-1 10:53
感谢分享!
作者: 蛮牛士    时间: 2017-8-2 20:35
拿走了谢楼主(・ิϖ・ิ)っ
作者: wcwtnui    时间: 2018-3-28 06:01
感谢楼主分享。。
作者: yyjkappa    时间: 2018-8-27 20:13
拿走了谢楼主(・ิϖ・ิ)っ
作者: dhlxtynz    时间: 2018-9-25 11:01
FbinsTool功能相当强大
作者: sharkman2004    时间: 2019-6-21 10:06
谢谢提供软件程式
作者: dghgw    时间: 2019-7-6 14:22
1
作者: taxuelp    时间: 2019-9-19 16:43
拿走了谢楼主(・ิϖ・ิ)っ
作者: shushengli123    时间: 2019-10-13 16:31
谢谢分享
作者: shn40242    时间: 2019-11-26 21:05
我也来实施
作者: 2012kelvin6tlb    时间: 2019-12-18 16:19
给大佬,点烟,感谢!!
作者: 2012kelvin6tlb    时间: 2019-12-18 16:20
给大佬点烟,谢谢大佬分享!!!!
作者: cjh201209    时间: 2019-12-19 17:37
grub4dos0.45c/0.46a最新版底部说明汉化
作者: abandonme    时间: 2020-2-8 16:16
折腾gen8的sata启动,看看思路
作者: foxwallop    时间: 2020-3-1 08:15
非常感谢分享
作者: 7thday    时间: 2020-5-31 21:26
感谢分享..折腾ing
作者: lyvswan    时间: 2020-6-20 20:20
收藏了
作者: mountainbear    时间: 2020-6-30 07:53
厉害了,高手如云
作者: mountainbear    时间: 2020-7-1 08:27
学习了,good
作者: shn40242    时间: 2020-7-9 15:41
非常感谢分享
作者: shn40242    时间: 2020-7-9 15:41
拿走了谢楼主(・ิϖ・ิ)っ
作者: Pikachu    时间: 2020-8-25 22:37
感谢分享...
作者: sunyong1987    时间: 2020-10-20 10:42
收藏测试下
作者: 愤怒西瓜    时间: 2020-10-30 15:56
感谢楼主。。。
作者: 305122079    时间: 2020-11-12 18:54
这个很有用




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3