en_US.utf8、et_EE.iso88591およびru_RU.utf8ローカリゼーションファイルを生成しました。ここで、任意のロケール変数をru_RU.utf8またはen_US.utf8に変更しようとしても、効果はありません。
# locale -a
C
en_US.utf8
et_EE
et_EE.iso88591
POSIX
ru_RU.utf8
# LC_TIME=ru_RU.utf8
# locale | grep LC_TIME
LC_TIME="et_EE.iso88591"
# LC_TIME="ru_RU.utf8"
# locale | grep LC_TIME
LC_TIME="et_EE.iso88591"
#
ただし、LANG =変数を変更すると、LANGUAGE =とLC_ALL =以外のすべての変数がLANG =変数。各ロケール変数を個別に変更する方法はありますか?さらに、ロケール変数は通常のシェル変数ではなく、-localeユーティリティへのパラメーターのようなものであることを修正しますか?
ロケールカテゴリは個別に設定できます。 LANG
は、明示的に設定されていないカテゴリにのみ適用されます。
LANG
およびLC_xxx
は通常の環境変数です。これらはlocale
ユーティリティの設定ではありません。locale
プログラムはロケール処理に関与していません。現在の使用可能なロケール設定を報告する小さなユーティリティです。
あなたが書くときLC_TIME=ru_RU.utf8
、これは環境変数を設定せず、シェル変数のみを設定します。シェル変数はシェルの内部にあり、他のプログラムからは見えません。一方、環境変数は、シェルが起動するプログラムによって継承されます。変数を環境にもエクスポートする必要があります。
$ LC_TIME=ru_RU.utf8
$ locale | grep LC_TIME
LC_TIME="et_EE.iso88591"
$ export LC_TIME
$ locale | grep LC_TIME
LC_TIME="ru_RU.utf8"
または直接
$ export LC_TIME=ru_RU.utf8
$ locale | grep LC_TIME
LC_TIME="ru_RU.utf8"
Fedora/CentOS/RHELベースのディストリビューションでは、このシステムファイルでlocale -a
コマンドを実行すると、ロケールを表示されているロケールの1つに変更できると思います。
/etc/sysconfig/i18n
たとえば、私のFedora 14システムでは:
$ more /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-Sun16"
GNOMEでは、ヘルプアプリを実行できます。
system-config-language
これにより、このGUIが表示されます。
Debian/Ubuntuディストリビューションでは少し異なると思います。私はそれがこのファイルだと信じています:
/etc/default/locale
私はそれらが環境変数であると信じていますが、アプリケーションがそれらをどのように使用するかは完全にはわかりません。
少なくともRedHat 6では、LC_ALLが設定されている場合、LC_ALLが他のすべてのLC_ *環境変数よりも優先されるため、他のLC_ *環境変数を設定しても効果がないことに注意してください。
[root@nbu76 bin]# LC_TIME=en_US.UTF-8
[root@nbu76 bin]# export LC_TIME
[root@nbu76 bin]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_IE"
LC_NUMERIC="en_IE"
LC_TIME="en_IE"
...
LC_ALL=en_IE
[root@nbu76 bin]# unset LC_ALL
[root@nbu76 bin]# locale
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME=en_US.UTF-8
...
LC_ALL=
[root@nbu76 bin]# export LC_TIME=en_IE
[root@nbu76 bin]# locale
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME=en_IE
....
LC_ALL=
Debianシステムでは、dpkg-reconfigure locales
を実行してメイン言語を設定し、他の言語を使用可能にすることができます。次に、update-locale
を実行して、/etc/default/locale
にLANGUAGE
環境変数を設定し、フォールバック言語を設定できます。