Texto bidireccional - Bidirectional text

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

Muchos programas de computadora no muestran correctamente el texto bidireccional. Por ejemplo, el nombre hebreo Sarah (שרה) se escribe: sin (ש) (que aparece más a la derecha), luego resh (ר) y finalmente heh (ה) (que debería aparecer más a la izquierda).

Nota: Algunos navegadores web pueden mostrar el texto hebreo de este artículo en la dirección opuesta.

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 a menudo se abrevia a " 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 . La adición de nuevos conjuntos de caracteres y codificaciones de caracteres permitió admitir una serie de otras escrituras de izquierda a derecha, pero no admitía fácilmente las escrituras de derecha a izquierda como el árabe o el hebreo , y mezclar los dos no era práctico. Los scripts de derecha a izquierda se introdujeron a través de codificaciones como ISO / IEC 8859-6 e ISO / IEC 8859-8 , almacenando las letras (generalmente) 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 hacer esto sacrifica la capacidad de mostrar correctamente los scripts de izquierda a derecha. Con el soporte de guiones bidireccionales, es posible mezclar caracteres de diferentes guiones en la misma página, independientemente de la dirección de escritura.

En particular, el estándar Unicode proporciona las bases para el soporte completo de BiDi, con reglas detalladas sobre cómo se deben codificar y mostrar las mezclas de scripts 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 que están destinados a ser interpretados, 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 este propósito, el estándar de codificación Unicode divide todos sus caracteres en uno de cuatro tipos: 'fuerte', 'débil', 'neutral' y 'formato explícito'.

Personajes fuertes

Los personajes fuertes son aquellos con una dirección definida. Los ejemplos de este tipo de carácter incluyen la mayoría de los caracteres alfabéticos, caracteres silábicos, ideogramas Han, dígitos no europeos o no árabes y caracteres de puntuación que son específicos solo de esos alfabetos .

Personajes débiles

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

Números

A menos que exista una anulación direccional, los números siempre se codifican (y se ingresan) en big-endian , y los números se representan como LTR. La direccionalidad débil solo se aplica a la ubicación del número en su totalidad.

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 muchos scripts, como los dos puntos, la coma, el punto y el espacio sin interrupciones, también se incluyen en esta categoría.

Formateo explícito

Los caracteres de formato explícito, también denominados "caracteres de formato direccional", son secuencias Unicode especiales que dirigen al algoritmo a 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 "emergente".

Marcas

Si un carácter "débil" va seguido de otro carácter "débil", el algoritmo buscará el primer carácter "fuerte" vecino. A veces, esto conduce a errores de visualización involuntarios. Estos errores se corrigen o previenen con caracteres "pseudo-fuertes". 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)) debe insertarse 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 de nombre 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 va seguido de texto LTR (p. Ej. " قرأ Wikipedia ™ طوال اليوم. "). Si no se agrega la marca LRM, el carácter débil ™ será vecino de 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 ™ طوال اليوم. ").

Embeddings

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 de incrustación 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 "aislar" 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 generalmente tienen un efecto demasiado fuerte en su entorno y, por lo 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 aislamientos se pueden anidar y se pueden colocar dentro de incrustaciones y anulaciones.

Anulaciones

