我当初是真没打算自己动手。这鲁迪的汉化包,以前一直都是等那个老牌的字幕组更新,他们干活是慢了点,但质量总归是靠谱的。可这回不一样了,官方那边冷不丁地放出了一个巨大的版本更新,新剧情,新地图,听说连结局都多了一个分支。我一打开,得,旧汉化包直接废了,所有新对话框里蹦出来的全是日文原版或者一堆乱码,完全看不懂。那种挠心挠肺的抓狂劲儿,比我上次体检发现血压高还难受。
不能等了,自己干。
我的第一个动作是赶紧去论坛里找资料。我发现不光是我,全球的玩家都在骂街。不过骂归骂,总有几个高人在分析数据包。我花了整整一个下午,把他们讨论的帖子全扒了一遍,总算搞清楚了这回官方更新是动了底层的脚本结构。以前的文本文件是明文的,这回全部塞进了他们自己搞的一个加密容器里,格式都变了。
第一步:撬开“箱子”
要汉化,你得先把文字抠出来。我下载了一个据说是专门用来解包这个游戏引擎的开源小工具。光是这个工具,我就折腾了四个小时才编译工具虽然有了,但它跑起来跟个老牛拉破车一样慢,而且对那个新加密的容器支持很差。它解包了十次,九次都会报错,说文件结构不对。我没办法,只能不断地重启程序,不断地重新定位文件,不断地磨,最终硬是耗到了凌晨四点,才把那个巨大的文本文件给完整地拽了出来,足足有十几兆的纯文字。
等我拿到这个新文本库,我人都傻了。这不是简单地加了几万字的剧情,而是把以前所有的对话,所有的系统提示,全部重新编号了。我以前翻译好的老文本,跟新的文件,简直就是两套系统。
第二步:人工搬砖与结构重塑
怎么办?总不能从头再翻译一遍,那工作量能把我肝死。我启动了我的文本对比工具,把旧的翻译文件和刚抽出来的新文件放了进去。结果屏幕上那密密麻麻的红绿差异,看得我头皮发麻。我发现,他们虽然重编了号,但是大部分核心句子没变,只是句子的ID变了,或者是在句子中间加了一段新的“表情代码”。
接下来的两天,我就是个纯粹的搬运工。我抓着鼠标,对着两个窗口,一行一行地找,粘贴,校对。遇到新增的章节,比如鲁迪在魔大陆那段新冒险,那我就得自己硬着头皮翻译。我的外语水平也就那样,很多地方只能靠语境去猜,翻得肯定不专业,但至少能看懂个七七八八。
这种纯粹的体力活,干久了真要命。我那天下午感觉眼睛都要瞎了,就决定打包测试一下,看看成果。
第三步:崩溃与死磕
我把所有翻译好的文本重新塞回那个解包工具里,让它再次打包生成新的汉化补丁。我心里想着,终于可以躺平体验新剧情了!
我点击启动游戏,前面的开场动画和旧剧情都没问题,汉化得漂漂亮亮的。但当我点开新章节,屏幕刚跳到鲁迪的老婆艾莉丝出场的一段关键对话时——“啪”,游戏窗口直接消失了,只留下一个错误提示框。
我咒骂了一声,心想肯定是编码又出错了。我反复检查编码,ANSI、UTF-8、Shift-JIS,全试了一遍,重新打包,还是一样,一到那个地方就崩。我气得在椅子上跳起来,这不是白忙活了吗?
我决定刨根问底。我翻出了系统日志和之前解包出来的那堆原始脚本文件,一行一行地对照那个崩溃点。我花费了又一个晚上,咖啡都喝光了,终于发现了一个极其隐蔽的改动:在那个关键对话里,程序调用角色的名字时,以前是用一个简单的变量代号,比如“%CHAR_ID_05”,而新版本里,他们把这个代号改成了函数调用,要求你用“call_name(ID:05)”这样的格式。
我的汉化文本里,虽然文字对,但是保留了旧的变量格式,程序一读到这个错误的变量名,系统逻辑就乱了,直接闪退。真是个不起眼的小细节,差点把我整崩溃。
我赶紧打开文本,搜索并替换了所有用到这种角色名变量的地方,把它们从旧格式统一修改成新格式。改完之后,我再次打包,心怀忐忑地启动游戏。
这回终于!画面顺利地播放了下去,艾莉丝的对话框里,清晰地显示着我翻译的中文。那一刻,我感觉这两天所有的辛苦和抓狂都值了。这套流程走下来,我不仅玩到了最新内容,还彻底摸清了他们这回更新的“脾气”。虽然过程粗糙,但能把东西搞定,就是最大的成就。等我再把其他新增内容都补完,就可以把这套汉化包分享出去了,也算对得起这几天我的头发。