大伙儿今天得空,想跟各位聊聊我前段时间瞎折腾安卓汉化的那点事儿。这事儿,说难不难,说简单也不简单,主要就是个耐心和细致活儿。
起因:不就是没中文嘛我自己来!
起初,就是因为我平时喜欢捣鼓各种手机应用,有些国外的APP确实做得挺有意思,功能也强大,但偏偏就没个中文版。我这英语水平也就半桶水晃荡,对着那些英文界面,用起来老费劲了,有时候连蒙带猜的,体验感差了不少。次数多了,我这犟脾气就上来了,心想,不就是个语言问题嘛别人能汉化,我为啥不能试试?于是就这么着,我决定自己动手,丰衣足食。
摸索阶段:工具和基本概念
真是两眼一抹黑。我就上网到处搜教程,看人家是怎么搞的。发现这安卓应用,都是些后缀名为.apk
的文件。这玩意儿不能直接打开改,得用专门的工具。我陆陆续续了解到了几个名词,像是“反编译”、“回编译”、“字符串”、“资源文件”之类的。听着挺唬人,慢慢接触下来也就那么回事。
我先是找了个据说在手机上就能操作的工具,好像叫MT管理器?还是啥来着,记不太清了,反正就是方便。想着先从简单的入手,别一步到位整太复杂的,怕把自己劝退了。
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
动手实践:拆包、找米下锅
我找了个体积不大,功能也比较单一的英文小软件练手。第一步就是用那个工具把.apk
文件给“解开”。解开之后,嚯,里面一堆文件夹和文件,看得我眼花缭乱。根据网上看的零散经验,那些需要翻译的文字,通常都藏在一些特定的文件里。最常见的就是一个叫的文件,它一般在res/values/
这样的路径下面。
我就照着这个线索去找,还真让我给翻着了!打开那个文件一看,里面密密麻麻都是类似这样的代码:
<string name="app_name">Cool App</string>
<string name="settings">Settings</string>
这不就是我要找的文字内容嘛 “Cool App”就是软件名,“Settings”就是设置。我当时那个激动,感觉跟发现了新大陆似的。
翻译与替换:痛并快乐着
找到了地方,接下来就是翻译了。这一步就纯粹是体力活加脑力活了。我把自己当成人工翻译机,一条一条地把英文替换成中文。比如把<string name="settings">Settings</string>
改成<string name="settings">设置</string>
。这过程里,也遇到不少麻烦:
- 长度问题: 有些英文单词短,翻译成中文后字数变多了,结果在软件界面上就显示不下了,或者挤成一团,特别难看。这时候就得反复斟酌用词,尽量精简,既要表达清楚意思,又要控制字数。
- 特殊字符: 有些字符串里头会带一些特殊的符号,比如
%s
、%d
或者\n
之类的。这些玩意儿可不能随便动,它们是程序用来格式化文本或者换行的,动错了软件就可能出问题。 - 硬编码: 最头疼的是有些文字直接写死在代码里了,而不是在资源文件里。这种就比较麻烦,我一开始也搞不定,后来才知道需要更深入地去修改其他类型的文件,这就超出我最初的预想了,所以早期碰见这种就先跳过。
翻译完了,保存好修改过的文件。然后就是最关键的一步:回编译。就是把那些被我改动过的零散文件,重新打包成一个可以安装的.apk
文件。这个过程也得用工具来完成。
测试与修正:不厌其烦的循环
第一次回编译打包成功后,我迫不及待地把修改后的APK安装到手机上。打开一看,界面果然变成中文的了! 虽然可能只有一部分,但那种成就感,甭提多带劲了!
十有八九不会一次就完美。有时候是部分文字没显示出来,有时候是软件直接闪退打不开。遇到闪退那真是头皮发麻,说明我肯定是在哪个环节改错了东西。没办法,只能卸载了,回头再仔细检查翻译的文本,看看是不是动了不该动的东西,或者格式有没有问题。然后重新修改,重新打包,重新安装测试……这个过程可能要重复好几次,特别考验耐心。
我记得有一次,就因为一个标点符号用错了,导致整个软件都打不开。我查了半天,眼睛都快看瞎了,才找到那个罪魁祸首。修改正确后,软件正常运行,并且中文显示完美,那一刻真是长舒一口气!
一点心得
后来我也尝试了些电脑上的专业工具,比如那个大名鼎鼎的Apktool。电脑屏幕大,操作起来确实比手机方便多了,处理速度也快。通过这一番折腾,我不光是学会了怎么去汉化一个应用,更重要的是,我对安卓应用的内部结构有了个大概的了解。知道了那些文字是怎么存放的,应用是怎么把它们显示出来的。
虽然这算不上什么高深的技术,顶多算是“体力活”加“细心活”,但自己动手把一个英文软件变成中文,那种满足感还是挺强烈的。现在再碰到一些没中文的好应用,我心里就有底了,大不了撸起袖子自己干呗!也算是掌握了一项“实用小技能”,哈哈。有时候我老婆看我对着电脑瞎鼓捣,还问我弄这些有啥用,我说你不懂,这里面有乐趣!没准哪天我汉化个特别火的应用,还能小出名一把,这也就是瞎想想。
整个过程就是不断地尝试、失败、学习、再尝试。如果你也对这个感兴趣,不妨也动手试试,没那么神秘。