# 一种几乎永不失效的网页中英对照翻译方案

> 本文公开全文。

原文：https://utgd.net/article/4991

网页翻译，做成不难，做好不易。算上种种套皮服务，网页翻译工具可谓人才辈出；读者若不满足于不求甚解，则难免要流转于原文和译文之间——遑论机器翻译的错漏在所难免——可惜正视对照阅读之需求的翻译工具，却是凤毛麟角，沅江九肋。

本文将“对照”与“翻译”分而治之，既不依赖具体某个翻译服务，也不限于操作系统和浏览器，无论电脑、平板或手机，也不管 Chrome、Firefox 或 Safari，均得取一瓢饮，应是久治之方。

- Keyboard Maestro Macro 下载

- Bookmarklet 浏览器插件（需拖到网址收藏夹后使用）

## 困境

曾有嗜阅读者，遇现成工具如获至宝，但这些服务不是倒闭，就是开始大兴土木、建造封闭 App，若是为了翻译功能而抛弃整个浏览器，只怕是发屋求狸，惜指失掌。

而纵观几大翻译引擎提供商，Google 限制调用（包括设置验证码和禁止使用部分网页组件），百度自由度不高，微软则干脆对普通用户关闭了网页翻译渠道，即便是有志编写工具的进阶用户，似乎也落入了指雁为羹的尴尬境地。我曾编写了一款网页分屏翻译插件，也随着 Microsoft 相关服务的下线而失效。

究其根本，在于对照翻译毕竟是对照与翻译之交集，其外延之小，大概不足以支撑起一个市场，也就少有人涉足。寥寥几家服务，也多需要付费，往往还是不讨喜的订阅制。

## 思路

解决之道，当在于分解“对照”与“翻译”，在电脑上肆无忌惮地实现前者，而在各家服务所提供的免费额度之内，尽情享用后者——实际上，Google 和苹果的翻译限额几乎无限。前文提及的 Microsoft 分屏翻译工具（已失效），即是将翻译前后的网页嵌入同一个页面内；现在的方案，则是将网页内容原地复制，一段翻译、一段原样不动，由此生成双语对照翻译的页面。

对照之工，可在本地完成，无涉任何服务商；翻译一事，仍由翻译引擎代劳，Chrome 和 Edge 的翻译功能和三方插件自不待言，近几代的 Safari 浏览器也已鸟枪换炮，配备了自带翻译引擎，均可使用本文方案。

## 实现

拆分实现，好在既能依托自动化工具，一步到位；也可以寄生于浏览器、不安装任何插件或软件，只不过多一两步操作。鉴于需要使用 Javascript 调整网页布局，使用本文方案前，需运允许浏览器（以下演示均以 Safari 为例，其他浏览器请自行调试）运行 Javascript：

- 在 Safari 设置的“General”栏中，开启“Show Develop menu in menu bar”；

- 在 Safari 的“Develop”菜单中，勾选“Allow JavaScript from Apple Events”（这一步不可或缺）；

- 点击“Allow”，确认。

Keyboard Maestro 最适合处理此类分步骤的杂事，以 Safari 为例，已安装文首所列 Keyboard Maestro Macro 的读者，启用之后，在所需翻译的网页按下 ⌘Command\-K，稍等即可获得对照翻译的页面。使用 Chrome 或其他浏览器的读者，也只需调整 Keyboard Maestro Macro 的最后一步，让它启动您所用浏览器的翻译功能即可。

若没有安装 Keyboard Maestro，或者想在 iOS 上对照翻译，则可尝试 Bookmarklet 版本的工具。将 这个链接 拖到或添加到浏览器收藏夹，然后在需要翻译的页面点击该收藏项目图标，首先会得到一个内容被复制过的网页；随后，运行浏览器自带的翻译功能，旋即可看到对照翻译效果。

## 拓展：下载中英对照翻译的 PDF

浏览器如通渠中之地，对照翻译工具大可与其他功能结合，如虎添翼。阅读模式与对照翻译相得益彰，可撇去浮渣，清爽易读；而结合 @Hum 发明的网页抓取方法，诸君还能够将对照翻译、排版得当的网页下载到本地，方便日后细嚼慢咽，以免仓促。

此外，翻译的对象并不限于网页，但凡是一个 HTML 格式的文档，也可以对照翻译。只需在浏览器中打开 HTML 文档，同样可以运行对照翻译工具——当然，如果不需要对照，也能借用浏览器的翻译引擎获得译文，此法不受服务器配额限制，适合大量翻译文献资料。

HTML 格式或许陌生，而 epub 格式电子书则尽人皆知，实则后者不过是前者的变种，稍作加工、还原为 HTML，便也能翻成中文。大量尚无中译本的原版资料，若能获取去电子书，便可以顺利转为一段原文、一段译文的文档，先人一步，朵颐舶来佳肴。此话题，可见《用 Safari 翻译外文电子书和文档》一文。

---

[前往标准阅读页](https://utgd.net/article/4991?audience=web)
