Linuxを学び、楽しみたい人々のために
システム言語

localeの設定

ページ作成日 2016/4/20

システム全体の設定

インストールをしてアカウントを作った後、そのユーザでログインしたら、まず最初に言語の設定をします。
/etc/profile.d/lang.shがシステム全体のlocale設定ファイルになります。


#!/bin/sh
# Set the system locale.  (no, we don't have a menu for this ;-)
# For a list of locales which are supported by this machine, type:
#   locale -a

# en_US is the Slackware default locale:
export LANG=en_US

# 'C' is the old Slackware (and UNIX) default, which is 127-bit
# ASCII with a charmap setting of ANSI_X3.4-1968.  These days,
# it's better to use en_US or another modern $LANG setting to
# support extended character sets.
#export LANG=C

# There is also support for UTF-8 locales, but be aware that
# some programs may possibly misbehave under UTF-8.  In those
# cases, you can set LANG=C before starting them.  Note that
# there are some UTF-8 locales that do not contain UTF-8 or
# utf8 in the locale name, so to test if a locale is UTF-8,
# use this command:
#
# LANG= locale locale -k charmap
#
# UTF-8 locales will include "UTF-8" in the output.
#
#export LANG=en_US.UTF-8

# Another option for en_US:
#export LANG=en_US.ISO8859-1

# One side effect of the newer locales is that the sort order
# is no longer according to ASCII values, so the sort order will
# change in many places.  Since this isn't usually expected and
# can break scripts, we'll stick with traditional ASCII sorting.
# If you'd prefer the sort algorithm that goes with your $LANG
# setting, comment this out.
export LC_COLLATE=C

# End of /etc/profile.d/lang.sh

ここで、locale=ja_JP.UTF-8と記述しても良いのですが、このファイルのコメントにもある通り、ソート順がASCII値順にならなくなるので、並び順が各所で変わる可能性があります。
そうなると、スクリプトが期待した通りの並び順でソートされない事によって動作しない可能性が発生します。

14.2の以降の開発サイクルでは、UTF-8をシステムのロケールとして採用するそうです。

システムのデフォルトの言語設定は変えず、自分のログイン環境下での言語を変えるようにしましょう。

ちなみに、サポートされている日本語のlocaleを確認するには、コマンドラインで以下のように入力します。


$ locale -a | grep ja_JP
ja_JP.eucjp
ja_JP.utf8

ユーザ環境下での設定

自分のホームディレクトリに.bash_profileというファイルを作成します。


$ vi .bash_profile

そして、以下の内容を記述します。


export LANG=ja_JP.utf8

以下のように記述してもOKです。


export LANG=ja_JP.UTF-8