Texto bidirecional

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

Um texto bidirecional contém duas direções de texto, da direita para a esquerda (RTL) e da esquerda para a direita (LTR). Geralmente envolve texto contendo diferentes tipos de alfabetos, mas também pode se referir ao bustrophedon, que está mudando a direção do texto em cada linha.

Muitos programas de computador falham em exibir texto bidirecional corretamente. Por exemplo, esta página é escrita principalmente em inglês LTR, e aqui está o nome hebraico RTL Sarah: שרה, escrito sin (ש) à direita, resh (ר) no meio e heh (ה) à esquerda.

Alguns dos chamados scripts da direita para a esquerda, como o persa (e o árabe), são principalmente, mas não exclusivamente, da direita para a esquerda; expressões matemáticas, datas numéricas e unidades de rolamento de números são incorporadas da esquerda para a direita. Isso também acontece se, por ex. O inglês está embutido neles, ou vice-versa, se árabe, persa ou hebraico estiver embutido em um script da esquerda para a direita.

Suporte de script bidirecional

O suporte de script bidirecional é a capacidade de um sistema de computador exibir corretamente o texto bidirecional. O termo é frequentemente abreviado para "BiDi" ou "bidi".

As primeiras instalações de computador foram projetadas apenas para suportar um único sistema de escrita, normalmente para scripts da esquerda para a direita baseados apenas no alfabeto latino. Adicionar novos conjuntos de caracteres e codificações de caracteres permitia o suporte a vários outros scripts da esquerda para a direita, mas não suportava facilmente scripts da direita para a esquerda, como árabe ou hebraico, e misturar os dois não era prático. Os scripts da direita para a esquerda foram introduzidos por meio de codificações como ISO/IEC 8859-6 e ISO/IEC 8859-8, armazenando as letras (geralmente) na ordem de escrita e leitura. É possível simplesmente inverter a ordem de exibição da esquerda para a direita para uma ordem de exibição da direita para a esquerda, mas isso sacrifica a capacidade de exibir corretamente os scripts da esquerda para a direita. Com suporte a script bidirecional, é possível misturar caracteres de diferentes scripts na mesma página, independentemente da direção da escrita.

Em particular, o padrão Unicode fornece fundamentos para suporte BiDi completo, com regras detalhadas sobre como misturas de scripts da esquerda para a direita e da direita para a esquerda devem ser codificadas e exibidas.

Suporte bidi Unicode

O padrão Unicode exige que os caracteres sejam ordenados 'logicamente', ou seja, na sequência em que devem ser interpretados, em oposição a 'visualmente', a sequência em que aparecem. Esta distinção é relevante para suporte bidi porque em qualquer transição bidi, a apresentação visual deixa de ser a 'lógica' um. Assim, para oferecer suporte bidi, o Unicode prescreve um algoritmo para como converter a sequência lógica de caracteres na apresentação visual correta. Para isso, o padrão de codificação Unicode divide todos os seus caracteres em um dos quatro tipos: 'forte', 'fraco', 'neutro' e ' formatação explícita'.

Personagens fortes

Personagens fortes são aqueles com uma direção definida. Exemplos desse tipo de caractere incluem a maioria dos caracteres alfabéticos, caracteres silábicos, ideogramas Han, dígitos não europeus ou não árabes e caracteres de pontuação que são específicos apenas para esses scripts.

Personagens fracos

Personagens fracos são aqueles com direção vaga. Exemplos desse tipo de caractere incluem dígitos europeus, dígitos árabe-índicos orientais, símbolos aritméticos e símbolos de moeda.

Caracteres neutros

Caracteres neutros têm direção indeterminável sem contexto. Os exemplos incluem separadores de parágrafo, tabulações e a maioria dos outros caracteres de espaço em branco. Os símbolos de pontuação comuns a muitos scripts, como dois pontos, vírgula, ponto final e espaço sem quebra, também se enquadram nessa categoria.

Formatação explícita

Caracteres de formatação explícita, também chamados de "caracteres de formatação direcional", são sequências Unicode especiais que direcionam o algoritmo para modificar seu comportamento padrão. Esses caracteres são subdivididos em "marcas", "incorporações", "isolados" e "substituições". Seus efeitos continuam até a ocorrência de um separador de parágrafo ou um "pop" personagem.

Marcas

Se um "fraco" personagem é seguido por outro "fraco" caractere, o algoritmo examinará o primeiro caractere vizinho "forte" personagem. Às vezes, isso leva a erros de exibição não intencionais. Esses erros são corrigidos ou evitados com "pseudo-forte" personagens. Esses caracteres de controle Unicode são chamados de marcas. A marca (U+200E MARCA DA ESQUERDA PARA A DIREITA (LRM) ou U+200F CERTO -TO-LEFT MARK (RLM)) deve ser inserido em um local para fazer um caractere fraco fechado herdar sua direção de escrita.

