Stabilisierende Zeichen wie "<>", "{}" und "[]"

8

Wenn das Sprachlayout von rechts nach links geändert wird; in einigen Standard - Bearbeitungsstellen (zB die Adressleiste von Google Chrome), Zeichen mögen <, {und [automatisch werden >, }und ]nur durch die Sprache das Layout zu ändern.

Gibt es eine Möglichkeit, dies zu verhindern und diese Zeichen stabil zu machen?

Nano - verschmelze mich
quelle
Könnten Sie eine Vitrine mit Screenshot hinzufügen.
user.dz
1
@Sneetsher: braucht einen Film. Fügen Sie Arabisch zu den Sprachen in der Chromium-Adressleiste hinzu. Geben Sie das Zeichen <allein ein. Ändern Sie dann das Layout in Englisch.
Nano - verschmelze mich

Antworten:

8

Ich habe zum ersten Mal nicht verstanden, was du meinst, weil ich mich damit vertraut gemacht habe. Ich denke, es wird in Ordnung sein, wenn Sie Ergebnisse erwarten können.

Dieses Verhalten ist ein Standard des bidirektionalen Unicode-Algorithmus . Die dominante BiDi-Richtung wird also vom ersten starken Charakter im Absatz übernommen.

  • Also, was ich denke, passiert es in diesem Fall:

    1. Die erste Richtung mit leerem Textfeld wird aus der Gebietsschema- / Sprachkonfiguration übernommen. Wie Sie sagten, ist Arabisch eine RTL-Sprache. Also Cursor rechts.

      anfängliches leeres Textfeld, RTL-Richtung

    2. Eingabe <aber es zeigte sich als >. Es ist ein neutrales Zeichen, daher hat dies keinen Einfluss auf die Richtung. Warum wird es umgedreht? Kurze Antwort: Unicode-Standard, :) akzeptiere das trotzdem. Nun, sein Name ist Less-than-Zeichen , also ... In RTL / Arabisch sollte die Formel von rechts beginnen und umgedreht werden. Was denkst du ... nein? !!!

      Textfeld mit bidi-neutralem Zeichen

    3. Geben Sie ein lateinisches Zeichen ein g. Es ist ein starkes L- Zeichen (links), daher wird dieser Absatz als LTR erkannt.

      Textfeld mit starkem linken Zeichen

    4. Rücktaste zum Löschen g. Beachten Sie jedoch, wo sich der Cursor befindet.

      Textfeld mit bidi-neutralem Zeichen nach Entfernen eines starken linken Zeichens

    Nun, zum Beispiel [, wurde es fälschlicherweise als linke eckige Klammer bezeichnet . Es sollte etwas wie eine offene eckige Klammer sein (es ist BiDi-neutral und in RTL umgedreht)

Alle Entwickler versuchen, Standards zu folgen. Heutzutage erzwingen sie, dass das Textfeld RTL oder LTR ist. Auto ist für die meisten Benutzer das Beste.

  • Für Sie ist das Beste, was ich anbieten kann, die Verwendung von Unicode BiDi Control Chars.

    U+200F right-to-left mark (RLM)
    
    1. In der leeren Adressleiste wird Ctrl+ Shift+ ein ukleiner unterstrichener uWert angezeigt. Geben Sie 200fdann einEnter

      GTK / Gnome Unicode-Eingabe

    2. Siehe <nicht als LTR umgedreht.

      GTK / Gnome erzwingen die RTL-Richtung

    Ctrl+ Shift+ uIst GTK / Gnome spezifisch. KDE verpasst eine solche Option und sie scheint nicht behoben zu sein, da in diesem Fehlerbericht der Konflikt zwischen KDE / Qt / Xorg erwähnt wird. Sie müssen beliebige Unicode-Zeichen in Kubuntu einfügen .

  • Da es sich nur um wenige Zeichen handelt, können Sie nicht benötigte Schlüssel neu zuordnen oder nicht verwendete zuordnen. Zum Beispiel verwende ich US-Englisch (internationale AltGr-Totschlüssel)

    1. Öffnen Sie die xkbLayoutdatei zur Bearbeitung:

      sudo nano /usr/share/X11/xkb/symbols/us
      
    2. Suchen Sie nach der gleichnamigen Gruppendefinition:

      xkb_symbols "altgr-intl" {
      
          name[Group1]= "English (international AltGr dead keys)";
      
    3. Schauen wir uns als Beispiel an r(leicht zu merken): AltGr+ r→ RLM, Shift+ AltGr+ r→ LRM. Anstelle von ë& Ë. Ersetzen:

      key <AD04> { [        r, R,           ediaeresis,   Ediaeresis      ] };
      

      Mit:

      key <AD04> { [        r, R,           U200F,        U200E           ] };
      
    4. Aktualisiere xkb

      sudo dpkg-reconfigure xkb-data
      
    5. Wechseln Sie zu einem anderen Layout und dann zurück, es wird sofort aktiv.

    Anmerkungen:

    • Verwenden Sie dieselbe Methode, um sie dem arabischen Layout hinzuzufügen, wenn Sie sie in beiden Layouts verwenden möchten.

    • Sie können U+061C ؜ ‭arabic letter mark (ALM)anstelle von RLM verwenden, da Sie ein arabischer Benutzer sind.

    • xkbunterstützt andere Unicode-Code-Eingabeformate, 0x100200fGl. U200F(dh 0x100als Präfix)

    • Um ein Überschreiben der geänderten Schlüsselzuordnung durch xkb-dataAktualisierungen zu vermeiden , erstellen Sie am besten eine neue benutzerdefinierte XKB-Zuordnung. Siehe Hinzufügen eines neuen Tastaturlayouts (benutzerdefinierte Tastaturlayoutdefinition) oder Welche Schritte sind erforderlich, um unter Ubuntu ein neues Tastaturlayout zu erstellen?

    • Es ist möglich, alle anderen Unicode-Steuerzeichen hinzuzufügen. Einige Anwendungen haben bereits eine Option im Popup-Menü des mehrzeiligen Eingabetextfelds. Beispiel Poedit:

      poedit, bidi Steuerzeichenmenü

Schön zu lesen zum weiteren Verständnis:

Verweise:

user.dz
quelle
Vielen Dank. Für mich funktioniert Strg + Umschalt + U in KDE nicht. wahrscheinlich ist es Einheit oder Gnom spezifisch. Es wäre fantastisch, wenn einige Zeichen, z. B. ', [] {}', richtungsspezifische Behandlungen ablehnen könnten (und immer als ltr eingestuft werden), damit sie besser mit Tastatursymbolen kompatibel und weniger verwirrend sind.
Nano - verschmelze mich
1
Sie haben Recht, es scheint nicht in KDE behoben zu sein, da dieser Fehlerbericht den Konflikt zwischen KDE / Qt / Xorg erwähnt. Sie müssen beliebige Unicode-Zeichen in Kubuntu einfügen . Ich werde suchen, ob es eine Problemumgehung gibt.
user.dz
@MinimusHeximus, ich habe meine Antwort mit einer Unicode-Eingabe-Problemumgehung unter Verwendung von xkb aktualisiert. Ich habe nur Gnome / Einheit. Bitte lassen Sie mich wissen, wenn es in KDE nicht funktioniert.
user.dz
1
Scheint, als müsste ich 0x100200Fstattdessen so etwas verwenden, ich weiß nicht, ob es dasselbe ist wie U200F.
Nano - Merge mich
1
@MinimusHeximus, ja, es ist dasselbe " (Tatsächlich kann dies eine effektivere Methode zum Hinzufügen neuer Keysyms sein.) Dem Unicode-Wert muss" 0x100 "vorangestellt werden, um das Keysym für ein einzelnes Zeichen zu beschreiben. ", Ref: Wikibooks: FOSS-Lokalisierung / Anhang B: Technische Aspekte . Danke, ich habe neue Dinge von dir gelernt.
user.dz