ロケール環境変数を変更するには?

ロケール環境変数を変更するには?

私が作成したen_US.utf8et_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"
# 

しかし、私が変えれば言語=変数を作成して分割する言語=そしてLC_ALL=言語=変える各ロケール変数を個別に変更する方法はありますか?また、ロケール変数が通常のシェル変数ではなくパラメータに似ていると思うのは正しいですか?ロケール便利?

答え1

すべてのロケールカテゴリを個別に設定できます。LANG明示的に設定されていないカテゴリにのみ適用されます。

LANGLC_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"

答え2

locale -aFedora / CentOS / RHELベースのディストリビューションでは、このシステムファイルでコマンドを実行したときに表示されるロケールの1つにロケールを変更できると思います。

/etc/sysconfig/i18n

たとえば、私のFedora 14システムでは、次のようになります。

$ more /etc/sysconfig/i18n 
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"

GNOMEでヘルパーアプリケーションを実行できます。

system-config-language

これにより、次のGUIが表示されます。

             ラングのSS。焼き

Debian/Ubuntu ディストリビューションは少し違うと思います。私はそれがこのファイルであると信じています:

/etc/default/locale

私はそれが環境変数だと思いますが、アプリケーションがそれをどのように使用しているのか完全にはわかりません。

引用する

答え3

少なくとも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=

答え4

Debianシステムでは、実行してデフォルトのdpkg-reconfigure locales言語を設定し、他の言語を使用可能にし、代替言語を使用するように環境変数をupdate-locale設定できます。LANGUAGE/etc/default/locale

関連情報