Questa pagina ha un modello di applicazione disponibile.
Pose una domanda e ottieni un riassunto del documento facendo riferimento a questa pagina e al provider AI di tua scelta
Il contenuto di questa pagina è stato tradotto con un'IA.
Vedi l'ultima versione del contenuto originale in ingleseSe hai un’idea per migliorare questa documentazione, non esitare a contribuire inviando una pull request su GitHub.
Collegamento GitHub alla documentazioneCopia il Markdown del documento nella porta-documenti
Traduci il tuo sito Next.js 15 usando next-intl con Intlayer | Internazionalizzazione (i18n)
Questa guida ti accompagna attraverso le best practice di next-intl in un'app Next.js 15 (App Router) e mostra come sovrapporre Intlayer per una gestione robusta delle traduzioni e automazione.
Vedi il confronto in next-i18next vs next-intl vs Intlayer.
- Per i junior: segui le sezioni passo-passo per ottenere un'app multilingue funzionante.
- Per gli sviluppatori di livello medio: presta attenzione all'ottimizzazione del payload e alla separazione server/client.
- Per i senior: nota la generazione statica, il middleware, l'integrazione SEO e i hook di automazione.
Cosa tratteremo:
- Configurazione e struttura dei file
- Ottimizzazione del caricamento dei messaggi
- Uso di componenti client e server
- Metadata, sitemap, robots per SEO
- Middleware per il routing delle localizzazioni
- Aggiungere Intlayer sopra (CLI e automazione)
Configura la tua applicazione usando next-intl
Installa le dipendenze di next-intl -
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Configurazione e caricamento dei contenuti
Carica solo i namespace di cui le tue rotte hanno bisogno e valida le localizzazioni in anticipo. Mantieni i componenti server sincroni quando possibile e invia al client solo i messaggi necessari.
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Utilizzo in un componente client
Prendiamo un esempio di un componente client che rende un contatore.
Traduzioni (forma riutilizzata; caricale nei messaggi next-intl come preferisci)
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Componente client
Copiare il codice nella clipboard
Non dimenticare di aggiungere il messaggio "about" nei messaggi client della pagina (includi solo i namespace di cui il tuo client ha effettivamente bisogno).
Utilizzo in un componente server
Questo componente UI è un componente server e può essere renderizzato sotto un componente client (pagina → client → server). Mantienilo sincrono passando stringhe pre-calcolate.
Copiare il codice nella clipboard
Note:
- Calcola
formattedCountlato server (es.const initialFormattedCount = format.number(0)). - Evita di passare funzioni o oggetti non serializzabili ai componenti server.
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Middleware per il routing della localizzazione
Aggiungi un middleware per gestire il rilevamento della lingua e il routing:
Copiare il codice nella clipboard
Best practices
- Imposta html
langedir: Insrc/app/[locale]/layout.tsx, calcoladirtramitegetLocaleDirection(locale)e imposta<html lang={locale} dir={dir}>. - Dividi i messaggi per namespace: Organizza i JSON per locale e namespace (es.
common.json,about.json). - Minimizza il payload client: Nelle pagine, invia solo i namespace necessari a
NextIntlClientProvider(es.pick(messages, ['common', 'about'])). - Preferisci pagine statiche: Esporta
export const dynamic = 'force-static'e genera parametri statici per tutte lelocales. - Componenti server sincroni: Passa stringhe precomputate (etichette tradotte, numeri formattati) invece di chiamate async o funzioni non serializzabili.
Implementa Intlayer sopra next-intl
Installa le dipendenze di intlayer:
Copiare il codice nella clipboard
Crea il file di configurazione di intlayer:
Copiare il codice nella clipboard
Aggiungi gli script in package.json:
Copiare il codice nella clipboard
Note:
intlayer fill: utilizza il tuo provider AI per completare le traduzioni mancanti in base alle localizzazioni configurate.intlayer test: verifica la presenza di traduzioni mancanti o non valide (usalo in CI).
Puoi configurare argomenti e provider; vedi Intlayer CLI.