Aggiungi giapponese e spagnolo a un'app Next.js
Devin installa next-i18next, estrae le stringhe hardcoded in file JSON di localizzazione, aggiunge le traduzioni in giapponese e spagnolo e verifica il cambio di lingua nel browser.(Opzionale) Imposta lo scope della codebase con Ask Devin
Se non sei sicuro di com’è strutturata la tua app Next.js o quali componenti contengono stringhe scritte direttamente nel codice (hardcoded), usa Ask Devin per analizzarla preliminarmente:Puoi anche avviare una sessione Devin direttamente da Ask Devin, e userà tutto ciò che ha appreso come contesto.
Avvia la configurazione dell'i18n
Aggiungere l’internazionalizzazione a un’app Next.js significa configurare il routing per le lingue, impostare il middleware, estrarre ogni stringa hardcoded e creare i file di traduzione — tutto questo prima ancora di poter testare anche solo un cambio di lingua. Devin gestisce l’intera pipeline: installa
next-i18next, configura il routing delle lingue di Next.js, estrae le stringhe da decine di componenti e verifica il risultato nel browser.Usa il comando slash /plan all’inizio della sessione così che Devin analizzi prima la tua codebase — capirà se stai usando il Pages Router o l’App Router, identificherà la libreria i18n corretta e descriverà il proprio approccio prima di scrivere qualsiasi codice. Rivedi il piano e suggerisci modifiche prima che inizi.Come Devin gestisce la fase di configurazione
Devin lavora all’interno della tua codebase Next.js in modo metodico — configurando la pipeline i18n, estraendo le stringhe e creando i file di localizzazione. Ecco come funziona:
- Installa le dipendenze — esegue
npm install next-i18next i18next react-i18nexte crea i file di configurazione:
-
Scansiona ogni componente — Legge ogni file in
components/epages/, identificando il testo hardcoded in JSX, attributi comeplaceholderearia-label, template literals e stringhe di errore -
Genera i file di localizzazione — Crea JSON strutturati in
public/locales/:
-
Sostituisce le stringhe in-place — Avvolge ogni componente con
useTranslation('common')e sostituisce il testo hardcoded con chiamate at(), gestendo l’interpolazione per valori dinamici comet('dashboard.welcome', { name: user.name }) -
Configura il caricamento lato server — Aggiunge
serverSideTranslationsa ogni pagina, così che le traduzioni siano disponibili al momento del rendering:
- Aggiunge il selettore della lingua — Crea un menu a discesa nella barra di navigazione che utilizza il cambio di lingua del router di Next.js:
Testa e itera
Devin esegue
npm run dev, apre l’app nel suo browser integrato e naviga tra le route /en, /es e /ja per verificare che tutto funzioni. Se qualcosa non funziona — una traduzione mancante, un layout che va oltre i bordi, una route che restituisce un 404 — Devin lo corregge e riesegue i test automaticamente.Usa in qualsiasi momento il comando slash /test per dire a Devin di rieseguire tutti i test e ricontrollare nel browser. Usa /review prima della PR (pull request) finale per fare in modo che Devin revisioni il proprio codice alla ricerca di stringhe mancanti, nomi di chiavi incoerenti o chiamate serverSideTranslations mancanti.Devin verifica:- Tutto il testo visibile è tradotto (nessuna stringa in inglese rimanente in modalità spagnolo/giapponese)
- I layout non si rompono con stringhe spagnole più lunghe o caratteri giapponesi più larghi
- Il selettore della lingua consente di passare tra tutte e tre le lingue/locali
- I valori interpolati (nomi utente, conteggi) vengono visualizzati correttamente in ogni locale
- Le regole di pluralizzazione funzionano (ad es. “1 item” → “1 件” in giapponese, “1 elemento” in spagnolo)
- Il routing basato sulla locale di Next.js funziona —
/ja/dashboardmostra la versione giapponese
Aggiorna la configurazione del tuo repository
Questo task installa nuove dipendenze (
next-i18next, i18next, react-i18next). Dopo il merge della PR, aggiorna la configurazione del repo in modo che lo snapshot dell’ambiente di Devin includa questi pacchetti per le sessioni future:- Vai a Settings > Devin’s Environment > Repositories
- Seleziona il tuo repo e fai clic su Configure
- In Upkeep > Maintain dependencies, assicurati che il comando di installazione (ad esempio
npm ci) sia configurato - Fai clic su Save per aggiornare lo snapshot
package.json evolve, e le sessioni future non perdono tempo a installare pacchetti all’avvio.Esamina la PR con Devin Review
Una volta che Devin ha aperto la PR, usa Devin Review per esaminare le modifiche relative all’i18n. Devin Review può individuare stringhe hardcoded non rilevate, nomi di chiavi di traduzione incoerenti e chiamate a
serverSideTranslations mancanti tra le varie pagine.