Por exemplo, para exibir corretamente a linha U+2122 SINAL DE MARCA REGISTRADA para uma marca inglesa (LTR) em uma passagem árabe (RTL), um LRM marca é inserida após o símbolo de marca registrada se o símbolo não for seguido por texto LTR (por exemplo, "قرأ Wikipedia™‎ طوال اليوم."). Se a marca LRM não for adicionada, o caractere fraco ™ terá como vizinho um caractere LTR forte e um caractere RTL forte. Portanto, em um contexto RTL, será considerado RTL e exibido em uma ordem incorreta (por exemplo, "قرأ Wikipedia™ طوال اليوم.").

Incorporações

A opção "incorporação" os caracteres de formatação direcional são o método Unicode clássico de formatação explícita e, a partir do Unicode 6.3, estão sendo desencorajados em favor de "isolados". Uma "incorporação" sinaliza que um trecho de texto deve ser tratado como direcionalmente distinto. O texto dentro do escopo dos caracteres de formatação incorporados não é independente do texto ao redor. Além disso, os caracteres dentro de uma incorporação podem afetar a ordem dos caracteres externos. O Unicode 6.3 reconheceu que as incorporações direcionais geralmente têm um efeito muito forte em seus arredores e, portanto, são desnecessariamente difíceis de usar.

Isolados

O "isolar" caracteres de formatação direcional sinalizam que um pedaço de texto deve ser tratado como isolado direcionalmente de seus arredores. A partir do Unicode 6.3, esses são os caracteres de formatação que estão sendo incentivados em novos documentos – uma vez que as plataformas de destino são conhecidas por suportá-los. Esses caracteres de formatação foram introduzidos depois que ficou claro que as incorporações direcionais geralmente têm um efeito muito forte em seus arredores e, portanto, são desnecessariamente difíceis de usar. Ao contrário da 'incorporação' caracteres de formatação direcional, 'isolar' os caracteres não têm efeito na ordem do texto fora de seu escopo. Os isolados podem ser aninhados e colocados dentro de incorporações e substituições.

Substitui

A opção "substituir" os caracteres de formatação direcional permitem casos especiais, como para números de peça (por exemplo, para forçar um número de peça feito de inglês misturado, dígitos e letras hebraicas a serem escritos da direita para a esquerda) e recomenda-se que sejam evitados sempre que possível. Como acontece com os outros caracteres de formatação direcional, "substitui" podem ser aninhados um dentro do outro, e em embeddings e isolados.

Pops

O "pop" os caracteres de formatação direcional encerram o escopo da "incorporação", "substituir" ou "isolar" mais recente.

Executa

No algoritmo, cada sequência de caracteres fortes concatenados é chamada de "executar". Um "fraco" caractere que está localizado entre dois caracteres "fortes" caracteres com a mesma orientação herdarão sua orientação. Um "fraco" caractere que está localizado entre dois caracteres "fortes" caracteres com uma direção de escrita diferente herdarão a direção de escrita do contexto principal (em um documento LTR, o caractere se tornará LTR, em um documento RTL, ele se tornará RTL).

Tabela de possíveis tipos de caracteres BiDi

