hishidaの開発blog

EBシリーズ(EBPocket,EBWin,EBMac,EBStudio),KWIC Finder,xdoc2txt,読書尚友の開発者ブログ

StarDict対応について

ユーザ辞書や全文検索インデックスなどの大きな項目が大体片付いてきたので、次なるお題としてStarDict対応に取り組むことにした。特に外国人の日本語学習者からStarDict対応の要望が多かった。
ネット上にStarDict形式の辞書が多数アップされており、辞書の共通フォーマットとしては普及しているものの一つだと思う。
ここにファイルフォーマットの解説もある。
StarDict - The best dictionary program in linux and windows
stardictはdictdに由来するdictzipという圧縮形式を取り入れていて、約64KBのチャンク単位で圧縮することで、擬似ランダムアクセスを可能にしている。
dictzipの優れたところは、通常のgunzipで伸張が可能というところ。これは圧縮情報をgzipの拡張ヘッダに記録しており、gunzipでは拡張ヘッダを読み飛ばすため。ただし拡張ヘッダのサイズに制限があるため、1.8GBを超える辞書は圧縮できない(たぶん)。
これに対して、EPWINGの圧縮形式であるebzipでは、専用のユーティリティでないと伸張できない。ただしebzipはEPWINGのページ単位(2KB)に最適化しているので、EPWINGの圧縮形式としてはdictzipよりも性能的に有利だと思う。
StarDictのアプリはすでに数え切れないくらいでているが、EPWINGと串刺しできるのは便利かもしれない。またStarDict形式の辞書を作成するツールも提供されているため、ユーザ辞書としても使用できるかもしれない。
開発は3ヶ月から半年程度を予定している。