Cent OS7 でのロケール設定

初期設定で忘れていましたが、ロケールの設定を行っておきます。エラーメッセージが英語だったり、viに入力した日本語が正しく表示されなかったりで不便ですからね。

CentOS 6までは、/etc/sysconfig/i18nを直接編集していたのですが、CentOS 7からはlocalectlというコマンドに代わりました。

Localeが日本語に設定されていない状態でviで編集しようとするとこんな感じ。

#!/bin/sh

EASYRSA3_BASE="/usr/share/easy-rsa/3"
PKI_BASE="$EASYRSA3_BASE/pki"

if [ -z $1 ]; then
        echo "蠑~U諧Uー縷Aョ縷C~Q縷Cゥ縷C。縷Cシ縷Bソ縷AォOpenVPN縷Bッ縷Cゥ縷B、縷B「縷Cウ縷C~H縷Aョ縷C~W縷Cュ縷C~U縷B。縷B、縷Cォ蛬P~M縷B~R諧L~G螳~Z縷A~W縷Aヲ縷A~O縷A| 縷A~U縷A~D縷@~B"
        exit 1
fi

何を書いたのかよく分かりませんね。

ロケール(言語表示)の設定をlocaleコマンドで見てみます。

[root@sakura ~]# locale
LANG=C
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=

LANG=Cという設定になっていました。

[root@sakura ~]# localectl
   System Locale: LANG=C
       VC Keymap: jp106
      X11 Layout: jp
[root@sakura ~]#

あたらしいlocalectlコマンドで見ても一緒です(あたりまえか)。

それでは、日本語のUTF-8にしてみたいと思います。

[root@sakura ~]# localectl set-locale LANG=ja_JP.utf8
[root@sakura ~]#

ちなみに、設定可能なロケールの一覧を見るにはlocalectl list-localesで見ることができます。

[root@sakura ~]# localectl list-locales
aa_DJ
aa_DJ.iso88591
  :
(中略)
  :
iw_IL.iso88598
iw_IL.utf8
ja_JP
ja_JP.eucjp
ja_JP.ujis
ja_JP.utf8
japanese
japanese.euc
  :
(中略)
  :
pt_PT.iso88591
pt_PT.iso885915@euro
pt_PT.utf8
pt_PT@euro

なんだかやたらとたくさん出てきます。ja_JP.***もありました。

これだけだとまだ日本語UTF-8にならないので、設定を有効にする必要があります。localectlコマンドには有効にするオプションがないので、locale.confを再読み込みしてあげます。

localectlで設定したロケールは、/etc/locale.confに反映されるだけのようです。

[root@sakura ~]# source /etc/locale.conf

これだけです。特にメッセージは出ません。ファイルの中身もこれだけ。

[root@sakura ~]# cat /etc/locale.conf
LANG=ja_JP.utf8
[root@sakura ~]#

いちおうlocale statusで設定内容も見ておきます。

[root@sakura ~]# localectl status
   System Locale: LANG=ja_JP.utf8
       VC Keymap: jp106
      X11 Layout: jp
[root@sakura ~]#

設定内容が反映されました。

[root@sakura ~]# locale
LANG=ja_JP.utf8
LC_CTYPE="ja_JP.utf8"
LC_NUMERIC="ja_JP.utf8"
LC_TIME="ja_JP.utf8"
LC_COLLATE="ja_JP.utf8"
LC_MONETARY="ja_JP.utf8"
LC_MESSAGES="ja_JP.utf8"
LC_PAPER="ja_JP.utf8"
LC_NAME="ja_JP.utf8"
LC_ADDRESS="ja_JP.utf8"
LC_TELEPHONE="ja_JP.utf8"
LC_MEASUREMENT="ja_JP.utf8"
LC_IDENTIFICATION="ja_JP.utf8"
LC_ALL=
[root@sakura ~]#

localeの内容も変更されていますね。

[root@sakura ~]# hoge
-bash: hoge: コマンドが見つかりません
[root@sakura ~]#

間違ったコマンドを打った時も、エラーメッセージが日本語になりました。

#!/bin/sh

EASYRSA3_BASE="/usr/share/easy-rsa/3"
PKI_BASE="$EASYRSA3_BASE/pki"

if [ -z $1 ]; then
        echo "引数のパラメータにOpenVPNクライアントのプロファイル名を指定してください。"
        exit 1
fi

viで開いたファイルも、ちゃんと日本語がマッピングされ表示されています。

日本語の文言をペーストしても文字化けしなくなりました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください