Texte bidirectionnel

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Crystal Clear app fonts.svg Cette page contient des caractères spéciaux ou non latins. Si certains caractères de cet article s’affichent mal (carrés vides, points d’interrogation…), consultez la page d’aide Unicode.

Certains systèmes d’écritures, tels que l’alphabet arabe et hébreu, s’écrivent de droite à gauche (Right-To-Left, RTL, en anglais). Dans ce cas, le texte commence du côté droit de la page et se termine du côté gauche, au contraire du sens d’écriture conventionnel de gauche à droite (Left-To-Right, LTR) des langues utilisant l’alphabet latin (telles que le français). Lorsqu’un texte LTR est mélangé avec un texte RTL dans le même paragraphe, chaque type de texte doit être écrit dans son propre sens, phénomène connu sous le nom de texte bidirectionnel.

Systèmes d’écriture[modifier | modifier le code]

Cela peut devenir relativement complexe, lorsque plusieurs niveaux de citations sont utilisés. La plupart des systèmes d’écriture originaires de Moyen-Orient sont de cette nature. Par exemple, le nom hébreu Sarah (שרה) doit être épelé shin (ש), resh (ר), heh (ה) de droite à gauche.

Très peu d’écritures peuvent être écrites dans les deux sens. C’était le cas des hiéroglyphes égyptiens, où l’on employait un hiéroglyphe « tête », orientée dans le sens de lecture, marquant le début d’une ligne, et un hiéroglyphe « queue » pour marquer la fin. L’orientation des hiéroglyphes renseigne sur le sens de lecture : les figures (par exemple les oiseaux) « regardent » en effet vers le début de la ligne.

Certaines inscriptions grecques, touaregs, et runiques hongroises ont utilisé un système original, appelé boustrophédon, dans lequel le sens de lecture est inversé à chaque ligne.

Support d’écriture bidirectionnel[modifier | modifier le code]

Le support d’écriture bidirectionnel (en anglais bidirectional script support) est la capacité d’un logiciel à afficher correctement le texte bidirectionnel. Dans le jargon informatique, on abrège ce terme par BiDi ou bidi. Peu de logiciels affichent correctement les textes bidirectionnels. Certains navigateur web peuvent afficher le texte hébreu de cet article en sens inverse.

Les premiers systèmes informatiques étaient conçus pour ne prendre en charge qu’un unique sens d’écriture, en particulier le sens LTR (ainsi qu’une unique fonte basée sur l’ASCII et l’alphabet latin). L’ajout de nouveaux jeux de caractères et d’encodages a permis le support d’autres écritures de gauche à droite, mais peu aisément de droite à gauche, par exemple pour l’arabe ou l’hébreu, et le mélange des deux irréalisable. Le support bidirectionnel a permis d’utiliser les deux sens d’écriture dans une même page, voire dans un même paragraphe.

En particulier, le standard Unicode fournit des bases pour un support BiDi complet, avec des règles détaillées définissant comment doivent être enchaînés les textes de droite à gauche et de gauche à droite pour leur codage et affichage. En codage Unicode, tous les caractères sont stockés dans l’ordre d’écriture, et le logiciel trouve dans quelle direction le texte doit être affiché.

Subtilités techniques en Unicode[modifier | modifier le code]

Les niveaux[modifier | modifier le code]

Les morceaux de textes sont numérotés en fonction de leur niveau d’imbrication. Le niveau 0 est du simple texte français, le niveau 1 est du simple texte arabe, possiblement embarqué à l’intérieur de texte français de niveau 0. Le niveau 2 est du texte français, possiblement embarqué à l’intérieur de texte arabe de niveau 1, et ainsi de suite.

Sauf exceptions, le texte et les nombres français seront toujours d’un niveau pair ; les textes arabes (à l’exception des nombres) seront d’un niveau impair.

Exemple

En notant par des majuscules le texte de droite à gauche (arabe), et par des minuscules, le texte de gauche à droite (comme le français, ou le catalan).

Représentation mémoire : un texte TEXTE ARABE en français
Types des caractères  :  LL-LLLLL-RRRRR-RRRRR-LL-LLLLLLLL
Niveau :                 00000000011111111111000000000000

Les caractères neutres (espaces) entre TEXTE et ARABE prennent par défaut le niveau des caractères les entourant. Des marques directionnelles peuvent être ajoutées autour des caractères neutres, afin d’en changer leur effet.

Marques de sens d’écriture[modifier | modifier le code]

Alors que le sens d’écriture est détecté automatiquement, des marques de contrôle sont prévues afin de pouvoir changer le sens d’écriture.

Le marqueur de gauche à droite a le code hexadécimal 200E. Le marqueur de droite à gauche a le code hexadécimal 200F.

D’autres marqueurs existent, en particulier entre les valeurs 202A et 202E.

Caractères miroir[modifier | modifier le code]

Certains caractères apparaissent dans leur forme miroir lorsqu’ils sont écrits de droite à gauche.

Par exemple, la parenthèse gauche U+0028 qui est interprétée par le standard Unicode comme une parenthèse ouvrante apparaît comme « ( » quand elle est résolue en tant que paire, et comme son glyphe miroir « ) », lorsqu’elle est considérée comme impaire.

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]