Right to Left

When people choose a language for their device — or just your app — they expect the user interface to adapt in various ways. For example, your app needs to translate all text, and display date, time, currency, and temperature values in appropriate formats for the user’s language and region. When you support right-to-left languages like Arabic and Hebrew, you also need to reverse most of the UI so it matches the reading direction of the related scripts.

Screenshot of the Shortcuts app in English on iPhone. Ten shortcuts appear in rows of two shortcuts each, with only the top halves of the last two shortcuts visible at the bottom of the screen.
Screenshot of the Shortcuts app in Arabic on iPhone. Ten shortcuts appear in rows of two shortcuts each, with only the top halves of the last two shortcuts visible at the bottom of the screen. The overall order of shortcuts is reversed from the English version and the content of each shortcut tile is flipped.

Reversing the layout of the user interface to support right-to-left (or RTL) scripts is part of the localization process, during which you can provide language- and region-specific assets like images, audio, video, and translated text. For a high-level overview of the process, including various tips and resources, see Localization.

SwiftUI, AppKit, UIKit, WatchKit, TVUIKit, and TVMLKit support RTL by default, enabling system-provided UI elements to flip automatically in the RTL context. If you use system-provided elements and standard layouts, you might not need to make any changes to your app’s automatically reversed interface. On the other hand, you might want to fine-tune the layout of text, controls, and glyphs in some cases. In addition, you might want to enhance specific localizations to adapt to differences in areas like currency, number usage, and mathematical symbols that can occur in various locales in countries that use RTL languages.

The following guidelines can help you make granular adjustments to enhance RTL localizations. If you use custom controls and custom layouts, use these guidelines to help ensure your interface makes sense when its direction reverses.