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:
-
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.
-
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. -
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.
-
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.
Best Answer
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) :