Mirroring is not localization. A flipped site works until you reach the first real case: a phone number, a date, an arrow pointing the wrong way, or an animation that begins from the side opposite to the reading direction.
What we build instead
- Logical CSS properties everywhere: start and end, never left and right.
- Arabic typefaces with their own metrics, not a Latin face with a forced Arabic fallback.
- Looser line height for Arabic, because the diacritic zone needs room.
- Numbers and dates formatted by locale rather than by assumption.
- Motion that originates at the reading edge, so it flips with the language automatically.
The extra cost of building a bidirectional system from the start is small. The cost of retrofitting one after launch is not, because the fix touches every component in the interface.