Language & RTL Rules
French support (planned)
French support (planned) — documentation pending.
Complete
French is accepted as a route parameter (`/fr/...`) and as an optional dictionary field. No French content is authored yet. The "Soon" badge in the language dropdown signals the planned state. Full French authoring is targeted for Phase 2.
Current state
- Route accepts `fr` — The `:lang` route parameter validates against `en | ar | fr`. A URL like `/fr/founders/ahmed-hassan` resolves and renders the page.
- Dictionary fallback to EN — Every `t()` call on a key without a `fr` field gracefully returns the EN value. Pages render in English wherever French is missing — no broken keys, no thrown errors.
- Dropdown shows the "Soon" badge — The language switcher lists Français but the menu item is disabled and carries the small orange "Soon" badge. Clicking does nothing.
- No FR active state — The header active-state regex signals only check for EN and AR. A user landing on `/fr/...` will see EN nav chrome.
What happens when FR ships
- Editorial team authors French translations for the 1,792 dictionary keys (currently 0).
- Per-module content files add `fr` keys to the inline-bilingual block primitives.
- The "Soon" badge drops from the language dropdown in the same release.
- hreflang gets a third entry: `<link rel="alternate" hreflang="fr" href="/fr/..."/>`.
- Active-state signals in the header are extended to handle `/fr/...` paths.
- Founder Files module ships first because its French audience is highest-priority (Morocco + Tunisia ecosystems).
