文章 05

我怎样用 AI 做出一款替代付费工具的轻量翻译器

当时摆在我面前的,是一笔 1599 元的翻译工具年续费。原来的工具足够成熟,能够覆盖网页、文件和其他翻译场景,对许多人来说,这些能力都有实际价值。

这笔续费促使我重新考虑一个更具体的问题:我究竟在为什么付费?

回看自己的日常使用,我高频依赖的主要只有两条路径。一条发生在网页阅读中,我希望选中一段外文后,直接在原文附近看到译文,保留双语对照。另一条发生在 macOS 的不同应用里,我希望选中文字,快速翻译,再把译文放回正在编辑的位置。

我想替代的,从来不是一款成熟翻译产品的全部能力,只是自己每天反复使用的这两条路径。这个范围需要先说清楚,否则“替代”很容易变成一个比实际结果大得多的词。

把一张功能表还原成两个动作

成熟产品需要面对许多人的需求,因此会提供 PDF 翻译、字幕翻译、术语库、整站翻译等能力。它们并不多余,只是没有进入我的高频使用过程。如果以完整产品为参照,我需要补上的功能会不断增加;如果回到自己的两个动作,项目边界就清楚了许多。

网页阅读的起点是选区,结果要回到原文附近。这样我可以继续看原始表达,也能逐段对照译文,不必在网页与另一个翻译窗口之间来回切换。

macOS 端面对的是另一种情境。翻译可能发生在邮件、文档,或其他支持标准选区和复制粘贴的应用里。这里更重要的是把当前文字转换成另一种语言,再继续原来的编辑动作,并不需要保留一份双语页面。

两条路径都很短,却发生在不同的环境,也需要不同的交互。边界确定后,我借助 AI 分别把它们落实为个人 Chrome 扩展和个人 macOS 工具。AI 协助我梳理方案、完成实现和处理问题;我持续判断每个结果是否仍贴合阅读与编辑场景,决定哪些能力要停在范围之外。两个入口没有被塞进同一个大型界面,各自只需要完成眼前的任务。

现在回看,我判断这套工具是否成立,主要看三件事:阅读时能否留在原页面,编辑时译文能否回到原位置,等待是否会打断当前动作。它们比一张不断扩大的功能清单,更贴近最初的问题。

边界清楚以后,判断标准也变得具体:Chrome 端不能只得到译文,结果还要回到原文附近;macOS 端不能只完成模型调用,译文还要回到正在编辑的位置。至于那些没有形成高频需求的外围能力,就继续留在范围之外。

个人 Chrome 扩展,让译文留在阅读现场

个人 Chrome 扩展负责网页中的选区翻译。选中一段内容后,译文会出现在原文附近,原文仍然保留。对于长文阅读,这种对应关系比单独得到一段翻译结果更重要。我可以继续沿着网页原有的顺序阅读,在需要时对照原句,也更容易知道译文对应的是哪一段内容。

AI Translator 网页端:网页原文与中文译文的对应效果。
网页原文与中文译文的对应效果。

从当前效果图里,可以看见英文段落和中文译文在网页中的对应关系。它呈现的是一次真实使用。对我而言,判断这条路径是否成立,看的仍然是它能否在日常阅读中稳定出现,能否让翻译结果回到当前语境。

Chrome 目前也是我使用频率稍高的入口。个人 Chrome 扩展目前固定使用 DeepSeek V4 Pro,并关闭 Thinking。减少每次使用前的选择,也让它更接近一个打开就能工作的日常工具。

个人 Chrome 扩展当前使用的模型设置,API Key 已遮挡。
个人 Chrome 扩展当前使用的模型设置,API Key 已遮挡。

个人 Chrome 扩展当前使用图中所示的模型与接口,同时关闭 Thinking。这些都是我为日常翻译作出的个人设置,不代表 GitHub 通用 Chrome 扩展的默认配置。

个人 macOS 工具,把译文送回原来的位置

网页之外,我不希望为了翻译一小段文字,先复制内容,再打开另一款应用,最后把结果复制回来。个人 macOS 工具为这条路径提供了一个更直接的入口:在当前应用里选中文字,按下 Option + T,工具完成翻译后,把译文回填并替换原选区。

这个入口服务的是正在进行的编辑。原文被译文替换以后,我可以继续处理邮件、文档或其他文字内容。它与 Chrome 扩展都在解决翻译问题,结果形态却不同:网页阅读需要保留原文与译文的对应,跨应用编辑需要让译文回到当前正在处理的内容中。

个人 macOS 工具的快捷键、模型与 Thinking 设置,API Key 已遮挡。
个人 macOS 工具的快捷键、模型与 Thinking 设置,API Key 已遮挡。

