stringtranslate.com

Texto bidireccional

Un texto bidireccional contiene dos direccionalidades de texto , de derecha a izquierda (RTL) y de izquierda a derecha (LTR). Generalmente se trata de texto que contiene diferentes tipos de alfabetos , pero también puede referirse al boustrophedon , que consiste en cambiar la dirección del texto en cada fila.

Un ejemplo es el nombre hebreo RTL Sarah: שרה, escrito sin (ש) a la derecha, resh (ר) en el medio y heh (ה) a la izquierda. Muchos programas de computadora no lograron mostrar esto correctamente porque fueron diseñados para mostrar texto en una sola dirección.

Algunas escrituras denominadas de derecha a izquierda , como la escritura persa y el árabe, son en su mayoría, pero no exclusivamente, de derecha a izquierda: las expresiones matemáticas, las fechas numéricas y las unidades con números están incrustadas de izquierda a derecha. Eso también sucede si se incrusta texto de un idioma de izquierda a derecha, como el inglés; o viceversa, si el árabe está incrustado en una escritura de izquierda a derecha, como el inglés.

Soporte de script bidireccional

La compatibilidad con scripts bidireccionales es la capacidad de un sistema informático para mostrar correctamente texto bidireccional. El término suele abreviarse como " BiDi " o " bidi ".

Las primeras instalaciones informáticas se diseñaron únicamente para admitir un único sistema de escritura , normalmente para escrituras de izquierda a derecha basadas únicamente en el alfabeto latino . Agregar nuevos conjuntos de caracteres y codificaciones de caracteres permitió admitir otras escrituras de izquierda a derecha, pero no admitía fácilmente escrituras de derecha a izquierda como el árabe o el hebreo , y mezclar las dos no era práctico. Las escrituras de derecha a izquierda se introdujeron mediante codificaciones como ISO/IEC 8859-6 e ISO/IEC 8859-8 , almacenando las letras (normalmente) en orden de escritura y lectura. Es posible simplemente cambiar el orden de visualización de izquierda a derecha a un orden de visualización de derecha a izquierda, pero al hacerlo se sacrifica la capacidad de mostrar correctamente los scripts de izquierda a derecha. Con soporte de escritura bidireccional, es posible mezclar caracteres de diferentes escrituras en la misma página, independientemente de la dirección de escritura.

En particular, el estándar Unicode proporciona las bases para un soporte completo de BiDi, con reglas detalladas sobre cómo se codificarán y mostrarán las mezclas de escrituras de izquierda a derecha y de derecha a izquierda.

Soporte bidi Unicode

El estándar Unicode exige que los caracteres se ordenen "lógicamente", es decir, en la secuencia en la que deben interpretarse, en lugar de "visualmente", la secuencia en la que aparecen. Esta distinción es relevante para el soporte bidi porque en cualquier transición bidi, la presentación visual deja de ser la "lógica". Por lo tanto, para ofrecer soporte bidi, Unicode prescribe un algoritmo sobre cómo convertir la secuencia lógica de caracteres en la presentación visual correcta. Para ello, el estándar de codificación Unicode divide todos sus caracteres en uno de cuatro tipos: "fuerte", "débil", "neutral" y "formato explícito". [1]

Personajes fuertes

Los personajes fuertes son aquellos que tienen una dirección definida. Ejemplos de este tipo de caracteres incluyen la mayoría de los caracteres alfabéticos, silábicos, ideogramas han, dígitos no europeos o árabes y caracteres de puntuación que son específicos únicamente de esas escrituras.

Personajes débiles

Los personajes débiles son aquellos con una dirección vaga. Ejemplos de este tipo de caracteres incluyen dígitos europeos, dígitos árabe-índicos orientales, símbolos aritméticos y símbolos de moneda.

personajes neutrales

Los personajes neutrales tienen una dirección indeterminable sin contexto. Los ejemplos incluyen separadores de párrafos, tabulaciones y la mayoría de los demás caracteres de espacio en blanco. Los símbolos de puntuación que son comunes a muchas escrituras, como los dos puntos, la coma, el punto y el espacio sin interrupción, también entran dentro de esta categoría.

Formato explícito

Los caracteres de formato explícito, también denominados "caracteres de formato direccional", son secuencias Unicode especiales que dirigen al algoritmo para modificar su comportamiento predeterminado. Estos caracteres se subdividen en "marcas", "incrustaciones", "aislamientos" y "anulaciones". Sus efectos continúan hasta que aparece un separador de párrafo o un carácter "pop".

Marcas

Si a un carácter "débil" le sigue otro carácter "débil", el algoritmo observará el primer carácter "fuerte" vecino. A veces esto provoca errores de visualización involuntarios. Estos errores se corrigen o previenen con caracteres "pseudofuertes". Estos caracteres de control Unicode se denominan marcas . La marca ( U+200E MARCA DE IZQUIERDA A DERECHA (LRM) o U+200F MARCA DE DERECHA A IZQUIERDA (RLM)) se debe insertar en una ubicación para que un carácter débil encerrado herede su dirección de escritura.

Por ejemplo, para mostrar correctamente el SIGNO DE MARCA COMERCIAL U+2122 para una marca en inglés (LTR) en un pasaje árabe (RTL), se inserta una marca LRM después del símbolo de marca registrada si el símbolo no está seguido por el texto LTR (p. ej. " قرأ Wikipedia™‎ طوال اليوم. "). Si no se agrega la marca LRM, el carácter débil ™ estará acompañado por un carácter LTR fuerte y un carácter RTL fuerte. Por lo tanto, en un contexto RTL, se considerará RTL y se mostrará en un orden incorrecto (por ejemplo, " قرأ Wikipedia™ طوال اليوم. ").

Incrustaciones

