Languages
The application has English and Czech interface catalogs and translates site metadata, menu entries, and articles independently.
Interface text
Catalogs live in src/Locale/en.php and src/Locale/cs.php. Templates use {t 'key'}. The URL prefix selects Czech at /cs/; the default English URL has no prefix. Add a locale in the application settings and provide its catalog before linking to it.
Database content
Default-language fields remain in cms_sites, cms_menu, and cms_articles. Translation tables contain the other locale. Missing translated values fall back to the default field. Article translations also carry their own content_format, so English Markdown can coexist with Czech legacy HTML during a gradual migration.
After content changes, use the application's normal cache invalidation path. For public production URLs, set i18n.baseUrl to a trusted HTTPS origin so alternate-language links do not depend on an untrusted Host header.