自从iAUDIO的新版(双语)菜单固件发布以来,其汉化问题就一直困扰着喜欢自己动手做汉化的MP3_DIY_FANS。主要原因是新版固件的菜单结构与老版本完全不同了。其文本菜单部分,用iReadResEdit工具软件只能打开观看,但不能编辑修改。当然图形菜单部分还可以用iReadResEdit来修改。经过笔者花了近一个寒假的时间进行探索,终于基本弄清了新版固件的菜单结构。这里给各位介绍一下:
老版菜单的结构很简单,编辑时,只要用简体中文替换原来的英文即可。汉字编码就是我们常用的GBK编码,与普通文本文件完全一致。而新版菜单的变化有两方面,一是汉字编码采用了Unicode编码 (Unicode编码是一种包括了全世界各个国家各种语言文字的国际标准编码) ;二是字符排列方式完全不同,规则是:无论是字母还是文字,一律每个字符占用3个字节。下面以“MP3播放”这5个字符为例,进行一下比较:
老版菜单的编码为:4D 50 33 B2 A5 B7 C5
其中4D 50 33 分别为“MP3”这3个字母的ASCII码。(对字母来讲,ASCII码、GBK码、Unicode码等所有编码都是一致的) 。而B2 A5 与B7 C5 分别为“播放”这两个字的GBK编码。实际上,你新建一个文本文件,里面仅输入“MP3播放”这5个字,用WinHex等工具软件以二进制的方式打开,就可以看见上述的7个数据了。这种我们最普通的编码特点是:字母仅占一个字节,文字占两个字节,文字编码高位在前。
而新版菜单的编码为:4D 00 00 50 00 00 33 00 00 AD 64 00 3E 65 00
可以看出:“MP3” 这3个字母的ASCII码被分成了3组,每组3个字节。而AD 64 00与3E 64 00分别为“播放”这两个字的Unicode编码。可以看出这种结构的特点为:无论是字母还是文字,一律每个字符占用3个字节。还要说明的是Unicode编码的排列是低位在前,例如“播”的Unicode编码实际是十六进制的64AD。
进行了以上的比较之后,就清楚了为什么新版菜单的汉化那么困难了。你不仅要将输入汉字的Unicode编码,还要一个一个字的输入,无法连续输入。
笔者在这里要特别提到我们的超级MP3_DIY_FANS,即我们iAUDIO社区论坛无人不知的、大名鼎鼎的L-TPV君。由于前一阵子手头没有机器,虽然做了一些新版菜单的汉化工作,但无法测试,也就没什么进展。这期间,我就新版菜单的汉化问题与L-TPV进行过一些探讨,正是由于L-TPV的勇于探索,才使得新版菜单的汉化能够及早的与大家见面。
看了我上面的分析,你就会知道L-TPV的汉化工作有多么辛苦。为此,笔者在这里提议应该授予L-TPV一个“年度最佳创新奖”或者“社区劳动模范”之类的荣誉称号。
为了减轻汉化的工作量,笔者专门对固件文件结构进行了分析,制作了一个新版菜单的专用汉化工具软件MenuEdit。该软件目前还不够完善,菜单的长度还修改不了。该软件只是用来汉化文本菜单部分的,图形菜单部分,仍然用iReadResEdit就行。
MenuEdit的内部工作包括:将resource.bin文件的文本菜单部分提出来,分为英文与韩文两部分,分别对应显示出来。当然,显示的过程包括找出每个字符的Unicode码,再将其转换为可以显示的GBK码。韩文菜单部分,可供我们进行汉化编辑,编辑好之后,软件再将其转化为Unicode码,并按固件要求的排列方式排列。
MenuEdit工具一共有两个文件:MenuEdit.exe与GU.dll,一定要放在同一个文件夹里。使用很简单,如果你以前用过iReadResEdit,就会发现,该软件在菜单汉化部分比iReadResEdit提供的信息更多,很人性化的。用MenuEdit打开一个resource.bin文件后的界面为:
上面3行显示分别为:对应的英文菜单、要汉化编辑的韩文菜单(汉化后就成了中文菜单)、汉化编辑用的文本输入框。2、3行里原来的韩文显示不出来,汉化之后就显示中文了。菜单编号就是resource.bin文件内部的资源编号,与用iReadResEdit打开时的编号是一致的。数据起始地址,就是该菜单的Unicode编码数据在resource.bin文件里的十六进制绝对地址。
下面一个大的选择框,就是要汉化的菜单Unicode编码。是随着你的编辑,随时动态变化的。右上角的“搜索模式显示”选项,选中之后,向下点击滑动条时,最上面的3行信息会动态更新,用于快速显示与搜索。注意:只有向下滑动时对应关系才有效。
点此下载MenuEdit
iAUDIO新版(双语)菜单固件,各种机型的版本如下:
U2:1.30以上,G3:1.20以上,I5:1.10以上。I4:两套版本分别为1.70及2.70以上。
特别说明:iAUDIO4,即国内的JNC-SSF800。由于受硬件资源的限制,有两套版本。1.xx的版本,支持MP3格式录音,不支持OGG格式播放。而2.xx的版本,支持OGG格式播放,只支持WAVE格式录音,不支持MP3格式录音。
最后,在此特别感谢L-TPV对本人在新版菜单编码分析方面的帮助与启发。本人也特别佩服L-TPV在汉化方面的坚忍不拔的探索精神!
好了,借助于MenuEdit,喜欢DIY的FANS可以来体验一下自己汉化的乐趣了。
Let’s go!