2022年4月2日 星期六

殭屍毀滅工程 - 模組翻譯教學 Part.1 基礎知識(上集)

 序 

我是抱持著總有一天會退坑這款遊戲的心態,寫下了這一系列教學文,同時也是希望能拋磚引玉,讓更多人知道怎麼自己動手翻譯模組,讓各位了解翻譯不是困難的事情。

以下為本篇章節:
1. 該準備些什麼?
2. 翻譯時的注意事項

 該準備些什麼? 

開始學著使用寫語法的人在用的程式去編輯語言文本
儘管你不是工程師出身,但你必須去習慣它,請不要再用微軟記事本(Windows Notepad)去編輯PZ的語言文本。因為遊戲終究是用程式語法寫出來的,所以語言文本的用意就是做一個讓遊戲能看得懂的方式呈現我們給的內容,因此它終究離不開語法,只不過翻譯相對比較沒那麼需要涉及太多的語法知識罷了。

那麼我應該用什麼來編輯文本?以殭屍毀滅工程(以下簡稱PZ)來說,我推薦用Notepad++就可以了。這是免費軟體,官網在這裡,自己去下載:https://notepad-plus-plus.org

Notepad++是一個很有名的純文字編輯器,開發者是台灣人侯今吾(Don Ho)。你只要用這個用久了,也會跟我一樣慢慢習慣的,然後就回不去了,反而會覺得微軟記事本有點難用。

讓我再給你一個為什麼要用Notepad++來翻譯PZ文本的理由:PZ跟Minecraft一樣,都是用JAVA做的遊戲,這種遊戲的特色之一就是設定用的文件都是寫成Lua檔案。這種Lua檔案,微軟記事本是打不開的,但是有很多程式可以打開它,而Notepad++就其中一個。此外,我們也會在以後的其中一篇教學中,從Lua檔案找東西,所以請聽我一言,如果你真的想翻譯PZ的東西,那就跟著我一起開始使用Notepad++吧。


了解檔案放在哪裡
PZ遊戲資料夾位置
在我們開始翻譯模組之前,你必須先知道PZ的遊戲資料夾在哪裡。

我不知道The Indiestone在未來的日子裡有沒有想要把PZ上架到其他平台,但就以目前在Steam平台買下了這款遊戲的人來說,你只要去你的Steam收藏庫,對著PZ點滑鼠右鍵,選擇【內容...】會跳出另一個選項框,然後點選左側的【本機檔案】,最後點選右側上方的【瀏覽...】,就可以直接跳出PZ遊戲資料夾的所在地。

來到了PZ遊戲資料夾之後,不要害怕,依照這個順序點進去資料夾裡面:
media/lua/shared/Translate
到了這裡之後,可以看到很多資料夾,這些資料夾的名稱其實都是語言的代碼。例如英文就是 "EN";俄文就是 "RU";韓文就是 "KO";日文就是"JP"。當然也有我們的中文:簡體中文是 "CN";正體中文是 "CH"。這個你要記起來,別把資料夾名稱搞混了。


已經訂閱的PZ模組位置
首先,你最好已經有訂閱了幾個PZ模組,否則接下來你可能會看不懂。PZ的Steam工作坊在這裡,先訂閱幾個模組吧:
你注意看一下那個APP斜線後面寫的那串數字:108600,把這串數字記下來,等一下會用到!

訂閱好一些PZ模組後,你回想一下我們剛才不是已經打開過了PZ遊戲資料夾嗎?你的視窗上面有資料夾路徑,把滑鼠移過去,對著路徑上的 "steamapps" 點一下,我們就等於往上兩層。
(或者去點兩次左邊的向上箭頭,也可以往上兩層)

然後你進去【workshop】資料夾,接著進去【content】資料夾。如果你在很多遊戲都有訂閱工作坊,那你就會看到不只一個資料夾。但是在這其中,有一個你剛才才看過的一串數字:沒錯,就是那個108600,你在Steam工作坊訂閱的PZ模組就全都放在這個資料夾裡面!
如果你以後會經常想要翻譯PZ模組,那你應該會常常來這裡,所以最好對著這個資料夾使出你的滑鼠右鍵,把它傳送到桌面弄成一個捷徑,或是釘選到左側的快速存取區,這樣就會很方便。

