分享一个柯林斯词典 划词翻译的chrome扩展

#1

我在自己阅读英文文章、并从有道词典查询单词的过程中发现,相比于两三个中文字的单词意思解释,柯林斯词典提供了一定的英文语境可以帮我 更准确地 理解一个单词的意思,并加深记忆,我渐渐地也就变得只看柯林斯的解释。加之在chrome store上并没有搜到太多collins词典的扩展(FairyDict支持),于是便有了这个应用。

整个应用是react编写。

intro

这个扩展提供:

  • 划词即翻译
  • 按住(meta/ctrl)键 + 划词时翻译

两种选择。当然也可以关掉划词翻译。

前面说到FairyDict,这个扩展与FairyDict最大的不同在于这个扩展应用并不是用iframe直接访问词典页面。并且这个扩展也没有使用api请求数据,而是直接爬取页面获得数据,这样我就能自由的控制展现,让UI、体验更加简介而一致,并且理论上也不会被api访问次数所限制。

而js社区中好用的、css selectors形式的静态页面解析工具非cheerio莫属。但cheerio依赖node native模块,没办法直接用在Chrome Extension(或React Native)上。不过我之前稍微修改了cheerio的代码和它的依赖的代码 - cheerio-without-node-native,可以让我们充分利用在js客户端上爬取页面数据的能力。

对源码有兴趣的同学可以看这里:

感觉直接在客户端上爬取页面,可以做很多事情,而且连服务器都不用