1

Тема: AHK v2: Клиент Google Translate

Google Translate для AutoHotkey v2
 
 https://i.ibb.co/RkLjwTd8/a49ea0cc9f2b.png
 
Исходный код (GitHub)


Клиент Google Translate для Windows, позволяющий переводить выделенный текст из любого приложения с помощью горячей клавиши или работать через отдельное окно переводчика. Поддерживает озвучивание исходного текста и перевода. Регистрация и собственный API-ключ не требуются.


Быстрый старт


  1. Установите AutoHotkey v2.0 и запустите скрипт.

  2. При первом запуске дождитесь подготовки языковых данных. В открывшемся окне выбора языков проверьте предложенную пару или укажите языки самостоятельно и нажмите «Сохранить».

  3. Чтобы перевести текст из любого приложения, выделите его и нажмите Ctrl+C+C: удерживая Ctrl, нажмите C два раза подряд. Перевод появится в окне переводчика.

  4. Открыть окно переводчика можно двойным щелчком по иконке программы в трее.


Настройка языков


Для автоматического выбора направления перевода программа использует пару «родной язык — второй язык». Родной язык — ваш основной язык, на который обычно переводится иностранный текст; второй — язык, с которым вы чаще всего работаете. Например, для пары «русский — английский» английский текст переводится на русский, а русский — на английский. Если направление определить не удаётся, программа переводит на родной язык.

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

При первом запуске программа предлагает пару и просит подтвердить её в заполненном окне выбора. Родным предлагается язык интерфейса Windows, вторым — язык из списка предпочитаемых языков Windows; если второго языка там нет, используются региональные настройки, текущая раскладка клавиатуры или запасной английский язык. Если второй язык определить нельзя, его нужно выбрать самостоятельно. Подтверждённая пара сохраняется и используется при последующих запусках.

Изменить пару можно в любое время: щёлкните правой кнопкой мыши по иконке программы в трее, выберите Languages..., укажите родной и второй языки и нажмите «Сохранить». После сохранения программа перезапустится с новой парой. Окно выбора языков также можно открыть при запуске, передав скрипту параметр --language-setup.


Автоматический выбор направления перевода


При переводе выделенного текста программа пытается определить, к какому языку пары он относится, и выбирает противоположный язык для перевода. Для этого учитываются письменность и характерные признаки некоторых языков, а исходный язык запроса по-прежнему определяется Google автоматически. Если направление остаётся неоднозначным, сначала выполняется перевод на родной язык. Если Google определит исходный язык как совпадающий с выбранным целевым, программа один раз попробует обратное направление.


Окно переводчика


В верхнем поле можно ввести или вставить исходный текст, выбрать исходный и целевой языки, а затем нажать кнопку перевода или Enter. Если в поле выделен фрагмент текста, переводится этот фрагмент. Чтобы вставить перенос строки, нажмите Shift+Enter.

Кнопка обратного перевода переводит текст из нижнего поля в обратном направлении. То же делает Enter, нажатый в нижнем поле. Кнопки рядом со списками языков меняют исходный и целевой языки местами; то же делает Ctrl+Tab в окне переводчика. Если исходный язык определяется автоматически, менять нечего, и об этом появляется уведомление. При наведении указателя на кнопку появляется подсказка на родном языке.

Размер окна можно изменять мышью: при растягивании за верхний край увеличивается верхнее текстовое поле, а за нижний — нижнее. Если высота окна больше минимальной, то есть хотя бы одно поле увеличено, можно изменить и соотношение полей, не меняя высоту окна: перетащите нижнюю границу верхнего поля или верхнюю границу нижнего. После перевода нижнее поле увеличивается под текст, если в подменю Options меню трея не включено Remember Window Size. Чтобы изменить размер шрифта отдельного поля, наведите на него указатель, удерживайте Ctrl и прокручивайте колесо мыши.


Меню трея


Щёлкните правой кнопкой мыши по иконке программы, чтобы открыть меню настроек. Переключаемые настройки, кроме Windowless Mode, собраны в подменю Options. Основные команды:

  • Open GUI — открыть окно переводчика

  • Languages... — изменить пару «родной язык — второй язык»

  • Windowless Mode — не показывать окно при переводе выделенного текста, а заменить выделение готовым переводом. Если до получения перевода переключиться в другое окно или поле, перевод только копируется в буфер обмена

  • Options → Dark Theme — переключить тёмную и светлую темы

  • Options → Use Multiple GUIs — открывать отдельное окно для каждого нового перевода

  • Options → Copy Main Translation — автоматически копировать основной перевод в буфер обмена

  • Options → Remember Window Size — запоминать ширину окна и высоты обоих текстовых полей: новые окна открываются с этими размерами, а перевод не меняет размер окна

  • Options → Switch Keyboard Layout — при переходе в текстовое поле переключать раскладку клавиатуры на язык этого поля, если такая раскладка установлена. Если в Windows одна раскладка для всех окон, при уходе из окна переводчика возвращается прежняя. В списках языков включается раскладка родного языка: названия языков написаны на нём. Включено по умолчанию

  • Options → Show Romanization — показывать латинскую транскрипцию текста, написанного не латиницей (пиньинь, ромадзи, транслитерация кириллицы), в полосе под его текстовым полем, шрифтом того же размера, что и поле. Полоса появляется только для такого текста; длинная транскрипция прокручивается, полностью она видна при наведении указателя. Транскрипция приходит от отдельного сервиса Google: если он не отвечает, пропадает только она, а не перевод. По умолчанию выключено

  • Add To Startup — включить или отключить запуск программы вместе с Windows

  • Clear Cache — очистить кэш переводов и озвучки


