This document defines RTL text rendering integration for
TODOS.phase-72.72.11.2.4. The validation covers Arabic and Hebrew rendering
requirements that are distinct from full UI mirroring.
The tracked contract is
V2/ue/Content/Localization/V2/RTLTextRenderingIntegration_V2_Contract.json.
Rendering rules live in
V2/ue/Content/Localization/V2/RTL/RTLTextRenderingRules_V2.json, and the
deterministic generated report lives in
V2/ue/Content/Localization/V2/RTL/RTLTextRenderingReport_V2.json.
Rendering Scope#
RTL text rendering requires the localized text stack to:
- Resolve Arabic and Hebrew runs with ICU bidirectional processing before visual composition.
- Shape Arabic joining forms and Hebrew combining marks through the complex text shaper before glyph placement.
- Mirror paired punctuation such as parentheses, brackets, braces, and angle brackets in RTL-resolved runs.
- Preserve embedded Latin product names, platform tags, build labels, and numbers as isolated mixed LTR/RTL runs.
- Keep text rendering validation separate from full UI layout mirroring, which is tracked by the next phase-72 item.
Validation#
V2/ue/Tools/generate-v2-rtl-text-rendering.py reads the launch string table
and the explicit RTL rendering samples, then emits a report with per-locale
coverage for glyph shaping, mirrored punctuation, and mixed LTR/RTL content.
V2/ue/Tools/check-v2-rtl-text-rendering.py validates the contract, rules,
generated report, Unreal UI typography hooks, docs, GitHub workflow wiring, and
Horde required gates. The checker also runs a negative case that disables
mirrored punctuation coverage and verifies that the generator fails the broken
configuration.