无论是iOS还是Mac OS,词典的体验可以说确实甩其它系统一截。选中之后右键自带的查阅词典功能真的非常强大。
Win和Linux下我使用的是GoldenDict,功能上其实也非常强大,但不得不说的是,划词翻译功能真的相当不好用。默认的快捷键是C-c c
,先不谈和Emacs快捷键的冲突问题,我一开始试图把快捷键设置为F11
,但无论怎么按,都没有反应,后来才意识到,所谓的划词翻译功能,事实上是执行了“Goldendict搜索剪贴板上内容”这一操作,因此如果没有开头的C-c
,就不会有剪贴板内容,自然什么也查不到。私以为这样的设计实在是有点多此一举了,有隔靴搔痒之嫌。
Goldendict有一个非官方的Goldendict++版本,似乎支持更便捷的划词翻译,甚至还包括了OCR功能,但由于版权的原因,也颇受到原作者的一些谴责。
请问有什么能让Goldendict变得更好用,更顺手的方案吗?
我2013年给有道词典Linux版开发这个功能的时候就已经实现了全屏的取词:
- 根据光标的位置, 通过X11截取附近的图片
- 用 PaddleOCR 来分析附近图片的字体矩形块,然后和光标的坐标进行交叉对比
- 提取出光标的单词翻译即可
这种方式都不用划词, 软件也不需要做什么支持, 甚至是你打开一个KFC的图片都是可以做到实时取词的。
为什么我的goldendict和你的不一样,我的直接选中就会取词,试了一下浏览器和emacs,qt creator 都可以,不过我一般都是关闭的,取词弹窗太烦了,会和ide的弹窗冲突,需要了复制一下到词典app里查询也不麻烦吧
这个版本可以设置成这样来只从 x11 的 Selection 来滑词
抛砖引玉:一个配合 tesseract 用来的小脚本。
(p.s. 我觉得 “用 PaddleOCR 来分析附近图片的字体矩形块,然后和光标的坐标进行交叉对比” 可以作为单独的应用,获取文字结果后可以传入给任意的其它工具。)
#!/usr/bin/env bash
set -e
case $DESKTOP_SESSION in
sway)
grim -g "$(slurp)" /tmp/tmp.just_random_name.png
;;
plasmawayland | plasma)
spectacle --region --nonotify --background \
--output /tmp/tmp.just_random_name.png
;;
*)
echo "Failed to know desktop type"
exit 1
;;
esac
# note that tesseract will apppend .txt to output file
tesseract /tmp/tmp.just_random_name.png /tmp/tmp.just_random_name --oem 1 -l eng
goldendict "$(cat /tmp/tmp.just_random_name.txt)"
rm /tmp/tmp.just_random_name.png
rm /tmp/tmp.just_random_name.txt
这是在linux下独占的功能吗?Windows下没有相应的设置。