不探讨什么,仅作记录
MDict 作为一个词典软件,虽然功能并不是很多,但是全文查找、多词典联合查询、支持外挂发音库等功能都有。最关键的是它的词条排版形式是 html,方便用户抓取网页内容并直接制作词条;同时程序支持外挂资源文件 mdd 中的 css 和 js,所以很多人都可以给他做词典或者修改词典的样式。
mdict 的作者是 Rayman Zhang。mdict 安卓版开源的仓库是 https://bitbucket.org/raymanzhang/mdict-android-opensource 。(如果网速慢,可以访问一个非官方镜像:https://github.com/torappinfo/mdict-android-opensource )
打开仓库下的 /libs/armeabi/可以看到 libmdx.so 是二进制文件。官方仓库和 torappinfo 的镜像里 libmdx.so 都是 2014 年的版本。
$ file libmdx.so
libmdx.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, stripped
然后 http://goldendict.org/forum/viewtopic.php?f=12&t=1909 里面有人讨论能不能给 goldendict 添加 mdict 支持,几个 id 都说这核心库是闭源的,不能直接添加到 gpl 协议的 goldendict。
后来 goldendict 支持了 mdict 词典,我记得应该是使用了或者借鉴了 xwang 的 python 代码,支持读。xwang 的仓库是 https://bitbucket.org/xwang/mdict-analysis ,这是我当时能搜索到的最早的支持 mdx 格式的开源仓库。
然后 mdict 词典的主要论坛:pdawiki 很早就有了导出 mdx 为 txt 的工具:mdxexport(原名 getdict),作者是 yhssdl,一个 mfc 的体积为 64k 的工具。
过一段时间再去搜索,发现基于 python 的把 mdict 内容搬到网页上查询的代码都有了。
大概 2013~2014 年,我在 pdawiki 上看到有人发帖问为什么 mdict 不开源核心代码。然后各个大佬都出现了,rayman(作者)说没有必要开源。(以下的描述记不清楚,不一定正确:)一些制作过导出 mdx 工具的大佬说没有必要开源,功能够用,开源了很多后果很难想象。我好像还看过一篇文章,说 rayman 本来是想把 mdict 当作商业化项目来开发的,但是时间不够,于是就先把软件发出来分享。因为未来还有商业化的打算,所以就不开源核心库。
百度百科有 rayman(张文伟)的访谈,搜索:"张文伟(电子辞典)",其中也提到了他有商业化的打算但还未列其计划。
进入 2020 年,现在在 github 上搜索"mdict",各种语言实现的导出或生成 mdx、查询 mdict 词条的代码仓库都有好几页了……这 mdict 的核心库是事实上的(被动地)开源了。我暂时没搜索到 mdict 核心库官方开源的链接或仓库。
知乎有个讨论解析 mdict 的问题,https://www.zhihu.com/question/22143768 ,其中提到"不过 2016 年 4 月,MDict 作者更新了 mdx 格式,新的格式尚未有相关解析,不过目前也基本没人制作新 mdx 格式的词库'。
mdict PC 版 2.0.10 的编译日期是 20190314。
总结: MDict 的作者 rayman 开源其 UI、不开源其核心库,但核心库事实上已被很多热心人士“破解”并制作出相关工具,形成一种事实上"开源"的状态。
题外话:mdict 到现在在安卓上占用的资源都很少。高中的时候用手机查 mdict 的英语词典真的很爽,如果手机插上 sd 卡并且放得下几 G 的维基百科 mdx、mdd 文件,还能在手机上看维基百科。谢谢制作了中文维基的 Qiu Haibo。不介意盗版的话,pdawiki 的社区文化真的很好。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.