英辞郎をYosemiteの辞書で使う

1Windows時代はずっと英辞郎+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となりました。

 

 

広告