「ロケール」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(文字列「[[zh-CN:」を「[[zh-hans:」に置換)
(systemdから移動)
1行目: 1行目:
 
[[Category:国際化]]
 
[[Category:国際化]]
  +
[[ar:Locale]]
 
[[cs:Locale]]
 
[[cs:Locale]]
 
[[de:Locale]]
 
[[de:Locale]]
11行目: 12行目:
 
[[uk:Locale]]
 
[[uk:Locale]]
 
[[zh-hans:Locale]]
 
[[zh-hans:Locale]]
  +
{{Related articles start}}
Linux では Locale を使ってユーザーがどの言語を使うか定義します。また、locale は使われる文字セットも定義するので、あなたの使っている言語が非 ASCII 文字を含んでいる場合、正しい locale を設定することは特に重要になります。
 
  +
{{Related|環境変数}}
  +
{{Related articles end}}
  +
ロケール (Locale) は {{Pkg|glibc}} などのロケールに対応しているプログラムやライブラリによって使われ、テキストのレンダリング、時刻や日付、地域通貨の正しい表示、アルファベットなどの決まり事が設定されます。
   
  +
== ロケールの生成 ==
Locale の名前は次のフォーマットを使って定義されます:
 
  +
<lang>_<territory>.<codeset>[@<modifiers>]
 
  +
ロケール名は基本的に {{ic|language[_territory][.codeset][@modifier]}} という形式になっています。''language'' は [[w:ja:ISO 639-1コード一覧|ISO 639 言語コード]]、''territory'' は [[w:ja:ISO_3166-1|ISO 3166 国名コード]]、''codeset'' は[[w:ja:文字集合|文字集合]]または [[w:ja:ISO/IEC 8859-1|ISO-8859-1]] や [[w:ja:UTF-8|UTF-8]] などのエンコーディングです。詳しくは {{man|3|setlocale}} を参照してください。
  +
  +
利用可能なロケールのリストを確認するには、以下のコマンドを実行:
   
==必要なロケールを有効にする==
 
locale は使用する前に、まずシステムで有効にする必要があります。全ての利用可能な locale を表示するには:
 
 
$ locale -a
 
$ locale -a
  +
有効にするには、{{ic|/etc/locale.gen}} ファイルの中の有効にする locale をアンコメントしてください。このファイルにはシステムで使うことができる全ての locale が含まれています。locale を無効にしたいときは戻すだけです。必要な locale を有効にした後、システムをアップデートしなくてはなりません:
 
  +
システムでロケールを利用するには、まず生成する必要があります。{{ic|/etc/locale.gen}} の中の適当なエントリをアンコメントして ''locale-gen'' を実行することで生成できます。同じく、エントリをコメントアウトするとロケールは無効になります。変更するときは、システム上の他のユーザーが必要としている言語や特定の[[#変数|変数]]にも注意してください。
  +
  +
例えば日本語の {{ic|ja_JP.UTF-8 UTF-8}} をアンコメントする場合:
  +
  +
{{hc|/etc/locale.gen|
  +
...
  +
#ja_JP.EUC-JP EUC-JP
  +
ja_JP.UTF-8 UTF-8
  +
#ka_GE.UTF-8 UTF-8
  +
...
  +
}}
  +
  +
ファイルを保存して、ロケールを生成:
  +
 
# locale-gen
 
# locale-gen
   
  +
{{Note|1=<nowiki></nowiki>
現在使っているロケールを表示するには:
 
  +
* {{ic|locale-gen}} は {{Pkg|glibc}} のアップデート時に毎回実行されます [https://projects.archlinux.org/svntogit/packages.git/tree/trunk/glibc.install?h=packages/glibc#n5]。
  +
* {{ic|UTF-8}} を使用することが推奨されています [http://utf8everywhere.org/]。}}
  +
  +
== ロケールの設定 ==
  +
  +
現在設定されているロケールと関連する環境設定を確認するには:
  +
 
$ locale
 
$ locale
   
  +
使用するロケールは {{ic|locale.conf}} ファイルに設定します。ファイルの中では1行毎に[[環境変数]]を設定します。''locale'' の出力と同じフォーマットです。
{{Tip|ほとんどの場合あなたのコンピュータで使われる言語はひとつだけですが、他のロケールも有効にしておくことは役に立つだけでなく時に必須でもあります。もし英語を喋らないユーザーとマルチユーザーシステムを使っている時は、そのユーザーの locale が少なくともシステムでサポートされていたほうが良いです。}}
 
   
  +
生成済みの利用可能なロケールを確認するには:
===Japanese example===
 
   
  +
$ localedef --list-archive
初めに {{ic|/etc/locale.gen}} の次の行をアンコメントします:
 
ja_JP.UTF-8 UTF-8
 
   
  +
もしくは {{man|1|localectl}} を使用:
それからシステムを root でアップデートします:
 
# locale-gen
 
   
  +
$ localectl list-locales
==システム全体のロケールを設定する==
 
システム全体の locale を定義するには、{{ic|locale.conf}} の {{ic|/etc/locale.conf}} を設定してください。
 
   
  +
=== システム全体のロケールを設定する ===
{{ic|locale.conf}} では一行毎に環境変数を指定します: {{ic|LANG}} 以外にも、{{ic|LC_ALL}} を除く全ての {{ic|LC_*}} 変数をサポートしています。
 
   
  +
システム全体のロケールを設定するには {{ic|LANG}} 変数を {{ic|/etc/locale.conf}} に書き込みます。使用するロケールは {{ic|/etc/locale.gen}} でアンコメントしたエントリの最初のカラムと同じです:
{{Note|{{ic|/etc/locale.conf}} はデフォルトでは存在しません、手動で作らなくてはなりません。}}
 
   
  +
{{hc|1=/etc/locale.conf|2=
{{Tip|インストール中 {{ic|locale}} の出力があなたにふさわしいものだったら、次を chroot 中に実行することで時間を節約できます: {{ic| # locale > /etc/locale.conf}}。}}
 
  +
LANG=''ja_JP.UTF-8''
  +
}}
   
  +
そして、以下のコマンドを実行:
{{hc|/etc/locale.conf|2=
 
LANG="ja_JP.UTF-8"}}
 
   
  +
# localectl set-locale LANG=''ja_JP.UTF-8''
高度な設定サンプル:
 
   
  +
他の設定など詳しくは[[#変数|変数]]や {{man|5|locale.conf}} を参照。
{{hc|/etc/locale.conf|2=
 
# 日本語の UTF-8 を有効にする
 
LANG="ja_JP.UTF-8"
 
   
  +
=== ユーザーセッションでシステムロケールを上書き ===
# デフォルトのソート順を保つ (例えば '.' で始まるファイルは
 
# ディレクトリのリストで最初に並ぶ)
 
LC_COLLATE="C"
 
   
  +
システム全体のロケールは {{ic|~/.config/locale.conf}} (または {{ic|$XDG_CONFIG_HOME/locale.conf}} や {{ic|$HOME/.config/locale.conf}}) を作成・編集することでユーザーセッションで上書きできます。
# 短い月日表示を YYYY-MM-DD に設定 ("date +%c" でテスト)
 
LC_TIME="en_DK.UTF-8"}}
 
   
locale は {{ic|localectl}} を使うことも設できます、例えば:
+
{{ic|locale.conf}} ァイルの優先順位は {{ic|/etc/profile.d/locale.sh}} で定義されています
   
  +
{{Tip|
# localectl set-locale LANG="ja_JP.UTF-8"
 
  +
* {{ic|/var/log}} のログは英語のままで、ユーザー環境では自分の言語を使うということが可能です。
  +
* {{ic|/etc/skel/.config/locale.conf}} ファイルを作成することで ''useradd'' と {{ic|-m}} オプションで追加された新しいユーザーの {{ic|~/.config/locale.conf}} が自動的に生成されます。}}
   
  +
=== ロケールを即座に変更する ===
詳しくは {{ic|man 1 localectl}} や {{ic|man 5 locale.conf}} を見て下さい。
 
   
  +
システムやユーザーの {{ic|locale.conf}} ファイルを作成・編集した場合、新しく設定した値は次にログインしたときに有効になります。新しい設定をすぐに使うには {{ic|LANG}} の設定を解除して {{ic|/etc/profile.d/locale.sh}} を source してください:
再起動した後に設定が反映され、ログイン時の個々のセッションごとに locale が設定されます。
 
   
  +
$ LANG= source /etc/profile.d/locale.sh
==フォールバック locale を設定==
 
  +
翻訳に gettext を使っているプログラムは、通常使われる設定と合わせて {{Ic|LANGUAGE}} オプションを使います。これによってユーザーは locale の [http://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAGE-variable リスト] を指定して、使われる順番を設定できます。好ましいロケールの翻訳がなされていない場合、他のロケールがデフォルトに代わって使われることになります。例えば、オーストラリアのユーザーはアメリカ流の綴りよりも英国流のほうが好ましいかもしれません:
 
  +
{{Note|最初に {{ic|LANG}} 変数の設定を解除しないと、{{ic|locale.sh}} は {{ic|locale.conf}} の値を反映しません。新しい、変更した変数だけが反映されます。{{ic|locale.conf}} から削除した値はセッション内で残り続けます。}}
{{hc|/etc/locale.conf|2=
 
  +
LANG="en_AU.UTF-8"
 
  +
=== 他の使用方法 ===
export LANGUAGE="en_AU:en_GB:en"
 
  +
  +
[[環境変数]]で説明されている方法でロケール変数を定義することも可能です。
  +
  +
例えば、開発中に特定のアプリケーションをテスト・デバッグしたいとき、以下のように起動することができます:
  +
  +
$ LANG=C ./my_application.sh
  +
  +
同じく、現在のシェルから実行する全てのプロセルにロケールを設定するには (例えば、システムのインストール中などに使うと有用です):
  +
  +
$ export LANG=C
  +
  +
== 変数 ==
  +
  +
{{ic|locale.conf}} ファイルは以下の環境変数をサポートしています:
  +
  +
* [[#LANG: デフォルトロケール|LANG]]
  +
* [[#LANGUAGE: フォールバックロケール|LANGUAGE]]
  +
* {{ic|LC_ADDRESS}}
  +
* [[#LC_COLLATE: 照合順序|LC_COLLATE]]
  +
* {{ic|LC_CTYPE}}
  +
* {{ic|LC_IDENTIFICATION}}
  +
* {{ic|LC_MEASUREMENT}}
  +
* {{ic|LC_MESSAGES}}
  +
* {{ic|LC_MONETARY}}
  +
* {{ic|LC_NAME}}
  +
* {{ic|LC_NUMERIC}}
  +
* {{ic|LC_PAPER}}
  +
* {{ic|LC_TELEPHONE}}
  +
* [[#LC_TIME: 日付と時刻の形式|LC_TIME]]
  +
  +
上記の {{ic|LC_*}} 変数の意味は {{man|7|locale}} の man ページに、詳しい説明は {{man|5|locale}} の man ページに存在します。
  +
  +
=== LANG: デフォルトロケール ===
  +
  +
この変数で設定されたロケールは {{ic|LC_*}} 変数全てで使われます (明示的に別のロケールを設定した場合はそちらが優先されます)。
  +
  +
=== LANGUAGE: フォールバックロケール ===
  +
  +
gettext を使って翻訳されたプログラムは通常の変数に加えて {{Ic|LANGUAGE}} オプションも認識します。ユーザーは [http://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAGE-variable ロケールの使用順序] を指定することが可能です。もし一番使用したい言語が使えない場合、デフォルトのロケールの代わりに別の似たようなロケールが使われます。例えば、アメリカ流の綴りよりも英国流の綴りを好むオーストラリアのユーザーの場合:
  +
  +
{{hc|locale.conf|2=
  +
LANG=en_AU.UTF-8
  +
LANGUAGE=en_AU:en_GB:en
 
}}
 
}}
   
  +
=== LC_TIME: 日付と時刻の形式 ===
==ユーザーごとにロケールを設定==
 
先に触れたように、ユーザー別にシステム全体のロケールとは異なった locale を使えます。これには、{{Ic|LANG}} 変数のロケールの定義を {{ic|~/.bashrc}} ファイルに写すことで実現できます。例えば、{{Ic|ja_JP.UTF-8}} ロケールを使うには:
 
export LANG=ja_JP.UTF-8
 
   
  +
例えば {{ic|LC_TIME}} が {{ic|en_US.UTF-8}} に設定されていた場合、日付フォーマットは "MM/DD/YYYY" になります。ISO 8601 の日付フォーマットである "YYYY-MM-DD" を使いたい場合:
ロケールは次に {{ic|~/.bashrc}} が source された時に更新されます。更新するには、ログインしなおすか、手動で source してください:
 
$ source ~/.bashrc
 
   
  +
{{hc|locale.conf|2=
==照合順序を設定==
 
  +
LC_TIME=en_DK.UTF-8
照合順序、もしくは並び替え、には少し変わったところがあります。並び替えはグーフィー(間抜け動物)でありロケール毎に異なったことをします。潜在的な問題を迂回するために、Arch では {{ic|/etc/profile}} で {{ic|1=LC_COLLATE="C"}} を設定することになっていました。しかし、現在この方法は既に使われていません。同じ挙動を有効にするには、{{ic|/etc/locale.conf}} に次を追加してください:
 
  +
}}
LC_COLLATE="C"
 
   
  +
{{Note|プログラムは必ずしも変数によって指定されたフォーマットで日付を表示するとは限りません。例えば {{man|1|date}} は別のパラメータを使って指定するようになっています。}}
{{ic|ls}} コマンドは今ではドットファイルを先に並べ、その後に大文字、小文字のファイル名と続きます。{{ic|LC_COLLATE}} の設定をしないと、ロケールの設定に従うプログラムでは {{ic|LC_ALL}} や {{ic|LANG}} によってソートします。しかし {{ic|LC_COLLATE}} の設定は {{ic|LC_ALL}} がセットされると上書きされます。このことが問題になるのならば、{{ic|LC_ALL}} がセットされないように {{ic|/etc/profile}} に次を加えて下さい:
 
export LC_ALL=
 
{{ic|LC_ALL}} は LC 変数の中で唯一 {{ic|/etc/locale.conf}} で'''セットできません'''。
 
   
  +
=== LC_COLLATE: 照合順序 ===
==週の始まりの曜日を設定する==
 
多くの国では週の初めは月曜日です。これを変えるには、{{ic|/usr/share/i18n/locales/<your_locale>}} の {{ic|LC_TIME}} セクションに次の行を追加・変更してください:
 
   
  +
ソートや正規表現で使われる照合順序を管理する変数です。
week 7;19971130;5
 
first_weekday 2
 
first_workday 2
 
   
  +
例えば値を {{ic|C}} に設定することで ''ls'' コマンドはドットファイルを先に表示して、大文字・小文字のファイル名を後にします:
それからシステムをアップデートします:
 
   
# locale-gen
+
{{hc|locale.conf|2=
  +
LC_COLLATE=C
  +
}}
   
  +
詳しくは [http://superuser.com/a/448294/175967] を参照してください。
{{Tip|もしシステムに問題が発生して、フォーラムやメーリングリスト、その他の方法で助けを求めたいときは、問題のあるプログラムから {{ic|export LC_MESSAGES&#61;C}} で出力させたメッセージを付け加えてください。これはアウトプットメッセージ(エラーやウォーニング)を英語に設定するもので、その問題がなんなのか多くの人が理解できるようになります。勿論、英語でないフォーラムに投稿するときは関係ありません。}}
 
   
  +
潜在的な問題を回避するため、Arch では以前 {{ic|/etc/profile}} で {{ic|1=LC_COLLATE=C}} と設定していましたが、現在は使われなくなっています。
==トラブルシューティング==
 
  +
===ターミナルが UTF-8 をサポートしていません===
 
  +
=== LC_ALL: トラブルシューティング ===
不運なことに、ターミナルには UTF-8 をサポートしていないものがあります。違うターミナルを使ってください。UTF-8 をサポートしているターミナル:
 
  +
  +
この変数で設定されたロケールは常に {{ic|LANG}} と他の {{ic|LC_*}} 変数よりも優先して使われます。
  +
  +
{{ic|LC_ALL}} は {{ic|locale.conf}} ファイルで設定できない唯一の {{ic|LC_*}} 変数です。あくまで {{ic|/etc/profile}} などで使うテスト用あるいはトラブルシューティング用の変数です。
  +
  +
== トラブルシューティング ==
  +
  +
=== ターミナルが UTF-8 をサポートしていません ===
  +
  +
以下は UTF-8 をサポートしているターミナルのリストです:
   
* vte-based terminals
 
 
* gnustep-terminal
 
* gnustep-terminal
 
* konsole
 
* konsole
 
* [[mlterm]]
 
* [[mlterm]]
 
* [[rxvt-unicode]]
 
* [[rxvt-unicode]]
* [[xterm]]
+
* [[st]]
  +
* [[termite]]
  +
* [[アプリケーション一覧/ユーティリティ#VTE ベース|VTE ベースのターミナル]]
  +
* [[xterm]] - {{ic|-u8}} 引数を使って実行するか [[X resources]] で {{ic|xterm*utf8: 2}} を設定してください。
  +
  +
==== Gnome-terminal や rxvt-unicode ====
  +
  +
UTF-8 のロケールからアプリケーションを起動する必要があり、それ以外のロケールを使用していると UTF-8 のサポートが有効になりません。上で書いているように {{ic|en_US.UTF-8}} ロケール (またはあなたの地域の UTF-8 ロケール) を生成し、デフォルトのロケールとして設定して再起動してください。
  +
  +
=== 設定を変更しても言語が変わらない ===
   
  +
{{ic|locale.conf}} 以外の他のファイルによって環境変数が再定義されている可能性があります (例: {{ic|~/.pam_environment}})。詳しくは[[環境変数#変数の定義]]を参照してください。
====Xterm が UTF-8 をサポートしていません====
 
{{pkg|xterm}} は、{{Ic|uxterm}} か {{Ic|xterm -u8}} で起動した時だけ UTF-8 をサポートします。
 
   
  +
[[GNOME]] などのデスクトップ環境を使用している場合、{{ic|locale.conf}} の設定がデスクトップ環境の言語設定で上書きされることがあります。
====Gnome-terminal や rxvt-unicode が UTF-8 をサポートしていません====
 
それらのアプリケーションを UTF-8 ロケールから起動してください。上の指示に従って {{ic|en_US.UTF-8}} locale (もしくはあなたの言語の UTF-8) を有効にしてからデフォルト locale に設定して、再起動します。
 
   
  +
== 参照 ==
====設定を変更しても GNOME の言語が変わらない====
 
いくつかの GUI ツールは環境変数の定義に {{ic|~/.pam_environment}} を使っています。GNOME はこのファイルを読みます。
 
   
  +
* [https://wiki.gentoo.org/wiki/Localization/Guide/ja Gentoo Linux ローカリゼーションガイド]
==参照==
 
* [https://wiki.gentoo.org/wiki/Localization/HOWTO/ja Gentoo Linux ローカライゼーションガイド]
 
 
* [http://www.gentoo-wiki.info/Locales Gentoo Wiki Archives: Locales]
 
* [http://www.gentoo-wiki.info/Locales Gentoo Wiki Archives: Locales]
 
* [http://demo.icu-project.org/icu-bin/locexp?_=en_US&x=col ICU's interactive collation testing]
 
* [http://demo.icu-project.org/icu-bin/locexp?_=en_US&x=col ICU's interactive collation testing]

2017年6月3日 (土) 20:24時点における版

関連記事

ロケール (Locale) は glibc などのロケールに対応しているプログラムやライブラリによって使われ、テキストのレンダリング、時刻や日付、地域通貨の正しい表示、アルファベットなどの決まり事が設定されます。

ロケールの生成

ロケール名は基本的に language[_territory][.codeset][@modifier] という形式になっています。languageISO 639 言語コードterritoryISO 3166 国名コードcodeset文字集合または ISO-8859-1UTF-8 などのエンコーディングです。詳しくは setlocale(3) を参照してください。

利用可能なロケールのリストを確認するには、以下のコマンドを実行:

$ locale -a

システムでロケールを利用するには、まず生成する必要があります。/etc/locale.gen の中の適当なエントリをアンコメントして locale-gen を実行することで生成できます。同じく、エントリをコメントアウトするとロケールは無効になります。変更するときは、システム上の他のユーザーが必要としている言語や特定の変数にも注意してください。

例えば日本語の ja_JP.UTF-8 UTF-8 をアンコメントする場合:

/etc/locale.gen
...
#ja_JP.EUC-JP EUC-JP
ja_JP.UTF-8 UTF-8
#ka_GE.UTF-8 UTF-8
...

ファイルを保存して、ロケールを生成:

# locale-gen
ノート:
  • locale-genglibc のアップデート時に毎回実行されます [1]
  • UTF-8 を使用することが推奨されています [2]

ロケールの設定

現在設定されているロケールと関連する環境設定を確認するには:

$ locale

使用するロケールは locale.conf ファイルに設定します。ファイルの中では1行毎に環境変数を設定します。locale の出力と同じフォーマットです。

生成済みの利用可能なロケールを確認するには:

$ localedef --list-archive

もしくは localectl(1) を使用:

$ localectl list-locales

システム全体のロケールを設定する

システム全体のロケールを設定するには LANG 変数を /etc/locale.conf に書き込みます。使用するロケールは /etc/locale.gen でアンコメントしたエントリの最初のカラムと同じです:

/etc/locale.conf
LANG=ja_JP.UTF-8

そして、以下のコマンドを実行:

# localectl set-locale LANG=ja_JP.UTF-8

他の設定など詳しくは変数locale.conf(5) を参照。

ユーザーセッションでシステムロケールを上書き

システム全体のロケールは ~/.config/locale.conf (または $XDG_CONFIG_HOME/locale.conf$HOME/.config/locale.conf) を作成・編集することでユーザーセッションで上書きできます。

locale.conf ファイルの優先順位は /etc/profile.d/locale.sh で定義されています。

ヒント:
  • /var/log のログは英語のままで、ユーザー環境では自分の言語を使うということが可能です。
  • /etc/skel/.config/locale.conf ファイルを作成することで useradd-m オプションで追加された新しいユーザーの ~/.config/locale.conf が自動的に生成されます。

ロケールを即座に変更する

システムやユーザーの locale.conf ファイルを作成・編集した場合、新しく設定した値は次にログインしたときに有効になります。新しい設定をすぐに使うには LANG の設定を解除して /etc/profile.d/locale.sh を source してください:

$ LANG= source /etc/profile.d/locale.sh
ノート: 最初に LANG 変数の設定を解除しないと、locale.shlocale.conf の値を反映しません。新しい、変更した変数だけが反映されます。locale.conf から削除した値はセッション内で残り続けます。

他の使用方法

環境変数で説明されている方法でロケール変数を定義することも可能です。

例えば、開発中に特定のアプリケーションをテスト・デバッグしたいとき、以下のように起動することができます:

$ LANG=C ./my_application.sh

同じく、現在のシェルから実行する全てのプロセルにロケールを設定するには (例えば、システムのインストール中などに使うと有用です):

$ export LANG=C

変数

locale.conf ファイルは以下の環境変数をサポートしています:

  • LANG
  • LANGUAGE
  • LC_ADDRESS
  • LC_COLLATE
  • LC_CTYPE
  • LC_IDENTIFICATION
  • LC_MEASUREMENT
  • LC_MESSAGES
  • LC_MONETARY
  • LC_NAME
  • LC_NUMERIC
  • LC_PAPER
  • LC_TELEPHONE
  • LC_TIME

上記の LC_* 変数の意味は locale(7) の man ページに、詳しい説明は locale(5) の man ページに存在します。

LANG: デフォルトロケール

この変数で設定されたロケールは LC_* 変数全てで使われます (明示的に別のロケールを設定した場合はそちらが優先されます)。

LANGUAGE: フォールバックロケール

gettext を使って翻訳されたプログラムは通常の変数に加えて LANGUAGE オプションも認識します。ユーザーは ロケールの使用順序 を指定することが可能です。もし一番使用したい言語が使えない場合、デフォルトのロケールの代わりに別の似たようなロケールが使われます。例えば、アメリカ流の綴りよりも英国流の綴りを好むオーストラリアのユーザーの場合:

locale.conf
LANG=en_AU.UTF-8
LANGUAGE=en_AU:en_GB:en

LC_TIME: 日付と時刻の形式

例えば LC_TIMEen_US.UTF-8 に設定されていた場合、日付フォーマットは "MM/DD/YYYY" になります。ISO 8601 の日付フォーマットである "YYYY-MM-DD" を使いたい場合:

locale.conf
LC_TIME=en_DK.UTF-8
ノート: プログラムは必ずしも変数によって指定されたフォーマットで日付を表示するとは限りません。例えば date(1) は別のパラメータを使って指定するようになっています。

LC_COLLATE: 照合順序

ソートや正規表現で使われる照合順序を管理する変数です。

例えば値を C に設定することで ls コマンドはドットファイルを先に表示して、大文字・小文字のファイル名を後にします:

locale.conf
LC_COLLATE=C

詳しくは [3] を参照してください。

潜在的な問題を回避するため、Arch では以前 /etc/profileLC_COLLATE=C と設定していましたが、現在は使われなくなっています。

LC_ALL: トラブルシューティング

この変数で設定されたロケールは常に LANG と他の LC_* 変数よりも優先して使われます。

LC_ALLlocale.conf ファイルで設定できない唯一の LC_* 変数です。あくまで /etc/profile などで使うテスト用あるいはトラブルシューティング用の変数です。

トラブルシューティング

ターミナルが UTF-8 をサポートしていません

以下は UTF-8 をサポートしているターミナルのリストです:

Gnome-terminal や rxvt-unicode

UTF-8 のロケールからアプリケーションを起動する必要があり、それ以外のロケールを使用していると UTF-8 のサポートが有効になりません。上で書いているように en_US.UTF-8 ロケール (またはあなたの地域の UTF-8 ロケール) を生成し、デフォルトのロケールとして設定して再起動してください。

設定を変更しても言語が変わらない

locale.conf 以外の他のファイルによって環境変数が再定義されている可能性があります (例: ~/.pam_environment)。詳しくは環境変数#変数の定義を参照してください。

GNOME などのデスクトップ環境を使用している場合、locale.conf の設定がデスクトップ環境の言語設定で上書きされることがあります。

参照