9.9 KiB
9.9 KiB
通用翻译规则
这是一份给多线程轻小说翻译任务共用的规则文件。所有线程在开始工作前,都应先读取本文件,再读取当前系列的风格文件与术语表。
适用范围
- 适用于本工作流根目录下的所有系列与卷。
- 适用于单线程翻译,也适用于拆分成多个线程的并行翻译、复审、封装任务。
- 若某个系列有自己的
series-style.md,则以该系列风格文件为准,但不得覆盖本文件的硬性规则。
标准目录
<project-root>
<series-folder>\
mingcibiao.json
mingcibiao.ai.json
mingcibiao.candidates.json
series-style.md
<novel-folder>\
text\
preprocess_text\
trans_text\
final_text\
deliverables\
多 Agent 协作规则
- 默认按“统筹、术语、首译、复审、格式恢复、QA、交付”分工;小任务可由一个 Agent 连续承担多个角色,但仍必须按阶段产出。
- 每个 Agent 开工前必须确认当前系列、当前卷、输入路径、输出路径、chunk 范围和所读规则文件。
- 每个线程只处理明确分配的卷、文件或 chunk 范围,不要跨卷混写。
- 线程之间共享同一套系列术语表和系列风格文件。
- 多线程任务中,所有线程都必须遵守相同的译名、标点、ruby、标签和交付规则。
- 首译 Agent 不修改正式术语表;复审 Agent 不直接改源文;QA Agent 默认只报告,除非用户要求修复。
- 并行 chunk 必须以段落编号作为边界,不得合并、拆分或重排段落。
- 任何影响全卷一致性的判断,只能进入候选词、风格建议或 QA 报告,不能在单个 chunk 内私自固定。
- 如果用户要求“继续”,且当前任务没有需要确认的风险点,可以直接接着做下一步。
- 如果用户要求“自动输入继续”,则在任务完成并等待后续指令时,默认继续推进下一步,直到遇到必须确认的分歧或风险。
术语规则
mingcibiao.json是正式术语表,优先级最高。mingcibiao.candidates.json只放候选词,不直接当正式词表使用。- 用户确认后,先合并候选词,再进入锁词、翻译、复审流程。
- 术语一旦锁定,所有线程都必须一致使用。
- 若发现新术语且会影响一致性,先记录为候选词,不要在线程里擅自发明多个译名。
术语命中规则
术语命中必须以当前任务范围实时计算,不能把完整术语表塞进提示词。单段重翻只使用目标段落源文、ruby 与少量上下文中实际命中的术语;复审可额外参考当前译文中的旧译名或疑似不一致译名进行纠偏。
命中优先级:
mingcibiao.json的精确源语 key 命中。- 原文 ruby 中的 rb/rt 命中,尤其是技能名、称号、别名、外语读音和世界观术语。
- 正文中片假名、专名、组织名、地名、人名、带特殊标记的称谓命中。
- 当前译文中已出现的旧译名或疑似不一致译名,仅用于复审纠偏,不用于单段重翻扩展术语。
mingcibiao.candidates.json只作为候选参考,不能覆盖正式术语。
这里的“命中”指目标文本与正式术语表 key、别名或 ruby 信息匹配。原文中出现但尚未进入正式术语表的片假名、专名或称谓,只能作为候选术语发现,不得作为固定译名硬约束写入 prompt。当前译文中的旧译名只用于发现不一致或疑似误译,不得反向触发源文未命中的术语提示。
术语应用规则:
- 正式术语表命中后,译文必须使用指定译名;除非上下文证明不是同一概念,才可标记为冲突并暂停确认。
- value 中如含
#备注,#前作为译名,#后作为说明,不得把说明直接写入正文。 - 如果术语表写作
中文(外语/读音),且原文对应有意义 ruby,最终 HTML 应恢复为真实 ruby,不保留括号形式。 - 同一源语在同卷中不得出现多个译名;发现历史不一致时,复审阶段统一并记录。
- 新术语只进入候选词表,候选项至少包含:源语、建议译名、出现位置、上下文、理由、是否含 ruby。
系列风格规则
- 每个系列都应拥有自己的
series-style.md。 - 在开始首译之前确认
series-style.md已存在且已填写完毕。 - 如果当前系列没有
series-style.md,先在系列根目录生成一个,再要求填写该系列的风格内容后继续后续步骤。 - 如果
series-style.md为空、只有部分内容,或明显未完成,先提示用户确认是否继续。 - 如果用户确认继续,则只以已填写的部分作为当前系列的风格约束;空白部分视为未指定,不要自行补写成固定规则。
- 如果用户不确认继续,先补全系列风格,再进入候选词表或首译。
- 系列风格文件应记录该系列的语气、叙述习惯、对话风格、术语偏好、标点偏好、双语版处理偏好和禁止事项。
翻译流程
1. 导入与预处理
- 源文件若为 EPUB,先导入到对应系列与卷目录。
- 预处理时保留段落编号、div 结构、ruby 信息和必要的标签。
- 只对正文文本做翻译,不要破坏 HTML 结构。
2. 候选词表
- 先整理候选词表。
- 用户确认后再合并成正式术语表。
- 术语表更新后,再进行锁词。
3. 首译
- 首译前确认
series-style.md已填写并与当前系列一致。 - 如果不存在,先创建
series-style.md,写入系列风格模板,再暂停等待用户填写并确认。 - 如果
series-style.md为空或只有部分内容,先提示用户确认。 - 用户确认继续后,只按已填写部分限定首译风格;空白项不额外施加约束。
- 如果用户不确认继续,先补齐系列风格,再开始首译。
- 只翻译锁词后的 chunk,不要回头直接改源 HTML。
- 每个段落都要按中文自然语序重写,不要机械贴着日语句序。
- 保留
[Pxxxx]、<lk>...</lk>、必要的 ruby 和 div 标记。
4. 复审
- 复审必须逐段检查,不可以只抽查。
- 复审时以“源文 + 首译 + 中文自然度”三者一起判断。
- 复审记录要完整覆盖全部段落。
5. 恢复与校验
- 复审完成后再恢复 HTML。
- 最后必须做术语、残留日文、ruby、覆盖率检查。
- 若有可修复的警报,优先修复后再交付。
验收标准
首译验收:
- chunk 范围内所有
[Pxxxx]均有对应译文。 - 段落数量、顺序、编号不变。
- 正式术语命中项全部使用统一译名。
- 无明显漏译、整句日文残留、机器直译式语序。
- 必要 HTML、ruby、
<lk>标签未被破坏。
复审验收:
- 逐段覆盖,不以抽查代替复审。
- 每段同时检查源文、首译、术语和中文自然度。
- 修正误译、漏译、术语不一致、角色口吻漂移、标点不统一、ruby 处理错误。
- reviewed_chunks 可直接进入 HTML 恢复,不遗留“待确认”正文占位。
交付验收:
- final_text 段落覆盖率为 100%。
- 残留日文只允许出现在双语日文层、必要 ruby rt 或用户确认保留的位置。
- HTML 可解析,章节顺序、标题、图片、注释、ruby 和空段落正常。
- 纯译版与中日双语版按用户要求生成,文件名、版本和输出目录清晰。
- 如存在未修复风险,必须在交付说明中列出。
中文风格
- 输出必须是自然、流畅的简体中文轻小说文风。
- 以意义优先,再调整成中文语序。
- 不要保留日语式前置修饰和拖长句。
- 不要把“看得懂”的汉字词直接照搬成中文。
- 对话要符合角色性格,不要统一成同一种口吻。
Ruby 规则
- 只在有意义时保留
<ruby><rt>。 - 纯读音、无额外信息的 ruby,通常直接译成普通中文。
- 隐含义、别名、外语读音、技能名、称号、世界观术语,应按需要保留为真实 ruby。
- 不要把有意义的 ruby 改成括号。
- 不要删除
<rt>后再用猜测补回。 - 如果术语表写作
中文(外语/读音),且原文对应位置是有意义 ruby,最终 HTML 必须恢复为<ruby><rb>中文</rb><rt>外语/读音</rt></ruby>,不要在正文中保留中文(外语/读音)括号形式。
标签与格式
- 保留
[Pxxxx]段落编号。 - 保留
<lk>...</lk>块的内容一致性。 - 保留必要的 HTML 结构,不要把标签当成普通文本改写。
- 交付前检查段落、标题、ruby、空段落和灰字双语格式是否正确。
双语交付
- 用户说“生成双语版”时,默认执行双语封装。
- 双语版规则:
- 日文保留在上或前一层。
- 日文用灰色字体显示。
- 中文译文紧随其后。
- 原始 HTML 结构尽量保持。
- 用户说“生成翻译版”时,生成纯译文 EPUB。
- 用户说“终交付封装”或“合并为epub交付给我”时,默认生成两份:
- 纯译文版
- 中日双语版
推荐命令模板
$env:PYTHONIOENCODING='utf-8'
$env:SOURCE_EPUB='<source epub path>'
$env:NOVEL_ROOT='<novel root path>'
python '<project-root>\epub_delivery\build_epub_variants.py' --mode both
python '<project-root>\epub_delivery\build_epub_variants.py' --mode translated
python '<project-root>\epub_delivery\build_epub_variants.py' --mode bilingual
默认响应
- 当任务完成并等待下一步时,如果用户已经要求自动续跑,则继续下一步。
- 如果需要用户确认,先暂停并说明原因。
- 如果用户只说“继续”,则按当前上下文中的下一步执行,不重新解释整套流程。
- 每次完成代码、文档或工作流更新后,先完成必要检查,再将当前仓库同步到
https://git.diaomin.asia/对应远端;如果缺少远端地址、凭据或登录授权,先询问用户,不要静默跳过。