|
原帖由 pseudo 于 2010-3-27 13:35 发表 
这个多语言处理足见kendling兄功力深厚。
我想讨论另一问题——是否增加文件的问题。
0PE设计为可剪裁PE,几乎对每个文件都要考虑一些问题,诸如:
1、这个文件是可删除的么?删掉了能否工作?删掉了其 ...
谢谢pseudo的抬举。
可以看到我修改或新增加的文件列表- 0PE\LNG.TXT(和BUFXP.ZIP在同一目录)
- BUFXP.ZIP\BAT\MENUSRS.LST(0PE原有文件)
- KERNEL.ZIP\WXPE\LNG.CMD
- KERNEL.ZIP\KERNEL\WXPE\SYSTEM32\AUTORUN_.CMD(0PE原有文件)
复制代码 新增加的文件只有两个文件。
0PE\LNG.TXT
KERNEL.ZIP\WXPE\LNG.CMD
其中LNG.CMD是在0PE内核文件KERNEL.ZIP里面,一般不会被用户删除。
当然用户也可以去删除它,系统也可以正常运行。只是提示信息就没有人可以看懂了。
外置的LNG.TXT文件只是方便用户切换语言用的,有用的信息只有前三个字母CHS、CHT、或者ENG等。
可以看到MENUSRS.LST的修改:
dd if=()/0PE/LNG.TXT of=(hd-1,0)/BAT/M.LST bs=1 count=3 seek=213
dd if=()/0PE/LNG.TXT of=(hd-1,0)/WXPE/LNG.CMD bs=1 count=3 seek=8
这里是把LNG.TXT的前三个字符写到LNG.CMD去。
再看LNG.CMD头部:- SET LNG=###
- :: 设定语言版本
- :: 缺省为简体中文
- if /i %LNG%==### set LNG=CHS
复制代码 这里设了默认语言,也就是说如果用户删除了LNG.TXT。那系统就会以CHS语言版本启动系统。
所以对于用户来说,他只看到LNG.TXT,并且容易修改。
另外说一个原来的设想:
LNG.TXT并不需要存在,用户直接在启动菜单里选择系统的语言版本。目前是因为FAT外部命令不支持变量,所以没有实现这个设想。当然可以用write命令去实现,不过菜单的代码就变多了很多。 |
|