- Texte bidirectionnel
-
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.
Sommaire
Systèmes d’écriture
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
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 navigateurs 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
Les niveaux
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
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écimal200F
.D’autres marqueurs existent, en particulier entre les valeurs
202A
et202E
.Caractères miroir
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
Articles connexes
- Localisation de logiciel
- Wikipédia:Unicode/Test/hébreu
- Wikipédia: Unicode/Test/arabe
Liens externes
- (en) Unicode Standards Annex #9 - The Bidirectional Algorithm
- (en) W3C guidelines on authoring techniques for bi-directional text - includes examples and good explanations
- (en) GNU FriBiDi - An implementation of the Unicode bidirectional algorithm
- (en) International Components for Unicode (ICU) contains an implementation of the bidirectional algorithm — along with other internationalization services
- (en) UCData : "Pretty Good Bidi Algorithm Library" A small and fast bidirectional reordering algorithm that works pretty good, but not necessarily compliant to the Unicode algorithm
- (en) Bidirectional Scripts in Desktop Software Working group for supporting BiDi in Free Software. Contains several links to readings and implementation regarding BiDi in computer systems.
- (en) Another Wiki about BiDi
Wikimedia Foundation. 2010.