# i18n Baseline ## Scope MVP0 introduces i18n runtime only for the public app (`@cms/web`) using `next-intl`. Current baseline: - Shared locale contract in `@cms/i18n` (`de`, `en`, `es`, `fr`; default `en`) - Path-stable routing (no locale in URL) via `apps/web/src/proxy.ts` - Message loading through `apps/web/src/i18n/request.ts` - Locale-aware navigation helpers in `apps/web/src/i18n/navigation.ts` - Public language switcher component backed by Zustand store ## 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. - Admin app i18n provider/message loading is still pending. - Translation key conventions and workflow docs are tracked in `TODO.md`.