A crypto exchange in Arabic: right-to-left layouts, numbers and six languages
An Arabic crypto exchange runs its pages right to left, so the layout mirrors, while charts, order books, figures and addresses stay left to right. Digits, translation and six languages need rules.
A crypto exchange in Arabic is not an English exchange with its words translated. The page's base direction is set right to left, so the layout mirrors, and every line that mixes Arabic with figures, tickers or addresses becomes bidirectional text that the browser has to put in order. Some parts stay left to right on purpose, the digits need a decision, financial and legal text needs translators who know the field, and six languages have to keep up with every release.
Setting the direction
Arabic is written right to left. On the web, that starts with one attribute. The W3C's guidance is to add dir="rtl" to the html element when a page's overall direction is right to left, and never to set the base direction with CSS, because direction is part of the content's meaning and has to be there even when the stylesheet is not. lang="ar" names the language, not the direction.
That one attribute changes a lot. Blocks align to the right, table columns run from right to left, and text typed into a form field starts at the right. The layout follows only if the stylesheet was written for it: with logical properties such as margin-inline-start and text-align: end in place of left and right, one stylesheet lays out both directions.
What mirrors
On a right-to-left screen, the whole reading path starts at the right.
Navigation. The logo and the first menu item sit at the right, and tabs run leftwards.
Arrows that mean a direction. Back points right, forward points left, and the chevrons on list rows flip.
Buttons, drawers and steppers. The primary button moves to the right, a side drawer slides in from the other side, and a progress bar fills from right to left.
Tables. The first column is on the right.
What does not happen is a mirror image. Flipping the screen like a photograph would also reverse every letter and figure. The positions turn round, and the words stay readable.
You can see this in Marengo, our exchange. On its home screen in Arabic, the logo and menu, the balance card, the watchlist and the Buy to Withdraw buttons all swap sides, while the balance, the tickers and the line of the chart read as they do in English.

Icons need a decision one by one: an arrow for back or forward mirrors, while refresh or an external link usually stays as it is.
What stays left to right
A trading screen has parts that would become wrong if they mirrored. A sound Arabic design keeps them left to right on purpose.
Charts. Time keeps running left to right along the axis, as on every other price chart a trader reads.
The order book. Price, amount and total keep their column order, so a row reads as it does on any order book, while the headings are in Arabic. The guide to reading a crypto trading screen explains the book itself.
Figures. Prices, amounts and percentages are left-to-right runs inside right-to-left text. In every Arabic numeral system, numbers are written with the highest digits on the left.
Addresses and hashes. A wallet address is Latin letters and digits. It is shown left to right, in full, and set apart so nothing beside it moves. How the address itself is checked is in the guide to how a withdrawal reaches the right wallet.

