自己写一个 Chrome 翻译插件要花多少时间?我实测了一遍

现成翻译插件用了几年,功能始终对不上自己的用法。国庆期间我让 agent 从第一行代码写到 Chrome 商店上架,踩了取词气泡消失、翻译慢、审核被拒这些坑,也摸清了 agent 的能力边界。这篇把完整过程、成本账和选型判断写清楚。
自己写一个 Chrome 翻译插件要花多少时间?我实测了一遍

云上工程笔记 记录云计算、AI 工程化与开发者实践。 1 人赞同了该文章
现成的翻译插件用了好几年,但有些功能始终不按我的想法来。国庆期间,我索性让 agent 帮我写了一个自己的。从第一行代码,到 Chrome 商店上架,终于不用再将就了。
平时看英文网页多,翻译插件是刚需。10 月 3 号第一次提交审核,被拒。10 月 8 号改完重提,状态回到待审核。趁这工夫把过程记下来。
为什么不用现成的
三个原因,外加一个私心。
量身定做。 我的用法很具体:鼠标停在中文词上,要拼音、字义和组词,不是翻译成英文;停在英文单词上,要 IPA 音标加朗读;整页翻译要中英上下对照。这些需求现成插件的设置里就是凑不齐。
安全。 翻译插件的原理是把网页文本发出去翻译,发给谁就是问题。现成插件大多经过它自己的服务器,你看过的每个网页都过一遍别人的手。
生词本。 查过的词我想存下来,隔几天翻一遍。现成插件要么没有,有的也不是我要的样子。自己的插件往后随便加。
私心: 想试试 agent 能不能把一个完整的小软件做出来,从第一行代码到上架。星图是我们自己在做的 agent 客户端,正好拿这个活练手。

功能是跟着别扭长出来的
插件是 Chrome MV3 扩展,代码分四块:background 管 API 请求和计费,content script 注入网页做取词和双语排版,popup 是工具栏小窗,options 是设置页。UI 全部包在 Shadow DOM 里,不跟网页样式打架。

最先做的是悬停取词。按住 Alt,鼠标停在单词上弹释义气泡。踩的第一个坑:气泡一移鼠标就消失。查词是异步请求,等响应回来鼠标早挪走了,旧代码在 mousemove 里就收气泡。改成只有点关闭、按 Esc、滚动页面才收起。

然后是整页翻译。一开始一批 8 段 1100 字符,翻 CNN 这种长页面要干等半天。改了三处:每批加到 12 段 2600 字符,并发提到 6 路,接口换成 SSE 流式,译文边生成边往页面上贴,首段几秒钟就看到,体感和沉浸式翻译一样了。段落顺序也改成先译屏幕里正在看的。
排版是照着沉浸式翻译抄的思路。导航、面包屑、分页、侧栏、广告这些页面家具不碰,父子块只译最内层,免得一段文字出两遍译文。译文的字号行高直接从原文复制,标题译文跟着用标题字号。
词典是后来加的。中文词给带声调拼音和组词,英文单词给 IPA 音标,气泡里点小喇叭就朗读,用的浏览器内置语音,不花钱。这步主要靠改提示词:让模型在释义前先吐一行音标,前端拆开单独显示。
调试里的几笔账
思考型模型查一个词先想 822 个 token 才输出,费用是普通模型的八倍,能关就关。
翻译统计原本在网页上弹浮窗,太吵,挪进工具栏弹窗。右键菜单原本两个子项,点两下才能翻,改成一个开关,译过就变还原。
我还算过一次缓存的账:把翻译历史攒在同一个对话里续着发,看着能吃到缓存折扣,实际算下来每批开新对话更便宜。续对话每轮都要为旧文本和旧译文再付一次钱,哪怕按缓存价算也不划算。
测试是 node 里跑的冒烟脚本加人工验收。18 项断言,mock 掉 chrome.* 和 fetch,覆盖 token 统计、计费公式、流式解析,每轮改动跑一遍。
上架这步比写代码麻烦
打包上架交给了星图:商品 zip、商店文案、宣传截图、隐私政策、权限说明都由我们准备好,它去开发者后台点按钮。
10 月 3 号第一次提交。星图打开后台,Google 要求重新验证身份,密码和验证码我自己输。顺手立了条规矩:密码、2FA、支付、手机验证这类事永远不交给 agent,最后的公开发布按钮也由我来点。
提交前自查出两个问题:manifest 里声明了 scripting 权限,代码里一处没用,删掉;隐私政策里写「所有数据保存在本地」不准确,Chrome 的同步存储会把设置和 API Key 同步到我自己的其他设备,这话得如实写。改完重打包,18 项冒烟测试过了,提交,自动发布关着。后台显示:待审核。
第二天出结果,被拒。违规类型是「垃圾内容和商店中的排名」,内部代号 Yellow Argon。原因是产品说明里关键字太多,点名那行服务商枚举:OpenAI、DeepSeek、通义千问、OpenRouter、本地 Ollama/LM Studio。本意是告诉用户兼容性好,审核那边看作关键词堆砌。
整改干脆利落:说明里一个服务商名字都不留,改成「支持任意兼容主流接口规范的大模型服务,含自建与本地部署」;提竞品的小标题「像沉浸式翻译一样美观」改成「排版干净,不破坏原页面」;tags 精简到 translate、翻译、双语;弹窗截图里露出的模型名换成「自定义模型」重渲了一遍。版本直接用最新的 1.1.0 重提,词典、拼音、朗读这些提交之后才做的功能一起带上,省一轮审核。
重提的时候把 agent 的能力边界摸清楚了。让星图无头跑批去提交,报「Computer Use was not approved to use Google Chrome」,桌面操控的批准框只在交互会话里能点,无头跑弹不出来。最后我在交互式会话里批了 Chrome 的操控权限,星图把草稿建了、包传了、文案贴了、截图换了、审核提交了。改文案、打 zip、重渲截图这些备料,也是它在后面做的。
这一轮折腾有个额外收获:商店文案被逼着洗了一遍,现在干净了。

写在最后
现成插件本身没问题,只是对不上我的用法。自己写一个的成本,这回实测下来主要就是验收花时间:星图半天能写完的功能,我试用挑毛病要用两三天。
等审核过了,插件我分享出来。有同样别扭的,可以先蹲一个。
如果你也在让 agent 干完整的活,转发给那个还在手动打包上架的朋友。
发布于 2026-10-09 17:33・上海
Google Chrome

教你如何暴力背单词 教你如何几天记住几千个单词 今天教下大家如何暴力背单词 绝对是全网最牛逼的方式 花几分钟看完这篇文 只要是有认识小学最基础的 500 个单词 每位同学都可以... 今天教下大家如何暴力背单词 绝对是全网最牛逼的方式 花几分钟看完这篇文 只要是有认识小学最基础的 500 个单词 每位同学都可...

Revo 100+感兴趣