How-to
How to translate an SRT file
Last updated: 2026-06-11
To translate an SRT file without breaking the timing: upload the .srt, pick the target language, translate the text only, and download the result. The key is that only the dialogue inside each cue is translated — the integer cue index and the HH:MM:SS,mmm timecode lines are left byte-for-byte identical, so every line stays synced to the video. With the SubLingo translator the four steps take about two minutes, work for over 100 language pairs, and output clean UTF-8.
Pasting a subtitle file into a general chat tool often returns an out-of-sync file because it reflows lines and renumbers cues. A subtitle-aware tool parses the cues first, which is what keeps the timing exact.
The four steps
- 01
Upload the .srt file
Open the SubLingo translator and drop in your .srt (or .vtt) file. The file is parsed into timed cues, so each cue's index and start/end timecode are locked before any text changes.
- 02
Pick the target language
Choose the source and target language, for example English to Spanish. SubLingo supports over 100 language pairs, including long-tail combinations.
- 03
Translate the text only
Start the translation. Only the text inside each cue is sent for translation; the integer index and the HH:MM:SS,mmm timecode lines are never altered, so timing is preserved exactly.
- 04
Download the synced file
Download the translated .srt. It has the same number of cues and identical timecodes as the original, encoded as UTF-8, ready to drop straight back onto your video.
What changes and what does not
A correct subtitle translation touches exactly one part of each cue: the text. This table shows what stays fixed.
| Part of cue | During translation | Example |
|---|---|---|
| Cue index | Unchanged | 1, 2, 3 … |
| Timecode line | Unchanged | 00:00:01,000 --> 00:00:04,000 |
| Cue text | Translated | Hello → Hola |
| Encoding | Normalized to UTF-8 | UTF-8 |
Why timecodes must stay exact
The timecode is what tells the player when each line appears. If a translation alters even one timecode, that line drifts out of sync with the audio, and fixing it by hand across hundreds of cues is slow. Keeping the index and timecode lines identical guarantees the translated file has the same structure as the original. For the timing model behind this, read subtitle timecodes explained, and for the file structure see the SRT format.
Translating VTT and other languages
The same four steps translate .vtt files too — the WEBVTT header, dot timecodes, and cue settings are preserved while only the text changes (see SRT vs VTT). Target any of 100+ languages: common picks include English to Spanish, English to Korean, and English to Portuguese. Browse the full set on the language-pairs hub.
Avoiding garbled output
Translated subtitles in Spanish, Arabic, or Japanese must be saved as UTF-8 or they garble. SubLingo outputs UTF-8 by default, so accents and non-Latin scripts display correctly. If a player still shows symbols like é, set its subtitle encoding to UTF-8 — details in the subtitle encoding guide.
Key facts
- Four steps: upload → pick language → translate text → download.
- Only the cue text is translated; index and timecodes stay identical.
- Works for .srt and .vtt, 100+ language pairs.
- Output is UTF-8, so non-Latin scripts display correctly.
- Same cue count and timing as the original — drops straight onto the video.
- Takes about two minutes for a typical file.
Definitions
- Cue text
- The lines of dialogue inside a cue — the only part that gets translated.
- Timecode line
HH:MM:SS,mmm --> HH:MM:SS,mmm— preserved byte-for-byte during translation.- Cue index
- The sequential integer per cue; kept identical so cue count and order do not change.
- Source language
- The language the original subtitles are in (e.g. English).
- Target language
- The language you translate into (e.g. Spanish, Japanese, Arabic).
- UTF-8 output
- The encoding of the translated file, so every script displays without garbling.
Related guides
FAQ
How do I translate an SRT file without breaking the timing?+
Use a tool that translates only the text inside each cue and leaves the index and timecode lines unchanged. With SubLingo: upload the .srt, pick the target language, translate, and download. Every HH:MM:SS,mmm timecode is preserved, so the file stays synced.
Can I just paste my SRT into ChatGPT to translate it?+
You can, but general chat tools tend to reflow lines, renumber cues, or drift the timecodes, leaving the subtitles out of sync. A subtitle-aware translator parses the cues first and only ever changes the text, returning a valid, synced file.
Is translating an SRT file free?+
SubLingo lets you try it free with no signup — upload, translate, and download the result.
Will the translated file still be a valid SRT?+
Yes. The output keeps the same cue count, the same sequential indexes, and the same comma timecodes, saved as UTF-8. It opens in any player that read the original.
Can I translate VTT files the same way?+
Yes. The same four steps work for .vtt files. The WEBVTT header, dot timecodes, and any cue settings are preserved; only the caption text is translated.
What languages can I translate subtitles into?+
Over 100 language pairs, from common ones like English to Spanish or English to Japanese to less common combinations. See the full list on the translate hub.
What if my translated subtitles show garbled characters?+
That is an encoding issue, not a translation one. SubLingo outputs UTF-8, which displays every language correctly. If a player still garbles them, set its subtitle encoding to UTF-8.