Bidirectional text, and how a fee comes apart
Inside one line, Arabic letters run right to left while digits and Latin letters run left to right. The Unicode Bidirectional Algorithm (UAX #9) puts them in order. Text is stored in the order it is typed, which the standard calls logical order, and the algorithm works out the display order from each character's type.
Type | Examples | What it does |
|---|---|---|
Strong, right to left | Arabic letters | Sets the direction around it |
Strong, left to right | Latin letters, such as BTC | Sets the direction around it |
Weak | Digits | Holds together as a number, laid out left to right |
Neutral | Spaces, brackets, most punctuation | Takes the direction of the text around it |
Neutrals are where things go wrong. The W3C's article on inline markup and bidirectional text lists the cases: an opposite-direction phrase that begins or ends with neutral characters, begins with a number, or is followed by one. URLs, formatted numbers and addresses are among its examples.
Take a withdrawal fee in an Arabic sentence, with illustrative numbers: رسوم السحب 0.0002 BTC (≈ 12.85 EUR). Left alone in a right-to-left line, the browser places the bracketed euro amount between 0.0002 and BTC, so the amount and its unit end up on opposite sides of it. Nothing is wrong with the characters, only with their order on screen.
The fix is to isolate the left-to-right phrase. Unicode added isolate characters in version 6.3, and UAX #9 encourages them in new documents: U+2066 LEFT-TO-RIGHT ISOLATE opens one and U+2069 POP DIRECTIONAL ISOLATE closes it. Text inside an isolate cannot change the order of text outside it, or the reverse. In HTML, the same effect comes from a dir attribute on a tight wrapper, which browsers isolate, or from a bdi element. For text inserted at run time, such as a customer's name, dir="auto" lets the first strong character decide.

UAX #9 has one more rule worth knowing. In right-to-left text, characters such as brackets are drawn mirrored (rule L4), so an opening bracket still opens its phrase.
An exchange is full of such strings, so the safe pattern is to isolate every figure, ticker and address placed inside Arabic text, and to test Arabic pages with real mixed content.
Arabic-Indic and Western digits
Arabic script is used with three families of digits. The W3C's Arabic and Persian Layout Requirements set them out:
European digits (0 to 9), used in Western Arab regions such as Algeria and Morocco;
Arabic-Indic digits (٠ to ٩), used in Eastern Arab regions such as Egypt, Saudi Arabia and Iraq;
Eastern Arabic-Indic digits (۰ to ۹), used in Iran and Afghanistan.
In all three, numbers are written with the lowest digits on the right and the highest on the left. The families differ in more than shape, though. Arabic-Indic digits have the bidirectional type Arabic Number, while European and Eastern Arabic-Indic digits are European Number, so the same sentence can display differently depending on its digits. Arabic-Indic digits also have their own separators: ٬ (U+066C) groups thousands and ٫ (U+066B) marks the decimal, so 64,250.50 becomes ٦٤٬٢٥٠٫٥٠.

Defaults differ by region, too. In Chrome today, a number formatter for ar-AE writes 64,250.5, one for ar-SA writes ٦٤٬٢٥٠٫٥, and one for ar-MA writes 64.250,5. An exchange that leaves the choice to the locale's default can show different digits to customers in neighbouring countries.
Three rules keep this manageable:
Choose once per deployment. Pick the digits the operator's customers expect, set them explicitly, and use them everywhere: screens, emails, PDF statements and exports.
Store one exact number. Amounts are kept as exact decimals, never as formatted text, and formatted only where people read them.
Read what people type. If the interface shows Arabic-Indic digits, an amount field may receive them too, and it has to read both families into the same exact number.
Translating financial and legal text
An exchange's words are not everyday words. Order book, maker, limit order, slippage and withdrawal fee each need one agreed Arabic term, kept in a glossary every translator uses, so the same thing never has two names on two screens. Tickers, network names and product names usually stay in Latin script.
Legal and risk text is a separate job. Terms of service, risk statements and disclosures belong with translators who know financial law, reviewed by the operator's lawyers, and machine translation is a draft at best. Where two language versions of a document exist, the lawyers decide which one prevails, and which documents must be in Arabic is a question for the operator's regulator; the guide to UAE crypto licences covers who that is.
Grammar shapes the strings too. Unicode's CLDR gives English two plural forms for counting, one and other, and Arabic six: zero, one, two, few (3 to 10), many (11 to 99) and other. A message such as "3 orders filled" needs every Arabic form, and word order differs between languages, so strings are whole sentences with named placeholders, never fragments glued together in code.
Keeping six languages in step
Each release adds or edits strings. With six languages, the common failure is not a bad translation but a missing one: a button that shows a key name, or an English sentence in the middle of an Arabic page.
The pattern that holds up:
One source language and one key per string, with a note for translators on where it appears and what each placeholder holds.
Every new key goes to every language before release. A check in the build confirms that each key exists in all six, with the same placeholders and every plural form filled, and stops the build if one is missing.
Right-to-left review on real screens. Someone who reads Arabic checks each new screen in Arabic, with real amounts, tickers and addresses in it.
Everything the customer receives, not only the app: emails, push and in-app notifications, PDF statements and exports, in the customer's own language.

Marengo runs in six languages, English, German, Spanish, French, Romanian and Arabic, with Arabic laid out right to left, and its settings name each language in itself. For a buyer comparing platforms, the questions to ask are which languages ship today, whether Arabic is truly right to left or only translated, how figures and addresses are isolated, and how a new string reaches every language. The guide to choosing a white-label crypto exchange lists the other questions.
Frequently asked questions
Is right to left just a CSS change? No. The direction is set in the markup, with dir="rtl" on the page, and the stylesheet uses logical properties so the layout follows. Mixed text then needs isolates, and some parts, such as charts and the order book, stay left to right on purpose.
Should an Arabic exchange show Arabic-Indic or Western digits? Either works if it is used consistently, on screen, in statements and in emails. The amount underneath stays one exact number; only its display changes.
Why do numbers and addresses jump around in Arabic text? Because the neutral characters around them, such as spaces and brackets, take their direction from the surrounding Arabic. Wrapping each figure, ticker or address in a left-to-right isolate keeps it in one piece.
How many plural forms does Arabic have? Six in Unicode's CLDR: zero, one, two, few, many and other. Every message with a count needs all six.
See it working
Right to left is easiest to judge on a working exchange. Open Marengo at marengo.paynoramic.com, or read how our white-label crypto exchange is built and handed over to the licensed operator who runs it.



