ロケール関連のファイルは、/var/lib/locales/supported.dに保存されています。ls -l /var/lib/locales/supported.dコマンドで、現在の状況を確認してみよう。
デフォルトでは、enファイルが1個あるだけ。enはEnglishのこと。日本語のロケールファイルが存在していないため、ロケールの日本語パッケージを別途インストールする必要がある。
日本語パッケージはこのコマンドでインストールする。apt-get update && sudo apt install language-pack-ja-base language-pack-ja。インストールした後、再度、/var/lib/locales/supported.dの中身をみると、jaファイルが作成されていることが確認できる。
catで/var/lib/locales/supported.d/jaファイルの中身をみてみると、ja_JP.UTF-8 UTF-8が記載されている。
設定可能なロケールの一覧を表示するコマンドがlocale -a。設定可能なとは、インストール済になっているロケール関連のパッケージ一覧のこと。一覧の中には、大きく、C、en、jaの3種類が表示される。enの中にはたくさんの種類がある。en_USがアメリカ英語で、en_INがイングランド英語で、en_CAがカナダ英語という具合なのだろう。日本語を話す国は日本1国しかないので、ja_JP1種類しか存在しないということになる。
lacale -aでja_JPが表示されるのは、先ほど、日本語パッケージをインストールしたから表示されるようになったということだろう。
そして、現在有効になっているロケールを表示するコマンドがlocaleコマンド。環境変数で設定されている内容がそのまま表示されるのだが、デフォルトでは殆どが、en_US.UTF-8になっている。これを日本語に設定し直す。
Ubuntuを管理しているカノニカル社はイギリスの会社なので、en_INがデフォルトとなっていても不思議ではないのだが、アメリカ英語が世界の標準ということなのだろう。
ロケートを変更するには、LANGの環境変数を日本語にすればいいだけ。export LANG=ja_JP.UTF-8コマンドをうつ。その後、localeコマンドをうつと、すべての変数が、ja_JP.UTF-8に変換されている。LANGと似た環境変数に、LANGUAGEというのがあるが、これだけはen_USのままになっている。日本語では利用されるケースはないらしく、無視しておいていいでしょう。
これで日本語表示ができるようになりました。試しに、dateコマンドをうつと、日本語表示の確認ができます。localeコマンドはロケートの変数一覧を表示するだけのコマンドのようです。ロケールの確認をするには、locateコマンドを使わずに、echo $LANGとやっても同じことではある。
そして最後に、export LANG=ja_JP.UTF-8を~/.profileに追加しておこう。
localeコマンドとよく似たコマンドにlocalectlコマンドがある。localeコマンドが画面表示だけの設定なのに対し、localectlコマンドは、システムロケールやキーボードのロケールを設定するためのコマンドになる。設定する箇所が別のようです。