How to Translate SRT Subtitles Correctly: Timing, Line Length and Reading Speed
A practical guide to translating SRT and WebVTT subtitle files: what the format looks like, why timestamps must not change, and how to keep translated lines short enough to read.
- subtitles
- SRT
- video
Subtitles look like the easiest thing in the world to translate: short lines, plain text, no layout. In practice, translated subtitles are where you most often see broken files, text that flashes by too fast to read, and lines that cover half the screen.
The reason is that a subtitle file is not just text. It’s text tied to time, and the viewer has a limited window to read each line. This guide covers the format, the rules that professional subtitlers follow, and a workflow that keeps translated subtitles watchable.
What an SRT file actually contains
SRT (SubRip) is the most common subtitle format. Each subtitle is a numbered block:
1
00:00:01,200 --> 00:00:03,900
Welcome back to the channel.
2
00:00:04,100 --> 00:00:07,450
Today we're looking at three ways
to translate documents.
Each block has four parts:
- A sequence number.
- A timing line: start and end in
hours:minutes:seconds,milliseconds, separated by-->. Note the comma before the milliseconds. - One or more text lines — usually one or two.
- A blank line that ends the block.
WebVTT (.vtt), used for HTML5 video, is similar but not identical: the file starts with a WEBVTT line, milliseconds use a period (00:00:01.200), cue numbers are optional identifiers, and cues can carry positioning settings and NOTE comments.
Rule 1: Never touch the timing
The translator’s job is the text. The sequence numbers and timing lines must come out exactly as they went in. Common ways they get damaged:
- Pasting the whole file into a translator, which “translates”
-->or reformats numbers - Changing the comma to a period (or vice versa) when converting between SRT and VTT by hand
- Merging two cues because the translation reads better as one sentence — which also merges two time ranges the video editor deliberately split
- Losing the blank line between blocks, which makes many players merge or skip subtitles
If a translated cue genuinely needs different timing — because the target language needs longer on screen — that’s a re-timing job, done in a subtitle editor with the video, not in the translation step.
Rule 2: Keep lines short
Viewers read subtitles while watching, so subtitles are deliberately compact. Widely used professional style guides for Latin-script languages typically allow:
- At most two lines per subtitle
- Roughly 42 characters per line as a common upper limit
- A minimum display time of around a second, so even short subtitles don’t flash
Languages using other scripts have their own norms — Chinese, Japanese and Korean guidelines use far fewer characters per line because each character carries more information. If you’re subtitling for a specific platform or broadcaster, follow its style guide; they differ in the details.
The problem for translation is that many languages need more characters than English to say the same thing. A line that fits at 40 characters in English might need 52 in German or Vietnamese.
Rule 3: Respect reading speed
Line length alone isn’t enough. What matters is how many characters the viewer has to read in the time the subtitle is on screen — characters per second (CPS).
CPS = characters in subtitle ÷ duration in seconds
A 60-character subtitle shown for 2.5 seconds is 24 CPS — too fast for most viewers. Common professional guidance puts comfortable adult reading speeds somewhere in the mid-to-high teens up to around 20 CPS, with lower limits for children’s content.
When the translation is too long for the time available, the fix is condensing, not shrinking the font or extending into the next cue:
- Drop filler that the audio already carries (“well”, “you know”, “so basically”)
- Use shorter synonyms
- Turn a clause into a phrase (“the documents that we translated” → “the translated documents”)
- Leave out repetitions a viewer can hear
Good subtitles are an edit of the dialogue, not a transcript. That’s a skill — and the main reason literal machine output often needs a pass by someone who knows the language.
Rule 4: Break lines in sensible places
When a subtitle needs two lines, where you break matters for readability. General principles:
- Keep grammatical units together: don’t split an article from its noun, a preposition from its object, or a first name from a surname.
- Prefer breaking after punctuation.
- When possible, use a bottom-heavy “pyramid” shape, with the shorter line on top.
- Each cue should make sense on its own when possible; avoid ending a subtitle mid-phrase unless the sentence truly continues.
Bad (splits "the translated file"):
We need to send the translated
file to the client by Friday.
Better (breaks between phrases):
We need to send the translated file
to the client by Friday.
Rule 5: Preserve formatting tags
SRT files often contain simple HTML-like tags, and some contain positioning codes:
<i>[phone ringing]</i>
{\an8}Text shown at the top of the screen
<i> is commonly used for off-screen voices, songs or sound descriptions. {\an8} is an ASS-style position tag that many players honor in SRT files. Both must stay exactly where they are. WebVTT has its own tags such as <v Speaker> for voices and cue settings like line:0 — same rule.
Rule 6: Translate sentences, not fragments
Subtitles split sentences across cues. Translating each cue in isolation produces grammatical nonsense, because many languages reorder subject, verb and object. The better approach:
- Read (or have the tool read) several cues together to get the full sentence.
- Translate the full sentence.
- Redistribute the translation across the same cues, keeping each one readable on its own.
Context also matters for consistency: a character’s name, a product term, or the formality level between two speakers should stay the same throughout the video.
A practical workflow
- Get a clean source file. Correct the source subtitles first — errors multiply when translated.
- Translate with timing locked. Use a subtitle-aware tool or editor that only exposes the text. 2Translate is being built to do exactly this for SRT and VTT: timing and numbering are copied untouched and only the text is translated, with full-sentence context.
- Check reading speed. Free subtitle editors such as Subtitle Edit or Aegisub can display CPS and line length and flag cues that exceed your limits.
- Condense the flagged cues. This is the human part.
- Watch it. Play the video with the subtitles at normal speed. Anything you can’t comfortably read, a viewer can’t either.
- Save as UTF-8. Especially for languages with diacritics or non-Latin scripts; legacy encodings are the most common cause of garbled characters.
Quick reference
| Item | Recommendation |
|---|---|
| Lines per subtitle | 1–2 |
| Characters per line | ~42 for Latin scripts (check your platform’s guide) |
| Reading speed | Typically ≤ 17–20 CPS for adults |
| Timing lines | Never edited during translation |
Tags (<i>, {\an8}) | Preserved exactly |
| Encoding | UTF-8 |
For a broader view of when automated translation is enough and when you need a professional subtitler, see machine translation vs human translation.