Texte bidirectionnelCertains 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 occidental 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’écritureCela 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. Prise en charge de l’écriture bidirectionnelleLa prise en charge de l’écriture bidirectionnelle (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 UnicodeLes niveauxLes morceaux de textes sont numérotés en fonction de leur niveau d’imbrication. Le niveau 0 est celui de l’écriture du texte dans sa langue principale depuis le début du texte, par exemple en français écrit de gauche à droite, le niveau 1 est du simple texte quand son écriture doit changer de direction (par exemple passer du français à l'arabe), possiblement embarqué à l’intérieur de texte français de niveau 0. Le niveau 2 est quand le texte embarqué à l’intérieur de texte arabe de niveau 1 s'écrit à nouveau dans la direction initiale, 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. Par exemple, en notant par des lettres latines majuscules le texte de droite à gauche (ÉCRIT EN ARABE) et par des minuscules le texte de gauche à droite (comme du français ou du catalan écriture latine), sans tenir compte de la casse du texte réel :
Les caractères neutres (espaces) entre les caractères écrits dans la même direction (dans « un texte » ou dans « ÉCRIT EN ARABE » ou dans « et en français ») prennent par défaut le niveau des caractères les entourant. Quand des caractères neutres figurent entre des caractères de direction différente, ils adoptent la direction des caractères de niveau inférieur. Caractères en miroirCertains caractères apparaissent dans leur forme miroir lorsqu’ils sont écrits de droite à gauche. Par exemple, la parenthèse gauche Contrôle de la direction d'écritureDes marques directionnelles peuvent être ajoutées autour des caractères neutres, afin d’en changer leur effet : par exemple pour forcer un caractère à prendre une direction donnée, ou pour marquer explicitement le début et la fin d'une séquence encapsulée qui doit conserver sa direction interne propre, indépendamment de la direction du texte placé avant ou après : de tels textes encapsulés sont appelés des « isolats bidirectionnels »), le texte écrit après n'est pas altéré par le texte encapsulé (notamment les caractères pouvant être écrits en miroir, ou les ponctuations séparatrices d'éléments dans une liste dont les éléments inclus peuvent être dans des écritures différentes et ne doivent pas être réordonnés en plusieurs parties). Alors que le sens d’écriture est le plus souvent détecté automatiquement, des marques de contrôle sont prévues afin de pouvoir changer le sens d’écriture.
Généralement, le forçage ou l'enchâssement de direction n'est pas recommandé et on lui préfère le plus souvent les isolats directionnels, notamment dans les listes d'éléments dont les écritures sont variables (ou encore pour encapsuler un texte écrit dans une langue quelconque), mais qui doivent préserver un même ordre logique pour la liste complète et pour éviter des coupures indésirables (par exemple dans des noms propres de personnes, des toponymes, des marques commerciales ou des noms d'œuvre). Le même effet peut aussi être induit dans des textes en balisage enrichi, par exemple en HTML au moyen d'éléments comme Voir aussiLiens externes
Articles connexes |