Torna al blog

Come traduco questo blog con l'IA

2025-08-217 min di lettura

Sono una madrelingua spagnola. Vivo negli Stati Uniti, quindi uso l'inglese ogni giorno. Scrivo i miei post in inglese per fare pratica e per raggiungere più persone.

Google Analytics mi ha mostrato qualcosa di importante. Più della metà dei miei visitatori proviene da paesi in cui l'inglese non è la lingua principale. Questo mi ha detto che stavo lasciando valore sul tavolo. Così ho deciso di tradurre il blog con l'IA.

Su cosa mi concentro

  • Chiarezza: Mantengo il significato chiaro rispetto alla traduzione letterale parola per parola.
  • Struttura preservata: Non permetto alle traduzioni di modificare HTML, codice o URL.
  • URL stabili: Ogni lingua ha uno slug fisso in modo che i link non si interrompano.
  • Velocità: Un comando traduce tutto.

La mia configurazione

  • Formato del contenuto: Ogni post è un file JSON con title, date, excerpt, content, readTime, tags, categories, translatedSlugs e slug.
  • Framework: Next.js e next-intl per il routing consapevole della localizzazione.
  • Modello: Chiamo l'API Gemini di Google da scripts/translate-es-gemini.ts. Utilizza REST per impostazione predefinita e ha un modello di fallback. Il prompt è rigoroso: traduci solo i valori, non toccare HTML o URL.
  • Un comando: scripts/translate-all-languages.ts esegue le traduzioni per tutte le localizzazioni, sincronizza le mappature degli slug e convalida la completezza.
  • Selettore di lingua: Utilizza translatedSlugs per inviare i lettori all'URL corretto per ogni lingua.

Il mio flusso di lavoro

  1. Scrivo il post in inglese come app/[locale]/blog/posts/<slug>/index.json. Il campo content è HTML. I blocchi di codice sono racchiusi tra backtick.
  2. Traduco con un comando. Il modello traduce title, excerpt, content e readTime. I metadati come date, tags e categories rimangono invariati.
  3. Mantengo sincronizzati gli slug con una mappa translatedSlugs in ogni file, inglese e traduzioni.
  4. Convalido che ogni lingua esista e che la mappa degli slug sia completa.

Perché l'IA funziona per me

  • Segue le istruzioni: Il prompt protegge HTML, codice e link.
  • Veloce e buono: Un modello veloce con un fallback automatico.
  • Tono coerente: Una bassa temperatura mantiene lo stile costante tra le lingue.

Barriere di sicurezza

  • Traduzione sicura dell'HTML: Invio solo i valori delle chiavi JSON, non tag o attributi.
  • Disciplina degli slug: translatedSlugs contiene lo slug per en, es, fr, de, ru, nl, it e zh.
  • Validazione: Un comando verifica che ogni file linguistico esista e che la mappa degli slug sia completa.
  • Cortese con l'API: Aggiungo un piccolo ritardo tra le chiamate.

Traduzioni e SEO

  • Aiuta i lettori: Le persone si fidano dei contenuti nella loro lingua. Rimangono più a lungo e condividono di più.
  • Gli URL contano: Uno slug tradotto può includere le parole che le persone cercano in quella lingua.
  • Una pagina per lingua: Collega le versioni linguistiche con hreflang per evitare duplicati.
  • Sitemap: Includi tutte le localizzazioni in modo che i motori di ricerca possano trovarle.
  • Stabilità: Traduci gli slug ma mantienili stabili. Cambiare spesso gli URL può danneggiare.

I comandi che eseguo

# Traduci un post in tutte le lingue
npm run translate-all translate my-new-post

# Valida che esistano tutti i file linguistici e le mappe degli slug
npm run translate-all validate my-new-post

# Riprova ed sovrascrivi le traduzioni dopo aver modificato l'inglese
npm run translate-all translate my-new-post --force

Questo è tutto. Uno per tradurre, uno per convalidare. Il selettore funziona perché ogni file JSON elenca lo slug per lingua.

Suggerimenti se provi questo

  • Scrivi in modo semplice. Le frasi brevi si traducono bene.
  • Racchiudi i blocchi di codice tra backtick e il codice inline tra <code>.
  • Evita giochi di parole se non rivedrai il testo di destinazione.
  • Usa HTML semantico. Titoli ed elenchi aiutano lettori e modelli.

FAQ

Modifico le traduzioni?

A volte, specialmente titoli e introduzioni. Voglio un punto di partenza veloce, poi rifinisco dove conta.

Privacy?

Il contenuto viene inviato all'API Gemini. Non invio segreti. Le chiavi API si trovano in .env.local (GOOGLE_API_KEY o GEMINI_API_KEY).

Modelli?

Utilizzo un modello Gemini veloce e il fallback automatico se non è disponibile. Puoi sovrascriverlo con GEMINI_MODEL.

Conclusione

L'IA non sostituisce la tua voce. Rimuove il lavoro noioso. Mantieni pulita la tua sorgente, automatizza le parti ripetibili, convalida e pubblica.