|

匿名
发表于 2021-9-27 14:55:54
本帖最后由 匿名 于 2021-9-27 14:57 编辑
* n% l9 ~/ T8 C5 Y7 X$ U$ g1 B+ \# \! _( ? o9 @# o
0 d/ F; R a- f) e: p4 O4 c2 S
GoldenDict++的维护越来越慢,在nonwill授意下群里曾讨论过以其源码与官方GD合并,
9 `; L3 w2 T7 T' {; o3 e0 M但两个版本的代码已经完全无法兼并,俄大那边不会接受将其合并到官方主干中去,
, ?+ x/ j4 y& v g2 c( f7 }又考虑到官方主干分支仅是不痛不痒的维护,发布方式对国内的用户很不友好,1 ?6 d1 m, N& C
但n大现在并不同意在官方仓库以外将GD++代码完全开放出去,最终不了了之,' ]7 g2 D- e; F. [
- d0 L- b0 p- G% M1 @6 Y看咱论坛GD区的过往帖子,有很多有能力维护GD包括GD++的网友,
9 e2 z; w- C4 Z5 P+ ?+ P3 I2 V2 w楼主可以呼吁一下的,只要不是在闷声发大财的,偶尔贡献一下,对社区都是福报
* l9 B" W7 `2 r* t" s6 G: U
" M8 c C7 S' l( k5 R. M" d
" J7 K' O1 I- f' r2 A# H2021.9.26 2A40:修正No such signal Programs::RunInstance::finished(QByteArray,QString)(使用音频类型的程序词典可能内存泄漏)的问题;依赖库升级:
, |) }! R* O: l! A t+ dleptonica 1.82.0。
/ f' r0 W: @; p/ f* Y- _, ]$ F
0 ` w( k! q' S6 c$ T5 u, m4 M+ f2021.9.21 2A3F:修正首选项设置中触摸屏手势选项Tooltip的内容错误问题(感谢学友ELephANt的反馈);修正.zips音频档词典中无名文件(文件名为.后缀)不被检索查询的问题,从索引中排除不含有未名文件的文件夹路径;修正.zips音频档词典存在分类目录时,词条检索不到的问题;在帮助菜单下增加打开缓存目录菜单项(以便于用户查看或删除程序运行时生成的缓存文件);修正缓存目录(在Linux平台)可能被系统自动删除的问题(使用标准接口获取应用的缓存目录);修正音频文件目录(内的文件)有更新但索引不更新的问题;依赖库升级(libTIFF v4.3.0);portable模式下,morphology目录无效时反馈建议的目录信息,修正如文件系统中不存在content目录或某个自定义目录时依根目录的词典自动分组操作无效或结果错误的问题;portable模式下废弃特定的content词典目录和portable目录(非portable模式下用户应用配置目录GoldenDict文件夹)下特定的index索引目录 — portable目录(或用户应用配置目录GoldenDict文件夹)下仅用于存储用户配置文件:2 f% p9 |, J& d8 Y- ~8 I
如已习惯在portable模式下将词典文件存放在GoldenDict程序所在目录下的content文件夹,则需要在编辑菜单辞书项打开的对话框的文件页面中添加该目录,同时勾选递归搜索(生成的索引文件将存放在content目录下的.gdindex文件夹中);不建议继续将辞书文件存放在GoldenDict程序所在目录下的content文件夹中。; S3 q, ?0 X! M) |8 \
非portable模式索引文件存储同portable模式一样 — 但生成辞书ID时使用绝对目录;非portable模式下每个系统用户拥有自己的配置文件;在添加相同的自定义辞书目录时不会重复生成索引文件。
* T* q Z" @( ? M# O: H该索引机制的主要优点是,词典目录中的词典包括索引文件均可在网络用户或不同的本地用户间共享。
9 k( C2 [8 w0 c9 g7 e除配置文件存储位置不同外,在用户体验上已无portable和非portable模式的差异。
$ I# R! B' H3 H2 `' X注意:如果程序对自定义辞书目录下的.gdindex目录没有读取或写入权限,则在GoldenDict++所使用的临时目录下创建索引文件夹。升级到该版本后的首次运行,portable模式时运行目录下content文件夹中的辞书会被重新索引一次。0 w: Y' m2 `+ C. j& M) l' ]3 ~, W
.zips音频档检索问题详见讨论 Is it possible support zipped sound dir? and how?:问题修正后所有文件均可被索引查询,压缩档中根目录下的无名文件对应的索引字头为/,压缩档中特定路径下的无名文件对应的索引字头为路径/,即可按单词或文件名模糊检索,又可按所在目录路径/文件名精准检索。
% z% u c R( V" \+ S4 }
* d0 H$ ~1 x( B2 D% |6 V: G2021.9.6 2A3E:清理(彻底删除)无效代码(不再保留仅有参考意义的官版兼容及Windows Hook(鼠标取词支持)等相关的代码);OpenCC: 代码、转换用数据文件升级至1.1.3,项目文件更新(实现对在代码编译后自动生成并发布索引文件(ocd等)的支持);修正在Linux系统下选中取词功能时Ctrl+C触发取词的问题:
% c1 ?' `' i$ {! S' v" ~问题描述:if scan pop-up is enabled, then ctrl+c of anything will be looked up in goldendict. For example, if you ctrl+c copy a file, the directory of the file will be looked up.1 ~/ w7 v# ~9 ?0 L9 U- [7 a
/ y e, }( E+ o) z% n
2021.8.31 2A3D:迁移开发工具MSVC-2019到16.11.2(运行时库更新),依赖库升级;变量更名internalPlayerBackend=>pronouncer(受其影响,升级后须在首选项的音频页面重新选择一下音频播放引擎 — 默认仅需打开首选项对话框点击OK按钮即可);修正访问网络资源或Web型词典时重定向url为相对路径时跳转失败的问题;强化对不使用浏览器标志(UA)的处理;修正mdx格式词典一次查询返回多段文档(关联或构词的内容)时,前后两个词头文档内容的尾首可能粘合在一起(表现为衔接内容未分段)的问题;对网站型词典(未勾选作为链接)可能发生的重定向次数做限制(超10次则报错),同时修正返回内容的html头中含<meta http-equiv=refresh content="秒数; url=目标链接">时目标链接内容不能正确加载(跳转失败)的问题:& u) m! V/ V, s. d# a0 e
错误信息:协议“gdlookup”是未知的 Failed to load URL gdlookup://localhost/目标链接. QtNetwork Error 301。0 o6 Z# e9 Q% _6 H5 D3 G* b: E
当有自定义User-Agent内容时,则用自定义内容完整替换NetworkRequest的User-Agent(伪装成其它浏览器),否则仅从NetworkRequest的User-Agent中删除软件应用标志(与官版GD兼容);注意:当前的不使用浏览器标志(UA)及其自定义的User-Agent的处理对MediaWiki型词典和未勾选作为链接的Web网站型词典无效(适用范围同官版GD)。
8 ]4 X5 w" G8 O" F- ^% P依赖库 Change log:libwebp-1.2.1、openssl-1.1.1l、tesseract-ocr、openssl-1.0.2za、bzip2-1.0.8% Q5 |( ?( [$ {* a4 b
' W8 q; ~- j) j: ^( m5 j v. b2021.8.20 2A3C:修正portable模式下自定义(外置)词典目录改变并重新添加后,其下词典被重新索引的问题(感谢学友Jonah Wong的反馈):7 k. v. o3 b/ h# r7 W
无论是查词还是全文搜索,真真正正的索引一次,随处可用!只要运行在portable模式即可!( g' u5 c& T5 m! h; X% P- Q. o
影响:因改变了portable模式运行时词典ID的生成算法(使用词典文件相对于索引目录的相对路径),从低版本升级上来时,portable模式下所有的本地(文件)词典(morphology除外)的ID会被重新生成,故词典都会被重新索引一次(在词典较多时首次启动耗时会较长);如在不同的自定义词典目录中存在相同文件名的词典,且每份词典相对于其所在自定义词典目录的位置均相同(相对路径均相同),则这些词典的ID是一样的(尽管每一份词典的内容可能是不一致的,但均会被认为是同一部词典) — 仅有最先被索引的词典被认可(参与查询),如需避免这种情况,将同一词典的不同拷贝放置在不同的文件夹(路径)下或简单修改词典文件名即可。" q" I% g2 S7 i4 X) r- N
g; \6 Y1 t/ G/ W2021.8.13 2A3B:mdx格式词典mdd资源文件中的未压缩数据在读取时将被直接引用;修正Favorites栏自建文件夹下的词条不被判定为已收藏词条的问题(点不亮收藏按钮的蓝色标星,感谢学友Hiro@icloud的反馈);迁移开发工具MSVC-2019到16.11.0;修正不同分辨率下Popup窗体工具栏的搜索框和群组框高度违和(与工具栏上其它按钮高度不一致)的问题。
* q" \# T/ K0 D! T" _( i0 B在不同分辨率(+dpi)的显示器上工具栏的高度是不一样的,同一尺寸的显示器,分辨率越低工具栏看起来可能越ugly,这种情况,可根据显示参数,通过Qt的自定义样式表去设定这个工具栏和其上按钮等界面元素的高度。
! I& f& j7 U _. Q# Tmdd中的资源文件,部分文件可能是未被压缩过的,如png图形文件,在读取这些文件时不会再产生中间数据的拷贝;对含有未被压缩数据(如高分辨率的png格式文件)的mdict(图形)词典将有显著的效率提升。0 Q( l/ p& J0 R% ^+ b
6 V& z5 r7 `8 b5 R4 h4 P
2021.8.9 2A3A:链接提示信息中包含页面内#锚点信息;增强对anchor跨页面(词条)#锚点的处理;带#锚点的链接词条与本页词条相同时,不再重新查询,而是直接页内跳转;调整zim格式词典的内置样式表以修正最新的Wiki类型词典页面宽度不能满屏的问题;修正zim格式词典的查询内容,点击带页面内锚点跳转出错的问题,同时增加对该格式词典的页面内锚点的支持;为Linux版本开放bass发音引擎;对文档html的body增加id="gdpp-theme-(主题标志)"属性信息,以适应词典对不同主题定制与主题一致的css显示样式;消除js脚本和css样式文件在读取时的中间内容拷贝以减少查询时的时间和硬件资源消耗;起始页、帮助页和新建页(均无用户词典内容)中不再加载用户级别js和css文件内容;扩展原有的用户级别全局js脚本功能为用户级全局HEAD元素内容(User-level’s Html HEAD Elements)文件:
: p" T% k: s! R% huser.gjs文件的内容不再仅限于js脚本,符合HTML标准的head元素均可。
) B' V9 H9 r5 [8 [2 d如在此前版本中已使用全局user.gjs功能,升级时需对该文件内容做一点儿小改:在起始插入<script>,末尾追加</script>即可。
9 V# f$ ]! q! o+ }- Z* H, H8 w7 ]修正锚跳错误: 协议“gdlookup”是未知的 Failed to load URL gdlookup://localhost/锚点词头#锚点; ~- C2 k5 e" b- x/ Z3 w
完美支持当前词头(锚点词头)页面内锚点的跳转,阅读zim档案的Wiki系辞书内容(强烈推荐)越来越方便了;
- c" B3 l$ ~, R5 D: E5 i% p7 {0 ?: f注意:因多词典内容同时展示时相互间不能有效的隔离HTML元素及属性内容,GD++(包括原版GD)的页面内锚点的支持是不完美的,故对zim格式现有的修订只能支持到锚点单词与当前文档词头相同的情况,当锚点词头与当前词头所查得的内容不同时,锚点的点击可能会是无效的。, r& [& b: ]" q# o
4 b2 X1 o: I0 e' f+ h
2021.8.6 2A39:在xdxf格式词典的文档处理过程中数据内容不再转换为中间编码UTF16字串(直接处理utf8)以提升效率;修正收起大于[…]字符的文章功能对mdx格式词典无效的问题;下载或保存文章时的文件资源在保存时不再产生内容数据的临时拷贝、通过带入长度参数优化查询内容拼接过程中常量字符串的处理、优化查询内容拼接过程中临时变量的生命周期(适当外延、正则结果引用)、资源处理过程中mdx等格式词典css样式表的隔离处理不再产生中间内容(处理时引用源字符串中的子串)、全文搜索时查询结果的排序方法中不再生成中间内容(处理时引用词头字符串的子串)、显式优化Qt的字符串拼接以提升查询结果(文档和文件内容)的处理效率:
- Q: h6 g5 h- }9 F+ O. a0 K7 w/ g代码层面的优化:尽可能的使用已有内容的引用,通过容器再用来减少内存再分配的次数,定长内容在拼接时通过传入长度参数来减少拼接时间或中间变量的生成。在代码中直接调用QStringBuilder方法拼接字符串以避免歧义。查询效率提升显著 — 对离线词典,即便是词典较多,查询可以瞬间出结果(内容瞬时展现出来)。
5 Z/ c( C' E8 }3 F* t排除掉网络类型(包括需要联网获取数据的程序类型)的词典,如果说还有什么性能瓶颈,那就是一些内容结构复杂且使用了未经优化的css样式和js脚本的mdx格式词典了 — 部分质量低劣的mdx词典内容中甚至包含了百度站长工具、谷歌统计工具、广告平台等功能代码(查询时产生额外的联网请求数据和执行脚本的消耗,如存在恶意脚本或引发程序功能错误) — 多为爬网的数据未做清洗,个别或是词典制作者主动加入,请审慎对待这类词典。7 k3 u# ?9 e7 k8 E7 p8 d" A
8 X1 G' l1 c/ R7 A& P2021.7.28 2A38:主题样式表优化(去冗余),修正深色主题样式表中的错误项;在查无内容的建议页或空(无内容)页不再展示GD++的帮助导航内容(iframe页内容);对常用到的字符串变量执行先期全局初始化以提高查询效率;规范并固化版本号机制;迁移开发工具MSVC-2019到16.10.4;对自2A24版本始添加的护学模块加入编译期配置参数,默认选项下对应的功能代码及库文件不再参与编译。
+ n, c4 I3 q% a' A3 ~" H1 c固化GD++的帮助导航内容(iframe页内容)功能:导航主用于快速访问GD++的帮助网页和新版本检测,启动时首页显示,新建页面仅在当前GD++有更新时显示。
/ ], F- m0 N* O) h& D0 W全局初始化后的常用字符串变量,在运行时会被直接引用 — 不会再有或减少了临时的初始化或复制消耗,在提升效率的同时降低CPU占用;在老旧配置的机器上会有较明显的查询体验提升。. V: c7 u- E+ v# s
自该版本始不再对分享版的GD++开放护学功能(对查询效率、内容展示等程序运行时态无影响)。* ?. E0 ^# z. T f* \0 i$ W
) C- n" D& P, J( m0 Q
2021.7.25 2A37:优化查询内容中的 js 脚本;剪裁掉tesseract-ocr中的多余功能(提升效率同时减小体积和运行时内存占用),改用静态编译以提升划词插件运行效率;更新tesseract-ocr以解决系统资源(信号量、互斥锁等的句柄/内存)泄露问题。3 g. |& z) {7 T: l1 {3 ~( C, b
2021.7.20 2A36:UI 部分代码 Review,清理(注释/删除)无效/无意义/冗余代码,个别接口向 Qt6 做兼容修订;当前为最新版本时新建页面中不再展示GD++的帮助导航内容(iframe页内容);Popoup窗体初始化时不再加载 Blank Page 初始内容及GD++的帮助导航内容(iframe页内容):) d2 l( b$ p9 h2 K! l3 T) V
Popoup窗体的WebView仅创建一次,且在显示时几乎总是加载有查询内容,故初始页面内容对用户是不可见的,也不会如在主窗口中新建页面时带来明显的 flicker% ]+ I( I4 i- U. X. t! I3 U& k) m8 z8 W
0 A8 j2 L; l; p4 N5 M3 w; D' C2021.7.4 2A35:修正Popup弹窗的当前词典分组中的已排除词典可能无效(已muted词典仍然参与查询)的问题(确保Popup弹窗的词典工具栏不显示时当前词典分组的已排除词典设定有效);提升Popup窗口查询速度(避免在快捷查询时不必要的词头匹配耗时及高CPU等硬件资源占用);增加文章视图操作快捷键Alt+T以快速定位到文章顶部(定位到第一部辞书):. P" | _ u. ^" r
与官方Add an option to avoid auto-scrolling out of top dictionary的设计思路和实现都不同 — (GD++中)不做过多的冗余实现(保留原有的默认定位到原文章中当前辞书的行为),在需要显示第一本辞书内容(定位到文章顶部)时,请按该组合快捷键。
1 ~# y2 Y# X2 S$ C7 Q m* i* v在Popup弹窗中支持对*、?、[、]字符(通配符)的精确查找(同主窗口输入框的行为一致 — 需使用前置符\来修饰),修改阅读模式右键菜单的Popup查询、Ctrl+C+C`查询、监控剪切板查询、命令行输入查询的行为 — 精确查询粗略匹配(通配符被忽略)。
8 R! W% i" h- o: x+ o+ c& W0 S, W. ]3 T n: M
2021.7.1 2A34:二进制文件增加自校验(防篡改)机制;依赖库升级:
$ \3 R# Q! A9 I9 L" i, C! O详参 Change log:EWDK-10.0.20348.0, openssl-1.1.1k, libxml2-2.9.12, SQLite-3.36.0, Zstandard-1.5.0, libogg-1.3.5, libwebp-1.2.0
% B- f7 i3 ~+ q X1 b( I: O! S
2021.6.23 2A33:禁用log功能以提升运行效率:
( v+ ^3 e7 q! w, b1 L运行时参数--log-to-file不再有效7 w$ F! L: J/ \- i! f
" e' M* ~2 m% l2021.6.19 2A32:修正MediaWikic词典查询结果中文章重复及oga音频文件不被播放的问题(参考12);优化mdx格式词典的视频缓存处理:
* w+ I1 \8 [, M5 U3 i参考《关于GoldenDict++查询性能提升的一点思考》,改用异步任务 — 避免死锁问题又不影响查询效率;如有需要,抽象的文件缓存处理方式可以方便的添加到slob、zim等支持视频内容的词典格式。; j Q+ R8 c" W6 V3 m9 I( s7 K
! N; o% i, V9 S S# M! Q
2021.6.11 2A31:增加对 ABBYY Lingvo LSD 格式的支持。: v1 |1 k# s/ ^0 M- f" j) s
2021.6.7 2A30:更新翻译文件,修正个别翻译错误;修正词典对话框中分组编辑的快捷键操作失效的问题。
; Q8 N! I$ P3 a9 { I {2021.5.31 2A版本进入慢速维护通道
+ F5 |! b* }4 i9 O3 o' b2021.5.28 2A2F:Qt5(.9.9): Backport common&important fixes and other Security&Stability Updates with qtbase modules from source-branch of Qt-5.12.11,3rdParty updated to newest;独立Windows版本的取词功能为单独的进程模块:
, M4 m: T. P* l7 H8 G2A2E为最后一个使用Windows Hook取词技术的版本;2A2F为最后一个使用WebKit浏览器核心的版本。
0 G1 j, V. w/ K' ^) v% f) i原因之前已多次阐述,虽已取消过但后又加入,本次改造彻底将其独立为进程模块 — 删除了Windows划词使用的共享内存通道,与取词程序的信息交换使用原有的QtSingleApplication已实现的通信机制。基于前述安全原因+取词对软件的适应性并不高,单独的取词进程模块不会随发布包分享(新发版本不携带取词进程,即不再有取词功能 — 可下载外置应用以支持该功能),也强烈建议使用2A2E及之前版本的学友关闭内置的取词功能。' E7 e1 P7 B0 x
' ]) `6 r, g f! k, @3 o& y
2021.5.27 2A2F:修正xdxf词典因空的元素标签导致文档结构错误的问题 — 个别词典未规范按照xdxf格式组织数据引发渲染问题,完善xdxf词典对非标标签的兼容处理,修正查询内容不能联网发音的问题。
2 S, @! R% a5 e…测验样例来自瑞典语词典
7 a {( u- I; A% A9 ^/ t2 o# f
* `# v$ v0 X% v! s3 }5 b0 p2021.5.21 2A2E:整理代码 — 剔除不再使用的代码,内联优化几处可提升效率的函数调用;剔除原有与官版兼容的更新检测和更新文件下载功能,固化更新检测功能 — 只提醒有新版本的存在,程序不再内置下载安装包等原有的升级功能:1 O Y9 r+ `2 `
删除了定时更新和通过帮助菜单下点击检查更新的检测新版本的方式,删除了由用户确认的升级包下载功能,改用启动后的首页或新建查询页中的导航页内容携带的版本号来完成升级校验,使用GoldenDict自身的状态提示功能(显示在界面左下方)来提醒新版本信息,由用户自行前往导航页中的升级下载页面获取基础包或升级文件。; M9 ]# g# l3 ~+ F6 Y7 q& X
首页或新建页面下的导航页主要用于划词版文档的主题索引,可快速链接到划词版的安装、使用等帮助说明文档。( N4 ~% n% F5 ~- f* S' _
2 P9 w w- y0 s& {2021.5.8 2A2D:修正源码在Debian中编译时X11头文件与Qt头文件定义内容冲突的问题;更新德语翻译文件并添加瑞士德文翻译文件(de_CH.ts(qm),感谢Patrik Studer学友);更新flash插件文件(仅适用于Windows版本);为Popup窗口工具栏增加快捷划词按钮:
0 }* c8 x$ w+ l! |- R…
* ]& k3 h+ l& c1 l0 d
8 C Y- H3 U% R- ^2021.4.28 2A2C:修正深色主题下辞书信息对话框和全文索引对话框界面布局表现与其它主题不一致的问题;修正深色主题在不同分辨率下的Qt组合框标题栏表现不一致(上下位置不对称)的问题;修正(通过延迟初始化来尽可能的避免)随Windows系统启动时可能出现的卡死在启动界面的问题。" ?) B Q9 x; L& ]! V9 E p+ g- U4 Q
为GD++增加 –delay 参数 — GD++在启动时会延迟5秒再继续执行;该参数仅对Windows系统有效。: v' R; d( u) R3 Q! C& b
进入首选项的界面页面,取消勾选随系统启动,点击OK关闭对话框,然后打开首选项对话框重新勾选随系统启动后点击OK关闭对话框,即可为GD++的自启动项增加 –delay 参数。: P6 W6 e: M& }( D/ @( b
% k7 ~* c g* y8 B) _6 \2 K! K) H
2021.4.19 2A2B:Web网络的HTTP访问支持自定义User-Agent(来替换掉应用标志);辞书词条对话框和全文搜素对话框在打开时聚焦到文字输入框,调整界面元素的Tab键响应顺序;为32位Mingw版本在编译期开启DEP和ASLR支持;增加深色主题(配色参考)。, [2 e5 U6 V8 b4 Q# F! ]
伪User-Agent仅针对因Web请求(Web、Wiki型词典)发起的Get,即便对网站有效,最终还是受限于WebKit对Web技术标准的支持。User-Agent2 H8 y3 e/ ?2 ~9 g
x/ c1 d; j V" K) r: e1 @2021.4.8 2A2A:为收藏列表增加词条按字符(升序)排序功能;修正Del和Ctrl+C键对已选中的历史记录和收藏记录面板中的词条失效的问题;为划词增加工具栏按钮和托盘区菜单项,点击按钮或托盘菜单项即可划屏取词(释放键盘)。
6 Y3 |" i- G; Y3 s9 O2021.4.2 2A29:修正Linux和macOS系统下报MainWindow::scanEnableToggled无效的问题(可能导致工具栏取词使能按钮无效);修正保存文章中部分anchor的链接信息丢失(不能正确转码)的问题;Windows版本重新使能鼠标悬浮取词功能,考虑将该功能独立到单独的进程以避免Hook技术可能导致的程序或操作系统的不稳定问题;修正因mdx词典一次查询结果中单部词典返回文档过多导致的查询(WebView渲染)性能下降问题:' ^6 c* M3 V# k* O, d0 y
典型如辞书交流论坛hanyl05制作的几大部头高阶双解词典的汉英同义词例句反查词典,如没有删除这些词典的css文件(禁用这些词典的外置样式表),查询词条(如good)时会导致程序卡死(程序界面数秒至数分钟不响应,期间CPU占用极高),问题修正后的查询结果可以秒出。9 y. h% r! g2 V: T+ _( u
: Z8 j$ g2 a [3 ?
2021.3.30 2A28:不再缓存Epwing词典根目录(以使得对该类词典文件的访问行为与其它格式词典一致):8 W, I- E1 I6 o G1 m" l) g* U Q
注意:该变更导致生成的Epwing词典ID变化 — 升级至该版本(包括更新版本)会使得Epwing词典被重新索引一次。' U5 Y' B. K5 v- `# f
: k8 A7 `. o- d+ H7 {! L" M/ V: Q
2021.3.22 2A27:为portable模式开放对音频文件目录的支持,索引文件存放在对应目录下;Fix around issue: Add minimize and maximize buttons on titlebar of EditDictionaries' dialog;划屏可选静态截图(使用外置工具,命令行:wingraber);更稳妥的方式解决macOS中退出时可能崩溃的问题。# V- R8 F5 z0 ~9 I9 z
2021.2.22 2A26:优化日志接口,优化网络资源类词典的日志输出,重新使能–log-to-file日志输出功能;修正查询结果中存在dict server词典但(因匹配不到词条)文章无内容的问题;解决macOS中通过Dock栏右键退出时可能发生的崩溃问题;修正从查询工具栏切换到查询面板后查词(匹配)导致程序崩溃的问题;重构Popup窗口使其更方便于快捷查询操作:
+ _+ _& b" z8 [- {" A/ c" Q工具栏使用Toolbar组织 — 紧凑布局以缩减屏占空间;pin状态不再显示标题栏以避免无用的屏占空间;非pin状态可调整大小;工具栏左侧pin按钮,最左侧关闭按钮,最右侧显隐词典栏按钮;工具栏中的标题区域可按下鼠标移动以改变窗体位置;词典栏强制右侧竖排显示且默认隐藏以缩减屏占空间;弹出窗口时鼠标尽可能的指向关闭按钮以便于快速隐藏窗体。pin and ontop' h3 Y" f N& O: e+ z' h' J! _3 @
* q- j+ a3 L0 G6 n2 `% w
2021.2.16 2A25:工具栏样式调整;增加对zim格式词典source标签的poster属性的转换处理;为Qt4版本增加对webp、wbmp图形格式的支持;DSL: Fix resource loading in some cases by Abs62,同时避免(当词典后缀不包含.dz时)同一路径被测用两次的问题;DSL: Don’t convert escaped spaces into non-breakable inside tag by Abs62;修正弹窗查询输入框样式违和(macOS下尤为明显)的问题;portable模式下构词法可以放置到content目录下;在首选项对话框中为触屏手势增加开关选项。, B" l4 b$ v; x
2021.2.7 2A23:修正弹窗首次查询所使用的词典未过滤掉已分组中被排除的词典的问题;修正主窗和弹窗使用相同的词典分组在主窗使用阅读模式查词时,主窗分组被排除而弹窗分组未被排除的词典不被查询的问题(确保阅读模式下两个分组中未被排除的词典都参与查询);调整阅读模式下弹窗查得的文章顺序(打开链接:主窗当前词典+弹窗分组词典+主窗分组其它词典;普通查询:弹窗分组词典+主窗分组词典);确保索引目录存在(尽可能的避免程序启动或扫描词典文件时报Can’t use index directory to store GoldenDict index files及未生成索引文件的问题)。
7 H- x* I7 c' ~7 g: X' q/ b2021.1.28 2A22:解决zim格式打包的最新wiki词典文件信息的语言不被解析识别的问题(更新语言代码兼容ISO 639-2/3/5);修正zim文章内的部分链接跳转无效(查询失败)的问题;修正含有某些符号(如%、?、&等)的词头查询不到的问题;更快速更安全的读取索引数据,查询效能显著提升;优化辞书词条对话框:紧凑布局,加速访问同时解决词条过多时导致界面卡死的问题,加速过滤条件改变后的列表刷新;修正词典枚举过程中stack overflow导致程序异常退出的问题(在程序启动或重新扫描文件时偶尔出现);增加.gdignored魔法(扫描词典或索引时忽略目录);解决部分dsl格式词典文件信息的语言不被解析识别的问题;进一步完善语言判据及匹配逻辑(更好的支持语言全称或别称匹配语言代码)。
* Z; }+ y7 z; [/ z h.gdignored:当有大量的资源文件(数量(百)万计)存在于资源文件夹中,但这个文件夹下没有任何词典文件却在扫描目录的设定范围内,启动GoldenDict或扫描词典文件时,会在这个文件夹下耗费数十秒至数分钟。当目录中存在.gdignored文件时,该目录的所有子目录在扫描时将被忽略,可以有效的提升索引效能。 占个坑:对语言判据信息使用自定义配置文件,来存放ISO 639-2/3/5相关的代码定义信息及对应的语言旗标,ocr也用这些个功能,需独立出来封装个库文件。
! h+ F, [9 I7 l" d
0 d" s( x- O3 t8 c; I/ t( X( W4 D" W2021.1.20 2A21:修正zim格式解析src和href存在的问题,合并link的href与image、script等的src处理以提升效率;修正在词典编辑对话框中重新扫描词典后顺序调整及分组编辑的右键菜单功能失效的问题;为portable模式开放对自定义词典目录的支持,在对应目录下创建.gdindex目录来存放该目录(包括其子目录)下的所有词典的索引文件;划词设置界面调整;简化网络管理器对数据接收状态的转收(冗余)处理;bgl词典索引和查询处理的细节优化以提升能效;针对aar、bgl、dsl、zim、slob、sdict、xdxf、dictd、stardict、dict_server格式(无外置样式表):统一处理词头和文档标签以便于样式的一致设定:1 [2 a$ T5 b( U6 K5 m4 Z o7 k, ]2 K
使用全局标准的css样式:定义并使用了.gd_headword和.gd_body全局类,对于xdxf、zim、slob、dictd、aard格式不添加额外的gd_headword。
. K9 N3 Y# l' v$ n( x/ S; z2 f6 I2 P; ^, W% s+ E: E( X
2021.1.14 2A20:修正Qt5WebKit不显示tif格式图片的问题(在GoldenDict中无需再做额外的格式转换且不再直接依赖libtiff等库文件);修正历史记录和收藏记录中的非英文词条可能乱码的问题;为分组编辑的操作按钮增加图标;收藏菜单中的添加菜单项的图标和文字状态与工具栏的收藏按钮的图标和文字状态保持一致;优化文章tab页标签的右键菜单及其行为:% e. o$ Q: O, n6 X: w6 i( r; \
当右键点击到非当前文章页面的标签(简称点选文章)时,弹出菜单项的关闭当前页面描述变更为关闭页面,其行为由关闭当前文章变更为关闭点选文章,关闭其它标签页的行为由关闭当前文章除外的所有文章变更为关闭点选文章除外的所有文章。* q& A8 G( R9 }* b1 u5 N1 A
$ C$ y0 m7 x1 k+ H* R& [* m
2020.12.28 2A1F:为音频播放增加停止功能。" M2 Q3 y H$ D/ j) ^4 b$ T0 l8 {
点击工具栏的朗读词条按钮:当前有音频正在播放时,则停止播放,否则执行词条朗读功能。鉴于词条朗读一般情况下时长较短,忽略增加停播后的恢复播放功能的需求。$ y! Y3 {9 y: Q4 U% T! G
4 E. R& f) b% { h+ o7 n3 D: j2020.12.20 2A1E:修正多屏时,在非主屏上划词或取词的Popup窗口位置问题(确保Popup窗体出现在鼠标所在的屏幕上),及在非主屏上划词幕布可能出现不会铺满屏幕的问题;修正主窗口最大化后,从最大化状态恢复时窗体位置错误的问题。
9 _, m+ \- k. Q$ {! ?2020.12.18 2A1D:Qt5(.9.9): Backport common&important fixes from source-branch of Qt-5.15,and other Security&Stability Updates with qtbase modules.3 s1 W$ S( L- ^% L+ k( B
2020.12.14 2A1C:Qt5(.9.9): Backport common&important fixes from source-branch of Qt-5.12,3rdParty updated to newest,unicode CLDR(Common Locale Data Repository) updated to v35.1,network module now supports openssl-1.1&dtls and new feathers,and other Security&Stability Updates with qtbase modules.
- b( d r, o p, c5 l" z, L& ]: CFor Security&Stability&Speed, Webkit is now extra feathered with css3 text, css3 text-line-break, mathml, xslt, netscape-plugin-api, modules, custom elements, custom scheme handle, no accelerated-2d canvas, no geolocation, no quota, no media source, no media capture, and no video — but embed video with flashplayer is still supported.
, U2 A" S/ L' B; s
# h5 W& u" ?, ~2020.12.9 2A1B:Qt4: Backport some common&important fixes(CVE-2013-4549, CVE-2015-0295, CVE-2015-1860, CVE-2015-1859, CVE-2015-1858, CVE-2016-1004, CVE-2018-19872, CVE-2020-17507…) from Fedora Review。
' i' L$ W1 g) f& f( q, c2020.12.8 2A1A:修正缩放比例不为1时作为链接的网站(Web)类型辞书的页面内容(显示)高度错误的问题;修正文章视图中水平滑动条与垂直滑动条样式表不一致的问题;修正Qt4版本关于对话框中版本信息中文乱码的问题;修正全新部署(或升级前未删除旧的参数文件)参数的默认值可能不生效的问题,修正因部署目录变动导致的ocr、划屏和音频引擎失效而必须在首选项对话框中重新配置的问题(2A18引入)。
) P. J. X0 x* G$ ^6 I: k无需重置配置文件既可从旧版本无缝顺滑的升级到新版本啦;配置文件中仅保存插件文件名 — 程序从与其同目录的gdp文件夹下寻找并加载同名插件;针对OCR的数据目录设置,如果目录不再存在或没有手动重置过,则默认从程序所在目录下的tessdata或nsocr文件夹加载语言识别文件。
7 A- b5 T3 I7 }( [3 @8 o. U4 L! P7 M% N) S1 U, N
2020.11.28 2A19:优化辞书列表的刷新机制(提交查询后秒内如页面未完成加载(渲染)则主动更新辞书列表,辞书列表做到秒出);修正因开发语言多态特性使用不当引发的多处内存泄露问题;修正索引文件创建后文件的写缓存可能不被释放(内存泄露)的问题;优化一处创建索引文件时影响性能的实现;修正词头(索引关键字)超过特定长度(默认256)时查询不到对应记录的问题。
/ U2 ]* v7 P! g一本离线辞书中,关键字(长度)超256个字符的记录应该不多,即便有较多的存在,这种情况下以前256个字符做索引关键字,关键字相同的概率应该也是较小的 — 即便有冲突比着野蛮的丢弃以至无法查询到对应词头的内容的影响也是好的。
7 [2 M$ y( O+ Q
/ S$ A) B* S3 ~1 C2020.11.22 2A18:修正Linux版本缺失tts引擎相关动态库的问题;Windows版本删除原版中带有的取词功能(这个功能模块使用的技术容易被杀毒软件报毒 — 详细原因见前述);优化辞书索引和全文索引处理;规范Web和辞书(epwing和mdx)缓存目录以便于管理;为mdx格式辞书提速 — 优化查询处理,优化重复访问含有视频内容的词条的访问处理(避免重复刷新缓存文件);为Qt4版本mdx增加视频支持;对频繁访问的网络资源进行加速 — 使用缓存(参考);字符转码效率优化(类xml辞书内容加载到xml文档中既已转码成utf8,无需再次强制转换);修正在DictionaryBar上快速频繁的点击辞书标签时导致程序崩溃的问题(重构程序类型辞书的查询处理,优化Wiki和Web辞书的处理);修正在词条列表匹配结束前关闭(退出)程序,会导致程序崩溃的问题;修正收藏夹中的文件夹的展开或收起状态可能不被保存的问题;修正打开首选项对话框然后点击取消按钮或直接关闭对话框后音频引擎失效的问题。
0 S; K; B) W8 v8 a2020.11.15 2A17:优化多处严重影响查询性能的实现;仅在辞书有编辑后刷新所有文章,在扫描辞书文件后仅刷新当前文章;优化收藏列表和历史列表,减少运行时内存占用,在其中 鼠标右键( 目的是弹出右键菜单而非查词)点中条目时不执行查询操作;增强收藏按钮与收藏列表的联动 — 从列表删除当前页面的单词时会同步更新收藏按钮的状态,查询单词是否已被收藏时不区分大小写(修正issue),收藏按钮状态变化时同步更新按钮文字以反映其真实状态(修正tab页标签右键菜单中收藏项文字失实的问题);优化以提升页面资源下载的处理速度, 修正访问Web资源可能引发的内存泄漏问题;重构辞书分组属性编辑功能(修正打开辞书编辑对话框时卡顿及切换到分组页面时程序可能崩掉的问题 — 分组越多问题越易出现);修正在程序启动时程序崩掉的问题(极端情况,极少出现);修正在查询面板和查询工具栏间切换时可能导致程序崩掉的问题(有Web及Wiki类型辞书时易出现)。3 V9 V. `8 o# ~0 ^; V
2020.11.10 2A16:Fix around quote possible apostrophe,and quotes also need an escape;修正网页审查员不能唤起和置为当前窗口的问题;Qt4版本:修正开着 网页审查员 窗口关闭查词页面导致程序崩掉的问题。
' i$ N6 K+ L9 E3 b/ J" K. u2020.10.29 2A15:Qt4版本:去除bgl辞书的多余换行以优化显示效果,整合字体设置以支持音标等特殊字符的显示(辞书样例:En-En-Longman_Pronunciation_3rd_Ed.dsl),修正Epwing辞书加载失败的问题,修正右键 审查元素 导致程序崩溃的问题,修正开启鼠标取词导致程序崩溃的问题,修正读取xdxf辞书名称错误的问题,修正 收起文章 和 展开文章 图标全黑的问题,增加PhononPlayer音频引擎,修正不支持非全英文路径名称的问题(扫描不到非全英文路径下的字典文件),修正欢迎页面乱码的问题,修正Splash窗体背景虚黑(不透明)的问题;启用Qt4的directwrite支持。Qt5版本回退使用Qt-5.9.9(该版本界面工具栏无不可逆的内存泄露);修正DictionaryBar的内存泄露(mingw+gcc版完全有效,Qt-5.12和Qt-5.15待Qt官方修正)。
: {& c+ ]" g$ X6 s6 Z4 D$ L1 ?& r2020.10.21 2A14:通过传递屏幕dpi参数值来提高ocr识别的精度;实现截图与ocr功能分离(增强插件可用性及使用的灵活性),增加划屏插件,增加划屏OCR助手,可以配置不同的划屏方案与ocr方案的自由组合 — 以便于用户实现自己的ocr插件(如腾讯、百度等在线接口的引入);界面 大修 | 逻辑优化 : DictionaryBar中标签高度优化(再也不会因为多国语言的辞书名称而导致的工具栏忽高忽低了);优化辞书群组列表、候选词列表、搜索框文字和Tab页切换的联动实现(切换Tab页不会丢失其上下文内容);优化主窗口和Popup窗口的状态栏信息显示,当启用了系统托盘图标且系统支持托盘通知在主界面不可视时将状态信息输出至系统托盘;尽可能早的在界面初始化结束前启动辞书扫描加载工作,提高了程序启动时的速度和稳定性。6 ~* ]3 H8 D: c% a: t
2020.10.11 2A13:增加配置选项来设置主窗口查询页面和Pop窗口的最大历史记录数量(影响回退和前进),以限制在低配置硬件上的内存占用 — 最大数量限定为255,值为0时则不使用历史记录,内存占用最小;优化Linux/Unix系统划词体验 — 使用scrot截图和xclip传递图形数据(体验跟macOS基本一致,速度上亦有保证),windows系统仍使用内置截图(更换了鼠标样式);提升UCS-4转utf8字符串的效率;辞书群组编辑自动生成分组时保持当前分组页面;优化辞书加载流程(在并发线程中执行针对dsl和mdx等格式辞书的自定义初始化处理,在程序启动时不中断并代理gui线程的事件处理);修正重新扫描文件操作后搜索框失去输入焦点的问题;tesseract划词ocr引擎增加对SSE、AVX的检测支持。
" A1 e9 |9 e1 z: v+ n划词依赖:macOS系统需要screencapture(系统内置)并启用剪切板访问权限;Unix/Linux系统需先安装scrot和xclip:
9 d$ A* y$ S" U! {/ }9 ` O8 cDebian:apt-get install scrot xclip' ?7 r, Q- ^( F7 p
Fedora:yum install scrot xclip' f# b7 F6 F. D7 G$ r$ O, h! H
Arch:pacman -S scrot xclip( S A) J5 a4 i6 f
0 Q. D+ Y& t1 |$ a$ n0 ~3 R
2020.9.29 2A12:优化下拉复选列表(QComboCheckBox),限定选中状态的改变仅在选择框范围内点选时有效,修正下拉列表不能收起的问题,优化ocr识别语言配置;去除了aard、epwing、xdxf格式辞书查询的关键字的h3显示(样式不可控,有点儿违和);修正辞书生成的html页面源码css中错误的属性值;优化内置的主题样式表;简化用户样式表及脚本访问接口,并将用户自定义样式表限制在配置文件夹下的styles目录下,将针对金山数据的stardict辞书的样式映射文件sdct_k.style设置到用户styles目录下;解决xdxf及sdct_x格式辞书def层级显示错乱及生成多余(多一个)<br />的问题,修整xdxf预定义css — 显示更美观了;清除aar格式辞书中的多余换行符;解决在辞书分组设置界面从分组删除多个辞书可能导致程序崩溃的问题;设置在流 I/O 级别同时打开的最大文件数8192(支持管理更多的辞书,如操作系统不支持则改为2048);为linux版本增加tts引擎支持;解决在不同分辨率的显示器间切换时窗口可能显示在屏幕区域以外的问题;增加阅读模式。
- e2 C. {, s' O& F. q4 O通过ocr识别语言下拉框,选择区域则该区域下所有选中状态的语言都参与ocr识别,选择某一语言(不一定要在选中状态)则仅该语言参与ocr识别,如所有区域中都没有被选中的语言,则使用英文识别。
/ z7 h3 v$ {! G# T2 Q# u6 G使能阅读模式后,文章(查询结果)页面,右键菜单增加 在悬浮窗中打开链接 和 在悬浮窗中查询… 项,鼠标中键点击链接、鼠标选择内容后右键查询,按住功能键(Ctrl或Shift)的同时鼠标双击翻译词条或鼠标单击页面链接,将使用 悬浮窗口 显示查询结果;该模式下的查词使用联合辞书分组(悬浮窗使用的辞书组+主窗口当前文章(查询结果)页面的辞书组)查询。
( O4 y; y5 S8 a) q加载样式表的顺序是:(内建通用样式表 -+> 内建主题样式表) -+> styles目录下的(自定义样式表 -+> 自定义主题目录下的样式表)% i- O9 b% Q1 t! @7 i+ ^
xdxf+ S$ D2 ? b' S: o# E5 B
/ \; v/ m+ n" U8 Z- L1 e1 d& q1 r" [2020.8.30 2A11:解决多语言环境下epwing辞书可能不被识别问题;优化OCR引擎语言列表的加载时机及初始化机制(在识别库目录无效时,不初始化语言列表,不实例化划词引擎,以避免程序崩溃);优化索引(加载后)所占用的内存,优化辞书图标的处理(大幅降低内存占用);添加基于辞书目录的自动群组功能:* y3 b+ w* v" E1 k, d
以辞书来源下的文件页面所添加的辞书文件所在目录为基础(根)目录,以其下级存在字典的子目录(不递归)名自动添加群组,如果基础(根)目录下存在辞书文件,自动添加以基础(根)目录名为名称的群组。
0 e' { _" g/ g- t9 j B" B; o8 z: c6 Z1 _+ ]5 S* U& S( W' |9 K+ A% C
2020.7.7 2A10:音频和ocr引擎适配插件机制;查词结果的标签页(View)绑定辞书群组 — 修改辞书群组仅对当前标签页有效,多个标签页可以使用不同的辞书群组,切换标签页时群组同步切换,在标签页上提示其所使用的辞书群组信息及查询的词条内容;启用对程序自身标签页取词的开关(同 忽略程序自身的选择剪切变更 项)设置。
8 u( [, [3 X+ J- o6 v8 v2020.6.22 2A0F:解决linux下ffmpeg+ao库发音引擎(ao库打开设备失败)的问题;linux系统下取词功能修复,macOS/Windows中取词功能按需挂载Accessibility/注册Hook接口:! S% X( r# a5 \ I8 ^" `# O! k" ]& H% P
在启用屏幕取词,但未使能取词功能的情况下不加载对应的功能模块 — 降低了资源占用,在Windows中尽可能的规避了Hook对系统及其它程序的负面影响 — 见前述。. O0 y' G6 W( }* a: U4 {1 @
' L" X: X' U. I" g, F# |( f+ U) h2020.6.18 2A0E:为ocr引擎设置默认识别库目录;OCR划词功能适配macOS和Linux系统,解决macOS版ffmpeg+ao发音引擎问题,Linux版本添加bass发音引擎;为划词增加Esc按键支持。$ j9 O9 F3 i7 V( i+ B
划词过程中的按键:鼠标右键 - 取消划词;待划屏状态(划取屏幕前) Esc按键- 取消划词;划屏过程中(按住鼠标左键未释放) Esc按键- 取消划取范围,释放鼠标左键后恢复待划屏状态。' P! f; F: G9 Z9 i. O
在macOS平台上,因为QMediaPlayer的缺陷(无法从内存buf的io设备播放音频内容),Qt Multimedia引擎播放不了音频,故实际有效的发音引擎只有ffmpeg+ao。2 [5 s( s5 L$ G
此为2A0最终版了,在2A0F版本(如有)将仅解决bug,不再做任何功能改进与更新;从2A10版本开始将逐步完成插件化的处理,代码不再与2A0版本兼容。
5 j7 ] V) b! y; h# B& N G6 T6 \! F b
2020.6.1 2A0D:解决枚举不到自安装的tts引擎的问题;Add Zstd compression support for ZIM format,by Abs62。8 m: {& ^0 B: g
关于tts引擎:如果tts组件为32位版本的,则只能为32位版本的程序加载使用,反之,64位的tts引擎组件则只能为64位版本的程序加载使用。
% E: m8 S% [8 p* Q. wocr划词可以较好的取代鼠标取词,如确实需要,将完全以插件程序的方式实现鼠标取词功能。当前鼠标取词存在的弊端:- e3 }6 K, S& \# k5 r4 |2 n! H
* d0 F3 o4 f* P n9 s3 `: w# N. p. m2 s功能的实现分两部分,既存在于程序内部,又需要一个外挂程序来配合,相对复杂,取词能力还受限(在很多软件中取不到词);
" L4 \4 F: P* a) P/ R2 }3 d在程序UI(主线程)卡顿时会影响操作系统或其它应用程序的运行,表现为系统相关功能(开始菜单等)或其它应用卡顿或无响应;$ p1 o1 _$ Y) ^4 R8 R4 N
程序存在获取不到全局鼠标或键盘消息的可能(其它进程Hook处理后未继续传递消息);' [0 e2 q$ h5 ?8 y- h8 f
因为使用了Hook(监控鼠标键盘及其它应用的内存信息)及共享内存(进程间通信),会被部分严苛的杀毒软件判定为木马或病毒软件;+ e' ^% S& B9 v! B7 N* M/ ^: }5 l
Hook技术影响操作系统运行的稳定性。……% h9 c/ P3 o% w4 i2 P) {. \
2020.5.8 2A0C:增加对全局js脚本文件的支持:
; y& L0 d- h. ]需要在配置文件目录下新建 user.gjs 文件,在其中添加javascript代码即可,代码对查词结果页面全局有效(每个辞书都可使用其中定义的变量和方法)。例,可以在 user.gjs 中加入jQuery的代码,这样各个辞书就不需要使用单独的jQuery脚本文件了。对查词结果的内存使用会有一定的影响(降低了内存占用),同时减少了文件io操作,对结果页面的解析效率应该也会有小幅度的提升。 `1 V, {& ]: Z; D4 K" \! c
7 s: W9 \' H- J! {. D8 a, q. I
2020.4.5 2A0B:解决全图片辞书mdd中图片读取错乱的bug,by last_idol;开放trackClipboardChanges设置项(监控剪切版变化取词);添加Tesseract OCR划词引擎,支持多国家/地区语言的选配。
) q1 ~$ P5 V) n9 i. N. Y" O! B2 U2020.3.17 2A0A:使用ebu代替eb处理epwing格式字典;增加Bass发音引擎;解决程序退出时的异常问题(表现为在部分机器上程序退出后不能马上再次启动,可能需要等待较长时间或重启电脑后才能启动);解决划取(ocr)到的字符串仅有无效字符(标点符号等)时程序异常退出的问题,解决划词时选取区域为空(无字符)时程序异常退出的问题;划词支持多国家/地区语言的选配。
0 H9 N+ t5 M# R2020.2.25 2A09:增加鼠标划词(原生内置OCR)识别 ,支持动态划图,支持划词时多屏间任意切换(双/多屏时划词幕布随鼠标游动自动切屏),可配置划词热键。8 d, c! X# U2 X: e$ @6 x
2020.2.6 2A08:针对各种格式辞书的索引和查询做优化;增加辞书按照 路径(目录+文件名)来排序的功能;剔除bgl格式辞书显示的多余换行;为mdx辞书添加对 tif 格式图片的支持;解决zim和slob格式辞书 tif 格式图片支持问题(暂时没有对应格式的图片辞书来测试验证)。
& q' p% X8 y# {6 Z2 ]按字典目录排序% Z: `1 p% p2 q1 n/ n; e5 `
9 T& o6 E! [* h6 V2020.1.31 2A07:全文搜索功能全面优化 — 并发索引,词头去重,界面优化;增加全文搜索结果的导入(从已保存的文件加载)导出(保存为文件)功能;为金山数据的stardict格式辞书增加样式表支持,所有该格式类型的辞书共享同一样式 — 标签对应的类名称和样式都可由用户自定义。
% H' B. V& S; |( ~ r( r下载并解压sdct_k.style.7z (275 字节) ,将解压出的文件放到GD的配置目录下(并按需编辑其中的标签对照表),在自定义的article-style.css添加对应标签的样式属性。金山数据stardict格式字典样式
+ d* E" v9 P7 u7 B: ]: R1 p2 P) J9 M4 ?; |2 P
2020.01.18 2A06:挖掘内存使用优化带来的提速潜力,查询性能显著提升;优化全文搜索和辞书词条对话框的部分实现,避免可能出现的内存泄漏和界面假死现象;消灭保存文章功能的内存泄漏;重构保存文章时的进度显示;优化组织查询到的辞书列表以缩短界面阻塞时间。1 A) L, ~1 H0 B
2020.01.08 2A04:解决多部epwing格式辞书时创建索引导致程序异常退出的问题(针对这格式的辞书创建索引同步进行以避免线程安全问题导致的异常退出);版本信息中添加编译时间;解决xdxf格式辞书def标签的序号错乱问题。* H# Q1 x! u$ Y
2020.01.06 2A02:弃用QtXml,使用效率更高的pugixml解析库,受影响部分:mdict/xdxf/stardict格式辞书和forvo在线发音的解析,配置文件的读写(配置、收藏、历史记录文件);解决启动到托盘功能失效的问题。5 x) E/ d! F8 k4 C; T% ]1 X
注意:今后将仅维护2A版本;2A01及后续版本可与之前的老版本并存(同时)运行(共享运行目录和配置/辞书/索引目录),但配置文件并不兼容且并不提供转换工具,使用2A01及后续版本您的所有关于GD偏好的个人设置(编辑菜单的辞书和首选项)都必须手动重新设置。4 ~3 Y+ w! ]+ Q; O0 f& L6 a8 |
; g: X ~3 \1 r z: ~- O2019.12.26 2019年终版:解决64位msvc2019版GD不能识别大小超2G文件的问题;支持修改字典显示名称;消灭一堆内存泄漏问题;优化启动界面的信息提示;并发初始化索引和加载辞书,大大减少启动时间和重新扫描文件的耗时。
- X! N! T! t; {6 L$ O& i重命名辞书1 p; t& _7 v1 Z5 ~7 y
1 @6 V5 X$ K0 P$ U% _5 ^2019.03.12-2019.10.19:第三方库更新;编译器适配最新版本;界面布局调整;解决一些影响稳定性(导致程序频繁的异常蹦掉)的问题;为mdx格式辞书增加flash和视频播放支持;…… |
|