¿Cuál es el estado de los idiomas de Right To Left en Android?

Necesito crear una aplicación que tenga cadenas de muchos idiomas, incluidos los de RTL (de derecha a izquierda). Quiero saber cuál es el estado actual del soporte de RTL (derecha a izquierda) en Android (incluso en API más reciente), por ejemplo:

  1. ¿Es posible comprobar de forma dinámica / estática si el lenguaje actual del dispositivo es de tipo RTL? Sé que es posible obtener la ubicación actual, pero necesito una forma más general para comprobar si el idioma actual es RTL. Por ejemplo, para el inglés y el francés se devolverá falso, pero para árabe y hebreo se devolverá true.

  2. ¿Es posible establecer un diseño para que se refleje automáticamente para los idiomas RTL? Por ejemplo, si un linearLayout (con orientación horizontal) tenía sus hijos 1-> 2, ahora tendrá 2 <-1, y se crearán nuevos niños a la izquierda.

  3. ¿Hay un calificador que agregar a las carpetas de recursos que manejarán todos los idiomas RTL? Por ejemplo, "res / layout" es para LTR (de izquierda a derecha) y "res / layout-rtl" es para idiomas RTL.

  4. Parece que la ayuda de contenido de eclipse sugiere "android: layoutDirection" para linearLayout y "android: textDirection" para textView, pero cuando los elijo, obtengo un error de compilación que no los reconoce. También no puedo encontrar más información en Internet sobre esos atributos. ¿Qué significan y por qué no puedo usarlos?

EDIT: parece que Android 4.1 tiene algunas mejoras en los idiomas RTL. Me pregunto qué son y dónde puedo leer sobre ellos.

Comenzando con android 4.2, hay un poco más de información sobre los atributos especiales de RTL, e incluso hay una opción para reflejar diseños automáticamente para los idiomas RTL.

Más información se puede encontrar aquí .

Con suerte, añadirán más información sobre cómo usarlo, incluyendo algún código de ejemplo y tal vez incluso una biblioteca de soporte sobre este asunto.


EDIT: ahora han añadido más información sobre cómo usar el nuevo soporte 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 )

Me pregunto si aunque el NIKUD (equivalente hebreo a vocales, excepto que son opcionales y se muestran como puntos en lugar de letras) funciona bien ahora.

EDIT: Ahora lo he probado, y realmente funciona muy bien (este es el primer capítulo de la Santa Biblia):

Introduzca aquí la descripción de la imagen

  1. El soporte de RTL en android obtuvo algunas mejoras en ICS. Antes de que en el pan de jengibre, era específico del dispositivo, por ejemplo, cada fabricante / operador implementado sus propias soluciones BiDi que causó cierta inconsistencia en las aplicaciones

  2. No es necesario Bueno BiDi sabe reflejar la vista de texto y canvas.draw texto por letra inicial utf8 código .. que le permiten preocuparse menos acerca de BiDi y más acerca de su aplicación. Simplemente no fuerce la gravedad y llene a los padres en la vista de texto

  3. No, hay calificadores para árabe / hebreo, etc. donde se puede cambiar prácticamente todo. Pero una buena implementación de dispositivo no necesitará nada más que traducciones.

  4. Que puede ocurrir si tiene instalada alguna API antigua o específica de dispositivo. Por lo tanto, no funcionará en todo el Android y causará errores de compilación. Pero hay más razones para que suceda …


En general, le aconsejo que ignore el problema BiDi por dos razones:

  1. La gente de los países que utilizan rtl por lo general tienen dispositivos que el proceso es bastante bueno si no, entonces su problema.

  2. La fijación de su BiDi para un dispositivo hará que otros dispositivos no cumplan. Y eso es algo que se hizo hace año .. y por suerte los desarrolladores finalmente dejaron de hacer este error

  • Android: ¿Cómo puedo incluir un sonido de notificación utilizando un recurso de sonido?
  • Otros recursos $ NotFoundException en setContentView
  • Obtener recurso Drawable desde dentro de DefaultHandler
  • Activos de Android, C, JNI
  • Eclipse androide utilizando recurso de cadena para el tamaño de texto en diseños
  • Mapa de bits en Android: Tamaño de los recursos para mostrar como 50dp
  • Android encontrar recurso por id durante el tiempo de ejecución
  • Cómo encontrar View from string en vez de R.id
  • Android - colors.xml recurso a valor int
  • Crashing debido a "No identificador de paquete al obtener el valor del número de recurso ..."
  • android: cómo cargar el archivo xml desde el directorio de activos?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.