Repository navigation
Mdict Studio Pro v2.1
🎯 Headline feature: Sorting Standard selector
Different MDX readers assume different string-collation rules when doing binary search against a dictionary's key block — a mismatch between how the file was built and how the reader searches it can cause certain entries (especially uppercase and accented headwords) to silently fail to resolve, even though they're present in the file.
The Pack tab now lets you choose which convention to build against:
- mdict-utils / Unicode (default) — full-Unicode case folding before sorting. Matches BlueDict (深蓝词典) and GoldenDict.
- MdxBuilder — ASCII-only case folding, accented/non-ASCII capitals left untouched. Matches the official MDict app and DictTango.
— if you hit an edge case where entries still don't resolve as expected under either option, please open an issue with a minimal repro.
⚙️ Native Python packing engine
When available, MDX building now runs through a direct, in-process writer instead of shelling out to the mdict CLI — faster startup for the packing step and the mechanism that makes the Sorting Standard option above possible. Falls back automatically to the previous CLI-based path if mdict-utils isn't importable as a library.
🐛 Fixes since v2.0
- Title and Description metadata fields are now correctly read from the Pack tab (previously ignored on some paths)
- Fixed a background-worker cleanup issue that could leak memory across repeated Pack operations
- Progress bar now correctly reflects success/failure state instead of getting stuck mid-operation
- Smarter output-path handling: blank, folder-only, relative filename, and absolute path are all now handled correctly, with
.mdxextension always enforced - Plugin loader now correctly skips abstract base classes instead of crashing on them
- Fixed a directory-selector widget bug that could raise an error under certain conditions
🐛 Critical Bug Fixes & Stability Improvements
- Standalone macOS
.appCrash Resolved ([Errno 2]): Fixed a critical issue where operations like Unpacking, Database Conversion, and Tools failed because the packaged app could not locate the externalmdictexecutable. All subprocess shell commands have been entirely replaced with a native, in-memory Python execution worker. - MDD Packing Engine Failures: Fixed data-structure crashes (
generator has no len()andtuple indices) during MDD creation. The packing engine now correctly scans resource directories, calculates file sizes, and builds fully materialized memory maps before passing them to the custom sorting writer. - Missing Metadata Output: Fixed a bug where the "Get Meta Info" and "Export .style" tools produced blank logs. The application now successfully intercepts internal
stdoutstreams and routes terminal print data directly to the GUI process log. - MDD Output Path Resolution: The "Build MDD" feature no longer forces the output file to use the source folder's name. It now correctly respects custom filenames and specific target directories typed into the Output field, ensuring your
.mdxand.mddfiles match perfectly.
19-09-2026
- Native Execution Engine: Replaced external shell commands with native Python workers, completely resolving the
[Errno 2]crashes on standalone macOS builds. - Thread Safety: Added automatic UI locking during background tasks to prevent
sys.stdoutrace conditions and log collisions. - Reliable MDD Packing: Fixed
generator has no len()and tuple data-structure crashes when packing large media directories. - Metadata & Stylesheets: Restored the "Get Meta Info" and "Export .style" tools. The app now properly intercepts streams and saves embedded
.stylefiles. - Smarter Output Paths: The "Build MDD" feature now respects custom filenames and automatically syncs with your
.mdxfile names. - Fallback Stability: Patched fatal
NameErrorbugs and argument formatting errors in the CLI fallback mode.
📦 Downloads
- macOS (Apple Silicon) —
MdictStudioPro-macOS-arm64.dmg - macOS (Intel) —
MdictStudioPro-macOS-x86_64.dmg - Windows (x64) —
MdictStudioPro-Windows-x64.zip - Linux (x64) —
MdictStudioPro-Linux-x64.tar.gz
Requirements
mdict-utils(pinned version — seerequirements.txt)- See the README for full setup instructions if running from source.
Full Changelog: V2.0...v2.1.0