我所知的 MDict"开源"史

2020-02-26 20:02:33 +08:00
 crella

不探讨什么,仅作记录

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 的社区文化真的很好。

7182 次点击
所在节点    分享发现
14 条回复
dazkarieh
2020-02-26 20:40:20 +08:00
感谢分享,之前在 pdawhi 上收集了很多欧陆词典的 mdx 字典,对自己语言学习帮助很大。
justfun
2020-02-26 23:07:16 +08:00
14 年的时候开始用的,词库是真的好用。
timonwong
2020-02-26 23:29:34 +08:00
是的,当初是我借鉴了 xwang 的工作弄到 goldendict 里面了,太多年了😂
swulling
2020-02-26 23:52:52 +08:00
这个你说的破解,如果没有复用代码,应该以后构成侵犯专利,而不是版权。

这是假设 mdict 申请了对应专利得情况下,如果没有,就啥都不侵犯。
swulling
2020-02-26 23:54:45 +08:00
A 做了东西,并申请了对应专利。
B 如果直接抄内容,就是侵犯版权也就是著作权。B 用自己的代码实现了同样逻辑,只侵犯专利。
loginbygoogle
2020-02-27 06:10:41 +08:00
mdict 已经过时了。
no1xsyzy
2020-02-27 13:11:43 +08:00
@swulling 如果说只是恰好可以读写相同文件格式呢? doc 文件在微软视开源为癌症的时代就破解出来了啊。
swulling
2020-02-27 13:39:55 +08:00
@no1xsyzy 但是做不到完美兼容,而且并不是技术原因,只是部分格式有专利不能碰

不仅仅是 doc,哪怕是所谓开放的 docx,也不是完美兼容的。
no1xsyzy
2020-02-27 13:57:39 +08:00
@swulling 我听说至少 doc 成 ISO 标准后,以及 docx 不能完美兼容的原因是微软写了 spec 又不按照 spec 写,导致按照 spec 实现就是不兼容的。
而且我碰到的不兼容甚至更为基础,比如随便花两条线然后组合,LibreOffice 打开就变了。
Liampor
2020-02-28 05:53:37 +08:00
花钱买了 欧路的学习账号,含桌面和移动版的路过,觉得挺好用的,也支持第三方的 mdd mdx
no1xsyzy
2020-03-03 09:05:30 +08:00
@swulling 想了想不对,doc 是 ISO 标准,任何专利都是标准必须专利,必须符合 FRAND,很难说不能碰。
……那样的话此主题好像反而可以套用专利。
Nasser
2021-03-19 14:29:29 +08:00
@loginbygoogle mdict 已经过时,那么现在主流的是什么呀?
ko1haha
2022-01-03 18:13:55 +08:00
主流的是在线翻译软件吧,看了翻译基本不用动另一个语言的脑子,哈哈哈
sjtulyj
332 天前
mdict 用 html 富文本, 导致写不出好的 cli 词典

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/647812

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX