Home: Mohammad Abu-aishehOpen to work Open to work العربية

Arabic & RTL // Guide

Western or Eastern Arabic digits?

Arabic interfaces can show 0-9 or the Eastern Arabic-Indic digits. The right choice depends on audience, so stay consistent and let research decide.

Western or Eastern Arabic digits?

Two sets of digits

Arabic text can use Western digits (0 1 2 3 4 5 6 7 8 9), often called Latin digits, or Eastern Arabic-Indic digits (٠ ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩). Both are valid. Preference varies by country, by age and by context, so there is no single correct answer for every Arabic audience.

The two sets are separate numbering systems with different glyphs, not different languages. A product can show Arabic text with Western digits, or Eastern digits next to Latin text. Treat the digit choice as its own design decision.

Practical rules

  • Be consistent on a screen. Mixing both digit sets in one view looks like an error.
  • Phone numbers, prices and IDs need extra care. People copy them, compare them and type them into other systems, so choose the set the audience expects there.
  • Check charts and tables. Axis labels, legends and column totals must use the same digits as the surrounding text, or the data looks as if it came from two sources.
  • Decide once, in the design system. Write the choice down with examples for prices, dates, times and quantities, so every screen follows it.
  • Keep digits readable in the chosen font. Check that both sets exist in the typeface and look balanced next to the Arabic letters.

Choosing the set in code

The <code>Intl.NumberFormat</code> API picks digits from the locale tag. Which digits a locale such as <code>ar-EG</code> produces depends on the browser and its data, so do not assume. To force Latin digits, add the numbering-system extension to the tag.

For example, <code>new Intl.NumberFormat('ar-u-nu-latn').format(1234)</code> asks for Latin digits in Arabic, while <code>nu-arab</code> asks for Eastern Arabic-Indic digits.

The same idea applies to dates, times and percentages. Pass the locale and the numbering system explicitly in one shared helper, so every screen formats values in the same way and a later change touches one place only.

Format numbers with the Intl API instead of building strings by hand.

Let the audience decide

Do not rely on assumptions about a country or an age group. Ask target users which digits they expect, observe how they write numbers in forms, and look at the digits used by well-known local products in the same category.

Search and input also deserve a plan. Users may type digits from either set, so decide whether the product accepts both and converts them before validation, instead of rejecting one of them with an error.

If the audience is mixed, let users choose in settings, and apply the choice everywhere.

Sources

  • MDN Web Docs. Intl.NumberFormat. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat

This guide was drafted with AI assistance from public standards and references. For the exact wording of a standard, use the sources listed above.

More on this topic

  • Arabic & RTL2 min read

    Choosing Arabic fonts for interfaces

    Pick Arabic UI fonts by legibility, weight range, pairing with Latin, diacritics support and file size, not by looks alone.

  • Arabic & RTL2 min read

    Handling mixed-direction text

    Arabic sentences often contain Latin names, numbers and URLs. Learn how the bidi algorithm orders them and how to isolate text with HTML and CSS.

  • Arabic & RTL2 min read

    Designing forms and inputs for RTL

    Not every field should flip. Learn which inputs stay left to right on an RTL page, which use auto direction, and how to align labels and messages.

Keyboard shortcuts
Single-key shortcuts

Turn off if you use speech input or find them getting in the way.