RTL & Persian
Parch is a Persian-first distribution: fa_IR is the default locale target of its installer configurations, and RTL is a supported first-class layout, not a translation-time accident.
RTL layout rules
- Use logical properties in CSS (
margin-inline-start, notmargin-left); in GTK/Qt, use start/end geometry, never left/right. - Directional UI glyphs (back/forward, send, indent) mirror in RTL. Non-directional glyphs (settings, search, download) do not.
- Navigation order flips: sidebars move to the right side; carousel and wizard step order reverses.
- Numbers, versions, package names, and code remain LTR, isolated with Unicode bidi isolation so they don't scramble inside RTL sentences.
- Mixed-direction text is tested with realistic strings, e.g. «بستهی
plasma-desktopبهروزرسانی شد», not just pure Persian.
Persian specifics
- Font: Estedad ships with Parch; applications must not hardcode Vazir or Tahoma. Line-height runs ~1.05× taller than Latin at the same size.
- Numerals: Persian UI strings prefer Persian numerals (۱۲۳۴); versions and package names stay Latin. Locale-aware formatting handles this, don't hand-convert.
- Keyboards: Persian keyboard layouts are part of the default live environment; shortcut lists must not assume a Latin-only layout.
- Calendar and dates: the Gregorian calendar is default; where a Persian calendar option exists, it is a setting, not a surprise.
- Sizing: Persian labels can run 20–30% longer or shorter than English , design for reflow, not for fixed label widths.
Testing RTL
- Switch the app's locale to
fa_IRand relaunch. - Walk every screen: alignment, mirroring, truncation, icon direction.
- Inject mixed-direction content (package names, URLs, commands).
- Check dialogs, toasts, and popovers anchor to the correct edge.