为了让自己少用翻译软件,我做了这款‘点词翻译’的 Chrome 插件

32 天前
 newsky

背景

最近在站内看到了好几个学英语、翻译相关的插件或软件, 比如:

  1. https://ex.noerr.eu.org/t/1134678?p=3#reply346
  2. https://ex.noerr.eu.org/t/1135237
  3. https://ex.noerr.eu.org/t/1132285#reply37

大家做了不同方向的探索,都非常有启发性,其中一篇说到, 要遵循"可理解输入"的方式去学英语的文章, 非常认可,因为理解了,再学习就不会无聊, 也没那么痛苦。

我的停滞不前的学英语方式

回顾最近几年在 GitHub 或 Hacker News​​ 上看英文文章的经历,虽然阅读量不少,但英文水平并没有显著提升, 还是很菜, 有些惭愧 也用 anki 背过一段单词, 坚持了 3 个月,后来工作忙, 停下来,也放弃了

现在日常使用的主力翻译软件, 有两款:

  1. Bob: 通过快捷键非常方便的弹框, 展示词语、句子的翻译,还可以配置不同大模型, 还可以自定义 Prompt , 而我自定义了一个进行词语解释,同义词介绍、常用短语介绍的 Prompt , 非常方便
  2. 沉浸式翻译: 相比谷歌翻译, 沉浸式翻译给了我很强大的安全感, 上面英文、下面中文,让我感觉可控

通过上述两款软件, 显著提高了阅读英文文章的效率,极大的减少了自己看英文文章的恐惧心理, 还是非常感激这么优秀的软件

但也导致自己对上述两个软件有很强的依赖, 遇到相对生词较多的文章, 直接打开沉浸式翻译,翻译原文, 很快就把中文译文阅读完毕。 虽然英文原句就在中文句子的上面, 但是在 99%的情况下, 我不会再看英文原文, 因为自己阅读太慢了, 各种不认识的单词, 还要来回对照下面中文译文。 如果强制让自己看英文, 很明显的感觉到自己很不爽

而 Bob 是在页面上直接弹框, 对该词进行解释, 但是弹框太打断阅读了, 本来自己读的就慢, 还需要频繁的弹框, 虽然能固定一直展示窗口, 但是还需要从原文和弹框之间来回切换。 阅读的注意力会被频繁的打断, 到最后就直接切换成沉浸式翻译了。

所以现在大多数情况下, 我用沉浸式翻译来阅读英文文章, 且越来越依赖, 正常来讲,翻译软件的使用应该是随着时间变化,自身英文能力有提升,翻译工具用的越来越少才对, 可事实上却不是这样的

自己的反思

因此也反思 是不是自己用的姿势不对, 毕竟大家都是这么用的。 也在想是不是还有更好的方式, 怎么才能既坚持阅读原文, 又不频繁打断注意力, 将精力关注在英文原文上。

像我们并不是所有的英文单词都不会,一般大家都至少会有几千单词的词汇量, 而这些词汇量已经能阅读一些简单的英文文章, 如果一些英文生词我们不会, 是不是在直接在页面中将该生词翻译中文,没有弹框, 我们就能更流畅地阅读?

受站内翻译插件启发

即把纯英文文章, 转换为中英文夹杂的文章, 尽量不打断注意力,会不会效果更好, 那怎么做呢:

因此想到了一种有趣的"内联翻译"方式:

  1. 直接在单词后面插入括号翻译,保持阅读连贯性
  2. 专注单个英文单词翻译,简单纯粹
  3. 双击选中单词即翻译,点击即删除,极其简单
  4. 翻译文本淡色显示,不影响主要阅读流程

核心是做到轻度翻译, 去引导自己阅读英文原文,保持阅读英文原文的专注度,遇到不会的单词,哪里不会点哪里, 而自己阅读的专注性,要一直在英文的原文上, 做到对英文原文的输入。

实现了一款哪里不会点哪里的 Chrome 插件

思路有了后, 剩下的就是做了, 因此抽了几天时间, 很快完成了这款 极简主义翻译工具 "Inline Translator -- 内联翻译":

操作方式:

通过即时、轻量地翻译生词,使得原本有难度的英文材料变得更容易理解,从而在不打断阅读流的情况下,自然地吸收和学习。

开发过程的细节

起初只支持谷歌免费翻译

默认是直接用的谷歌翻译 API 接口,翻译效果在一些场景下可能会效果一般, 但胜在免费+快, 自己用起来, 还是非常好玩的, 哪里不会点哪里, 自己的关注点会一直在英文原文的上下文中, 如果翻译的单词太多, 还可以右键全部清空翻译

顺便支持了翻译成其他语言

