Torna al blog

Come tradurre un file SRT senza rompere le tempistiche

Tradurre un file SRT senza rompere le tempistiche: perché i traduttori generici rompono i timecode, quattro metodi che funzionano, e il controllo in una riga.

20 settembre 2026
Sablate Team

Per tradurre un file SRT mantenendo le tempistiche, usa uno strumento che analizza il formato dei sottotitoli invece di uno che tratta il file come prosa. Uno strumento consapevole del formato legge il numero del blocco, la riga del timecode e il testo come tre elementi separati, ne traduce solo il terzo, e riscrive gli altri due esattamente come erano.

Ogni file di sottotitoli tradotto e rotto ha origine dallo stesso errore: l'intero file è finito in un traduttore generico che non aveva motivo di sapere quali righe fossero strutturali.

Perché tradurre un file SRT rompe le tempistiche?

Un blocco SRT ha quattro parti, e solo una di queste è linguaggio:

2
00:00:04,120 --> 00:00:06,480
The timings live on the line above.
A translator must never touch it.

Il numero identifica la battuta. La riga del timecode, con i millisecondi separati da virgola e la freccia -->, è il tempo. Il testo è il sottotitolo. La riga vuota è il separatore che dice a un parser che il blocco è terminato.

Un traduttore generico vede un unico documento che contiene tutti e quattro gli elementi. Non ha motivo di trattare 00:00:04,120 --> 00:00:06,480 come sintassi, quindi tre cose vanno storte, di solito insieme:

  1. Le battute vengono unite. La riga vuota tra i blocchi è solo spazio bianco per un traduttore di prosa, e se non sopravvive al processo di traduzione, due battute diventano un unico paragrafo. Tutto quello che viene dopo quel punto è ora disallineato rispetto all'audio.
  2. I blocchi vengono rinumerati o riordinati. Il riflusso dei paragrafi mescola i numeri d'indice, e alcuni parser rifiutano il file categoricamente, mentre altri lo rinumerano in silenzio e spostano le battute.
  3. I timecode vengono riformattati. Uno spazio aggiunto attorno alla freccia, una virgola trasformata in un punto, un campo dei millisecondi riempito in modo diverso — basta uno solo di questi cambiamenti per rendere la riga illeggibile da un parser.

C'è un quarto tipo di errore che non ha niente a che fare con il traduttore. La codifica. Un file con caratteri accentati o uno script non latino, salvato come Latin-1 o Windows-1254 invece che UTF-8, si trasforma in mojibake — simboli senza senso — in metà dei player che lo aprono. Salva ogni file di sottotitoli in UTF-8 e questo problema scompare per sempre.

Il segnale rivelatore è che un file danneggiato spesso sembra ancora a posto quando lo scorri velocemente. Il testo è nella lingua giusta, i timecode ci sono ancora, e niente salta all'occhio. Fallisce quando un player prova ad analizzarlo, o peggio, viene letto e riprodotto con due secondi di scarto.

I quattro modi per tradurre un file SRT

Dal più veloce al più controllato:

  1. Subtitle Edit — gratis, open source, traduzione integrata, gira in locale.
  2. Un traduttore online consapevole del formato — carichi il file, ne ricevi uno indietro.
  3. Un LLM con un prompt rigoroso — il miglior controllo terminologico, richiede verifica.
  4. Un'app desktop che tratta la traduzione come un livello — più lingue da un'unica timeline.

Tutti e quattro mantengono i timecode intatti se usati correttamente. Differiscono per costo, privacy e per quante lingue stai producendo.

Metodo 1: Subtitle Edit

La risposta gratuita, e quella da cui la maggior parte delle persone dovrebbe iniziare.

