最近、EBWin/EBPocketの対応辞書にMDictを加えてほしいという要望が寄せられるようになったので、対応する方向で検討中。
まず、MDictの公式らしきページはこちら。
http://www.octopus-studio.com
iOS,Android,PC,WindowsMobile用があるらしい。
multi-platform open dictionaryとなっているが、このサイト以外で公開されているものがあるかどうかは知らない。
ただしテキストの辞書からMDictの辞書形式である mdx に変換するMdx file builderが提供されており、mdx辞書を自作することは容易にできるらしい。
辞書の形式は非公開だが、リバースエンジニアリングでかなり明らかになっている。参考になりそうなURLは:
辞書の構造図と、PythonによるMDict のreaderライブラリが公開されている。
上記を参考に開発された、Pythonによるwriterライブラリ、および辞書形式の解説文書がある。
.Netによるmdxライブラリの実装例。ただし使いにくそう。
mdict android版のソースだが、mdict のエンジン部は外部ライブラリになっており、ソースは開示されていないみたい。
資料を見ているとエンコードはUnicode,GBK,Big5らしい。とりあえずUnicodeだけサポートし、暗号化を割愛すれば、StarDict対応と同程度の工数でできるかもしれない。
MDictは中国人の個人開発者の辞書という点でStarDictと共通点がある。StarDictが事実上開発休止状態なのでMDictのほうが活発に見えるのかもしれない。ただ私の目には使用できる辞書はStarDictと大差なく見える。StarDictは少なくとも辞書形式が文書化されていて、第三者が開発したビューアが多数公開されている。MDictは開発元のアプリ以外に見当たらない ( Goldendict, bluedict, Eudicなどの辞書ソフトでサポートしているというご指摘をいただいたので訂正する)。
MDictの対応を要望しておられる方々は、実装したら本当に使ってくださるのだろうか。
私は個人的にはMDictに対応したいという強い動機はもっていない ( というのは全く本心だが、期待してくださっている方もいるので、マイナスのことはあまり書くべきでない)。あまり時間をかけずにミニマムの機能だけ実装する方針でいきたい。