背景
最近在站内看到了好几个学英语、翻译相关的插件或软件, 比如:
- https://www.v2ex.com/t/1134678?p=3#reply346https://www.v2ex.com/t/1135237https://www.v2ex.com/t/1132285#reply37
大家做了不同方向的探索,都非常有启发性,其中一篇说到, 要遵循"可理解输入"的方式去学英语的文章, 非常认可,因为理解了,再学习就不会无聊, 也没那么痛苦。
我的停滞不前的学英语方式
回顾最近几年在 GitHub 或 Hacker News 上看英文文章的经历,虽然阅读量不少,但英文水平并没有显著提升, 还是很菜, 有些惭愧也用 anki 背过一段单词, 坚持了 3 个月,后来工作忙, 停下来,也放弃了
现在日常使用的主力翻译软件, 有两款:
- Bob: 通过快捷键非常方便的弹框, 展示词语、句子的翻译,还可以配置不同大模型, 还可以自定义 Prompt , 而我自定义了一个进行词语解释,同义词介绍、常用短语介绍的 Prompt , 非常方便沉浸式翻译: 相比谷歌翻译, 沉浸式翻译给了我很强大的安全感, 上面英文、下面中文,让我感觉可控
通过上述两款软件, 显著提高了阅读英文文章的效率,极大的减少了自己看英文文章的恐惧心理, 还是非常感激这么优秀的软件
但也导致自己对上述两个软件有很强的依赖, 遇到相对生词较多的文章, 直接打开沉浸式翻译,翻译原文, 很快就把中文译文阅读完毕。虽然英文原句就在中文句子的上面, 但是在 99%的情况下, 我不会再看英文原文, 因为自己阅读太慢了, 各种不认识的单词, 还要来回对照下面中文译文。 如果强制让自己看英文, 很明显的感觉到自己很不爽
而 Bob 是在页面上直接弹框, 对该词进行解释, 但是弹框太打断阅读了, 本来自己读的就慢, 还需要频繁的弹框, 虽然能固定一直展示窗口, 但是还需要从原文和弹框之间来回切换。 阅读的注意力会被频繁的打断, 到最后就直接切换成沉浸式翻译了。
所以现在大多数情况下, 我用沉浸式翻译来阅读英文文章, 且越来越依赖, 正常来讲,翻译软件的使用应该是随着时间变化,自身英文能力有提升,翻译工具用的越来越少才对, 可事实上却不是这样的
自己的反思
因此也反思 是不是自己用的姿势不对, 毕竟大家都是这么用的。 也在想是不是还有更好的方式, 怎么才能既坚持阅读原文, 又不频繁打断注意力, 将精力关注在英文原文上。
像我们并不是所有的英文单词都不会,一般大家都至少会有几千单词的词汇量, 而这些词汇量已经能阅读一些简单的英文文章, 如果一些英文生词我们不会, 是不是在直接在页面中将该生词翻译中文,没有弹框, 我们就能更流畅地阅读?
受站内翻译插件启发
即把纯英文文章, 转换为中英文夹杂的文章, 尽量不打断注意力,会不会效果更好, 那怎么做呢:
因此想到了一种有趣的"内联翻译"方式:
- 直接在单词后面插入括号翻译,保持阅读连贯性 专注单个英文单词翻译,简单纯粹双击选中单词即翻译,点击即删除,极其简单翻译文本淡色显示,不影响主要阅读流程
核心是做到轻度翻译, 去引导自己阅读英文原文,保持阅读英文原文的专注度,遇到不会的单词,哪里不会点哪里, 而自己阅读的专注性,要一直在英文的原文上, 做到对英文原文的输入。
实现了一款哪里不会点哪里的 Chrome 插件
思路有了后, 剩下的就是做了, 因此抽了几天时间, 很快完成了这款 极简主义翻译工具 "Inline Translator -- 内联翻译":
操作方式:
通过即时、轻量地翻译生词,使得原本有难度的英文材料变得更容易理解,从而在不打断阅读流的情况下,自然地吸收和学习。
开发过程的细节
起初只支持谷歌免费翻译
默认是直接用的谷歌翻译 API 接口,翻译效果在一些场景下可能会效果一般, 但胜在免费+快, 自己用起来, 还是非常好玩的, 哪里不会点哪里, 自己的关注点会一直在英文原文的上下文中, 如果翻译的单词太多, 还可以右键全部清空翻译
顺便支持了翻译成其他语言
同时做了简单的国际化操作, 不仅可以翻译成中文, 也可以翻译为其他语言,比如日文,韩文等
其中限制只能翻译单个单词,主要为了保持功能简单
增加上下文翻译(基于大模型)
我自用过程中,发现有些词在特定的句子中,有不同的含义,现在没有考虑上下文,导致特殊情况下单词翻译很差, 比如java, 翻译成爪哇岛,很不能忍。
而大模型 deepseek 这些,很擅长基于整个句子来解释单词。 因此又引入了基于大模型的上下文翻译,启用上下文翻译后,再配置好自己的大模型 api_key, 就可以让大模型基于句子的上下文来翻译我们指定的单词, 现在已支持使用自己的 api_key 选择 openai 、deepseek 、qwen 等大模型
那么翻译的时候 先给大模型上下文句子,再让其解释单词, 最终 java
不会被解释为爪哇岛😂
同时考虑到一些非技术同学不会申请大模型的 api_key , 这里内置了官方云翻译服务, 可供大家免费试用(基于成本考虑,目前每人每天应该先用 100 次, 轻度使用,差不多是够用的)
增加长句翻译
但是在自测的时候,发现只翻译特定的词, 还不行, 有些是惯用语, 比如 blow up, 有些是这个句子实在是有点难, 每个词都翻译了还是不太懂。 只翻译特定词解决不了上面遇到的问题
因此又加上长句翻译, 但是为了鼓励自己继续阅读原文, 这里限制了翻译长句的最大长度, 最大 100 个单词, 主要是怕自己惯性偷懒,去默认选择翻译整个句子, 因此增加了翻译长句的使用成本: 必须要右键选择「翻译选中的文章」才生效.
增加简化翻译
是在 0.2 版本更新的, 谷歌商店在审核中,应该很快就能审核过
自己在使用下来,发现有些老外,写的文章,句子比较高级, 每个词都翻译成中文了,但是连起来还不懂, 想到陪小孩学英语、看书,最开始都是看的最简单的句子、最简单的词, 但是简单句和简单词也可以表达出很复杂的语义, 因此又做了一个小功能, 可以英文长难句简化 - 选中英文句子后右键菜单,用更简单的词汇和语法重写句子, 尽量让自己在英文语境中,不要跳出来
一些 TODO 的问题
自用下来还有一些其他小问题
- 目标语言只支持英文, 主要是对其他语言也不熟悉,这里先暂时只支持英文有些页面中,词语离的太近,A 词先翻译, 再去翻译 B 词的时候,会导致 A 词的翻译被删除,但用起来整体影响不大现阶段不支持服务端的数据统计, 这个后面找时间做, 但是应该很好玩右键菜单不支持快捷键,导致频繁右键菜单, 这个后面也找时间做
小总结
该插件的最终目的是,希望自己能越来越少的用翻译软件,鼓励自己专注的阅读英文原文, 在阅读不那么痛苦的前提下,还能提高自己的英文水平
插件已上线 chrome 应用商店,完全免费, 欢迎大家体验并反馈建议
https://chromewebstore.google.com/detail/inline-translator/dibgmfcnacakfljgdglkeogencaaheeb