查看: 2946|回复: 11
打印 上一主题 下一主题

[工具] AppleDict2XML

[复制链接]

该用户从未签到

15

主题

137

回帖

2342

积分

解元

Rank: 5Rank: 5

积分
2342

灌水大神章小蜜蜂章笑傲江湖章

跳转到指定楼层
1
发表于 2015-8-19 18:27:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 qunwang6 于 2015-8-19 22:56 编辑

References:
Reverse engineering Apple Dictionaries
Apple dictionaries
usage:
  1. $ clang dedict.c -Wall -lz -o dedict
  2. $ clang strip.c -Wall -o strip
  3. $ ./dedict "Oxford Dictionary of English" | ./strip > dict.xml
  4. $ egrep -o 'd:title="(.+?)"' dict.xml | awk -F" '{print $2}' > words
复制代码

需要注意的是
1.
原始代码是默认转换/Library/Dictionaries/里的词典,若要转换自定义路径的词典,可将以下代码
https://gist.github.com/josephg/ ... d#file-dedict-c-L86
修改为
  1. sprintf(filename,"%sContents/Body.data",argv[1]);
复制代码

2.
OS X 10.11系统内置词典里面的文件目录发生了变化,需要改以下代码就可以用了。
要修改的代码
https://gist.github.com/josephg/ ... d#file-dedict-c-L86
修改为
  1. sprintf(filename,"%sContents/Resources/Body.data",argv[1]);
复制代码

已编译好的文件。
AppleDict2xml.zip (22.35 KB, 下载次数: 126)

本帖被以下淘专辑推荐:

  • TA的每日心情
    奋斗
    2022-8-10 09:09
  • 签到天数: 940 天

    [LV.10]以坛为家III

    12

    主题

    1667

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    14109

    笑傲江湖章灌水大神章

    2
    发表于 2015-9-22 13:55:43 | 只看该作者
    能把MDX转换成Mac自带词典可用的格式吗?

    该用户从未签到

    15

    主题

    137

    回帖

    2342

    积分

    解元

    Rank: 5Rank: 5

    积分
    2342

    灌水大神章小蜜蜂章笑傲江湖章

    3
     楼主| 发表于 2015-9-22 14:13:38 | 只看该作者
    28836919 发表于 2015-9-22 13:55
    能把MDX转换成Mac自带词典可用的格式吗?

    https://www.pdawiki.com/forum/fo ... hread&tid=13014
    慢慢看吧
  • TA的每日心情
    开心
    2018-6-30 06:56
  • 签到天数: 2 天

    [LV.1]初来乍到

    2

    主题

    177

    回帖

    1508

    积分

    解元

    Rank: 5Rank: 5

    积分
    1508

    灌水大神章

    4
    发表于 2015-9-24 06:01:11 | 只看该作者
    这个不会用啊,能给个教程吗?非常需要几部mac上自带的词典,论坛上没有的,或者哪位大神出手把自带的Oxford Chinese Dictionary做成mdx,非常感谢

    该用户从未签到

    0

    主题

    102

    回帖

    161

    积分

    禁止发言

    积分
    161
    5
    发表于 2017-1-21 22:25:45 | 只看该作者
    支持,谢谢分享
  • TA的每日心情
    奋斗
    2018-4-16 08:43
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    97

    回帖

    258

    积分

    童生

    Rank: 2

    积分
    258
    6
    发表于 2017-1-22 14:57:19 | 只看该作者
    这个工具真好!谢谢楼主分享!
  • TA的每日心情
    慵懒
    2017-12-18 12:18
  • 签到天数: 64 天

    [LV.6]常住居民II

    0

    主题

    41

    回帖

    660

    积分

    举人

    Rank: 4

    积分
    660

    灌水大神章

    7
    发表于 2017-7-31 02:09:23 | 只看该作者
    正在尋找這樣的工具,太感謝了!

    该用户从未签到

    0

    主题

    30

    回帖

    78

    积分

    白身

    Rank: 1

    积分
    78
    8
    发表于 2017-8-10 20:43:12 | 只看该作者
    好东西,顶一个.
  • TA的每日心情
    奋斗
    2020-12-22 18:46
  • 签到天数: 43 天

    [LV.5]常住居民I

    11

    主题

    205

    回帖

    1618

    积分

    解元

    Rank: 5Rank: 5

    积分
    1618
    9
    发表于 2019-10-29 15:45:00 | 只看该作者
    感谢楼主 小白要开始好好研究了
  • TA的每日心情
    奋斗
    2020-12-22 18:46
  • 签到天数: 43 天

    [LV.5]常住居民I

    11

    主题

    205

    回帖

    1618

    积分

    解元

    Rank: 5Rank: 5

    积分
    1618
    10
    发表于 2019-10-29 17:45:28 | 只看该作者
    大神,我有点没看懂帖子介绍的mac词典导出放大,我在推荐的apple dictionary主页找到了一条py代码并运行,显示出了这样的报错,请问该怎么办!
    Traceback (most recent call last):
      File "/Users/xxx/Downloads/macdictexport/0dedict.py", line 31, in <module>
        for word, definition in gen_entry():
      File "/Users/xxx/Downloads/macdictexport/0dedict.py", line 26, in gen_entry
        title = re.search('d:title="(.*?)"', entry).group(1)
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/re.py", line 199, in search
        return _compile(pattern, flags).search(string)
    TypeError: cannot use a string pattern on a bytes-like object
    >>>
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    16

    主题

    549

    回帖

    2万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    26462

    QQ 章

    11
    发表于 2019-10-29 20:14:50 | 只看该作者
    mrfu 发表于 2019-10-29 17:45
    大神,我有点没看懂帖子介绍的mac词典导出放大,我在推荐的apple dictionary主页找到了一条py代码并运行, ...

    需要用python2导出,python3有问题。github内容页已经讨论到python3不能使用这个问题了。
    macos下预装了python2和3,你需要切换成python2来导出,并且确认词典路径没有出错。mojave环境下我用python2导出mac词典成功,不过可惜的是,github没有给出索引词条的代码,单词没有屈折变化,例如查walks和walking不会跳转到walk之类的。

    该用户从未签到

    0

    主题

    4

    回帖

    20

    积分

    白身

    Rank: 1

    积分
    20
    12
    发表于 2022-8-20 15:31:47 | 只看该作者
    非常感谢分享