ナンクル力学系

学んだ事を書き連ねていこう。

英辞郎 IV (CD版) のデータを rdic で使えるように変換する方法

leave a comment »

ちょっと前に書いたメモだけど.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 から英辞郎を使う場合にも,セパレータの変換は必要.

参考

Advertisements

Written by tkf

September 24, 2009 at 9:46 am

Posted in PC

Tagged with ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: