ochalog

RubyとMediaWikiとIRCが好き。

Ubuntu Server 14.04 で日本語環境設定がうまくいかないとき

最近 Ubuntu Server 14.04 を使っているのだが、日本語環境に設定したつもりだったのにコマンドのメッセージが英語のままになっていて違和感を感じていた。ちょっと調べないとメッセージを日本語にする方法が分からなかったので、備忘録として残しておく。

これまでの日本語環境設定

これまでは ~/.profile に以下を追記していたのみだった。

export LANG='ja_JP.UTF-8'

別の場所で使っていた CentOS 6.5 ではこれで十分だったので、何か他に原因があるはず。

原因

調べたらフォーラムに載っていた。バージョンは離れているが、同じ症状だった。

問題は環境変数LANGUAGEが定義されてしまっている事にあります。
環境変数LANGUAGE自体は別に悪者ではないですが、今のUbuntu 10.04では、それが定義されていると同じユーザでの言語の切り替えが思ったように機能しません。

Ubuntu日本語フォーラム / Ubuntu 10.04 LTSの言語サポートが完全に機能していない?」より

調べるところの候補のうち、/etc/environment には言語関連の設定は存在しなかった。

もう一方の /etc/default/locale の内容は

LANG="en_US.UTF-8"
LANGUAGE="en_US:en"

となっていた。これが原因だったようだ。

対策

/etc/default/locale 内の LANGUAGE 環境変数についての記述をコメントアウトすることにした。

LANG="en_US.UTF-8"
# LANGUAGE="en_US:en"

設定を反映させるため、一旦ログアウトして再度ログインした。

結果

まずは locale で言語関連の環境変数を確認した。

Ubuntu Server の日本語環境設定:LANGUAGE 環境変数の内容が空になった

LANGUAGE 環境変数の内容が空になっていることが確認できた。

次に適当なコマンドを打ってメッセージを確認した。とりあえず apt-get で…

apt-get の日本語メッセージ

きちんと日本語になっていた!

まとめ

UbuntuLANG='ja_JP.UTF-8' を設定したのにメッセージが日本語にならないときは、/etc/default/locale 内の LANGUAGE 環境変数の設定を見直し、消してみる。