个人 macOS 工具同样固定使用 DeepSeek V4 Pro,并关闭 Thinking。API Key 保存在系统钥匙串,Option + T 是当前的快捷入口。由于译文会直接替换原选区,这种交互本身并不保留同一画面的翻译前后对照。

这种跨应用方式仍然有边界。它依赖标准选区与复制粘贴,复杂的富文本结构、焦点变化或特殊编辑器都可能带来限制。AI Translator 首先是一件围绕我自己常用场景形成的工具,不需要因为已经进入日常,就把它描述成能够覆盖所有 macOS 应用的通用产品。

两个入口,不必长成同一种工具

个人 Chrome 扩展与 macOS 工具共享同一个目标,却没有使用同一种界面。Chrome 扩展需要理解当前页面里的选区,把译文放回原文附近;macOS 工具需要从系统选区取得文字,再把结果送回原来的位置。把它们分开,反而让每个入口只承担一种清楚的任务。

这里的“轻量”,不只是删减功能和缩小界面,更重要的是让一段操作尽量留在它原本发生的环境里。阅读时不离开网页,编辑时不离开正在使用的应用,工具只在需要的那一刻出现。

如果为了形式上的统一,把所有翻译都集中进一个独立窗口,我仍然要承担复制、切换和寻找上下文的成本。两个入口看起来没有那么整齐,却更贴近两条真实路径各自的起点和终点。

高频工具,等待时间也属于功能

工具能够完成翻译以后,模型选择并没有就此结束。我曾尝试过自己当时认为能力更强的模型方案。它们可以得到翻译结果,但在我的实际使用里,等待时间更长。对于偶尔发生的任务,这段等待也许可以接受,放进每天反复出现的阅读和写作动作后,它会不断打断当前节奏。

翻译是一条很短的操作。选中文字之后,我期待的是尽快拿到足够可靠的结果,再继续眼前的事情。如果每一次调用都要等待更久,即使模型在纸面上拥有更强的能力,我也可能越来越不愿使用它。这个问题只有在工具进入日常以后才会显现。

最后,我把个人 Chrome 扩展与 macOS 工具重新固定为 DeepSeek V4 Pro,并关闭 Thinking,以减少高频翻译中的额外等待。这个选择只针对 AI Translator 的个人使用场景。我没有据此判断某个模型在所有任务中更好,也不认为所有翻译产品都应该关闭思考模式。它解决的是一个具体取舍:日常中英翻译需要的质量、速度和稳定性,怎样落在更合适的位置。

这段调整让我确认,对高频工具来说,响应速度并非完成核心功能之后才考虑的附加体验。等待会直接决定一次操作能不能自然接进阅读和写作,因此速度本身就是功能的一部分。

个人版与开源版,服务不同目标

AI Translator 当前有三个需要分清的形态:个人 Chrome 扩展、个人 macOS 工具,以及 GitHub 通用 Chrome 扩展。前两者是我仍在使用的个人入口。后来,我另外整理出通用 Chrome 扩展,让使用者可以自行配置兼容接口、模型和 API Key。

这个 GitHub 公开仓库 只包含通用 Chrome 扩展,不包含个人 macOS 工具。它也没有固定绑定我个人使用的 DeepSeek V4 Pro 配置。个人版追求减少变量,让已经验证过的路径保持稳定,通用版则需要给使用者保留服务与模型选择。两者从同一个网页翻译需求出发,承担的目标并不相同。

代码已经公开,可以被查看和使用,但这不能证明它已经获得社区、用户或市场验证。就目前而言,AI Translator 首先仍是一套长期自用的个人工具,公开仓库只是其中通用 Chrome 版本的整理结果。

它替我接住了什么

现在,Chrome 与 macOS 两个入口仍在我的日常里。网页中的双语阅读由 Chrome 承担,跨应用的选区翻译与回填由 macOS 端承担。对我来说,原先依赖付费工具完成的两条路径已经被接住,这就是“替代”在这篇文章里的完整范围。

PDF、字幕、术语库和整站翻译仍在这套工具之外。它是否适合其他人,取决于各自的工作流和维护意愿;我的结果只说明个人使用中的两条路径已经成立。

这次实践改变了我判断个人工具价值的方式。一张完整的功能表并不等于我的真实需求。只有把每天反复发生的动作单独拿出来,我才知道什么必须留下,什么可以暂时不做,以及一个更小的方案怎样才算完整。

功能更少并不会自动带来克制。真正重要的是先看清边界,再决定什么值得留下。AI Translator 没有复刻一款成熟产品,也没有替所有人提供答案;它只是把我真正离不开的两条路径,做成了能够长期进入日常的个人方案。对我来说,这已经是一次成立的替代。

返回文章列表