ロケールを簡単に切り替えるためのエイリアスを設定してみた

雑記

コンピューターを使っていて何かエラーが出た時、日本語のエラーメッセージで検索して情報が見つからない場合でも、英語でエラーメッセージを表示すれば解決策が見つかることがあります。これは、LinuxでもWindowsでも同様でしょう。

Linuxの場合、ロケール環境変数を変えれば、簡単にプログラムが表示する言語を切り替えることができます。以下のページで紹介した通り、「LANG」あるいは「LC_ALL」を設定するだけです。


【Linux FAQ】コマンドやアプリを「英語モード」で実行するにはどうしたらいいですか?
Linuxアプリやコマンドを、一時的に「英語モード」で実行する方法を、初心者にも分かりやすく解説します。 日本語のLinuxデスクトップを使っている場合、翻訳されているアプリならばメニューなどの文字は「日本語」で表示されます。端末アプリで...

一時的に英語でメッセージを表示するには、以下のように頭に「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*

レアケースだと思いますが、言語を頻繁に切り替えてコマンドを実行するならば、こうした設定が役に立つでしょう。

雑記
\シェアお願いします/
LFI

コメント

タイトルとURLをコピーしました