În Next.js App Router, internaționalizarea (i18n) este gestionată nativ prin intermediul segmentelor dinamice de limbă (ex: app/[lang]/layout.tsx) și a unui Middleware care detectează limba preferată a utilizatorului din antetul Accept-Language.
// middleware.ts - Redirecționare automată către limba detectată
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
const limbiSuportate = ['ro', 'en', 'fr'];
export function middleware(request: NextRequest) {
const { pathname } = request.nextUrl;
const lipsesteLimba = limbiSuportate.every(
(lang) => !pathname.startsWith(`/${lang}/`) && pathname !== `/${lang}`
);
if (lipsesteLimba) {
return NextResponse.redirect(new URL(`/ro${pathname}`, request.url));
}
}
export const config = {
matcher: ['/((?!api|_next/static|_next/image|favicon.ico).*)'],
};
Structură Clară: Permite încărcarea dicționarelor de traducere specifice (JSON) în componentele de server fără biblioteci externe grele pe partea de client.
Principii de Bază
- Toate paginile primesc parametrul
params.lang. - Fiecare limbă beneficiază de indexare SEO separată cu suport pentru etichetele
hreflang.
Întrebări & Exemple de Cod:
Internaționalizare și Rute Multi-limbă ([lang]) în App RouterAi o nelămurire despre utilizarea comenzii
Internaționalizare și Rute Multi-limbă ([lang]) în App Routersau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.