テンプレートの使い方

作成日:2004-04-30
最終更新日:

1. テンプレートの利用

Namazu は複数の言語で検索結果を表示できるように、 検索結果をいくつかの言語のテンプレートとして用意している。 標準は(残念なことに)英語であり、次の6種類である。

NMZ.head、NMZ.body、NMZ.foot、NMZ.result.normal、NMZ.result.short、 NMZ.tips

他の言語の版は、これらに拡張子 .?? (??は言語属性を表すアルファベット2文字)が付け加えられる

現在 Namazu では、日本語(ja)の他、 英語、フランス語、スペイン語、ドイツ語、ポーランド語の版が配布されている。 私はこれらに加えて、エスペラントを作っている。 以上の言語と対応するアルファベット2文字は次の通り。

言語アルファベット
日本語ja日本語の例
スペイン語esスペイン語の例
フランス語frフランス語の例
ドイツ語deドイツ語の例
ポーランド語plポーランド語の例
エスペラントeoエスペラントの例
英語(なし)英語の例

これらのテンプレートをカスタマイズしたい場合は、 新たなディレクトリを作り、 このディレクトリに新たなカスタマイズテンプレートを配置する。 これと同時に、mknmz コマンドの -T オプションで、 カスタマイズテンプレートの位置を指定する。 すると、mknmz コマンドによって生成されるテンプレートは、 検索結果が反映され、かつカスタマイズされたものを引き継ぐ。

ここで、検索結果が反映された、というのは、収集したファイル数やキーワード数など、 インデックス作成時に確定した情報の結果である。私は以前、 エスペラントのテンプレートをインデックスディレクトリの下にしか置かなかったために、 索引を再度作りなおしてもファイル数もキーワード数も全く変わらず、 その原因がわからなかったことがある。

私は以前 share/namazu/template/ の下のテンプレートを書き直す、 と記したが、 share以下を直接書き換えるのはふさわしくない、 あるいは権限がないためできない、 新たな言語のテンプレートに対応できない、などの理由でお薦めしない。

2. 各国語のテンプレート

このうち、現在の版(2.0.21)では、ドイツ語のテンプレートは不完全である。 不完全という意味は、NMZ.body.de と NMZ.tips.de が用意されていない、ということである。 また、用意されている他のテンプレートも、 一部分が英語のまま残されている単語がある (例:score、keywords など)。 ドイツ語ができる方はぜひとも直していただきたい。 私は、 ボンLINUXユーザーズグループの検索ページ (http://bolug.uni-bonn.de/suchen/)を参考にして、直している。 しかし、上記個所でもテンプレートで直せない個所、 すなわち、「検索結果」、 「現在のページ」などに相当する個所は直されていない。

なお、NMZ.head.?? (?? は言語属性)を作るときには、 form タグの中で、 次のように、hidden で言語属性を設定しておくとよい。

<input type="hidden" name="lang" value="??">

また、ヘルプを呼び出す時にも、 下記のように、やはりその言語属性を指定する必要がある。

<a href="/cgi-bin/smaruyama/sercxo/ja/namazu.cgi?lang=??">[Helpo]>

3. プログラムで表示する言語

以上は、テンプレートで操作可能な範囲で言語を変更する方法を述べた。 もう一つ Namazu には、 プログラム自体の出力となる言語を変更する方法がある。 表示の多言語化を参照いただきたい。

4. 埋め込み表示の種類

NMZ.head.* などには、埋め込み表示が可能ないくつかのキーワードがある。
<!-- HOEGHOGE -->ダミー<!-- HOGEHOGE -->
と表記しておけば、キーワードHOGEHOGE に関する mknmz を行った時の情報をダミー部分に埋め込んでくれる、 というものだ。以下、キーワード に相当するものを列挙する。

キーワード意味備考
FILE ファイル数
KEY キーワードの数
DATE日付yyyy-mm-dd 形式
VERSIONバージョン2.0.21
ADDRESSアドレス

以上の定義は、mknmz のスクリプトの sub make_headfoot で行われている。 ここを改造すれば、自分の必要な埋め込み表示を付け加えることもできる。ためしに、 DATE では時刻がわからないので時刻を表示するためのキーワード TIME を作ってみよう。

まりんきょ学問所全文検索システム Namazu > テンプレートの使い方


MARUYAMA Satosi