Internazionalizzare un Sito React o Next.js

Guida i18n per React e Next.js

Internazionalizzare un Sito React o Next.js (next-intl) | We.Inc

Traduci correttamente un sito React o Next.js: file di messaggi, routing per lingua con next-intl, formattazione Intl per date, prezzi e plurali, layout da destra a sinistra e tag hreflang.

Tieni ogni stringa in un file di messaggi JSON per lingua, dai a ogni lingua il proprio URL come /de/about e formatta date, prezzi e plurali con le API Intl integrate nel browser. Nel Next.js App Router, next-intl collega tutto: un segmento di route [locale], un proxy che sceglie la lingua e useTranslations nei componenti.

Le parti di un sito tradotto

Tradurre non significa solo sostituire le parole. L'ordine delle parole cambia, le regole del plurale sono diverse, l'arabo si legge da destra a sinistra e ogni paese scrive le date a modo suo. Prova il selettore qui sotto per vedere una piccola scheda prodotto cambiare lingua, poi costruisci la stessa cosa nella tua app con i file di configurazione e il generatore di hreflang.

Domande frequenti

Quale libreria i18n dovrei usare con React?

Per il Next.js App Router, next-intl è pensata apposta e supporta i Server Component. Per un'app React semplice senza Next.js, scegli una libreria che salva i messaggi in JSON, così passare a un'altra in futuro resta gestibile.

Le lingue devono stare in sottocartelle, sottodomini o domini separati?

Le sottocartelle come example.com/de/ sono le più semplici da gestire, perché un solo sito e un solo dominio contengono tutto. next-intl supporta anche il routing per dominio se ti servono de.example.com o un dominio nazionale.

Come aggiungo hreflang in Next.js?

Restituisci alternates.languages da metadata o generateMetadata, con una voce per ogni URL di lingua. Next.js stampa un tag link rel="alternate" hreflang per ciascuna. Ogni versione linguistica deve elencare tutte le altre e se stessa, altrimenti i motori di ricerca possono ignorare l'insieme.

Posso tradurre il mio sito con la traduzione automatica?

Puoi usare la traduzione automatica come prima bozza, ma falla rivedere a un madrelingua, soprattutto titoli, prezzi e testi legali. Traduzioni scarne o non riviste possono confondere i lettori e indebolire la fiducia.

Messaggi, non stringhe nei componenti

Lascia la formattazione a Intl

Lingue da destra a sinistra

Configurazione di next-intl per l'App Router

Installa con npm install next-intl. Questi file seguono la struttura della guida introduttiva di next-intl per il routing basato sulla lingua.

Un file per lingua, con le stesse chiavi in ciascuno. La sintassi ICU gestisce i plurali dentro il messaggio.

src/i18n/routing.ts e src/proxy.ts

Il routing elenca le tue lingue una sola volta. Il proxy (chiamato middleware.ts prima di Next.js 16) reindirizza i visitatori a un prefisso di lingua.

src/i18n/request.ts

Legge la lingua dal segmento [locale], rifiuta quelle sconosciute e carica i messaggi di quella lingua.

next.config.ts, layout e una pagina

Il plugin collega request.ts. Sposta le pagine sotto app/[locale]/ e leggi i messaggi con useTranslations. next/root-params è attivo di default da Next.js 16.3; le versioni precedenti richiedono experimental.rootParams.

Formattare senza una libreria

Intl in JavaScript puro

Funziona in qualsiasi app React, tradotta o no.

Regole hreflang che i motori di ricerca controllano

Annotazioni di lingua corrette

Provalo: una scheda in cinque lingue

Cambia lingua e numero di articoli. Le stringhe arrivano da un oggetto di messaggi, mentre prezzo, data e forma plurale arrivano dalle API Intl del browser.

Lingua

Articoli nel carrello: {n}

Categoria plurale scelta:

Direzione:

La demo non converte valute; formatta solo lo stesso numero.

Generatore di hreflang

Inserisci il tuo dominio, il percorso di una pagina e i codici delle lingue per ottenere i tag link per l'head, oppure l'oggetto alternates di Next.js.

Dominio

Percorso della pagina

Codici lingua (separati da virgole)

Lingua x-default

Codici non validi ignorati: {codes}. Usa un formato come de o en-GB.

Formato di output

Tag link HTML

Metadata Next.js

Copia

Inizia gratis · Nessuna carta di credito richiesta

Correlati: Guide

Prodotto

Per chi è

Funzionalità

Risorse

Azienda

Mappa del sito