■ペイジをページに(cygwinでメッセージをカスタマイズ)
Namazuが問題なく利用できるようになったら、検索結果の表示ページのカスタマイズに挑戦してみましょう。Namazuの検索結果の表示ページは「Simple is best」なもので、デザイン的には不十分と感じることがあると思います。Namazuが生成するページ表示用のhtmlファイル(NMZ.head.ja、NMZ.body.ja、NMZ.foot.ja、NMZ.result.normal.ja、NMZ.result.short.ja、NMZ.tips.ja)をカスタマイズすれば、ある程度デザインを変更することは可能ですが、この方法ではどうしようもない部分があります。

参考ヒット数:[テスト:30]
検索式にマッチする30個の文書が見つかりました。

現在のリスト:1-20
ペイジ:[1][2]

の部分です。

NMZ.head.ja、NMZ.body.ja、NMZ.foot.jaを見ても該当する記述がありません。この部分はnamazu.exe、namazu.cgi.exeで検索を実行した際にC:\namazu\share\locale\ja_JP.SJIS\LC_MESSAGESにあるnamazu.moというファイルの内容を見て表示しています。namazu.moをテキストエディタで開けば、上記の部分に関連する個所が見つかるので、思わず編集したくなりますが、このファイルはバイナリになっている部分があるので、元ファイルと文字数が変わったりすると、表示に不具合が出ます。やめておきましょう。

表示内容をきちんとカスタマイズするにはWindows上でUNIX環境を実現するcygwinをインストールした上で、namazu-2.0.12.tar.gzに含まれるja_JP.SJIS.poを編集し、gettextに含まれるmsgfmtというコマンドでコンパイルしてmoファイルを生成する必要があります。Linuxなどに触れたことがなければ、ちょっと難関かもしれませんが、挑戦してみるのも悪くありません。cygwinに関する詳細はhttp://cygwin.com/を参照してください。

インストールなどに関する日本語のページは

http://www.jfast1.net/~hsbt/

http://www.mars.dti.ne.jp/~sohda/cygwin/

http://www.jaist.ac.jp/~fujieda/cygwin/

http://www.netlaputa.ne.jp/~kose/Software/compile/index.html

などが参考になります。

cygwinのインストール自体はとても簡単です。

http://cygwin.com/setup.exe

からダウンロードしたsetup.exeを実行するだけです。いろいろ聞かれるので、インストール先などを指定して進みます。すべてのパッケージをダウンロードすると、40Mbyteぐらいになります。ブロードバンドなどそれなりの回線があればいいのですが、細いとちょっとつらいかもしれません。インストールや環境設定に関しては上で紹介したページを参考にしてください。

cygwinのインストールが完了したら、カスタマイズしたnamazu.moを生成するための環境を整えます。ここではcygwinをC:\cygwinにインストールしたとして説明します。デスクトップにできたアイコンなどからcygwinを起動します。見かけはMS-DOSプロンプト(コマンドプロンプト)ですが、表示されている内容が違うと思います。cygwin窓と呼ぶことにします。Autoexec.batや環境変数にHOMEが設定してあれば、そのディレクトリをhomeディレクトリとして起動します。~(チルダ)マークが付いていれば、homeにいるということです。

まず、cygwin用のrpmをインストールします。rpmはRedhat Package Managerの略で、パッケージを簡単にインストールできるようになります。Redhatは有名なLinuxディストリビュータです。今回はメッセージをWindows用にシフトJISでコンパイルするのに必要なシフトJIS対応のgettextがrpm形式で配布されているので、rpmのインストールが必要になります。

入手先
ftp://ftp.st.ryukoku.ac.jp/pub/ms-windows/HeavyMoon/rpm-3.0.6.bin.tar.gz

rpm-3.0.6.bin.tar.gzをC:\cygwinディレクトリ(cygwinのルートディレクトリ)にダウンロードします。
cygwin窓でルート(/)ディレクトリにcdで移動し、rpm-3.0.6.bin.tar.gzがあることをlsで確認してtarで展開します。

$ cd /
$ ls
rpm-3.0.6.bin.tar.gz
$ tar zxvf rpm-3.0.6.bin.tar.gz

$マークはcygwin窓に表示される記号です。入力する必要はありません。
これでcygwin版rpmのインストールは完了です。元のrpm-3.0.6.bin.tar.gzは削除して構いません。

次にSJIS対応のgettextを入手します。

入手先
ftp://ftp.st.ryukoku.ac.jp/pub/ms-windows/HeavyMoon/rpms/i686/gettext-0.10.35-6.i686-cygwin.rpm

gettext-0.10.35-6.i686-cygwin.rpmをC:\cygwinにダウンロードします。cygwin窓のルートで

$ rpm2cpio gettext-0.10.35-6.i686-cygwin.rpm | cpio -it > /tmp/dellist.txt

これで/tmp(C:\cygwin\tmp)にdellist.txtができるので、テキストエディタで開き、リストに表示されたディレクトリ、ファイルをC:\cygwinディレクトリからすべて削除します。リストでusr/bin/となっているexe形式の実行ファイルは/bin(C:\cygwin\bin)にあるので、これを削除します。次に

$ rpm2cpio gettext-0.10.35-6.i686-cygwin.rpm | cpio -id

とし、rpmファイルを展開して各ディレクトリにコピーします。元のgettext-0.10.35-6.i686-cygwin.rpmは削除してしまって構いません。

これでメッセージファイルの元になるja_JP.SJIS.poをコンパイルする準備が整いました。

Namazuサイトからnamazu-2.0.12.tar.gzをダウンロードし、C:\cygwin\tmpに置きます。
cygwin窓で

$ cd /tmp
$ tar zxvf namazu-2.0.12.tar.gz

とし、Namazuのアーカイブを展開します。

C:\cygwin\tmpにnamazu-2.0.12ディレクトリが生成され、この中のpoディレクトリに目的のja_JP.SJIS.poがあります。

ja_JP.SJIS.poをテキストエディタで開き、msgstrの変更したい個所を編集します。msgstr以外の行は編集してはいけません。

msgstr行に表\、構\、ソ\、能\と日本語文字の次に円マーク(\)が入っている個所があります。この\をすべて削除します。このほか、\n、\tなどの記述もありますが、削除してはいけません。表\などの記述はシフトJISの2バイト目にエスケープ文字という特殊なコード示す5c(\)が含まれている場合に、シフトJISに対応していないツールでファイルをコンパイルすると、エラーになってしまうのを回避するため、5c(\)をもう一つ付け、\を改めてエスケープしているということです。で、いいのかな。

今回はシフトJIS対応のgettextをインストールしたので、ja_JP.SJIS.poをコンパイルする際に、逆にこの\記号がじゃまになります。

ja_JP.SJIS.poを編集し終えたらcygwin窓で

cd /tmp/namazu-2.0.12/po
msgfmt -o namazu.mo ja_JP.SJIS.po

とします。これで/tmp/namazu-2.0.12/po(C:\cygwin\tmp\namazu-2.0.12\po)ディレクトリにnamazu.moが生成されます。このnamazu.moをC:\namazu\share\locale\ja_JP.SJIS\LC_MESSAGESディレクトリにコピーします。初めからある元のnamazu.moはリネームするなどしてバックアップしておきましょう。これで完成です。検索結果を表示してみて、メッセージが期待通りに変更されているか確認してみます。

TOPに戻る miyazawat@hotmail.com