【無圖教程】利用luna翻譯器實現(xiàn)零延遲ChatGPT機(jī)翻所有g(shù)algame的方法【外掛字幕】
先放項目地址:
https://github.com/HIllya51/LunaTranslator
基本上所有g(shù)algame都可以,只要是能hook出文本的都能用這個方法
原理:luna翻譯器會記錄所有的hook和翻譯記錄,將記錄導(dǎo)出后用支持gpt接口的機(jī)翻軟件翻譯,最后再導(dǎo)入luna翻譯器(預(yù)翻譯功能)
感覺這個方法是很有必要的,只要體驗過gpt實時翻譯的玩家都知道翻譯速度有多慢。而且如果是免費(fèi)賬戶還會有每分鐘調(diào)用3次api的限制。以下是詳細(xì)流程:
一、用luna翻譯器勾出文本,hook的方法網(wǎng)上挺多就不再贅述。然后關(guān)閉所有翻譯接口,并把hook設(shè)置中的刷新延遲改到10ms以下,接下來用快進(jìn)(ctrl鍵或者游戲自帶的skip)過一遍游戲全程,翻譯器會記錄所有的文本。這個文件保存在路徑LunaTranslator\translation_record下,不用管這個路徑。點(diǎn)擊luna翻譯器→翻譯設(shè)置→導(dǎo)出翻譯記錄為json文件。至此我們得到了json格式的游戲文本。
二、機(jī)翻軟件我用的翻譯君:
https://github.com/sh2288/transer
印象中好像有20r的費(fèi)用,買斷制。可以尋找其它平替軟件。
以純文本格式導(dǎo)入json文件。行匹配正則:^.+{$?行間過濾:[{":]
這個正則表達(dá)式的解讀很簡單(可以不用管直接復(fù)制),json的格式是
"原文":?{
????????"userTrans":?"",
????????"machineTrans":?""
????},
那么只需要匹配以“{”結(jié)尾的所有行,并過濾{,",:?這三種特殊符號。然后選用gpt接口進(jìn)行翻譯。
三、翻譯完畢后選擇“導(dǎo)出原文譯文”,注意不是“導(dǎo)出所有劇本”。后者是用譯文替換原文,而我們需要的是原文和譯文,原文供檢索使用。txt格式的原文和譯文的行數(shù)是相同的,將編碼改為utf-8格式,然后用這個腳本將兩者合并為最終的新的json文件:
https://gist.github.com/Akaruzi/7385973ed157cbc3ae83805f8fb21270
最后打開luna翻譯器→翻譯設(shè)置→人工翻譯,導(dǎo)入最后得到的json文件。
記得打開預(yù)翻譯的“模糊匹配”,因為不同的特殊碼可能會導(dǎo)致勾出的文本有細(xì)微差別。
以上是全部內(nèi)容,歡迎提問。