Process6 min read
Arabic and English apps: what bilingual (RTL) support involves
By Sannan MalikPublished
Short answerA bilingual Arabic and English app needs more than translated text. The layout has to mirror for right-to-left reading, fonts must render Arabic well, numbers and dates must follow each locale, both store listings need their own text and screenshots, any content you edit needs an Arabic and an English version, and every screen must be tested in both directions. Scope all of it before design starts.
Why Arabic changes the scope
Adding a language like French mostly means swapping words. Adding Arabic changes the direction of the whole interface. Menus, back buttons, progress bars, lists and text alignment all move to the other side, and some things deliberately do not. If the app is designed in English first and Arabic is added later, every screen gets touched twice.
That is why I ask at the start whether Arabic is in version one. If it is, the design, the code and the content model are built for two directions from day one, which costs far less than retrofitting it.
Layout mirroring: what flips and what stays
Flutter supports this well. By default a Flutter app only includes US English, so the app adds the flutter_localizations package and lists Arabic and English as supported locales. The localization delegates then set the default text direction, and the Directionality widget passes it down to every screen. Layouts written with direction-aware values, such as EdgeInsetsDirectional with start and end instead of left and right, mirror without separate Arabic screens.
Android's own guidance follows the same idea: declare RTL support and use start and end rather than left and right. Apple's Human Interface Guidelines are useful for the judgement calls, because not everything should flip.
| Element | In Arabic (RTL) | Source of the rule |
|---|---|---|
| Back button and navigation order | Flips, back points right | Apple HIG, right to left |
| Progress bars and sliders | Flip, progress runs right to left | Apple HIG, right to left |
| Icons showing text or reading direction | Flip | Apple HIG, right to left |
| Photos, illustrations, logos | Do not flip | Apple HIG, right to left |
| Icons of real objects, such as a clock | Generally do not flip | Apple HIG, right to left |
| Digits inside one number, such as a phone number | Never reversed | Apple HIG, right to left |
| Padding, margins, alignment | Follow the text direction when written as start and end | Flutter Directionality, Android RTL guide |
Fonts, numerals and dates
Pick a font family that has proper Arabic glyphs, and check it in both weights you use. Apple notes that Arabic can look small next to Latin text and suggests increasing the RTL font size by about 2 points when the two sit together. I check headings, buttons and form labels in Arabic before signing off a design, because Arabic words are often a different length from the English.
Numbers need a decision. Apple points out that Arabic text might use either Western or Eastern Arabic numerals, and the choice varies by country and region. Most apps can rely on the system's number formatting. In Flutter, the localization tools use the intl package's NumberFormat and DateFormat to format numbers and dates for the active locale. One technical trap: Android warns that formatting numbers in some Arabic locales produces non-ASCII digits, which break things like database queries, so values sent to a server should be formatted in a fixed locale and only displayed in the user's.
Mixed text is the other trap. An English address or product name inside an Arabic sentence can render in the wrong order unless the app marks its direction. Android's BidiFormatter exists for exactly this, and the same care applies in Flutter.
Arabic listings on the App Store and Google Play
Both stores let you publish an Arabic listing alongside English. In App Store Connect, Arabic is one of the supported localizations; you add it as a language and enter a localized description, keywords, app name and privacy policy URL. Screenshots default to the primary language unless you upload Arabic ones. In Google Play Console, you add translations under Manage translations for the title, short description and full description, and you can add localized screenshots and graphics.
Play Console offers free machine translation into Arabic, and Google states plainly that these translations are not reviewed by humans. For a business listing in the UAE, I recommend having a fluent speaker write or review the Arabic text and taking screenshots of the app running in Arabic.
Managing content in two languages
Interface text (buttons, labels, error messages) lives in translation files that ship with the app. In Flutter these are ARB files, one per language, with each message under a key. That part is straightforward once every string goes through the file instead of being typed into the code.
Content you change after launch is different: menus, services, offers, notifications, help articles. If you edit it from an admin dashboard, each item needs an Arabic and an English field, and someone has to decide what happens when only one is filled in. Push notifications and emails need both versions too.
- Will users switch language inside the app, or follow the phone's language? Android 13 and later also lets users set a language per app.
- Who writes and reviews the Arabic copy, and by when?
- Which content is edited after launch, and does the admin show both language fields?
- Which notifications, emails and receipts go out, and in which language?
- Which screens hold mixed Arabic and English text, such as names and addresses?
- Who tests the Arabic build, ideally a native reader?
Testing in both directions
Every screen gets checked twice: once in English and once in Arabic on a real device. Android has a developer option called Force RTL layout direction that shows an English build mirrored, which catches layout bugs before translations arrive. After that, a native reader should go through the real Arabic build, because only a person who reads Arabic will notice text that is cut off, misaligned or worded badly. I include both languages in the device testing and in the store screenshots.
Which package fits a bilingual app
All my packages are built in Flutter, which handles Arabic and English from one codebase. Launch ($999, up to 10 screens) suits a bilingual app whose text is fixed in the translation files. Growth ($1,699, up to 25 screens) adds a Node.js backend, a PostgreSQL database and admin tools, which is where two-language content fields belong. Scale ($2,500, up to 50 screens) adds a full admin dashboard, integrations and push notifications. I write the language requirements into the scope before work starts, including who supplies the Arabic copy, so nothing about the second language is left to assumption.
Questions
- Does Flutter support Arabic and right-to-left layouts?
- Yes. With the flutter_localizations package and Arabic listed as a supported locale, Flutter sets the text direction for the app, and layouts written with start and end values mirror automatically.
- Can I use Google Play's machine translation for my Arabic listing?
- Play Console offers it for Arabic, but Google notes the translations are not reviewed by humans. For a customer-facing listing, have a fluent speaker write or review the text.
- Should Arabic be in the first version or added later?
- If your customers expect Arabic, include it from the start. Designing for both directions at once is much cheaper than reworking every screen later.
Sources
Platform rules and fees in this article were checked against these official pages on 7 November 2026. They change, so confirm before you rely on them.
- Flutter API: Directionality class
- Android Developers: Support different languages and cultures
- Apple Human Interface Guidelines: Right to left
- App Store Connect Help: Localize app information
- App Store Connect Help: App Store localizations
- Flutter docs: Internationalizing Flutter apps
- Play Console Help: Translate and localize your app
Sannan Malik is a software architect and product builder with 8+ years in software, CEO of Alpha Notic FZC and a Certified Scrum Product Owner. He builds mobile apps and business software for companies in the UAE, UK and US.