Linux – Ubuntu でロケールを日本に設定する方法

目次

概要

Ubuntu でロケールを日本に設定する方法について解説します。

まとめ

先に必要なコマンドを記載し、次節以降で内容について解説します。

sudo apt install -y locales
sudo sed -i '/^# *ja_JP.UTF-8 UTF-8/s/^# *//g' /etc/locale.gen
sudo locale-gen
sudo update-locale LANG=ja_JP.UTF-8

ロケール

ロケール (locale) は、特定の地域や文化に関連する設定を指します。プログラムやシステムがユーザーの地域や文化に合わせた表示や動作を行うために使用されます。例えば、日付や時刻の表示形式、数値のフォーマット、通貨の表記などがロケールによって異なるため、適切なロケール設定を行うことで、ユーザーにとって直感的で使いやすいインターフェースを提供できます。

ロケールの要素:

  1. 言語: 使用する言語 (例: 日本語、英語)。
  2. 国または地域: 特定の国や地域 (例: 日本、アメリカ)。
  3. 文字コード: 使用する文字エンコーディング (例: UTF-8)。
  4. 日時の形式: 日付や時刻の表示形式 (例: YYYY-MM-DD、DD/MM/YYYY)。
  5. 数値の形式: 数値の表示形式 (例: 小数点の記号、桁区切りの記号)。
  6. 通貨の表示: 通貨の記号や形式 (例: ¥、$)。

ロケールの設定

1. ロケールの設定ファイルをインストールする

ロケールの設定ファイルを含むパッケージ locales をインストールします。

sudo apt install -y locales

インストールすると、/usr/share/i18n/ 以下にロケールの設定ファイルや文字コードが配置されます。

tree /usr/share/i18n
/usr/share/i18n
├── charmaps
├── locales
└── SUPPORTED

2. ロケール設定をコンパイルする

ロケール設定をコンパイルするには、localedef コマンドを使用する方法と、localedef をラップした locale-gen コマンドを使用する方法があります。

localedef コマンドを使用する場合

sudo localedef -c -i ja_JP -f UTF-8 -A /etc/locale.alias ja_JP.UTF-8
  • -c: エラーを無視します。
  • -i: ロケール名 (/usr/share/i18n/locales からこの名前のロケール設定を取得)。
  • -f: 文字コード名 (/usr/share/i18n/charmaps からこの名前の文字コード設定を取得)。
  • -A: ロケール名のエイリアスを登録 (/etc/locale.aliasja_JP.UTF-8ja_JP という名前で参照できるよう登録)。

コンパイルが完了すると、ロケールアーカイブ /usr/lib/locale/locale-archiveja_JP.UTF-8 のロケール情報が追加されます。このファイルには、システムで利用可能なすべてのロケールのデータが含まれています。このファイルはメモリ上にマッピングされ、プログラムがロケール情報に高速にアクセスできるようになります。

ロケールアーカイブに存在するロケールの一覧は以下のコマンドで確認できます。

localedef --list-archive

locale-gen コマンドを使用する場合

locale-gen は、localedef によるコンパイルを簡単に行えるようにラップしたスクリプトです。このスクリプトでは、/etc/locale.gen に記載されたロケールのコンパイルをまとめて行い、ロケールアーカイブに追加します。

/etc/locale.gen には、ロケールおよび文字コードの一覧がコメントアウトした形で記載されているため、コンパイルしたいロケールのコメントアウトを外して、locale-gen を実行します。

# /etc/locale.gen を編集して ja_JP.UTF-8 を有効にする
sudo sed -i '/^# *ja_JP.UTF-8 UTF-8/s/^# *//g' /etc/locale.gen

# ロケール設定をコンパイルする
sudo locale-gen

利用可能なロケールは、以下のコマンドで確認できます。

locale -a

3. ロケールを設定する

環境変数

ロケールの設定には、以下の環境変数が使用されます。優先順位は LANGUAGE > LC_ALL > LC_XXX > LANG の順です。

環境変数名 内容
LC_ALL 全てのロケール設定を一括で適用する場合に使用
LANG システムのデフォルト言語を設定
LANGUAGE 使用言語を指定
LC_CTYPE 文字エンコーディング
LC_NUMERIC 数値の書式
LC_TIME 日時の書式
LC_COLLATE 文字列のソート順
LC_MONETARY 通貨の書式
LC_MESSAGES メッセージの言語
LC_PAPER 用紙サイズの書式
LC_NAME 名前の書式
LC_ADDRESS 住所の書式
LC_TELEPHONE 電話番号の書式
LC_MEASUREMENT 数量の書式
LC_IDENTIFICATION ロケールの識別情報

これらの環境変数を設定することで、システムのロケールを制御できます。基本的には LANG だけ設定すれば、他の環境変数も同じロケールが適用されますが、特定の設定を上書きしたい場合に LC_XXX の各変数を使用します。

ロケールの設定方法

update-locale コマンドを使用すると、ロケールの環境変数を /etc/default/locale ファイルに追加できます。 update-locale は設定の整合性がチェックするため、安全に環境変数を設定できます。

# ロケールを ja_JP.UTF-8 に設定
$ sudo update-locale LANG=ja_JP.UTF-8
# 設定が反映されたことを確認する
$ locale

設定を反映させるためには、ログアウトして再度ログインする必要があります。

4. 設定が反映されたことを確認する

設定が反映されたことを確認するために、日付コマンドを実行します。

$ date
2024年 12月 26日 木曜日 08:29:52 UTC

コメント

コメントする

目次