TeaCon 茶后談第 423 期
屏幕前的讀者大概率已經(jīng)熟悉了基于語言文件的模組漢化,也許還知道現(xiàn)在的語言文件是 JSON 格式的。如果對 1.12.2 及以前的 Minecraft 版本有所了解,還可能知道彼時的語言文件是所謂的「lang」格式的,本質(zhì)上就是等號分割的鍵值對。但再往前呢?在「茶后談#414」中我們提到過,早期的模組開發(fā)者對國際化和本地化并不十分重視,而其另一種表現(xiàn),便是「直接把玩家看到的文本全部寫死在代碼里」。有鑒于 Minecraft 的模組和 Minecraft 本身一樣,也是基于 JVM 的,所以早期的漢化工作者們還是可以通過「直接編輯 class 文件,把寫死的文本全改成中文」的方式來實現(xiàn)漢化,是為俗稱的「class 漢化」。下圖展示了使用 Recaf 反編譯后的漢化版達特工藝(DartCarft)Beta 0.1.20 文件,可發(fā)現(xiàn)寫死在代碼中的中文文本。但這種漢化方法天然要求漢化者本身就有一定技術水平,否則稍有不慎即會令模組文件損壞;同時,修改 class 文件這個行為也有潛在的著作權(版權)方面的爭議;此外,在代碼層面直接修改也無助于解決「同時支持多種語言」的問題。隨著 Minecraft 1.6 正式引入「資源包」概念,并將語言文件納入資源包體系下,模組的翻譯工作也逐漸走出了「茹毛飲血」的時代?!颈酒诰庉嫞?TUSK】
標簽: