Fighting Game · Guides & deep dives

RTL Text Rendering Integration

RTL text rendering requires the localized text stack to:

2sections1 minread

On this page

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.