GoldenDict-ng(Linux/macOS/Windows)基于Qt5.15.2/Qt6.X版本

CSS 加载有啥用。。是读取词典费时。懒加载还会减少短时间操作 DOM 的次数,理论上是能提升性能的。

影响性能的应该有两个部分:
1,页面的渲染
2,词典读取
上面的css可以延迟渲染。
词典读取,这个改动会多点,要向后排了。

1 个赞

其实我一直有个疑问,看 C++ 源码也许可以解决,但是我不会看。GD 读取 MDX 词头是走它自己缓存吗?也就是 GD 可以很快找到一个词头内容所在的块吗,而不是用算法查找词头信息块?

1 个赞

gd会对mdx建立自己的索引。记录各个词条在mdd中的位置。
内部用的Btree

2 个赞

分阶段加载的问题:

一是后面插入的script标签不会主动运行,虽然可以通过人为重新创建script标签解决,但这种方案会导致src外部脚本和内嵌脚本的执行顺序和预期不一致,结果有可能是内嵌脚本先执行,此时外部脚本还没有加载完成,然后内嵌脚本报错。

二是后面加载的script脚本,有很多词典是需要监听window.onload,或者 DOMContentLoaded之类的事件再执行,但分阶段加载页面的话,这些事件是不会触发的。即使可以手动触发这些事件,也需要先确定前面的脚本已经加载完成,如果使用addEventListener的话,还会导致前面加载脚本重复执行。

具体细节问题很多。

qt内置样式
goldendict.exe -style fusion
https://doc.qt.io/qt-5/qstyle.html#setting-a-style

1 个赞

The performance problem that affects me has actually piqued @xiaoyifang interest :v:

OMG, the performance of GD has been improved so much. Now GD takes only 5 seconds to render the entry “run”. Before that, it took almost 14 seconds to render that entry.

Thank you so much!!!

你用的是qt5的版本,还是qt6的版本,如果用的是qt5的,顺带试下qt6的版本显示是否正常
我这里两个版本都是正常的,应该还是跟字体设置有关系。

新增特性:


新增了一个词典备用字体设置的地方。

不过貌似需要先把全宋体的多个文件合并成一个(还是说其中哪个文件是包含所有全宋字体?)。

1 个赞

好的,一会来看看。

以后能增加一个词典重命名的功能吗?有的词典名称比较长,在GD中占地方多或显示不全,或者一个词典有多个版本,如果能重命名比较好区别

小众功能,后续看下吧,如果有简单实现,就处理下。

1 个赞

用的qt6.3,今天的版本,还是不行。设置了词典字体也没效果。

这个事不对啊,css已经指定显示字体,我不但安装了全宋体,还在词典文件夹内放了字体文件,但这个 GD 似乎不愿调用?
难道是因为我用的便携模式?

趁机呼吁一下:现在mdx工具书制作是八仙过海,各显神通,但存在不规范的问题。如果大家能像超星图书那样有个基本的命名方式,比如像这样:书名+作者+出版社+出版年份+版本号(或制作时间),这样就更好了。我是mdx小白,斗胆提出这种建议,有点不知天高地厚,望各路神仙谅解。

1 个赞

GD软件内置的繁简转换是否可以加强一下?好像内置的是OpenCC,但是某些词无法正确转换:比如查“丑宝”,GD无法转换成“丑寳”,猜测可能错误转成了“醜寳”,“丑”字即是本字,又是“醜”的简体字,也就导致仅收录该词繁体字头“丑寳”的词典查不到,比如“本草纲目”词典、汉语大词典、中文大辞典等。
试了官方OpenCC网页版也是如此:

TextPro则可以正确转换:
image

看到隔壁一篇帖子说如果可以支持自定义扩充转换表,或是换上TextPro的简繁转换模块就好了(这个改动比较大,估计不好弄。。)

GD使用的中文繁简模块有待增强 - GoldenDict - 掌上百科 - PDAWIKI - Powered by Discuz!

奇怪,我用的也是便携模式,可以正常显示:

是直接就能显示,还是做了什么设置?

安装了字体,打开GD直接就能显示。你装完全宋体,有没有把注册表的文件导入?

肯定导入了啊,499可以显示,上面楼有贴图。我现在不记得以前有没有进行过设置。

这个是opencc问题。如果确认丑宝有错。可以反馈到opencc。github