Pantalla de texto Bidi

Queremos mostrar texto en nuestra aplicación que a veces contiene una combinación de rtl y ltr. Puedo determinar el idioma del texto y puedo cambiar dir=ltr o dir=rtl según el idioma.

El problema surge cuando la misma oración tenía tanto texto en inglés como en árabe, en cuyo caso mi detección de idioma detecta árabe (desde el idioma principal) y se selecciona dir=rtl. ¿Cómo puedo mostrar estas oraciones mixtas?

Saludos, Rohit

preguntado el 12 de junio de 12 a las 20:06

1 Respuestas

La dir El atributo establece la direccionalidad del texto direccionalmente neutral. No afecta al texto normal en letras latinas o árabes; siguen su fuerte direccionalidad inherente. Bueno, al menos deberían hacerlo. Los navegadores tienen errores y la configuración dir puede ayudar if usted sabe qué direccionalidad debe establecerse. Además, establecer dir establece la dirección general del diseño; por ejemplo, si tiene texto en árabe con algo de texto en inglés dentro (esquemáticamente, Ar1 seguido de En seguido de Ar2, en el caso más simple), debe configurar dir=rtl para hacer las cosas bien (en el ejemplo, Ar1 primero, a la derecha, luego En a la izquierda y luego Ar2 al final, es decir, más a la izquierda).

Pero surgen problemas cuando se involucran caracteres direccionalmente ambiguos como paréntesis, por ejemplo, cuando el texto en inglés dentro del texto en árabe tiene “Hola mundo (42)”. Dentro de un bloque con dir=rtl, esto se representa como “(Hello world (42 .”)

Para lidiar con esto, también debe reconocer el fragmento en inglés y envolverlo dentro de un elemento para el que establezca la direccionalidad incrustada:

<style>
.ltr { unicode-bidi: embed; direction: ltr; }
</style>
[...]
<p dir=rtl>
مرحبا العالم. <span class=ltr>Hello world (42).</span> وكان هذا الاختبار.</p>

Respondido el 12 de junio de 12 a las 21:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.