お兄ちゃん!
Linux がこんなに広まっているなら
多言語対応とかないのかな?
もちろんあるよ!
そのような言語対応を
「ロケール(locale)」というんだ
今回はロケールを見ていこう!
locale
コマンドlocale
は
ロケールの設定を
表示するよ
locale [オプション]...
オプション | 役割 |
---|---|
-a , --all | 設定可能なロケールを一覧表示 |
オプションを指定しないと現在のロケール設定を表示するよ実行してみよう!
locale
どれどれ?
LANG=ja_JP.utf8
LC_CTYPE="ja_JP.utf8"
LC_NUMERIC="ja_JP.utf8"
LC_TIME=POSIX
LC_COLLATE="ja_JP.utf8"
LC_MONETARY="ja_JP.utf8"
LC_MESSAGES=POSIX
LC_PAPER="ja_JP.utf8"
LC_NAME="ja_JP.utf8"
LC_ADDRESS="ja_JP.utf8"
LC_TELEPHONE="ja_JP.utf8"
LC_MEASUREMENT="ja_JP.utf8"
LC_IDENTIFICATION="ja_JP.utf8"
LC_ALL=
設定がいっぱいあるんだね!
これらの環境変数を上書きすることでロケールを変えられるよ大抵は
LC_
の後に続く単語のロケールを設定しているんだ重要なのは一部だよja_JP.utf8
は日本語だなぁとわかるけどPOSIX
はどんな値なんだろう?POSIX
や C
は多言語対応がなかった時代の英語表示を意味するよ一番良く設定されるのは
LANG
環境変数だよこれは設定されていない場合のデフォルトのロケールを指定するんだじゃあ最低でも
LANG
環境変数だけ設定しておけばいいんだね!次は
LC_MESSAGES
環境変数を見ようこれはコマンドなどが出力するメッセージのロケールを指定するよこの設定は日本語にしていないんだ?
日本語のウェブ検索結果は少ないんだ出力メッセージを英語で検索できるようにするためあえて
POSIX
を設定しているよもう一つ押さえておきたいのは
LC_TIME
環境変数だよこれは日時のロケールを指定しているんだこれも日本語にしていないんだね
ls -l
のように日時が表示される機会は結構あるよ英文に日本語が混じって違和感を感じるので日本語にはしていないんだうーん…言葉だけだとよくわからないなぁ
実際に例を見てみよう以下は
LC_TIME
変数を指定してdate
を実行した結果だよLC_TIME=ja_JP.utf8 date
2025年 1月 15日 水曜日 17:49:32 JST
LC_TIME=POSIX date
Wed Jan 15 17:49:32 JST 2025
おお!印象がずいぶんと違うね!
これらのロケール設定はどうすればいいのかな?
~/.bash_profile
にexport
を書いてあげよう!他のユーザに影響なく自分だけの言語設定ができるよ以下はこれまでの説明のような設定にする記述だよ
export LANG=ja_JP.utf8
export LC_MESSAGES=POSIX
export LC_TIME=POSIX
今回はロケールを学んだよ!デフォルト言語を
LANG
環境変数に設定したあと上書きしたい環境変数だけを個別に設定すればいいんだ!LC_MESSAGES
と LC_TIME
をPOSIX
にしているのは僕の好みだよ言語設定は自分が使いやすいよう好みに設定しよう!