Dictol: 又一个mdx查看软件

几年前买了mac版的欧路增强版,安装了几个词典凑合在用,直到从这个论坛看到了牛津词典。之后就感觉欧路软件的界面交互已经配不上这个词典了。于是按照自己的喜好vibecode了又一个词典软件。在制作过程中,发现除了几个著名的客户端之外,也有好几个同类的软件了。它们在索引、查词方面确实优于我的版本,但在交互上,还是自己的版本贴合自己的习惯。

先分享下载链接:https://github.com/manxingxing/dictol/releases 支持mac(intel, apple),windows。所采用的技术栈(electron)本身支持 linux,只是我没有linux环境测试,所以没有发布安装程序。由于electron会打包一个 chromium,所以安装包体积较其他软件大许多。

应用介绍

多词典tab和浮动工具栏

与欧路不同,采用了tab是为了

  • 更好的控制页面效果,避免词典间样式冲突
  • 词条内跳转更容易找(在欧路这种列出所有词典内容的布局里,如果在下面词典里点击词条跳转后,需要再次滚动到页面下面)
  • 在展开折叠项时避免出现双滚动条

缺点也显而易见: 对于安装有很多词典的用户不友好。我引入了紧凑布局,可编辑的词典名称,尽量让词典tab栏容纳更多的词典。

快捷键取词与划词工具栏

选词后按下绑定的快捷键会出现查词弹窗。或者开启划词工具栏后,自动出现工具栏。划词工具栏支持排除特定应用。

跨应用划词工具栏与词典解释浮窗

在线词典并排显示

鉴于很多在线词典都支持url上带查询词的方式查词,我引入了在线词典,与mdx词典解释界面并排显示。这个“内置”的浏览器额外屏蔽了几个常见的广告商域名。

AI 解释面板和弹窗

启用AI功能并填写 API KEY后,就可以

  1. 在侧边面板查看当前词的AI解释(主要支持中、英, 其他语言未测试)
  2. 选择词典解释区的内容,调用AI解释
  3. 在其他软件选择文本,在弹窗中查看AI解释
  4. 一个简单的AI翻译界面

接入微软 Edge TTS 音频

有些词典会调用微软TTS接口朗读例句。由于微软接口的变更,词典侧的方案已经不再有用。所以在软件侧接入了微软Edge TTS API,供词典侧调用。同时也暴露了一个方法给词典侧js调用(window.playTTS(text, 'en-GB-RyanNeural'),第二个参数是edge TTS 的音色),有动手能力的可以修改词典js,修复坏掉的TTS朗读功能。

自定义CSS样式

很多词典没有适配 darkmode,或者排版有些微小的瑕疵。所以实现了自定义CSS的功能。你可以让AI为你的词典生成一份dark mode下的配色,让你拥有完整的dark mode体验。欧路词典为一些词典内置了适配样式,有动手能力的也可以从欧路词典里取出来。

感谢楼主制作新的程序,看起来颜值不错,试了下,发现没有扫描词库目录的功能,只能通过导入mdx文件来导入词库。希望也增加词库分组的功能,电脑上存的词库太多,都在一个分组不便于分类管理。

请问词库导入后,数据是存放在哪里?

外研社英汉多功能词典 mdx 的义项导航编号,点击没反应。在其他查词软件如GD-ng和DictTango上都没问题

谢谢你的测试。

“义项导航编号”点击没反应的问题已修复,发布为0.2.0版。原因是之前解析资源的方式使得浏览器自身的hash导航失效了,所以重构了资源的解析方式。由于没有自动更新机制,只能再安装一次。mac下相应的权限需要再次授权。

另外,在词典列表项添加了“打开词典目录”菜单项,点击后会打开到词典的存储位置。

试了最新版,原来导入的词库都会复制一份文件保存在C:\Users<用户名>\AppData\Roaming\dictol\Dictionaries下。希望能支持自定义词典目录,直接调用词库所在的原目录,而不是复制一份重复文件到此app目录下。希望增加扫描词库文件夹的功能和词库分组的功能,谢谢。

"复制一份“是一个设计决定,这个不会改变。由于词典制作良莠不齐(例如有些词库并没有把字体打包在内,或者内置js需要修改),在设计时,支持用相同路径和名称的文件覆盖mdd里的资源,所以每个词库需要有自己稳定的目录。批量导入词库对初次使用确实有帮助,具体功能设计,我还没想好。

关于词库分组功能,我还在犹豫。对于欧路,goldendict 这类平铺下来的布局,分组可以减少页面干扰,但对我这种tab布局的并不适用。所以短期内没有实现这个功能的计划。

