現在のシェルの LANG 変数を変更します。

現在のシェルの LANG 変数を変更します。

CentOS 8でLANG変数をイタリア語に変更しようとすると、変更されません。ここに私がしていることの例があります。

LANG=it_IT.UTF-8

その後、これを実行すると、ls --help結果はまだ英語で表示されます。

ありがとうございます。

答え1

これを機能させるには、次のような条件を満たす必要があります。

  • ロケールit_IT.UTF-8はシ​​ステムで利用可能でなければなりません。確認するlocale -a | grep it
  • そのアプリケーションのイタリア語翻訳が可能でなければなりません(GNUの場合、ls通常は/usr/share/locale/it/LC_MESSAGES/coreutils.moCentOSなどのGNUシステムに似ています)。
  • 変数にアクセスするには、変数LANGを環境にエクスポートする必要がありますlsexport LANG)。
  • 具体的には、GNUシステムのメッセージ言語設定はおよび変数$LANGUAGEよりも優先されます(またはがC / POSIXロケールに設定されていない場合)。したがって、ある場合は、他のすべての項目をに設定しても、フランス語のメッセージ(利用可能な場合)が届きます。LANGLC_*LC_MESSAGELANGLC_ALLLANGUAGE=fr:en:itit_IT.UTF-8
  • メッセージ言語設定の場合は、他のすべてLC_MESSAGESよりも優先され、LANG上書きされLC_ALLます(上記のように/LANGUAGEでない場合)。CPOSIX

の出力には、locale現在の設定の概要が表示されます。env | grep -e LANG -e LC_ロケール関連のリストを提供する必要があります環境現在設定されている変数です。

答え2

LANGSun Microsystemsが現在ローカライゼーションの基本を開発した1980年代の古い環境変数です。

この変数は引き続き使用されますが、公式規格の他の変数が定義されていない場合は、代替としてのみ使用されます。

検索順序は次のとおりです。

  • LC_ALLはすべてを網羅するために使用されます。

  • LC_MESSAGESと同様の一般的な使用法

  • LC_ALLまたはロケールタイプ固有の定義の両方が使用できない場合はLANGです。

上書きするには、文書化されたLC_ALLを使用してください。

答え3

LC_ALL=it_IT.UTF-8を除いて試してみてください。LANGUAGE=it_IT.UTF-8LANG=it_IT.UTF-8

現在のロケールが正しく設定されていることを確認してくださいlocale

また、it_IT.UTF-8ロケールが使用可能であることを確認してくださいlocale -a

LANGUAGE=it_IT.UTF-8たとえば、メッセージテキストhelpまたはmanページのメッセージテキストを変更するように設定するだけです。これはLANGUAGE、翻訳が存在するメッセージの言語を設定することを覚えておいてください。だからls --helpまさにイタリア語ではないかもしれません。

答え4

tmuxUbuntuで使用するとアイコンなどを表示できません。

使用して

export LANG=en_IN.utf-8

問題が解決しました。正しく表示するために使用する別の方法はtmux -u

関連情報