locale をインストールすると、Linux libc の catopen コマンドにあるバグ
(仕様か?)が修正されます。メッセージ・カタログを使うプログラムを作成
し、ドイツ語カタログを作り、それを /home/peeter/catalogs/de_DE におく
としましょう。
以下のことを de_DE locale をインストールしないで行なってみてください:
export LC_MESSAGES=de_DE
export NLSPATH=/home/peeter/catalogs/%L/%N.cat:$NLSPATH
ドイツ語のメッセージ・カタログがオープンできず、catgets コールのデフォ
ルトのメッセージが使われます。
これは catopen が正しいメッセージ・カテゴリを得るために
setlocale コールを実行し、環境変数が設定されていても setlocale が失敗する理由です。それで catopen は NLSPATH の全ての "%L" に "C" を代入してメッセージ・
カタログをロードしようとします。
locale をインストールしなくてもメッセージ・カタログを用いることはでき
ますが、以下のように NLSPATH の "%L" 部分をはっきりと
設定する必要があるでしょう:
export NLSPATH=/home/peeter/catalogs/de_DE/%N.cat:$NLSPATH
しかし、これは locale カテゴリ環境変数の全ての目的をくじけさせてしまい ます。