1 (изменено: anp, 2022-02-18 21:17:02)

Тема: AHK: Транслитерация последнего набранного слова

Подскажите отдельный код для функции транслитерации последнего набранного слова по сочетанию, например, ctrl+shift+pause.
При этом:
- достаточно одного направления транслитерации: с русского на английский язык;
- возможность внесения последующих правок в правила транслитерации при необходимости;
- возможность назначить дополнительное сочетание для транслитерации выделенного текста.

На форуме имеется тема «AHK: Еще один заменитель Punto Switcher'a»: http://forum.script-coding.com/viewtopic.php?id=8737, с отличными фрагментами кода для транслитерации и переключения раскладки. Но там немного другой функционал.

Яжнепрограммист :)

2

Re: AHK: Транслитерация последнего набранного слова

Есть ещё такой вариант. Горячую клавишу можете вписать самостоятельно. Если функционал не устраивает, можете создать тему в Коммерческом разделе.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Транслитерация последнего набранного слова

teadrinker
Спасибо, но там нет транслитерации.
Я подожду, может кто ответит. Не к спеху. Просто заметил, что почему-то в программах - переключателях раскладки есть множество вариантов переключения, кроме транслитерации последнего слова. Подумал, что может быть полезным.

Яжнепрограммист :)

4 (изменено: __Михаил__, 2022-02-18 21:42:32)

Re: AHK: Транслитерация последнего набранного слова

anp

Никогда не пользовался подобным софтом, поэтому не могу понять - что мешает выделить слово и нажав некую клавишу поменять текст на другую раскладку? Иначе скрипт должен постоянно, непрерывно собирать данные, что только лишний раз грузит систему наверно в 99% случаев.

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

5

Re: AHK: Транслитерация последнего набранного слова

anp пишет:

Спасибо, но там нет транслитерации.

А, я просто не понял, о чём идёт речь. Ну так можно использовать данный скрипт как основу, просто немного модифицировать его.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6 (изменено: anp, 2022-02-18 21:53:02)

Re: AHK: Транслитерация последнего набранного слова

__Михаил__
Выделить слово: это на одно сочетание больше
Я пользуюсь пунто-подобными программами с момента появления punto. Особой загрузки на систему не замечал. Удобная штука, как по мне.
Сейчас одновременно использую Punto Switcher, и Mahou. Первый по привычке висит, второй - пока тестирую.

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

Яжнепрограммист :)

7

Re: AHK: Транслитерация последнего набранного слова

__Михаил__ пишет:

скрипт должен постоянно, непрерывно собирать данные

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

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8

Re: AHK: Транслитерация последнего набранного слова

anp пишет:

могу сделать макрос, выделяющий последнее слово

А зачем его делать, если он уже сделан.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK: Транслитерация последнего набранного слова

teadrinker

Ну как-то скрипт же должен понимать, что были введены те или иные клавиши? Данные я отметил в целом.

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

10 (изменено: anp, 2022-02-18 22:13:00)

Re: AHK: Транслитерация последнего набранного слова

teadrinker пишет:
anp пишет:

могу сделать макрос, выделяющий последнее слово

А зачем его делать, если он уже сделан.

Я имел в виду не AutoHotkey, а макрос воспроизведения нажатий через драйвер своей клавиатуры. Хотя, AutoHotkey - более универсальное решение.
У меня AutoHotkey в основном для запуска каких-то простых функций используется. Для этого не требуется особо глубоко вникать в язык его скриптов.

Яжнепрограммист :)

11

Re: AHK: Транслитерация последнего набранного слова

anp пишет:

Я имел ввиду не AutoHotkey, а макрос воспроизведения нажатий через драйвер своей клавиатуры

Тогда никак не могу прокомментировать, не пользовался таким функционалом.

__Михаил__ пишет:

Ну как-то скрипт же должен понимать, что были введены те или иные клавиши?

Ну, тот, что я привёл, как-то же понимает.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

12

Re: AHK: Транслитерация последнего набранного слова

teadrinker

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

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

13

Re: AHK: Транслитерация последнего набранного слова

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

__Михаил__ пишет:

скорее всего через хук клавиатуры реализуемый вариант.

Ну вот бы и реализовали!

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

14

