これまでに、Leopardの「辞書」アプリケーション(Dictionary.app)で英辞郎や郵便番号辞書を使う方法を紹介してきたが、EPWING形式の辞書を使いたいという要望が結構あるようなのでチャレンジしてみた。 ありがたいことに、hishida氏がEPWING構造解析ツール「EBDump」を、太田純氏がEBDumpの出力をHTMLに変換する「ebd2html」を発表されているのでこれらを利用させていただいた。なお、両ソフトともWindows用なので、以下で述べる作業を行うにはWindowsが必要になる(Parallels Desktop for Macなどの仮想環境でもOK)。
○EPWINGのデータをHTMLに変換する
変換に使ったEPWING辞書は、COLLINS COBUILD Resource Pack on CD-ROMをEBStudioでEPWING化したもの。
まず、このEPWING辞書をebd2htmlのページで紹介されている方法でHTMLファイル(COBUILD.htmlとする)に変換する(Windows上での作業になる)。
(ここでEPWING化したCOBUILDを用いているのは、外字の数が少なくて検証が楽だったため。COBUILD→辞書アプリの変換が目的なら、COBUILD変換スクリプトが生成したHTMLをそのまま使えばいいだろう。)
○Xcodeをインストールする ここからはMac上での作業になる。
・英辞郎の場合と同じく、Mac OS X用の開発ツール「Xcode」をインストールする(Leopardのインストールディスクの「Optional Installs」→「Xcode Tools」→「XcodeTools.mpkg」を実行)
・「/Developer/Exmaples/Dictionary Development Kit/project_templates」フォルダを適当な場所にコピーする
○変換用のスクリプトを準備・実行
・ここから、変換用のスクリプトをダウンロードして、(コピーした)「project_templates」フォルダに解凍する(同じファイル名は上書き)
・EPWINGから取り出したHTMLファイル(COBUILD.html)も、同じく「project_templates」フォルダにコピーする
・「ユーティリティ」フォルダの「ターミナル」アプリケーション(Terminal.app)を起動して、「cd」コマンドで(コピーした)「project_templates」フォルダに移動する
・ターミナルでruby epwing_conv.rb < COBUILD.html | ruby gaiji_rep.rb cobuild.lst > MyDictionary.xml ; make ; make installと入力 ・「辞書」アプリケーション(Dictionary.app)を立ち上げると、COBUILDが使えるようになっているはず
○他のEPWING辞書を変換する際のポイント
・日本語の辞書を変換する際は、「epwing_conv.rb」内の「iconv = Iconv.new(‘UTF-8’, ‘Shift_JIS’)」という箇所を変更する(‘Shift_JIS’を’ISO-2022-JP’にする)
・EPWINGの辞書で使われている外字を、Unicodeキャラクタに変換するためのテーブルを用意する。COBUILDの場合は、「cobuild.lst」がそれに当たる(広辞苑などでこれを作るのは大変だと思う……)
・ebd2htmlが生成するHTMLでは、最後の近くの項目のタグが閉じられていないことがあるようだ。変換されたHTMLファイルを開いて確認した方がいいだろう
・MakefileやMyInfo.plistの辞書名を変更すること
COBUILDの辞書はうまく変換できたようだが、きっと辞書ごとにうまくいったりいかなかったりするんじゃなかろうか……。
(2008年5月5日追記)
COBUILDにスタイルシートを適用してみた。多少は見やすくなったかも。変換用のスクリプトはここから。使い方は上記説明の通りだが、ruby cobuild_conv.rb < COBUILD.html | ruby gaiji_rep.rb cobuild.lst > MyDictionary.xml ; make ; make installと入力する。
コメント