• «
  • 1
  • 2
  • 3
  • »
  • Pages: 1/3     Go

1787064.jpg

injustice1

GF  2023-07-07 21:52
([sell=0,money] [/sell])

【无图教程】利用luna翻译器实现零延迟ChatGPT机翻所有galgame的方法【外挂字幕】

先放项目地址:https://github.com/HIllya51/LunaTranslator
基本上所有galgame都可以,只要是能hook出文本的都能用这个方法
原理:luna翻译器会记录所有的hook和翻译记录,将记录导出后用支持gpt接口的机翻软件翻译,最后再导入luna翻译器(预翻译功能)
感觉这个方法是很有必要的,只要体验过gpt实时翻译的玩家都知道翻译速度有多慢而且如果是免费账户还会有每分钟调用3次api的限制。
这是个门槛低但是复杂度高的方法。有技术的的可以考虑直接解包出游戏文本用于翻译,或者制作机翻版本


以下是详细流程(建议先下载好对应软件再看):

一、用luna翻译器勾出文本,hook的方法网上挺多就不再赘述。然后关闭所有翻译接口,并把hook设置中的刷新延迟改到10ms以下1ms,接下来用快进(ctrl键或者游戏自带的skip)过一遍游戏全程,翻译器会记录所有的文本。这个文件保存在路径LunaTranslator\translation_record下,不用管这个路径。点击luna翻译器→翻译设置→导出翻译记录为json文件。至此我们得到了json格式的游戏文本。

