Wire next-intl with member.language as locale source

Featurekamo-internal
Shipped
April 28, 2026 at 3:28 PM UTC
Author
kamo
Commit
384eff4

Adds next-intl-based internationalization across kamo-internal without URL locale prefixes. Active locale is read from the kamo-locale cookie, which mirrors the authenticated member's `language` preference (set via the Regional Settings card in **************** Infrastructure: - i18n/locales.ts, i18n/request.ts: 22 supported locales matching kamo-marketing - /api/i18n/set-locale: writes the kamo-locale cookie - LocaleBootstrap: syncs cookie to Member.language on first authenticated load - I18nProviders: applies MUI core, x-data-grid, x-date-pickers locales and date-fns adapter locale to the active language - useFormatters: locale-aware date / number / percent / relative-time helpers - MyAccountTab Regional Settings save: writes the cookie + router.refresh() when the user changes their own language - scripts/translate.ts: build-time delta translation against TranslateService (mirrors kamo-marketing's pattern) - scripts/merge-fragments.ts, **************** tooling for aggregating per-area key fragments into messages/en.json Coverage: - messages/en.json seeded with shared common.*, nav.*, auth.* keys plus initial extraction across ~67 pages and components (dashboard, leads, commerce, settings, account, contacts, settings/features, settings/member, components/settings, components/tools/ai-chat, etc.). Many feature surfaces still need follow-up extraction passes.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing