Symbian 3rd汉化教程.docx
- 文档编号:10550657
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:31
- 大小:1.82MB
Symbian 3rd汉化教程.docx
《Symbian 3rd汉化教程.docx》由会员分享,可在线阅读,更多相关《Symbian 3rd汉化教程.docx(31页珍藏版)》请在冰豆网上搜索。
Symbian3rd汉化教程
Symbian3rd汉化教程
Cnpda汉化组Flox出品
写在前面的:
其实汉化不是一个技术活,只要你有点耐心,只要你对英文掌握还可以,其实
就能够汉化一个很不错的作品。
请你不要认为汉化只是简单的查找替换,只要你用心,汉化
作品同样可以很有艺术性。
教程一共分为两个部分,第一个部分为手动汉化部分,第二个部分为工具汉化部分。
如果你
只想尽快的看到自己的汉化作品,请跳过第一部分,但是,你将体会不到手动汉化的乐趣。
只要你掌握了手动汉化的方法,任何软件都难不倒你
阅读本教程你必须了解的一些东西:
1.第三版和第二版不同,所以解包和打包工具不同。
不可以用第二版的解包工具去解包第
三版的软件。
2.第三版汉化基本上只是Ascii编码的汉化,所以本文着重介绍A码汉化
3.第三版部分资源存在于exe中,无法直接汉化,必须脱壳汉化再加壳,后面会具体说
明,并提供脱壳工具下载。
汉化工具:
1.Hexworkshop——手动汉化手机软件的工具
2.中英文字符编码——用来查询中文字符的Ascii代码
3.ExeUnCompres——Ganthur写的exe脱壳工具
Part1:
手动汉化教程
对于汉化,你必须有一个感性的认识,那就是解包——汉化——再打包的过程。
所以,你
想要汉化软件,第一个步骤就是解包软件。
现在解包一般是使用专门的解包工具,如:
SISware,SISVue等
由于SISware在部分电脑上无法运行,这里用SISVue这款小巧的解包工具做例子。
SISVue主界面如图所示:
打开一个3rd的软件后,如图所示:
在SISVue的主界面中,可以看到你要解包的软件的pkg文件(后面将会提到pkg的作用)
点击“文件”——“解包”,选择解包的路径,就能解包软件。
一般来说,需要汉化的一般是.rsc文件,也有部分为.r01文件。
都可以用HexWorkshop
打开。
可能出现的问题:
由于部分软件的.rsc文件为多语言版本,直接在电脑上通过解包后得到
的.rsc文件可能并非为英文版,所以,就必须先在手机安装,再把需要汉化的.rsc文件复制
出来。
3rd的汉化大部分都是Ascii编码,本教程先跳过Unicode编码。
这里用一个Unicode编码的图以示区别:
先认清楚什么是Ascii编码,如图所示:
1.普通Ascii编码汉化:
这里我们用settings这个单词为例
看这个settings,编码是080853657474696E6773,看看S前面的两个数字0808,
0808也被成为单词的指针,对于手动汉化,指针是非常重要的。
其中第一个08表示此字符串一共有8个字符
其中第二个08表示此字符串一共有8个字节
其中第三个53在ASCII码中表示英文字母“s”
其中第三个65在ASCII码中表示英文字母“e”
其中第三个74在ASCII码中表示英文字母“t”
0808就是是这个单词的指针,第一个08是有效长度,第2个08是字符的总长度,A码
中一个字母代表占用一个字符长度,同时占用一个字节,这个单词一共有八个字母,所以有
效长度,也就是字符长度为08,同时每个字母占一个字节,所以字符总长度也就是占用的
字节数为08
现在用Hexworkshop打开需要汉化的.rsc文件,(你要明白汉化的过程就是查找和替换,
虽然有点繁琐)。
按快捷键Ctrl+H,切换出替换的界面。
替换类型选择“十六进制值”
如图所示:
现在打开中英文字符编码查询
设置为Unicode码,以及十六进制,在字符框中输入“设置”,得到的编码为8BBE7F6E,
这个就是设置的U码字符了,我们就是要利用这个编码把“Settings”汉化成“设置”
那么我们来看看,汉化的构成,前面说过了,A码字符占用一个字节,但是U码占用两个
字节,所以指针就大不相同了,“04080F8BBE7F6EE02020”这个就是用来替换Settings
编码的新编码了,我们来解读一下,“04”,是有效长度,“08”是字符总长度(这里讲
一下为什么是0408,04代表这个编码的有效长度,也就是要体现出来的字符,在这个例子
中,只有“8BBE7F6E”设置的U码以及“2个20”需要体现出来,而0F和E0仅是语法
用语,是不做体现的,设置占2个,20占一个,2020就占2个了,所以有效长度为04,
08代表的是字符总长度,也就是占用的字节数,我们已经知道,U码是占用2个字节,所
以“8BBE7F6E”设置的U码占用4个字节,一个字2个字节,0F和E0各占用一个字节,
20占用一个字节,2020就占用2个字节,所以一共是4+1+1+2=8表示为08)“0F”
代表以后的字符为“U码”,“8BBE7F6E”这个就是“设置”的U码字符了,“E0”代
表U码结束或以前的为U码,最后的2020代表的是2个空格,为什么要补2个空格呢?
大家可以看Settings的占用字节是08,如果不补空格的话,“设置”的编码就成了
02060F8BBE7F6EE0,占用字节是06,这样字符长度就和以前的不同,会造成偏移量引
索表不对称,软件也就无法运行了OK,按住Ctrl+H选择“十六进制值”把“08085365
7474696E6773”,替换成“04080F8BBE7F6EE02020”保存,OK,大功告成,
打包放到手机,看是不是已经把Settings汉化了呢?
在这个settings中,汉化的替换语法是0808+设置的A码=0408+0F+设置的U码
+E0+2020(两个空格)
汉化其他的也是一样先确定指针,再加入0F汉字的U码E0和要补齐的空格就可以了
总的来说,也就是XXYY+0F+U码+E0+20
XX:
有效长度,也就是你汉的中文字符的长度,如果是“设置”,那就是02,你要记得这是16进制,千万不要当成10进制处理了。
YY:
字符总长度,就是原英文单词的长度,这个"settings"里,就是08
0F+U码(你要汉的词)+E0:
此处可以说是个语法,只要你开始使用中文的时候就必须先在
前面加上0F,在后面用E0结尾。
20:
20的添加要视情况而定。
还是用“settings”为例,编码是080853657474696E
6773,替换成了04080F8BBE7F6EE02020,汉成中文为“设置”一共是两个字符,后
面有2个20就加2,所以有效长度为04。
如果后面没有则不用加。
小贴士:
在汉化的时候,一个汉字最少需要4个英文字母,也就是说,2个汉字,最少需要
6个英文单词。
2.借字符的Ascii编码汉化
在同级菜单中,有一个"settings"一个"exit"。
相信大家看了普通Ascii编码汉化已经可以很
轻松的解决"settings“这个吧?
但当你开始用同样的方法去汉化的时候,却发现要把
"exit”汉化成"退出"却没有足够的字符,怎么办——借字符!
首先要说明的是,要实现借字符,必须是在同级菜单下,至于为什么在同级菜单下,后面会
有说明。
2个汉字最少需要6个英文单词,你在汉化的时候,发现settings多出了两个英文字符,
这个时候,你就可以把settings多于的字符借给exit用了。
借字符的时候,任意选中
setitings中的两个字符,点鼠标右键,在剪切到exit的任意处。
比方说,你把settings中的gs剪切复制到了exit中,这样,原来的settings就变成了settin,
这个时候原来settings的指针由0808变成了0606,编码就变成了060653657474696E
汉化成“设置”就变成了02060F8BBE7F6EE0。
发现没,你剪切之后,对于settings这
个单词的汉化毫无影响吧!
好,没问题就继续,你把settings中的gs复制到了exit中,
原来的exit就变成了exitgs(gs可以随心所欲的复制在exit的任意位置),exit原来的有
效长度是0404,如果你怕出错,就可以改成0606,这样,把exit汉化成"退出"就没问题
了吧?
用图来说明我上面的这段话吧:
●大家看到了Exit的编码040445786974如下图:
●就拿Settings来说,刚才我们把它汉化成04080F8BBE7F6EE02020,看后面多
了2个空格,正好是2个字节,我们可以把它借来用用~别浪费嘛;
这样Exit的编码040445786974就变成了0606457869742020刚好可以汉化成
2个字,如下图
●这时候就可以用“退出”的编码02060F900051FAE0来替换它啦!
!
!
如图
是汉化完毕的结果
保存到手机里看看,是不是汉化成功了?
什么,没成功,那一定是你汉化中出错了。
3.偏移汉化Ascii编码
教程一(教程一和教程二独立存在,都是介绍偏移汉化的)
为了让大家更明白的学好手动偏移,在这篇教程的开头,我首先用一个比喻来说明一下偏移
吧,让大家能够更好的接受。
如果把一个.rsc文件看成一本书,每一个.rsc文件都用自己的
索引表,也是就每一本书都有自己的目录,特别的是,.rsc的索引表都是在.rsc的结尾,而
不是像书本一样在开头。
当你要使用偏移时,也就像这本书中间的某个部分缺页,你必须添
加页码这个概念,当你为书添加了页面,添加完成后,对于缺页前面的部分,添加页码后无
任何影响。
但在缺页后面的页码,你添加了几页,就要响应的修改页码。
也就是说,在rsc
偏移中,你在需要使用偏移的字符使用偏移,偏移之后,你就必须在索引表中进行相应的修
改。
偏移对新手来说,确实有些难度,希望大家能慢慢理解,学好汉化A码的最后一步。
下面的教程均用图片来具体说明:
把HexWorkshop的显示方式调成每行显示16个字符
的方式。
大家看到最后两个字节1A09吗?
把1A09倒过来看,看成091A(不需要在索引表中修改成091A),大家现在看图片中我用黑框标注的1800吗?
把鼠标点到1800的1这个前面,再看看HexWorkshop的右下角
看到图片中1800的偏移地址就是:
0000091A了吧。
这样你就理解最后的1A09为什么要
倒置来看了。
也就是在coolsms.rsc这个例子中,1800到1A09就是索引表,记录着整个
rsc中的内容。
大家留意到HexWorkshop最左手边那组数组没?
索引表最后的1A09就在最左手边的
0910附近。
如图所示:
把鼠标移到0910300A可以看到300A的偏移地址是00000910,依次下来,所以1800
的偏移地址就是091A,和最后的1A09相对应,所以这个就是索引表的起始位置。
在上面的图片中,要注意2020和1800是分开的喔!
现在我们用On和Off汉化来做例子。
找到on所在的位置,看on的偏移地址,在HexWorkshop右下角可以看到On的偏移地
址是0359,现在在回到索引表,如图:
把黑框中框到的字节全部倒置过来看,意思是把1800看成0018,把2000看成0020,依
次类推(记得噢,是在心中这样看,不要试图在索引表中修改),如果你觉得不熟练的话,
你可以在旁边打个草稿。
现在,你的任务是找到于0359这组数最接近的数,慢慢找,找到了没?
对,就在第二排最右手边的5103,倒过来看就变成了0351,是不是这索引表中和
0359最接近?
不相信的话你可以在索引表中继续找,看5103是不是最接近的。
另外和0359
最接近的就是6303了,倒过来看看,变成了0363了,对吧。
我们这里找的是On这个单
词起始位置O这个字母在索引表中最接近位置,我们还需要找一下On这个单词中n在索
引表中最接近的位置。
按前面的方法,我们得知n的偏移地址是035B,按照前面说的,在
索引表中我们就找到了7B03(到过来看是037B,和035B差不多吧?
)。
也就是说0363
对应的就是Off后面的00,037B对应的就是disabled后面的04。
请认真的看懂上面的话,否则无法继续下一步。
我们现在来汉化On和Off,通过前面的教程我们知道
我们把On后面任意添加两个字符(当然你也可以添加更多的字符……),这里我们把On
后面再添加一个on,就变成了Onon,把Off后面添加一个f,就变成了Offf。
按照前面
的方法,可以进轻松的汉化了。
汉化完成后不要着急保存测试,否则你就等着出错吧。
你还没有修改索引表呢!
汉化后的截图:
现在让我们再回到汉On和Off的地方,看看有什么变化。
看看on后面的03现在的偏移地址是不是变了,变成了035D,off后面是00的偏移地址
变成了0366。
也就是说,在你加字节之前,字符索引表里的0363对应的地方是0ff后面的00,037B对
应的地方是disabled后面的04,现在我们加了3个字符进去,字符索引表里的0363对应
的地方已经不是0ff后面的00了。
因为你加了3个字节进去,所以00的位置就向后移动
了3个位置。
0366就是由0363+3得来的。
添加了字符之后,索引表也产生了响应的变化,如图:
1A09倒过來看,091A是这个RSC的字符的总数,你加了3个字节进去,所以这个RSC
边长了,但是字符索引表不会自动修改,所以你要手懂把091A+3。
根据16进制的算法,
091A+3=091D。
你得到的是091D,但是你在HexWorkshop里面必须手动改成1D09
如图:
再回到索引表,在原来的索引表中,在汉化On和Off的时候,你是从0363的位置开始添
加字符进去的,所以,你在0363这里开始+3。
因为你没有修改0363之前的字符,所以在
索引表中1800到0363之前的位置不用修改。
你要+3的地方,你就按下图所示的位置一
次加下去即可:
修改就像下图所示即可:
也就是在下图中,从63开始的地方,隔两个数字就要+3
意思是63+3,7B+3,95+3依次类推下去即可。
再给大家详细解释一下为什么不从1800到5103的地方开始+3个字符吧。
onoff这个地方的偏移地址在0351和0363之间,也就是說,你在onoff这里增加字节,
在0351前面的偏移地址都不会发生变化,发生变化的是onoff后面的偏移地址,因為你
加了3個字节,在onoff后面的所有的字符都被往后挤了3个位置。
在加字符的时候一定要细心,不能出现错误,否则前功尽弃。
你自己加完之后,保存coolsms.rsc,传到手机里看看,看是不是已经汉化成功了?
看到这里,相信你也基本上可以理解为什么可以借字符了吧。
对,就是因为在同一级菜单下,
字符在索引表中的位置是相同的,所以你可以使用借字符的方法。
教程二
Step1.
首先把hexworkshop的显示方式改成8双字符的显示方式,如图所示(hexworkshop
默认就是这样的显示方式):
现在我们来看索引表最后面的4个字符,是1402。
这里,我们要把1402在心里理解成0214。
只有理解成0214才能找到索引表的位置!
现在来看hexworkshop最左手边的那行数字,就像000001E000000200……这样的数
字一样
既然是我们把最后的1402理解成0214,我们就要到有0214的地方去找
于是就找到00000210
在00000210这一行中,有8双字符,对吧
每一个字符都有对应的偏移地址
把鼠标移动在每一个字符的前面,在hexworkshop的右下角就能看到相对应的偏移地址
因为是0214,所以我们要找到这个0214所对应的偏移地址
对,就是1500
从1500到1402就是这个软件的索引表地址
记录这软件所有字符的信息
Step2.
我们就用软件中的set来做例子吧。
首先把光标移动到set这个单词的s的前面,得到一个偏移地址是007F
再看看set中的t的偏移地址,把光标移动到t的后面去,得到另一个偏移地址0082
现在再回到索引表,找和007F还有0082最相近的地址
大家要记得喔,在索引表中都应该倒过来看
也就是说,要把1500看成00151D00看成001D等等
注意,找最接近的字符不是去比较大小,而是要找最接近的。
结果我们自己的查找,得知:
在索引表中和007F还有0082最接近的是6D00和0801
这步理解了就OK,我们继续
不理解的话一定要弄懂,否则无法继续
Step3.
在回到set这个单词中来,要把set汉化成“设置”,最少需要6个字符
于是,我们这里就复制3个字母,再插入进去吧(你插入几个字母是你自己的事)
这个汉化过程在此省略。
汉化好了之后,再看现在看到02068BBE7F6EE0中的E0这个字符
把光标移动在E017的中间
看看偏移地址是什么
对,是0085
原来不是0082吗?
为什么,就是因为我们插入了3个字母进去,这样,偏移地址都向后类推3个地址而已。
Step4.
现在就是最后一步了,要对索引表进行修改。
再看看到原来的6D00和0801
是不是有变化了
它们也都向后移动了三个位置
但是,我们不要去管索引表的起始位置,而是要找于set的偏移地址相对应的偏移地址。
看到原来和007F还有0082最接近的6D00和0801
修改偏移地址,应该要从0801开始。
为什么不是6D00呢?
因为我们是在6D00和0801这段偏移地址中间插入的
插入后的结果就是6D00的位置没有变化
而0801的位置变了
所以我们要从0801开始修改
为了更加方便的修改,还是从1402开始修改吧
把1402修改成1702(就是增加了3个字母进去的原因)
也可以这样来加:
080146018701AD01C501DF01E4011402
现在从0801的08开始都+3
如果不会计算16进制的,可以用windows内置的计算器来算
最后修改的结果是这样的:
0B0149018A01B001C801E201E7011702
修改好了,保存测试一下吧
4.特殊的Ascii编码汉化
如图所示:
口AutoRun(这个口是复选框),编码是0A0A31094175746F2052756E
我们在这里把AutoRun汉化成“自启动”(汉化成自启动不需要偏移,所以这里简化处理)
按照上面教程的方法,我们是这样汉化的050A0F555238842215E02020
在处理这个3109的时候,不能动3109,但汉的时候要当二个汉字来处理。
也就是说,你汉化0A0A31094175746F2052756E的时候,只能在4175746F2052756E这
一段下手。
看看4175746F2052756E这段,是不是只能汉化成3个汉字?
所以,我们在这里就汉化成“自
启动”
完成汉化的编码就是050A31090F555238842215E0
有些人可能不理解有效长度的05是如何而来的,看我下面的表示,就能更很快的明白了。
050A31090F555238842215E0
45123
这样,大家明白了吧。
就是在算有效长度的时候,不能忽略了3109的存在,要把3109当成两
个长度。
5.Unicode编码汉化
Unicode编码的汉化方法非常容易,基本不需要考虑借位,偏移等方法,因为每一个中文字符和英文字符都占用一个字节。
用Exit为例子,在HexWorkshop中,按Ctrl+H快捷键开始进行替换,在替换类型上选
择“文本字串”,在“查找”中输入要汉化的Exit(注意是Exit,不是E.x.i.t),此处替换的
是“退出”,于是,你就在“替换”中输入退出,别着急按确定,在下面的选项中,点选“用
空格填充”,否则,你会遇到很多意想不到的麻烦。
PS:
为什么要选中“冗余处填充零值”?
这是为了保证文件长度,因为一般汉化Unicode成中文时,字符长度都是比英文字符长
度短一些的。
但“0000”这个编码在手机上查看是“口”,所以就必须填充空格。
切记替
换时要在中文字后面补空格。
见图:
替换完成后,如图所示:
Exit占了四个字节,而且汉化成“退出”后只占用了两个字节,所以,还剩下00000000
这两个字节,我们必须补位,否则就可能出现口口。
最简单的补位方法就是用FFFF补位,把光标移动到0000前面,直接输入FFFF即可。
常用的补位还有2000,效果为空格。
6.exe脱壳汉化
第三版和第二版除了打包方式不同之外,可能最大的区别就是exe脱壳汉化了。
第三版的
不少软件的关于界面都在.exe中(通常在sys/bin文件夹中)。
.exe汉化的方法就是脱壳——汉化——加壳
如图所示:
点击“打开”,找到需要脱壳的.exe文件
点击“脱壳”——“确定”,即可脱壳成功。
在当前目录下就能找到脱壳后的文件,脱壳
后的文件后缀名在.exe.unpacked可以用Hexworkshop直接打开。
搜索软件关于界面中的字符,一般都是Unicode编码,查找替换即可。
保存退出。
再回到exe脱壳工具,再次点击“打开”找到你汉化保存后的.exe.unpacked文件,点击
“加壳”——“确定”,这个步骤之后,加壳后的文件后缀名为.exe.unpacked.pac
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Symbian 3rd汉化教程 rd 汉化 教程