Стабилизирующие символы, такие как `< > `,` {} `и` [] `

Когда языковая раскладка изменяется на язык справа налево; в некоторых стандартных местах редактирования (например, в адресной строке Google Chrome) такие символы, как <, { и [, автоматически становятся >, } и ] просто путем изменения языковой раскладки.

Есть ли способ предотвратить это и сделать этих персонажей стабильными?

8
задан 17.05.2020, 13:00

1 ответ

1178 Я не понял, что вы имеете в виду в первый раз, потому что я познакомился с этим. Я думаю, что все будет хорошо, если вы можете ожидать результатов.

Такое поведение является стандартом из Двунаправленного алгоритма Unicode . Таким образом, доминирующее направление BiDi взято из первого сильного символа в абзаце.

  • Так что я думаю, что это происходит в этом случае:

    1. Первое направление с пустым текстовым полем взято из конфигурации локали / языка. Как вы сказали, арабский язык - это язык RTL. Итак, курсор справа.

      initial empty textbox, RTL direction

    2. Вход <, но он показан как >. Это нейтральный символ, поэтому не влияет на направление. Почему это перевернуто? Краткий ответ: стандарт Unicode, :) все равно прими Ну, его зовут Знак «меньше» , так что ... В RTL / арабском языке формула начинается с правой стороны, ее следует перевернуть. Как вы думаете ... нет? !!!

      textbox with bidi neutral character

    3. Введите латинский символ g. Это сильный L (слева) символ, поэтому этот абзац определяется как LTR.

      textbox with strong left character

    4. Забой для удаления g. Но обратите внимание, где курсор.

      textbox with bidi neutral character after removing a strong left character

    Теперь, например, [, его неверно назвали Левая квадратная скобка . Это должно быть что-то вроде Открытая квадратная скобка (Биди нейтральна и перевернута в RTL)

Все разработчики стараются следовать стандартам. Так что в настоящее время они заставят текстовое поле быть RTL или LTR, Auto является лучшим для большинства пользователей.

  • Поэтому для вас лучшее, что я могу предложить, - это использовать Unicode BiDi Control Char.

    U+200F right-to-left mark (RLM)
    
    1. В пустой адресной строке Ctrl + Shift + u , подчеркнуты маленьким подчеркиванием u, показано вверх, введите 200f, затем Enter

      GTK/Gnome Unicode input

    2. См. < не перевернулся как LTR.

      GTK/Gnome force RTL direction

    Ctrl + Shift + u - GTK / Гном специфичен. В KDE отсутствует такая опция, и, похоже, она не исправлена, поскольку в этом отчете об ошибке упоминается конфликт между KDE / Qt / Xorg Нужен способ вставки произвольных символов Юникода в Kubuntu .

  • Так как это всего лишь несколько символов, вы можете переназначить ненужные ключи или отобразить неиспользуемые ключи. Например, я использую американский английский (международные мертвые клавиши AltGr)

    1. Откройте его файл макета xkb для редактирования:

      sudo nano /usr/share/X11/xkb/symbols/us
      
    2. Найдите определение группы с тем же именем:

      xkb_symbols "altgr-intl" {
      
          name[Group1]= "English (international AltGr dead keys)";
      
    3. Давайте рассмотрим пример для r (легко запомнить) :: AltGr + r & rarr; RLM, Shift + AltGr + r & rarr; LRM. Вместо ë & amp; Ë. Заменить:

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

      на:

      key <AD04> { [        r, R,           U200F,        U200E           ] };
      
    4. Обновить xkb

      sudo dpkg-reconfigure xkb-data
      
    5. Перейти к другому макету, а затем назад, он будет активен немедленно.

    Примечания:

Приятно читать для дальнейшего понимания:

Ссылки :

8
ответ дан 17.05.2020, 13:01
  • 1
    Кажется, что я должен использовать что-то как 0x100200F вместо этого, я don' t знают, совпадает ли это с U200F. – Mauricio Gracia Gutierrez 17.05.2020, 13:01
  • 2
    спасибо. для меня ctrl+shift + u не работает в KDE., вероятно, it' s единица или конкретный гном. It' d фантастический, если некоторые символы, например, ' [] {} ' может выбрать из направления определенные обработки (и всегда повторно градуируются как буква), так, чтобы они были более совместимы с клавиатурными символами и менее сбивали с толку. – jsim 17.05.2020, 13:02
  • 3
    @MinimusHeximus, да, это - тот же " (На самом деле, это может быть более эффективным путем к добавлению нового keysyms.) Значение Unicode должно быть снабжено префиксом " 0x100" описать keysym для отдельного символа. " Касательно: Викиучебник: FOSS Localization/Annex B: Технические аспекты . Спасибо я изучил новые вещи от Вас. – diemo 17.05.2020, 13:02
  • 4
    Вы правы, Это, кажется, не фиксируется в KDE как это упоминание отчета об ошибках конфликт между Потребностью KDE/Qt/Xorg способ вставить произвольные unicode символы в Kubuntu. Я буду искать, если будет какое-либо обходное решение. – Brian DiCasa 17.05.2020, 13:02
  • 5
    @MinimusHeximus, я обновил свой ответ с входным обходным решением Unicode с помощью xkb. У меня есть только Gnome/единица. Сообщите мне если это doesn' t работают в KDE. – Ievgen 17.05.2020, 13:03

Теги

Похожие вопросы