Merge English and Chinese Subtitles

A good bilingual subtitle file shows both languages in the same cue, at the same time. Getting there is not a copy-and-paste job: the two files almost never have the same cue count, the same splits, or the same timing. Merge by overlapping time, not by line number.

Your files are processed only in this browser tab. Nothing is uploaded.

Merge them now

Open the Bilingual Subtitle Merger, choose both subtitle files, and it matches cues by overlapping time for you. Open the Bilingual Subtitle Merger

What a correct bilingual file looks like

Each cue in the merged file contains two lines: the English line and the Chinese line for the same spoken sentence, sharing one start and end time. Viewers read the language they need without the screen jumping between two separate subtitle tracks, and language learners can compare the two versions line by line.

One practical rule follows from this: a Chinese line carries a whole sentence in far fewer characters than the English line, so the two lines of a cue are rarely the same length. That is normal. Do not pad the Chinese line or split the English line to make them look even, or the cue will stay on screen longer than the sentence lasts.

Why you must not merge by line number

Two subtitle files for the same video are almost never split the same way. The English file may break a long sentence into two cues where the Chinese file keeps it as one, or one translator may have merged two short sentences that the other kept separate. If you pair cue 1 with cue 1, cue 2 with cue 2, and so on, the pairs drift apart as soon as one file has an extra or missing cue, and every pair after that point is wrong.

Matching by overlapping time avoids this. Each cue from the second file is paired with the cue from the first file that it overlaps the most in time. A cue that overlaps nothing, or only barely, is reported as unmatched instead of being forced into a wrong pair. The cue count difference between the two files stops mattering, because the pairing follows the clock, not the numbering.

When the two files are out of sync

Files made from different releases of the same video often carry a constant shift: every cue in one file is, say, 1.5 seconds later than the same cue in the other file. That is the easy case. Shift the second file by a fixed number of seconds, negative if it runs early and positive if it runs late, and the overlap matching lines up again. Find the shift by comparing one clear cue near the start, such as the first line of dialogue, in both files.

A gradual drift is different and harder. If the gap between the two files grows over the video, because one file was timed against a slightly faster or slower cut, no single offset fixes the whole file. A constant shift will align the start and misalign the end, or the other way round. In that case, re-time one file against the video, or split the merge into sections with a different offset per section, rather than accepting a merge that slowly falls out of sync.

What to do with unmatched cues

After a merge, always read the unmatched-cue report instead of ignoring it. Unmatched cues have three usual causes. First, different segmentation: one file split a sentence that the other kept whole, so the extra piece has no partner. Second, a genuinely missing line: one translator skipped a sentence the other kept. Third, a timing error in one file: a cue timed far from its true position overlaps nothing.

Do not silently drop unmatched cues, and do not force them into the nearest pair. Keep them on their own timings in the merged file, or fix the timing or segmentation in the source file and merge again. A dropped line is a sentence the viewer never sees, which is worse than an extra cue.

SRT or two-style ASS: which output to pick

The merged SRT is the safe default. It stores both lines in each cue as plain text, and every player reads it. Its only limit is styling: SRT cannot make one language look different from the other, so both lines appear in the same font, size, and color.

The two-style ASS output solves that. It keeps the same cues and timings, but assigns the two languages different styles, so a player that supports ASS can show one language larger, smaller, or in a different color than the other. Use ASS when your player supports it and you want the languages visually distinct. Use SRT when you need the widest compatibility, for example when uploading to a platform that only accepts SRT.

How to merge English and Chinese subtitles

  1. Choose both subtitle files, and make sure both are readable UTF-8 first, fixing the encoding of either file if its Chinese text looks garbled.
  2. Compare one clear cue near the start in both files, and set an offset for the second file if it runs consistently early or late.
  3. Merge by overlapping time, then read the unmatched-cue report and keep unmatched cues on their own timings instead of dropping them.
  4. Download the merged SRT for widest compatibility, or the two-style ASS file when you want the two languages styled differently.

Common questions

Does merging translate subtitles? No. Merging only combines two subtitle files you already have. It does not translate anything, so you need a finished English file and a finished Chinese file before you start.

What if the two files drift apart gradually instead of by a fixed amount? A constant offset cannot fix gradual drift. Re-time one file against the video, or split the merge into sections with a different offset per section, rather than accepting a merge that slowly falls out of sync.

Related tools

Bilingual Subtitle Merger · Subtitle Encoding Fixer · CJK Subtitle Checker