Los caracteres de formato direccional "incrustados" son el método Unicode clásico de formato explícito y, a partir de Unicode 6.3, se desaconsejan en favor de los "aislados". Una "incrustación" indica que un fragmento de texto debe tratarse como direccionalmente distinto. El texto dentro del alcance de los caracteres de formato incrustados no es independiente del texto circundante. Además, los caracteres dentro de una incrustación pueden afectar el orden de los caracteres externos. Unicode 6.3 reconoció que las incrustaciones direccionales generalmente tienen un efecto demasiado fuerte en su entorno y, por lo tanto, son innecesariamente difíciles de usar.

Aisla

Los caracteres de formato direccional "aislado" indican que un fragmento de texto debe tratarse como aislado direccionalmente de su entorno. A partir de Unicode 6.3, estos son los caracteres de formato que se recomiendan en los nuevos documentos, una vez que se sabe que las plataformas de destino los admiten. Estos caracteres de formato se introdujeron después de que se hizo evidente que las incrustaciones direccionales suelen tener un efecto demasiado fuerte en el entorno y, por tanto, son innecesariamente difíciles de usar. A diferencia de los caracteres de formato direccional 'incrustados' heredados, los caracteres 'aislados' no tienen ningún efecto en el orden del texto fuera de su alcance. Los aislados se pueden anidar y se pueden colocar dentro de incrustaciones y anulaciones.

Anulaciones

Los caracteres de formato direccional de "anulación" permiten casos especiales, como números de pieza (por ejemplo, para forzar que un número de pieza compuesto por una mezcla de inglés, dígitos y letras hebreas se escriba de derecha a izquierda), y se recomienda evitarlos siempre que sea posible. . Como ocurre con los demás caracteres de formato direccional, las "anulaciones" se pueden anidar una dentro de otra, y en incrustaciones y aislamientos.

papás

Los caracteres de formato direccional "pop" finalizan el alcance de la "incrustación", "anulación" o "aislamiento" más reciente.

Carreras

En el algoritmo, cada secuencia de caracteres fuertes concatenados se denomina "ejecución". Un personaje "débil" que se encuentre entre dos personajes "fuertes" con la misma orientación heredará su orientación. Un carácter "débil" que se encuentra entre dos caracteres "fuertes" con una dirección de escritura diferente heredará la dirección de escritura del contexto principal (en un documento LTR el carácter se convertirá en LTR, en un documento RTL, se convertirá en RTL).

Tabla de posibles tipos de caracteres BiDi

Tipo de carácter bidireccional ( propiedad de carácter Unicode Bidi_Class ) [1]

Seguridad

En la vulnerabilidad del origen del troyano se utilizan caracteres bidireccionales Unicode . [2]

Visual Studio Code destaca los caracteres de control BiDi desde la versión 1.62 lanzada en octubre de 2021. [3]

Visual Studio destaca los caracteres de control BiDi desde la versión 17.0.3 lanzada el 14 de diciembre de 2021. [4]

Guiones que utilizan texto bidireccional

Jeroglíficos egipcios

Los jeroglíficos egipcios se escribían bidireccionalmente, donde los signos que tenían una "cabeza" o "cola" distinta miraban al comienzo de la línea.

Caracteres chinos y otras escrituras CJK

Los caracteres chinos se pueden escribir en cualquier dirección y también verticalmente (de arriba a abajo y luego de derecha a izquierda), especialmente en carteles (como placas), pero la orientación de los caracteres individuales no cambia. Esto se puede ver a menudo en los autobuses turísticos de China, donde el nombre de la empresa suele ir desde la parte delantera del vehículo hasta la parte trasera, es decir, de derecha a izquierda en el lado derecho del autobús y de izquierda a derecha en el lado izquierdo. lado del autobús. Los textos en inglés en el lado derecho del vehículo también suelen escribirse en orden inverso. (Vea las imágenes del autobús turístico y del vehículo postal a continuación).

Asimismo, otras escrituras CJK formadas por los mismos caracteres cuadrados, como el sistema de escritura japonés y el sistema de escritura coreano , también se pueden escribir en cualquier dirección, aunque horizontalmente de izquierda a derecha, de arriba a abajo y verticalmente de arriba a abajo. -Abajo, de derecha a izquierda, son las dos formas más comunes.

Boustrofedón

Boustrophedon es un estilo de escritura que se encuentra en inscripciones griegas antiguas , en antiguo sabaico (una antigua lengua del sur de Arabia) y en runas húngaras . Este método de escritura alterna la dirección y generalmente invierte los caracteres individuales en cada línea sucesiva.

tipo de luna

La tipografía lunar es una adaptación en relieve del alfabeto latino inventada como alfabeto táctil para ciegos. Inicialmente, el texto cambió de dirección (pero no de orientación de los caracteres) al final de las líneas. Líneas especiales en relieve conectaban el final de una línea y el comienzo de la siguiente. [5] Alrededor de 1990, cambió a una orientación de izquierda a derecha .

Ver también

Referencias

  1. ^ "UAX n.º 9: algoritmo bidireccional Unicode". Unicode.org. 2018-05-09 . Consultado el 26 de junio de 2018 .
  2. ^ "Ataques de origen troyano". códigos.trojansource . Consultado el 17 de enero de 2022 .
  3. ^ "Código de Visual Studio de octubre de 2021". código.visualstudio.com . Consultado el 11 de noviembre de 2021 .
  4. ^ "Notas de la versión de Visual Studio 2022 versión 17.0". docs.microsoft.com . Consultado el 17 de enero de 2022 .
  5. ^ Tipo de luna para ciegos , Colección Bíblica Ramseyer, Biblioteca Kathryn A. Martin, Universidad de Minnesota Duluth .

enlaces externos