ロケール設定は、文化に関連するユーザー設定です。
ロケール名
私が知っているすべての現在のUNIXバリアント(少数のアンティークではない)では、ロケール名は同じパターンに従います。
- アンISO 639-1小文字2文字の言語コード、またはISO 639-2言語は何の2文字のコードを持っていない場合は3文字の言語コード。たとえば、
en
英語、de
ドイツ語、ja
日本語、uk
ウクライナ語、ber
ベルベル語、…
- すべてではありませんが多くの言語では、アンダースコアの
_
後にISO 3166の大文字の2文字の国コードが続きます。このように:en_US
英語(米国)のため、en_UK
イギリス英語のため、fr_CA
カナダ(ケベック)、フランス語、de_DE
ドイツのドイツ語のため、de_AT
オーストリアのドイツ語のため、ja_JP
(日本の)日本人のための、など
- 必要に応じて、ドットは
.
の名前が続く文字エンコーディングなどUTF-8
、ISO-8859-1
、KOI8-U
、GB2312
、Big5
(私はこれがどのように広まっ知りません)、ケースや句読点は名前をコードでは無視され、少なくともGNUのlibcのでは、など。たとえばzh_CN.UTF-8
、UTF-8でエンコードされた中国語(簡体字)zh_CN
、GB2312でzh_TW
エンコードされた中国語(中国語)、およびBig5でエンコードされた台湾語(繁体字)中国語です。
- オプションで、アットマークの
@
後にバリアントの名前が続きます。バリアントの意味はロケールに依存します。たとえば、多くのヨーロッパ諸国には@euro
、通貨記号が€で、エンコードがこの文字を含むロケールバリアント(ISO 8859-15またはISO 8859-16)があります。古い通貨記号が付いた装飾されていないバリアントとは対照的です。たとえば、en_IE
(英語、アイルランド)はlatin1(ISO 8859-1)エンコードと£を通貨記号としてen_IE@euro
使用し、latin9(ISO 8859-15)エンコードと€は通貨記号として使用します。
さらに、すべてのUnixライクシステムに存在する2つのロケール名:C
とがありPOSIX
ます。これらの名前は同義語で、コンピューターを意味します。つまり、コンピュータープログラムによって解析されるデータに適したデフォルト設定です。
ロケール設定
次のロケールカテゴリはPOSIXで定義されています。
LC_CTYPE
:ターミナルアプリケーションで使用される文字セット:分類データ(どの文字が文字、句読点、スペース、無効など)および大文字小文字変換。通常、テキストユーティリティは、LC_CTYPE
文字の境界を決定することに留意します。
LC_COLLATE
:照合(ソート)順序。この設定は、いくつかの理由で非常に限られた用途しかありません。
- ほとんどの言語には、ソート対象に依存する複雑なルールがあり(たとえば、辞書の単語と固有名詞は同じ順序を使用しない場合があります)、で表現できません
LC_COLLATE
。
- ロケール設定を使用するソフトウェアによって実行される適切なソート順が重要なアプリケーションはほとんどありません。たとえば、ワードプロセッサはファイル自体の言語とファイルのエンコードを保存し(そうでない場合、ファイルは異なるロケール設定のシステムで正しく処理されません)、環境で指定されたロケール設定を気にしません。
LC_COLLATE
特に、ソート順序A <a <B <…を引き起こすため、「AとZの間」に小文字のaからyが含まれるため、厄介な副作用が生じる可能性があります。特に、いくつかのアプリケーションを壊すような[A-Z]
非常に一般的な正規表現。
LC_MESSAGES
:情報メッセージおよびエラーメッセージの言語。
LC_NUMERIC
:数値の形式:10進数と3桁ごとの区切り。
多くのアプリケーション.
は、小数点としてハードコードします。これはLC_NUMERIC
あまり有用ではなく、潜在的に危険です。
- 設定しても、かなり頻繁にデフォルトのフォーマットが表示されます。
- あるアプリケーションがロケール依存の出力を生成し、別のアプリケーション
.
が小数点または,
フィールド区切り文字を想定している状況になる可能性があります。
LC_MONETARY
:に似てLC_NUMERIC
いますが、現地通貨の金額用です。
これを使用するアプリケーションはほとんどありません。
LC_TIME
:日付と時刻の形式:曜日名と月名、12時間制または24時間制、日付部分の順序、句読点など
組み込みLinuxにないGNU libcは、追加のロケールカテゴリを定義します。
LC_PAPER
:デフォルトの用紙サイズ(高さと幅で定義)。
LC_NAME
、LC_ADDRESS
、LC_TELEPHONE
、LC_MEASUREMENT
、LC_IDENTIFICATION
:私はこれらを使用するすべてのアプリケーションを知りません。
環境変数
ロケール設定を使用するアプリケーションは、環境変数からそれらを決定します。
- その後、
LANG
別の設定で上書きされない限り、環境変数の値が使用されます。LANG
が設定されていない場合、デフォルトのロケールはC
です。
LC_xxx
名前は、環境変数として使用することができます。
LC_ALL
が設定されている場合、他のすべての値は無視されます。これは主LC_ALL=C
に、実行場所に関係なく同じ出力を生成する必要がある実行アプリケーションを設定するのに役立ちます。
- さらに、GNU libc は
LANGUAGE
フォールバックを定義するために使用しますLC_MESSAGES
(たとえばLANGUAGE=fr_BE:fr_FR:en
、ベルギーのフランス語、またはフランスのフランス語が利用できない場合、英語が利用できない場合)。
ロケールのインストール
ロケールデータは大きくなる可能性があるため、一部のディストリビューションでは使用可能な形式で出荷されず、代わりに追加のインストール手順が必要になります。
独自のロケールを定義できます。
勧告
便利な設定は次のとおりです。
LC_CTYPE
テキストファイルをエンコードする言語とエンコードに設定します。端末がそのエンコードを使用していることを確認してください。
ほとんどの言語では、エンコーディングのみが重要です。いくつかの例外があります。たとえば、大文字i
はI
ほとんどの言語で使用さİ
れますが、トルコ語(tr_TR
)で使用されます。
LC_MESSAGES
メッセージを表示する言語に設定します。
- US Letterをデフォルトの用紙サイズにしたい場合に設定
LC_PAPER
しen_US
、en_GB
A4が必要な場合は他のほぼすべて(たとえば)に設定します。
- オプションで、
LC_TIME
お気に入りの時間形式に設定します。
上記で説明したように、LC_COLLATE
との設定は避けてくださいLC_NUMERIC
。を使用する場合LANG
、これらの2つのカテゴリをに設定して明示的にオーバーライドしますC
。
LC_PAPER
。そして、再起動せずにシステム全体でこれを更新できますか?