Come traduco questo blog con l'IA
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
eslug
. - 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
- Scrivo il post in inglese come
app/[locale]/blog/posts/<slug>/index.json
. Il campocontent
è HTML. I blocchi di codice sono racchiusi tra backtick. - Traduco con un comando. Il modello traduce
title
,excerpt
,content
ereadTime
. I metadati comedate
,tags
ecategories
rimangono invariati. - Mantengo sincronizzati gli slug con una mappa
translatedSlugs
in ogni file, inglese e traduzioni. - 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 peren
,es
,fr
,de
,ru
,nl
,it
ezh
. - 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.