# 关于划译

浏览器环境下，在这里特指chrome/firefox等现代浏览器，提供了丰富的事件，如鼠标位置事件，选中事件等，使得实现如划译，或者是在特定区域弹出对话框等功能变得非常容易。

而在系统场景下，操作系统尤其是Windows并未提供**选中文本**这个**系统事件**供开发者响应。这使得CopyTranslator这种系统级的非侵入性翻译工具要实现划译变得非常困难。

金山词霸和有道词典和也是原生非侵入翻译工具，但是他们在某种程度实现了划译这个功能，确实非常厉害，但是其背后的原理，一直未曾公开。据我了解，暂未有开源的实现，也可能是我孤陋寡闻，如果你知道有的话，可以跟我反映。


## 有道词典
以下使用四张图解释有道词典划译的实现原理

有道划词翻译-拖拽一定时长触发
![QdVpa8.gif](https://s2.ax1x.com/2019/12/08/QdVpa8.gif)

有道划词翻译-按住不移动释放时不触发
![QdExqP.gif](https://s2.ax1x.com/2019/12/08/QdExqP.gif)

有道划词翻译-按住移动释放时触发
![QdVSVf.gif](https://s2.ax1x.com/2019/12/08/QdVSVf.gif)

有道划词翻译-双击时触发
![QdEjKI.gif](https://s2.ax1x.com/2019/12/08/QdEjKI.gif)

可见有道词典的所谓划词并非真正意义上的划词，其触发条件为

1. 鼠标拖拽一定时长，一定距离。
2. 双击

