LC_ALL:无法更改区域设置 (en_US.utf-8)

LC_ALL:无法更改区域设置 (en_US.utf-8)

我知道这个问题以前曾被问过,但没有一个答案适合我。

我使用 Arch Linux 和 KDE 以及 linux-zen 内核,并且我已将语言环境设置为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_ALL的.C.bashrc

答案1

文件/etc/环境与系统区域设置无关,您必须编辑LC_COLLATE=C.UTF-8.LC_ALL=C回到过去,但您使用滚动版本。

当使用sysvinitopenrc或类似的东西时......

您的语言环境是用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/区域设置存档并可以通过 进行检查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

相关内容