LoginSignup
10
6

More than 5 years have passed since last update.

基本の復習: 優先順位は LANGUAGE, LC_ALL, LC_xxx, LANG の順

Last updated at Posted at 2015-08-09

基本中の基本だったけど、さっき忘れていて LC_ALL が LANGUAGE より優先されると思ってしまってた。まずい。

各種 locale の仕様

A locale is composed of several locale categories, see Aspects. When a program looks up locale dependent values, it does this according to the following environment variables, in priority order:

1. LANGUAGE
2. LC_ALL
3. LC_xxx, according to selected locale category: LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, ...
4. LANG

上を読んで私の理解するところ

  • LANGUAGE ... コロン区切りで複数の言語を指定できる (PATH みたいに)
  • LC_ALL ... これを指定すると他の全ての LC_xxx 系よりも優先される
  • LC_xxx (ALL 以外) ... ない場合は LANG を参照する
  • LANG ... ない場合は C ロケールを参照する

なので優先順位も LANGUAGE > LC_ALL > LC_xxx > LANG になる。
(ただし LANGUAGE は gettext の方式に対応していなければ無視される。)

となると $HOME/.profile には何を書くべきか?

個人設定は一番優先度の低い LANG だけで良いと思う。
そうしておけば他のアプリケーションやコマンドラインで必要に応じて環境変数を上書きする際に混乱が少ない。

10
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
6