Handbook / Current desktop documentation

Language

System locale, English fallback and contributing translations.

This is the English desktop Handbook, published online from the same generated catalog. References to buttons, panels and menus describe the installed desktop. Package updates can be newer than the downloadable ISO. Check installation & validation scope.

Eitr follows the system's message locale. Control Center > System > Language shows the language Eitr uses for that locale and opens a language picker; Walker > System > Language lists the same choices with the current one checked. Choose a language or System default, then sign out and back in. Eitr never signs you out automatically.

Eitr checks LC_ALL, then LC_MESSAGES, then LANG. Empty variables are ignored. LC_MESSAGES changes messages without changing your date, number or currency formats; LC_ALL overrides all locale categories and is normally left unset. C, POSIX and unsupported languages use English. A missing translated message falls back to English; a missing Handbook chapter falls back as a whole.

Change the system language

The picker writes only ~/.config/environment.d/90-eitr-language.conf. It sets LC_MESSAGES and clears LC_ALL for the next user session, preserving your date and number formats. System default removes that preference. It never edits /etc/locale.conf or generates locales. If necessary, use your system locale configuration. On Arch Linux, enable the locale you want in /etc/locale.gen and regenerate installed locales with sudo locale-gen. Then set the language in /etc/locale.conf, for example:

LANG=pt_BR.UTF-8

The first translation targets are pt_BR.UTF-8 (Brazilian Portuguese), es_ES.UTF-8 (Spanish), de_DE.UTF-8 (German) and fr_FR.UTF-8 (French). Regional variants can fall back to the base language. Check locale in a terminal for overrides, and locale -a for installed locales. Sign out and back in to apply the language to the desktop, menus and newly opened terminals. The picker changes your next session; already running applications keep their language.

Contribute a translation

English text is the source. Catalogs live in i18n/catalogs/<locale>/; edit the translated values, keeping the English keys. Python and shell messages use the single eitr gettext domain. Keep placeholders such as %1 and {name}, glyphs, package names, commands and file paths unchanged. Typed destructive-action confirmation words must match the words the confirmation check accepts.

Handbook chapters go in quickshell/desktop-bar/handbook/content/<locale>/<chapter-id>.md. Keep handbook: links, code blocks and commands intact. Keyboard and mouse tables are generated from the canonical shortcut sources; translate their messages in the Handbook catalog rather than maintaining a second list of bindings.

Run python3 tools/i18n-build.py --check, rebuild the Handbook with python3 quickshell/desktop-bar/scripts/handbook-build.py, then run its --check and bash tools/check.sh. Catalog checks list missing messages and changed placeholders. Check long translations in offscreen previews before submitting.

After translating a changed chapter in full, update its entry in source-hashes.json with the SHA-256 of the English source. The build check flags changed or unrecorded English sources; rebuilding catalogs alone never acknowledges a source change.

The System default row shows the native name resolved from /etc/locale.conf: LC_ALL, then LC_MESSAGES, then LANG, ignoring empty values. It ignores session overrides. English forces English; System default follows the system. If the system locale cannot be read, the row keeps its plain label.

The fixed language matching System default is hidden unless it is your saved explicit choice, so the current choice stays visible. If the system default cannot be resolved, all languages remain listed.