英辞郎 IV (CD版) のデータを rdic で使えるように変換する方法
ちょっと前に書いたメモだけど.rdic のおかげで英語の文章書いたり論文読んだりが Ubuntu だけで出来るのはうれしい.
- Linux で使えるむちゃくちゃ便利な辞書 rdic を使いたい.
- 英辞郎 IV (CD版) を使うとなぜか変換ミスるのでどうにかしたい.
PDIC1行形式へ書き出す
- Personal Dictionary (PDICU.EXE) を起動
- File > 辞書設定(詳細) > 辞書一覧の辞書の上で右クリック > 辞書の変換 > 変換形式をPDIC1行形式にして,ひたすら書き出す
cnv2rdic.rb が対応している PDIC1行形式ファイルを作る
出力されたテキストは,
- エンコーディング: Shift_JIS (多分).
- cnv2rdic.rb が対応しているのはセパレータが " : " のもの.
- でも,英辞郎 IV は,セパレータが " /// " になってしまうみたい.
変換用のシェル関数(関数にする必要ないけどw):
cnv2colon () {
for src in "$@"
do
trg=`basename $src`
echo $trg
nkf -w8 $src | sed "s/ \/\/\/ / \: /" | nkf -s > $trg
done
}
cnv2rdic.rb で変換した後,行頭に"■"を加える
- コマンドを実行する環境の文字コードに注意!
- 端末の文字コード
- これとシェルの文字コードがあっていないと,コピペ出来ない!
- gnome-terminal の場合: メニューバー > 端末 > 文字コードの設定 > EUC-JP を選択
- 環境変数 $LANG
- export LANG=ja_JP.eucJP; export LANGVAR=ja_JP.eucJP
- 端末の文字コード
変換コマンド:
srcpath=$HOME/fsp_disk/misc/eijiro4/pdic-1l-txt/cnv2colon ruby -Ke cnv2rdic.rb $srcpath/eijiro-112.txt | sort -k1,1 -t: -f | sed "s/^/■/" > eijiro-112.euc & ruby -Ke cnv2rdic.rb $srcpath/waeiji-112.txt | sort -k1,1 -t: -f | sed "s/^/■/" > waeiji-112.euc & ruby -Ke cnv2rdic.rb $srcpath/reiji-112.txt | sort -k1,1 -t: -f | sed "s/^/■/" > reiji-112.euc & ruby -Ke cnv2rdic.rb $srcpath/ryaku-112.txt | sort -k1,1 -t: -f | sed "s/^/■/" > ryaku-112.euc & ruby -Ke cnv2rdic.rb $srcpath/reiji-112.txt | sort -k1,1 -t: -f | sed "s/^/■/" > reiji-112.euc &
実行環境を整える
起動用スクリプト:
#!/bin/sh
export LANG=ja_JP.eucJP
export LANGVAR=ja_JP.eucJP
RD=${HOME}/misc/rdic/rdic-0.1.8
DICD=${RD}
VER=112
DICS="\
$DICD/eijiro-$VER.euc \
$DICD/waeiji-$VER.euc \
$DICD/ryaku-$VER.euc \
$DICD/reiji-$VER.euc"
gnome-terminal \
--disable-factory \
--window-with-profile=rdic \
-e "$RD/rdic -b $DICS"
- これに適当な名前をつけて実行権限をつければ(chmod u+x ファイル名)OK.
- sudo ln -s ファイルへのパス /usr/local/bin/適当なファイル名(コマンド) とすれば, Alt + F2 で立ち上がる 「アプリケーションの実行」 で 補完が効くので便利.
おまけ
辞書ファイルの先頭部分を確認するための関数 (head して nkf で utf-8 に):
hnkf-w8(){ head $1 | nkf -w8 }
おまけ2
ちなみに,emacs から英辞郎を使う場合にも,セパレータの変換は必要.