As I’m writing this article, we (as Mozilla and everyone else working together on Firefox OS) were never closer to releasing a version of Firefox Operating System containing this much RTL (Right-To-Left UI) support inside, which is (as the one who were/is responsible for most of it I can tell you we have) a pretty damn competitive implementation that *no* one else currently has.
v2.2 which is the version that we’re talking about here. And as you already know by now (since, you know, assuming know about Firefox OS since you’re reading this) the OS is web-based, which means it relates a lot to the web, in fact it *is* the web we want!
So I decided to write a little blog post for anyone out there who wants to get started extending their web products/websites/services support to the RTL Market.
For starters, the RTL Market is anywhere in the world where a country has a language starting from the right as their native language. This means North Africa, Middle East and bits of Asia.
RTL Is NOT Translating To Arabic
Localizing for RTL means more than translating your website into Arabi, Farsi, Urdu or Hebrew and calling it a day. It might sound harsh but here’s my advice: Do RTL right or don’t bother. If you half-arse it, it will be obvious, and you will lose money and credibility. Know who you’re talking to and how they use the web and you’ll be that much closer to a meaningful connection with your users.
RTL Is UI, Patterns And More
So there’s this one time after I had a new Ubuntu install and used Gnome for it instead of Unity, and while personalizing it, I chose for the time & calendar the setting “Arabic (Tunisia)” and suddenly 4:45 PM became litteraly PM 45:4.
Seriously, WTF ^^ I can’t read this even though I’m a native Arabic speaker (so native RTL user), even though the time pattern is flipped and so on, but still it’s WRONG, we don’t read time that way.
So, moral of the story: RTL is not about flipping UI wherever you see a horizontal list of items near each other.
So I ended up switching to English (UK) for my time and date format. And again, if you do RTL wrong it will be obvious and people will not use it.
Back to the topic, in RTL there are exceptions that you should know about before kicking off, don’t be shy to ask the community, especially from the open source community, basically any native could give you valid advices about most of the UI.
Feel free to drop in any questions you’ve got 🙂