Install
openclaw skills install wjs-translating-subtitlesUse when the user has an SRT (or transcript text) in one language and wants it translated to another, with punctuation-bounded re-segmentation so cues end at real sentence breaks. Simplified Chinese (zh-CN) and English (en) are first-class targets; other targets follow the same rules. Outputs a target-language SRT or bilingual SRT — no audio, no burn-in. Triggers — "翻译字幕", "翻成中文", "translate this SRT", "中英双语字幕", "把这个 SRT 翻译成 X", "bilingual subtitles".
openclaw skills install wjs-translating-subtitlesSource-language SRT in → target-language (or bilingual) SRT out. This skill is text-only. Burn-in lives in /wjs-burning-subtitles; voice dub in /wjs-dubbing-video.
/wjs-transcribing-audio first./wjs-burning-subtitles./wjs-dubbing-video.Resolve target from the user's phrasing once, don't re-ask:
zh-CN.en..<source>.srt and .<target>.srt (and optionally a combined .<source>-<target>.srt).Simplified Chinese and English are fully validated. Other targets (Japanese, Korean, French, etc.) work via the same rules; the bottleneck is TTS-voice availability if dubbing follows — see /wjs-dubbing-video before promising.
Examples (Spanish → Chinese):
Spanish: No pasa nada. → Chinese: 没关系。
Spanish: Vamos a ver qué pasa. → Chinese: 我们看看会发生什么。
Spanish: Me parece una locura. → Chinese: 我觉得这太疯狂了。
Spanish: ¿Qué quieres decir? → Chinese: 你是什么意思?
Spanish: La verdad es que no lo esperaba.
→ Chinese: 说实话,我没想到会这样。
, . ; : — (em-dash). Avoid Unicode curly quotes — keeps .srt portable.Examples (Spanish → English):
Spanish: No pasa nada. → English: It's nothing.
Spanish: Vamos a ver qué pasa. → English: Let's see what happens.
Spanish: Me parece una locura. → English: This feels crazy to me.
Spanish: ¿Qué quieres decir? → English: What do you mean?
Spanish: La verdad es que no lo esperaba.
→ English: Honestly, I wasn't expecting this.
Whisper segments by silence/breath, not grammar. The result almost always has cues that end mid-sentence (e.g., "...es una forma de aterrizar," next cue starts "el espíritu en el cuerpo..."). Any TTS that processes one cue at a time will then insert an unnatural pause exactly where the original speaker did not. The fix is mandatory before dubbing — and improves on-screen reading too.
Punctuation set differs:
, 。 ; : —— or 、., . ; : — (em-dash) or, in practice for subtitles, occasionally a single dash. Never end an English cue on a comma-less clause break, and never split inside a phrase like "kind of" or "in order to".Rules:
A typical 2–3 minute talk yields roughly 25–40 punct-bounded cues from 12–18 raw source cues. Don't try to keep the original cue count.
When TTS dubbing follows: the punctuation-bounded structure means each TTS clip is a complete utterance with proper end-intonation, and concatenating clips sounds natural because every join is at a real pause point.
1
00:00:01,200 --> 00:00:04,800
中文字幕内容
2
00:00:04,800 --> 00:00:08,500
中文字幕内容
1.HH:MM:SS,mmm. Comma milliseconds, never period milliseconds.When the user asks for bilingual: source on first line, target on second:
1
00:00:01,200 --> 00:00:04,800
No pasa nada.
没关系。
Rules:
Depending on the user request, provide one or more:
.srt.srt (source line + target line)Default output for "translate this SRT" with no other modifiers: target-only .srt + a short uncertainty note if needed.
input.srt # source (e.g., from /wjs-transcribing-audio)
translated outputs:
input.zh-CN.srt # Simplified Chinese only
input.en.srt # English only
input.es-zh.srt # Spanish + Chinese bilingual
input.es-en.srt # Spanish + English bilingual
input.es-zh-en.srt # three-language
BCP-47-style suffixes make the target language obvious at a glance and keep multiple target-language outputs side-by-side.
If the source SRT contains [inaudible] or [unclear]:
[unclear] chunk makes a cue ungrammatical in the target language, leave it bracketed and add a note in the response (not in the SRT file).HH:MM:SS,mmm, no overlap)/wjs-burning-subtitles — burn this SRT onto the video, or soft-mux as a togglable track./wjs-dubbing-video — generate a TTS voice dub from this SRT, time-aligned to the original timing.*.source-target.srt directly via /wjs-burning-subtitles.eso/that. Delete them aggressively..mmm; SRT spec is ,mmm. Always normalize.