Skip to content

Localization

Every host gets the localization options from the machine base. They keep the interface language separate from the regional conventions, so a host can speak English while formatting dates, currency and paper size the local way:

hosts/example/default.nix
localization = {
keyboardLayouts = [ "ch" "at" ]; # X server, login greeter, virtual console
language = "en_US"; # interface and terminal language
formats = "de_CH"; # numbers, currency, paper size, addresses
dates = "en_GB"; # calendar and clock; defaults to `formats`
timeZone = "Europe/Zurich";
};

The virtual console follows the keyboard layouts, and the supported locales follow from the locales in use, so neither needs to be stated twice. Anything left out stays as NixOS configures it. Users inherit the host’s layouts through user.keyboardLayouts, which a user module can override for someone who types on a different keyboard than the machine’s owner.