Fighting Game · Guides & deep dives

V2 Localization Workflow, Vendor Integration, And QA Process

The authoritative source locale is en-US.

8sections6 minread

On this page

This handbook defines the phase-72 localization operating process for TODOS.phase-72.72.11.2.15. It ties the individual localization feature docs into one release workflow that production, vendor management, localization QA, audio, UI, and release engineering can verify.

Source Of Truth#

The authoritative source locale is en-US. Launch locale coverage comes from V2/ue/Content/Localization/V2/LocalizationVoiceOverPipeline_V2_Contract.json and includes 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.

Source text, context, and release handoff are governed by these docs and artifacts:

  • V2/docs/localization/string-id-system.md
  • V2/docs/localization/translation-file-format.md
  • V2/docs/localization/context-screenshots.md
  • V2/docs/localization/translation-management-platform.md
  • V2/docs/localization/translation-memory-integration.md
  • V2/docs/localization/continuous-localization-ci.md
  • V2/ue/Content/Localization/V2/StringTables/StringIdRegistry_V2.json
  • V2/ue/Content/Localization/V2/Extracted/StringExtractionCatalog_V2.json
  • V2/ue/Content/Localization/V2/Schemas/V2TranslationFileFormat.schema.json
  • V2/ue/Content/Localization/V2/Translations/en-US.v2loc.json

End-To-End Workflow#

Every localized release follows this ordered workflow:

  1. Source-string authoring assigns stable string IDs, text roles, occurrence paths, named variables, and maxCharacterLength budgets.
  2. String-id review blocks duplicate IDs, unstable copy keys, missing context, and UI strings without a screenshot reference.
  3. String extraction refreshes V2/ue/Content/Localization/V2/Extracted/StringExtractionCatalog_V2.json.
  4. TMS source push sends provider payloads with tmsAlias, contextDescription, screenshotReference, textRole, variables, and deterministic content hashes.
  5. Translation-memory pretranslation applies exact and fuzzy memory matches before new vendor work starts.
  6. Vendor translation and review complete in the selected provider, with glossary, linguistic review, cultural review, and brand review required.
  7. Pull translations imports provider-approved strings into .v2loc.json files without replacing source metadata.
  8. Automated QA runs untranslated-string, temporary-build-text, encoding-error, broken-variable, string-length, pseudo-localization, CJK, RTL, and fallback checks.
  9. Localized asset build packages the approved translations and generated VO, subtitle, lip-sync, and TTS fallback assets.
  10. Locale screenshot pass runs localization testing mode across every launch locale and localized screen.
  11. Release signoff records the commit SHA, provider export ID, QA reports, screenshot bundle, unresolved waivers, and approvers.

Vendor Integration#

Phrase is the selected provider in V2/ue/Content/Localization/V2/TMS/TranslationManagementPlatform_V2.json. Crowdin and Lokalise endpoints are configured as provider adapters, while the broader workflow vendor roster tracked in the voice-over pipeline remains Crowdin, Smartling, Lokalise, and Wordbee for production scheduling.

Vendor handoff rules:

  • Credentials are referenced only by environment variable names such as V2_PHRASE_API_TOKEN, V2_CROWDIN_API_TOKEN, and V2_LOKALISE_API_TOKEN. Raw tokens must never be committed, logged, or copied into vendor payloads.
  • V2/ue/Content/Localization/V2/TMS/SourcePushPayload_V2.json is the source push artifact. It preserves id, tmsAlias, contextDescription, maxCharacterLength, screenshotReference, textRole, variables, and occurrencePaths.
  • V2/ue/Content/Localization/V2/Screenshots/ContextScreenshotUploadPayload_V2.json carries translator screenshots so vendors can see the UI state for each string.
  • V2/ue/Content/Localization/V2/TMS/PhrasePull_fr-FR_V2.json is the tracked provider pull fixture, and V2/ue/Content/Localization/V2/Translations/fr-FR.v2loc.json is the canonical pulled locale output.
  • VO vendor handoff uses V2/docs/localization/voice-over-recording-script-export.md, V2/docs/localization/voice-over-asset-management.md, and V2/ue/Content/Localization/V2/VoiceOver/RecordingScripts/VoiceOverRecordingScriptExport_V2.json.

QA Process#

Localization QA has three required layers.

Automated content QA runs V2/ue/Tools/check-v2-translation-qa-automation.py and blocks untranslated-string, temporary-build-text, encoding-error, and broken-variable issues from V2/ue/Content/Localization/V2/QA/TranslationQAConfig_V2.json.

