Dual language subtitles
Make dual language subtitles from one file, or join two you already have
Show two languages at the same time. Upload one subtitle file and every line is translated and shown together with the original, or upload two files you already have and they are joined by their timings. Both languages can sit together at the bottom, or the first can move to the top of the screen. Joining two files uses no AI and is free up to 3000 lines. For translation, the first part is free with no sign-up and a whole film is $5, one payment. A chatbot can pair up a short scene, but across a whole film it tends to stop partway or lose the timings.
- Translate one .srt, .vtt, .ass or .ssa file into one of 81 languages, both shown together
- Or join two files you already have, free up to 3000 lines, with no AI model involved
- Stacked at the bottom, or the first language at the top of the screen and the second at the bottom
- Download as SRT, VTT or ASS
- Translation: up to 150 lines free in full, first part of longer files free, whole film $5
- Right-to-left marks for Arabic, Persian, Hebrew, Urdu and the other right-to-left targets
What you get back
You get one subtitle file with both languages, named after your file: for example Movie.dual.fa.srt when you translate into Persian, or Movie.dual.srt when you join two files. Before you download, every line is shown on screen with both languages, and you can edit either one.
- Stacked: one subtitle for each moment, the first language on the upper line and the second language below it, both at the bottom of the screen.
- Split: the first language at the top of the screen and the second at the bottom. In SRT the top line is a separate subtitle starting with {\an8}; in VTT it carries line:0; in ASS it has its own "Top" style, yellow and slightly smaller.
- Start and end times taken from your first file. When translating, no line is merged, split or renumbered.
- An .ass or .ssa source is read as text: italics, bold, underline and a position code are kept, while its styles and other tags are not carried into the new file.
- UTF-8 with a byte order mark, so older players and TVs recognize Arabic, Persian, Chinese or Cyrillic text.
Dual subtitles with a chatbot, and with this tool
ChatGPT, Claude and Gemini can write a line of dialogue in two languages without trouble, and for one scene that is enough. A film is different: the second language has to land on hundreds or thousands of time codes, in a format a video player accepts.
| Your situation | A chatbot | This tool |
|---|---|---|
| One scene, a few dozen lines | Usually writes both languages well | Does the same and hands you a file a player can load |
| A whole film | Tends to stop partway, more so when every line has to be written twice | Translates every line in blocks, up to 10,000 lines per job |
| Keeping both languages in sync | Retypes the time codes, so lines can shift, merge or go missing | Timings come from your file; the second language is attached to them |
| Two subtitle files you already have | Has to read both and pair lines by guesswork | Pairs each line with the one it overlaps most in time, no AI model, free up to 3000 lines |
| First language at the top of the screen | May not know the code each format needs | Writes {\an8} for SRT, line:0 for VTT and a Top style for ASS |
| Arabic or Persian next to English | Plain text, so punctuation can land at the wrong end | Adds right-to-left marks to every translated line |
How to make dual language subtitles
-
1
Upload one file, or two to join
To translate, upload one .srt, .vtt, .ass or .ssa file and choose the second language. To join, upload exactly two files: the first is the main language, the second is added to it. Choose stacked or split.
-
2
Check the first part free
The opening lines appear on screen with both languages and their time codes. Edit either language in place. No account is needed for this step.
-
3
Unlock the rest and download
Short files and joins up to the free limit download straight away. For a longer translation, unlock the whole film for $5, then download SRT, VTT or ASS.
Why dual subtitles trip up general AI assistants
Asking a chatbot for subtitles in two languages doubles the hardest part of subtitle work. It has to write out every block of the file, number and time code included, and now each block holds twice the text. On a feature film the reply runs out long before the end, so the assistant stops, asks you to continue, or shortens the last part. Along the way it may join two short lines, renumber blocks or retype a time code wrong, and the subtitles drift away from the speech.
Placement is the second problem. Showing one language at the top of the screen needs a different code in each format, and a player ignores a code it does not understand. An assistant writing plain text rarely gets this right for every line.
This tool never asks a model to write the file. When it translates, it sends only the text, in blocks of up to 60 lines, requires each line back under its own number, asks once more for any line that is missing, and keeps the original if it is still missing. The timings are copied from your file, and the layout codes are written by the tool.
Two ways to get the second language
Translate: upload one file and pick a language. Every line is translated, and the original and the translation are shown together on the original timing. An .ass or .ssa file works too; it is read as text, so italics and a position code are kept but the original styling is not.
Join: upload two files you already have, for example film.en.srt and film.fa.srt. No AI model is used. Each line of the second file is attached to the line of the first file it overlaps most in time, so two short lines that fall within one longer line both appear with it. A line of the second file that overlaps nothing keeps its own timing and shows on its own, in the second language only. Joining is free in full up to 3000 lines.
What people use dual subtitles for
- Learning a language from films and series, with the familiar language as a safety net
- Families where parents and children read different languages, watching together
- Couples and friends who do not share a first language
- Teachers preparing a film for a class of mixed language levels
- Combining an official subtitle file with a fan translation in another language
Limits and getting a good result
Joining depends on timings. Two files made for the same release line up well; files from different releases, or one that runs a few seconds early, pair the wrong lines. Fix the timing first with the Fix Subtitle Sync tool, then join. When translating, the result follows the timings of your file, so start from one that matches your copy of the video.
Some players ignore {\an8} in SRT files and show both languages at the bottom. If that happens, choose stacked, or download VTT or ASS, which place the top line in their own way. Two languages take more room than one, so stacked subtitles can cover more of the picture on small screens.
Translation is done by a machine. It is well suited to learning and watching at home; for teaching material or a public screening, have a person check the second language.
By language and situation
English and Persian dual subtitles
Persian is the subtitle language people ask NoCutoff for most. Upload an English subtitle file and every line...
Read more →English and Chinese dual subtitles
Upload an English subtitle file and get every line translated into Simplified Chinese, with the English at the...
Read more →English and Spanish dual subtitles
Upload a subtitle file and every line comes back with English and Spanish shown together, one above the other,...
Read more →English and Arabic dual subtitles
Upload an English subtitle file and get every line in Arabic as well: English at the top of the screen, Arabic...
Read more →Merge two SRT files into one dual language subtitle
Have the same film in two subtitle files, one per language? Upload both and get a single file that shows the t...
Read more →What it costs
Short files and joins
Free
Joining two files is free up to 3000 lines. Translated files with up to 150 lines are free in full; for longer files the first part is shown on screen, no account. 1 job a day, or 3 a day with a free account.
Whole film
$5
One payment for the whole file, up to 10,000 lines, translated or joined. No subscription, never expires.
Unlimited
$19 / week
Every tool on the site, with subtitle jobs of up to 30,000 lines.
Questions and answers
Can ChatGPT make dual language subtitles?
For a short clip, yes. On a whole film a chatbot tends to stop partway, since every line has to be written twice, and it can merge lines or change time codes so the file drifts out of sync. This tool translates the text in blocks, checks every line comes back, and copies the timings from your file.
Can I combine two subtitle files I already have?
Yes. Choose "Join two files" and upload exactly two: the first is the main language and the second is added to it. Each line of the second file is attached to the line of the first file it overlaps most in time. This uses no AI and is free up to 3000 lines.
Can the original be at the top and the translation at the bottom?
Yes, with the split layout. In SRT the top line is written as a separate subtitle with {\an8}, in VTT with line:0, and in ASS with a yellow "Top" style. The stacked layout puts both languages at the bottom, the first above the second.
Which language is shown first?
The language of your file, or of the first file when you join two. It is the upper line in stacked layout and the top of the screen in split layout. To put Chinese above English, for example, start from the Chinese file and choose English.
Is it free?
Joining two files is free up to 3000 lines. For translation, files with up to 150 lines are free in full, and longer files show the first part free on screen, up to 60 lines. A whole film, up to 10,000 lines, is $5 paid once.
Which files can I upload?
SubRip (.srt), WebVTT (.vtt), .ass and .ssa files, up to 10 MB each: one file to translate, or two to join. The download is SRT, VTT or ASS, whichever your player needs.
Does it work with Arabic, Persian and Hebrew?
Yes. When the second language is right-to-left, such as Arabic, Persian, Dari, Pashto, Urdu or Hebrew, each translated line starts and ends with an invisible right-to-left mark so punctuation shows at the correct end. The file is saved as UTF-8 with a byte order mark.
Are my files private?
Only you can open your job. When translating, the subtitle text is sent to an AI model provider for the sole purpose of translating it, through routes that do not use your data for training; joining sends nothing to a model. Jobs uploaded without an account are deleted after 7 days, and you can delete any job yourself at any time.
Updated October 25, 2026 · APPFACT STUDIO LTD