Subtitle Edit è open source, gira su Windows, macOS e Linux, e ha una funzione Auto-Translate che sostituisce il testo in memoria e lascia intatta la struttura dei blocchi per costruzione. Offre diversi motori — DeepL e Google se hai le chiavi, LibreTranslate se lo ospiti tu stesso, e modelli locali tramite Ollama, llama.cpp o qualsiasi endpoint compatibile con OpenAI.

  1. Apri il file .srt in Subtitle Edit.
  2. Scegli Auto-Translate e seleziona un motore e la lingua di destinazione.
  3. Rivedi il risultato nella vista elenco, dove originale e traduzione sono affiancati.
  4. Salva come nuovo file, in UTF-8.

Il percorso con modello locale è quello che vale la pena conoscere: non serve nessuna chiave API e niente lascia la macchina, il che lo rende l'unico metodo gratuito di questa pagina a essere anche privato. Il compromesso è che un piccolo modello locale traduce sensibilmente peggio di DeepL sulle coppie europee, e dovrai fare più correzioni.

Metodo 2: un traduttore online consapevole del formato

Carica il file, scegli una lingua, scarica il risultato. DeepL accetta un .srt come tipo di documento e restituisce un .srt tradotto con la struttura intatta; quanti documenti puoi elaborare dipende dal tuo piano. Diversi siti dedicati alla traduzione di sottotitoli fanno la stessa cosa.

È la strada più veloce per un file in una lingua, e la qualità sulle principali coppie europee è la migliore dei quattro metodi senza bisogno di nessuna configurazione.

Due cose da sapere prima di usarlo. Il file viene caricato, quindi è il metodo sbagliato per qualsiasi cosa confidenziale — un montaggio non ancora pubblicato, il girato di un cliente, la registrazione di una riunione interna. E un traduttore di documenti non ti dà nessun controllo sulla terminologia: nomi di prodotto, nomi di personaggi e gergo tecnico vengono tradotti insieme a tutto il resto, che è esattamente quello che non vuoi per i nomi.

Metodo 3: un LLM con un prompt rigoroso

È il metodo con il miglior controllo terminologico dei quattro, perché puoi dire al modello cosa non tradurre. È anche il metodo più probabile a corrompere il file silenziosamente, quindi il passaggio di verifica non è facoltativo.

Un prompt che funziona:

Translate the subtitle text below from English into German.

Rules:
- Output exactly the same number of subtitle blocks as the input.
- Copy every block number and every timecode line unchanged, character for character.
- Translate only the subtitle text lines.
- Keep the blank line between blocks.
- Do not merge, split, reorder or renumber blocks.
- Do not translate these terms: [list product and character names here]
- Keep each translated line roughly the length of the original.

Lavora a gruppi di 50-100 blocchi alla volta invece di incollare un film di due ore in un colpo solo. È con gli input lunghi che i modelli iniziano a unire le battute e a perdere blocchi, e lo fanno senza segnalarlo.

Poi verifica. Questa riga di comando conta le righe di timecode in entrambi i file:

grep -c " --> " original.srt translated.srt

I due numeri devono essere identici. Se la traduzione è più corta, dei blocchi sono stati uniti, e ogni battuta dopo la fusione ora è sbagliata. Esegui questo controllo su ogni traduzione fatta con un LLM, ogni volta.

Metodo 4: tradurre come livello, non come file

I tre metodi visti finora condividono tutti la stessa forma: hai un file, produci un altro file, e se vuoi otto lingue lo fai otto volte e gestisci otto file.

Un'app desktop può invece mantenere un'unica timeline. In Sablate, una traduzione è un livello aggiunto a una trascrizione esistente invece di un nuovo lavoro — i confini delle battute vengono creati una sola volta e ogni lingua li eredita, quindi la questione delle tempistiche non si ripresenta una seconda volta. Ogni livello porta il proprio stile e il proprio font per lo script, il che conta nel momento in cui una lingua ha bisogno di uno script che il font da didascalia non contiene.

