
告别角色名翻译混乱用 TranslateBooksWithLLMs 术语表完成 LLM 书籍翻译的完整教程【免费下载链接】TranslateBooksWithLLMsTranslate full-length books and documents with Ollama, OpenAI-compatible, Gemini, Mistral, DeepSeek, Poe or OpenRouter. Preserves formatting. Resumes where you left off. No file size limits.项目地址: https://gitcode.com/gh_mirrors/tr/TranslateBooksWithLLMs你是否在翻译完一部小说后发现同一个角色在不同章节出现了 4 种不同的译名TranslateBooksWithLLMs 是一款免费的 LLM 书籍翻译工具它的术语表Glossary功能正是为解决这个问题而生为角色名、地名、组织名锁定统一译名并自动注入到每一段翻译中。本教程带你从零学会构建术语表、设置角色性别、在翻译中途修正词条一次搞定术语一致性。为什么角色名会翻译混乱大模型是分段翻译的每处理一段chunk它就忘记了前面内容。没有术语表约束时同一个角色名的输出可能像这样章节模型输出第 1 章Li Fanqing第 5 章Li Fan Qing第 12 章Lee Fanqing第 20 章Li Fan-qing而只要术语表里有一条李凡青 - Li Fanqing凡是包含李凡青的段落都会被强制使用这个译名全书保持一致。工作原理术语表并不是把全部词条塞进每次请求。过滤器会逐段扫描只有真正出现词条的段落才会收到对应规则见 src/core/glossary/filter.py 与 src/core/glossary/injector.py不匹配的段落零额外成本。快速上手5 分钟创建第一个术语表全程在 Web 界面Glossaries 选项卡操作启动服务后点击顶部的Glossaries选项卡点击New给术语表命名并选择源语言 / 目标语言如 中文 → 英文把你的书籍文件支持.txt、.srt、.epub、.docx、.pdf最大 100MB拖到 Auto-extract 按钮上保持默认参数6000 字符、10 个采样点点击Extract等待 30~90 秒会得到一张候选词条表每行有复选框、可编辑的译名、分类下拉框和性别下拉框人工审阅后点击Add selected词条即进入术语表。 小窍门对同一本书重复运行 2~3 次 Auto-extract是官方推荐流程——每次采样不同位置第二轮通常能多发现 30%~50% 的实体。当候选表大部分显示(already in glossary)时就可以停止了。自动提取会复用你翻译用的模型无需额外 API Key提取逻辑见 src/core/glossary/ner.py。分类与导入导出术语表文件长什么样每条术语支持一个可选的分类标签注入提示词时会以[character]、[location]等形式出现帮助模型消歧分类用途示例character人名Li Fanqinglocation城市、地域Xuanwu Cityorganization门派、组织Iron Sectitem武器、法宝Excaliburtitle头衔、称谓Sect Leaderother其他—术语表支持JSON和CSV两种文件格式可在编辑器工具栏一键 Export / Import。CSV 只需三列即可source,target,category 李凡青,Li Fanqing,character 铁宗,Iron Sect,organization 玄武城,Xuanwu City,location已有翻译团队的共享表格如 Google Sheets 导出的 CSV可以直接导入旧工具的导出文件也能识别source_term、translated_term等旧字段名无需改名解析实现见 src/core/glossary/cli_loader.py。使用术语表运行翻译Web 界面与 CLI 两种方式Web 界面切到 Translate 选项卡在语言选择器上方的术语表下拉框中选中刚建好的术语表拖入文件点击 Translate 即可。CLI适合把耗时数小时的翻译放到服务器上运行。先把术语表导出为 JSON然后加--glossary参数python translate.py -i wuxia_novel.epub -o wuxia_novel_en.epub \ -sl Chinese -tl English --glossary wuxia_novel.json启动时会看到Glossary loaded: 47 terms的日志说明术语表已生效。参数详解见 docs/CLI.md入口脚本为 translate.py。⚡ 如果还没有现成的术语表可以在术语表下拉框选择Auto — build from this document翻译开始前额外调用一次 LLM直接从文档派生一份临时术语表全程无需人工审阅非常适合快速试跑CLI 对应参数为--auto-glossary。设置角色性别解决所有人格都变 he的问题中文、日文等语言经常省略主语且不标记性别。没有提示时模型只能猜——结果往往是所有角色都变成 he甚至能把一部百合小说性转成男同小说 。术语表的每条character词条都可以标注性别female/male。标注了性别的角色会组成一个演员表cast block注入到全书每一段——因为最需要性别信息的恰恰是那些只出现代词、没有名字的段落。高效填写方法按 Category 排序并筛选出character用复选框批量勾选多行点Set gender批量应用。自动提取也会基于采样文本中的证据如她、姐姐等给出性别建议证据不足时会用黄色边框标记提醒需要你手动补全。性别归一化逻辑见 src/core/glossary/models.py。处理变格语言用 | 分隔符覆盖所有词形俄语、德语、波兰语等语言的名词有多种变格形式只写主格会漏掉大部分出现位置。用|列出备选形式即可任一形式命中都触发同一条规则{ source: Москва|Москве|Москвы|Москвой|Москву, target: Moscou, category: location } 建议把最有辨识度的形式放在最前面过滤器按最长优先匹配前缀重叠不用担心。变格语言清单定义在 src/core/glossary/inflection.py示例数据可参考 tests/fixtures/glossary_inflection_ru.json。翻译中途如何修正术语表翻译跑起来后发现某个词条译错了不用推倒重来译名错了打开 Glossaries 选项卡点击对应行的译名单元格直接修改下一个未处理的段落立即生效词条匹配过宽或过窄修改源词如把Fan改为完整名Fan Smith或改用|列出变格形式分类错了点击该行分类下拉框换一个即可批量修改勾选多行后用工具栏的Delete selected / Set category或导出 JSON 编辑后重新导入。翻译任务在 Web 界面中可以随时暂停与恢复已翻译的段落保留在断点里修正术语表后从断点继续即可⚠️ 注意已翻译完的段落仍保留旧译名可在翻译完成后对输出文件做查找替换或从断点重新开始。常见问题速查现象原因与解决词条存在但输出没用上拉丁词按单词边界匹配Fan不会匹配Fantasy变格语言请补|备选形式加了 50 条只有部分出现每段只注入真正出现的词条上限 50 条是每段上限而非总数属正常现象Auto-extract 返回 0 条把 Samples 调到 15~20纯描写性片段可能确实没有重复实体翻译选项卡里看不到我的术语表下拉框只显示语言对匹配的术语表检查源/目标语言是否一致完整排障表格见 docs/GLOSSARY.md 的 Troubleshooting 章节。写在最后术语表功能让 TranslateBooksWithLLMs 的 LLM 书籍翻译从能用变成可靠角色名、地名、组织名全书统一性别代词不再乱跳。推荐路径是——Auto-extract 两三遍打底 → 人工审阅分类与性别 → 选中术语表开始翻译 → 中途发现问题就地修正。完整文档可阅读 docs/GLOSSARY.md术语表模块源码位于 src/core/glossary/。【免费下载链接】TranslateBooksWithLLMsTranslate full-length books and documents with Ollama, OpenAI-compatible, Gemini, Mistral, DeepSeek, Poe or OpenRouter. Preserves formatting. Resumes where you left off. No file size limits.项目地址: https://gitcode.com/gh_mirrors/tr/TranslateBooksWithLLMs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考