Re: AHK: Транслитерация последнего набранного слова

Как и печатал раннее - мне оно не нужно, но хук клавиш дело интересное.

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

15

Re: AHK: Транслитерация последнего набранного слова

anp пишет:

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

Можно и проще. Сделать переключатель между обычной раскладкой и транслитерацией. Нажал гор. клавишу - включился режим ввода транслитом. Ещё раз её нажал - вернулся в обычный режим. Я в своё время делал, при этом у меня в трее значок показывал текущий режим. Удобно.

16 (изменено: anp, 2022-02-19 01:48:23)

Re: AHK: Транслитерация последнего набранного слова

ypppu пишет:

Сделать переключатель между обычной раскладкой и транслитерацией. Нажал гор. клавишу - включился режим ввода транслитом. Ещё раз её нажал - вернулся в обычный режим. Я в своё время делал, при этом у меня в трее значок показывал текущий режим. Удобно.

Если заранее - то можно просто на AltGr+Keys слой английских букв назначить.
Тут вопрос по иной причине возник. Например, набирая по-быстрому текст на русском языке в личных заметках, вполне уместно не переключая раскладки напечатать что-то типа «автохуткей; ворд; нотэпад; ентер, контрол+шифт+а». И как бы для черновика сгодилось бы. Но пока печатал такое слово, одновременно может промелькнуть мысль, а не уместнее ли в этом конкретном черновике было напечатать это слово в английской раскладке. И вот тут бы нажатие одной бесполезной клавиши, типа CapsLock быстро бы решало эти сомнения. Это же удобнее, чем нажать сначала Ctrl+Shift+Left, а потому еще какую-то комбинацию, типа Ctrl+Alt+Pause. Хотя и вполне себе вариант.
В коде teadrinker есть блок, помещающий в буфер выделенный текст, либо последнее введенное слово. Я попытался в этот код по-быстрому прикрутить блок транслитерации из первой ссылки. Скрипт запускается, но почему-то не отрабатывает транслитерацию. Удалил, некогда уже сегодня доделывать.

Яжнепрограммист :)

17

Re: AHK: Транслитерация последнего набранного слова

может промелькнуть мысль, а не уместнее ли в этом конкретном черновике было напечатать это слово в английской раскладке

Напряг фантазию, но так и не получилось представить ситуацию, в которой пользователь заранее не знает, в которой раскладке лучше набирать текст.

18 (изменено: anp, 2022-02-19 23:37:08)

Re: AHK: Транслитерация последнего набранного слова

ypppu пишет:

не получилось представить ситуацию, в которой пользователь заранее не знает, в которой раскладке лучше набирать текст

Сколько людей, столько и ситуаций.

В итоге для себя решил, что более эффективное решение указанного вопроса - это составить словарь автозамен. Для этого можно AutoHotkey использовать, и есть удобные специализированные программы. Автозамена эффективнее по причине того, что многие слова в целевом языке нередко пишутся не так, как слышатся на используемом при наборе текста языке.
Примеры транслитерации в Mahou:
альт - aljt;
ворд - vord;
контрл - kontrl;
цтрл - ctrl○
майкрософт - majjkrosoft;
микрософт - mikrosoft;
мицрософт - microsoft;
автохуткей - avtohutkejj;
АутоХоткеы - AutoHotkey.
Конечно правила транслитерации можно изменить, но, это не исключает того, что для одной и той же буквы может иметься несколько вариантов правильной транслитерации.

Надеюсь настоящее обсуждение, даже если в нем не появится код, кому-нибудь окажется полезным, например, если кто-то зайдет сюда из поисковика по запросу «транслитерация последнего набранного слова».

Яжнепрограммист :)

19

Re: AHK: Транслитерация последнего набранного слова

anp пишет:

автохуткей

А что за «хуткей»? Так кто-нибудь произносит? Звучит неприлично.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

20 (изменено: anp, 2022-02-19 23:44:33)

Re: AHK: Транслитерация последнего набранного слова

teadrinker пишет:

А что за «хуткей»? Так кто-нибудь произносит? Звучит неприлично.

Попытка в качестве примера пропихнуть через транслитерацию какой-нибудь редко встречающийся диалект.

Яжнепрограммист :)