ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

LunaTranslator:把日文视觉小说实时译成中文,HOOK 提文本 + OCR 补位,3 步跑通

LunaTranslator:把日文视觉小说实时译成中文,HOOK 提文本 + OCR 补位,3 步跑通

LunaTranslator:把日文视觉小说实时译成中文,HOOK 提文本 + OCR 补位,3 步跑通

【免费下载链接】LunaTranslator视觉小说翻译器 / Visual Novel Translator项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslator

LunaTranslator 是一款视觉小说翻译器,核心能力是 HOOK——把组件注入游戏进程,实时提取游戏内日文文本并翻译成中文;HOOK 搞不定的场景再用 OCR 框选截图识别。本文带你从启动软件、拿到第一条译文,到按自己的场景调好一套 HOOK / OCR / 翻译引擎配置。

🎮 先对号入座:这三类情况你会用到它

  • 玩 Windows 日文原版视觉小说,不想等汉化组:用 HOOK 模式从进程里直接提取文本,几乎覆盖所有主流和冷门引擎的游戏,译文显示在软件窗口,部分游戏还支持直接内嵌进游戏画面。
  • 游戏文本是画在图片上的、或 HOOK 提不到:切到 OCR 模式,框选识别区域自动识别翻译。
  • 玩 NS / PSP / PSV / PS2 模拟器游戏:HOOK 模拟器进程读取文本;顺带支持日语分词、假名注音、TTS 读文、Anki 卡片,适合一边玩一边学日语。

对号入座之后,先把它跑起来。

⚡ 最短路径跑通:启动软件并拿到第一条译文

环境前提:

  • Windows 10/11(64 位);源码方式运行需要 Python 3.x 和联网装依赖
  • 关闭杀毒软件,或把软件目录加入 Defender 排除项(注入组件极易被误报,这是后面大部分故障的根源)

1. 获取软件

git clone https://gitcode.com/GitHub_Trending/lu/LunaTranslator

官方日常使用推荐下载绿色压缩包解压到任意目录,且不要放进C:\Program Files这类受保护路径,否则配置和缓存写不进去;源码方式克隆仓库即可,看到src下同时有LunaTranslator和NativeImpl两个目录说明拉取完整。

2. 启动程序

解压版直接双击LunaTranslator.exe(普通模式)或LunaTranslator_admin.exe(游戏需要管理员权限时用);源码方式在项目根目录执行:

python src/LunaTranslator/main.py

看到 Fluent 风格的主界面弹出、左侧导航可展开各设置页,代表程序本身跑通了。

3. 挂上游戏,翻译第一句

游戏先启动并推进到有对话的画面。在软件中选择"HOOK 模式",从进程列表里选中游戏(也可以把游戏 exe 直接拖进主窗口自动启动并注入),随后弹出"选择文本"窗口,里面会滚动出现若干候选文本行。选中符合游戏对话的那一行,点"显示"。

主窗口同时出现日文原文和中文译文,整条链路就跑通了;如果该行还有"内嵌"按钮,说明这游戏支持把译文直接画进游戏画面。

⚙️ 核心机制:文本从哪来、译文怎么出

按"输入 → 处理 → 输出"看三个环节,你就知道每个开关在决定什么。

HOOK 文本捕获:输入是游戏进程,处理是软件把LunaSubprocess/LunaHost注入进程,在游戏调用绘制和字符串函数时拦截出文本,输出是一行行候选文本。这是默认首选:稳定、不依赖截图,代价是需要注入,对杀软件敏感。参数细节见 docs/zh/hooksettings.md。

OCR 识别:输入是截屏图像,处理分本地和在线两条路——内置离线 OCR 模型和 Tesseract、Windows OCR 等离线引擎,或百度、腾讯、Google 等在线接口,输出是文本。自动化有周期执行、分析图像更新等四种模式,拿不准就用周期执行。取舍在于:离线引擎不联网但精度稍逊,在线引擎精度高但需要网络和密钥。

翻译引擎:输入是上一步的文本,输出是译文。引擎库在 src/LunaTranslator/translator/,覆盖微软、DeepL、谷歌等在线接口,也支持离线模型和大语言模型(可填 API 地址、Key、自定义 prompt,支持流式输出和附带历史上下文条数)。译文有缓存,重复内容不重复请求。

输出端还有三条可选通路:内嵌翻译(支持的游戏把译文直接渲染进游戏)、TTS 语音合成(src/LunaTranslator/tts/)、分词注音与 Anki 同步,都是同一个译文出口上的开关。

🧩 按需求选配置:新手组合与进阶组合

新手默认组合

  • 文本获取:HOOK 模式,跟随默认设置
  • OCR 备用:内置本地 OCR(离线、免配置)
  • 翻译引擎:微软翻译(免密钥)
  • 显示方式:软件窗口显示译文

适合第一次上手、只想立刻读通剧情、不想填任何密钥的人。

进阶组合

  • 文本获取:HOOK 为主,OCR 周期执行兜底,识别不到时手动框选
  • 翻译引擎:大语言模型接口,开启流式输出,"附带上下文个数"设 3~5 句,让前后文翻译更连贯
  • 显示方式:游戏支持内嵌就开内嵌,只留游戏窗口,沉浸式
  • 叠加:TTS 读文、分词假名注音、Anki 卡片

适合长期玩日文原版、有学习需求、手里有 LLM API 密钥的人。

🔧 常见问题排查:先查这两处,再查参数

现象:启动报"Missing embedded Python3",或运行一阵后报 FileNotFoundError最可能的原因:杀软删除了内嵌 Python 或注入组件;软件目录没加信任。对应动作:关闭杀软,或在 Defender"病毒和威胁防护 → 排除项"里加入软件目录,然后重新下载解压。

现象:HOOK 模式一直卡在"正在等待 DLL 注入到游戏中……"原因一:杀软拦截了注入,动作同上,添加信任后重试;原因二:游戏是管理员权限运行而软件是普通权限,动作是改用LunaTranslator_admin.exe启动软件。

现象:提取的文本一两个字就刷新,或新行不断把旧行顶掉原因是游戏文本显示速度慢于软件的"刷新延迟"。动作:在设置 → HOOK 设置里调高"刷新延迟",或者在游戏内调快文本显示速度。反过来,如果文本正确但提取慢,就适当调低这个值,注意别回到上面的现象。

现象:内嵌翻译后游戏里中文乱码原因一般是游戏缺少中文字体。动作:激活"修改游戏字体",选择一个带中文字形的字体,乱码即恢复;仅英文游戏常见此问题。

现象:OCR 模式下同一句被反复翻译原因是 OCR 结果对图像微小扰动敏感,文本相似度阈值过低导致每次截图都判定为"新文本"。动作:在 OCR 参数里调高"文本相似度阈值",或改用"分析图像更新"模式等画面稳定后再识别,参数含义详见 docs/zh/ocrparam.md。

结尾

跑通只是开始,HOOK 刷新延迟、OCR 自动化策略、内嵌字体这三处调对,翻译体验就稳了。继续深入可以从完整文档 docs/zh/ 入手,默认配置模板在src/LunaTranslator/defaultconfig/,模拟器游戏支持列表在docs/zh/emugames.md。

【免费下载链接】LunaTranslator视觉小说翻译器 / Visual Novel Translator项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslator

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进