利益相关声明:作者与文中产品有直接的利益相关(开发者、自家产品等)

自我介绍:本人是一名前端开发人员,喜欢折腾一些小工具,使用少数派多年,收获不少,现在是时候回馈社区了[doge]。

前言铺垫&个人背景介绍

我之前使用 Craft 写播客,当时 Craft 2.0 的时候支持了插件功能,于是开源了一个 Craft 插件供大家使用(现已不可用);后来 Craft 放弃了插件这条路,于是我转为使用 Notion 写播客,开发了 Notion Flow 这个浏览器插件工具(目前开源): https://notion-flow.xheldon.com,可以让你将 Notion 的内容以自定义的格式发送到 Github 仓库,支持自定义处理 Notion 模块,目前 Chrome 和 Edge 浏览器加起来有上百个用户。

之后我为了自己压缩图片方便,为了隐私和快速,不想使用各种在线压图/压视频/SVGA预览工具,开发了 xPic 客户端工具(目前是手动发码,稳定 Beta 中),地址见: https://xpic.xheldon.com

本人是一个翻译爱好者,一开始是纯人工翻译,工作量巨大,最近一年使用 AI 工具较多,因此对一些之前翻译过的文档重新用 AI 翻译了一遍,如: 可能是最好的 Prosemirror  中文翻译,作者发推推荐: https://prosemirror.xheldon.com  (旧的人工翻译花我半年时间,在 https://old-prosemirror.xheldon.com ,Rust 中文教程: https://rust.xheldon.com

再后来我想写一个苹果应用,因为文档不是母语,所以无法快速找到想要的内容,很是头痛,找了市面上的一些工具,都不是很理想,包括:

沉浸式翻译:

优点:

  1. 支持任意文档翻译。
  2. 商业化成功的典范,项目持续性有保障。

缺点:

  1. 沉浸式翻译进入页面翻译需要等待时间,而且他们使用了懒加载,滚动页面快的话会发现部分页面还未翻译完毕。
  2. 要么需要订阅会员,要么需要自己的 API Token,都是持续性的支出花费,不划算。
  3. 沉浸式翻译的全文翻译,因为没有像其他插件(如简悦)对大量网页的正文部分进行适配,因此会将一些页面的 footer、header、侧边栏都翻译,甚至导致页面错乱,丑不堪言(这点注重美感的苹果开发者肯定受不了)。

我注意到另一个开源项目,叫 Twine by SwiftGG 光 Chrome 插件就有 900 多个安装,它:

优点:

  1. 教程部分也翻译了,人工翻译,不会出现 AI 翻译弱智的情况。
  2. 开源,插件安全有保障。

缺点:

  1. 只翻译 Swift 相关的部分,对其他文档没有处理。
  2. 社区项目,纯手工翻译、依赖自建的后端服务,用爱发电+ 持续支出,我赞扬这种精神(我开发 Notion Flow 也开源了),但这不是一个持久的模式。目前看仓库,最近的更新是 4 个月前。

说了这么多其他的项目的缺点,并不是为了拉踩谁,毕竟各自都有优点和缺点,选择适合自己的就可以。

铺垫了这么多,下面进入正文。

ADDT 插件是什么

全称 Dev Docs Translation for Apple,是一款浏览器插件,可以自动翻译苹果开发者文档,同时有一些功能增强阅读时候的体验。

ADDT 插件能做什么

  1. 苹果文档自动全文翻译(安装插件后需要手动启用),仅翻译正文部分。
  2. 鼠标悬浮在链接,可以查看链接的概要(使用的是苹果自己的数据,没有额外请求),并自定义样式。
  3. 可仅翻译,也可双语对照显示,并自定义样式。

ADDT 插件有什么特色

  1. 使用苹果自己的渲染方式,保持页面简洁。不像沉浸式翻译,每次翻译遍历  DOM 树,把全部层级修改一遍(虽然可以理解是为了适配不同网站和复杂功能而做的取舍)。
  2. 计划全部模块翻译支持。截止发稿时,已经翻译了 Swift、SwiftUI、Foundation、UIKit 等十个热门模块,目前正在进行的有八个模块,计划中的有九个模块,预计两周一更新。
  3. 可以免费使用。基本功能足够,对翻译有疑问或者想双语对照的,可以付费解锁(Safari 是付费下载)一次性付费,不用持续消耗自己的 API Token,不用购买订阅会员。
  4. 使用 AI 多级降级策略,基础翻译模型是 QWen-2.5-14B,如果出现错误,包括翻译中出现大量重复字符、翻译中出现非法字符等,会 fallback 到 QWen-2.5-32B → Grok-2 → Grok-3(感谢马老板每月的 150 刀的额度)。
  5. 使用 Cloudflare 全球 CDN 分发资源,成本低,见效快,物美价廉。

ADDT 插件支持的浏览器

目前支持市面主流浏览器,包括 Chrome、Firefox、Safari。Edge 截止发稿时,正在审核中(快审核两周了,挺无语的)。

官网见: https://appledocs.dev

ADDT 插件的技术细节

沉浸式翻译使用了一些脚本注入的技术,为了双语翻译的时候插入到原始DOM的同级节点,这会引起原始页面布局的错乱,同时如果父级节点样式设置了 overflow: hidden ,则翻译的内容会被截断显示不出来。针对这一问题,他们没有针对性适配苹果开发者网站。

另外,沉浸式翻译在 Safari 下的样式会被 CSP 拦截,这其实是一个很容易解决的问题...

ADDT 插件的实现方式是先获取到苹果文档的接口请求数据后(插件仅有访问https://developer.apple.com/documentation  路径的权限,保证安全),通过查询字典的方式,转换为目标语言的版本,因此使用了苹果自带的翻译方式,不对页面有任何干扰。

关于样式,使用了浏览器自身的 injectCSS  进行注入,不会产生额外的 style 样式来影响页面 DOM 树(1.0.7 版本生效)。

未来计划

  1. 按顺序翻译全部的文档,如果有建议的语言和有限翻译的文档,也可以邮件反馈我会安排优先级。
  2. 增加评论功能。这一点收到我翻译 Prosemirror 文档的影响,地址见 https://prosemirror.xheldon.com/docs/ref/ ,很多朋友反馈说,在接口下面的 译者注 非常有用,我当时也是在使用的时候添加的备注。因此我在考虑是否要用页面 URL 作为 ID,来记录接口的各个评论数据,这个功能优先级较低。
  3. 你有什么建议?

其他

目前官网是半价折扣中,持续到 5 月 1 日;Safari 目前 1 元促销中,也持续到 5 月 1 日。Safari 因为我不会写内购代码,所以设置成下载付费,因此只能在 Safari 浏览器中使用,其他浏览器使用激活码方式,通用。

1
4