Linuxにおけるロケール(Locale)は、コンピュータがどの国や地域の言語や習慣に従うかを決める設定だ。
単にメッセージが日本語になるだけでなく、日付の書式、通貨単位、単位系など、その地域の文化的なルールをひとまとめに定義している。この設定が正しく行われていないと、プログラムのログが文字化けしたり、時刻の表示がずれたりする。ディストリビューションによって設定方法や参照するファイルが異なるので、自分の環境に合わせて作業を進めてほしい。
locale # 現在の設定を見る/etc/default/locale を編集
sudo nano /etc/default/locale # UbuntuやDebianファイルの中身を以下のように書き換える。
LANG="ja_JP.UTF-8"sudo nano /etc/locale.conf # RHELやFedoraの場合LANG="ja_JP.UTF-8" # 以下の1行を記述して保存sudo nano /etc/locale.gen # locale.genの編集ファイル内には世界中のロケールが並んでいる。日本語を使いたいなら、行頭にある #(コメントアウト)を消して、システムに読み込ませる状態にする。
#ja_JP.UTF-8 UTF-8
↓
ja_JP.UTF-8 UTF-8システムに新しいロケールをコンパイルさせる。
sudo locale-gen # 変更をシステムに反映させる基本的な確認と設定
まずは現在のシステムがどのようなロケールで動いているかを確認しよう。
localeコマンドで現在の設定を見る
もっとも一般的な確認方法は locale コマンドを叩くことだ。
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=特定の変数、たとえば言語設定や紙のサイズ設定だけを素早く知りたいときは、echo コマンドで環境変数を直接呼び出すのが効率的だ。
echo $LANG
echo $LC_PAPEROSごとの設定ファイル
ロケールの永続的な設定は、OSの種類によって保存場所が異なる。自分が使っているシステムに合わせて、以下の表を参考にファイルを確認してほしい。
| OSの系統 | 設定ファイルのパス | 確認コマンド |
|---|---|---|
| Ubuntu / Debian系 | /etc/default/locale | cat /etc/default/locale |
| RHEL / Fedora系 | /etc/locale.conf | cat /etc/locale.conf |
| 旧RHEL / CentOS系 | /etc/sysconfig/i18n | cat /etc/sysconfig/i18n |
ロケールを編集して反映する
システムの言語を切り替えるには、各OSの設定ファイルを管理者権限で書き換える。
UbuntuやDebianの場合
/etc/default/locale を編集して保存する。
sudo nano /etc/default/localeファイルの中身を以下のように書き換える。
LANG="ja_JP.UTF-8"RHELやFedoraの場合
/etc/locale.conf を編集する。
sudo nano /etc/locale.confこちらも同様に、以下の1行を記述して保存すれば設定は完了だ。
LANG="ja_JP.UTF-8"新しいロケールを使えるようにする
システムに日本語のデータそのものが入っていないときは、ロケールの生成が必要になる。Arch LinuxやGentoo Linux、あるいは最小構成でインストールしたDebianなどでは、使う言語を明示的に有効化しなければならない。
locale.genの編集
Linuxには膨大な言語データが用意されているが、メモリやディスクを節約するため、初期状態では多くの言語が眠っている。それらを目覚めさせるために /etc/locale.gen ファイルを編集する。
sudo nano /etc/locale.genファイル内には世界中のロケールが並んでいる。日本語を使いたいなら、行頭にある #(コメントアウト)を消して、システムに読み込ませる状態にする。
#ja_JP.UTF-8 UTF-8
↓
ja_JP.UTF-8 UTF-8変更をシステムに反映させる
ファイルを保存して閉じただけでは、まだ日本語は使えない。以下のコマンドを実行して、システムに新しいロケールをコンパイルさせる。
sudo locale-genこの処理が終われば、システムが日本語データを扱えるようになる。もし locale -a を実行しても ja_JP.utf8 が見つからないときは、この手順を忘れていないか確かめてほしい。
