Localization & accessibility integration
These two integration concerns share one rule: they are build-time requirements, not post-release tasks. The detailed workflows live in the Localization & Accessibility section; this page is the HIG contract.
Localization contract
- All user-visible strings go through gettext (or the toolkit equivalent) from the first commit, no string concatenation that breaks word order.
- Persian (
fa) translations ship for first-party apps at release time; English is the source, Persian is not an afterthought. - RTL layout follows the locale automatically (see RTL & Persian).
- Translations are tested in the app, not in translation tools alone , reflow, truncation, and mixed-direction rendering only show at runtime.
Accessibility contract
- Accessibility tree (ATK/AT-SPI or QAccessible) exposes every control's name, role, and value from day one, it cannot be bolted on.
- Full keyboard operation is a release blocker (see Accessibility).
- Both themes pass contrast checks on real content.
- The app respects system font scaling and reduced motion.
CI hook
The portal's own checks treat these as build gates (see Testing & QA): a translation-coverage check for required languages, and an accessibility smoke test over primary flows.