Translating Subtitles Without Wrecking Your Timing or On-Screen Context
Machine translation of subtitles fails in ways that only show up on screen — text overflow, broken references, and lines that no longer fit the cut.
Feed an English SRT into a 2026 translation model and you'll get German back in seconds. The German will be accurate. It will also be roughly 30 percent longer, it will point at the wrong thing on screen, and half your events will now overrun the reading-speed limit you set for the original. The translation was never the hard part. Fitting the translation to a video that was cut for a different language — that's the work.
This piece is about the failures that only appear once the translated text is sitting on top of the picture, and how to catch them before you ship a track that technically means the right thing but reads like a mess.
Text expansion is a timing problem, not a language problem
Languages don't occupy the same space. German and Finnish run long against English. Spanish and French run moderately long. Japanese and Chinese run short in character count but need more reading time per character. The rough expansion figures every localizer carries in their head — English to German around +30%, English to Spanish around +20% — aren't trivia. They tell you which events are about to break.
Here's the mechanism. Your English caption reads comfortably at 15 characters per second inside a 2.5-second window. Translate it, gain 30% more characters, keep the same 2.5-second window because the audio didn't change, and you're now at 20 characters per second. Nobody reads that fast. The viewer either misses the line or stops watching the picture to keep up.
So the first thing you do after any subtitle translation is re-run reading-speed validation on the translated track. The timings are inherited from the source; the text is longer; the two no longer agree. Every tool that flags characters-per-second on the original will flag it here too. Turn it on and expect red.
Condensation is the actual skill
You cannot fix an overrun by re-timing — the audio, the cut, the lip movement all stay put. The fix is condensation: saying the same thing in fewer characters so it fits the window that already exists. This is the craft that separates subtitle translation from document translation, and it's the part machines are still mediocre at unless you force the constraint.
When I brief a model to translate subtitles, the length limit goes in the prompt as a hard rule, not a suggestion:
Translate these subtitle events into French.
Hard constraints:
- Each event must fit its existing time window at a
reading speed no higher than 17 characters/second.
I have added the max character count per event in
brackets. Do not exceed it.
- Preserve meaning; condense wording as needed to fit.
- Keep the same number of events and the same timings.
- Prefer natural spoken French over literal translation.
[00:04-00:06] (max 44 chars) I really wasn't expecting
any of this to actually work.Giving the model the character budget per event changes its output completely. Without the budget it translates faithfully and overflows. With it, it makes the same editorial choices a human subtitler makes — dropping a redundant intensifier, choosing the shorter synonym, collapsing a phrase. Then you verify, because a model handed a tight budget will occasionally drop meaning to hit the number. Budget first, check second, always.
On-screen context is where machine translation quietly fails
This is the failure nobody warns you about, and it's the one that makes a translated video feel wrong even when every line is grammatically perfect. Subtitles reference things the viewer can see. Translation engines can't see.
- Deixis breaks. "Look at this one" over a shot of a red shoe. Many languages need grammatical gender or a specific classifier to say "this one," and the model guessed without knowing what "this" is. If it guessed a gender that doesn't match the noun on screen, a native speaker hears the mistake instantly.
- On-screen text goes untranslated or double-translated. A sign in the shot, a lower-third, a product label. If your subtitle references it ("as you can see on the label"), the translation has to agree with whatever's baked into the picture — which may be in the original language and staying that way.
- Reading order collides with graphics. A caption placed low on screen in the original may now overlap a title card in the target because the longer translated text pushed to two lines where the original was one.
None of these show up in the text file. They only appear when the translated track is laid over the actual video. Which is the whole point of the next rule.
Never sign off on a translation you haven't watched
Read the translated SRT and it looks fine. Play it against the picture and the problems surface. Watch the full video with the translated track burned in, or at least previewed in your NLE, before it goes anywhere. You're looking for three things specifically: text that overflows the safe area, captions that fight an on-screen graphic, and any line that references something visual to confirm the reference still lands.
Resolve's subtitle track and Premiere's caption preview both let you scrub with translated text live over the picture. Use it. The five minutes of watching catches what an hour of reading the file never will.
Right-to-left and CJK have their own traps
Translating into Arabic or Hebrew means the text direction flips, and caption position, punctuation placement, and any embedded Latin-script terms (a brand name, a URL) need to survive the flip intact. Modern editors handle RTL rendering, but numbers and Latin words inside an RTL line still get scrambled if the file's directional marks are wrong. Preview it; don't trust the raw file.
For Japanese, Chinese, and Korean, the character count is low but the per-character reading time is higher, and line-break rules are different — you can't break certain characters from what follows them. Let a tool that understands the language's line-breaking rules do the wrapping rather than forcing a Latin-style width limit onto it.
A workflow that survives contact with the picture
- Lock and clean the source-language subtitles first. Never translate a messy original — you'll multiply the mess.
- Add per-event character budgets derived from each event's duration and your reading-speed target.
- Translate with the budget as a hard constraint, language pair by language pair.
- Re-run reading-speed validation on the translated track and condense every overrun.
- Burn the track over the actual video and watch it, checking overflow, graphic collisions, and every visual reference.
- Have a native speaker review if the video matters — machines are fluent now, but they still don't know what's in your shot.
The tools translate meaning well and fit-to-picture badly. Your job is the fit. Treat every translated track as a draft that hasn't met the video yet, and you'll ship localizations that feel made for their audience instead of run through a converter.
A note on shelf life. AI products change fast. This guide deliberately focuses on the parts that stay true — how to judge a tool, what the trade-offs are — rather than ranking products that will have changed by the time you read it. Prices and feature claims should always be checked against the provider before you rely on them.