Skip to main content

Language & RTL Rules

English as master content

English as master content — documentation pending.

Complete

English is the canonical source. Arabic mirrors EN editorially — same structure, same intent, written natively (not translated). French is accepted as a route parameter and gracefully falls back to EN.

Why English is the master

  • Tooling and developer workflow. TypeScript field names, schema.org types, route segments, and analytics events are all in English. Keeping EN as the authoring source avoids a translation layer in the codebase.
  • AEO and structured-data alignment. Answer engines and AI crawlers index EN content first. Emitting EN as the canonical inLanguage on JSON-LD anchors the entity graph.
  • AR is authored, not translated. Arabic content is authored by a native MENA editorial voice that adapts metaphors, examples, and tone to the regional reading culture — not literal translation.

Dictionary contract

Every i18n entry in `core/i18n/dictionary.ts` follows the shape `{ en: string; ar: string; fr?: string }`. The EN field is required; AR is required; FR is optional. When FR is missing, the lookup gracefully falls back to EN — never throws, never shows the key.