二、机翻软件我用的翻译君:https://github.com/sh2288/transer
有20r的费用,买断制。有坛友给出了激活码生成方式
可以使用其它平替软件。但是以下的操作不适用于其它翻译软件。
以纯文本格式导入json文件。
行匹配正则:
复制代码
  1. ^.+{$

行间过滤:
复制代码
  1. [{":]

上面这个正则表达式的解读很简单(以下是原理可以不用管),json的格式是
复制代码
  1. "原文": {
  2.         "userTrans": "",
  3.         "machineTrans": ""
  4.     },

那么只需要匹配以 { 结尾的所有行,并过滤 {  "  :  这三种特殊符号。

然后选用gpt接口进行翻译。

三、翻译完毕后选择“导出原文译文”,注意不是“导出所有剧本”。后者是用译文替换原文,而我们需要的是原文和译文,原文供检索使用。txt格式的原文和译文的行数是相同的,将编码改为utf-8格式,然后用这个脚本将两者合并为最终的新的json文件:
复制代码
  1. import os, json
  2. def merge_txt2json(jp, cn, output, encoding='utf-8'):
  3.     with open(jp, 'r', encoding=encoding) as file1, open(cn, 'r', encoding=encoding) as file2, open(output, 'w', encoding='utf-8') as output_file:
  4.         lines1 = file1.readlines()
  5.         lines2 = file2.readlines()
  6.         data = {}
  7.         
  8.         for i in range(len(lines1)):
  9.             line1 = lines1[i].strip()
  10.             line2 = lines2[i].strip()
  11.             data[line1] = {"userTrans": line2}
  12.         
  13.         content = json.dumps(data, ensure_ascii=False, indent=4)
  14.         output_file.write(content)
  15. def main():
  16.     jp = input("输入原文文件: ")
  17.     cn = input("输入译文文件: ")
  18.     encoding = input("输入文件的编码方式(留空则选择utf-8): ").strip() or 'utf-8'
  19.     output = jp + '_output.json'
  20.     merge_txt2json(jp, cn, output, encoding)
  21. if __name__ == '__main__':
  22.     main()

这个脚本需要python环境,如何安装可以参考这个回答:
https://chat.openai.com/share/d8557244-609a-4479-ae4f-a8a077e05c86
如果出现报错请检查:
1.文件名不能包含空格
2.两个txt文档行数必须相同(如果按上面操作就不会有这个问题)
3.txt文档应该为utf-8编码,如果不是那就用文本编辑器修改,或者将代码第4行的utf-8改为对应编码

更新:把这个脚本做成了可视化exe程序,不依赖于python环境,上面的代码随便看看就行了
链接: https://pan.baidu.com/s/1jsT35QrClMCoa8xngWJZgw?pwd=yjmm


最后打开luna翻译器→翻译设置→人工翻译,导入最后得到的json文件。
记得打开预翻译的“模糊匹配”,因为不同的特殊码可能会导致勾出的文本有细微差别。

补充:有人选择ainiee机翻。mtool转luna预翻译格式
复制代码
  1. import json
  2. def luna_json_maker(trans, output):
  3.     with open(trans, 'r', encoding='utf-8') as t, open(output, 'w', encoding='utf-8') as o:
  4.         d1 = json.loads(t.read())
  5.         d3 = dict()
  6.         for key in d1:
  7.                 d3[key] = {}
  8.                 d3[key]["userTrans"] = d1[key]
  9.         data = json.dumps(d3, ensure_ascii=False, indent=4)
  10.         o.write(data)
  11. def main():
  12.     d1 = input('TrsData: ')
  13.     out = d1 + '_output.json'
  14.     luna_json_maker(d1, out)
  15. if __name__ == '__main__':
  16.     main()

以上是全部内容,欢迎提问。

1376560.jpg

月光大剑

感谢分享。

北欧


none.gif

majority

感谢  

none.gif

竹节葫芦

感谢楼主的分享,我最近正好在寻找这种能导出hook文本并且机翻能指定本地已翻译的文件作为翻译源的软件。chatgpt更适合一段一段地翻译,适量的上下文能提高chatgpt的翻译质量,一句一句翻译从我的使用体验来看和其它机翻软件没什么区别。
顺便推荐一个我使用的chatgpt翻译软件:
https://github.com/NEKOparapa/AiNiee-chatgpt

24786.jpg

快点端上来吧

B5F  2023-07-08 10:18
(牛头人万岁)
可以当作备用方法

5.gif

声声慢

感谢分享

xxxsky457


none.gif

QC

狠狠的码住

631e407e


none.gif

8626d231

B10F  2023-07-08 20:44
(000)
试了一下感觉不太行,按CTRL以后文本跳的太快,根本来不及录下来

1787064.jpg

injustice1

B11F  2023-07-08 20:48
([sell=0,money] [/sell])

回 10楼(8626d231) 的帖子

说了把hook请求间隔调低,默认的50ms肯定是不行的

none.gif

8626d231

B12F  2023-07-08 22:47
(000)

回 11楼(injustice1) 的帖子

调到1ms了

1787064.jpg

injustice1

B13F  2023-07-09 00:05
([sell=0,money] [/sell])

回 12楼(8626d231) 的帖子

什么游戏能做到快进时1秒1000段对话
可以发一下游戏本体让我看看吗

1350158.jpg

月灯white

  

418028.png

莉亚娜

B15F  2023-07-09 01:10
(过气页游提督)
研究研究,之前gpt没搞成 ,还是用的原来的百度彩云实时翻

none.gif

半夏时光

第三步的那个网址打不开,大佬能上传一个吗

1787064.jpg

injustice1

B17F  2023-07-09 18:56
([sell=0,money] [/sell])

回 16楼(半夏时光) 的帖子


none.gif

半夏时光

回 17楼(injustice1) 的帖子

谢谢分享,发现这方法挺好用的

none.gif

qyzct

感觉大佬支招

Easonchan14


夢桃花


1161859.png

充电OK

两个母系文件的文档,大佬帮忙翻译一下
链接: https://pan.baidu.com/s/19vm5IsWks1ZNZC9jGqi2iA 提取码: rch5 复制这段内容后打开百度网盘手机App,操作更方便哦
看看大佬的教程,自己导出都花了不少时间
想体验一下GPT的翻译效果
两个母系游戏,我都在游戏区发了
通淫母
教育ママと伯母と叔母


1161859.png

充电OK

我包茎的肉棒,妈妈帮我剥皮,龟头在妈妈的手中慢慢露出
第一次体验到妈妈手交的快感

  


我包茎的肉棒,被妈妈含入口中,而且还是深喉
第一体验到妈妈口交的快感,那丝滑的,温热的,粘稠的感觉,仿佛升入天国




none.gif

gjkdg


none.gif

8626d231

B25F  2023-07-10 20:27
(000)

回 13楼(injustice1) 的帖子

我用auto了,虽然慢很多。方法是可行的,感谢大佬

none.gif

完全

感谢分享

none.gif

樱桃糖豆

B27F  2023-07-16 14:09
(樱桃糖豆)
大佬能在B站出个视频吗?还是视频比较容易理解。看字我看的云里雾里的

none.gif

e88f6be5

大佬优秀

1787064.jpg

injustice1

B29F  2023-07-16 21:44
([sell=0,money] [/sell])

回 27楼(樱桃糖豆) 的帖子


none.gif

梅花梅花滿天下

B30F  2023-07-16 21:49
(甚麼叫雲玩家啊(戰術後仰))
  
  • «
  • 1
  • 2
  • 3
  • »
  • Pages: 1/3     Go