如何在 Debian 上安装/更改语言环境?

如何在 Debian 上安装/更改语言环境?

我编写了一个 Web 应用程序,其用户界面是荷兰语。我使用系统的日期和时间例程来格式化应用程序中的日期字符串。但是,系统格式化的日期字符串是英文的,但我希望它们是荷兰语,所以我需要设置系统的语言环境。如何在 Debian 上做到这一点?我尝试设置LC_ALL=nl_NL但似乎没有任何效果:

$ date
Sat Aug 15 14:31:31 UTC 2009
$ LC_ALL=nl_NL date
Sat Aug 15 14:31:36 UTC 2009

我记得在我的 Ubuntu 桌面系统上设置 LC_ALL 可以正常工作。我需要安装额外的软件包才能使其工作吗?还是我的做法完全错误?

答案1

编辑/etc/default/locale并设置内容为:

LANG="nl_NL.UTF-8"

您可以使用以下命令检查当前已生成哪些语言环境:

locale -a

您可以通过编辑/etc/locale.gen并取消注释要启用的区域设置的行来生成更多内容。然后,您可以通过运行以下命令来生成它们:

locale-gen

您可以在以下位置找到受支持的语言环境列表/usr/share/i18n/SUPPORTED

有关更多信息,请访问Debian 维基

答案2

您可能需要安装该locales软件包。这将询问您要生成哪些语言环境。如果已安装,则将dpkg-reconfigure locales允许您生成更多语言环境。

答案3

这里的答案和其他地方的答案一样不完整。在从几个地方拼凑信息后,对我有用的是 (1) 确保我想要的区域设置可用(如果不可用则生成它),然后 (2) 将区域设置相关的环境变量设置为所需的区域设置。

就我而言,我需要en_US.UTF-8以编程方式(即非交互方式)安装在 docker 容器中。ff 满足了我的需求,但它应该在交互式 shell 中也能正常工作。

apt-get update

# Install locales package
apt-get install -y locales

# Uncomment en_US.UTF-8 for inclusion in generation
sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen

# Generate locale
locale-gen

# Export env vars
echo "export LC_ALL=en_US.UTF-8" >> ~/.bashrc
echo "export LANG=en_US.UTF-8" >> ~/.bashrc
echo "export LANGUAGE=en_US.UTF-8" >> ~/.bashrc

在同一个 shell 上,您需要执行source ~/.bashrc以使环境变量立即生效。您可以通过调用来检查语言环境是否已正确配置locale

LANG=en_US.UTF-8
LANGUAGE=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

关于这个主题有很多问答条目,但只有少数真正有帮助。值得称赞的是:

答案4

对于像我一样在 Ubuntu 14.04 LTS 上没有/etc/locale.gen文件的用户,您可以添加一个新的语言环境/var/lib/locales/supported.d/local,然后运行:

sudo dpkg-reconfigure locales

您还可以通过以下方式添加法语(例如)语言环境(而不是编辑/var/lib/locales/supported.d/local):

sudo locale-gen fr_FR fr_FR.UTF-8

添加并生成语言环境的代码集ISO-8859-1,最后输入:UTF-8fr_FR

sudo dpkg-reconfigure locales

完成工作

相关内容