Commit 073e4bd6 authored by musjj's avatar musjj
Browse files

nixos/i18n: add extraLocales option

parent 7582a317
Loading
Loading
Loading
Loading
+25 −8
Original line number Diff line number Diff line
@@ -42,6 +42,17 @@
        '';
      };

      extraLocales = lib.mkOption {
        type = lib.types.listOf lib.types.str;
        default = [ ];
        example = [ "nl_NL.UTF-8" ];
        description = ''
          Additional locales that the system should support, besides the ones
          configured with {option}`i18n.defaultLocale` and
          {option}`i18n.extraLocaleSettings`.
        '';
      };

      extraLocaleSettings = lib.mkOption {
        type = lib.types.attrsOf lib.types.str;
        default = { };
@@ -67,18 +78,24 @@
                "en_US.UTF-8"
                config.i18n.defaultLocale
              ]
              ++ config.i18n.extraLocales
              ++ (lib.attrValues (lib.filterAttrs (n: v: n != "LANGUAGE") config.i18n.extraLocaleSettings))
            )
        );
        defaultText = lib.literalExpression ''
          lib.unique
            (builtins.map (l: (lib.replaceStrings [ "utf8" "utf-8" "UTF8" ] [ "UTF-8" "UTF-8" "UTF-8" ] l) + "/UTF-8") (
          lib.unique (
            builtins.map
              (l: (lib.replaceStrings [ "utf8" "utf-8" "UTF8" ] [ "UTF-8" "UTF-8" "UTF-8" ] l) + "/UTF-8")
              (
                [
                  "C.UTF-8"
                  "en_US.UTF-8"
                  config.i18n.defaultLocale
              ] ++ (lib.attrValues (lib.filterAttrs (n: v: n != "LANGUAGE") config.i18n.extraLocaleSettings))
            ))
                ]
                ++ config.i18n.extraLocales
                ++ (lib.attrValues (lib.filterAttrs (n: v: n != "LANGUAGE") config.i18n.extraLocaleSettings))
              )
          )
        '';
        example = [
          "en_US.UTF-8/UTF-8"