Lorsque la disposition de la langue est remplacée par une langue de droite à gauche; dans certains emplacements d'édition standard (par exemple, la barre d'adresse de Google Chrome), des caractères comme <
, {
et [
devient automatiquement >
, }
et ]
simplement en changeant la disposition de la langue.
Existe-t-il un moyen d'empêcher cela et de rendre ces personnages stables?
Je n'ai pas compris ce que vous voulez dire pour la première fois, car je me suis familiarisé avec cela. Je pense que ce sera OK, si vous pouvez vous attendre à des résultats.
Ce comportement est une norme de Algorithme bidirectionnel Unicode . Ainsi, la direction BiDi dominante est tirée du premier caractère fort du paragraphe.
Donc, ce que je pense que cela se produit dans ce cas:
La première direction avec une zone de texte vide est tirée de la configuration locale/langue. Comme vous l'avez dit, l'arabe est une langue RTL. Alors curseur à droite.
Saisissez <
Mais il s'affiche sous la forme >
. C'est un caractère neutre donc aucun effet sur la direction. Pourquoi est-il retourné? Réponse courte: norme Unicode, :) acceptez cela quand même. Eh bien, son nom est signe inférieur à , donc ... En RTL/arabe, la formule commence par le côté droit, elle doit être inversée. Que pensez-vous ... non? !!!
Saisissez un caractère latin g
. C'est un fort [~ # ~] l [~ # ~] (gauche) caractère, donc ce paragraphe est détecté comme LTR.
Retour arrière pour supprimer g
. Mais remarquez où se trouve le curseur.
Maintenant, exemple [
, Il a été mal nommé crochet carré gauche . Cela devrait être quelque chose comme Ouvrir le crochet carré (Il est neutre BiDi et retourné en RTL)
Tous les développeurs essaient de suivre les normes. Donc, maintenant, ils forceront la zone de texte à être RTL ou LTR, Auto est le meilleur pour la plupart des utilisateurs.
Donc, pour vous, la meilleure chose que je puisse offrir est d'utiliser les caractères de contrôle Unicode BiDi.
U+200F right-to-left mark (RLM)
Dans la barre d'adresse vide, Ctrl+Shift+u, un petit u
apparaît, entrez 200f
puis Enter
Voir <
N'a pas été retourné en LTR.
Ctrl+Shift+u est spécifique à GTK/Gnome. KDE manque une telle option et elle ne semble pas être corrigée, car ce rapport de bogue mentionne le conflit entre KDE/Qt/Xorg Besoin d'un moyen d'insérer des caractères Unicode arbitraires dans Kubunt .
Comme il ne s'agit que de quelques caractères, vous pouvez remapper les clés non nécessaires ou mapper celles qui ne sont pas utilisées. Par exemple, j'utilise Anglais américain (touches mortes internationales AltGr)
Ouvrez son fichier de mise en page xkb
pour le modifier:
Sudo nano /usr/share/X11/xkb/symbols/us
Recherchez la définition de groupe qui porte le même nom:
xkb_symbols "altgr-intl" {
name[Group1]= "English (international AltGr dead keys)";
Regardons comme exemple pour r
(facile à retenir) ,: AltGr+r → RLM, Shift+AltGr+r → LRM. Au lieu de ë
& Ë
. Remplacer:
key <AD04> { [ r, R, ediaeresis, Ediaeresis ] };
Avec:
key <AD04> { [ r, R, U200F, U200E ] };
Mettre à jour xkb
Sudo dpkg-reconfigure xkb-data
Basculez vers une autre mise en page puis revenez, elle sera active immédiatement.
Remarques:
Utilisez la même méthode pour les ajouter à la mise en page arabe, si vous souhaitez pouvoir l'utiliser à partir des deux mises en page.
Vous pouvez utiliser U+061C arabic letter mark (ALM)
au lieu de RLM car vous êtes un utilisateur arabe.
xkb
prend en charge d'autres formats d'entrée de code Unicode, 0x100200f
éq. U200F
(C'est-à-dire 0x100
Comme préfixe)
Pour éviter d'écraser le mappage de clés modifié par les mises à jour de xkb-data
, Le mieux est de créer un nouveau mappage XKB personnalisé. Voir Comment ajouter une nouvelle disposition de clavier (définition de disposition de clavier personnalisée) ou Quelles sont les étapes nécessaires pour créer une nouvelle disposition de clavier sur ubuntu?
Il est possible d'ajouter tous les autres caractères de contrôle Unicode. Certaines applications ont déjà une option dans le menu contextuel de la zone de texte de saisie multiligne. Exemple Poedit:
Agréable à lire pour une meilleure compréhension:
Références:
Comment entrer un Unicode non disponible sur le clavier, voir Impossible de taper "ć" sur la mise en page hongroise
0x100
)