Next: Charset conversion, Previous: Ambiguities, Up: gettext [Contents][Index]
さまざまなパッケージごとに、多くの異なる言語を保存する必要があるという理由により、わたしたちにはこれらの情報をメッセージカタログファイルに記録するための、何らかの方法が必要です。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の名前です。gettext
とdgettext
の場合、LC_category
は常にLC_MESSAGES
になります3。locale
category の名前は、setlocale (LC_category,
NULL)
を通じて決定されます4。dcgettext
関数では、3番目の引数にlocale
categoryを指定できます。