如何在 Ubuntu 上的 Nix shell 中设置语言环境?

如何在 Ubuntu 上的 Nix shell 中设置语言环境?

要演示 Ubuntu 中的区域设置支持:

vagrant init ubuntu/jammy64
vagrant up
vagrant ssh
sudo apt-get -y install hello language-pack-nb
LC_MESSAGES=nb_NO.UTF-8 hello

这将打印预期的本地化“Hei, verden!”信息。

让我们尝试运行 Nix 包,如下我能找到的唯一区域设置提示:

sudo apt-get -y purge hello
yes | sh <(curl -L https://nixos.org/nix/install) --daemon
exit
vagrant ssh
nix-shell --packages hello
export LOCALE_ARCHIVE=/usr/lib/locale/locale-archive
LC_MESSAGES=nb_NO.UTF-8 hello

这会打印“Hello, world!”。我还尝试将sudo dpkg-reconfigure locales“nb_NO.UTF-8”设置为默认区域设置,但没有成功。

我现在需要做什么才能在 Nix shell 中获取本地化消息?

答案1

首先,我必须在 Ubuntu 中重新配置区域设置,将相关区域设置添加到配置中。

其次,即使包的本地化位于名为 的目录中share/locale/nb/LC_MESSAGES,但设置LC_MESSAGES=nb_NO.UTF-8.我不得不改为设置LANG=nb_NO.UTF-8.

换句话说,这似乎是最低限度脚步:

sudo dpkg-reconfigure locales
nix-shell -p hello
export LOCALE_ARCHIVE=/usr/lib/locale/locale-archive
LANG=nb_NO.UTF-8 hello

相关内容