- Refactor codebase into src/ (preprocessing, translation, assembly) - Add pipeline/ scripts for individual stages - Externalize configuration to config/config.yaml - Fix Cover Image preservation - Update documentation and manuals
5.0 KiB
5.0 KiB
更新日志 (CHANGELOG)
[v0.08] - 2026-01-15 (The Optimizer)
🎯 占位符系统优化
- 前缀/后缀标签分离: 文本首尾的纯格式标签(如
<sup>,<sub>)不再发送给 LLM,自动回填。 - 公式检测: 数学变量和公式被识别为单一、不可翻译的占位符,显著降低 LLM 误翻译风险。
- 简化占位符格式: 从全局唯一
φcXXXXXφ简化为段落局部φ1φ,每个段落独立编号。
🎨 纯中文排版模式
- 模式切换: 支持
--mode chinese生成保留原始排版的纯中文译本(默认--mode bilingual)。 - Format Extractor (替换法):
- 彻底重构格式提取逻辑,放弃 DOM 递归,采用基于正则的"标签序列替换法"。
- 能够完美处理任意深度的嵌套标签,将其合并为单一占位符。
- 100% 保留原始 HTML 属性(class, style, href 等),实现"像素级"格式还原。
- Format Restorer (自愈系):
- 引入
FormatRestorer模块,负责将占位符替换回原始 HTML 代码。 - 自动修复 Agent: 当检测到 LLM 丢失占位符时,自动触发回退机制进行格式修复。
- 优雅降级: 如果修复失败,系统会自动降级为纯文本,确保程序不崩溃。
- 引入
🛡️ 深度优化
- 占位符升级: 从易混淆的
«c...»升级为φc...φ,显著降低 LLM 误翻译概率。 - 容器样式继承:
- 中文模式:直接替换
inner_html,完美保留外层容器属性。 - 双语模式:新建
<p>标签时自动继承原文的class和其他属性。
- 中文模式:直接替换
- 智能测试:
--test模式逻辑升级,智能识别章节边界,自动翻译完第一章。
🔧 修复
- 修复了
LLMClient中正则表达式转义错误导致的FutureWarning。 - 修复了
FormatExtractor循环引用问题。 - 解决了复杂科学书籍中上标/链接嵌套导致的校验失败问题。
[v0.07] - 2026-01-13 (The Refinement)
🛡️ 安全与配置
- 环境隔离: 引入
.env支持,彻底移除了代码库中的硬编码 API Key。 - 配置升级:
utils.py现自动加载.env并注入到配置中,支持任意 Provider 的环境变量覆盖 (如V3_API_KEY,OPENROUTER_API_KEY)。 - 模板化: 新增
config.example.json和.env模板,提升部署安全性。
🚀 核心改进
- V3 Provider 支持: 验证并修复了对 V3 API (OpenAI 兼容格式) 的支持,全流程跑通。
- EPUB 构建修复: 解决了
ebooklib在处理 TOC 时因缺少 UID 导致的Argument must be bytes or unicode崩溃问题。 - 缓存优化:
- 缓存目录结构调整为 Hash 前缀 (
cache/translations/ab/...),解决了按日期分目录导致的缓存频繁失效问题。 - 放宽了缓存验证逻辑,支持部分命中的缓存复用。
- 缓存目录结构调整为 Hash 前缀 (
- 视觉优化: 引入“盘古之白” (Pangu spacing),自动在中文与英文/数字之间添加空格,显著提升阅读体验。
⚡ 体验提升
- 断点续传提示: 启动时自动检测并提示未完成的翻译进度。
- 详细统计: 翻译完成后展示详细的成功/失败/跳过统计数据。
- 并发优化: 移除了冗余的信号量控制,完全依赖
RateLimiter,逻辑更清晰高效。
[v0.05] - 2026-01-12 (The Arena)
🌟 核心突破
- 书籍画像 (Book Profiler):
- 自动提取前言和正文采样。
- 生成
Book Profile,包含领域 (Genre)、文风 (Style)、目标受众 (Audience) 和翻译指令。 - 生成
Glossary(术语表),并支持自动注入 Prompt。 - 状态绑定: Profile 和 Glossary 现在直接存储在每本书的
manifest.json中,互不干扰。
- 模型竞技场 (Model Arena):
- 自动选取典型 Chunk,让多个候选模型 (Gemini, Llama, Qwen) 同台竞技。
- 引入
Judge Agent(基于 Smart 模型),从准确性、信达雅维度评选最佳模型。 - 自动锁定获胜模型用于全书翻译。
🏗️ 架构升级
- LLM Client 重构:
- Syntax Fixes: 彻底修复了正则构造中的语法错误。
- Quote Safety: 移除了所有 f-string 中的复杂正则,改用安全的字符串拼接。
- Dual RateLimiters: 引入主/副限流器,防止死锁。
- 配置增强:
config.json支持arena_models和judge_model配置。
🔧 修复与优化
- 修复了
unhashable type: 'dict'错误 (移除了错误的{{}})。 - 修复了多本书连续翻译时 Profile 串用的问题 (Profile 现已绑定至 Manifest)。
[v0.03] - 2026-01-12
- 极简 ID 锚点系统: 废弃复杂的
[p_xxxxx]格式,使用纯净 ID,彻底解决残留问题。 - 智能术语一致性: 引入 GlossaryManager。
- 结构完美保留: 修复了 EPUB Spine 和 Metadata 丢失问题。
[v0.02] - 2026-01-12
- Manifest 驱动架构: 引入
ManifestManager作为单一真理源。 - 流程解耦: 提取、翻译、构建三阶段分离。
[v0.01] - 2026-01-10
- 初始版本,实现基本的并发翻译和 EPUB 解析。