UbuntuのNixシェルでロケールを設定するには?

UbuntuのNixシェルでロケールを設定するには?

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 シェルからローカライズされたメッセージを受信するには、今何をすべきですか?

ベストアンサー1

まず、Ubuntuでロケールを再構成し、関連ロケールを構成に追加する必要がありました。

次に、パッケージのローカライゼーションがshare/locale/nb/LC_MESSAGESsettingsというディレクトリにあったにもかかわらず、LC_MESSAGES=nb_NO.UTF-8settingsを変更する必要がありました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

おすすめ記事