求助.dict.dz如何转成.mdx和.mdd格式词典?

学习小语种需要从网上找到几本stardict字典,但因为本人背单词使用eudic所以依然需要.mdd/.mdx格式的词典,请问如何转换?
另:为何有stardict格式却没有.mdd/.mdx格式?请问是否是因为stardict有某方面优势?

我个人认为别转换了,直接放在Goldendict里用。

参看:

词库种类及使用方法

你一定要用欧路,就得看其说明:

欧路词库编辑器 -《欧路词典》的词库制作工具

支持源文件格式

  • StarDict词库
  1. 使用CvtStarDict2Txt将词库转为Txt文件
  2. 直接将该文件作为源文件,即可压缩
1 个赞

主要是goldendict没有背单词功能所以还是暂时要用欧路
以及我刚刚又看了一遍,貌似这个方法并不支持.dict.dz格式… = =

那样的话,你把startdict词库转为文本,用文本做mdx,有图像就做mdd吧。

没有一键转换的软件,得用人工。

参看:

新手指南:怎样编辑mdx?

感恩解惑!下周闲下来研究一下!

要进行词典格式转换,你应该把词典解包成源数据,然后重新进行打包
我记得在本坛见过通用的词典解包工具,但是在本坛、谷歌、GitHub 都没搜出来
退求其次找专用的,随手谷歌了一下 .dict.dz unpack 搜到这个

有兴趣可以看看步天歌讨论的这个工具:

PyGlossary:将不同格式的字典转换成 Kindle 字典

1 个赞

很遗憾,由于mdx未完全开源的原因,这个工具不能实现idx一键转为mdx,还是用上面老哥提到的解压然后再压缩吧

最大优势:不会有版权纠纷(个人推测)

看法由来:
stardict格式是由国人胡正先生于大学在校期间制定、完善的开源电子词典文件格式(主要开发时间:2002-2006年),由于其在词典索引上做了优化,外加使用清晰明确的软件许可证(GNU General Public License)分发,在 Linux 广受好评。

你找到的idx格式的小语种词典很可能出自某位使用Linux的外国程序员友人之手,而国内的程序员在彼时(2002-2006年)还是少数群体,关注这个项目的不多,开发者胡正不久后由于一些原因再也没有更新过 stardict ——这可能是 mdx 能后来居上的主要原因吧。

P.S.:胡正名列「 华人编程界的四大魔道天王」某些程度上可能不是因为stardict 而是其个人博客:

辟支佛胡正 · 阿罗汉尊者 · 功德藏闯菩萨 · 大慈愍心佛 - 菩萨道Linux编程 (huzheng.org)

(看网页的预加载标题应该也能嗅出一点诡异的味道,我劝大家还是不要点开了233)

谷歌应用商店里,仍然有大把的词典APP使用胡正的StarDict格式,很多安装量都在几百万以上,不看博客也是名符其实的。

这位已经涅槃了吧,:laughing:

词典的包里有三个文件,idx仅有500kb,另一dz文件有1200kb,请问解idx和解dz的产出是一样的吗?

目标是欧路词库,就不需要做mdx了。

1.用免费软件7zip (其他解压软件大概也行)把dz解压,就得到dict文件。

2.用欧路说的dict转文本软件CvtStarDict2Txt,把dict转换为文本。

3.用欧路的编译程式把文本编译成欧路可用的词库。

7zip下载
https://www.7-zip.org/download.html

供参考:

StarDict is a program for reading language dictionaries (AKA glossaries), written by Hu Zheng. It was intended as a successor to StarDic. Its dictionary format consists of an info file with extension “.ifo”, a data file with the extension “.dict” (commonly compressed with Dzip to become “.dict.dz”), an index file with extension “.idx”, and a synonyms file with the extension “.syn”. This is not to be confused with the Dictd format, also uses a data file with a “.dict” or “.dict.dz” extension, but has nothing else besides an index file, for which it uses the extension “.index” instead of “.idx”.

http://justsolve.archiveteam.org/wiki/StarDict

2 个赞

cool,这招确实管用,一下子解决了!感谢

欧路字典根据官网是支持eudict,mdict,lingoes,babylon等词典格式, PyGlossary支持stardict和lingoes格式的读和写操作的,你可以尝试将stardict格式转成lingoes格式,看欧路能不能读取。