Stabilizzazione di caratteri come `<>`, `{}` e `[]`


8

Quando il layout della lingua viene modificato in una lingua da destra a sinistra; in alcuni luoghi di modifica standard (ad esempio, la barra degli indirizzi di Google Chrome), personaggi come <, {e [diventano automaticamente >, }e ]semplicemente cambiando il layout lingua.

C'è un modo per impedirlo e rendere stabili questi personaggi?


Potresti aggiungere una vetrina con screenshot.
user.dz

1
@Sneetsher: ha bisogno di un film. aggiungi l'arabo alle lingue nella barra degli indirizzi di Chromium digita il carattere <da solo. Quindi cambia il layout in inglese.
nano -

Risposte:


8

Non ho capito cosa intendi per la prima volta, perché ne ho familiarità. Penso che andrà bene, se puoi aspettarti risultati.

Tale comportamento è uno standard dell'algoritmo bidirezionale Unicode . Quindi la direzione dominante di BiDi è presa dal primo carattere forte nel paragrafo.

  • Quindi quello che penso succede in questo caso:

    1. La prima direzione con casella di testo vuota è presa dalla configurazione di lingua / lingua. Come hai detto, l'arabo è una lingua RTL. Quindi cursore a destra.

      casella di testo vuota iniziale, direzione RTL

    2. Input <ma ha mostrato come >. È un carattere neutro, quindi non influisce sulla direzione. Perché è capovolto? Risposta breve: standard Unicode :) accettalo comunque. Beh, il suo nome è segno meno di , quindi ... In RTL / arabo, la formula inizia dal lato destro, dovrebbe essere capovolta. Cosa ne pensi ... no? !!!

      casella di testo con carattere bidi neutro

    3. Inserisci un carattere latino g. È un carattere L (sinistro) forte , quindi questo paragrafo viene rilevato come LTR.

      casella di testo con forte carattere a sinistra

    4. Backspace da eliminare g. Ma nota dove si trova il cursore.

      casella di testo con carattere bidi neutro dopo aver rimosso un carattere forte a sinistra

    Ora, ad esempio [, è stato erroneamente chiamato parentesi quadra sinistra . Dovrebbe essere qualcosa come la parentesi quadra aperta (è neutra BiDi e capovolta in RTL)

Tutti gli sviluppatori cercano di seguire gli standard. Quindi oggi costringeranno la casella di testo a essere RTL o LTR, Auto è il migliore per la maggior parte degli utenti.

  • Quindi, per te, la cosa migliore che posso offrire è usare Unicode BiDi Control Char's.

    U+200F right-to-left mark (RLM)
    
    1. Nella barra degli indirizzi vuota, Ctrl+ Shift+ u, uappare una piccola sottolineatura , 200fquindi inserisciEnter

      Ingresso Unicode GTK / Gnome

    2. Vedere <non capovolto come LTR.

      GTK / Gnome force RTL direction

    Ctrl+ Shift+ uè specifico per GTK / Gnome. KDE manca per tale opzione e sembra non essere risolto, poiché questo bug report menziona il conflitto tra KDE / Qt / Xorg È necessario un modo per inserire caratteri Unicode arbitrari in Kubuntu .

  • Dato che si tratta solo di pochi caratteri, è possibile rimappare le chiavi non necessarie o mappare quelle non utilizzate. Ad esempio, sto usando l'inglese americano (chiavi morte internazionali AltGr)

    1. Apri il suo xkbfile di layout per la modifica:

      sudo nano /usr/share/X11/xkb/symbols/us
      
    2. Cerca la definizione di gruppo che con lo stesso nome:

      xkb_symbols "altgr-intl" {
      
          name[Group1]= "English (international AltGr dead keys)";
      
    3. Guardiamo come esempio per r(facile da ricordare) ,: AltGr+ r→ RLM, Shift+ AltGr+ r→ LRM. Invece di ë& Ë. Sostituire:

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

      Con:

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

      sudo dpkg-reconfigure xkb-data
      
    5. Passa a un altro layout, quindi torna indietro, sarà immediatamente attivo.

    Appunti:

Bello da leggere per ulteriore comprensione:

Riferimenti:


Grazie. per me ctrl + maiusc + u non funziona in KDE. probabilmente è unità o gnomo specifico. Sarebbe fantastico se alcuni personaggi, ad esempio ', [] {}', potessero rinunciare ai trattamenti specifici della direzione (e siano sempre classificati come LTR), in modo che siano più compatibili con i simboli della tastiera e meno confusi.
nano -

1
Hai ragione, sembra che non sia stato corretto in KDE, poiché questa segnalazione di bug menziona il conflitto tra KDE / Qt / Xorg È necessario un modo per inserire caratteri Unicode arbitrari in Kubuntu . Cercherò se c'è qualche soluzione alternativa.
user.dz,

@MinimusHeximus, ho aggiornato la mia risposta con la soluzione di input Unicode usando xkb. Ho solo Gnome / Unity. Per favore, fammi sapere se non funziona in KDE.
user.dz

1
Sembra che devo usare qualcosa del genere 0x100200F, invece, non so se sia lo stesso di U200F.
nano -

1
@MinimusHeximus, sì, è lo stesso " (In effetti, questo potrebbe essere un modo più efficace per aggiungere nuovi keysyms.) Il valore Unicode deve essere preceduto da" 0x100 "per descrivere il keysym per un singolo carattere. ", Rif: Wikibooks: Localizzazione FOSS / Allegato B: Aspetti tecnici . Grazie ho imparato cose nuove da te.
user.dz
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.