如何将 LC_NUMERIC 永久设置为英语?

如何将 LC_NUMERIC 永久设置为英语?

LC_NUMERIC由于点和逗号,我需要更改为英语(我有西班牙语的 Ubuntu),但如果LC_NUMERIC="en_US.UTF-8"我在退出终端时使用并再次打开它,LC_NUMERIC则又是西班牙语。

有人知道如何解决这个问题吗?

答案1

将值附加到您的~/.bashrc文件:

echo 'export LC_NUMERIC="en_US.UTF-8"' >>~/.bashrc

为了使其从当前会话开始适用bashsource文件~/.bashrc

source ~/.bashrc

例子:这里我将从en_US.UTF-8改为C

$ locale | grep LC_NUMERIC
LC_NUMERIC="en_US.UTF-8"

$ echo 'export LC_NUMERIC="C"' >>~/.bashrc

$ source ~/.bashrc 

$ locale | grep LC_NUMERIC
LC_NUMERIC=C

这将locale仅更改运行该命令的用户,对于系统范围的更改,您需要将值添加到/etc/default/locale,请检查下面添加的部分。


您还可以将值添加到系统范围的locale文件,/etc/default/locale该文件将在启动时读取。将其放在那里:

echo 'LC_NUMERIC="en_US.UTF-8"' | sudo tee -a /etc/default/locale

或者

sudo bash -c 'echo "LC_NUMERIC=\"en_US.UTF-8\"" >>/etc/default/locale'

答案2

更改系统范围内数字格式的区域设置的“官方”方法是:

sudo update-locale LC_NUMERIC=en_US.UTF-8

此后,重新启动系统。

如果仍然不起作用,则可能是您的图形桌面环境覆盖了系统范围的区域设置。在个人计算机上,最好对其进行配置,使其根本不修改系统范围的区域设置。如何做到这一点取决于您使用的桌面环境。我做了LXQt 说明为了这。

来源:ARon 的评论以上。我想将其变成一个正确的答案,因为这是官方的和最直接的技术。

答案3

图形登录默认不会读取 shell 启动文件(~/.bashrc~/.profile等等),也不应该读取,因为这些是 bash 特有的。

因此最好用于/etc/environment系统范围的环境设置和~/.xsessionrc用户特定的设置。

PAM 应该默认读取/etc/environment- 检查

/etc/pam.d/login /etc/pam.d/sshd /etc/pam.d/su /etc/pam.d/cron

包括以下行

session       required   pam_env.so readenv=1

->https://wiki.debian.org/EnvironmentVariables

相关内容