聊一聊制作mdx词典时那些容易踩到的坑

mdxbuilder4.0能接受“[asterisk]-”開頭的headword,例如“[asterisk]-oŋ”;可是“-”開頭的,例如“-東”,大多數沒問題,但有些不work,看跟哪個漢字搭配,奇怪。

赶紧扔掉这个4.0,因为很多软件不支持也不能解包

推荐zzzsleep的mdict-utils mdict 打包解包工具。
pip install mdict-utils

pip install mdict-utils 比 mdxbuilder 3.0 RC1 好嗎?

1 个赞

mdict-utils配合代码可以自动化打包。
mdxbuilder必须手动打包。

1 个赞

终于搞定了。
简单总结一下:如果制作mdd,且需要给欧路词典使用,并作为独立发音库;那么文件名最好不要包括各种半角符号,最好也不要以半角字符开头并包含全角字符;否则不知道会发生什么状况。
以上结论基于这几天近百次打包的尝试 :joy:

—————

更新下昨天的实验结果:
和某个文件的内容应该无关,和一系列的“碰巧”的文件名有关。相同的其他文件,仅重命名某一个文件,欧路就可以正常识别;“异常”文件保持异常名称,放入另一组原来正常的文件中,打包出来欧路也可以识别。我估计是生成的mdd中的索引恰好触发了欧路的某个“bug”,也可能是欧路故意设置的内部检测机制,兼容性差

————

刚刚在打包回的贴,发现打完还是有问题。等我先定位一下问题先,以下答复先作废哈。初步怀疑可能是我打包的文件太多了,总文件数超过30万,根目录下超过20万。仅删除掉大量文件后,用mdict-utils打出来的包是ok的。也可能是欧路的bug。


这两天刚遇到的坑,结合欧路词典说一下:
mdxbuilder(rc1)打包出来的mdd有问题,ios版无法识别为独立语音库,pc版"好像"都无法正常使用其中的语音。但是pc版mdict都使用正常。
mdict-utils打出来的mdd可以在pc版欧路被识别为独立语音库,正常发音。

1 个赞

具体版本多少?

1 个赞

别用mdxbuilder4.0rc1,用3.0

1 个赞

就是3.0的,应该是官方最后一个3.0系列的版本。否则欧路里也用不了,目前只是独立发音库有问题,词典里的发音没问题。

1 个赞

程序bug。上面讨论过。

MDX Builder 不是开源软件,没法修补bug。所以才推荐mdict-utils mdict 打包解包工具。

mdict-utils 1.0.8.3

这个是刚发布的最新版??

1 个赞

GitHub上

像是一个人。但官方安装渠道是
pip install mdict-utils

1 个赞

又发现一个类似的、不支持的符号 #,例如:“22.2.2 用#填充的单元格” 这个就无法作为keyword。

要命的是,英文问号可以用中文问号替换解决,但#就不好找可用的替代符号了。

用MdxBuilder的bigfile版来打包mdx出现的乱序问题

补充一个使用mdx/mdd的注意事项
当存在多个MDD文件时,如果希望只使用其中一部分的mdd,则应该保证所有mdd的命名序号是连续的:即如需要重命名为.mdd、.1.mdd、.2.mdd、3.mdd…

当然,前面的文件名应该与mdx保持一致