This document defines the locale selection UI for TODOS.phase-72.72.11.2.12.
The settings screen exposes a Language category in Options with controls for
operating system locale detection, text language, and voice-over language.
The tracked contract is
V2/ue/Content/Localization/V2/LocaleSelectionUI_V2_Contract.json. The
integrated settings surface is
V2/ue/Content/V2/UI/Settings/SettingsScreen_V2_Contract.json, built by
UV2UIConfigAsset::BuildDefaultSettingsScreenSpec and presented by
UV2SettingsScreen.
Options Surface#
The Language category contains three rows:
Settings.Localization.AutoDetectOSLocale: defaults on and lets the runtime auto-detect from the operating system locale.Settings.Localization.TextLanguage: a launch-locale picker whose default isLocale.AutoDetectOS.Settings.Localization.VoiceLanguage: a voice-over picker whose default isLocale.MatchText, with explicit launch VO locale overrides.
This keeps text and VO language independent without forcing subtitle-only
locales to pretend launch VO exists. The view model exposes
bLocalizationSettingsAvailable, and the widget exposes locale-selection helper
methods so Blueprint layouts can bind the section and screen-reader summaries
without duplicating row IDs.
V2/ue/Tools/check-v2-locale-selection-ui.py validates the contract, settings
screen integration, OS locale auto-detect row, text/VO override rows, automation
coverage, CI and Horde wiring, and the phase-72 checklist.