少し前までバズワードでしかなかったグローバルという言葉も、ここ10年で定着し、ビジネスとして必ず考えなければいけない所まで来ている。
Linuxを使ってサービスを提供するときも、海外のLinuxサーバを借りたときも、気にしなければいけないのがロケール情報(地域情報)だ。
このページではLinuxのローカライゼーションと、そのためのロケール情報についてまとめている。参考にしていただければと思う。
目次
ローカライゼーションとロケール
ローカライゼーションとは?
Linuxは商用OSに匹敵する「国際化」がほどこされている。国の環境に最適化することを「ローカライゼーション」という。Linuxではローカライゼーションの対象として日本語ももちろんサポートされている。
ローカライゼーションの対象は言語だけだと思われるかもしれないが、実は言語だけではない「通貨」「数値の書式」「日付」などもローカライゼーションにふくまれる。
「ローカライゼーション」という難しい言葉をつかったが、要は国ごとの「地域などにある書式ルールに準拠して使用しやすくする」ということだ。
ロケールとは?
各言語などの地域情報を「ロケール」と呼ぶ。ロケール情報を変えて、ローカライゼーションしていくイメージだ。
一例をあげると日本の場合現在では「ja_JP.UTF-8」という文字コードが主流だ。
また詳しく説明するが、これは「言語_国.文字コード」となっている。日本の場合小さな島国なので、言語と国がほぼ同じものをさしている。
しかし他国では英語を使用する場合でも、アメリカの場合「en_US.utf8」というように「英語圏 米国 文字コードutf8」となるが、カナダの場合「en_CA.utf8」となる。同じ英語圏でも地域や国が違う場合がある。
ロケール情報は文字コードを含めると、100を越える。全てのロケールを参照してみたいなら「/etc/locale.gen」を参照してみるとよい、見るとわかるがLinuxは多彩なロケールをもっている。
また余談ではあるが「Internationalization」(国際化)を「i18n」と略すことが多々ある。多言語対応のアプリケーションなどはパッケージ名に「i18n」とパッケージ名のなかにふくまれることが多いので覚えておこう。
主な項目と環境変数、日本における代表的なロケール
Linuxでは次の項目を設定することができるようになっている。一通り確認してみよう。
環境変数
- LANG 言語設定
- LC_CTYPE 文字の種類、その比較および分類の規定
- LC_COLLATE 文字の照合や整列に関しての規定
- LC_MESSAGES 表示メッセージに関しての規定
- LC_NONETARY 通貨に関する規定
- LC_NUMERIC 数値の書式などに関する規定
- LC_TIME 日付、時刻に関する規定
- LC_PAPER 紙の規格規定
- LC_NAME 名前に関しての規定
- LC_ADDRESS 住所に関しての規定
- LC_TELEPHONE 電話サービスに関する規定
- LC_MEASUREMENT 測定系などの単位の規定
- LC_IDENTIFICATION メタデータに関する規定
- LC_ALL ロケール情報を全項目に設定
日本で一般的なロケール
日本では次のロケールがよく使われる。
- C,POSIX システム標準な英語
- utf8(ja_JP.UTF-8) 日本語UTF-8
- eucJP 日本語eucJP
- utf8 英語米国UTF8
確認方法と一時的な変更方法
基本的に環境変数LANGにロケールを指定すると大概の項目はLANGと同じ値になる。現状を確認するためのコマンドとして「locale」コマンドがある。
$ locale
これで各環境変数の値が参照できる
またロケールを変更したい時は環境変数「LANG」を書き換えると良い
$ LANG=C
とすればロケール「C(POSIX)」にロケールが変更できる。この場合の指定はその環境で一時的なものとなる。恒久的な指定は起動時のスクリプトやロケールを定義しているスクリプトに記述することになる。
CentOS7の場合「/etc/locale.conf」に記述する形だ。
指定できるロケールを確認するには
$ locale -a
画像では「grep」コマンドで「JP」を指定して絞ってある。
とすると確認ができる。
CentOS7でのロケール管理
CentOS7では新しく「locelectl」コマンドが導入されているのでそちらでの管理が主流となる。
ロケールの確認
ロケールの確認には次のコマンドだ。
# localectl status
利用可能なロケールの一覧
利用可能なロケールの一覧を表示するのは次のコマンドになる。
# localectl list-locales
画像では「grep」コマンドで「JP」を指定して絞ってある。
ロケールの変更
ロケールの変更は次の通りだ。
# localectl set-locale LAN
まとめ
このページではLinuxのロケール設定方法についてまとめてきた。
特に海外のサーバーを借りた時など、思い通りの表示にならないことはよくある。そういうときはロケールの設定を確認して、必要であれば日本語の設定に変えていくといいだろう。
コメント