https://mdict.org

https://github.com/xiaolai/apple-computer-literacy/blob/main/Install-Mdict-Dictionaries-to-macOS-Dictionary.md

https://downloads-direct.freemdict.com/Language_Learning_Videos/英语/

https://downloads.freemdict.com

https://mdx.mdict.org

Mdict词库:免费下载mdx/mdd/css文件资源,支持欧路,深蓝,goldendict电子词典

Mdict 词典转换

  1. Mdict 格式词典下载

freemdict.com 和 mdict.org上有很多 Mdict 格式的词典文件。Mdict 的词典文件,通常由一个 .mdx 文件和一个 .mdd 文件构成,声音和图片都打包在 .mdd 文件之中。需要同时下载两个文件,放到同一个目录中进行处理。

推荐

Cambridge Advanced Learner's Dictionary 4ed

Merriam-Webster's Collegiate Dictionary 11ed (Pic&Sound)

Longman Dictionary of Contemporary English 6ed

Longman Language Activator

Collins CoBuild Advanced Learner's Dictionary

American Heritage Dictionary 5ed

Oxford Collocation Dictionary

事实上,前两个就已经足够了(都是有声词典)……

  1. 所需工具与环境

Python (python 3.11.5 specified)

conda create -n mdict python=3.11.5

conda activate mdict

pip install pyglossary lxml beautifulsoup4 html5lib

install Homebrew; if brew already installed, skip this section.

/bin/bash -c "\((curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'export PATH="/usr/local/bin:\)PATH"' >> ~/.zshrc

source ~/.zshrc

speex for converting spx to wav

brew install speex

ffmpeg for converting wav to mp3

brew install ffmpeg

另外,还需要下载 Dictionary Development Kit

下载地址:Additional Tools for Xcode

下载与操作系统中安装的 xcode 匹配的 “Additional Tools for Xcode”

check out xcode version

xcodebuild -version

将其中 Utilities 下的 Dictionary Development Kit 目录整体拷贝粘贴到本机 /Applications/Utilities 下

用以下代码替换 /Applications/Utilities/Dictionary Development Kit/bin/build_dict.sh 的第 221 行:

rsync -a "\(OTHER_RSRC_DIR"/ "\)OBJECTS_DIR"/dict.dictionary/"$CONTENTS_DATA_PATH" || error "Error."

3. 转换 mdx

pyglossary 使用方法如下:

pyglossary --write-format=AppleDict <mdx_file> <output_dir>

以 Merriam-Webster's_Collegiate_Dictionary_11th(Pic&Sound).mdx 为例:

pyglossary --write-format=AppleDict Merriam-Webster's_Collegiate_Dictionary_11th(Pic&Sound).mdx "Merriam-Webster's Collegiate Dictionary"

4. spx 文件的转换

如果 OtherResources 目录里的声音文件原本就是 .mp3 就可以跳过这一步。但,如果是 .spx 的话,就需要将 .spx 文件转换为 .mp3 文件:

long time needed, possibly up to an hour or more...

for file in *.spx; do

# Decode the SPX to WAV

speexdec "\(file" "\){file%.spx}.wav"

# Encode the WAV to MP3

ffmpeg -i "\({file%.spx}.wav" -f mp3 "\){file%.spx}.mp3"

# Optionally remove the intermediate SPX file

rm "\(file"
# Optionally remove the intermediate WAV file
rm "\){file%.spx}.wav"

done

而后,xml 文件里的声音文件名也需要转换(可以提前用 vscode 或者 sublime text 打开 xml 查看一下,根据需要批量替换的字符串修改以下命令)

sed -i '' 's/.spx/.mp3/g' file.xml

如果需要将 .wav 文件批量转换为 .mp3:

for file in *.wav; do

ffmpeg -i "\(file" -f mp3 "\){file%.wav}.mp3"

# Optionally remove the intermediate WAV file

rm "$file"

done

5. 其它定制信息

pyglossary 生成的文件中,.css 文件,可根据自己需要修改。

macOS 原生词典里面是不支持 base64 格式的字体文件的,所以我们需要手动将原先css里面base64格式的字体转换成它原来的样子并放到 Contents 文件夹下。

Base64 Online - base64 decode and encode (motobit.com)

.plist 文件中,CFBundleName 是词典缩写(显示在词典的标签栏上),CFBundleDisplayName 是词典名称的完整名称(显示在 Preference 对话框中),可根据自己需要修改。

  1. 安装词典

cd "Merriam-Webster's Collegiate Dictionary"

make

生成的词典在 objects 目录中。

安装词典到 ~/Library/Dictionaries:

make install

而后就可以在 Dictionary 里,cmd+, 在对话框里选择新安装的词典了。

  1. 删除词典

在 ~/Library/Dictionaries 目录中将词典的整个目录删掉即可。

  1. 捷径

可以在百度网盘下载一个压缩包,解压缩后,把其中六个词典目录挪到 ~/Library/Dictionaries 目录之下即可,重新启动 Dictionary.app,cmd+, 在对话框里选择新安装的词典。

链接: https://pan.baidu.com/s/1TpYyYYdvFGsMLI65i7NBog?pwd=buqn 提取码: buqn

Cambridge Advanced Learner's Dictionary.dictionary

Collins COBUILD Advanced Learner's Dictionary.dictionary

Merriam-Webster's Collegiate Dictionary.dictionary

Longman Dictionary of Contemporary English 6ed.dictionary

Longman Language Activator.dictionary

Oxford Collocation Dictionary.dictionary

