Files
2026-01-19 09:51:07 +08:00

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/...),解决了按日期分目录导致的缓存频繁失效问题。
    • 放宽了缓存验证逻辑,支持部分命中的缓存复用。
  • 视觉优化: 引入“盘古之白” (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_modelsjudge_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 解析。