# Workflow: localize a video (re-voice and re-caption in another language) Read this when the user wants the same video in another language: Spanish narration for an English explainer, subtitles in three languages, a dubbed version of a talking-head clip ("make a Spanish version", "add Portuguese subtitles"). How much can change depends on what the video was made from: | Source | What you can deliver | |---|---| | a showtime project (HTML or canvas) with a voice script | a full version: translated on-screen text, a new voice, captions, re-timed scenes, re-rendered | | a finished file with narration you recorded or generated separately | a new voice track mixed over the picture, translated captions | | real footage of a person speaking | translated subtitles (always), or a voice-over dub over the ducked original (no lip sync, no voice cloning) | ## Essentials - Translate meaning, lines within about 10 % of the original; numbers, units, claims, product names, commands and code stay as they are; say the translation is machine-made by you and offer a review (§ Translation rules) - Every English brand name a non-English voice says needs a lexicon entry: check with `showtime voice ipa "" --lang es` before synthesizing (§ Translation rules) - `showtime voice script /project/narration..md -o /project/voice --voice ef_dora`, then `showtime retime /project --from-voice /project/voice/timeline.json` (§ Steps (showtime project)) - Allow 20-30 % longer on-screen text; fonts must cover the language's characters. A dub is a voice-over, not lip-synced, never a cloned voice: say so (§ Translation rules, § Steps (finished file or footage)) | Section | Lines | |---|---| | Inputs | 36-41 | | Defaults | 43-50 | | Translation rules | 52-62 | | Steps (showtime project) | 64-83 | | Steps (finished file or footage) | 85-98 | | Pitfalls | 100-106 | | Read next | 108-111 | ## Inputs - The source (project, file or footage) and its script or transcript. - The target language(s) and region (Spain or Latin American Spanish, Brazilian Portuguese). - Helpful: a glossary of terms that must stay in English (product names, commands), a brand kit with pronunciations. ## Defaults Translate meaning, not words, keeping line lengths within about 10 % of the original so timing survives; product names, commands and code stay as they are; Spanish voice `ef_dora` (female) or `em_alex` (male), other languages via `showtime voice list --lang ` (Supertonic covers 31 languages when installed); captions in the target language as a sidecar and, for social, burned in. State the region/variant and the pronunciation of names as assumptions; ask only when the request leaves the variant genuinely open (Brazilian vs European Portuguese for a named market, say). ## Translation rules - You translate; the user or a native speaker approves. Say that the translation is machine-made by you and offer a review round before the final render for anything published. - Keep numbers, units and claims identical to the source; never add or soften claims. - Every English brand name a non-English voice says needs a lexicon entry (`voice.md` "Pronunciation fixes"); otherwise it is read with the target language's rules. Check with `showtime voice ipa "" --lang es` before synthesizing. - On-screen text: allow for 20-30 % longer strings (Spanish, German, French); check for overflow. - Fonts must cover the language's characters (accents, ñ, ç). A missing glyph falls back to a system font, which `showtime check` flags; `showtime captions` reports characters its font lacks. Add subsets with `showtime assets font "" --subsets latin,latin-ext`. ## Steps (showtime project) 1. **Job.** `showtime job init - --goal "..."`; copy the project to `/project` so the original stays untouched. 2. **Translate** the voice script (`narration..md`, same line ids) and every on-screen string (HTML text, chart titles, `scenes.js` strings). List the glossary terms you kept in English. 3. **Voice.** `showtime voice script /project/narration..md -o /project/voice --voice ef_dora` (the line's own `lang` comes from the voice). Re-time the scenes from the new slots: a DOM project with `showtime retime /project --from-voice /project/voice/timeline.json` (scenes, voice tracks, music, effects and caption words move together; `render.md`); a canvas film whose cues read `VO` (`explainer.md` step 5) by running `showtime voice cues /project/voice/timeline.json -o /project/voice/cues.js` again (search the cue table for times typed as numbers and move them to `VO` first). Add `--fit ` to `voice script` when the translation must keep the original's length (run it with `--estimate` first and shorten the wording until it fits). 4. **Captions.** Point the caption layer at the new `voice/vo.words.json`, or make a sidecar with `showtime captions /project/voice/vo.words.json --style clean --size -o /caps.ass --srt /final.srt`. 5. **Check, first look, final, verify** as in the pipeline: `showtime render /project --job `, then `showtime qa ` (the latest final and the job's captions). Compare the contact sheet with the original's: same beats, no overflow, no missing glyphs. ## Steps (finished file or footage) 1. **Transcript.** `showtime transcribe