bi-directional language support

A function that is necessary to support languages that are read and written from right to left. For example, Arabic, and Hebrew.