J’ai rejoint la liste de diffusion Unicode pour proposer un ajout à Unicode qui serait une solution dans des cas comme celui-ci. L’une des réponses que j’ai reçues était la suivante :
(Moi
Le problème est que ce remplacement est effectué (pour autant que je sache) en dehors de tout contexte de rendu, lorsque le texte n’est qu’une séquence de codes de caractères. Il n’est pas raisonnable de savoir dans quelle direction va le texte. Parfois, c’est complètement impossible, si la direction du texte dépend d’un contexte qui n’est pas disponible au moment du remplacement.
Ce qui précède est, à strictement parler, inexact. Tout rendu de texte sérieux de nos jours nécessite un moteur de mise en forme, tel que HarfBuzz, et la ligature de « - > » en « → » serait effectuée par un tel moteur en coopération avec une police qui prend en charge les ligatures. Le moteur de mise en forme est conscient du contexte bidi et du script du texte qu’il met en forme, il pourrait donc en principe refléter la flèche.
Ils parlent de quelque chose comme ceci : GitHub - tonsky/FiraCode: Free monospaced font with programming ligatures
Envisagez de passer à l’approche de la ligature au lieu d’un remplacement aveugle de caractères. Un autre avantage discutable serait que, lors d’un copier-coller, le texte serait toujours « - > » au lieu d’une flèche.
Je n’ai pas examiné les détails techniques de la mise en œuvre, je vous laisse cela si vous choisissez d’utiliser cette solution.
Edit : eh bien, sans surprise, Fira Text en particulier n’est pas conçu pour le RTL, donc le rendu est incorrect - mais au moins il pointe dans la bonne direction ! https://fonts.google.com/specimen/Fira+Code?preview.text=A%20->%20B,%20א%20->%20ב
Firefox :
Je ne suis pas sûr qu’il existe aujourd’hui une police qui fasse cela correctement et qui prenne explicitement en charge le RTL/bidi.
