# V2 Localization and Voice-Over Pipeline

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:

- Germany USK: <https://usk.de/en/the-usk/faqs/age-categories/>
- Japan CERO rating system: <https://www.cero.gr.jp/en/publics/index/17/>
- Japan CERO code of ethics: <https://www.cero.biz/e/regulation.pdf>
- China State Council minor online gaming limits:
  <https://english.www.gov.cn/statecouncil/ministries/202108/31/content_WS612da2a2c6d0df57f98df6bd.html>
- Saudi Arabia Gmedia video game classification:
  <https://gmedia.gov.sa/en/services/age-rating-for-video-games>
- Saudi Arabia Gmedia age classification:
  <https://gmedia.gov.sa/en/age-classification>
- Korea MCST probability item disclosure guide:
  <https://mcst.go.kr/servlets/eduport/front/upload/UplDownloadFile?pFileName=%E2%98%85%EC%B5%9C%EC%A2%85_%28%EC%98%81%EB%AC%B8%29_240322_%ED%99%95%EB%A5%A0%ED%98%95_%EC%95%84%EC%9D%B4%ED%85%9C_%EC%A0%95%EB%B3%B4%EA%B3%B5%EA%B0%9C%EA%B4%80%EB%A0%A8_%ED%95%B4%EC%84%A4%EC%84%9C_%EC%B5%9C%EC%A2%85%EB%B3%B8%28%EB%88%84%EB%A6%AC%EC%A7%91%29.pdf&pPath=0301000000&pRealName=1711068183521.pdf>
- Australia Classification Board:
  <https://www.classification.gov.au/classification-ratings/what-are-ratings>
- New Zealand Classification Office:
  <https://www.classificationoffice.govt.nz/classification-info/classification-labels/>
- Brazil Ministry of Justice games and apps:
  <https://www.gov.br/mj/pt-br/assuntos/seus-direitos/classificacao-1/paginas-classificacao-indicativa/jogos-e-apps>
- Brazil ClassInd service:
  <https://www.gov.br/pt-br/servicos/obter-classificacao-indicativa>
- Quebec Charter of the French Language:
  <https://www.legisquebec.gouv.qc.ca/en/document/cs/C-11>
