Windows時代はずっと英辞郎+PDICを使っていました。高速だし例文や熟語が豊富で、英辞郎すごく良い。
せっかくデータは持っているのでMacでも使いたい。そんなわけで、英辞郎のデータをYosemiteの標準辞書アプリDictionary.appで使うための記事です。Dictionary.appは、アプリを問わず『control+command+D』で辞書表示できます。
ちなみに私の購入した英辞郎は2005年の第二版で、最新の第八版だとDictionary.app用の辞書が最初から入っているようです。時間がない方はそちらを。古いデータの変換は、やや難易度高めです。
rubyのバージョンダウンが必要
ググってみると、既に先人が成功している模様。rubyの変換スクリプトを公開されています。記事に目を通すと、Leopard時代とやや古めですが、追記が充実しているので最後まで要チェックです。Yosemiteで行けるか?ですが、とりあえず流れを確認。Dictionary Development Kitが必要なんだとか、ruby使うんだなとか。
binWord/blog - OS Xの「辞書」アプリで「英辞郎」を使う
流れとしては、rubyでオリジナルの英辞郎のテキストファイルからMyDictionary.xmlを作成。そのxmlをDictionary Development Kitを使ってインストールします。コマンドとしては以下になります。
$ ruby -Ks ryaku_conv.rb < RYAKU81.TXT > Ryaku.txt
$ ruby -Ks cat.rb EIJIRO81.TXT Ryaku.txt > Eijiro.txt
$ ruby eiji_conv.rb < Eijiro.txt > MyDictionary.xml
$ make
$ make install
とりあえずXCodeからDictionary Development Kitをダウンロードして進めます。Dictionary Development Kitは名称変更したらしく、auxiliarytools_for_xcode_6.1.dmgでした。
準備ができたらrubyを実行。
$ ruby -Ks ryaku_conv.rb < RYAKU81.TXT > Ryaku.txt
ryaku_conv.rb:1: warning: variable $KCODE is no longer effective; ignored
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- jcode (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from ryaku_conv.rb:2:in `<main>'
早速エラー。jcodeライブラリがない?ググるとOSX10.9.2で同じ状況の方がいたので、次はそちらを参考に作業。
英辞郎をOSX10.9.2にインストール - @nifty教えて広場
適切なアドバイスで、ほぼ、このとおりでいけます。rubyの1.8.7がいるとのことで、rubyのバージョン切り替えの為にrbenvをインストール。brewでインストールできますが、.bash_profileに設定を追加する必要があります。
noanoa 日々の日記 : Ruby 2.1 を Homebrew + rbenv で OS X Yosemite にインストール
- rubyのバージョンを切り替える
$ ruby -v ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14] 1.8.7-p375をインストール $ rbenv install --list $ rbenv install 1.8.7-p375 $ rbenv global 1.8.7-p375 $ ruby -v ruby 1.8.7 (2013-12-22 patchlevel 375) [i686-darwin14.0.0]
rubyのバージョンダウンでいけるかな?
rubyのバージョンを1.8.7にするとエラーも消えてサクサク進みますが、私の場合、eiji_conv.rbが走って数分でエラー。
$ ruby eiji_conv.rb < Eijiro.txt > MyDictionary.xml
\n" (Iconv::IllegalSequence)"?P
from eiji_conv.rb:50
ソース50行目を確認すると、SJIS→UTF8変換で失敗しているようです。おそらくデータ次第なので、英辞郎の版によって出現するのかもしれません。文字コード変換は先にやっておいても問題なさそうなので、EIJIRO81.txtとRYAKU81.txtをUTF8に変換しておきます。
- nkfで文字コード変換
nkf -w RYAKU81.TXT > RYAKU81U.TXT nkf -w EIJIRO81.TXT > EIJIRO81U.TXT
nkfもbrewでinstallできます。
次にrubyコードの修正。一応cat.rbとryaku_conv.rbの$KCODEを”Shift_JIS”から”UTF-8″に。eiji_conv.rbの50行目をコメントアウトして1行追加。
- eiji_conv.rb
#line1 = iconv.iconv(line) #Shift_JISからUTF-8へ変換 line1 = line #追加
これでエラーはなくなりました。10分位でxmlが完成。xmlの中身をざっと見ると問題なさそうなのでmakeします。Makefileのディレクトリ構造を作業エリアに合わせること。
- Makefile
DICT_BUILD_TOOL_DIR = "$(HOME)/temp" DICT_BUILD_TOOL_BIN = "$(DICT_BUILD_TOOL_DIR)/bin"
以上で作業は完了です。makeはかなり長いです。5時間くらいかかりました。最終的にできあがった”~/Library/Dictionaries/英辞郎.dictionary”は、791.8MBでした。
和英辞郎もインストール
最後に、同じ要領で和英辞郎もインストールします。
- Makefile
DICT_NAME="英辞郎" ↓ DICT_NAME="和英辞郎"
$ nkf -w WAEIJI81.TXT > WAEIJI81U.TXT
$ nkf -w REIJI81.TXT > REIJI81U.TXT
$ ruby -Ks cat.rb WAEIJI81U.TXT REIJI81U.txt > Waeijiro.txt
$ ruby eiji_conv.rb < Waeijiro.txt > MyDictionary.xml
$ make
$ make install
“~/Library/Dictionaries/和英辞郎.dictionary”は、669.3MBとなりました。