Layout and runtime QA runs string-length validation, pseudo-localization, locale fallback, locale-specific formatting, RTL text rendering, RTL UI mirroring, CJK font coverage, CJK text layout, CJK text density, and locale selection UI checks. UI screenshots are produced by V2/docs/localization/localization-testing-mode.md and must cover every launch locale and every localized screen in V2/ue/Content/Localization/V2/Testing/LocalizationTestingModePlan_V2.json.

Audio and accessibility QA runs voice-over asset management, recording script export, VO integration, per-locale lip-sync, subtitle timing from VO, and text-to-speech fallback checks. Subtitle-only launch locales must keep the tracked VO patch plan visible in dashboard and release evidence.

QA source docs and artifacts:

  • V2/docs/localization/translation-qa-automation.md
  • V2/docs/localization/string-length-validation.md
  • V2/docs/localization/pseudo-localization.md
  • V2/docs/localization/localization-status-dashboard.md
  • V2/docs/localization/rtl-text-rendering.md
  • V2/docs/localization/rtl-ui-mirroring.md
  • V2/docs/localization/cjk-font-coverage.md
  • V2/docs/localization/cjk-text-layout.md
  • V2/docs/localization/cjk-text-density.md
  • V2/docs/localization/voice-over-integration-pipeline.md
  • V2/docs/localization/voice-over-lip-sync-per-locale.md
  • V2/docs/localization/subtitle-timing-from-voice-over.md
  • V2/docs/localization/tts-fallback-for-missing-vo.md
  • V2/ue/Content/Localization/V2/QA/TranslationQAReport_V2.json
  • V2/ue/Content/Localization/V2/Length/StringLengthValidationReport_V2.json

Manual QA requires native-speaker review for each launch locale, with dedicated passes for glossary adherence, tone, cultural sensitivity, UI truncation, RTL focus order, CJK line breaking, subtitle timing, VO sync, and region-variant copy. Waivers must name the string ID, locale, owner, risk, expiration, and release approver.

Live Ops And Hotfixes#

Battle Pass, daily challenges, news feed, cosmetic shop, moderation announcements, and emergency hotfix copy follow the same workflow as launch content. Emergency hotfix and moderation announcements have a 24-hour localization SLA, and any locale missing the SLA must ship with an explicit release waiver and fallback behavior.

Live-ops changes must rerun extraction, source push, translation pull, translation QA, string-length validation, status dashboard generation, and the targeted screenshot pass for changed screens. Player-facing copy cannot bypass vendor review unless the release manager records the incident ID and fallback locale.

Ownership And Signoff#

Production owns source schedule, string freeze, waiver approval, and provider export IDs. Localization engineering owns extraction, TMS sync, deterministic artifacts, CI wiring, and localized asset build. Localization QA owns automated QA results, native-speaker review, screenshots, and release evidence. Audio owns VO recording scripts, asset naming, lip-sync, subtitle timing, and TTS fallback coverage. Release engineering owns final gate status and archive retention.

Signoff requires a green localization dashboard, zero blocking QA violations, complete screenshot coverage, provider-approved translations, VO and subtitle coverage for the locale tier, and documented waivers for any nonblocking gaps.

Release Gates And Evidence#

Required evidence for each release candidate:

  • Git SHA and branch.
  • Provider project, locale export IDs, and timestamp.
  • Source push payload and pulled translation fixture.
  • Translation memory report and fuzzy-match review summary.
  • Translation QA report, string-length report, pseudo-localization report, CJK reports, RTL reports, and locale fallback matrix.
  • Localization status dashboard export.
  • Localization testing mode screenshot bundle.
  • VO asset coverage, recording script export report, lip-sync report, subtitle timing report, and TTS fallback report.
  • Native-speaker review notes, waiver register, and final approvers.

Required gates:

  • localization-documentation-contract
  • localization-documentation-workflow
  • localization-documentation-vendor-integration
  • localization-documentation-qa-process
  • localization-documentation-release-evidence
  • localization-documentation-ci-wired

Verification#

Run these checks after changing localization process docs, vendor config, QA policy, generated reports, CI wiring, or Horde gates:

bash
python3 V2/ue/Tools/check-v2-localization-documentation.py
python3 V2/ue/Tools/check-v2-translation-management-platform.py
python3 V2/ue/Tools/check-v2-translation-qa-automation.py
python3 V2/ue/Tools/check-v2-continuous-localization-ci.py
python3 V2/ue/Tools/check-v2-localization-testing-mode.py
python3 V2/ue/Tools/check-v2-localization-voice-over.py
python3 V2/ue/Tools/check-v2-ci-workflow.py
python3 V2/tools/validate-v2-docs.py