Arch-Linux

LC_ALL:無法更改語言環境 (en_US.utf-8)

  • October 17, 2021

我知道以前有人問過這個問題,但沒有一個答案適合我。

我使用帶有 linux-zen 核心的 Arch Linux 和 KDE,並將我的語言環境設置為en_US.utf-8.

每當我打開 Konsole 時,我都會得到:

bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)

我怎樣才能解決這個問題?

這是我的/etc/environment

#
# This file is parsed by pam_env module
#
# Syntax: simple "KEY=VAL" pairs on separate lines
#

LANG=en_US.utf-8
LC_ALL=C

我也設置LC_ALLC我的.bashrc.

文件***/etc/enviroment***與系統語言環境無關,您必須編輯LC_COLLATE=C.UTF-8. LC_ALL=C回到過去,但您使用的是滾動版本。

當使用sysvinitoropenrc或類似的東西時…

您的語言環境是使用locale-gen和***/etc/locale.gen創建的,然後傳遞給/etc/locale.conf/etc/env.d/02locale***

這是一個例子……

[~] cat /etc/locale.gen 

C.UTF8 UTF-8
en_US ISO-8859-1
en_US.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE@euro ISO-8859-15
de_DE.UTF-8 UTF-8

[~] cat /etc/locale.conf 
# Configuration file for eselect
LANG="de_DE.utf8"
LC_COLLATE="C.UTF-8"

[~] cat /etc/env.d/02locale 
# Configuration file for eselect
LANG="de_DE.utf8"
LC_COLLATE="C.UTF-8"

[~] ls -l /etc/env.d/02locale 
lrwxrwxrwx 1 root root 14  1. Aug 20:10 /etc/env.d/02locale -> ../locale.conf

通過執行驗證所選語言環境是否可用,locale -a在驗證可用性後,您可以執行source /etc/profile以即時更新系統。

注意:語言環境將被保存到***/usr/lib/locale/locale-archive***並且可以通過localedef --list-archive.

使用時systemd

  1. 使用 獲取可用語言環境的列表localectl list-locales
  2. localectl set-locale LANG=de_DE.utf8如果需要,通過和設置所需的語言環境localectl set-locale LC_COLLATE=C.UTF-8
  3. 用 . 檢查結果localectl

引用自:https://unix.stackexchange.com/questions/673532