同时做了简单的国际化操作, 不仅可以翻译成中文, 也可以翻译为其他语言,比如日文,韩文等

其中限制只能翻译单个单词,主要为了保持功能简单

增加上下文翻译(基于大模型)

我自用过程中,发现有些词在特定的句子中,有不同的含义,现在没有考虑上下文,导致特殊情况下单词翻译很差, 比如java, 翻译成爪哇岛,很不能忍。

而大模型 deepseek 这些,很擅长基于整个句子来解释单词。 因此又引入了基于大模型的上下文翻译,启用上下文翻译后,再配置好自己的大模型 api_key, 就可以让大模型基于句子的上下文来翻译我们指定的单词, 现在已支持使用自己的 api_key 选择 openai 、deepseek 、qwen 等大模型

那么翻译的时候 先给大模型上下文句子,再让其解释单词, 最终 java 不会被解释为爪哇岛😂

同时考虑到一些非技术同学不会申请大模型的 api_key , 这里内置了官方云翻译服务, 可供大家免费试用(基于成本考虑,目前每人每天应该先用 100 次, 轻度使用,差不多是够用的)

增加长句翻译

但是在自测的时候,发现只翻译特定的词, 还不行, 有些是惯用语, 比如 blow up, 有些是这个句子实在是有点难, 每个词都翻译了还是不太懂。 只翻译特定词解决不了上面遇到的问题

因此又加上长句翻译, 但是为了鼓励自己继续阅读原文, 这里限制了翻译长句的最大长度, 最大 100 个单词, 主要是怕自己惯性偷懒,去默认选择翻译整个句子, 因此增加了翻译长句的使用成本: 必须要右键选择「翻译选中的文章」才生效.

增加简化翻译

是在 0.2 版本更新的, 谷歌商店在审核中,应该很快就能审核过

自己在使用下来,发现有些老外,写的文章,句子比较高级, 每个词都翻译成中文了,但是连起来还不懂, 想到陪小孩学英语、看书,最开始都是看的最简单的句子、最简单的词, 但是简单句和简单词也可以表达出很复杂的语义, 因此又做了一个小功能, 可以英文长难句简化 - 选中英文句子后右键菜单,用更简单的词汇和语法重写句子, 尽量让自己在英文语境中,不要跳出来

一些 TODO 的问题

自用下来还有一些其他小问题

  1. 目标语言只支持英文, 主要是对其他语言也不熟悉,这里先暂时只支持英文
  2. 有些页面中,词语离的太近,A 词先翻译, 再去翻译 B 词的时候,会导致 A 词的翻译被删除,但用起来整体影响不大
  3. 现阶段不支持服务端的数据统计, 这个后面找时间做, 但是应该很好玩
  4. 右键菜单不支持快捷键,导致频繁右键菜单, 这个后面也找时间做

小总结

该插件的最终目的是,希望自己能越来越少的用翻译软件,鼓励自己专注的阅读英文原文, 在阅读不那么痛苦的前提下,还能提高自己的英文水平

插件已上线 chrome 应用商店,完全免费, 欢迎大家体验并反馈建议

https://chromewebstore.google.com/detail/inline-translator/dibgmfcnacakfljgdglkeogencaaheeb

1527 次点击
所在节点    分享创造
9 条回复
ujfj1986
32 天前
https://ex.noerr.eu.org/t/1134678

我是这款小产品 Ries 的开发者 Orion ,感谢你对 Ries 的认可,并且对我们的小产品做了推荐,感谢你哟~

Ries 的产品理念对您有了启发,您也认同我们的理念,真的很开心,也祝您的产品大获成功~👍
yb2313
32 天前
有问题, 单个句子中的单词翻译后再双击其他单词就不翻译了
newsky
32 天前
@yb2313 我这边试了下, 没有复现,方便的话,给贴一个 URL 哈
flushEvt
31 天前
我试了一下,现在双击是会选中一个单词和单词后的一个空格,然后不会触发翻译,得需要再次双击才会完整选中单次。或者手动去给他选中
newsky
31 天前
@flushEvt 感谢反馈,在 windows 上试了下,复现出来了, 我是自己在 mac 上开发完,就上线了, 没有仔细测, 晚上我回去修复下 windows 下双击不会触发翻译的问题
oksocool
31 天前
newsky
31 天前
@oksocool 哈哈,思路一模一样 ,没有弹框
vvhy
31 天前
确实,感觉沉浸式翻译用多了英语水平反而下降了 🤔

想试用一下,有没有 Firefox 版本呢
newsky
29 天前
@flushEvt @yb2313 问题已修复, 可以再更新下插件试一试了哈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1139095

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX