Fighting Game · Guides & deep dives

V2 Localization and Voice-Over Pipeline

All customer-facing strings are externalized under

5sections8 minread

On this page

Last verified: 2026-05-17.

This report covers V2_TODOS section 54 and is validated by V2/ue/Tools/check-v2-localization-voice-over.py, the contract at V2/ue/Content/Localization/V2/LocalizationVoiceOverPipeline_V2_Contract.json, and V2.UI.Module automation.

The phase-72 string ID authority lives in V2/docs/localization/string-id-system.md and is validated by V2/ue/Tools/check-v2-string-id-system.py.

String extraction for game data and code is implemented by V2/ue/Tools/extract-v2-localization-strings.py and validated by V2/ue/Tools/check-v2-string-extraction-tool.py.

The canonical translation handoff format is documented in V2/docs/localization/translation-file-format.md and validated by V2/ue/Tools/check-v2-translation-file-format.py.

Translation management platform push/pull integration is documented in V2/docs/localization/translation-management-platform.md and validated by V2/ue/Tools/check-v2-translation-management-platform.py.

Translation memory reuse and fuzzy matching are documented in V2/docs/localization/translation-memory-integration.md and validated by V2/ue/Tools/check-v2-translation-memory-integration.py.

Plural forms for English, Russian, and Arabic are documented in V2/docs/localization/plural-forms.md and validated by V2/ue/Tools/check-v2-plural-forms.py.

Gendered text selection for player character and NPC contexts is documented in V2/docs/localization/gendered-text.md and validated by V2/ue/Tools/check-v2-gendered-text.py.

Dynamic text insertion for named variables and count-driven term grammar is documented in V2/docs/localization/dynamic-text-insertion.md and validated by V2/ue/Tools/check-v2-dynamic-text.py.

Translator context screenshot capture and TMS upload payloads are documented in V2/docs/localization/context-screenshots.md and validated by V2/ue/Tools/check-v2-context-screenshots.py.

String length validation for UI space budgets and per-language character limits is documented in V2/docs/localization/string-length-validation.md and validated by V2/ue/Tools/check-v2-string-length-validation.py.

Translation QA automation for untranslated strings, temporary build text, encoding errors, and broken variables is documented in V2/docs/localization/translation-qa-automation.md and validated by V2/ue/Tools/check-v2-translation-qa-automation.py.

Continuous localization CI for on-commit extraction, TMS sync, validation, and localized asset builds is documented in V2/docs/localization/continuous-localization-ci.md and validated by V2/ue/Tools/check-v2-continuous-localization-ci.py.

Pseudo-localization mode for en-XA expansion, accents, bracket wrapping, and overflow detection is documented in V2/docs/localization/pseudo-localization.md and validated by V2/ue/Tools/check-v2-pseudo-localization.py.

Locale fallback chain behavior for missing translation resolution is documented in V2/docs/localization/locale-fallback-chain.md and validated by V2/ue/Tools/check-v2-locale-fallback-chain.py.

Localization status dashboard reporting for per-language completion, strings needing review, and recently changed source strings is documented in V2/docs/localization/localization-status-dashboard.md and validated by V2/ue/Tools/check-v2-localization-status-dashboard.py.

CJK font coverage validation for characters used in translated text is documented in V2/docs/localization/cjk-font-coverage.md and validated by V2/ue/Tools/check-v2-cjk-font-coverage.py.

CJK text layout support for Chinese, Japanese, and Korean line breaking rules is documented in V2/docs/localization/cjk-text-layout.md and validated by V2/ue/Tools/check-v2-cjk-text-layout.py.

CJK text density adaptation for wider CJK characters, UI element sizing, and text areas is documented in V2/docs/localization/cjk-text-density.md and validated by V2/ue/Tools/check-v2-cjk-text-density.py.

RTL text rendering for Arabic and Hebrew glyph shaping, mirrored punctuation, and mixed LTR/RTL content is documented in V2/docs/localization/rtl-text-rendering.md and validated by V2/ue/Tools/check-v2-rtl-text-rendering.py.

RTL UI mirroring for HUD elements, menus, navigation, and focus order is documented in V2/docs/localization/rtl-ui-mirroring.md and validated by V2/ue/Tools/check-v2-rtl-ui-mirroring.py.

Voice-over asset management for per-locale VO directory structure, naming conventions, file format requirements, metadata sidecars, and rights tracking is documented in V2/docs/localization/voice-over-asset-management.md and validated by V2/ue/Tools/check-v2-voice-over-asset-management.py.

Voice-over recording script export for actor-facing context, direction, slate IDs, localized recording text, and deterministic target VO asset names is documented in V2/docs/localization/voice-over-recording-script-export.md and validated by V2/ue/Tools/check-v2-voice-over-recording-script-export.py.

Voice-over integration pipeline coverage for matching VO audio files to dialogue IDs, validating recording coverage, and detecting missing recordings is documented in V2/docs/localization/voice-over-integration-pipeline.md and validated by V2/ue/Tools/check-v2-voice-over-integration-pipeline.py.

