ターミナルにドイツ語のウムラウト(ä
、、、)を入力すると(私はstを使用しており、Arch Linuxにあります)、表示されます。ö
ロケールが正しく設定されているようです。ü
$XTERM
st-256color
<ffffffff>
の出力はlocale
次のとおりです。
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=de-DE.UTF-8
LC_CTYPE=de-DE.UTF-8
LC_NUMERIC="de-DE.UTF-8"
LC_TIME="de-DE.UTF-8"
LC_COLLATE="de-DE.UTF-8"
LC_MONETARY="de-DE.UTF-8"
LC_MESSAGES="de-DE.UTF-8"
LC_PAPER="de-DE.UTF-8"
LC_NAME="de-DE.UTF-8"
LC_ADDRESS="de-DE.UTF-8"
LC_TELEPHONE="de-DE.UTF-8"
LC_MEASUREMENT="de-DE.UTF-8"
LC_IDENTIFICATION="de-DE.UTF-8"
LC_ALL=
私はlocale.conf
ただ設定
LANG="de-DE.UTF-8"
LC_CTYPE="de-DE.UTF-8"
私はlocale.gen
コメントがありませんde-DE.UTF-8
。何が間違っている可能性がありますか?
答え1
実際のロケール名には下線言語コードと国コードの間、つまり次のようにする必要locale.conf
があります。
LANG="de_DE.UTF-8"
LC_CTYPE="de_DE.UTF-8"
-
現在は、アンダースコア()の代わりにマイナス記号()を使用しています_
。ロケール仕様が無効であるため、システムは POSIX ロケールと US-ASCII 文字セットにのみ置き換えられます。
このLANG
変数は他のすべてのロケールのデフォルト値を設定するので、単に設定してください。
LANG=de_DE.UTF-8
変数を使用して特定のカテゴリを上書きしない限り、LC_*
すべてのカテゴリ別のロケール変数を同じ値に設定するのと同じです。LC_*
したがって、設定すると、その設定はすでに新しいデフォルトに設定されているため、LANG=de_DE.UTF-8
必要ありません。ただし、翻訳されたエラーメッセージが気に入らず英語を維持したい場合は、LANG値を設定してLC_MESSAGESカテゴリのみをオーバーライドできます。LC_CTYPE=de_DE.UTF-8
LANG
LC_CTYPE
LC_MESSAGES=en_US.UTF-8
コマンド出力にもこの内容が反映されます。現在の設定と同じ(無効な)値locale
に設定されているすべてのカテゴリ別変数が表示されます。LANG
LC_ALL
すべてのロケールのマスターオーバーライドです。ローカライゼーションの影響を受ける可能性があるコマンド出力を解析するいくつかのパイプラインで最もよく見られます。ユーザーが使用するロケールに関係なく、スクリプト作成者が特定のロケールの出力解析のみを設計することで、パイプラインに接頭辞を付けたりLC_ALL=POSIX
保証したりできます。LC_ALL=en_US.UTF-8