MDD/MDX 逐个写入进展

起因见 在编写将 wiktionary dumps 转为词典文件的开源工具

今天下午写了下,在我的简单例子下暂且实现了。

为了简化,目前:

  • 去掉了排序,似乎没有必要?排序的话会很难实现 (确实和 liwenyi777 说的一样,去掉排序后 GoldenDict Desktop 以外的 APP 无法正常查询,考虑把排序加上)
  • 去掉了编码参数,只留了 UTF-8,添加别的编码支持也不难
  • 去掉了设置密码,也不打算支持
  • 去掉了 1.2 版本,不清楚会造成什么兼容问题,添加也不难
  • 只有一个大 block,不清楚词条多了数据大了会怎么样,不过支持多个 blocks 也不是很难改

欢迎讨论

3 个赞

楼主会不会考虑转成stardict格式?

wiktionary 格式比较丰富,stardict 似乎不足以表现?

stardict支持xdxf和html,内容存储是纯文本,js、css、音频、图片在GoldenDict Desktop也是支持的。它的dict后缀(纯文本)可以进行dzip压缩,zip64资源包在GD PC还未支持(GD mobile曲线支持)。stardict开源,支持的设备还是比较多的,但支持html格式的软件极少。mdict格式的话,楼主可以参照wikit这个项目,因为楼主帖子中mdx去掉排序去掉加密,估计只有GoldenDict Desktop能支持了,除非另外再写这个壳词典客户端。

2 个赞

果然如此,欧路上没排序的 mdx 查词几乎是不可用状态

姑且加了个临时文件,只把 key 和偏移放在内存里(如果 Python 的 list 没有什么奇怪的内存布局,那么 en wiktionary 的这些 key 和偏移大概需要 100MB 内存),最后通过 seek 来简单实现排序写入,未来再优化了 :smiling_face_with_tear:

1 个赞