WuPage Translator
适用于 Microsoft Edge、Chrome 和 Firefox 的网页、视频字幕、图片与 PDF 翻译扩展。
支持全文翻译、段落翻译、双语对照和 PDF 译文编辑,可配置多种翻译服务。
Microsoft Edge 插件商店 · 下载发布包 · 项目主页 · 问题反馈 · 隐私政策
效果预览 · 安装 · 网页翻译 · 视频字幕 · 图片翻译 · PDF 翻译 · 翻译服务 · 故障排查 · 开发者交流群
效果预览
原文替换 · 日语 → 简体中文
| 原文 | 译文 | | --- | --- | | !日语原文页面 | !原文替换模式下的简体中文译文页面 |
安装
Microsoft Edge
- 打开 WuPage Translator 商店页面。
- 点击「获取」,按提示完成安装。
- 在浏览器扩展菜单中,将 WuPage 固定到工具栏。
手动安装(Chrome / Edge)
- 从 Releases 下载对应浏览器的安装包:Chrome 使用
wupage-,Edge 使用-chrome.zip wupage-。-edge.zip - 解压发布包,保留解压目录。
- 打开扩展管理页:Chrome 使用
chrome://extensions,Edge 使用edge://extensions。 - 开启「开发人员模式」,点击「加载已解压的扩展程序」或「加载解压缩的扩展」。
- 选择包含
manifest.json的解压目录。
edge.zip 也可用于 Chrome。手动更新时,将新版文件解压到原安装目录并替换旧文件,然后在扩展管理页重新加载扩展。
安装或更新后,刷新已打开的网页。
Firefox(测试版)
需要 Firefox 154 或更新版本,使用独立的 Firefox 构建。当前尚未提供商店安装或 Mozilla 签名包。
- 按照开发指南生成
dist-firefox/,或解压 Firefox 测试包。 - 打开
about:debugging#/runtime/this-firefox,点击「临时载入附加组件」。 - 选择
dist-firefox/manifest.json,或解压目录中的manifest.json。 - 刷新需要翻译的网页。
视频字幕(实验)
源码构建已包含视频字幕实验功能。与商店版同时安装时,可使用「WuPage 视频字幕预览版」区分;重新加载扩展后,需要刷新视频页。
- 在 WuPage 扩展弹窗的功能开关区开启「视频字幕」(默认开启),再将鼠标移入视频播放器,点击右上角「字幕翻译」开始翻译。
- 播放器下部显示双语字幕,暂停、倍速和拖动进度时自动同步。没有字幕时,先在视频播放器开启 CC / 字幕;部分网站的字幕需要登录。
- 点击字幕入口旁的齿轮,可直接选择目标语言、翻译服务、原字幕语言和字号,或关闭原文。设置立即生效;关闭设置不会停止翻译。
- 再次点击「双语已开」停止翻译,恢复原生字幕。字幕控制会在不操作时收起,鼠标移入播放器或使用键盘聚焦时重新显示。
弹窗中的「视频字幕」开关对所有网页生效。关闭后会停止字幕翻译、恢复网站原字幕并隐藏播放器入口;重新开启后恢复入口,已保存的字号、字幕语言和网站自动开启偏好会保留。
内置 YouTube、Bilibili、Netflix、Vimeo、Disney+、Prime Video、TED、Coursera 和 Udemy 的播放器适配,并支持通用 HTML5 字幕轨。优先读取带时间轴的完整字幕;无法取得完整字幕时,翻译播放器当前显示的文字字幕。网站必须有可用字幕;登录限制、字幕授权、网站改版或图片字幕可能影响可用性,具体实机与样本验证范围见开发指南。YouTube 在需要时自动开启原生字幕,停止后还原;其他网站可先通过播放器选择所需的原字幕。
字幕翻译复用当前文本翻译服务,不识别视频语音、不读取麦克风,也不上传视频或音频。完整字幕会提前翻译当前及未来约 15 秒的文本,即使视频暂停也会准备附近字幕;在线服务消耗对应文本额度。字幕译文只在有上限的会话缓存中复用,不写入持久翻译缓存;临时 Debug 记录仍按现有机制提供。停止和跳转会取消旧任务;已经到达服务商的请求仍可能被处理或计费。
「更多选项」提供字幕背景、时间偏移及 SRT / WebVTT 导入。文件必须使用 UTF-8 编码,上限为 2 MiB、20,000 条字幕,每条最多 4,000 字符;文件仅在当前页面内存中读取,刷新网页或换视频后清除。播放器容器全屏沿用双语覆盖层,视频元素原生全屏使用临时双语字幕轨;跨域内嵌播放器可在其内部使用同样的入口。浏览器画中画窗口不显示网页覆盖层,需回到原播放器查看字幕。暂不提供无字幕听译或配音。
网页翻译
全文翻译
- 打开网页,点击工具栏中的 WuPage 图标。
- 设置源语言、目标语言和翻译服务。
- 点击「翻译全文」,在当前页面查看译文。
- 点击「显示全文」,恢复原文。
目标语言中的「中文」为简体中文,「繁中」为繁体中文;可在扩展弹窗、悬浮菜单、设置页、视频字幕设置或 PDF 阅读器中选择。可用语言取决于翻译服务,豆包(实验性)和本地实验服务暂不支持繁体中文。
全文翻译包含网页中嵌入的阅读内容,包括来自其他网站的 iframe。翻译开关、恢复原文、语言和显示模式在整页统一生效;嵌入内容接近可见区域后翻译,隐藏内容显示后继续处理。
在「设置 → 通用」可以关闭「全文翻译包含嵌入内容」,或填写嵌入内容排除规则。每行一个网址规则, 匹配任意字符;例如 https://example.com/widget/。使用 https://site.example/ => https://embed.example/ 可限定只排除指定网页中的嵌入内容。修改后点击「保存」。浏览器限制访问的文档无法翻译,可在调试面板的「页面文档」中查看各文档的处理状态与排除原因。
自动翻译
在扩展弹窗或悬浮菜单的语言栏点击「自动」即可启停,立即生效。首次开启且尚未配置规则时,默认自动翻译非目标语言页面;已有站点和语言规则会保留。自动翻译默认关闭,沿用当前的翻译语言、服务和显示模式;使用在线服务时会消耗对应额度。
开启后,「自动」右侧显示「+」,点击可将当前网站的域名加入自动翻译列表并立即生效。已有规则会复用,同站点的已停用规则会重新启用;加入后显示「✓」,再次点击可排除该网站,再点「+」可重新加入,不会产生重复规则。排除优先于站点及非目标语言规则,刷新网页后仍有效,仅作用于当前域名和端口;手动翻译仍可使用。浏览器内部页面和本地文件不支持此操作。
要限定自动翻译范围,在「设置 → 自动翻译」配置规则并点击页面底部的「保存」:
- 站点列表:预先列出 GitHub、Stack Overflow、英文维基百科、Reddit、Medium 和 Hacker News。勾选启用,地址可直接编辑;点击底部「+」新增一行,点击行末「-」删除,预置站点同样可以删除。保存后生效,删除的预置项不会在重开设置时恢复。
- 站点匹配:
example.com包含子域名,.example.com仅匹配子域名,https://example.com/docs/限定 HTTPS 和路径。 - 已排除的网站:显示通过「✓」排除的域名。点击域名旁的「×」取消排除,并点击页面底部「保存」生效。
- 非目标语言页面:启用自动翻译后,总开关右侧显示「页面语言不是目标语言时自动翻译」勾选项。首次启用且未配置规则时默认勾选,可取消以仅按站点列表翻译。浏览器在本机识别页面正文语言;与目标语言相同或无法可靠识别时跳过。
开启全文翻译后,修改源语言或目标语言会自动从原文重新翻译当前区域,后续滚动和新加载的内容也使用新语言,无需先恢复原文。已选择显示原文的页面会保持原文,下次开始翻译时使用最新语言。
显示模式
在扩展弹窗的「显示模式」中选择:
已翻译的内容会立即切换显示方式,复用现有译文,不重复请求翻译服务;正在翻译和后续加载的内容也会使用新模式。
| 模式 | 显示方式 | | --- | --- | | 译文替换 | 隐藏原文,在原页面中显示译文 | | 原色对照(默认) | 在原文下方显示译文,沿用原文颜色 | | 双色对照 | 在原文下方显示译文,使用不同颜色区分,并适配明暗背景 |
开启「翻译代码注释」后,GitHub 代码视图中的注释译文与原注释同行显示,保持代码与行号对齐;较长内容可在代码区横向滚动查看。
外观
在「设置 → 外观」选择浅色、深色或跟随系统。浅色与深色可分别指定配色方案,内置雾青、暖纸、夜青和午夜蓝。
切换到「菜单功能」,左侧是可直接编辑的弹窗预览,右侧是可添加的功能。点击左侧按钮将其移回右侧,点击右侧按钮将其添加到菜单末尾;拖动左侧按钮可自由排序,靠近目标位置时自动吸附,也可聚焦按钮后按 Alt + 方向键 排序。拖动时按 Esc 或在预览外松开可取消。点击「保存」后应用到已打开的弹窗;「恢复默认布局」仅重置菜单。移除入口会保留功能的当前开关状态,语言、翻译服务、翻译模式和右上角设置始终显示。
点击「复制方案」创建自定义配色,展开对应分组后通过颜色块或 #RRGGBB 色值调整颜色,右侧同步预览:
- 界面:设置、弹窗、悬浮菜单和 Debug 面板的背景、文字、强调色、边框及提示颜色。
- 悬浮球:背景、文字和鼠标悬停背景,可独立于界面强调色设置。透明度支持滑块或数字输入,范围 0–100%,数值越低越透明;预览即时更新,点击「保存」后同步到已打开网页的悬浮球。
- 译文与段落:浅色网页和深色网页上的双色译文颜色,以及段落高亮色。译文按所在网页的背景选择颜色并自动调整对比度;原色对照和译文替换沿用原文颜色。
- 划词翻译:圆点或下划线入口、词典卡片背景、文字和强调色。
- 图片翻译入口:图片旁翻译按钮的背景与文字颜色,图片内译文仍按原图配色。
段落翻译
段落模式使用键盘与鼠标操作,纯触屏环境不显示此入口及操作说明。
开关在当前浏览器中全局生效,已打开、新打开和刷新的网页共用状态;任一页面关闭后,其他页面也会关闭。切换开关会保留已有译文。
- 在扩展弹窗或悬浮菜单中点击「段落翻译」,按钮高亮表示已开启。
- 按住
Ctrl,点击需要翻译的段落。 - 再次点击同一段落恢复原文;使用结束后,再点一次「段落翻译」按钮关闭。可在「翻译模式」中随时切换「译文替换」「原色对照」或「双色对照」,段落模式保持开启。
悬浮球
在扩展弹窗中开启「悬浮球」后,可直接在网页内操作:
- 单击「译」开始翻译全文,悬浮球立即变为「原」;翻译过程中也可单击「原」停止并恢复原文。再次单击「译」会直接复用当前页面已完成的译文,仅翻译新增、修改或尚未完成的内容。
- 鼠标悬停 0.5 秒后展开菜单,移出后自动收起。按住悬浮球可拖动位置,拖动时菜单隐藏,松开不会触发翻译;靠近页面边缘时自动贴边。
- 触屏设备长按悬浮球 0.5 秒展开菜单,松手后菜单保持打开,轻点外部区域关闭。轻点悬浮球翻译或恢复原文;按住后移动可拖动位置,长按和拖动均不会触发翻译。
- 菜单中可直接切换源语言、目标语言、翻译服务和显示模式,开启段落模式,以及查看翻译状态、失败原因并重试。全文翻译开启时,修改语言会自动重译;修改服务后可点击「重新翻译」应用到当前页面。切换显示模式会立即复用已有译文。
- 语言栏的「自动」和下方的「右键翻译」「划词翻译」「图片翻译」与扩展弹窗共用设置,开关状态实时同步。图片翻译旁的问号可查看说明,模型图标可安装或删除 OCR 模型。
- 齿轮图标打开完整配置。「悬浮球」按钮关闭控件,可在扩展弹窗中重新开启。
Enter 或空格翻译,按 ↓ 进入菜单,按 Esc 收起菜单。
快捷键
进入「设置 → 快捷键」直接调整按键。默认绑定如下:
| 操作 | 默认快捷键 |
| --- | --- |
| 翻译全文 / 停止翻译并恢复原文 | Alt+Shift+Y |
| 段落翻译 / 恢复该段原文 | Alt+Shift+Q |
| 开启 / 关闭段落模式 | Alt+Shift+L |
| 循环切换译文替换、原色对照、双色对照 | Alt+Shift+M |
macOS 使用 Option 对应 Alt。快捷键在普通网页正文获得焦点时生效,悬浮球关闭后仍可使用。全文翻译中再次按下快捷键会停止并恢复原文,重新开启时复用已完成的译文;使用快捷键切换显示模式会退出段落模式并立即更新已有译文,不重复请求翻译。
使用段落翻译快捷键时,将鼠标移到正文段落,或选中段落中的文字,即可原位翻译完整段落;选区跨越多个段落时逐段处理,再次按下恢复对应段落的原文。此快捷键不依赖「段落模式」「右键翻译」或「划词翻译」开关,语言、服务和显示方式沿用当前设置。
划词卡片仍通过选区旁的入口打开。编辑原文后用 Ctrl+Enter(macOS:Command+Enter)提交,Esc 关闭卡片。快捷键不会在卡片编辑区、输入框或其他可编辑区域内触发。
每项右侧都有独立开关,关闭后保留原按键,重新开启可继续使用。四项翻译快捷键和下方的 Ctrl 点击段落、提交划词原文、Esc 关闭、悬浮球键盘操作均可分别启停;关闭局部快捷键不会影响对应的鼠标按钮。
点击对应按键框后按下新的组合键,使用 Esc 取消录入,Backspace 或 Delete 清空。也可点击每项旁的「默认」,或点击顶部「恢复默认」重置全部按键及开关。常用浏览器、编辑快捷键及可能影响 AltGr 输入的组合只在按键框下方显示红色警告,仍可录入、保存和使用。扩展内的重复绑定不允许;普通字母或仅加 Shift 的按键不能单独作为快捷键。
修改按键或开关后点击页面底部「保存」,已打开网页会同步更新;切换设置分类会保留尚未保存的按键。清空某项会同时关闭并禁用其开关;重新录入有效按键,或点击「默认」恢复绑定后,开关才会恢复可用。恢复扩展默认设置也会恢复快捷键。浏览器或系统占用的组合键可能无法触发,建议使用默认组合或其他未占用按键。
地址栏、浏览器内置页面、商店页面和 PDF 查看器不响应网页快捷键;嵌入框架正文沿用网页快捷键。PDF 使用工作区内的翻译按钮;扩展更新后旧网页无法响应时,刷新网页后重试。
划词翻译
选中网页中的文字后,点击选区旁的小圆点打开结果卡片。在扩展弹窗中点击「划词翻译」可启停该功能;在「更多设置 → 划词翻译」中可调整入口样式和默认词典。
- 支持有道词典和 Bing 词典,无需填写 API Key。卡片内也可临时切换词典。
- 单个字母单词先查词典,允许词内的连字符和撇号;显示词条提供的英美音标、发音和词性释义,点击发音按钮播放,不自动朗读。单词没有释义时,自动使用当前翻译服务。
- 多个单词、句子、段落及中日韩文字直接使用当前翻译服务,沿用设置中的源语言、目标语言和缓存偏好。翻译模式显示实际服务名称及译文,不显示词典音标;Firefox 本地翻译缺少模型时提示安装,不切换其他在线翻译服务。
- 卡片顶部的原文可直接编辑,修改后点击「查词」或「翻译」,也可按
Ctrl+Enter提交;Enter保留换行。编辑过程中不联网,不修改网页原文,提交后按单词或文本重新处理。 - 点击页面其他位置、按
Esc、滚动页面或改变窗口大小会关闭卡片。卡片内的释义可正常选择和复制。 - 支持不超过 5,000 个字符的选区,词典查询限 100 个字符;输入框、可编辑区域和浏览器内置页面暂不支持;嵌入页面中的浮层显示范围受嵌入区域尺寸限制。
图片翻译
安装识别模型
- 在弹窗或设置中,点击「图片翻译」旁的扳手图标。
- 等待约 20.5 MB 的文字识别(OCR)模型下载、校验和安装完成。
- 开启「图片翻译」。
翻译与切换
- 将鼠标移到网页图片上,点击「译」;也可右键点击图片,选择「使用 WuPage 翻译图片」。
- 识别完成后,译文覆盖在原图的文字区域。
- 点击「原」查看原图,点击「译」恢复译图。
支持范围
- 识别语言:简体中文、繁体中文、英文和日文。
- 图片类型:网页中的静态图片;动画、CSS 背景图及嵌入框架内部图片暂不保证支持。
- 文件大小:下载上限为 12 MB,超大图片会缩放后识别。
- 访问条件:图片地址须可访问;鉴权、防盗链或特殊地址可能导致读取失败。
- 显示效果:纯色背景较适合覆盖译文;复杂纹理、艺术字、竖排、低对比度和密集小字可能出现识别或定位偏差。
模型与缓存
关闭「图片翻译」会移除译文覆盖层,保留本地模型。点击旁边的垃圾桶可删除模型并关闭该功能。
开启缓存后,仅保存识别出的文字区域和译文,不保存原始图片。「清除缓存」删除翻译结果,不删除 OCR 模型。
图片文字的识别与显示说明
译文按识别位置覆盖,纯数字、百分比、倍率和常见数量缩写保持原样。覆盖区域使用从图片中采样的背景色,透明图片保留透明度与原文字颜色;复杂背景不进行无痕修复。
图片译文按实际显示尺寸与屏幕像素密度绘制。放大图片或改变窗口大小时,会复用已有译文重绘,避免将低分辨率译图直接拉伸;SVG 原图按所需尺寸重新绘制。普通位图的细节仍受原始分辨率限制。
宽幅透明文字图中,同一行的相邻片段会合并翻译,并尝试补全覆盖范围内遗漏的标点。识别失败、无可翻译内容或译文未变化时,页面会显示相应提示;空结果不写入缓存。
全文翻译还会读取网页图片提供的长段替代文字(alt),无需 OCR。能够识别段落间隔的透明文字图片,可按段显示原图文字与对应译文;「译文替换」模式仅显示译文。其他图片保留原图,在下方显示翻译后的说明,文字颜色随网页显示。恢复原文时还原原图。
PDF 翻译
效果预览
英文 → 简体中文,左侧为原文,右侧为译文。
打开文档
- 在浏览器中打开 PDF。
- 点击 WuPage 弹窗中的「翻译PDF」,进入双栏工作区并开始翻译。
- 在工作区中,可通过选择文件、拖放文件或粘贴 PDF 地址打开其他文档;打开后自动使用顶部选定的服务开始翻译。
弹窗无法读取当前地址时会提供「打开扩展设置」按钮,点击可进入 WuPage 的扩展详情页。开启「允许访问文件网址」或「允许访问文件 URL」后,回到 PDF 并重新打开弹窗。
打开文档后,默认翻译当前页及前后各 5 页,最多 11 页。范围内完成后等待继续阅读;滚动到新位置会自动补译附近未完成的页面。快速跳页时,尚未开始的旧范围任务会被移出队列;已完成的同语言、同服务译文及手动编辑会保留。
在扩展设置的「性能设置 → PDF 翻译范围」中调整前后页数:0 表示只翻译当前页,选择「无限制(整份 PDF)」可翻译全文。保存后,下一次打开文档或点击翻译时生效。
校对与导出
工作区按页对齐显示原文与译文。译文块支持直接编辑、移动、缩放和删除。点击「下载译文」会先补全整份 PDF 的翻译,再生成译文文件,不受阅读翻译范围限制。同语言、同服务下已完成的译文和手动校对会保留,无须重复翻译。若有页面翻译失败,下载会暂停并提示重试;再次点击「下载译文」可补译失败页。
论文中的参考文献条目默认保留原文,包括作者、标题、期刊、年份、页码和网址;「References」等章节标题正常翻译。正文引用标号、公式变量、文内已定义的缩写和图编号会受到保护。识别出的论文主题、邻近正文和缩写定义会随待译文字提供给当前翻译服务,帮助保持术语一致。
下载的译文 PDF 保留可搜索、可复制的文字,并尽可能保留原有矢量图形。参考文献整页无需翻译时直接保留原页;部分保留的原文字形和公式沿用原图外观。含特殊绘图或可选图层的页面使用匹配预览的页面图像并附加文字层。导出字体内置于扩展中,无须联网下载;遇到无法容纳的译文会提示调整译文块后再下载。
带点线的目录按条目翻译,保留缩进、点线和原始页码。
公式保留
独立公式与编号保留原位;行内公式随译文排版,保留上下标、分式和符号形状。显示和导出均使用原公式图像。
公式识别依赖 PDF 文本层,复杂文档可能存在识别偏差。
本地文件访问权限
直接读取浏览器中已打开的本地 PDF,需要在扩展详情中开启「允许访问文件网址」或「允许访问文件 URL」。在工作区选择或拖放文件,不需要此权限。
开启权限后,点击工作区中的「重试打开」。如果浏览器重载扩展并关闭了工作区,返回原 PDF 标签页,再次点击「翻译PDF」。
使用限制
- PDF 须包含可提取的文字,当前不支持纯图片或扫描版文档。
- 复杂表格、特殊字体和高度图形化的版面可能需要手动校正。
- 导出的页面会被扁平化,以保持字体与版式一致;文字不可选择或搜索。
翻译服务
Microsoft、Google、腾讯、Yandex、火山和 MyMemory 已预置,默认使用无需密钥的免费服务。在「设置 → 翻译服务」选择服务商后,将「使用方式」切换为「API 服务(自备凭据)」即可填写自己的账号凭据,保存后生效。API 的免费额度与付费规则由服务商决定。
设置页可选中已停用的服务,编辑、保存或手动测试其配置;选中与测试不会自动启用该服务,也不会切换实际翻译所用的服务。停用正在配置的服务后,配置表单继续保留;弹窗、悬浮菜单和 PDF 的翻译服务列表仅显示已启用项。
选择服务商或切换使用方式后,「额度与限制」会显示对应服务的免费或匿名额度、单次请求限制、请求速率、并发和官方来源,并标注更新日期。未公布的项目显示「官方未公布」。插件分块大小与调度并发单独显示;账号剩余额度请在服务商控制台查看。切换模型或服务地址后,说明会同步更新。
| 服务商 | 默认免费服务 | 可配置的 API | | --- | --- | --- | | Microsoft 翻译 | 浏览器翻译,新安装默认使用 | Microsoft Translator API(Azure):API Key、Endpoint,部分资源需要区域 | | Google 翻译 | Google Web Translate | Google Cloud Translation:API Key | | 腾讯翻译 | TranSmart | 腾讯 TokenHub:API Key、Base URL、翻译模型,默认 hy-mt2-lite | | Yandex 翻译 | 网页翻译 | Yandex Cloud Translate:API Key,按账号要求填写 Folder ID | | 火山翻译 | 浏览器翻译 | 火山引擎机器翻译:Access Key ID、Secret Access Key、区域 | | MyMemory | 匿名使用,每天限 5,000 字符 | MyMemory RapidAPI:订阅对应方案并填写 RapidAPI Key |
切回免费服务会保留已填写的 API 凭据,但不会使用它们。免费服务限流或失败时不会自动切到 API,也不会转发给其他供应商。旧版独立的 Azure、Google Cloud 配置会合并至对应服务商,保留凭据和使用方式;同时存在两套不同订阅时保留独立配置。
| 服务 | 所需配置 | | --- | --- | | 豆包(实验性) | 在同一浏览器登录豆包,无需 API Key;目前仅 Chrome / Edge | | DeepSeek / Zhipu GLM | 对应平台的 API Key 和模型 | | OpenAI Compatible | 服务地址、模型及服务要求的 API Key;支持兼容接口的本地服务 | | Anthropic Compatible | 添加自定义 LLM 服务,填写服务地址、模型及所需密钥 | | HTTP Template | 接口地址、请求参数和响应格式 | | Firefox 本地翻译(实验) | 预先下载或导入语言模型,无需密钥,准备完成后可离线使用 |
Microsoft、Google、腾讯、Yandex 和火山的免费选项使用浏览器或网页翻译接口,可能受到限流、地区限制或接口变更影响;不可用时可手动切换另一项服务。第三方服务的可用性、用量限制和费用以服务商为准。
MyMemory 使用公开翻译 API,适合少量文本。匿名使用每天限 5,000 字符,单次最多 500 字节,长文本会自动分段;默认使用较小分块和单并发。源语言自动检测由浏览器在本机完成,无法可靠识别时需手动选择。额度用完后会提示切换服务,扩展不会自动将文本转发到其他供应商。
豆包(实验性)
- 在 Chrome / Edge 中打开扩展设置,选择「豆包(实验性)」。
- 点击「打开豆包并登录」,在豆包网页中正常登录自己的账号;登录页与扩展须使用同一浏览器资料目录。
- 在弹窗、悬浮球或 PDF 工作区选择豆包并开始翻译,扩展会自动准备连接。
无需填写 API Key 或导入 Cookie。支持网页全文、段落、文本层 PDF,以及本地 OCR 识别出的图片文字。豆包只接收需要翻译的文字,Firefox 暂不支持此服务。
源语言使用通用的「自动检测」和手动选择。自动检测使用浏览器的本地语言识别;无法可靠识别时,按提示手动选择。当前豆包接口不支持指定源语言,手动选择无法强制改变服务端对原文语言的判断。
目标语言支持简体中文、英语、日语、韩语、法语、德语、西班牙语和俄语,其他目标语言需手动切换服务。请求会依次排队,较长页面可能需要等待。
登录失效时,重新登录后直接重试翻译;遇到限流时,按提示等待后重试。接口、浏览器 Cookie 策略和服务限制可能影响可用性,持续失败时可选择其他服务。
Firefox 本地翻译(实验)
使用 Firefox 翻译所采用的 Bergamot 引擎与 Mozilla 语言模型,在浏览器内执行翻译,无需额外的本地服务;Chrome / Edge 用户无需安装 Firefox。
- 打开扩展设置,在「翻译服务」中选择「Firefox 本地翻译(实验)」。
- 阅读下载大小、磁盘空间、CPU、内存和耗电说明。
- 选择需要的语言方向,点击「下载模型」。选择服务或开始翻译不会自动下载模型。
- 等待显示「模型已就绪」,再开始网页、文本层 PDF 或已安装 OCR 的图片翻译。
下载遇到中断时会自动重试,已完成的文件和每 1 MB 的下载进度保存在本机。可点击「暂停下载」,稍后点击「继续下载」;服务器不支持续传时,当前文件会重新下载。关闭设置页后下载继续,退出浏览器或重载扩展后需重新点击继续。
若模型服务器无法连接,展开「网络不畅或离线安装」,在网络较好的设备上保存列出的全部文件,复制到本机,再点击「离线导入」。文件按大小与 SHA-256 校验,可分次导入,也可保留 CDN 自动生成的文件名。
模型就绪后,翻译不依赖网络,文本不会发送至在线服务。运行时使用本机 CPU 和一个工作线程,可能增加发热、耗电,内存可能达到数百 MB;空闲 60 秒后释放运行内存,模型文件继续保留。点击「删除模型」移除所选方向的数据;清除翻译缓存不会删除模型。
这是实验功能,复杂内容的译文质量和速度需结合设备评估。暂不支持韩语和繁体中文;缺少模型或语言不支持时,按提示补齐模型或手动切换服务。需要支持 WebAssembly SIMD 的浏览器和设备。
高级配置:LLM 服务、Ollama 与 HTTP 模板
LLM 服务
模型右侧的「+」可为当前服务添加模型或修改当前模型名称,保存后立即选用;自定义模型会随该服务保存在本地,服务地址和 API Key 保留。选择模型后,可点击同一行的「测试服务」验证连接。
「性能设置」集中调整通用分块与并发参数、当前服务是否继承通用参数,以及 PDF 翻译范围。切换翻译服务时,当前服务的性能设置随之切换。
DeepSeek 内置预设使用官方 API,默认模型为 deepseek-flash,也可选择 deepseek-v4-pro,并默认关闭思考模式以减少翻译延迟。旧 Flash 模型配置会自动迁移为 deepseek-flash,模型名称以 DeepSeek 官方文档 为准。OpenAI Compatible 适用于 OpenAI、兼容 /chat/completions 的网关,以及其他采用相同请求格式的服务。Anthropic Compatible 支持 Messages API 格式。这些 LLM 服务都可以自定义 Base URL、API Key、模型与系统提示词。
LLM 返回值应为与输入顺序一致的 JSON 字符串数组。只有一个输入项时,也兼容单个字符串结果。
自定义请求模板
在「翻译服务 → 高级」中启用「自定义请求模板」,可为当前 LLM 服务设置请求头和请求体参数。支持 OpenAI Compatible、Anthropic Compatible、DeepSeek 与 Zhipu GLM,包括自定义添加的 LLM 服务。点击「测试服务」会先保存设置,再使用当前模板验证请求。
未自定义时,编辑框会展示当前服务的默认文本请求模板:DeepSeek 包含关闭思考的 thinking 参数,Anthropic 包含 system、max_tokens 及自己的认证头,OpenAI Compatible 与智谱使用 Chat Completions 消息格式。认证头根据「常规」中的 API Key 是否填写生成;密钥、模型和提示词使用变量表示。默认展示不会额外保存一份覆盖配置;点击「载入默认模板」会启用自定义并载入可编辑副本,修改后保存。已有模板不会因切换服务或修改常规配置被覆盖。
- 请求头模板:填写 JSON 对象,在默认请求头上添加或覆盖字段,名称不区分大小写;值为字符串,
null删除该请求头。例如需要会话标识的网关可填写{"x-opencode-session":"wupage"},会话值按网关要求设置。 - 请求体参数模板:填写 JSON 对象,与自动生成的请求体逐层合并。对象递归合并,数组与其他值整体替换,
null删除字段。留空或{}沿用默认请求。可调整思考参数、温度、令牌上限,或替换messages。 - 关闭与恢复:关闭开关后使用默认请求,已填写模板继续保留;「恢复默认请求」会关闭开关、清除当前服务的覆盖配置,并重新展示默认模板,点击「保存」后生效。
{ "enable_thinking": false }
{ "thinking": { "type": "disabled" } }
DeepSeek 默认发送 thinking.type = disabled,高级模板可将其覆盖为 enabled,或用 {"thinking":null} 删除。扩展仅解析非流式响应,stream 只能设为 false 或用 null 删除。
模板变量写在 JSON 字符串内,替换时会自动处理引号、换行与反斜杠。支持 {{model}}、{{apiKey}}、{{sourceLang}}、{{targetLang}}、{{context}}、{{systemPrompt}} 和 {{userPrompt}};其中后两项分别为处理后的系统提示词和包含语言、上下文、待翻译文本的默认用户消息。完整的 "{{texts}}" 会替换为文本数组,"{{json texts}}" 会替换为 JSON 编码后的文本字符串;变量只替换值,不替换字段名。
例如 OpenAI 兼容接口的消息模板:
{
"messages": [
{ "role": "system", "content": "{{systemPrompt}}" },
{ "role": "user", "content": "{{userPrompt}}" }
]
}
替换消息或提示词时,需保留返回 JSON 字符串数组的要求,译文数量和顺序须与输入一致。模板与 API 凭据一同保存在浏览器本地,修改后用于该服务的后续请求;已有页面译文需重新翻译才会更新。
使用 Ollama 时,可填写 http://[IPv6地址]:11434、http://[IPv6地址]:11434/v1 或完整的 /v1/chat/completions 地址,扩展会补全接口并避免重复追加路径。IPv4、IPv6、主机名和自定义端口均支持。OpenAI Compatible 服务默认开启「Ollama 兼容」,处理扩展来源引起的 403,无需修改 OLLAMA_ORIGINS 或额外开启选项;旧配置升级后也默认开启,已手动关闭的设置会保留。
兼容处理仅作用于 WuPage 自身发往当前接口的请求,保留 API Key 等请求头,并在请求结束后移除临时规则。如果开启后仍返回 403,请检查服务端认证或反向代理配置;也可按 Ollama 官方说明 配置 OLLAMA_ORIGINS。Windows 例如执行 setx OLLAMA_ORIGINS "chrome-extension://扩展ID" 后完全退出并重启 Ollama。
HTTP 模板
「常规」配置请求方法、URL 与响应路径;「高级」配置请求头 JSON 和完整请求体模板。HTTP 模板沿用以下文本替换语法,请求体中的 {{json texts}} 不加引号,与 LLM 的 JSON 参数模板不同。
模板中可以使用以下占位符:
| 占位符 | 内容 |
| --- | --- |
| {{targetLang}} | 目标语言代码 |
| {{sourceLang}} | 源语言代码,自动检测时为 auto |
| {{texts}} | 输入文本的直接表示 |
| {{json texts}} | JSON 编码后的输入文本数组 |
「响应路径」必须指向一个字符串数组,数组顺序和数量需要与输入文本一致。
故障排查
| 现象 | 处理方法 | | --- | --- | | 设置页语言和服务列表为空、按钮无响应 | 在扩展管理页重新加载 WuPage 后,关闭并重开设置页;仍失败时记录浏览器名称、内核版本、WuPage 版本及扩展卡片中的错误信息 | | 点击全文翻译无响应 | 确认当前为普通网页;浏览器设置页和扩展内部页面不支持全文翻译。安装或更新后,刷新页面重试 | | 翻译请求失败 | 检查网络、服务地址、密钥和用量限制;在弹窗的 Debug 面板查看错误信息 | | 默认翻译服务不可用 | 检查网络,或切换到已配置的其他翻译服务 | | 豆包提示需要登录 | 在同一浏览器资料目录正常登录豆包,然后重试翻译;也可到设置页重新检测,并检查是否阻止豆包 Cookie | | 豆包提示限流、等待或服务拒绝 | 按显示的时间等待后手动检测或重试;持续失败时切换服务,并保留脱敏错误信息 | | 本地翻译提示缺少模型 | 在设置中下载或离线导入对应方向的全部文件;经英语中转时需准备两个方向 | | 本地模型下载失败 | 点击继续下载,或使用「网络不畅或离线安装」中的文件链接与离线导入 | | 图片翻译开关不可用 | 等待 OCR 模型安装完成;安装失败时点击扳手重试 | | 本地 PDF 无法打开 | 开启文件访问权限后重试,或在工作区中选择、拖放文件 |
隐私说明
在线翻译请求由扩展直接发送至所选服务商;选择 Firefox 本地翻译时,对应翻译任务的文本在本机处理。划词查词独立使用选中的有道或 Bing 在线词典,仅在点击入口后发送选中文字。WuPage 不提供翻译代理或分析服务;API 凭据、扩展设置和可选翻译缓存保存在浏览器本地。
网页、PDF 及图片中识别出的待翻译文字会交由所选服务商处理。翻译敏感内容前,应确认相应服务商的隐私条款。完整说明见 隐私政策。
使用豆包翻译或检测连接时,浏览器会按自身策略向豆包附带已有登录会话。WuPage 不读取、导入、导出或保存登录 Cookie,不保存账号密码,也不将豆包登录信息发送给其他服务。
问题反馈
通过 Issues 提交问题或功能建议。问题报告应包含:
- 浏览器和 WuPage 版本;
- 使用的翻译服务;
- 复现步骤及可公开访问的页面或最小示例;
- Debug 面板中的错误信息。
开发者交流群
WuPage 开发交流 QQ 群:582857596,用于功能讨论、开发交流与使用经验分享。可在 QQ 中搜索群号,或扫描下方二维码加入。
需要跟踪处理的问题和功能建议,请通过 Issues 提交。
开发文档
源码构建、测试与项目结构说明见 开发指南。
致谢
界面通用图标采用 Nieobie 的 Game Icon Pack(CC0 1.0),感谢作者的开源分享。