本帖最后由 shawky.nasr 于 2026-9-16 21:28 编辑
/ O0 ]* l# ]* v8 z% ^/ g8 n5 r2 v# W$ m/ p7 n
$ k/ U& z" A1 P8 B0 M5 O( k F ]" S! M+ p( O. n
一款现代化、跨平台的桌面工具,用于制作、转换和检查 MDict 词典文件。
$ ? ?/ f0 Q8 |- k( E; {# X& n8 ^% a $ _9 j9 n5 c. h. \
4 k' d& m" P0 m- h
- \9 k3 b9 p" W4 k+ r4 Q. z' b
: |8 ]3 H3 {# b8 w: A4 b) j4 R; f3 | a6 N+ l
/ S0 }7 c. N, ^. P* C$ P2 N/ }, C1 `! Y6 E/ {% e$ s
& ^, Y3 J; M/ V7 h- @
3 W/ y4 Q' m$ u+ D3 S) n! k/ x2 R. u
Mdict Studio Pro 将完整的 MDict 工作流程整合在一个独立的图形界面中——打包与解包 .mdx/.mdd 文件、将原始词典数据转换为 MDict 源文本、管理基于 SQLite 的查询,以及检查已编译的词典。它专为语言学工作者、词典爱好者以及处理结构化词汇数据的开发者而设计。 4 N* n$ O. i8 B
V2.1 版本新特性
: g0 |- `' O- V7 r: D; Y% \) `* AMdict Studio Pro v2.1 更新日志与新特性概览
( a6 v/ T2 n* C0 M+ d
$ M: g5 g% u0 |9 h& Y 核心亮点:排序标准选择器 (Sorting Standard)) l( Z5 E {9 v# _/ U& J! h" G
$ _8 Z, o$ c# s
不同 MDX 阅读器在对 Key Block 进行二分搜索时采用不同的字符比对规则。构建方式与检索规则不匹配会导致部分条目(尤其是大写字母及带重音符号的词头)无法检索。本版本在 打包 (Pack) 界面提供了底层索引排序标准选项:
" {" b! v2 e1 z( v f9 f
0 i/ W' a2 N7 V, e+ l: P- d2 X: ymdict-utils / Unicode(默认):执行完整的 Unicode 大小写折叠排序,精准适配深蓝词典 (BlueDict) 与 GoldenDict。
5 U J, t# y: a6 l* f. eMdxBuilder:采用纯 ASCII 大小写折叠,保留非 ASCII 大写字符及变音符号,适配官方 MDict 与 DictTango。
# Y7 @3 V: o6 v2 X, `% g 核心架构升级:原生 Python 打包引擎
0 S! R5 x( m- z' P. {8 K
5 s" v/ F# t' G6 x4 E内置原生写入器:采用基于 mdict-utils 的进程内写入机制,摆脱对外部 mdict 命令行调用的依赖,加快打包初始化响应。
& \. [+ _& ]- |+ V( [ f4 o自动回退机制:若运行环境中未找到可导入的 mdict-utils 模块,引擎将自动无缝回退至传统的 CLI 命令行模式。
. Y* p8 L, d- b! ]界面响应性优化:通过隔离后台工作线程进行打包处理,保证复杂任务下 UI 界面的流畅度。3 x: R2 B% p2 R2 i
关键缺陷修复 (Bug Fixes)
$ H" d4 D u( W6 Z
5 `. p& m) ^2 I B元数据解析修复:修复了“描述 (Description)”元数据仅写入本地文件路径字符串的问题,现已正确读取并写入完整的 HTML 内容。 g3 m) k7 B M5 W3 W
内存泄漏解决:修正了打包工作线程清理逻辑,避免在多次执行打包任务时在内部队列中持续累积无用引用。
5 ~% A+ l/ p7 d# C7 e进度条状态重构:引入真正的未定状态动态反馈(Indeterminate 动画),并在任务成功(100%)或失败(0%)后准确归位,杜绝常驻或卡死状态。: n) O6 R2 ?7 a7 F% b. C4 T% a
输出路径容错:优化路径校验,全面覆盖空白留空、纯目录、相对路径与绝对路径输入,并强制规范化补齐 .mdx 扩展名。3 j8 c# }9 P p% x n
插件及组件稳定性:插件加载器现已正确跳过抽象基类,并修复了目录选择器组件在特定场景下的报错异常。
. d; K: p7 D' Q- W5 A打包与跨平台分发
. j0 g# G& `/ |- _. U( w1 g: y
& ?4 W* g9 l" h3 A. P r R ]# j依赖自动打包:更新了 build.py 自动化打包逻辑,将 mdict_utils、mdict_utils.writer 及 xxhash 等原生组件正确注入 PyInstaller 的分析链。1 e# ]2 B; K" n
双架构 macOS 支持:除了 GitHub Actions 自动构建的 Apple Silicon (arm64) 安装镜像,提供本地独立编译的 Intel (x86_64) 专用 .dmg 安装包。
9 n `5 t% @' X9 U* T6 ~完整二进制矩阵:
# w" r4 Y6 M& G7 i$ c5 UmacOS (Apple Silicon): MdictStudioPro-macOS-arm64.dmg: k2 K! j3 K% F. d0 x
macOS (Intel): MdictStudioPro-macOS-x86_64.dmg
1 S8 ]1 y( R' a! |, ^, `Windows (x64): MdictStudioPro-Windows-x64.zip- |; H3 U6 \7 G' u- F5 c
Linux (x64): MdictStudioPro-Linux-x64.tar.gz ( i& @8 B p- q0 \# g9 `
V2.0 版本新特性
: _ B* X4 G( T! z1 p: H; M' q
# ], V% V: O8 U c% CV2.0 的核心亮点是全新的转换器插件系统——一套模块化的执行引擎,取代了以往硬编码、单一格式的解析方式。
' |* b/ q8 B% r8 t. G
( w9 O1 H+ q5 |% W) ~# O只需将插件文件放入应用的插件文件夹,Mdict Studio Pro 便会自动发现并加载它,根据插件声明的元数据生成对应的输入表单,并在后台线程中运行——无需修改核心程序的任何代码。这意味着任何人都可以为应用原生不支持的词典格式编写转换器,而无需 fork 整个代码库。
z1 s. O5 o5 Z8 n% D功能特性 ; i2 D) |3 j( P6 e9 B9 t% y
$ P6 a& p8 E8 a; f6 a3 K. o
- 模块化转换器插件——只需编写一个继承自 BaseConverterPlugin 的 Python 类,即可解析任意来源格式(Excel、CSV、XML 或自定义文本排版)并生成 MDict 源文件。图形界面会根据插件自动生成对应的输入表单。
- 打包/解包 .mdx 与 .mdd——从源文本编译生成词典(可选配套资源文件夹用于 .mdd),或将现有词典还原为源文件。
- 高级排版控制——插件可生成语义化的 HTML,包括用于注音符号/拼音标注的 <ruby> 标签、结构化的 <ol> 释义列表,以及基于 CSS 的排版布局。
- 稳健的 CJK 编码支持——可靠处理 UTF-8、UTF-16LE、Big5、GBK 及 GB18030 编码的源文件。
- SQLite 数据库集成——在原始文本/MDX 源文件与 SQLite 数据库之间相互转换,实现快速的程序化查询。
- MDX 检查工具——从已编译的 .mdx 文件中提取内嵌元数据与 .style(CSS)样式表,或直接在界面中对词典执行测试查询。
- 词形变化支持——集成外部词形变化数据(addflex.py、wordforms.txt),用于制作支持词形还原的词典。
- 跨平台——可在 macOS、Windows 与 Linux 上运行。, s. c1 A# B7 y! d+ n2 O
' R& ~. P+ a: s5 j; @
& y2 ? ~$ {" z0 U6 D* ~5 y* V! G0 ?
: w3 Q) D6 m- w
. e. ~$ k5 W9 L
词典截图
; }! C1 K& v8 y% r9 x. f2 N9 ]- b8 k& n
0 Z$ a2 [- q* i# f) C. P& a, _" m0 \% _! Y
. I/ V! `! [% R* P# d, Z: m5 ]: e; k% M' B/ ]3 V5 [7 j' g3 |
7 j$ Y/ E) I- ]8 s6 l
! E0 V4 _ G- D! `$ V8 n. h , `6 K! ]. P4 t* z' s
7 m# N1 c+ }* k9 P
. @% j4 f5 U. J n0 q" @& F1 {致谢与参考来源 (Credits & References)
& t6 k9 P$ a" f$ C
4 @" w9 Z( _, M6 @Mdict Studio Pro 的诞生离不开开源词典社区诸多优秀项目的支持与启发:
2 S: g9 C! ~3 |# v6 T& u$ ]
+ x% ]; h9 I. k) b7 u7 D* h 核心与底层引擎:
: P& y, j7 n6 w1 B9 s- z 界面基础设计参考了 jekovcar 开发的 mdictGui 原版项目。
6 @' }+ G+ f- L) ` 底层词典处理引擎基于 libukai 开发的 mdtt 与 mdict-utils。
& ~: k4 J/ G3 X3 j1 T( ^5 v* t9 Y8 ]! i/ u
样式表与排版设计:
/ U* |0 @- ~6 A cbgycd.css (WFG 风格) 基于 DFL 的原始样式设计。 Q$ [3 B* }+ W
jybcb.css 词典排版布局基于 bmcc718 的样式表方案。
7 t+ Q) a# ^6 _
6 f- E% i# h5 \( s% u. D; `+ R 插件与数据解析:& I* z3 W: ~( p6 I/ u- ~2 t
edudict_plugin.py 解析逻辑基于 kking 的原始脚本方案。; F! z5 u% E7 x% `( X
CC-CEDICT 数据转换处理基于 shbf@PDAWIKI 的制作方案。
) ?' S7 w n2 Y. c' e8 T3 Q下载:Mdict Studio Pro项目+ L7 b( _; \+ `' q9 _7 w9 b* S X
% @# Y$ |* ~4 t1 F& ~! _百度云盘:- q e3 i- t( N/ U3 Q1 T& t; q
. u. n6 l0 y/ I9 e. L相关:mdx/mdd解压&打包工具-Mac版
3 |! \& E$ i8 u0 {7 Q* v' c5 C& j. o0 F& f g4 F$ \
mdict-utils-Gui
% z8 ~; H _. u- v. W K4 J! S
, @" z# A+ z+ ~6 ~$ O) ]$ L" { h
, f6 |- t0 Y8 X0 i# U. j8 |+ vmdict-utils 界面版
3 d# c' f8 Q3 B; d1 B8 ]5 z1 L3 z; N/ W
mdict-utils mdict 打包解包工具' |& p/ p- _; b
. v1 g5 ~1 s7 v! h3 y' R
% v- r1 @8 A" Q |