CentOS7で言語設定のlocale(ロケール)を日本語/英語に切り替える方法

LPICの勉強や実務などにおいて、CentOS7の言語表示を英語から日本語に、または日本語から英語に変えたい場面があると思います。

CentOSをはじめとしたLinuxでは言語表示の切り替えがコマンドで簡単にできるようになってます。

今回はCentOS7で言語設定(英語・日本語)を切り替える方法を説明します。

結論

CentOS7で英語、日本語の切り替えをしたい場合は、以下のコマンドでやるのがおすすめです。

localectl set-locale LANG=[ロケール名]

英語と日本語のロケール名は以下の通りです。

言語 ロケール名
英語 en_US.utf8
日本語 ja_JP.utf8
MEMO

utf8の表記は、utf-8UTF-8でもOKです。

環境

  • OS:CentOS7
  • root権限で実施
[root@host01]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)

CentOS7の言語設定:localectl コマンド

英語から日本語へ切り替える

localectllocalectl statusコマンドで現在の言語設定を確認できます。

[root@host01]# localectl
   System Locale: LANG=en_US.utf8
       VC Keymap: us
      X11 Layout: n/a
[root@host01]# localectl status
   System Locale: LANG=en_US.utf8
       VC Keymap: us
      X11 Layout: n/a

localectl set-localeコマンドで言語設定を日本語に設定します。
ですが即時反映はされません。

[root@host01]# localectl set-locale LANG=ja_JP.utf8
[root@host01]# date
Tue Sep 15 17:06:51 JST 2020

設定を即時反映させるためには再起動するか、以下のコマンドを実行します。

[root@host01]# source /etc/locale.conf
[root@host01]# date
2020年  9月 15日 火曜日 18:56:52 JST

日本語から英語へ切り替える

localectllocalectl statusコマンドで現在の言語設定を確認できます。

[root@host01]# localectl
   System Locale: LANG=ja_JP.utf8
       VC Keymap: us
      X11 Layout: n/a
[root@host01]# localectl status
   System Locale: LANG=ja_JP.utf8
       VC Keymap: us
      X11 Layout: n/a

localectl set-localeコマンドで言語設定を英語に設定します。
ですが即時反映はされません。

[root@host01]# localectl set-locale LANG=en_US.utf8
[root@host01]# date
2020年  9月 15日 火曜日 19:11:27 JST

設定を即時反映させるためには再起動するか、以下のコマンドを実行します。

[root@host01]# source /etc/locale.conf
[root@host01]# date
Tue Sep 15 19:11:47 JST 2020

一時的に言語設定を変更する:export コマンド

現在の言語設定は環境変数LANGでecho $LANG  のコマンドで確認することができます。

英語はen_US.utf8、日本語は ja_JP.utf8です。

日付を表示するdateコマンドなどでも現在の言語設定が日本語か英語か確認することができます。

英語と日本語をexportコマンドで切り替えることができます。

ログオフまたは再起動すると元の設定に戻ってしまいます。

英語から日本語へ切り替える

言語設定を確認します。
環境変数LANGやdateコマンドで確認できます。

[root@host01]# echo $LANG
en_US.utf8
[root@host01]# date
Tue Sep 15 16:41:20 JST 2020

export LANG=[ロケール名]コマンドで言語設定を日本語に変更します。
dateコマンドで確認すると日本語に変更できているのが確認できます。

[root@host01]# export LANG=ja_JP.utf8
[root@host01]# date
2020年  9月 15日 火曜日 16:41:54 JST

ログオフ後に再ログインすると言語設定が元に戻っていることが確認できます。

[root@host01]# exit
ログアウト
[vagrant@host01]$ su -
Password:
Last login: Tue Sep 15 16:41:17 JST 2020 on pts/1
[root@host01]# date
Tue Sep 15 16:42:35 JST 2020

日本語から英語へ切り替える

言語設定を確認します。
環境変数LANGやdateコマンドで確認できます。

[root@host01]# echo $LANG
ja_JP.utf8
[root@host01]# date
2020年  9月 15日 火曜日 17:06:26 JST

export LANG=[ロケール名]コマンドで言語設定を英語に変更します。
dateコマンドで確認すると英語に変更できているのが確認できます。

[root@host01]# export LANG=en_US.utf8
[root@host01]# date
Tue Sep 15 17:06:51 JST 2020

ログオフ後に再ログインすると言語設定が元に戻っていることが確認できます。

[root@host01]# exit
logout
[vagrant@host01]$ su -
Password:
Last login: Tue Sep 15 16:42:06 JST 2020 on pts/1
[root@host01]# date
2020年  9月 15日 火曜日 17:07:07 JST

【非推奨】ファイルを直接編集して変更する方法

localectl set-localeより手間もかかり、viの操作に慣れている必要もあるので、おすすめはしませんが、ファイルを直接編集して言語設定を変更する方法もあります。

~/.bash_profileを開きます。

[root@host01]# vi ~/.bash_profile

~/.bash_profileに以下のコードを追加して保存します。

export LANG=ja_JP.utf8

以下のコマンドで設定を即時反映させると言語設定が切り替わります。

[root@host01]# source ~/.bash_profile
[root@host01]# date
2020年  9月 15日 火曜日 17:07:07 JST

まとめ

  • CentOS7で言語設定を切り替えるコマンドはlocalectl set-locale [ロケール名]
  • 一時的に言語設定を切り替えるにはexport LANG=[ロケール名]
  • ファイル~/.bash_profileを直接編集する方法もあるが非推奨