{
  config,
  pkgs,
  inputs,
  ...
}:
{
  i18n = {
    # Select internationalisation properties.
    defaultLocale = "en_US.UTF-8";

    extraLocaleSettings = {
      LANG = "en_US.UTF-8";
      LANGUAGE = "en_US.UTF-8";
      LC_ADDRESS = "en_US.UTF-8";
      LC_IDENTIFICATION = "en_US.UTF-8";
      LC_MEASUREMENT = "en_US.UTF-8";
      LC_MONETARY = "en_US.UTF-8";
      LC_NAME = "en_US.UTF-8";
      LC_NUMERIC = "en_US.UTF-8";
      LC_PAPER = "en_US.UTF-8";
      LC_TELEPHONE = "en_US.UTF-8";
      LC_TIME = "en_US.UTF-8";
    };

    inputMethod = {
      # enabled = "fcitx5";
      enable = true;
      type = "fcitx5";
      fcitx5 = {
        waylandFrontend = true;
        addons =
          with pkgs;
          [
            fcitx5-chinese-addons
            fcitx5-chewing
            # fcitx5-gtk
            # fcitx5-nord
            fcitx5-material-color
            # fcitx5-pinyin-zhwiki
            # fcitx5-rime
            # fcitx5-table-extra
          ]
          ++ (
            if config.services.displayManager.sddm.enable then
              [
                pkgs.kdePackages.fcitx5-qt
              ]
            else
              [ ]
          );
      };
    };

    supportedLocales = [
      "en_US.UTF-8/UTF-8"
      "zh_CN.UTF-8/UTF-8"
      "zh_TW.UTF-8/UTF-8"
    ];
  };
}