Languages
Languages
/admin/i18n is the language control panel.
Supported locales
| Code | Label |
|---|---|
en | English |
de | Deutsch |
es | Español |
fr | Français |
it | Italiano |
zh-CN | 中文 |
The UI strings are managed by Paraglide JS — translations live in apps/frontend/messages/<locale>.json.
Default locale
The default is what new visitors see and what missing translations fall back to. It must be one of the enabled locales — to change it to a disabled language, enable that language first.
Enabling / disabling
Disable a language to hide it from the public switcher. The translation files stay in place, so re-enabling later is instant. The default language cannot be disabled (change the default first).
CMS translations
Disabling a language also stops the CMS from serving its translated rows — visitors who request that locale via URL or cookie fall back to the default. Existing rows in the markdown_pages table are preserved.
Storage
The config lives in two settings rows:
i18n.default_locale e.g. "en"
i18n.enabled_locales JSON array: ["en","de","fr"] Edit them directly in /admin/infra if you need to script changes.