¿Cómo manejar los idiomas RTL en versiones pre 4.2 de Android?

Fondo

TextView siempre tuvo problemas con los idiomas RTL (Right-to-Left). Como solo sé leer hebreo (además de inglés), hablaré sobre sus temas:

Alineación del texto (y no estoy hablando de gravedad). Como lenguaje RTL, el hebreo pone palabras de derecha a izquierda (en comparación con el inglés, que es lo contrario).

Para demostrar lo molesto que es, imagine que en lugar de mostrar "Hola mundo". por lo general se obtiene ".Hola mundo". Esto podría solucionarse fácilmente si lo tenía en una sola oración, pero es más difícil cuando hay varios caracteres de puntuación.

Posiciones de vocales. El hebreo no requiere vocales para leer el texto, pero a veces es muy difícil de leer sin ellas (especialmente la Biblia). Para las vocales, el hebreo tiene lo que se llama "NIKUD", que en realidad son como puntos dentro de las letras. El problema en Android era que normalmente se colocaban en la ubicación incorrecta.

Para demostrar lo molesto que es, imagine que en lugar de mostrar "Hola mundo". usualmente obtienes ".eHlol owrld". Incluso si intentas arreglarlo (coloca las vocales siempre un carácter después del actual), la posición en la letra no era correcta (imagina que la "e" en "Hola" sería como sobre la "H", para ejemplo).

Sólo en la versión 4.2 (leeraquí, bajo "Soporte RTL nativo"), Google ha solucionado todos los problemas relacionados con el hebreo (o al menos así parece).

El problema

los problemas con el hebreo han causado que cada operador israelí y cada fabricante de ROM personalizado tengan su propia solución de cómo solucionar los diferentes problemas, lo que hace que sea prácticamente imposible manejar el texto RTL en dispositivos pre 4.2.

Las cosas pueden volverse aún más frustrantes en caso de que el texto incluya letras hebreas e inglesas.

Lo que he intentado

He leído muchos sitios web que hablan sobre esos problemas, y he probado muchas variantes de las soluciones, ninguna ha resuelto el problema en todos los dispositivos:

Algunos sugieren poner el carácter '\ u200F' (o '\ u202D') al final / inicio / ambos del texto.

Algunos sugieren usarHtml.fromHtml () Método y poner algo especial allí.

Algunos incluso sugieren utilizar WebView en su lugar (y tal vez usarWebSettings.setDefaultTextEncodingName () ).

La pregunta

¿Hay una solución definitiva para este problema?

Supongo que lo mejor es que, como Android 4.2 resuelve esto, y Android es de código abierto, deberíamos tener su TextView importado en una biblioteca que podamos usar, pero Google aún no ha proporcionado dicha biblioteca.

Respuestas a la pregunta(2)

Su respuesta a la pregunta