# 把任何外文网页变成交互式翻译习题，还能离线保存

> 本文开放前 70% 正文，剩余内容会员可见。

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

世界上最恶心的外语学习途径，毫无疑问就是所谓的“沉浸式”，原因无他，零反馈也。看电影或美剧，多数时候是自欺欺人，唯一能够获得赦免的情况，乃是你在一个月内敲烂了新电脑的空格键，这证明你频频暂停，逐字逐句蹂躏自己。至于看文章，如果开翻译，也一样，你不能说自己在学外语，你只是在“获取信息”。

至于关掉字幕、硬啃原文，无非是把同一枚问题硬币翻到了反面：你怎么知道你是对的？依然没反馈。

诚然，我也很向往 learing by doing。我曾介绍过一位编辑的练习技巧，他巧妙地找到了反馈甜蜜点：既非从一张白纸开始，也不是埋头读别人的文章，而是在读中写，读到妙处，赶紧遮住下文，考考自己会怎么写。将这一思路嫁接至外语学习，我设计了一个临时遮住译文的小工具。

不久后，我发现，既然是电子设备，就不用局限于用手遮挡。说到底，穷学生借书，万万不敢随便涂画，但使用电脑，则不该继承纸张的顾忌。单单挡住，多么没劲，为什么不把网页直接做成交互式的、可以离线保存的翻译习题呢？

一段原文，一段输入框，一段暂时调成白色、用光标选中方能显示的译文。读一段，译一段，核一段。错在哪里，清清楚楚，毫不留情。熟练了，就整篇整篇译，但依然逐段逐段查，唯忌粗放。真难怪，马尔克斯要说，用文字写下的东西最能伤人！

本文方案最终打包为 Keyboard Maestro 动作，不过核心工作几乎完全由 Javascript 完成，读懂设计思路后，你可以移植到任何 Agent 或多数自动化工具中，并不限于 Keyboard Maestro。

\>\>Keyboard Maestro 示例动作下载\<\<

注意，本文方案本身不负责翻译，需配合对照翻译工具使用。使用其他翻译工具的读者，请注意对照排版是否基于 translate="no" 特性，如果利用其他特性完成排版，本方案可能无法直接使用（反正你可以试试把所有东西喂到 LLM 嘴里）。

从简单遮挡到有交互，离不开一个组件：输入框。鉴于网页本身就能输入文本，我设想，或许可以在网页上练习，而不必复制文本到别处（例如，最没品的选择：Microsoft Word）。输入框的实现方式很多，只要确保两点：（1）字体易读，（2）随着文本增多，行高会相应抬高。

在网页上直接输入译文，最大的问题还不在于输入本身，而是网页太脆弱，一不小心关闭、刷新或点到链接，刚刚输入的文本就会被抹掉。避免误闭和刷新，网上历来有不少插件，我也设计过一套 Keyboard Maestro 方案。单独就避免就刷新而言，还可以直接在网页上动手脚，相信读者们都见过那些对你依依不舍反复挽留的烂网页，只是这次，我们要利用背后的特性。

链接同样可以在网页内部搞定，指定所有链接都在新页面中打开，而不是覆盖当前页面。这些工作在生成离线习题时，都已经写入网页源代码。

既然是网页，当然可以保存到本地，而习题又是文章，只需保存为不占位置的 HTML，想练时，用浏览器打开便是。如果没有配图，或配图无关紧要，完全可以断网做题——我是无所谓，不过某些人有断网需求，比如那些号称 Kindle 比 iPad 更有生产力的家伙。

最粗暴的方法，当然是打开网页元素检查器（Inspector），直接拷贝整个网页的源代码，然后随便找个代码编辑器粘进去，存好。如果网页排版清爽，并且背景是白色——否则

---

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