Edu-Dict + English Learning Materials: Mdict词库:免费下载mdx/mdd/css文件资源,支持欧路,深蓝,goldendict电子词典的更多相关文章

  1. Flatic – 超齐全的 Web 元素界面素材库免费下载

    Flatic 是一个庞大的用户界面工具包,包含数以百计的网页元素,这将有助于你在 Photoshop 中轻松设计整个网站.成套的图标和动作都已包含在套件中.该素材包包括超过100个 PSD 元素.您可 ...

  2. paip.输入法英文词库的处理 python 代码 o4

    paip.输入法英文词库的处理 python 代码 o4 目标是eng>>>中文>>atian 当输入非atian词的时候儿,能打印出 atian pinyin > ...

  3. Rime中州韵导入极点五笔词库(附:自制词库)

    前言 之前写了一篇文章,[输入法]Rime-中州韵 基本设置 附:官方定制指南,其中导入词库这一块引用其它博主的文章,最近发现那个工具链接已经过期了,参考了百度贴吧的说明,不要直接使用工具去导入会更好 ...

  4. (转载)Rime输入法—鼠须管(Squirrel)词库添加及配置

    为什么用Rime 13年底的时候,日本爆出百度的日本版本输入法的问题,要求政府人员停用,没当回事,反正我没用,当然了,有关搜狗和用户隐私有关的问题就一直没有中断过,也没太在意.但,前几天McAfee爆 ...

  5. (转载)Windows下小狼毫输入法(Rime)的安装与配置(含导入搜狗词库)

    div id="cnblogs_post_body" class="blogpost-body"> 最近彻底烦透了搜狗拼音输入法的各种流氓行为,自动升级不 ...

  6. Fcitx使用搜狗词库与皮肤

    在 \(\text{Linux}\) 环境下,\(\text{Fcitx}\) 确实是最好用的开源输入法之一.然而 \(\text{Windows}\) 下的巨头输入法 -- 搜狗,对 \(\text ...

  7. python jieba分词(结巴分词)、提取词,加载词,修改词频,定义词库 -转载

    转载请注明出处  “结巴”中文分词:做最好的 Python 中文分词组件,分词模块jieba,它是python比较好用的分词模块, 支持中文简体,繁体分词,还支持自定义词库. jieba的分词,提取关 ...

  8. 中州韵输入法(rime)导入搜狗词库

    rime是一个非常优秀的输入法,linux平台下的反应速度远超搜狗,也没有隐私风险.2012年开始接触它,到后来抛弃了它,因为rime自带的词库真的太弱了,也懒得折腾.最近发现一个词库转换软件叫ime ...

  9. 深蓝词库转换2.2发布,支持手心输入法和Win10微软拼音

    距离上一次大版本的发布已经很久很久了,中间是不是会收到一些用户的来信,提出新的需求,于是只是做小版本的更新,终于积累了一些更新后,打算做个大版本的发布了. 深蓝词库转换是一个输入法的词库互转和生成软件 ...

  10. solr6.3.0升级与IK动态词库自动加载

    摘要:对于中文的搜索来说,词库系统是一个很比较重要的模块,本篇以IK分词器为例子,介绍如何让分词器从缓存或文件系统中自动按照一定频次进行加载扩展词库 Lucene.Solr或ElasticStack如 ...

随机推荐

  1. 操作系统综合题之“采用FCFS(先进先出)调度算法执行,计算进程平均带权周转时间”

    一.问题:有3个进程p1.p2.p3,其进入系统的时间和服务器时间如下表所示,按FCFS调度算法,她们的平均带权周转时间是多少(注:四舍五入精确到小数点后两位) 二.参考答案 答: p1周转时间 = ...

  2. 遇到的问题之“对象不为空,字段为空,取出使用时报空指针异常【特例场景:Optional的使用】”

    一.场景 二.原因 目前找到的原因是:使用Optional.of()方法对其判空后直接报错了,就没有走orElse了 Optional.of()源码 Optional.java /** * Retur ...

  3. 决策单调性DP

    决策单调性DP是一个非常重要的DP类别.在决策点随枚举点增加单调不降时,可以有效地优化复杂度. 一般而言,决策点指的是对于一个 \(f[i]\),它的值需要从另一个值j中转移,而对于所有j,令 \(f ...

  4. 那些神奇的CSS特性,你都有用过么?

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  5. C++右值和移动

    值分左右 C++表达式的值类别: 这些名词的字面含义: 一个lvalue是通常可以放在等号左边的表达式,左值 一个rvalue是通常只能放在等号右边的表达式,右值 一个glvalue是generali ...

  6. 操作系统 -- linux初始化(上):GRUB与vmlinuz的结构

    本节树立启动的整体流程,重点解读Linux上GRUB是怎样启动,以及内核里的"实权人物"-- vmlinuz内核文件是如何产生和运转的. 全局流程 在机器加电后,BIOS会进行自检 ...

  7. 一种基于偏移流和纯字符串流来存储和读取字符串列表的方法【C#】

    字符串的存储长度是可变的,在C#中,BinaryWriter和BinaryReader在Write,ReadStirng的时候,都在单个流中字符串的二进制数组前面加了一个二进制数组的长度信息,方便读取 ...

  8. save could notbe completed!!!

    错误描述:ctrl+s报错 eg: 原因及解决:eclipse正使用的字符集GBK,不能支持所有代码的映射,需要删掉不符合和字符或者换个字符集--所以还是比较推荐后者:Projext->Prop ...

  9. 阅读类元服务开发笔记---week1

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...

  10. 6 MyBatis动态SQL之choose(when、otherwise)语句

    1 MyBatis动态SQL之if 语句 2 MyBatis动态sql之where标签|转 3 MyBatis动态SQL之set标签|转 4 MyBatis动态SQL之trim元素|转 5 MyBat ...