UNIX だけでなく gettext によって他の同様の状況で使用される最善の方法は、ロケール バリアントを使用することです。たとえばsr_RS
、キリル文字で書かれたセルビア語に使用されるコードは is (または、最近ではセルビア語がメタ言語と見なされているため...) です。しかし、ラテン文字で書かれていることもあるのでsr_RS@latin
、言語名や、もちろん MO のファイル名やディレクトリとしても使用されます。
ここで、私のシステムにあるいくつかの翻訳を見てください。
$ find /usr/local/share/locale | grep /sr
/usr/local/share/locale/sr
/usr/local/share/locale/sr/LC_MESSAGES
/usr/local/share/locale/sr/LC_MESSAGES/bash.mo
/usr/local/share/locale/sr/LC_MESSAGES/bfd.mo
/usr/local/share/locale/sr/LC_MESSAGES/binutils.mo
/usr/local/share/locale/sr/LC_MESSAGES/gettext-runtime.mo
/usr/local/share/locale/sr/LC_MESSAGES/gettext-tools.mo
/usr/local/share/locale/sr/LC_MESSAGES/glib20.mo
/usr/local/share/locale/sr/LC_MESSAGES/wget.mo
/usr/local/share/locale/sr@ije
/usr/local/share/locale/sr@ije/LC_MESSAGES
/usr/local/share/locale/sr@ije/LC_MESSAGES/glib20.mo
/usr/local/share/locale/sr@latin
/usr/local/share/locale/sr@latin/LC_MESSAGES
/usr/local/share/locale/sr@latin/LC_MESSAGES/glib20.mo
/usr/local/share/locale/sr_RS
/usr/local/share/locale/sr_RS/LC_MESSAGES
/usr/local/share/locale/sr_RS/LC_MESSAGES/mkvtoolnix.mo
/usr/local/share/locale/sr_RS@latin
/usr/local/share/locale/sr_RS@latin/LC_MESSAGES
/usr/local/share/locale/sr_RS@latin/LC_MESSAGES/mkvtoolnix.mo
$
したがって、ドイツ語のバリアントを処理する最善の方法は同じです。基本的な非公式のバリアントにde
(または) を使用し、翻訳の正式なバリアントをde_DE
含む別の翻訳ファイルを用意します。de_DE@formal
これは基本的にWordPressも行うことです。もちろん、WordPress であるため、それらは独自の特別なフレーバーを持ち、バリアント構文を使用しませんが、代わりにファイル名に 3 番目のコンポーネントを追加しde_DE.mo
ますde_DE_formal.mo
。正式なバリアント。