Vibekit

Internationalization Overview

Multi-language architecture with next-intl and package-owned translations.

VibeKit uses next-intl and the packages/i18n workspace package to provide type-safe translations across marketing pages, authenticated apps, emails, and server procedures.

Routing and language detection

  • Flat routes: URLs have no /en or /de prefix (localePrefix: "never"). Pages live under apps/web/app/(marketing) and apps/web/app/(saas).
  • Language cookie: The active locale is stored in the NEXT_LOCALE cookie (config.i18n.cookieName).
  • Navigation: Import Link from @i18n or next/link. Both work on flat routes.
import { Link } from "@i18n";

export function Nav() {
  return <Link href="/pricing">Pricing</Link>;
}

Translation catalogs

Translations live in JSON files under packages/i18n/translations/. This is an illustrative namespace; use the actual existing keys or add matching keys in every locale:

{
  "common": {
    "save": "Save",
    "cancel": "Cancel"
  },
  "exampleFeature": {
    "title": "Example feature"
  }
}

Learn how to add new languages in Adding Locales.

On this page