In bidirectional scripts, text is written from right to left while embedded numbers or segments of text in western scripts (such as English or French, Cyrillic-based, or Greek) are written from left to right. Bidirectional scripts are used in languages spoken by more than half a billion people in the Middle East, Central and South Asia and in Africa. Bidirectional languages include Arabic, Persian (Farsi), Azerbaijani, Urdu, Punjabi (in Pakistan), Pushto, Dari, Uigur, Hebrew, and Yiddish.
In addition to bidirectionality, languages that use the Arabic script have special ligature and shaping features which add a level of complexity to the display and printing of data. Support for bidirectional languages may seem daunting to developers who do not have a good understanding of these characteristics. In reality, supporting bidirectional languages is not very difficult. IBM, with the assistance of the Globalization Center of Competency – Complex Text Languages team, has been investing in providing support of these languages in its operating systems, middleware products, and development tools for a number of years.
The objective of this document is to provide an introduction to bidirectional languages as well as information on how developers can support them.