Los caracteres de formato direccional "anular" permiten casos especiales, como números de pieza (por ejemplo, para forzar que un número de pieza compuesto de 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 "invalidaciones" se pueden anidar unas dentro de otras y en incrustaciones y aislamientos.

Pops

Los caracteres de formato direccional "pop" terminan 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 carácter "débil" que se encuentra entre dos caracteres "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)
Escribe Descripción Fuerza Direccionalidad Alcance general Carácter Bidi_Control
L De izquierda a derecha Fuerte De izquierda a derecha La mayoría de caracteres alfabéticos y silábicos, caracteres chinos, dígitos no europeos o no árabes, caracteres LRM, ... U + 200E MARCA DE IZQUIERDA A DERECHA (LRM)
R De derecha a izquierda Fuerte De derecha a izquierda Adlam, hebreo, Mandaic, Mende Kikakui, N'Ko, Samaritan, escrituras antiguas como Kharoshthi y Nabataean, carácter RLM, ... U + 200F MARCA DE DERECHA A IZQUIERDA (RLM)
Alabama Letra árabe Fuerte De derecha a izquierda Alfabetos árabe, hanifi rohingya, sogdiano, siríaco y thaana, y la mayoría de los signos de puntuación específicos de esos guiones, caracteres ALM, ... U + 061C LETRA ÁRABE (ALM)
ES Número europeo Débil Dígitos europeos, dígitos árabe-índicos del este, números epactos coptos, ...
ES Separador europeo Débil signo más , signo menos , ...
ET Terminador de números europeos Débil signo de grado , símbolos de moneda, ...
UN Número árabe Débil Dígitos árabe-índicos, separadores de miles y decimales árabes, dígitos Rumi, dígitos Hanifi Rohingya, ...
CS Separador de números comunes Débil dos puntos , coma , punto , espacio sin interrupciones , ...
NSM Marca no espaciadora Débil Caracteres en categorías generales Marcar, sin espacios y Marcar, adjunto (Mn, Me)
BN Límite neutral Débil Ignorables predeterminados, no caracteres, caracteres de control distintos a los que se les dan explícitamente otros tipos
B Separador de párrafos Neutral separador de párrafos , funciones de nueva línea apropiadas, determinación de párrafos de protocolo de nivel superior
S Separador de segmentos Neutral Pestañas
WS Espacio en blanco Neutral espacio , espacio de figura , separador de línea , avance de formulario , espacios de bloque de puntuación general (conjunto más pequeño que la lista de espacios en blanco Unicode )
SOBRE Otros neutrales Neutral Todos los demás personajes, incluido el personaje de reemplazo de objetos
LRE Incrustación de izquierda a derecha Explícito De izquierda a derecha Solo personaje LRE U + 202A EMPOTRADO DE IZQUIERDA A DERECHA (LRE)
LRO Anulación de izquierda a derecha Explícito De izquierda a derecha Solo personaje LRO U + 202D ANULACIÓN DE IZQUIERDA A DERECHA (LRO)
RLE Incrustación de derecha a izquierda Explícito De derecha a izquierda Solo carácter RLE U + 202B EMPOTRADO DE DERECHA A IZQUIERDA (RLE)
RLO Anulación de derecha a izquierda Explícito De derecha a izquierda Solo carácter RLO U + 202E ANULACIÓN DE DERECHA A IZQUIERDA (RLO)
PDF Formato direccional pop Explícito Solo carácter PDF FORMATO DIRECCIONAL POP U + 202C (PDF)
LRI Aislar de izquierda a derecha Explícito De izquierda a derecha Solo carácter LRI U + 2066 AISLADO DE IZQUIERDA A DERECHA (LRI)
RLI Aislar de derecha a izquierda Explícito De derecha a izquierda Solo carácter RLI U + 2067 AISLADO DE DERECHA A IZQUIERDA (RLI)
FSI Primer aislamiento fuerte Explícito Solo carácter FSI U + 2068 PRIMER AISLADO FUERTE (FSI)
PDI Aislamiento direccional pop Explícito Solo carácter PDI U + 2069 POP AISLADO DIRECCIONAL (PDI)
Notas
1. ^ Algoritmo bidireccional Unicode (UAX # 9) , a partir de la versión Unicode 12.0
2. ^ Posibles tipos de caracteres bidireccionales para la propiedad del carácter: Bidi_Class o 'type'
3. ^ Caracteres Bidi_Control : Se definen doce caracteres de formato Bidi_Control. Son invisibles y no tienen ningún efecto aparte de la direccionalidad. Nueve de ellos tienen un tipo BiDi exclusivo y anulante que utiliza el algoritmo. Su tipo es también su acrónimo (por ejemplo, el carácter 'LRE' tiene el tipo BiDi 'LRE').

Secuencias de comandos que utilizan texto bidireccional

Jeroglíficos egipcios

Los jeroglíficos egipcios se pueden escribir bidireccionalmente, donde los signos tenían una "cabeza" distinta que miraba al principio de una línea y una "cola" que miraba al final.

Caracteres chinos y otras escrituras CJK

Los caracteres chinos se pueden escribir en cualquier dirección, así como verticalmente (de arriba a abajo y luego de derecha a izquierda), especialmente en letreros (como placas), pero la orientación de los caracteres individuales nunca cambia. Esto a menudo se puede ver en los autobuses turísticos en 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 a la izquierda. 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 fotos del autobús turístico y publique el vehículo a continuación).

Asimismo, otros scripts CJK compuestos 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 de izquierda a derecha, de arriba a abajo y de derecha a derecha. a la izquierda son los más comunes.

Boustrophedon

Boustrophedon es un estilo de escritura que se encuentra en las antiguas inscripciones griegas y en las runas húngaras . Este método de escritura alterna la dirección y, por lo general, invierte los caracteres individuales en cada línea sucesiva.

Tipo de luna

El tipo de luna es una adaptación en relieve del alfabeto latino inventado como un alfabeto táctil para ciegos. Inicialmente, el texto cambió de dirección (pero no la 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. Alrededor de 1990, cambió a una orientación de izquierda a derecha .

Ver también

Referencias

enlaces externos