私が作成した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"
#
しかし、私が変えれば言語=変数を作成して分割する言語=そしてLC_ALL=値言語=変える各ロケール変数を個別に変更する方法はありますか?また、ロケール変数が通常のシェル変数ではなくパラメータに似ていると思うのは正しいですか?ロケール便利?
ベストアンサー1
すべてのロケールカテゴリを個別に設定できます。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"