你可能會問:我訂閱了很多模組,裡面的資料夾名稱也都是數字,我要怎麼知道我想翻譯的模組是哪一個?以阿墨的翻譯模組為例,模組在工作坊的ID可以在兩個地方找到:
1. 看網址就知道了,網址上面有
2. 模組頁面往下滑,沒意外的話,就會在留言區的上面看到

這樣就可以知道要找的模組是哪一個了。

官方把文件放在哪裡,模組就會把它放在哪裡
模組的用意最簡單的說法就是:在不真正取代官方內部文件資料的情況下修改內容或是新增內容。所以官方把東西放哪裡,做模組的人就必須製作一樣的路徑,然後把做好的東西放在一樣的地方,否則就無法正確引導遊戲系統去讀取模組的人做的東西。

就以正體中文文本來說,官方的資料夾擺放路徑就是這樣:
ProjectZomboid/media/lua/shared/Translate/CH

所以做模組的人也要擺成一樣的路徑,以阿墨的翻譯模組為例:
108600/2697858534/mods/Traditional Chinese fix/media/lua/shared/Translate/CH

我已經把它們標成紫色,所以你可以很清楚看到檔案擺放的位置就是一致的,因此你只要循著這個路徑,就能找到語言文本。



 翻譯時的注意事項 

好了,你現在已經有工具了,也知道資料放在哪裡了,你就可以翻譯模組了。你可以從簡單的小模組來試試看,因為小模組需要翻譯的東西可能就只有幾句而已,是很好的嘗試對象,這裡順便提出一些注意事項。

英翻中
如果模組作者在製做模組的時候有弄好設定,那麼至少都會有一個英文版的(也就是那一袋EN資料夾)。所以大家都是複製英文版的內容,然後用這個英文版為基準去翻譯成大家自己的母語。


版本14.68(含)之前是Big5格式;版本41.69開始是UTF-8格式
事情經過我寫在巴哈這一篇的二樓,我就不多說了。PZ遊戲資料夾裡面,所有的語言文本都是用UTF-8格式,連簡體中文也是用UTF-8格式,就偏偏只有正體中文是被設定為Big5格式。為什麼會有這種 "特殊待遇"?我他媽的怎麼會知道!如果讓我知道是哪個王八蛋設定的,我一定要大力譴責!

如果你在看這篇文章之前是用微軟記事本,那你也會發現文本編碼變成ANSI也是可以在PZ遊戲裡面正常顯示的,請把它當作僥倖,不管怎樣,最好還是變成符合要求的格式才不會有問題。你只要用Notepad++就可以很好地把格式切換成14.68(含)之前規定的Big5格式。然後別忘了等到41.69開始,你要把格式換成UTF-8,文本內容才不會在之後的版本呈現亂碼。
這裡要注意選項選下去的時候如果跳出警告,這種情況下如果直接按下確認,文本裡面的中文很可能會在轉換之後變成亂碼,你之前翻的就白費了。這種現象非常容易發生在你要把別的格式轉成Big5的情況下,所以你最好先把文本內容整個複製之後才去轉編碼,編碼轉好之後如果真的變成亂碼,再把內容貼回去就可以了。

這裡插播分享一件事情,那就是你可能會遇到明明已經確定你有把文檔轉成了Big5,結果下次打開同一個檔案時,顯示的卻又是別的編碼,你必須自己再去手動切換回去。這種現象時有發生,讓我覺得非常疑惑,所以我有去巴哈電應版問過這個問題,電應版的高手們的回答是軟體在打開檔案時偵測該檔案的編碼時沒有正確的猜到,而且這種現象也不是只出現在Notepad++,在別的純文字編輯軟體也會有,但是可以確定檔案的確是以Big5儲存的,所以我就放心了。

