Mahou icon indicating copy to clipboard operation
Mahou copied to clipboard

Неправильная конвертация символа ñ (испанский->русский)

Open Winand opened this issue 4 years ago • 11 comments

Mahou 2.9.0.1 d2f32d6 Конфигурация Mahou.ini.gz

Я использую следующую конфигурацию языков (чтобы по Alt-Tab переключать только две раскладки):

  • русский
  • английский
    • раскладка США
    • раскладка Испанская

image

Проблема состоит в том, что конвертация из раскладки США происходит верно, а из испанской нет

  1. (en) jkl; -> олдж
  2. (es) jklñ -> олдё
  3. (es) º -> \ (должно быть ё)

Winand avatar Aug 11 '21 13:08 Winand

@Winand Это необычная проблема...

Коды клавиш у Испанской раскладки изменены(отличаются от русской и английской), и поэтому для Mahou это выглядит так как будто ты "реально нажимаешь другие клавиши", а не те что "изменены их коды". Т.е. когда нажимаешь ё в русской/английской раскладке её код - 192, а в испанской - 220. Из-за этого проблема, при вводе на испанской Mahou запоминает клавиши "как нажимались на испанской раскладке", с изменённым расположением, а потом при вводе этих же клавиш на русскую "они не подходят" т.к. они по другому расположены в русской.

Сейчас попробую что-то придумать...

BladeMight avatar Aug 11 '21 14:08 BladeMight

@Winand Добавил в eb6a31e, теперь можно указывать отличия кодов клавиш(соответственно к обычным QWERTY, En-US/Русской и т.д.) для каждой раскладки через файл LayoutKeyCodeReplace.txt, см. wiki.

Для полноценной правильной работы замен в конвертациях последнего слова/линии/слов - LayoutKeyCodeReplace.txt достаточно с таким содержанием:

>1034
[221]=[187]
[192]=[186],[186]=[219],[219]=[189],[189]=[191],[191]=[220],[220]=[192]
<1034

Для конвертации выделенного текста нужен другой подход, т.к. там конвертация идёт по символам можно использовать Исправление для QWERTZ клавиатур и таким LayoutReplaces.txt будет для Русской/Испанской раскладок:

Ñ|Ж
Ж|Ñ
ñ|ж
ж|ñ
ª|Ё
Ё|ª
º|ё
ё|º
?|_
_|?
¿|+
+|¿
Ç|/
/|ç
-|'
'|-
¡|=
=|¡
ç|\
\|ç
+|ъ
ъ|+
`|х
х|`
*|Ъ
Ъ|*

подробнее см. Wiki

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

Также символ акцента ``` в испанской раскладке проблемный для конвертации выделения т.к. он не печатает "символа", а в русской "х" печатается так что при конвертации выделения нужно учитывать это и поставить какую-то правильную замену чтобы избежать потери символа "х" после второй конвертации этого выделенного текста.

Также можно настроить и автозамену для испанской(хотя для испанского даже словарей нет... пока есть только рус./англ.), но это посложнее... в основном из-за необычности замен клавиш, они в испанской раскладке заменены не A<=>Z, а A=>Z=>X=>C=>V=>A, т.е. цикл побольше чем просто 2 клавиши.

BladeMight avatar Aug 11 '21 18:08 BladeMight

Да.. OEM клавиши у разных раскладок в разных местах находятся ES, US

Установил 9610fb8. Коды меняются только при переводе из испанской. А обратно? Сейчас так: º → ё ⇝ ñ → ж ⇝ → х ⇝ ' → - ⇝ - → . ⇝ ç → \ ⇝ º

Winand avatar Aug 11 '21 20:08 Winand

esp

BladeMight avatar Aug 11 '21 20:08 BladeMight

Может в моей конфигурации что-то иначе настроено? hog

Содержимое LayoutKeyCodeReplace.txt

>1034
[221]=[187]
[192]=[186],[186]=[219],[219]=[189],[189]=[191],[191]=[220],[220]=[192]
<1034

Winand avatar Aug 11 '21 20:08 Winand

@Winand Ну не знаю... У меня похожим образом работает если вообще убрать испанскую раскладку из системы, но оставить в настройках Mahou.ini при включенном "Переключать между раскладками" и одной из раскладок Испанск.

Попробуй Включить "Переключать между раскладками" и поставь 2 раскладки в Испанскую и Русскую, применить и проверить.

BladeMight avatar Aug 11 '21 20:08 BladeMight

Вот почти полностью со стандартными настройками даже работает, только включил Переключать между раскладками и раскладки 1 и 2 настроил на рус./исп. (хотя у меня он и так работает нормально): bundle.zip

BladeMight avatar Aug 11 '21 21:08 BladeMight

Да, теперь я понимаю. У меня такие настройки: image

Но весь смысл в том, чтобы переключаться и между англ/рус и между исп/рус. В зависимости от того, какую из иностранных раскладок я выбрал последней. И для большей части клавиш mahou с этой задачей справляется:)

Winand avatar Aug 11 '21 21:08 Winand

Но весь смысл в том, чтобы переключаться и между англ/рус и между исп/рус. В зависимости от того, какую из иностранных раскладок я выбрал последней.

Но Mahou види ВСЕ раскладки поэтому он будет переключать между всеми если эта галочка не включена, и у меня так тоже работает нормально, т.к. эти правила подмены кодов срабатывают когда раскладка меняется "НА" и "С" раскладки 1034, т.е. испанской.

BladeMight avatar Aug 11 '21 21:08 BladeMight

Если эмулируется Alt+Shift, как я понимаю, переключение происходит так же как в Windows. У меня специально добавлен один иностранный язык с двумя раскладками, чтобы переключение происходило между русской и одной иностранной раскладкой (которую надо мышкой выбрать в языковой панели в системном трее или через хоткеи). Увы, в mahou выбирается жёстко только две раскладки, и я обхожу это через флажок эмуляции Alt-Shift.

Winand avatar Aug 11 '21 21:08 Winand

Увы, в mahou выбирается жёстко только две раскладки, и я обхожу это через флажок эмуляции Alt-Shift.

Неплохой вариант. Можно также поставить 2 основные и добавить одно сочетание клавиш для смены 3-ю.

BladeMight avatar Aug 11 '21 21:08 BladeMight