Leopardの「辞書」アプリでEPWING辞書を使う

このエントリをはてなブックマークに登録 Deliciousにブックマーク

dic_epwing.pngこれまでに、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-ROMEBStudioで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」と入力する。

6 Responses to “Leopardの「辞書」アプリでEPWING辞書を使う”

  1. さし Says:

    このページのスクリーンショットを見せていただいたのですが、
    発音記号は表示されないんですね。

    あと、たとえば、love と Leopard の辞書で引くと、英辞郎だと
    [名]と[他動]が黒枠になっていたりして見やすいですよね。

    これって HTML の段階とか、XML の段階で、何かの値を
    一括変換とかすることで実現できないんでしょうか。
    凝ったものはなくても、間に一行改行があったり、箇条書き番号が
    あったりでずいぶん見た目が違うので、そういうのもできたら
    うれしいなと思って質問してみました。

  2. Tats_y Says:

    >発音記号は表示されないんですね。
    ebd2htmlの出力結果に発音記号が入ってないので、これは私の方ではいかんともしがたいです。

    >英辞郎だと[名]と[他動]が黒枠になっていたりして見やすいですよね。
    これは私がスタイルシートを作って指定しています。

    >これって HTML の段階とか、XML の段階で、何かの値を一括変換とかすることで実現できないんでしょうか。

    できると思いますよ。ただ、どの要素をどう指定するのか判断するのはけっこう面倒だったりします(例えば、COBUILDだと品詞は[]で囲まれているが、[]で囲まれている箇所はすべて品詞としてあつかって大丈夫かとか)。どういう表記を、どう変換したらよいか、案を出してもらえると作業しやすいですね。

  3. さし Says:

    さっそくお返事ありがとうございます。

    英辞郎の黒枠とかは Tats_y さんが付けていたんですね。
    これだけで読みやすさがずいぶん違いので助かってます!

    COBUILD の件ですが、辞書を見ながら検討してみました。
    こんな感じはどうでしょうか。

    ・[]で囲まれている部分を修飾
    ・()で囲まれている部分を修飾
    ・Example をイタリックとかで修飾
     (Jamming が例を判別していたので。
      判定できる材料があって可能ならば)
    ・=とその後を修飾(可能ならば)
    ・⇔とその後を修飾(可能ならば)
    ・see also とその後を修飾?(可能ならば)
    ・箇条書き記号、数字を少し目立たせる
     または、項目の切り替わりの行間に少しスペースを入れる

    標準の Dictionary (Oxford) を超えたいですね (^_^)p

    発音記号はとても残念ですが、データがないなら仕方ないですね。
    EPWING の方から直接ひっぱってくる方法とかが
    何かあったらいいんですけどね。。

  4. ABlog Says:

    Leopard (Mac OS X 10.5) の「辞書」増強 その2

    デジタルデータのある辞書なら、うまく変換してやれば「辞書」アプリ (Dicton…

  5. Tats_y Says:

    COBUILDの辞書にスタイルシートを適用してみました。

  6. binWord/blog - Leopardの「辞書」アプリで「英辞郎」を使う Says:

    [...] (2008年2月12日追記) EPWINGの辞書を使えるようにしてみた。詳しくはこちら。 [...]

Leave a Reply

Comments links could be nofollow free.