# Prism Translate（棱镜翻译）

> 多模型 AI 双语翻译：网页 / 划词 / PDF / 视频字幕 / 图片漫画，外加一个独立的「翻译工作台」。
> 自带密钥（BYO Key），请求由浏览器直连各家 API，**全程本地、无中转服务器**。

定位：对标并超越「沉浸式翻译」的 `options.html#ai`。沉浸式翻译把多个 AI 服务塞进一个**配置表单**；Prism 把同一块能力做成一个真正能用的**工作台**——同一段文本，多个模型并排出译文、延迟和成本，你当场挑出最合适的那一个。

> 本扩展已预置你 DashScope 的 Qwen Key（`qwen-plus`），加载后**开箱即用**。可在「服务商」页随时修改 / 删除。

---

## 它比沉浸式翻译强在哪

| 能力 | 沉浸式翻译 | Prism Translate |
|---|---|---|
| 多 AI 服务商配置 | ✅ | ✅ OpenAI 兼容 / Claude / Gemini / DeepL |
| 多模型**并排对比**译文 | ❌ | ✅ 同屏对比 N 个模型 |
| 每次翻译的**延迟 / Token / 成本**可见 | ❌ | ✅ 每张结果卡都标注，自动标「最快」 |
| 累计**用量与成本看板** | ❌ | ✅ 按服务商拆分 |
| 术语表（强制译法） | 部分 | ✅ 注入每次请求，可导入 / 导出 |
| AI 专家（场景提示词） | ✅ | ✅ 7 内置 ＋ 可自定义 |
| 网页内嵌双语翻译 | ✅ | ✅ 段落级、保留排版、6 种样式 |
| 划词翻译 | ✅ | ✅ 选中即弹气泡 |
| **PDF 双语翻译** | ✅ | ✅ pdf.js 本地解析 + 并排译文 |
| **YouTube 双语字幕** | ✅ | ✅ 实时叠加原文 + 译文 |
| **图片 / 漫画翻译（OCR）** | ✅ | ✅ Tesseract 本地 OCR + 区域叠译 |
| 隐私 | 部分经其服务器 | ✅ 浏览器直连 API，密钥与文本不过第三方 |
| 中文排版（孤字 / 断行 / 数字不断行） | 一般 | ✅ 全面 `keep-all` ＋ 数字 nowrap |

---

## 安装（三选一）

### 方式一 · 最简单：双击启动（推荐）
回到上一级目录，双击 **`启动 Prism 翻译.command`**。它会打开一个已加载本扩展的 Chrome 窗口（使用独立配置，不影响你日常的浏览器）。
> 首次运行若被 macOS 拦截：右键该文件 → 打开 → 确认打开。

### 方式二 · 装进你日常的 Chrome：加载已解压扩展
1. 地址栏打开 `chrome://extensions`
2. 右上角打开「开发者模式」
3. 点「加载已解压的扩展程序」
4. 选择本 `prism-translate/` 文件夹
5. 把棱镜图标固定到工具栏

### 方式三 · 分发包
- `prism-translate.zip`：标准扩展包，用于上传 Chrome 应用商店或分享给他人（对方解压后按方式二加载）。
- `prism-translate.crx` ＋ `.pem`：已签名的扩展包与签名密钥。
  > 注意：出于安全策略，Chrome 不允许从磁盘直接双击安装第三方 `.crx`，请用方式一或方式二。`.crx` 主要用于企业策略部署或留档。

---

## 使用

- **翻译整页**：`Alt+T` / 弹窗按钮 / 右键菜单，再按一次还原。
- **划词翻译**：选中文本 → 点「翻译」气泡。
- **多模型对比**：弹窗「打开翻译工作台」→ 粘贴文本、勾选服务、`⌘/Ctrl+Enter`。
- **PDF 翻译**：弹窗「📄 PDF 翻译」打开查看器，拖入或选择 PDF；或右键 PDF 链接选「翻译此 PDF」。
- **YouTube 双语字幕**：打开任意带字幕的 YouTube 视频，自动叠加双语字幕；播放器右上角悬停可见「双语字幕」开关。设置页可全局开关。
- **图片 / 漫画翻译**：弹窗「🖼 图片翻译」，拖入 / 选择 / 粘贴图片；或右键网页图片选「翻译图片中的文字」。
- **术语表 / 用量 / 设置**：均在工作台对应标签页。

---

## 架构

```
manifest.json                 MV3 清单（含 wasm CSP、youtube 内容脚本、右键菜单）
background/service-worker.js  编排中枢：翻译 / 对比 / 测试 / 缓存 / 用量 / 菜单 / 快捷键
lib/storage.js                设置 / 服务商 / 提示词 / 术语 / 用量 + 价目表（含 Qwen 种子）
lib/providers.js              各服务商 HTTP 适配器（OpenAI 兼容 / Claude / Gemini / DeepL）
lib/prompts.js                AI 专家预设 + 提示词组装
lib/brand.js                  动效棱镜 Logo（内联 SVG）
content/content.js + .css     网页内嵌双语翻译 + 划词气泡
content/video-subs.js + .css  YouTube 双语字幕
options/                      翻译工作台（= 增强版 #ai 页）
popup/                        快捷控制弹窗
pdf/                          PDF 双语查看器（pdf.js）
ocr/                          图片 / 漫画 OCR 翻译（tesseract.js）
vendor/                       pdf.js、tesseract.js 与离线语言数据（约 80MB）
icons/                        棱镜图标
```

请求逻辑全部集中在 background；其余页面通过 `chrome.runtime.sendMessage({cmd,…})` 调用，便于统一缓存与用量统计。

---

## 隐私

- API Key 存于 `chrome.storage.local`，仅本机可见。**本地未打包构建，若要分享请先轮换 Key。**
- 翻译 / OCR / PDF 解析全部在浏览器内完成，请求只发往你填写的服务商端点，**不经任何第三方服务器**。
- 无遥测、无账号、无云同步。

---

## 已验证

- 引擎：用真实 Qwen Key 跑通单条与批量翻译（JSON 数组解析正确）。
- PDF：真实 pdf.js 渲染页面 + 抽取文本 + 翻译。
- OCR：真实 Tesseract 识别图片文字 + 区域叠译。
- 扩展加载：manifest 合法、Service Worker 模块图加载无误。
- UI：工作台 / 服务商 / 用量 / 术语 / PDF / OCR 页面均截图核验，深浅主题正常，控制台零报错。

> YouTube 字幕功能已实现并通过代码核验；真实视频联调需在加载扩展后用带字幕的视频体验。
