Languages
Reversing the text is not right-to-left support
The layout has to mirror, not the sentences. A product where the words changed direction and the interface did not reads as obviously translated, which is exactly what localising it was supposed to prevent.
Move to the opposite side, including nested flyouts
Column order reverses; numeric columns keep their own direction
Arrows and progress indicators flip; logos and clocks do not
Labels, inputs and validation move together, not independently
Axis position and legend placement mirror; the time axis does not
Open from the opposite edge, matching platform convention
See it live
Mirroring checked element by element, not guessed
The console flags exactly which surfaces have mirrored correctly and which still need a native reader’s review before a right-to-left locale ships.

Three traps
Where implementations that look finished are not
Not everything should flip
A back arrow flips. A clock face does not. A chart with time on the horizontal axis keeps its direction because time still runs the way it runs. Blanket mirroring produces a different kind of wrong.
Mixed-direction strings
An account reference or a currency amount inside a right-to-left sentence stays left-to-right, and the boundary between them is where most implementations visibly break.
Numerals vary by market
Some right-to-left markets use Arabic-Indic digits and some use the Western ones, and the choice is a locale setting rather than something derivable from the language.
FAQ
Right-to-left: common questions
6 short answers to what teams ask before a demo.
Substantially more. The layout itself mirrors — navigation, tables, forms, drawers and chart furniture all move. Reversing text inside a left-to-right structure produces something that reads as visibly foreign, which is the outcome the exercise was meant to avoid.
No, and that is the part most implementations get wrong. Directional icons flip; clocks, logos and a time axis on a chart do not. Blanket mirroring is a different error rather than a safe default.
Numbers, account references and currency codes stay left-to-right within a right-to-left sentence. The boundary between the two directions is handled explicitly, because leaving it to the browser is where the visible breakage happens.
Whichever the locale specifies. Some right-to-left markets use Arabic-Indic digits and others use Western ones, and it cannot be inferred from the language alone — it is a setting.
No. Direction is a property of the locale applied at runtime, so the same application serves both. Maintaining a separate right-to-left build guarantees the two drift apart.
By having a native reader use it, not by looking at it. Someone unfamiliar with the script can confirm the layout mirrored and will miss every awkward line break and every wrongly placed numeral.
Still have a question?
A specialist will answer it directly, with your set-up in mind.
Ask a specialistHas a native reader used your interface?
Looking at it is not the same as reading it. Everything that is subtly wrong is invisible to someone who does not read the script.