# i18n Baseline ## Scope MVP0 introduces i18n runtime baselines for both apps. Current baseline: - Shared locale contract in `@cms/i18n` (`de`, `en`, `es`, `fr`; default `en`) - Public app: path-stable routing (no locale in URL) via `apps/web/src/proxy.ts` - Public app: message loading through `apps/web/src/i18n/request.ts` - Public app: locale-aware navigation helpers in `apps/web/src/i18n/navigation.ts` - Public app: language switcher component backed by Zustand store - Admin app: cookie-based locale resolution and message loading in root layout - Admin app: runtime i18n provider (`AdminI18nProvider`) and locale switcher UI ## Notes - Public app locale is resolved through `next-intl` middleware + cookie. - Enabled locales are currently static in code and will later be managed from admin settings. - Translation key and workflow standards are documented in `i18n-conventions.md`.