article_image

前些年,RSS 复兴的声音尚不绝于耳;但近年来日益恶化的互联网环境——广告、跟踪、巨魔、人身攻击——让越来越多的作者和读者选择躲进黑暗森林,远离主流。在这个不友好的背景下,相当一部分优秀的作者取消了 RSS 输出,提供、且仅提供 Newsletter 这一订阅途径。

尽管不乐意,如今的内容订阅也已被 RSS 和 Newsletter 二分天下(如果无视微信这类封闭平台的话)。考虑到优质订阅源中常有外文内容,翻译工具总是不可或缺,RSS 已有不少人摩拳擦掌,我也贡献了一个基于 DEVONthink 的本地翻译方案(限标题),但 Newsletter 这边的动作则比较少。

实际上,Newsletter 完全可以继承网页对照翻译的思路,把任何一封邮件翻译为一段原文、一段中文的样式。本文将展示一套 Newsletter 处理流程,将邮件批量导入 DEVONthink、随后对照翻译之,并附带自动化操作。

Alt text
Newsletter 和对照翻译效果

没有 DEVONthink 的读者也不用着急,我已经为原生邮箱编写了相同功能的脚本,只是由于 Apple 本身的编码问题,其中的特殊符号无法正常显示。在解决或绕开这一问题后,我会发布一篇更通用的文章,届时将无需借助 DEVONthink。1

另外,您可能已经在使用 kill the newsletter 等工具,从而将 Newsletter 烧录成 RSS 链接,此时则可以直接在 DEVONthink 中应用对照翻译(会员可以阅读进一步的操作详情);但不少网站已经将 kill the newsletter 加入黑名单——比如大名鼎鼎的国家地理——仍然要在邮箱中接收邮件,再导入 DEVONthink 操作。考虑到各个网站的宽容度参差不齐,本文仍然是可靠的兜底方案。

操作步骤

注意,根据本文的方案,您可以翻译任何 Newsletter,但不意味着您必须翻译所有的 Newsletter。我在 《当代人的丛林狩猎:在线阅读 | 专栏导读》 中打了一个比方,认为阅读就像打猎,分为多个环节,一层一层挑出真正值得精读的作品;显然,对照翻译和剪藏保存处于非常靠后的位置,不可能也毫无必要如此处理所有文章。

对照翻译 Newsletter 的方案与网页或文档对照方案在根本上无异,均是在 HTML 文件的基础上做文章,因此本文方案,主要是在前文基础上增加了获取 Newsletter HTML 文件这一步。本节先介绍手动处理步骤,下一节再将部分环节自动化。

第一步,需要从邮件客户端中导出邮件文件,一般是 eml 格式。我无力照顾到所有的邮件客户端,只能以原生邮箱为例。选中任意数量打算翻译的文件,在菜单栏中选择“Save as…”将其保存为 eml 文件,或者直接拖到 DEVONthink 中。2

Alt text
第一步:把邮件拖入 DEVONthink

在第一次把邮件拖入 DEVONthink 时,系统应当会要求您授权 DEVONthink 与邮箱软件交互,我一般会同意,因为日后免不了一些自动化操作。但就本文而言,由于处理的是 eml 文件而不是邮件客户端内部的数据,不愿意授权问题也不大。

Alt text
授权 DEVONthink 与邮件交互

导入邮件到 DEVONthink,还需要设置一番才能正常浏览邮件中的图像。打开 DEVONthink 设置,依次找到 Files 和 Emails,然后勾选“Load remote images in messages”。设置后,应当可以在 DEVONthink 中顺利浏览 Newsletter 图文内容。3

Alt text
勾选“Load remote images in messages”才能显示图片

接下来,利用 DEVONthink 本身的文件格式转换功能获取 HTML。这一步同样可以批量操作,选中文件在右键菜单中找到“Convert - to HTML”即可。

Alt text
第二步:把邮件转换为 HTML 文档

