[an error occurred while processing this directive]
Title
電子辞書 - 「小学館ランダムハウス英語辞典」をEPWING形式に変換する

まず、以下のものを用意します。
  1. cygwinもしくはUNIX互換環境 (http://cygwin.com/)
  2. freepwing (http://www.sra.co.jp/people/m-kasahr/freepwing/)
  3. epwutil (http://openlab.ring.gr.jp/edict/epwutil/)
  4. srd-fpw (http://openlab.ring.gr.jp/edict/srd-fpw/)
  5. Jcode.pm (http://openlab.ring.gr.jp/Jcode/index-j.html)
  6. 小学館ランダムハウス英語辞典 CD-ROM
以下はcygwin環境を前提に書きます。
それ以外のUNIX互換環境の方は適宜読み替えて下さい。

まず、Windowsにcygwinをインストールします。
Windows環境では、PATHをcygwinのbinディレクトリへ通しておきましょう。
ActivePerlも入れている場合はややこしいことになるのでそちらはPATHをいったん外しておきましょう。

んで、freepwingも入れます。
付属のINSTALLを読んでそのままやるだけです。
具体的には、freepwing-X.X.X.tar.gzをcygwinのホームディレクトリ(cygwin\home\ユーザー名。UNIXらしく書けば/home/ユーザー名。cygwinではインストールしたディレクトリがcygwin環境でのルートディレクトリになります。インストールすると作成されるショートカットからBash(コマンドプロンプトみたいなやつ、ってまあ不正確だけど)を起動すると自動的にホームディレクトリがカレントとしてBashが起動します。)にでも置いて、

tar -xvzf freepwing-X.X.X.tar.gz
cd freepwing-X.X.X
sh configure
make
make check
make install
make clean

とします。
それぞれの意味は、
  • 配布ファイルを展開
  • 展開されたfreepwing-X.X.Xディレクトリに移動
  • インストールするためのconfigureスクリプトをshで実行
  • コンパイル
  • セルフテストを実行(しなくても可)
  • インストール
  • コンパイル時に生成されたファイルを削除
ってところ。
っつーか、もうfreepwing-X.X.Xディレクトリは削除していいんですけどね。

次に、epwutilを入れます。
私は1.1を使いました。
まずは先程と同じようにホームディレクトリにepwutil-X.X.tar.gzを置き、

tar -xvzf epwutil-X.X.tar.gz
cd epwutil-X.X
make -f makefile.unx

それぞれの意味は
  • 配布ファイルを展開
  • 展開されたepwutil-X.Xディレクトリに移動
  • コンパイル
です。
これで、実行ファイル(.exe)が生成されますのでそれをテキトーにPATHの通ったところにでも置きます。
私は/bin (cygwin\bin) に置きました。

さて、次にJcode.pmのインストールです。
CPANとやらで簡単にできるらしいですが、ウチではActivePerlだと簡単にできるんですけどCygwinでは何故か失敗します。
原因を探るのも面倒なのでTarballでいっちゃいました。
つまり、上記サイトの「Tarballを直接入手」からtar.gzファイルを落としてホームディレクトリに置き、例によって例のごとく

tar -xvzf Jcode-X.XX.tar.gz
cd Jcode-X.XX
perl Makefile.pl
make
make install

意味は
  • 配布ファイルを展開
  • 展開されたJcode-X.XXディレクトリに移動
  • コンパイル用のMakefileを作成
  • コンパイル
  • インストール
かな? 3行目でエラー出ましたけどだいじょぶみたいです。

ここまでの準備ができたら、srd-fpwの配布ファイルをホームディレクトリに置いて展開し、展開されたディレクトリへ移動します。

tar -xvzf srd-fpwX.X.X.tar.gz
cd srd-fpwX.X.X

ここでBashは起動したまま置いといて、CD-ROM内の
Readme.txt
をsrd-fpwX.X.Xディレクトリ下にsourceディレクトリを作って、そこに置きます。
さらに、
DATA\main.txt
DATA\en.dat
DATA\tr.dat
もsourceディレクトリ下にDATAディレクトリを作って置いて下さい。
めんどければDATAディレクトリを丸ごとコピればいいです。
余計なものまでコピーされますけど、容量に余裕があれば大丈夫でしょ。
(これは普通のファイラーでやりゃいいです。Explorerとか。)

また、srd-fpw.confをテキストエディタ(EUCとCR改行コード対応じゃないとワケワカメなものが表示されます)で開いて
$multimedia_flag = 1;
$png_flag = 1;
の行頭に#を付けてコメントアウトします。
削除でもいいと思いますが。

んで、準備が整ったところで先程放っておいたBashに戻って(srd-fpwX.X.Xがカレントディレクトリになっているはず)

fpwmake
fpwmake catalogs
fpwmake install INSTALLDIR=../../../usr/share/dict

します。
(スゲー時間かかります。)
それぞれ、
  • honmonファイルの作成
  • catalogsの作成
  • インストール
っつぅことです。

これで/usr/share/dict/srd-fpw (cygwin\usr\share\dict\srd-fpw) にEPWING形式のデータが生成されますので、これをDDwinで読み込めば検索・出力できるはずです。
DDwinではできるだけ浅いところにデータを置いた方が良いので、catalogsを含むディレクトリを丸ごとルートディレクトリ辺りにコピーもしくは移動した方が良いでしょう。

ここで、CygwinでもPerlは実行できますが、Windows上ではActivePerl+JPerlの方が便利なことが多いので、CygwinのPATHを外し、ActivePerl+JPerlにPATHを通しておきましょう。
PATHを切り替えるプログラムでも書けば便利なんですけどねぇ。 [an error occurred while processing this directive]
sign