コンピューターを使っていて何かエラーが出た時、日本語のエラーメッセージで検索して情報が見つからない場合でも、英語でエラーメッセージを表示すれば解決策が見つかることがあります。これは、LinuxでもWindowsでも同様でしょう。
Linuxの場合、ロケール環境変数を変えれば、簡単にプログラムが表示する言語を切り替えることができます。以下のページで紹介した通り、「LANG」あるいは「LC_ALL」を設定するだけです。
一時的に英語でメッセージを表示するには、以下のように頭に「LANG=C」を付けるなどして実行する必要があります。
LANG=C コマンド
しかし、「LANG=C」だけでは「LC_」で始まるカテゴリーごとのロケール設定を上書きできなかったり、「UTF-8」を指定していないので日本語データが文字化けしたりするといった問題もあります。完全に「アメリカ英語」ロケールで実行するには、「LC_ALL=en_US.UTF-8」を頭につけて以下のように実行することになります。
LC_ALL=en_US.UTF-8 コマンド
しかし、これでは長すぎて打つのが面倒です。そこで、「LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8」を「enus」という「エイリアス(別名)」に設定しました。
alias enus='LANG=en_US.UTF-8 LC_ALL=en_US.utf8'
これで、以下のように実行すれば「アメリカ英語」ロケールでコマンド(プログラム)が実行されます。
enus コマンド
また、通常「LANG」はデフォルトでexportされて環境変数となっていることから、「enus」と実行するだけで現在のシェルが英語ロケールになります(ただし、別途「LC_」ではじまるカテゴリーごとの環境変数が設定されている場合はそちらが優先される)。
# 現在のシェルが「英語モード」になる
enus
日本語に戻すために、以下の通りエイリアス「jajp」も設定しました。
alias jajp='LANG=ja_JP.utf8 LC_ALL=ja_JP.utf8'
# 日本語ロケールに戻す
jajp
うまく動いているようなので、「~/.bash_aliases」に以下を追記しました。「フランス語」「ドイツ語」「中国語(中国本土・簡体)」「中国語(台湾・繁体)」「韓国・朝鮮語」も設定できるようにしています。
alias enus='LANG=en_US.utf8 LC_ALL=en_US.utf8'
alias jajp='LANG=ja_JP.utf8 LC_ALL=ja_JP.utf8'
alias frfr='LANG=fr_FR.utf8 LC_ALL=fr_FR.utf8'
alias dede='LANG=de_DE.utf8 LC_ALL=de_DE.utf8'
alias zhcn='LANG=zh_CN.utf8 LC_ALL=zh_CN.utf8'
alias zhtw='LANG=zh_TW.utf8 LC_ALL=zh_TW.utf8'
alias kokr='LANG=ko_KR.utf8 LC_ALL=ko_KR.utf8'
ただしディストリビューションによっては、デフォルトでインストールされるロケールが絞られています。たとえばUbuntuの場合、以下のコマンドで「言語パック」を追加する必要があります。
sudo apt install language-pack-en* language-pack-ja* language-pack-fr* language-pack-de* language-pack-zh-hans* language-pack-zh-hant* language-pack-ko*
これで、次のように各国語でコマンドを実行できます。
# 何も指定しなければ日本語
$ date
2018年 8月 14日 火曜日 12:41:58 JST
# 英語(アメリカ)
$ enus date
Tue Aug 14 12:42:03 JST 2018
# フランス語
$ frfr date
mardi 14 août 2018, 12:42:12 (UTC+0900)
# ドイツ語
$ dede date
Di 14. Aug 12:42:17 JST 2018
# 中国語(中国本土・簡体)
$ zhcn date
2018年 08月 14日 星期二 12:42:24 JST
# 中国語(台湾・繁体)
$ zhtw date
二 8月 14 12:42:28 JST 2018
# 韓国・朝鮮語
$ kokr date
2018. 08. 14. (화) 12:42:32 JST
さらに、Ubuntuのデスクトップアプリも他の言語で実行したいなら、次のコマンドでGUI用の言語パックをインストールする必要があります。
sudo apt install language-pack-gnome-en* language-pack-gnome-ja* language-pack-gnome-fr* language-pack-gnome-de* language-pack-gnome-zh-hans* language-pack-gnome-zh-hant* language-pack-gnome-ko*
レアケースだと思いますが、言語を頻繁に切り替えてコマンドを実行するならば、こうした設定が役に立つでしょう。
コメント