V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
探索世界的好奇心万岁
Udacity
网易公开课
Godel, Escher, Bach: An Eternal Golden Braid
牛客网
crella
V2EX  ›  分享发现

我所知的 MDict"开源"史

  •  
  •   crella · 246 天前 · 2239 次点击
    这是一个创建于 246 天前的主题,其中的信息可能已经有所发展或是发生改变。

    不探讨什么,仅作记录

    MDict 作为一个词典软件,虽然功能并不是很多,但是全文查找、多词典联合查询、支持外挂发音库等功能都有。最关键的是它的词条排版形式是 html,方便用户抓取网页内容并直接制作词条;同时程序支持外挂资源文件 mdd 中的 css 和 js,所以很多人都可以给他做词典或者修改词典的样式。

    mdict 的作者是 Rayman Zhang。mdict 安卓版开源的仓库是 https://bitbucket.org/raymanzhang/mdict-android-opensource 。(如果网速慢,可以访问一个非官方镜像:https://github.com/torappinfo/mdict-android-opensource )

    mdict_android_opensource.jpg

    打开仓库下的 /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 的社区文化真的很好。

    11 条回复    2020-03-03 09:05:30 +08:00
    dazkarieh
        1
    dazkarieh   246 天前
    感谢分享,之前在 pdawhi 上收集了很多欧陆词典的 mdx 字典,对自己语言学习帮助很大。
    justfun
        2
    justfun   245 天前
    14 年的时候开始用的,词库是真的好用。
    timonwong
        3
    timonwong   245 天前 via iPhone   ❤️ 2
    是的,当初是我借鉴了 xwang 的工作弄到 goldendict 里面了,太多年了😂
    swulling
        4
    swulling   245 天前 via iPhone
    这个你说的破解,如果没有复用代码,应该以后构成侵犯专利,而不是版权。

    这是假设 mdict 申请了对应专利得情况下,如果没有,就啥都不侵犯。
    swulling
        5
    swulling   245 天前 via iPhone
    A 做了东西,并申请了对应专利。
    B 如果直接抄内容,就是侵犯版权也就是著作权。B 用自己的代码实现了同样逻辑,只侵犯专利。
    loginbygoogle
        6
    loginbygoogle   245 天前 via iPhone
    mdict 已经过时了。
    no1xsyzy
        7
    no1xsyzy   245 天前
    @swulling 如果说只是恰好可以读写相同文件格式呢? doc 文件在微软视开源为癌症的时代就破解出来了啊。
    swulling
        8
    swulling   245 天前
    @no1xsyzy 但是做不到完美兼容,而且并不是技术原因,只是部分格式有专利不能碰

    不仅仅是 doc,哪怕是所谓开放的 docx,也不是完美兼容的。
    no1xsyzy
        9
    no1xsyzy   245 天前
    @swulling 我听说至少 doc 成 ISO 标准后,以及 docx 不能完美兼容的原因是微软写了 spec 又不按照 spec 写,导致按照 spec 实现就是不兼容的。
    而且我碰到的不兼容甚至更为基础,比如随便花两条线然后组合,LibreOffice 打开就变了。
    Liampor
        10
    Liampor   244 天前
    花钱买了 欧路的学习账号,含桌面和移动版的路过,觉得挺好用的,也支持第三方的 mdd mdx
    no1xsyzy
        11
    no1xsyzy   240 天前
    @swulling 想了想不对,doc 是 ISO 标准,任何专利都是标准必须专利,必须符合 FRAND,很难说不能碰。
    ……那样的话此主题好像反而可以套用专利。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2893 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 13:48 · PVG 21:48 · LAX 06:48 · JFK 09:48
    ♥ Do have faith in what you're doing.