Arch Linux 上的区域设置问题

Arch Linux 上的区域设置问题

我正在运行 Arch Linux。我的语言环境似乎设置不正确,但我不知道如何修复它。当我运行 时locale,我的系统输出以下内容:

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=en-US.UTF-8
LC_CTYPE="en-US.UTF-8"
LC_NUMERIC="en-US.UTF-8"
LC_TIME="en-US.UTF-8"
LC_COLLATE="en-US.UTF-8"
LC_MONETARY="en-US.UTF-8"
LC_MESSAGES="en-US.UTF-8"
LC_PAPER="en-US.UTF-8"
LC_NAME="en-US.UTF-8"
LC_ADDRESS="en-US.UTF-8"
LC_TELEPHONE="en-US.UTF-8"
LC_MEASUREMENT="en-US.UTF-8"
LC_IDENTIFICATION="en-US.UTF-8"
LC_ALL=

此输出的问题在于它读起来en-US.UTF-8是连字符而不是en_US.UTF-8下划线。但是,我的 locale.conf 读起来是LANG=en_US.UTF-8,并且运行sudo locale-gen无法解决这个问题。
这个问题影响不同的应用程序。例如,当我运行 时rofi -show,我面对的是以下输出:

(process:2360): Rofi-WARNING **: 20:42:40.268: Failed to set locale.

当我运行时,alacritty我收到类似的错误:

xkbcommon: ERROR: couldn't find a Compose file for locale "en-US.UTF-8" (mapped to "en-US.UTF-8")
Error: Failed to spawn command '/usr/bin/zsh': No such file or directory (os error 2)

如果我犯了任何明显/新手错误,请见谅,因为我刚开始在 Super User 上写问题。感谢您花时间阅读此文,任何帮助我都非常感谢!

答案1

刚刚偶然发现了这个错误,问题是当您设置locale.conf时您的LANG变量被搞砸了,为了解决这个问题,我们必须取消设置我们的LANG和源/etc/profile.d/locale.sh

$ unset LANG
$ source /etc/profile.d/locale.sh

执行后,$ locale -a它应该具有正确的语言环境,如果没有,那么您的locale.gen

我的locale -a例子(它应该有一个下划线):

C
C.UTF-8
en_US
en_US.iso88591
en_US.utf8
POSIX

执行完之后locale-gen应该就可以了。从 Arch Wiki 上的语言环境部分获取了所有信息:https://wiki.archlinux.org/title/locale

相关内容