Next: , Previous: , Up: gettext   [Contents][Index]


11.2.3 メッセージカタログファイルの配置

さまざまなパッケージごとに、多くの異なる言語を保存する必要があるという理由により、わたしたちにはこれらの情報をメッセージカタログファイルに記録するための、何らかの方法が必要です。Unix環境でよく使われるのは、ファイル名にエンコード名をもたせる方法で、ここでも同じ方法を用います。ディレクトリーは、bindtextdomainの2番目の引数に指定するディレクトリー(または既定のディレクトリー)の後ろに、locale名とlocale category、それとdomain名を連結したものになります:

dir_name/locale/LC_category/domain_name.mo

dir_nameの既定値はシステムにより定義されます。この習慣を順守するGNUのライブラリーやパッケージのために、以下のように定義されています:

/usr/local/share/locale

localeは、LC_categoryで指定されたlocale categoryの名前です。gettextdgettextの場合、LC_categoryは常にLC_MESSAGESになります3。locale category の名前は、setlocale (LC_category, NULL)を通じて決定されます4dcgettext関数では、3番目の引数にlocale categoryを指定できます。


Footnotes

(3)

LC_MESSAGESのないシステムも存在します(例: mingw)。そのような場合には、任意の値として1729(2つの立方数の和として、2通りの方法で表すことのできる最小の正の整数。訳注:ハーディ=ラマヌジャン数と呼ぶそうです)を使用します。

(4)

setlocaleがサポートされないシステムでのlocaleの値のセットは、環境変数を参照するのと同じ方法によりシミュレートされます。