Game voice localization fails in the handoffs. A translated line can be grammatically correct and still miss the scene. A strong performance can ship under the wrong filename. A perfect export can be cut off by a subtitle timer or triggered by the wrong event.
A reliable workflow preserves identity and context from the writing table to the game build: stable line IDs, approved translations, locale-specific casting, pronunciation records, deterministic exports, and in-engine review.
Lock line identity before recording
Give every spoken unit a stable ID that does not depend on the English sentence. Dialogue changes. Translations have different lengths. Character names can be localized. The ID must survive those changes.
A simple structure might look like:
quest03_blacksmith_warning_0042
The exact pattern matters less than its stability and uniqueness. Keep the ID in the writing database, localization export, audio filename, subtitle record, implementation event, review note, and bug report.
Do not recycle an old ID for a line with new meaning. If the player-facing intent changes, create a new revision or line ID according to the project's content policy. Otherwise an old audio file can appear valid while carrying the wrong instruction.
Give translators scene context
A spreadsheet with an ID, speaker, and English text is not enough for performance dialogue. The localization record should explain what the line is doing.
Include:
| Field | Why it matters |
|---|---|
| Line ID | Connects every system and file |
| Speaker and addressee | Clarifies relationships and formality |
| Scene and trigger | Explains what just happened |
| Intent | States what the speaker wants |
| Emotional state | Guides intensity without prescribing imitation |
| Previous and next lines | Preserves conversational flow |
| Timing constraint | Identifies cinematics, barks, and UI limits |
| Pronunciation notes | Protects names, lore, and invented terms |
| On-screen relationship | Shows whether subtitles or UI text must match |
| Reuse status | Prevents a context-specific line from being played elsewhere |
Context can be short. "Whispered to the player after the guard leaves" is more useful than six broad adjectives. For branching dialogue, identify the choice or game state that produced the line.
Screenshots and video references help, but keep a text description too. Reviewers and production tools need context that remains searchable and accessible when a media link expires.
Approve localized dialogue before voice production
Translation, adaptation, and voice production should not happen as one opaque step. First approve the target-language dialogue for meaning, character, gameplay clarity, and cultural fit.
A native or fluent reviewer should check:
- the line's intent and consequence
- character register and relationships
- terminology consistency
- gender, number, honorifics, and formality
- UI and subtitle alignment
- rating, cultural, and legal concerns
- spoken naturalness
Machine translation can help create a draft or flag repeated terms, but it should not be the final authority for performance dialogue. A line that changes a quest objective, consent boundary, purchase decision, or safety instruction deserves explicit human review.
Freeze an approved script revision before recording. If the translation changes during review, update the production record and regenerate only from the new approved text.
Build a character bible for function, not imitation
A useful casting bible explains what remains true about the character in every locale:
- narrative role
- approximate life stage
- social position and relationships
- default energy and pace
- emotional range
- humor or seriousness
- clarity requirements during gameplay
- traits to avoid
- approved reference scenes
The target is equivalent character function, not a forced acoustic copy of the source performance. A vocal quality that signals warmth, authority, age, or comedy in one market may carry a different association in another.
Run a locale-specific audition with representative lines: a neutral exchange, high-pressure dialogue, a proper noun, a quiet line, and one gameplay-critical instruction. Ask native casting reviewers to score role fit, intelligibility, emotional credibility, and listening fatigue.
The Voice Design prompt guide provides a reusable brief and scorecard. The indie game voice acting guide covers broader casting and production choices.
Create a pronunciation authority
Names, invented languages, spells, places, and abbreviations often drift between sessions and performers. Build a pronunciation record before the main batch.
For each term, keep:
- written form
- target locale
- approved spoken form
- syllable or phonetic guidance
- an audio reference when useful
- source and approver
- revision date
- exceptions by character or region
A single global pronunciation may be wrong. An invented place name can legitimately change between languages, and a title may have a localized form. Scope every decision.
Use the pronunciation dictionary for approved production rules. Listen to difficult terms inside full lines because stress and surrounding sounds can reveal problems that an isolated word hides.
Generate in reviewable batches
Organize production around a frozen script revision and a clear batch boundary. Useful batches include one quest, cinematic, character chapter, or content milestone. Avoid a single export job that mixes unrelated revisions and locales.
Before generation, record:
- project and build target
- locale
- script revision
- voice reference revision
- pronunciation revision
- line IDs in the batch
- output format and sample rate
- mastering or loudness target
- producer and reviewer
Local generation in Vois keeps the working script and voice production on the desktop. That can reduce unnecessary uploads during production, but it does not remove the need to secure exported audio, reference files, source-control access, or review builds.
Listen to a small approval batch before rendering the full locale. Include the most demanding lines, not only easy greetings. Fix casting, pronunciation, and pacing at the beginning rather than after thousands of exports.
Use deterministic paths and a manifest
Do not name files with translated dialogue. Filenames break when text changes, operating systems handle characters differently, and similar lines become hard to distinguish.
Use a predictable structure such as:
Audio/Dialogue/{locale}/{character}/{line_id}.wav
The locale should follow the convention used by the game and storefront. BCP 47 language tags can distinguish language, region, and script where the pipeline needs that precision. Unity and Unreal have their own localization structures, so map the production locale to the engine's supported culture or locale model explicitly.
Ship a manifest with each batch:
| Field | Example |
|---|---|
| line_id | quest03_blacksmith_warning_0042 |
| locale | fr-FR |
| speaker | blacksmith |
| script_revision | dialogue-2026-07-18.2 |
| voice_revision | blacksmith-fr-03 |
| duration_ms | 2840 |
| filename | Audio/Dialogue/fr-FR/blacksmith/quest03_blacksmith_warning_0042.wav |
| checksum | File integrity value |
| review_state | approved |
The manifest lets build tools detect missing, duplicate, stale, and unexpected files before a reviewer launches the game.
Integrate by ID, then test in the build
An audio library is not complete when the files sound good in a folder. Load the target locale in the game, trigger the real event, and verify the whole presentation.
Run three distinct passes:
Linguistic QA
A native reviewer checks meaning, pronunciation, register, grammar, naturalness, and character continuity while seeing the actual scene.
Implementation QA
The team checks that the correct line triggers, subtitles match, audio is not clipped, ducking works, spatial placement is credible, and fallbacks do not expose the wrong language.
Functional QA
Test locale switching, save migration, downloadable language packs, missing files, interrupted downloads, platform packaging, and memory or streaming behavior.
Log bugs with the line ID, locale, build, scene, timestamp, expected result, and evidence. "French line sounds wrong" is difficult to reproduce. "fr-FR, quest03_blacksmith_warning_0042, wrong stress on the city name in build 1.8.14" is actionable.
Include accessibility in the localization pass
Voice localization and subtitle localization are connected but not identical. Test subtitle timing against the target-language audio because sentence length and word order change. Check readable size, contrast, speaker identification, sound-effect captions, and controls for subtitle presentation.
The Game Accessibility Guidelines recommend clear subtitle presentation, speaker indication, and support for important speech information. Apply the guidance that fits the game's platforms and audience, then test with players who use those features.
Also review gameplay-critical voice lines when audio is disabled. A spoken objective, warning, or choice should have an accessible visual equivalent where the game's design requires it.
Declare storefront support accurately
Steam distinguishes interface, full audio, and subtitle support in its language presentation. Do not mark a language as full audio because a menu or opening cinematic is localized. Verify the shipped scope and keep the store listing aligned with the build.
Use the platform's current language options and requirements rather than assuming every locale label is accepted. The storefront claim is part of release QA.
Sources
- Unity Localization package documentation
- Unreal Engine Localization Overview
- Steamworks, Localizing Your Store Presence
- W3C, Choosing a Language Tag
- Game Accessibility Guidelines, Full List
A scalable localization workflow makes every line traceable from intent to build. Keep the IDs stable, the context visible, and the approval human. Explore multilingual voice production, then get started when your team is ready to produce reviewable localized dialogue on the desktop.
The Vois Team