Voice-over lip-sync per locale for generating phoneme data from each language's VO and aligning cues to localized recording duration is documented in V2/docs/localization/voice-over-lip-sync-per-locale.md and validated by V2/ue/Tools/check-v2-voice-over-lip-sync-per-locale.py.

Subtitle timing from voice-over for auto-generating subtitle display duration from VO clip length, reading floor, and post-voice hold rules is documented in V2/docs/localization/subtitle-timing-from-voice-over.md and validated by V2/ue/Tools/check-v2-subtitle-timing-from-voice-over.py.

Locale-specific number/date/currency formatting for launch locales, CLDR sample generation, ICU runtime API requirements, and platform-store currency mapping is documented in V2/docs/localization/locale-specific-formatting.md and validated by V2/ue/Tools/check-v2-locale-specific-formatting.py.

Locale selection UI for operating system locale auto-detect, text language, and voice-over language overrides in Options is documented in V2/docs/localization/locale-selection-ui.md and validated by V2/ue/Tools/check-v2-locale-selection-ui.py.

Text-to-speech fallback for missing voice-over recordings and incomplete localizations is documented in V2/docs/localization/tts-fallback-for-missing-vo.md and validated by V2/ue/Tools/check-v2-tts-fallback-for-missing-vo.py.

Localization testing mode for rapidly cycling launch locales and screenshotting each localized screen is documented in V2/docs/localization/localization-testing-mode.md and validated by V2/ue/Tools/check-v2-localization-testing-mode.py.

The localization workflow, vendor integration, and QA process handbook is documented in V2/docs/localization/localization-documentation.md and validated by V2/ue/Tools/check-v2-localization-documentation.py against V2/ue/Content/Localization/V2/LocalizationDocumentation_V2_Contract.json.

Launch Coverage#

All customer-facing strings are externalized under V2/ue/Content/Localization/V2/. The launch inventory covers en-US, en-GB, fr-FR, fr-CA, es-ES, es-419, pt-BR, pt-PT, de-DE, it-IT, pl-PL, ru-RU, tr-TR, ar, he, ja-JP, ko-KR, zh-Hans, zh-Hant, th-TH, vi-VN, and id-ID.

Launch VO ships for en-US, fr-FR, es-ES, pt-BR, de-DE, it-IT, ja-JP, ko-KR, and zh-Hans. The remaining launch locales are subtitle-only at launch with a tracked VO patch plan, pickup-session diffs, actor casting sheets, per-fighter VO banks, and per-locale lip-sync retiming.

Text, Fonts, and Formatting#

The validated feature set enables RTL layout for Arabic and Hebrew, script-aware font fallback, Latin-only dyslexia font policy, ICU CJK linebreaking, CJK full-width and half-width glyph handling, Arabic kashida justification, bidirectional mixed-text handling, and Thai/Khmer/Lao segmentation rules.

Formatting gates include POSIX timezone and DST handling, Gregorian default, Japanese era, Korean Dangi, Buddhist, Hebrew, and Hijri calendars, locale decimal and thousands separators, platform-store-aligned currency, and metric/imperial fighter stat display.

Workflow#

The vendor workflow is mirrored across Crowdin, Smartling, Lokalise, and Wordbee. Each locale has a glossary, string-length-cap validation, text-expansion QA, linguistic review, cultural review, brand review, and a VO casting reference sheet. Live-ops content uses the same review chain for Battle Pass, daily challenges, news feed, and cosmetic shop content.

Emergency hotfix and moderation announcements have a 24-hour localization SLA. Each launch locale has a native-speaker beta cohort of 100 to 500 testers and a dedicated QA lead for subtitle timing, VO lip-sync, RTL layout, CJK linebreaking, and active region variant checks.

Region Variants#

Regional content policy is stored in FV2LocalizationVoiceOverFeatureSet and URV2_RegionVariant so each SKU is tagged with the active RegionVariant macro and runtime boot can assert that the installed region matches the expected variant.

Region checklists:

  • RegionVariant.DE.USK18: V2/docs/regions/de-usk18-checklist.md
  • RegionVariant.JP.CEROZ: V2/docs/regions/jp-ceroz-checklist.md
  • RegionVariant.RU-CIS.CurrentLegal: V2/docs/regions/ru-cis-checklist.md
  • RegionVariant.CN.NPPA: V2/docs/regions/cn-nppa-checklist.md
  • RegionVariant.SA-GCC.Gmedia: V2/docs/regions/sa-gcc-checklist.md
  • RegionVariant.KR.GRAC19: V2/docs/regions/kr-grac19-checklist.md
  • RegionVariant.AU.ACBR18: V2/docs/regions/au-acbr18-checklist.md
  • RegionVariant.NZ.OFLCR18: V2/docs/regions/nz-oflcr18-checklist.md
  • RegionVariant.BR.DJCTQ18: V2/docs/regions/br-djctq18-checklist.md
  • RegionVariant.CA-QC.Bill96: V2/docs/regions/ca-qc-bill96-checklist.md

Source Trail#

Primary public sources used for the regional gates: