Estabilizando caracteres como `<>`, `{}` y `[]`

8

Cuando el diseño del idioma se cambia a un idioma de derecha a izquierda; en algunos lugares de edición estándar (por ejemplo, la barra de direcciones de Google Chrome), personajes como <, {y [se convierten de forma automática >, }y ]con sólo cambiar el diseño del lenguaje.

¿Hay alguna manera de evitar esto y hacer que estos personajes sean estables?

nano - fusionarme
fuente
¿Podría agregar un escaparate con captura de pantalla?
user.dz
1
@Sneetsher: necesita una película. agregar árabe a los idiomas en la barra de direcciones de Chromium, escriba el carácter <solo. Luego cambie el diseño a inglés.
nano - fusionarme

Respuestas:

8

No entendí lo que quieres decir por primera vez, porque me familiaricé con eso. Creo que estará bien, si puede esperar resultados.

Ese comportamiento es un estándar del Algoritmo bidireccional Unicode . Entonces, la dirección dominante de BiDi se toma del primer carácter fuerte en el párrafo.

  • Entonces, lo que creo que sucede en este caso:

    1. La primera dirección con el cuadro de texto vacío se toma de la configuración regional / de idioma. Como dijiste, el árabe es un idioma RTL. Entonces cursor a la derecha.

      cuadro de texto vacío inicial, dirección RTL

    2. Entrada <pero se mostró como >. Es un carbón neutral, por lo que no afecta la dirección. ¿Por qué se voltea? Respuesta corta: estándar Unicode, :) acepta eso de todos modos. Bueno, su nombre es Menos que signo , así que ... En RTL / Árabe, el comienzo de la fórmula desde el lado derecho, debe invertirse. ¿Qué te parece ... no?

      cuadro de texto con carácter bidi neutral

    3. Ingrese un carácter latino g. Es un fuerte L (izquierda), por lo que este párrafo se detecta como LTR.

      cuadro de texto con carácter fuerte a la izquierda

    4. Retroceso para eliminar g. Pero fíjate dónde está el cursor.

      cuadro de texto con carácter bidi neutral después de eliminar un carácter izquierdo fuerte

    Ahora, por ejemplo [, se llamó erróneamente corchete izquierdo . Debería ser algo así como el corchete abierto (es neutral BiDi y volteado en RTL)

Todos los desarrolladores intentan seguir los estándares. Así que de ninguna manera forzarán que el cuadro de texto sea RTL o LTR, Auto es lo mejor para la mayoría de los usuarios.

  • Entonces, para usted, lo mejor que puedo ofrecerle es usar Unicode BiDi Control Char's.

    U+200F right-to-left mark (RLM)
    
    1. En la barra de direcciones vacía, Ctrl+ Shift+ u, uaparece un pequeño subrayado , ingrese 200fluegoEnter

      Entrada Unicode GTK / Gnome

    2. Ver <no se volteó como LTR.

      GTK / Gnome force Dirección RTL

    Ctrl+ Shift+ ues específico de GTK / Gnome. KDE pierde esa opción y parece que no se ha solucionado, ya que este informe de error menciona el conflicto entre KDE / Qt / Xorg. Necesita una forma de insertar caracteres Unicode arbitrarios en Kubuntu .

  • Como se trata solo de unos pocos caracteres, puede reasignar las claves no necesarias o asignar las no utilizadas. Por ejemplo, estoy usando inglés de EE. UU. (Claves inactivas AltGr internacionales)

    1. Abra su xkbarchivo de diseño para editar:

      sudo nano /usr/share/X11/xkb/symbols/us
      
    2. Busque la definición de grupo que con el mismo nombre:

      xkb_symbols "altgr-intl" {
      
          name[Group1]= "English (international AltGr dead keys)";
      
    3. Veamos como ejemplo r(fácil de recordar): AltGr+ r→ RLM, Shift+ AltGr+ r→ LRM. En lugar de ë& Ë. Reemplazar:

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

      Con:

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

      sudo dpkg-reconfigure xkb-data
      
    5. Cambie a otro diseño y luego regrese, estará activo de inmediato.

    Notas:

Agradable de leer para una mejor comprensión:

Referencias

user.dz
fuente
Gracias. para mí ctrl + shift + u no funciona en KDE. probablemente es unidad o gnomo específico. Sería fantástico si algunos caracteres, por ejemplo ', [] {}' pueden optar por no recibir tratamientos específicos de la dirección (y siempre se vuelven a clasificar como ltr), de modo que sean más compatibles con los símbolos del teclado y sean menos confusos.
nano - fusionarme
1
Tienes razón, parece que no está arreglado en KDE, ya que este informe de error menciona el conflicto entre KDE / Qt / Xorg. Necesito una forma de insertar caracteres unicode arbitrarios en Kubuntu . Buscaré si hay alguna solución.
user.dz
@MinimusHeximus, actualicé mi respuesta con la solución de entrada Unicode usando xkb. Solo tengo Gnome / Unity. Por favor, avíseme si no funciona en KDE.
user.dz
1
Parece que tengo que usar algo como 0x100200F, no sé si es lo mismo que U200F.
nano - fusionarme
1
@MinimusHeximus, sí, es lo mismo " (De hecho, esta puede ser una forma más efectiva de agregar nuevos símbolos de clave). El valor Unicode debe tener el prefijo" 0x100 "para describir el símbolo de clave para un solo carácter " . Ref: Wikilibros: Localización de software libre / Anexo B: Aspectos técnicos . Gracias, aprendí cosas nuevas de ti.
user.dz