ローカライズ
アプリケーションを異なる国、地域に対応させるプロセス。
代表的なロケール
ロケールを表す文字列は以下のフォーマットで定められている。
言語.国.エンコーディング
言語.地域.エンコーディング
ロケール | 説明 |
---|---|
C 、POSIX
|
伝統的な POSIX 標準 ASCII |
ja_JP.UTF-8 |
日本語(日本) UTF-8 |
ja_JP.shiftJIS |
日本語(日本) シフトJIS |
en_US.UTF-8 |
英語(アメリカ) UTF-8 |
en_GB.UTF-8 |
アメリカ(イギリス) UTF-8 |
※ UTF-8
は utf8
でも良い
環境変数
ロケールには カテゴリ が存在し、環境変数 を用いて設定が行われる。
設定値は LC_ALL
が最も優先度が高く、他の設定値を上書き(無効化)することができる。
カテゴリ | 説明 | 優先度 |
---|---|---|
LC_ALL |
すべてのカテゴリを一括設定(最も優先される) | 高 |
LC_CTYPE |
文字の分類(文字種、マルチバイトなど比較、分類の規定) | - |
LC_COLLATE |
文字列の並び順(ソート順) collate=照合する、比較する |
- |
LC_TIME |
日付・時刻の表示形式 | - |
LC_NUMERIC |
数値の表示形式 | - |
LC_MONETARY |
通貨の表示形式 | - |
LC_MESSAGES |
メッセージの言語(エラーメッセージなど) | - |
LANG |
すべてのカテゴリを一括設定(デフォルト値) | 低 |
$ locale
$ locale
$ locale -a
$ locale -m
$ iconv
international conversion
$ iconv -f 変換前 -t 変換後 ファイル
$ iconv -l
タイムゾーン
システムクロック は (Universal time coordinated:協定世界時)で動作しており、表示される日時はローカルタイム(現地時刻)に変換されてユーザーに表示される。
このとき タイムゾーン がローカルタイムの変換に使われる。
/usr/share/zoneinfo/
タイムゾーンがバイナリファイルとして保存されているディレクトリ。世界中のタイムゾーンが保存されている。
/etc/localtime
現在のシステムが使用しているタイムゾーン情報を保持するファイル。
通常、/usr/share/zoneinfo/
配下のファイルのコピー、もしくは シンボリックリンク が配置される。
$ ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
/usr/share/zoneinfo/
ファイルを差し替えることで、システムのタイムゾーンを変更することができる。
/etc/timezone
現在のタイムゾーン(例:Asia/Tokyo
)などがテキスト形式で保存されたファイル。
主に Debian 系ディストリビューションで使用される。
TZ
環境変数。
プロセスに対して一時的に適用されるタイムゾーンを指定することができる。
$ TZ=タイムゾーン コマンド
$ tzselect
対話形式でタイムゾーンを 選択できる スクリプト。
あくまでも「どのタイムゾーンを設定すると良いか」が表示されるだけであり、設定自体は行われない。
$ tzselect
$ tzconfig
古いコマンドのため非推奨
/etc/timezone
と /etc/localtime
の両方に設定を行うコマンド。
現在では以下のコマンドが代わりに使用される。
$ sudo dpkg-reconfigure tzdata
$ timedatectl