feat: Release v0.10 - Modular Architecture & External Config
- 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
This commit is contained in:
@@ -1,94 +0,0 @@
|
||||
# 更新日志 (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_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 解析。
|
||||
Reference in New Issue
Block a user