还是不太明白,每次词库是有自己稳定目录的,css和js需要修改时,直接修改文件就行了。像GD-ng、DictTango、欧路等几乎所有这些词典app也都是支持自定义词库扫描目录的,也都不需要复制一份到自身应用目录下的。您这个词典app在Windows上体验用下来算是颜值最高的之一了,不支持直接调用原目录的文件有点可惜。我电脑上装了上千部词典,加起来好几百G了,如果每个词库都再复制一份数据,那硬盘就装不下了。至于词库分组功能,也是为了更好地管理这上千部词典。虽然有tab的设计很方便,但如果查询结果有几百部词典,顶部密密麻麻的tab也很恐怖的,词典也不好找的。分组设计能把同类词典(比如同语种的词典或者同功能的词典)归集在一起,方便查找和管理。也可以按照使用场景来分组,用于快捷查词的词典放一组,可能只放10部左右,只放查得率最高的词典,为了阅读文章时快速了解生词使用。把词汇研究和用法搭配一类的词典单独放一组,用来学习记忆和研究使用。

刚发布了 v0.2.2 版本。

  1. 导入词典时,允许不复制到应用目录。但目前仍需要逐个词典添加
  2. 词典 tab使用词典图标,减少空间占用
  3. 支持 dictol://search?term=xxx deeplink。在mac上配合shortcuts可以实现简易的截图取词
  4. 增加词典信息弹窗

你说的有道理。扫描目录自动导入和分组功能都有道理。但是这需要些时间。目前应用把词条和位置存进去了db(有几个AI作的mdict软件也采用了同样方式),牛津这种大词库要等待数秒,据此推算,几十G的目录可能要一分钟以上了。我需要修改索引的方式,要么不建索引直接使用mdx里的keyindex信息,要么像 goldendict一样建立自己的索引文件。这个重构动作比较大。我还没有想清楚。

过去两个月我试用过很多软件, goldendict-ng, aalookup, medict, DictTango Windows, 一典,词悦。看你的需求,感觉 goldendict-ng 依然是最合适你的(除了它丑陋的查词弹窗)。

竟然还有断网不能查询的情况…

怎么可能。除了AI功能外,都没联过网。

妈呀,好像真的是。。。一直没发现。估计是框架配置哪里出问题了。我修好了再来回复

感谢反馈。这bug令人哭笑不得。

已重新发布 v0.2.3。另外已知AI功能仅在 deepseek 下工作良好,其他很多都不理想(报错或者慢)。正在研究改善。

发布了 v0.2.6 版本。是个大的更新,更改了索引的方式

  1. 废弃之前用db存储词条位置的方案,改用索引文件。安装后会有迁移指引。牛津词典大概需要4s,词典多的话可能要些时间(索引-验证-删旧索引)
  2. 添加css调试实时预览编辑窗口
  3. 支持扫描文件夹批量添加,递归寻找mdx文件,并将其所在目录作为资源目录。一个目录下只能有一个mdx文件。重复导入会忽略已导入的词典
  4. 支持词典组管理词典。支持查词组、取词组设置。组内支持排序
  5. 支持像大多数词典一样的竖向平铺布局。尽量隔离css样式,重写url路径。已经能还原词典原貌。但如果词典间存在js冲突的话,是无法避免的。这是采用这种布局的软件无法避免的问题
  6. 多词典结果一起展示时,支持横向卡片展示词典结果。便于对比词典
  7. 查词获取候选时,prefix查询没有结果时,会fallback到fuzzy查询,实现自动纠正的效果。支持 ?, * 通配符(但不能以它们开头)

下面一些截图:

用了最新版,目前还是没发现这个选项,导入词典时还是会把词典文件复制一份到app目录下

最新版是 v0.2.6

哦看到了,竟然没有发现。。 谢谢!!请问这个软件可以提供绿色便携版吗 方便以后重装系统的时候直接使用。另外,不知道能否支持Ctrl+C+C快捷查词、简繁通搜以及浏览词典词条的功能。

可以提供绿色便携版吗

不会,这个是真不会。这是macos, windows 跨平台的软件,我不愿意为windows专门做这个

Ctrl+C+C快捷查词

本来有快捷键搜索。选择文本后按快捷键可以出现弹窗。快捷支持自定义。但这种含两个字母的组合估计不行

简繁通搜

这个有用。暂时还不不知道怎么实现。得问问 AI :melting_face:

浏览词典词条

这个我考虑过。有计划添加到词典配置页。麻烦的是不确定加载性能如何。我用的前端技术做的,渲染大列表性能比不上原生技术实现的其他软件。得评估性能在可接受范围内后才会发布。

那可以指定app的数据文件夹不?把app设置、词典分组配置、索引等是否可以存放在自定义文件夹路径?主要是重装系统后,这些配置在C盘会丢

也不会。我还没见过提供这种配置的mac软件。我用的mac,几乎从来没重装过。上次重装windows也是十几年前了。

尽管如此,我仍然欢迎你提词典核心功能体验上的建议哈。

另,代码是开源在github上的,你也可以下载到本地,找个ai帮你改成你想要的样子。最近加的功能95%都是AI写的,我只管交互和数据流程。昨晚用两个小时,AI就帮我基于dictol的mdx解析器写了一个mac 原生的词典界面(图片,音频,跳转都完成的很好)。愿意花点token,它能帮你改成任何样子。