Двойной щелчок по иконке выполняет команду Open GUI. В меню также доступны открытие папки скрипта, перезапуск и завершение программы. При запуске исходного .ahk-файла дополнительно показывается команда Edit This Script.


Основные возможности


  • Программа автоматически выбирает направление внутри сохранённой языковой пары.

  • При переводе отдельных слов могут отображаться дополнительные значения и варианты перевода.

  • Длинный текст автоматически разбивается на подходящие для запроса части, а результат собирается в единый перевод.

  • Переносы строк внутри предложения, например в тексте, скопированном из PDF или письма, перед переводом убираются, и предложение переводится целиком. Сам исходный текст при этом показывается без изменений.

  • Если все строки текста начинаются с одного и того же маркера комментария или цитаты (;, //, #, --, %, >), маркер перед переводом убирается и возвращается в начало каждой строки результата. Многострочный комментарий переносится по исходной ширине, так что перевод можно вставить обратно в код.

  • Поддерживаются тёмная и светлая темы, несколько окон переводчика и режим работы без окна.


Кэш


Переводы и озвучка сохраняются в кэше на диске и доступны после перезапуска программы. Когда кэш заполняется, самые старые записи заменяются новыми. По умолчанию его размер ограничен 100 МБ; изменить это значение можно параметром Cache Size MB в файле settings.ini. Для очистки используйте Clear Cache в меню трея.


Озвучивание


Кнопки воспроизведения рядом с текстовыми полями позволяют озвучить исходный текст или перевод, приостановить воспроизведение и остановить его. Для отдельных английских слов используется словарное произношение Oxford, когда оно доступно; в остальных случаях применяется Google TTS.

Озвучивание использует компоненты Windows Media Foundation. В редакциях Windows N/KN для этого может потребоваться установка Media Feature Pack.


Системные требования


  • Windows 10/11

  • AutoHotkey v2.0 для запуска исходного .ahk-файла

  • Подключение к интернету для первоначальной настройки, новых переводов и озвучивания

  • Папка скрипта, доступная для записи: в ней хранятся настройки, список языков и кэш


Для перевода и озвучивания обрабатываемый текст отправляется сервисам Google. Программа обращается к тем же интерфейсам Google Translate, что и собственные браузерные клиенты Google (перевод сайтов в Google Translate и расширение Google Dictionary), поэтому собственный API-ключ не требуется. API-ключи в исходном коде — публичные ключи, встроенные в эти клиенты Google, а не личные ключи автора: они не привязаны ни к чьему аккаунту Google Cloud, и за использование программы никому не выставляется счёт. Эти интерфейсы могут измениться со стороны Google.


Тема для вопросов и комментариев.

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

2

Re: AHK v2: Клиент Google Translate

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

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

3

Re: AHK v2: Клиент Google Translate

Версия 1.2.1

Новое:

  • Транскрипция (Options → Show Romanization, по умолчанию выключено). Для текста, написанного не латиницей, под полем показывается его латинская транскрипция: пиньинь, ромадзи, транслитерация кириллицы. Полоса набрана шрифтом того же размера, что и поле; длинная транскрипция прокручивается, полностью она видна при наведении указателя.

  • Переключение раскладки (Options → Switch Keyboard Layout, по умолчанию включено). При переходе в текстовое поле раскладка клавиатуры переключается на язык этого поля, если такая раскладка установлена, а в списках языков — на родной язык. Если в Windows одна раскладка для всех окон, при уходе из окна переводчика возвращается прежняя.

  • Ctrl+Tab в окне переводчика меняет местами исходный и целевой языки. Если исходный язык определяется автоматически, появится подсказка, что менять нечего.

  • Переключаемые настройки собраны в подменю Options меню в трее; Windowless Mode остался в самом меню.

  • При первом запуске программа всегда предлагает подтвердить пару языков; родным предлагается язык интерфейса Windows.

Исправления:

  • При масштабе экрана больше 100% кнопка смены языков совпадает по высоте со списком языков, а подписи стоят на одном уровне с текстом списка.

  • Окно меньше мигает при изменении размера и перетаскивании границы между полями и не мигает при отпускании мыши.

При первом запуске после обновления программа один раз переводит новые тексты интерфейса, поэтому ненадолго может появиться окно загрузки.

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