Android上从右到左语言的状态是什么?

时间:2012-02-13 15:02:21

标签: android resources locale right-to-left

我需要创建一个包含多种语言字符串的应用程序,包括RTL(从右到左)语言。我想知道Android上的RTL(从右到左)支持的当前状态(即使在最新的API上),例如:

  1. 是否可以动态/静态地检查设备的当前语言是否为RTL类型?我知道可以获取当前的语言环境,但我需要一种更通用的方法来检查当前语言是否为RTL。例如,对于英语和法语,它将返回false,但对于阿拉伯语和希伯来语,它将返回true。

  2. 是否可以将布局设置为自动镜像为RTL语言? 例如,如果linearLayout(具有水平方向)的子项为1> 2,则现在它将具有2< -1,并且将在左侧创建新子项。

  3. 是否有一个限定符要添加到将处理所有RTL语言的资源文件夹?例如,“res / layout”用于LTR(从左到右),“res / layout-rtl”用于RTL语言。

  4. 似乎eclipse的内容辅助建议使用linearLayout的“android:layoutDirection”和textView的“android:textDirection”,但是当我选择它们时,我得到一个它无法识别它们的编译错误。我也无法在互联网上找到有关这些属性的更多信息。他们是什么意思,为什么我不能使用它们?

  5. 编辑:似乎Android 4.1在RTL语言方面有一些改进。不知道它们是什么以及我可以在哪里阅读它们。

2 个答案:

答案 0 :(得分:4)

从android 4.2开始,有一些关于特殊RTL属性的信息,甚至还有一个选项可以自动为RTL语言镜像布局。

可以找到更多信息here

希望他们能够添加更多有关如何使用它的信息,包括一些示例代码,甚至可能是关于此问题的支持库。


编辑:现在他们已经添加了一些有关如何使用新RTL支持的信息:

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)

我想知道,如果NIKUD(希伯来语相当于元音,除了它们是可选的,它们显示为点而不是字母)现在工作正常。

编辑:现在我已经测试了它,它实际上运作得很好(这是神圣圣经的第一章):

enter image description here

答案 1 :(得分:0)

  1. Android中的RTL支持在ICS上得到了一些改进。 在姜饼之前,它是特定于设备的,例如每个制造商/运营商都实施了他们自己的BiDi解决方案,这导致了应用程序中的一些不一致

  2. 不需要它。好的BiDi知道镜像文本视图和canvas.draw文本的首字母utf8代码..这让你更少关于BiDi和更多关于你的应用程序。只是不要强制重力并在文本视图上填充父级

  3. 不,有阿拉伯语/希伯来语的限定符等。你几乎可以改变一切。但是好的设备实现除了翻译之外不需要任何东西。

  4. 如果您安装了旧的或特定于设备的API,则可能会发生
  5. 。因此它无法在Android范围内工作并导致编译错误。 但它有更多的理由发生......


  6. 通常我建议你忽略BiDi问题有两个原因:

    1. 来自使用rtl的国家/地区的人通常会使用可以处理相当好的设备,如果不是那么就是他们的问题。

    2. 为一台设备修复BiDi会导致其他设备无法使用。这一切都是在一年前完成的......幸运的是开发人员终于停止了这个错误