Multilingual Next.js apps without i18n rewrites
No next-intl, no i18n config in next.config, no locale-prefixed routing unless you want it. Add one Script component and Lingvit translates everything — SSR pages, SSG pages, App Router Server Components, and all client-side navigation.
What gets translated
- Server-rendered (SSR) pages
- Static (SSG) and ISR pages
- App Router layouts and pages
- Pages Router pages
- Client Components after hydration
- Dynamic routes and data-fetched content
- Parallel and intercepting routes
- Error and not-found pages
Setup guide
Add the Script component to your root layout
In app/layout.tsx (App Router) or pages/_app.tsx (Pages Router), import Next.js Script and add it with strategy="afterInteractive":
import Script from "next/script"; // Inside your layout's <body>: <Script src="https://cdn.lingvit.com/widget/v1/widget.bundle.js" strategy="afterInteractive" />The widget handles hydration automatically
afterInteractive loads after Next.js hydration completes. The MutationObserver then watches for App Router navigations, Suspense boundary resolutions, and any state-driven DOM updates.
Connect in the Lingvit dashboard
Create a project at app.lingvit.com, add your Next.js app URL, and select target languages. Stored translations can be reused after the first generation; delivery latency still depends on the visitor network and page.