元々、CobuildをCobuildConvを利用してEPWING化していたのですが、最近になってDictionary.appに自分で辞書を追加できることを知り、今さらですが試してみました。
CobuildConv.cppを大幅に書き直してCOBUILDのデータからDictionary.app用XMLを出力するようにしました。 Makefileなど変換に必要なファイルを含めたものをGitHubで公開しています。
導入方法
こちらで試したのは「Collins COBUILD Advanced Learner's English Dictionary and wordbank 5th Edition」に付属しているCD-ROMです。なお、変換にはDictionary Development Kitが必要です。Xcodeに付属しているので/Developer/Extras/Dictionary Development Kitがない場合はXcodeをインストールしてください。
次の手順で辞書データを抽出してDictionary.appで利用できるようにします。
GitHubからファイル一式をてきとうなディレクトリに置きます。
COBUILD5のCD-ROMをマウントします。
次のコマンドを入力します。
> make g++ -g -o conv CobuildConv.cpp > make dic """/Developer/Extras/Dictionary Development Kit"/bin"/build_dict.sh" "COBUILD" cobuild.xml cobuild.css cobuild.plist - Building COBUILD.dictionary. (中略) - Finished building ./objects/COBUILD.dictionary. Done. > make install Installing into ~/Library/Dictionaries. (中略) Done. To test the new dictionary, try Dictionary.app.
Dictionary.appを起動して辞書一覧にCobuld5が追加されているのを確認します。 辞書の順番を変更して一番先頭にしておくと他のアプリから辞書を起動させたときにCobuldが表示されるようになります。
なお、Cobuild.cppはとりあえず動作することを目的に変更しているのでかなりひどいソースになっています。 あとは、見た目をよくするためにCSSをまともに使うようにしたいです。
ちなみに、6th EditionではCD-ROMがMacでも利用できるようになったみたいです。今ならそちらのほうが便利かもしれませんね。
関連リンク
- binWord/blog - Leopardの「辞書」アプリでEPWING辞書を使う
ここではEPWINGデータからDictionary.app用XMLへの変換の方法が紹介されています。 EPWINGデータを持っている場合はこちらが参考になるでしょう。 - lingea-trd-decoder.py
同じ拡張子である.trdのデータをデコードし、Stardictという形式などに変換するスクリプトです。 起源はCobuildConv.cppと同じCobuildConv.rbなのですが、COBUILDのデータは処理できませんでした。
Thank you so much.
返信削除It's really helpful.