📘

ロケール設定

2021/05/05に公開

ロケール

Linuxなどのソフトウェアは地域情報に従って表示言語や表示書式を変更できるように作られている。

現在のローケル設定の確認

localeコマンドを実行することで、現在のロケールに間する設定値を表示することができる。

[ec2-user@sandbox ~]$ locale
LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=

環境変数LC_ALLとLANGについて

LC_ALLとLANGに値を設定することで、すべてのカテゴリをまとめて設定することができる。

  • 環境変数LC_ALLが設定されていれば、全てのカテゴリで必ずその値が使われる。
  • LC_ALLが設定されておらず、ここのカテゴリに対応した個別の環境変数が設定されていれば、その設定値が使われる。
  • 環境変数LANGが設定されていれば、全てのカテゴリでその値が使われるが(デフォルト設定)、ここのカテゴリごとに個別に設定(上書き)が可能。
# dateコマンドで時間表記確認
[ec2-user@sandbox ~]$ date
2021年  5月  4日 火曜日 11:02:39 JST
# 環境変数LC_ALLにen_US.UTF-8を設定
[ec2-user@sandbox ~]$ export LC_ALL=en_US.UTF-8
# dateコマンドで時間表記確認
[ec2-user@sandbox ~]$ date
Tue May  4 11:02:45 JST 2021
# 現在のロケールに間する設定値を確認
[ec2-user@sandbox ~]$ locale
LANG=ja_JP.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
[ec2-user@sandbox ~]$ 
# 環境変数LC_ALLにja_JP.UTF-8を設定
[ec2-user@sandbox ~]$ export LC_ALL=ja_JP.UTF-8
# dateコマンドで時間表記確認
[ec2-user@sandbox ~]$ date
2021年  5月  4日 火曜日 11:03:58 JST
# 現在のロケールに間する設定値を確認
[ec2-user@sandbox ~]$ locale
LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=ja_JP.UTF-8
[ec2-user@sandbox ~]$ 

Discussion