Voltar ao blog

Como Traduzir um Ficheiro SRT sem Estragar a Temporização

Traduza um ficheiro SRT sem estragar a temporização: porque um tradutor genérico destrói os códigos de tempo, quatro métodos que não o fazem, e como verificar.

20 de setembro de 2026
Sablate Team

Para traduzir um ficheiro SRT e manter a temporização, use uma ferramenta que interprete o formato de legendas em vez de uma que trate o ficheiro como texto corrido. Uma ferramenta compatível com o formato lê o número do bloco, a linha de código de tempo e o texto como três coisas separadas, traduz apenas a terceira, e devolve as outras duas exatamente como estavam.

Todo o ficheiro de legendas traduzido que sai danificado remonta ao mesmo erro: o ficheiro inteiro foi parar a um tradutor genérico, que não tinha forma de saber quais linhas sustentavam a estrutura.

Por que motivo traduzir um SRT estraga a temporização?

Um bloco de SRT tem quatro partes, e apenas uma delas é linguagem:

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

O número identifica a legenda. A linha de código de tempo, com os milissegundos separados por vírgula e a seta -->, é a temporização. O texto é a legenda propriamente dita. A linha em branco é o separador que diz a um interpretador que o bloco terminou.

Um tradutor genérico vê um único documento a conter as quatro partes. Não tem motivo para tratar 00:00:04,120 --> 00:00:06,480 como sintaxe, por isso três coisas correm mal, normalmente em conjunto:

  1. As legendas fundem-se. A linha em branco entre blocos é espaço em branco para um tradutor de texto corrido, e se não sobreviver à viagem de ida e volta, duas legendas tornam-se um único parágrafo. Tudo o que vem a seguir fica agora desalinhado com o áudio.
  2. Os blocos são renumerados ou reordenados. Reformular parágrafos baralha os números de índice, e alguns interpretadores recusam o ficheiro por completo, enquanto outros o renumeram silenciosamente e deslocam as legendas.
  3. Os códigos de tempo são reformatados. Um espaço acrescentado à volta da seta, uma vírgula transformada em ponto, um campo de milissegundos preenchido de forma diferente — qualquer um destes é suficiente para tornar a linha impossível de interpretar.

Há uma quarta falha que nada tem a ver com o tradutor. A codificação. Um ficheiro com carateres acentuados ou uma escrita não latina, guardado em Latin-1 ou Windows-1254 em vez de UTF-8, aparece como lixo em metade dos leitores que o abrem. Guarde sempre os ficheiros de legendas em UTF-8 e este problema desaparece de vez.

O sinal revelador é que um ficheiro danificado muitas vezes ainda parece bem quando se passa os olhos por ele. O texto está no idioma certo, os códigos de tempo continuam lá, e nada salta à vista. Falha quando um leitor tenta interpretá-lo, ou, pior ainda, interpreta-o e reproduz com um desvio de dois segundos.

As quatro formas de traduzir um SRT

Da mais rápida à mais controlada:

  1. Subtitle Edit — gratuito, código aberto, tradução incorporada, funciona localmente.
  2. Um tradutor online compatível com o formato — carregue o ficheiro, receba outro de volta.
  3. Um LLM com um prompt rigoroso — o melhor controlo de terminologia, precisa de verificação.
  4. Uma aplicação de computador que trata a tradução como uma camada — vários idiomas a partir de uma só linha do tempo.

As quatro mantêm os códigos de tempo intactos, se forem usadas corretamente. Diferem no custo, na privacidade e em quantos idiomas está a produzir.

Método 1: Subtitle Edit

A resposta gratuita, e aquela por onde a maioria das pessoas devia começar.

O Subtitle Edit é de código aberto, funciona em Windows, macOS e Linux, e tem uma função de Tradução Automática que substitui o texto em memória e deixa a estrutura de blocos intacta por construção. Oferece vários motores — DeepL e Google, se tiver chaves, LibreTranslate, se alojar o seu próprio servidor, e modelos locais através de Ollama, llama.cpp ou qualquer endpoint compatível com OpenAI.

  1. Abra o .srt no Subtitle Edit.
  2. Escolha Tradução Automática e selecione um motor e o idioma de destino.
  3. Reveja o resultado na vista de lista, onde o original e a tradução ficam lado a lado.
  4. Guarde como um novo ficheiro, em UTF-8.

O caminho do modelo local é o que vale a pena conhecer: não precisa de chave de API e nada sai da máquina, o que o torna o único método gratuito nesta página que também é privado. A contrapartida é que um modelo local pequeno traduz visivelmente pior do que o DeepL em pares europeus, e vai ter de editar mais.

Método 2: um tradutor online compatível com o formato

Carregue o ficheiro, escolha um idioma, transfira o resultado. O DeepL aceita um .srt como tipo de documento e devolve um .srt traduzido com a estrutura intacta; quantos documentos pode processar depende do seu plano. Vários sites dedicados a tradução de legendas fazem o mesmo.

É o caminho mais rápido para um ficheiro num idioma, e a qualidade nos principais pares europeus é a melhor dos quatro métodos, sem qualquer configuração.

Há duas coisas a saber antes de o usar. O ficheiro é carregado, por isso é o método errado para qualquer coisa confidencial — uma montagem ainda não lançada, imagens de um cliente, a gravação de uma reunião interna. E um tradutor de documentos não lhe dá qualquer controlo sobre terminologia: nomes de produtos, nomes de personagens e jargão são traduzidos juntamente com tudo o resto, que é exatamente o que não se quer para nomes.

