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

Исходный код (GitHub)
Клиент Google Translate, позволяющий переводить выделенный текст из любого приложения с помощью горячей клавиши или работать через отдельное окно переводчика. Поддерживает озвучивание исходного текста и перевода. Регистрация и собственный API-ключ не требуются.
Быстрый старт
Установите AutoHotkey v2.0 и запустите скрипт.
При первом запуске дождитесь подготовки языковых данных. Если откроется окно выбора языков, проверьте предложенную пару или укажите языки самостоятельно и нажмите «Сохранить».
Чтобы перевести текст из любого приложения, выделите его и нажмите Ctrl+C+C: удерживая Ctrl, нажмите C два раза подряд. Перевод появится в окне переводчика.
Открыть окно переводчика можно двойным щелчком по иконке программы в трее.
Настройка языков
Для автоматического выбора направления перевода программа использует пару «родной язык — второй язык». Родной язык — ваш основной язык, на который обычно переводится иностранный текст; второй — язык, с которым вы чаще всего работаете. Например, для пары «русский — английский» английский текст переводится на русский, а русский — на английский. Если направление определить не удаётся, программа переводит на родной язык.
Языковая пара задаёт направление по умолчанию, но не ограничивает ручной выбор: в окне переводчика можно указать любые поддерживаемые исходный и целевой языки.
При первом запуске программа пытается выбрать пару автоматически. Сначала она проверяет список предпочитаемых языков Windows. Если в нём найдены два разных поддерживаемых языка, первые два из них сохраняются автоматически. Если для составления пары потребовались дополнительные сведения — язык интерфейса Windows, региональные настройки, текущая раскладка клавиатуры или запасной английский язык, — программа показывает заполненное окно выбора и просит подтвердить предложенный вариант. Если второй язык надёжно определить нельзя, его нужно выбрать самостоятельно. Выбранная пара сохраняется и используется при последующих запусках.
Изменить пару можно в любое время: щёлкните правой кнопкой мыши по иконке программы в трее, выберите Languages..., укажите родной и второй языки и нажмите «Сохранить». После сохранения программа перезапустится с новой парой. Окно выбора языков также можно открыть при запуске, передав скрипту параметр --language-setup.
Автоматический выбор направления перевода
При переводе выделенного текста программа пытается определить, к какому языку пары он относится, и выбирает противоположный язык для перевода. Для этого учитываются письменность и характерные признаки некоторых языков, а исходный язык запроса по-прежнему определяется Google автоматически. Если направление остаётся неоднозначным, сначала выполняется перевод на родной язык. Если Google определит исходный язык как совпадающий с выбранным целевым, программа один раз попробует обратное направление.
Окно переводчика
В верхнем поле можно ввести или вставить исходный текст, выбрать исходный и целевой языки, а затем нажать кнопку перевода или Enter. Если в поле выделен фрагмент текста, переводится этот фрагмент. Чтобы вставить перенос строки, нажмите Shift+Enter.
Кнопка обратного перевода переводит текст из нижнего поля в обратном направлении. То же делает Enter, нажатый в нижнем поле. Кнопки рядом со списками языков меняют исходный и целевой языки местами.
Размер окна можно изменять мышью: при растягивании за верхний край увеличивается верхнее текстовое поле, а за нижний — нижнее. Чтобы изменить размер шрифта отдельного поля, наведите на него указатель, удерживайте Ctrl и прокручивайте колесо мыши.
Меню трея
Щёлкните правой кнопкой мыши по иконке программы, чтобы открыть меню настроек. Основные команды:
Open GUI — открыть окно переводчика
Languages... — изменить пару «родной язык — второй язык»
Dark Theme — переключить тёмную и светлую темы
Use Multiple GUIs — открывать отдельное окно для каждого нового перевода
Windowless Mode — не показывать окно при переводе выделенного текста, а заменить выделение готовым переводом
Copy Main Translation — автоматически копировать основной перевод в буфер обмена
Add To Startup — включить или отключить запуск программы вместе с Windows
Clear Cache — очистить кэш переводов и озвучки
Двойной щелчок по иконке выполняет команду Open GUI. В меню также доступны открытие папки скрипта, перезапуск и завершение программы. При запуске исходного .ahk-файла дополнительно показывается команда Edit This Script.
Основные возможности
Программа автоматически выбирает направление внутри сохранённой языковой пары.
При переводе отдельных слов могут отображаться дополнительные значения и варианты перевода.
Длинный текст автоматически разбивается на подходящие для запроса части, а результат собирается в единый перевод.
Поддерживаются тёмная и светлая темы, несколько окон переводчика и режим работы без окна.
Кэш
Переводы и озвучка сохраняются в кэше на диске и доступны после перезапуска программы. Когда кэш заполняется, самые старые записи заменяются новыми. По умолчанию его размер ограничен 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, используемым браузерными расширениями, поэтому собственный API-ключ не требуется. Эти интерфейсы могут измениться со стороны Google.

