之前做的词典遇到排序问题比较麻烦,我一个个手动改也很费劲,所以决定做个转换工具,有需要的可以自行转换,下面是使用说明:
MDict Sort Converter
当前版本:1.1.1
用于在两种 MDX key 物理排序之间转换词典:
- mdict-utils:对完整 Unicode 字符执行
lower()后应用 StripKey。适合深蓝词典。 - MdxBuilder:只折叠 ASCII
A-Z,重音大写字母保持不变,再应用 StripKey。与 MdxBuilder 3.0 RC1 一致,适合 MDict 和 DictTango。
转换只改变 key block 的物理顺序,不改变 key 的原始拼写、正文内容或同名记录的先后顺序。
图形界面
直接双击 MDictSortConverter.exe,或不带参数运行:
MDictSortConverter.exe
可反复添加多个 .mdx、MDict 源 .txt 或目录。“添加目录”旁的“包含子目录”勾选框决定随后添加的目录是否递归扫描,列表的“扫描范围”列会保留每个目录添加时的选择。界面还可选择排序方式、输出目录、文件名后缀、是否保持原目录结构、是否覆盖以及是否复制同名 MDD/CSS/PNG。
命令行
MDictSortConverter.exe dictionary.mdx --style mdict-utils
MDictSortConverter.exe dictionary.txt --style mdxbuilder
MDictSortConverter.exe a.mdx b.mdx dictionaries --style mdxbuilder --output-dir converted
MDictSortConverter.exe dictionaries --no-recursive --flatten --output-dir converted
MDictSortConverter.exe dictionary.mdx --style mdict-utils --in-place
常用参数:
--style mdict-utils|mdxbuilder
--output-dir DIR
--suffix TEXT
--overwrite
--in-place
--no-recursive
--preserve-structure
--flatten
--copy-resources
--source-encoding UTF-8|UTF-16|GBK|BIG5
默认不会覆盖源文件。指定输出目录时,默认按每个输入目录的相对路径保持原始层级;--flatten 可将结果平铺到输出目录,若产生重名会在转换前报告冲突。输出后缀分别为 _mdict_utils 和 _mdxbuilder。--in-place 会原子替换输入 MDX,应仅在已有备份时使用。
TXT 输入采用标准 MDict 文本结构:第一行为 key,随后是正文,以单独一行 </> 结束记录。输出统一为未加密的 UTF-8 MDX 2.0。已有 MDX 的 Title、Description、重复 key 和正文会保留;其他厂商私有头字段与原加密方式不会原样复制。
MDictSortConverter.zip (12.7 MB)

