シェルの言語(ロケール)設定のメモ
■ Linux : インストールされているロケールの表示
$ locale -a
C
POSIX
en_AG
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IN
en_NG
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZW.utf8
fr_FR.utf8
ja_JP.utf8
■ FreeBSD : インストールされているロケールの表示
$ ls /usr/share/locale
UTF-8/ en_GB.UTF-8/ is_IS.ISO8859-1/ pl_PL.ISO8859-2/
af_ZA.ISO8859-1/ en_IE.UTF-8/ is_IS.ISO8859-15/ pl_PL.UTF-8/
af_ZA.ISO8859-15/ en_NZ.ISO8859-1/ is_IS.UTF-8/ pt_BR.ISO8859-1/
af_ZA.UTF-8/ en_NZ.ISO8859-15/ it_CH.ISO8859-1/ pt_BR.UTF-8/
〜 以下省略 〜
■ Ubuntu : ロケールの追加
/var/lib/locales/supported.d/local ファイルに必要なロケールを追加して、locale-gen
コマンドでロケール情報を生成する。
追加できるロケール名は /usr/share/i18n/SUPPORTED ファイルに書かれているので、この中から選択する。
ja_JP.UTF-8 UTF-8
en_US.UTF-8 UTF-8
fr_FR.UTF-8 UTF-8 ← フランス語を追加する場合
ja_JP.EUC-JP EUC-JP ← 日本語(EUC)を追加する場合
システム標準のロケールは /etc/defaults/locale ファイルにLANG="ja_JP.UTF-8"
のように設定されているので、変更する場合はupdate-locale LANG=ja_JP.UTF-8
のようなコマンドを実行してlocaleファイルを書き換える。
■ 指定したロケールでのコマンド実行(bashの場合)
1回だけコマンドを実行するにはLC_ALL=en_GB.UTF8 command
のように実行する。環境変数を書き換えて実行するには、LC_ALL=en_GB.UTF8;export LC_ALL
として環境変数を書き換える。(元に戻すときは、unset LC_ALL
)
■ 指定したロケールでのコマンド実行(cshの場合)
1回だけコマンドを実行するにはenv LC_ALL=en_GB.UTF8 command
のように実行する。環境変数を書き換えて実行するには、setenv LC_ALLen_GB.UTF8
として環境変数を書き換える。(元に戻すときは、unsetenv LC_ALL
)
■ 特定のメッセージのみを対象としたロケール
日時はLC_TIME
、表示言語はLC_MESSAGES
、数値単位はLC_NUMERIC
などで個別に指定できる。
■ ロケール変更のデモ
$ env LC_TIME=ja_JP.UTF-8 date
2011年 4月30日 土曜日 16時14分13秒 JST
$ env LC_TIME=fr_FR.UTF-8 date
Sam 30 avr 2011 16:14:18 JST
$ env LC_TIME=de_DE.UTF-8 date
Sa 30 Apr 2011 16:14:26 JST
$ env LC_TIME=C date
Sat Apr 30 16:15:28 JST 2011