此外,Big5能支援的中文其實並不多,例如 "擀麵棍" 的 "擀",在Big5就不支援,"擀" 這個字會變成問號,所以沒事的時候最好注意一下有沒有比較不常見的字變成了問號,如果有找到,就自己想辦法用接近的字來替換。所以我其實可以理解為什麼後來會有人到官方公開文件的地方出手幫我們把正體中文的編碼改成跟其他語言一樣使用UTF-8,因為這樣改了之後,可以根絕很多這類不必要的技術性問題。所以如果讓我知道到底之前是哪個王八蛋把我們的CH故意設定成Big5格式,我一定要大力譴責!但不管怎樣,我們這裡勢必就會有一段過度期。


不要使用中文的標點符號
我已經在巴哈這一篇寫過了這件事情,因為很重要所以我要再講一次。

我跟你們說,這裡就不是編碼問題,而是The Indiestone給這個遊戲使用的字體並不完全支援中文,所以如果我們在翻譯的時候使用了中文的全形標點符號,那麼到了遊戲裡面之後,這些標點符號就會無法顯示。所以你必須改用英文的標點符號才不會有問題,例如:驚嘆號你不能用"!",你要用英文的"!";逗號不能用",",你要用這個英文逗號","。而且因為這個英文逗號實在太小,所以我會再多給一個半形空格,所以我都換成", "。


可以打開來參考看看CN怎麼翻的(如果有的話啦)
稍早提過了,簡體中文的資料夾是"CN",所以如果模組裡面有CN資料夾,你可以打開來參考。但是又因為有時候那些中國人並不會直接把翻譯成果交給模組作者,而是自己另外上傳一個模組,那樣的話,你可以去仔細看一下模組的頁面,看一下模組作者寫了些什麼(不要怕英文,滑鼠右鍵估狗翻譯一下就可以略知一二)。模組作者通常會寫在說明文裡面,像這樣:
這是Rugged Recipes。可以看到中國人沒有把文本直接給模組作者,而是直接自己另開一個模組,所以模組作者只好在說明文裡面附上連結。


注意幾個地方,否則翻譯不會生效
我這裡簡單講一下文本的結構。先看這個示範:
這是我已經翻譯好的Stack All內容,這個就是最典型的翻譯完成後的樣子。

1. 語言代碼要正確
我曾經幹過的蠢事就是內容第一行是EN而不是CH,所以翻譯沒有生效。原因很簡單,因為我就是複製英文版之後翻譯的,然後我只記得要去改檔案名稱,卻忘了內容第一行的EN也要改成CH,所以我事後進了遊戲檢查,看到翻譯沒有生效,找了幾分鐘才發現是那邊沒改到。

2. 等於符號之後的翻譯內容,是用 " 包起來的,不要動到它
你的翻譯內容本來就是用 " 包起來的,而且這是語法的一部份,千萬不要去動到,小心不要把 " 刪掉。我就有幹過這種蠢事,不小心把某一條翻譯的一個 " 刪掉,所以該條句子就沒有生效。這個我找了快五分鐘才發現原來是自己不小心刪掉了",補上去之後進去遊戲看就正常了。

3. 配方的文本,語法開頭的英文一定要大寫才能生效
給大家看一個範例:
這是我已經翻譯好的Homemade Concrete And Plaster Powder內容。

配方的文本裡面,它的每一句都是Recipe開頭,我發現這個必須要用英文大寫R,不能用英文小寫r,否則你的翻譯無法生效。

反之,如果都是英文大寫R,翻譯就會生效。
我不確定其他類型的文本是不是也要這樣,所以我只分享我實際遇到並且確定的事情,請大家翻譯模組的時候要注意。

怕大家消化不良,所以本篇就寫到這裡。如果你已經確定你"消化完成"了,那你就去看下集吧:模組翻譯教學 Part.2 基礎知識(下集)

沒有留言 :

張貼留言

矮控的FB粉專已經被駭客搶走,有事可以改去巴哈私信給我(帳號名稱是eva08maicy02)。

關於我自己

我的相片
阿就是不想看到伸手文,所以才把遊戲攻略寫在這~(挖鼻孔)