我需要创建一个包含多种语言字符串的应用程序,包括RTL(从右到左)语言.我想知道Android上的RTL(从右到左)支持的当前状态(即使在最新的API上),例如:
是否可以动态/静态地检查设备的当前语言是否为RTL类型?我知道可以获取当前的语言环境,但我需要一种更通用的方法来检查当前语言是否为RTL.例如,对于英语和法语,它将返回false,但对于阿拉伯语和希伯来语,它将返回true.
是否可以设置一个布局自动镜像为RTL语言?例如,如果linearLayout(具有水平方向)的子项为1-> 2,则现在它将具有2 <-1,并且将在左侧创建新子项.
是否有一个限定符添加到将处理所有RTL语言的资源文件夹?例如,"res/layout"用于LTR(从左到右),"res/layout-rtl"用于RTL语言.
似乎eclipse的内容辅助建议使用linearLayout的"android:layoutDirection"和textView的"android:textDirection",但是当我选择它们时,我得到一个它无法识别它们的编译错误.我也无法在互联网上找到有关这些属性的更多信息.他们是什么意思,为什么我不能使用它们?
编辑:似乎Android 4.1在RTL语言上有一些改进.不知道它们是什么以及我可以在哪里阅读它们.
我有以下算法能够连接阿拉伯文本和英语文本
private String getFormatedArabicEnglishMessage (String [] parts) {
String retString = "";
for (int i = 0; i < parts.length; i++) {
if (MyServices2Utils.isProbablyArabic(parts[i]) == true) {
retString += "\u202B" + new String(" ") + "\u202C";
retString += "\u202B" + new String(parts[i].getBytes()) + "\u202C";
retString += "\u202B" + new String(" ") + "\u202C";
} else {
retString += " ";
retString += parts[i];
retString += " ";
}
}
return retString;
}
Run Code Online (Sandbox Code Playgroud)
但并非在所有情况下都有效:
如果默认区域设置== ar,我得到以下结果:
如果默认区域设置 == en 我得到以下结果:

有人可以帮助我如何使用这个属性android:layoutDirection,
请不要向我推荐这个问题Android上的Right To Left语言的状态是什么?因为它没有回答我的问题!