Sono disponibili due percorsi di traduzione. Argos funziona offline sulla tua macchina e non invia mai nulla a nessuno; DeepL, OpenAI e Claude sono disponibili se usi la tua chiave API. Un dettaglio onesto sul percorso offline: Argos pubblica pacchetti che si abbinano all'inglese da un lato, quindi una coppia come turco-tedesco non ha un pacchetto diretto e viene composta passando per l'inglese come tappa intermedia. Funziona, e una riga dal turco al tedesco si legge un po' più piatta di una dal turco all'inglese.

Il piano Gratuito copre un livello di traduzione offline per lavoro su video fino a dieci minuti; livelli illimitati, i motori cloud e l'esportazione in un clic di ogni lingua fanno parte di Pro. Scaricalo per Windows o Mac e traduci un file prima di decidere qualsiasi cosa.

Quale metodo dovresti usare?

MetodoCostoFunziona offlineControllo terminologicoIdeale per
Subtitle EditGratisSì, con un modello localeParzialeUn file, qualsiasi coppia di lingue
Traduttore online di documentiPiano gratuito, poi a pagamentoNoNoIl modo più rapido per un buon risultato sulle coppie europee
LLM con un prompt rigorosoVaria in base al modelloSì, con un modello localeGergo tecnico, nomi, un glossario interno
SablatePiano gratuito, Pro è $29 una tantumPiù lingue da un'unica trascrizione

«Ho un solo file e nessun budget.» Subtitle Edit. È gratis, è lo strumento per sottotitoli più capace di questo elenco per il lavoro sul formato, e non romperà le tue tempistiche.

«Mi serve la migliore traduzione in tedesco e il file non è sensibile.» Un traduttore di documenti. L'output di DeepL dall'inglese al tedesco è quello che richiede meno modifiche tra tutti quelli visti qui.

«Il video è confidenziale.» Subtitle Edit con un modello locale, oppure il percorso offline di Sablate. Qualsiasi cosa carichi il file è automaticamente esclusa, per quanto sia valida.

«Sto distribuendo lo stesso video in sei lingue.» Livelli, non file. I metodi basati sul singolo file si moltiplicano per sei; un flusso di lavoro a livelli no, e il flusso di lavoro multilingue spiega perché la trascrizione merita una revisione accurata prima ancora di cominciare.

Come evitare che le tempistiche si rompano di nuovo

Tre abitudini, in ordine di quanto tempo fanno risparmiare.

Verifica il conteggio dei blocchi a ogni traduzione. La riga grep qui sopra richiede due secondi e individua l'unico errore invisibile a un controllo visivo. Un file tradotto con meno blocchi del suo originale è rotto, sempre.

Controlla la velocità di lettura dopo aver tradotto, non dopo aver trascritto. Le tempistiche sono sopravvissute; il testo non è rimasto della stessa lunghezza. Dall'inglese allo spagnolo o al francese il testo cresce in genere del 20-25%, e in tedesco fino al 35%, tutto nello stesso numero di secondi. Una battuta comoda a 14 CPS diventa una battuta a 17,5 CPS senza che un solo timestamp si sposti — i limiti di velocità di lettura spiegano cosa fare al riguardo, e la risposta è sempre cambiare le parole o la durata, mai la sincronizzazione.

Mantieni la trascrizione sorgente come master. Correggi lì nomi, gergo tecnico e punteggiatura prima di tradurre qualsiasi cosa. Un cognome corretto nella sorgente è corretto in ogni lingua; lo stesso cognome corretto dopo significa una modifica per ogni lingua, e le modifiche finiscono per divergere.

Se qualcosa di tutto questo finisce impresso in un video, fallo per ultimo. La velocità di lettura in una copia impressa è permanente, e il formato in cui esporti decide se lo spettatore può cambiare lingua o no.

Traduci il file, non il video. Mantieni la timeline che hai già pagato, investi lo sforzo nelle parole che ci stanno sopra, e controlla il conteggio dei blocchi prima di consegnarlo.