# Locale Selection UI

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 is
  `Locale.AutoDetectOS`.
- `Settings.Localization.VoiceLanguage`: a voice-over picker whose default is
  `Locale.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.
