Languages
Switch the interface language live with /language, full RTL support on desktop, live translation updates between releases, and a public repo translators can PR.
Copy & share
Loading sections…
Connect MCP or install the Empryo skillSection exports contain only that heading’s content. Markdown and text links fetch the selected content directly, without the rest of the page.
Overview
Every user-visible string in Empryo goes through one localization catalog - the TUI, the desktop app and headless output alike. English and Arabic ship today (Arabic at 99%, with full right-to-left layout on desktop); the pipeline is built for more.
Switching
| Surface | How |
|---|---|
| TUI | /language - the interface repaints in place |
| Desktop | Settings → Language - the window reloads in the new language |
| Headless / CI | --locale <tag> per run, or EMPRYO_LOCALE in the environment |
The flag beats the config, the config beats the OS locale. Headless runs read cached catalogs only - they never fetch.
Live translations
Between releases, liveTranslations (opt-in) fetches newer catalogs from the public translations repo, validates them through the same security gate every bundled catalog passes, and caches them locally. A bad or hostile catalog never reaches the screen.
Localized commands
localizedCommands (opt-in, off by default) accepts translated slash-command names as aliases of the English ones - /لغة runs /language.
Contributing a language
Translations live in a public repo (proxysoul/Empryo) that translators open PRs against. The English catalog is published there on every release; merged translations flow back into the next build.