# 通用翻译规则 这是一份给多线程轻小说翻译任务共用的规则文件。所有线程在开始工作前,都应先读取本文件,再读取当前系列的风格文件与术语表。 ## 适用范围 - 适用于本工作流根目录下的所有系列与卷。 - 适用于单线程翻译,也适用于拆分成多个线程的并行翻译、复审、封装任务。 - 若某个系列有自己的 `series-style.md`,则以该系列风格文件为准,但不得覆盖本文件的硬性规则。 ## 标准目录 ```text \ mingcibiao.json mingcibiao.ai.json mingcibiao.candidates.json series-style.md \ 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 与少量上下文中实际命中的术语;复审可额外参考当前译文中的旧译名或疑似不一致译名进行纠偏。 命中优先级: 1. `mingcibiao.json` 的精确源语 key 命中。 2. 原文 ruby 中的 rb/rt 命中,尤其是技能名、称号、别名、外语读音和世界观术语。 3. 正文中片假名、专名、组织名、地名、人名、带特殊标记的称谓命中。 4. 当前译文中已出现的旧译名或疑似不一致译名,仅用于复审纠偏,不用于单段重翻扩展术语。 5. `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]`、`...`、必要的 ruby 和 div 标记。 ### 4. 复审 - 复审必须逐段检查,不可以只抽查。 - 复审时以“源文 + 首译 + 中文自然度”三者一起判断。 - 复审记录要完整覆盖全部段落。 ### 5. 恢复与校验 - 复审完成后再恢复 HTML。 - 最后必须做术语、残留日文、ruby、覆盖率检查。 - 若有可修复的警报,优先修复后再交付。 ## 验收标准 首译验收: - chunk 范围内所有 `[Pxxxx]` 均有对应译文。 - 段落数量、顺序、编号不变。 - 正式术语命中项全部使用统一译名。 - 无明显漏译、整句日文残留、机器直译式语序。 - 必要 HTML、ruby、`` 标签未被破坏。 复审验收: - 逐段覆盖,不以抽查代替复审。 - 每段同时检查源文、首译、术语和中文自然度。 - 修正误译、漏译、术语不一致、角色口吻漂移、标点不统一、ruby 处理错误。 - reviewed_chunks 可直接进入 HTML 恢复,不遗留“待确认”正文占位。 交付验收: - final_text 段落覆盖率为 100%。 - 残留日文只允许出现在双语日文层、必要 ruby rt 或用户确认保留的位置。 - HTML 可解析,章节顺序、标题、图片、注释、ruby 和空段落正常。 - 纯译版与中日双语版按用户要求生成,文件名、版本和输出目录清晰。 - 如存在未修复风险,必须在交付说明中列出。 ## 中文风格 - 输出必须是自然、流畅的简体中文轻小说文风。 - 以意义优先,再调整成中文语序。 - 不要保留日语式前置修饰和拖长句。 - 不要把“看得懂”的汉字词直接照搬成中文。 - 对话要符合角色性格,不要统一成同一种口吻。 ## Ruby 规则 - 只在有意义时保留 ``。 - 纯读音、无额外信息的 ruby,通常直接译成普通中文。 - 隐含义、别名、外语读音、技能名、称号、世界观术语,应按需要保留为真实 ruby。 - 不要把有意义的 ruby 改成括号。 - 不要删除 `` 后再用猜测补回。 - 如果术语表写作 `中文(外语/读音)`,且原文对应位置是有意义 ruby,最终 HTML 必须恢复为 `中文外语/读音`,不要在正文中保留 `中文(外语/读音)` 括号形式。 ## 标签与格式 - 保留 `[Pxxxx]` 段落编号。 - 保留 `...` 块的内容一致性。 - 保留必要的 HTML 结构,不要把标签当成普通文本改写。 - 交付前检查段落、标题、ruby、空段落和灰字双语格式是否正确。 ## 双语交付 - 用户说“生成双语版”时,默认执行双语封装。 - 双语版规则: - 日文保留在上或前一层。 - 日文用灰色字体显示。 - 中文译文紧随其后。 - 原始 HTML 结构尽量保持。 - 用户说“生成翻译版”时,生成纯译文 EPUB。 - 用户说“终交付封装”或“合并为epub交付给我”时,默认生成两份: - 纯译文版 - 中日双语版 ## 推荐命令模板 ```powershell $env:PYTHONIOENCODING='utf-8' $env:SOURCE_EPUB='' $env:NOVEL_ROOT='' python '\epub_delivery\build_epub_variants.py' --mode both ``` ```powershell python '\epub_delivery\build_epub_variants.py' --mode translated python '\epub_delivery\build_epub_variants.py' --mode bilingual ``` ## 默认响应 - 当任务完成并等待下一步时,如果用户已经要求自动续跑,则继续下一步。 - 如果需要用户确认,先暂停并说明原因。 - 如果用户只说“继续”,则按当前上下文中的下一步执行,不重新解释整套流程。 - 每次完成代码、文档或工作流更新后,先完成必要检查,再将当前仓库同步到 `https://git.diaomin.asia/` 对应远端;如果缺少远端地址、凭据或登录授权,先询问用户,不要静默跳过。