What is the status of Right To Left languages on Android?

android developer picture android developer · Feb 13, 2012 · Viewed 7k times · Source

I need to create an application that has strings of many languages, including RTL (right-to-left ) languages. I want to know what is the current status of RTL (Right To Left) support on Android (even on latest API), for example:

  1. is it possible to dynamically/statically check if the device's current language is RTL type? I know that it is possible to get the current locale, but i need a more general way to check if the current language is RTL. For example, for English and French it will return false, but for Arabic and Hebrew it will return true.

  2. is it possible to set a layout to automatically be mirrored for RTL languages ? For example, if a linearLayout (with horizontal orientation) had its children 1->2, now it will have 2<-1, and new children will be created on the left.

  3. is there a qualifier to add to the resources folders that will handle all RTL languages? For example, "res/layout" is for LTR (Left To Right), and "res/layout-rtl" is for RTL languages.

  4. it seems that eclipse's content assist suggests "android:layoutDirection" for linearLayout and "android:textDirection" for textView, but when I choose them, I get a compilation error that it doesn't recognize them. I also can't find out more information on the internet about those attributes. What do they mean, and how come I can't use them?

EDIT: seems that Android 4.1 has some improvement on RTL languages. Wonder what are they and where I can read about them.

Answer

android developer picture android developer · Feb 15, 2013

Starting with android 4.2 , there is a little more info known about the special RTL attributes , and there is even an option to mirror layouts automatically for RTL languages .

More info can be found here .

Hopefully , they will add more information about how to use it , including some sample code and maybe even a support library on this matter.


EDIT: now they've added some more information of how to use the new RTL support:

http://android-developers.blogspot.co.il/2013/03/native-rtl-support-in-android-42.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+blogspot/hsDu+(Android+Developers+Blog)

I wonder though if the NIKUD ( Hebrew equivalent to vowels, except that they are optional and they are shown as dots instead of letters) works fine now .

EDIT: Now i've tested it, and it actually works really well (this is the first chapter of the holy bible) :

enter image description here