views:

373

answers:

2

I've been researching about adding Arabic localisation into our software. I understand that mirroring of some controls is essential, such as the relationship of labels and textboxes: any labels that are to the left of textboxes in left-to-right languages need to be to the right of the textboxes in Arabic and other right-to-left languages. But I can't find a definite answer on whether the entire layout of the graphical user interface should be mirrored.

For example in our software we have a panel with a map in it on the left of a window and secondary information in a panel on the right. Should the position of these panels be reversed for right-to-left languages?

The main reason I ask is that Microsoft Windows takes the path of mirroring everything when in Arabic, but I just noticed in the new support for Arabic in the iPhone OS 3.0, virtually nothing is mirrored, not even label-textbox examples. I would have thought this to be quite bad on Apple's part, but is this sort of thing widely accepted in the Arab world?

Any help or opinions would be appreciated.

+2  A: 

Its important. Imagine if you were using some software written by an Arabic speaker that was translated into English and some things were not correctly flipped.

In general, Windows (Vista and WIn7 in particular) and Office are very well translated for right to left reading languages. You can use this as an example of what to do - this is especially true for the top level UI elements

I would agree that purely graphical elements may not need to be flipped, but you should consider doing the right thing for anything that is generally scanned in reading order.

Foredecker
That's what I figured. The fact that Apple hadn't mirrored the iPhone interface for Arabic kind of threw me.
Sean R
Apple does it wrong on the iPhone.
Osama ALASSIRY
+3  A: 

In Arabic, we read and scan graphic elements right-to-left

You will need to horizontal-flip the whole display, except for the images and text (the BiDi library - usually in the OS - handles that). You're only flipping the locations of the control.

A control bound by (x1,y1,x2,y2) in a w*h screen becomes (w-x2,y1,w-x1,y2), the contents of the rectangle are not to be flipped, just the position. It would keep its dimensions.

For example, compare Google news in English, and Arabic... notice the menu, the images, the news items.

Osama ALASSIRY