Caractères stabilisateurs comme `<>`, `{}` et `[]`


8

Lorsque la disposition de la langue est remplacée par une langue de droite à gauche; dans certains endroits d'édition standard (par exemple, la barre d'adresse de Google Chrome), des caractères comme <, {et [deviennent 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?


Pourriez-vous ajouter une vitrine avec capture d'écran.
user.dz

1
@Sneetsher: a besoin d'un film. ajouter l'arabe aux langues dans la barre d'adresse de Chrome tapez le caractère <seul. Modifiez ensuite la mise en page en anglais.
nano - me fusionner

Réponses:


8

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 un standard de l' 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:

    1. 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.

      zone de texte vide initiale, direction RTL

    2. Entrée, <mais il a montré que >. 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 moins que signe , donc ... En RTL / arabe, la formule commence par le côté droit, elle doit être inversée. Que pensez-vous ... non? !!!

      zone de texte avec caractère neutre bidi

    3. Saisissez un caractère latin g. C'est un fort caractère L (gauche), donc ce paragraphe est détecté comme LTR.

      zone de texte avec un caractère de gauche fort

    4. Retour arrière à supprimer g. Mais remarquez où se trouve le curseur.

      zone de texte avec caractère neutre bidi après avoir supprimé un caractère de gauche fort

    Maintenant, par exemple [, il a été incorrectement appelé crochet carré gauche . Cela devrait être quelque chose comme un crochet carré ouvert (il est neutre BiDi et retourné en RTL)

Tous les développeurs essaient de suivre les normes. Alors 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)
    
    1. Dans la barre d'adresse vide, Ctrl+ Shift+ u, de petits traits soulignés uapparaissent, entrez 200fpuisEnter

      Entrée Unicode GTK / Gnome

    2. Voir <n'a pas basculé en LTR.

      GTK / Gnome force la direction RTL

    Ctrl+ Shift+ uest 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 Kubuntu .

  • 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 l'anglais américain (touches mortes internationales AltGr)

    1. Ouvrez son xkbfichier de mise en page pour le modifier:

      sudo nano /usr/share/X11/xkb/symbols/us
      
    2. Recherchez la définition de groupe qui porte le même nom:

      xkb_symbols "altgr-intl" {
      
          name[Group1]= "English (international AltGr dead keys)";
      
    3. Regardons comme exemple 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           ] };
      
    4. Mettre à jour xkb

      sudo dpkg-reconfigure xkb-data
      
    5. Basculez vers une autre mise en page puis revenez, elle sera active immédiatement.

    Remarques:

Agréable à lire pour une meilleure compréhension:

Références:


Merci. pour moi, ctrl + shift + u ne fonctionne pas dans KDE. c'est probablement spécifique à l'unité ou au gnome. Ce serait fantastique si certains caractères, par exemple ', [] {}' peuvent se retirer des traitements spécifiques à la direction (et sont toujours reclassés en ltr), afin qu'ils soient plus compatibles avec les symboles du clavier et moins déroutants.
nano - me fusionner

1
Vous avez raison, il ne semble pas être corrigé dans KDE, 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 Kubuntu . Je vais rechercher s'il existe une solution de contournement.
user.dz

@MinimusHeximus, j'ai mis à jour ma réponse avec une solution de contournement d'entrée Unicode en utilisant xkb. Je n'ai que Gnome / Unity. S'il vous plaît, faites-moi savoir si cela ne fonctionne pas dans KDE.
user.dz

1
Semble que je dois utiliser quelque chose comme à la 0x100200Fplace, je ne sais pas si c'est la même chose que U200F.
nano - me fusionner

1
@MinimusHeximus, oui, c'est la même chose " (En fait, cela peut être un moyen plus efficace pour ajouter de nouveaux keysymes.) La valeur Unicode doit être préfixée avec" 0x100 "pour décrire le keysym pour un seul caractère. ", Réf: Wikibooks: Localisation des logiciels libres / Annexe B: Aspects techniques . Merci d'avoir appris de nouvelles choses de vous.
user.dz
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.