Tipo de personagem bidirecional (Bidi_Class Propriedade de caracteres Unicode)
TipoDescriçãoForçaDirecçãoAspectos geraisCaracterística de Bidi_Control
LEsquerda para direitaForteL-to-RPersonagens mais alfabéticos e silábicos, caracteres chineses, dígitos não-europeus ou não-árabes, caráter LRM,...U+200E LEFT-TO-RIGHT MARK (LRM)
RDireita à esquerdaForteR-para-LAdlam, Hebraico, Olímpico, Mende Kikakui, N'Ko, Samaritano, scripts antigos como Kharoshthi e Nabataean, personagem RLM,...U+200F RIGHT-TO-LEFT MARK (RLM)
- Sim.Carta árabeForteR-para-LÁrabe, Hanifi Rohingya, Sogdian, Syriac e Thaana alfabetos, e mais pontuação específica para aqueles scripts, caráter ALM,...U+061C ARABIC LETTER MARK (ALM)
PTNúmero europeuFracadígitos europeus, dígitos árabe-indígenas orientais, números epactos coptas,...
ESSeparador EuropeuFracamais sinal, sinal de menos,
ETTerminator de Número EuropeuFracasinal de grau, símbolos de moeda,...
UmNúmero do árabeFracadígitos árabe-indic, decimal árabe e milhares separadores, dígitos Rumi, dígitos Hanifi Rohingya,...
CSseparador de número comumFracaCoronel., Com licença., parada completa, espaço sem ruptura,
NSMMarca de NonspacingFracaPersonagens em Geral Categorias Marca, não-espaço e Marcos, enclosing (Mn, Me)
BNBoundary NeutralFracaDefeito ignorables, não-caracters, caracteres de controle diferentes daqueles explicitamente dados outros tipos
BParágrafo separadorNeutralseparador de parágrafo, Funções Newline apropriadas, determinação do parágrafo do protocolo de nível superior
SSegmento separadorNeutralTabs
WSEspaço brancoNeutralespaço, espaço de figura, separador de linha, feed de formulário, espaços de bloco de punção geral (smaller set than the Unicode whitespace list)
Vamos.Outros neutrasNeutralTodos os outros personagens, incluindo objeto substituto
LREEmbutimento de esquerda para direitaExplícitoL-to-RCaracterística LRE apenasU+202A LEFT-TO-RIGHT EMBEDDING (LRE)
LROSubstituição esquerda para direitaExplícitoL-to-RCaracterística LRO apenasU+202D LEFT-TO-RIGHT OVERRIDE (LRO)
REMIncorporação à direita para a esquerdaExplícitoR-para-LCaracterística RLE apenasU+202B RIGHT-TO-LEFT EMBEDDING (RLE)
RALSubstituição de direita para esquerdaExplícitoR-para-LCaracterística de RLO apenasOVERRIDE DO TRIBUNAL DE DIREITO-POIS (RLO)
PDF PDFFormato de direção popExplícitoSomente caracteres PDFU+202C POP FORMATTING DIRECTIONAL (PDF)
LRIIsolado à direitaExplícitoL-to-RCaracterística LRI apenasU+2066 LEFT-TO-RIGHT ISOLATE (LRI)
RLIIsolamento direito à saídaExplícitoR-para-LCaracterística de RLIISOLATE (RLI)
FSIPrimeiro isolamento forteExplícitoCaracterística FSI apenasU+2068 FIRST STRONG ISOLATE (FSI)
PDIIsolamento de direção popExplícitoCaracterística PDI apenasISOLATE DIRECTIONAL U+2069 POP (PDI)
Notas
1.^ Algoritmo bidirecional Unicode (UAX#9), Como da versão Unicode 12.0
2.^ Possíveis tipos de caracteres bidirecionais para propriedade de caracteres: Bidi_ Classe ou tipo '
3.^ Personagens Bidi_Control: Doze caracteres de formatação Bidi_Control são definidos. Eles são invisíveis, e não têm nenhum efeito além da direcionalidade. Nove deles têm um tipo BiDi único que é usado pelo algoritmo. O seu tipo também é o seu siglas (por exemplo, o caracter 'LRE' tem BiDi tipo 'LRE').

Segurança

Caracteres bidirecionais Unicode são usados na vulnerabilidade Trojan Source.

O Visual Studio Code destaca os caracteres de controle BiDi desde a versão 1.62 lançada em outubro de 2021.

O Visual Studio destaca os caracteres de controle BiDi desde a versão 17.0.3 lançada em 14 de dezembro de 2021.

Scripts que usam texto bidirecional

Hieróglifos egípcios

Os hieróglifos egípcios eram escritos bidirecionalmente, onde os sinais que tinham uma distinta "cabeça" ou "cauda" enfrentou o início da linha.

Caracteres chineses e outros scripts CJK

Os caracteres chineses podem ser escritos em qualquer direção, bem como na vertical (de cima para baixo e da direita para a esquerda), especialmente em sinais (como placas), mas a orientação dos caracteres individuais não muda. Isso pode ser visto com frequência em ônibus de turismo na China, onde o nome da empresa costuma ir da frente do veículo para a parte traseira - ou seja, da direita para a esquerda no lado direito do ônibus e da esquerda para a direita no lado esquerdo. lado do ônibus. Textos em inglês no lado direito do veículo também são comumente escritos na ordem inversa. (Veja as fotos do ônibus de turismo e do veículo do posto abaixo.)

Da mesma forma, outros scripts CJK compostos pelos mesmos caracteres quadrados, como o sistema de escrita japonês e o sistema de escrita coreano, também podem ser escritos em qualquer direção, embora horizontalmente da esquerda para a direita, de cima para baixo e verticalmente de cima para baixo da direita para a esquerda são as duas formas mais comuns.

Boustrophedon

Boustrophedon é um estilo de escrita encontrado em antigas inscrições gregas e em runas húngaras. Esse método de escrita alterna a direção e geralmente inverte os caracteres individuais em cada linha sucessiva.

Tipo de lua

O tipo de lua é uma adaptação em relevo do alfabeto latino inventado como um alfabeto tátil para cegos. Inicialmente, o texto mudou de direção (mas não a orientação do caractere) no final das linhas. Linhas especiais em relevo conectavam o final de uma linha e o início da seguinte. Por volta de 1990, mudou para uma orientação da esquerda para a direita.

Contenido relacionado

História do esperanto

L. L. Zamenhof desenvolveu o Esperanto nas décadas de 1870 e 1880. O Unua Libro, a primeira discussão impressa da língua, apareceu em 1887. O número de...

Active Directory

Active Directory é um serviço de diretório desenvolvido pela Microsoft para redes de domínio do Windows. Ele está incluído na maioria dos sistemas...

Diérese

Dieresis pode referir-se...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save