Método 3: um LLM com um prompt rigoroso

Este é o que dá o melhor controlo de terminologia dos quatro, porque pode dizer ao modelo o que não deve traduzir. É também o método com mais probabilidade de corromper o ficheiro em silêncio, por isso o passo de verificação não é opcional.

Um prompt que funciona:

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.

Trabalhe em grupos de 50 a 100 blocos, em vez de colar um filme de duas horas de uma só vez. É nas entradas longas que os modelos começam a fundir legendas e a perder blocos, e fazem-no sem avisar.

Depois verifique. Esta linha única conta as linhas de código de tempo nos dois ficheiros:

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

Os dois números têm de ser idênticos. Se a tradução tiver um número mais baixo, blocos foram fundidos, e todas as legendas a seguir à fusão ficam agora erradas. Corra esta verificação em todas as traduções feitas por LLM, sempre.

Método 4: traduzir como camada, não como ficheiro

Os três métodos acima partilham todos a mesma forma: tem um ficheiro, produz outro ficheiro, e se quiser oito idiomas faz o mesmo processo oito vezes e gere oito ficheiros.

Uma aplicação de computador pode manter uma única linha do tempo, em vez disso. No Sablate, uma tradução é uma camada acrescentada a uma transcrição já existente, em vez de uma nova tarefa — os limites das legendas são criados uma única vez e todos os idiomas herdam-nos, por isso a questão da temporização não volta a surgir. Cada camada tem o seu próprio estilo e a sua própria fonte de escrita, o que importa no momento em que um idioma precisa de uma escrita que a fonte das legendas não contém.

Há dois caminhos de tradução disponíveis. O Argos funciona offline na sua máquina e nunca envia nada para lado nenhum; o DeepL, o OpenAI e o Claude estão disponíveis se trouxer a sua própria chave de API. Um pormenor honesto sobre o caminho offline: o Argos publica pacotes que emparelham com o inglês de um dos lados, por isso um par como turco para alemão não tem pacote direto e é composto através do inglês como escala intermédia. Funciona, e uma linha de turco para alemão fica ligeiramente mais monótona do que uma de turco para inglês.

O plano gratuito cobre uma camada de tradução offline por tarefa, em vídeos até dez minutos; camadas ilimitadas, os motores na nuvem e a exportação num clique de todos os idiomas fazem parte do Pro. Transfira para Windows ou Mac e traduza um ficheiro antes de decidir seja o que for.

Que método deve usar?

MétodoCustoFunciona offlineControlo de terminologiaMelhor para
Subtitle EditGratuitoSim, com um modelo localParcialUm ficheiro, qualquer par de idiomas
Tradutor de documentos onlinePlano gratuito, depois pagoNãoNãoO melhor resultado mais rápido em pares europeus
LLM com um prompt rigorosoVaria consoante o modeloSim, com um modelo localSimJargão, nomes, um glossário próprio
SablatePlano gratuito, Pro é $29 pagamento únicoSimSimVários idiomas a partir de uma só transcrição

"Tenho um ficheiro e nenhum orçamento." Subtitle Edit. É gratuito, é a ferramenta de legendagem mais capaz desta lista para trabalho de formato, e não vai estragar a sua temporização.

"Preciso da melhor tradução para alemão e o ficheiro não é sensível." Um tradutor de documentos. O resultado do DeepL de inglês para alemão é o que precisa de menos edição de tudo isto.

"O vídeo é confidencial." Subtitle Edit com um modelo local, ou o caminho offline do Sablate. Qualquer método que carregue o ficheiro fica desqualificado, por melhor que seja.

"Vou publicar o mesmo vídeo em seis idiomas." Camadas, não ficheiros. Os métodos por ficheiro multiplicam-se por seis; um fluxo de trabalho em camadas não, e o fluxo de trabalho multilingue explica porque é que a transcrição merece uma revisão cuidadosa antes de tudo o resto começar.

Como evitar que a temporização volte a estragar-se

Três hábitos, pela ordem de quanto tempo poupam.

Verifique a contagem de blocos em todas as traduções. A linha grep acima demora dois segundos e apanha a única falha que é invisível a olho nu. Um ficheiro traduzido com menos blocos do que a origem está danificado, sempre.

Verifique a velocidade de leitura depois de traduzir, não depois de transcrever. Os tempos sobreviveram; o texto é que não ficou com o mesmo comprimento. Do inglês para espanhol ou francês, o texto costuma ficar 20 a 25 por cento mais comprido, e o alemão até 35 por cento, tudo dentro do mesmo número de segundos. Uma linha confortável de 14 CPS passa a uma linha de 17,5 CPS sem um único código de tempo se mexer — os limites de velocidade de leitura explicam o que fazer quanto a isso, e a resposta é sempre mudar as palavras ou a duração, nunca a sincronização.

Mantenha a transcrição de origem como master. Corrija ali os nomes, o jargão e a pontuação antes de traduzir seja o que for. Um apelido corrigido na origem fica corrigido em todos os idiomas; o mesmo apelido corrigido depois é uma edição por idioma, e as edições desalinham-se.

Se algo disto acabar incrustado num vídeo, faça-o por último. A velocidade de leitura numa cópia incrustada é permanente, e o formato para o qual exporta decide se o espectador consegue sequer trocar de idioma.

Traduza o ficheiro, não o vídeo. Mantenha a linha do tempo que já pagou, invista o esforço nas palavras que assentam nela, e verifique a contagem de blocos antes de entregar.