添加对多个本地 NixOS 的支持时遇到问题

问题描述 投票:0回答:1

运行最新稳定的 NixOS

我正在尝试使用 configuration.nix 文件中的

i18n.supportedLocales
选项添加对我的第二语言的支持。

  i18n.supportedLocales = [
    "ko_KR.UTF-8/UTF-8"
  ];

/UTF-8
好像是必须的

作为参考,这里是我的其余区域设置:

  # Set your time zone.
  time.timeZone = "Australia/Melbourne";

  # Select internationalisation properties.
  i18n.defaultLocale = "en_AU.UTF-8";

  i18n.extraLocaleSettings = {
    LC_ADDRESS = "en_AU.UTF-8";
    LC_IDENTIFICATION = "en_AU.UTF-8";
    LC_MEASUREMENT = "en_AU.UTF-8";
    LC_MONETARY = "en_AU.UTF-8";
    LC_NAME = "en_AU.UTF-8";
    LC_NUMERIC = "en_AU.UTF-8";
    LC_PAPER = "en_AU.UTF-8";
    LC_TELEPHONE = "en_AU.UTF-8";
    LC_TIME = "en_AU.UTF-8";
  };

这是使用此命令重建时抛出的错误:

sudo nixos-rebuild switch --flake .

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_ADDRESS = "en_AU.UTF-8",
    LC_NAME = "en_AU.UTF-8",
    LC_MONETARY = "en_AU.UTF-8",
    LC_PAPER = "en_AU.UTF-8",
    LC_IDENTIFICATION = "en_AU.UTF-8",
    LC_TELEPHONE = "en_AU.UTF-8",
    LC_MEASUREMENT = "en_AU.UTF-8",
    LC_TIME = "en_AU.UTF-8",
    LC_NUMERIC = "en_AU.UTF-8",
    LANG = "en_AU.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
setting up /etc...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_ADDRESS = "en_AU.UTF-8",
    LC_NAME = "en_AU.UTF-8",
    LC_MONETARY = "en_AU.UTF-8",
    LC_PAPER = "en_AU.UTF-8",
    LC_IDENTIFICATION = "en_AU.UTF-8",
    LC_TELEPHONE = "en_AU.UTF-8",
    LC_MEASUREMENT = "en_AU.UTF-8",
    LC_TIME = "en_AU.UTF-8",
    LC_NUMERIC = "en_AU.UTF-8",
    LANG = "en_AU.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

希望有人可以帮我解码这个

我花了很长时间在谷歌上搜索并浏览论坛,但找不到任何关于此事的有用信息。我自己也使用 MyNixOS 网站进行了实验,以获取有关软件包及其选项的信息。

locale nixos
1个回答
0
投票

我以前也对此感到困惑,但答案很简单。

i18n.supportedLocales
定义系统支持的区域设置的完整列表;您未列出的任何内容都将不受支持。这就是为什么您看到的错误指的是
"en_AU.UTF-8"
:您的系统配置中不再存在该语言环境。您可能想要的是这样的:

  i18n.supportedLocales = [
    "en_AU.UTF-8"
    "ko_KR.UTF-8/UTF-8"
  ];

就我个人而言,我喜欢设置

i18n.supportedLocales = [ "all" ];
,这样可以避免以一些磁盘空间为代价而过多思考这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.