前文提要:
之前我想记录 goldendict 查过的单词信息和分页显示不同的collections的问题。
我尝试了多种方式,具体是那些暂时略过不表。
后来经过@ 独一无二的提醒goldendict 支持的词典来源外置程序。昨晚花了两个小时的实验和代码编写很快就实现了我想要的功能。
这个程序只有一个基本的功能:*对查过的每一个单词进行记录。
现在记录的信息有:查询次数,第一次查词时间,上一次查词时间。
为了不重复记录没有意义的次数和点击,10分钟以内的查询都不计数。
数据我记录在和程序同一目录的 record.db 里面(一个sqlite 文件)。
之前我看过有不少的用户反应外置词典链接的功能会非常影响查词体验。这其实就是网络请求远程的词典网站导致返回查询结果过长的问题。
我实验了一下,一般情况下,超过 400ms 会感到卡顿,要想对不影响软件原有查词体验,需要做到 200 ms以内返回结果。本地的程序做到这个返回速度是不难的。即使sqlite里面有100万条以上数据,更新和查询两次操作也可以做到 200ms 以内返回。
PS:1秒 = 1000ms
另外我实验了自己写一个程序去支持 goldendict 的 websites 数据源,返回速度可以做到更快。可玩性更高,并且可做的事情更多,比如为每一个单词添加笔记并保存,下次查询时自动显示出来。返回速度可以做到完全不影响原有查词体验。但 goldendict 这一块的功能有点问题,我能将数据返回给前端的浏览器界面,但前端的 iframe 显示有点问题,有知道解决外置词典服务器返回结果显示问题的同学可以回帖说一下。自己做一个词典服务器可以比一个单独的小程序返回更快。
以下是我的使用截图:
使用方式:
在goldendict里面的 词典来源-----程序 加上我这个小程序的路径和 %GDWORD% 建议和你的词典数据文件放同一个目录。(现在暂时支持windows,有需要 mac 和 linux 的可以说一下)
比如你的词典目录在 C:\goldendict\contents
把我这个程序复制进去,(32位机器用 pickax_32.exe), 然后添加路径位为(程序路径和%GDWORD%之间加空格):
C:\goldendict\contents\piackax.exe %GDWORD%
下图是我的设置
然后在collection里把它加入到显示的词典里
下面是我的两个程序。
pickax.zip (7.0 MB)