得到 HTML 文件后,先不忙着对照翻译,盖前文方法并未对本地 HTML 文件做优化,要么调整此前方案的代码,要么修改一下刚刚获得的 HTML。如果你不懂 Javascript 代码,还是直接修改 HTML 文件来得安全。在 DEVONthink 中打开 HTML 文件,切换到源码视图(Source,快捷键是 ⌃Control-⌘Command-X),然后搜索所有的 <div 并替换为 <p(搜索的快捷键是 ⌘Command-F)。严格来说,你应该顺带把 </div 也替换为 </p,但现代浏览器——例如 Safari——往往会帮你补全后半步,不出问题就可以偷懒。

Alt text
第三步:不想折腾代码的话,可以手动替换文本

修改 HTML 文件(或者对照翻译工具)后,即可用 Safari 或与您所用翻译工具配套的浏览器打开 HTML,然后运行翻译工具,得到原文与译文兼具的文档。

考虑到很多读者读文章一目十行,我只能再次提醒:对照翻译的方法在之前的文章中,请阅读前文《一种几乎永不失效的网页中英对照翻译方案》和《用 Safari 翻译外文电子书和文档》。
Alt text
第四步:用浏览器(Safari)打开 HTML 文件

Newsletter 翻译的核心是 HTML 文件,因此许多针对网页的操作也可以用在上面,比如调整网页字体大小4、开启阅读模式或者打印为 PDF。我建议在阅读或打印前调大几号字体,因为一般的邮件字体会比较小,并不适合阅读。

Alt text
由于是网页,翻译时可以任意调整字体大小

如果有需要,还可以参考《剪藏网页到本地的自动化思路(以 Keyboard Maestro 为例)》《剪藏网页到本地的轻量化思路》,把对照翻译后的页面离线保存下来。

加点自动化(非必须)

我自己订阅的 Newsletter 数量不多,只因这些作者多数比较大方,写 Newsletter 的同时也提供 RSS 输出,所以我在邮箱里收到的东西不多。但如果你的 Newsletter 订阅量较大,可能就有使用自动化的必要。

DEVONthink 内置的 smart rules 正好可以用来处理 eml 邮件,不过老实说,下面的方法只是半自动化,负责将 eml 邮件自动转换为 HTML 文件,到了最后的翻译环节还是需要手动打开浏览器。5

假设您会将 eml 文件全部移入 Newsletter 文件夹,那么相应的 smart rules 就是:

  1. 将搜索范围限制在 Newsletter 文件夹;
  2. 将触发条件设置为“Extension is EML”;
  3. 把要执行的操作设置成“Convert to HTML Page”。
Alt text
用 smart rule 自动转换邮件为 HTML

这样设置后,所有导入 Newsletter 文件夹的 eml 文件都会被自动转换为 HTML,多少简化一些操作。如果你更习惯直接把 eml 文件导入 Inbox(收件箱),不妨思考一下:如何把它们移到专门的文件夹,并且转换格式?


  1. 当然,不用原生邮箱的人就不会遇到前述编码问题,但我也不用原生邮箱以外的邮件客户端,对它们就力有未逮。
  2. 如果是拖入 DEVONthink,已经添加过的邮件会被忽略,而不是导入失败。有人报告了类似问题,但根据我的经验,他可能只是忘了之前导入的文件在哪里——包括收回站。
  3. DEVONthink 会“多此一举”是出于隐私和合法合规考虑,比如部分邮件发件人通过图像追踪收件人,拒绝自动载入就可以布置一道防线。但既然你已经订阅了 Newsletter,大概也没必要那么防着发件人。
  4. Safari 的默认快捷键是 ⌥Option-⌘Command-加号⌥Option-⌘Command-减号
  5. 如前所述,我自己不太需要这一节的自动化,献曝的目的,一方面是应对不时之需,难免有读者需要;另一方面也是接机提及一下 smart rules,毕竟合适的例子很难得。

author_avatar

Lawyer, macOS/iOS Automation Amateur