Простой ИИ-переводчик по хоткею для Windows: история и устройство PolyShift
При ежедневной работе за компьютером так или иначе приходится сталкиваться с текстами на иностранных языках: техническая документация, статьи, обсуждения на форумах или рабочая переписка.
Привычный сценарий работы с незнакомым фрагментом обычно выглядит одинаково:
- Выделить нужное предложение или абзац.
- Скопировать (Ctrl + C).
- Переключиться во вкладку браузера с онлайн-переводчиком или диалогом нейросети.
- Вставить текст, дождаться ответа.
- Скопировать перевод и вернуться обратно в исходную программу.
Когда за рабочий день эта цепочка повторяется десятки раз, постоянные переключения между окнами начинают утомлять и выбивать из фокуса.
Почему не подошли готовые варианты
Программ для быстрого перевода на рынке немало, но у большинства есть нюансы, с которыми сложно мириться:
- Ежемесячные подписки. Платить каждый месяц за программу, которая просто пересылает текст в чужой API, кажется не самым практичным решением.
- Тяжелые приложения на Electron. Многие современные утилиты тянут за собой полноценный Chromium и держат в памяти по 300–400 МБ просто ради того, чтобы висеть в трее и ждать нажатия клавиши.
- Обычные словари. Классические переводчики без языковых моделей часто буксуют на техническом контексте, идиомах и разговорной речи.
Хотелось получить совсем простой инструмент: нажал комбинацию клавиш прямо там, где читаешь, — рядом с курсором появилось аккуратное окно с переводом, текст сам скопировался в буфер обмена, нажал Esc — окно исчезло. Без тяжелых процессов и лишних кликов.
Так появился PolyShift.
Как собирали: от скрипта на Python к Rust и Tauri
Первый рабочий вариант был написан на Python. Программа вполне справлялась со своей задачей, но для повседневной системной утилиты ощущалась сыроватой:
- окно всплывало с небольшой, но заметной задержкой;
- потребление оперативной памяти для фонового скрипта было великовато;
- таскать за собой тяжелые библиотеки не хотелось.
В итоге проект был полностью пересобран на более подходящем стеке:
- Ядро на Rust. Все системные вещи — перехват глобальных горячих клавиш, чтение выделенного текста и защита от повторного запуска — сделаны через прямые вызовы Win32 API.
- Интерфейс на Tauri v2 и Svelte 5. Tauri не тащит собственный браузер, а использует системный компонент Windows WebView2. Интерфейс получается легким и не нагружает систему.
- Модель Google Gemini. Используется официальный REST API со стримингом токенов: программа не ждет полной генерации ответа, а сразу выводит текст строчка за строчкой.
Что умеет программа
В итоге получилась тихая фоновая утилита в системном трее, которая вызывается по горячим клавишам:
- Alt + T — быстрый перевод. Выделяете любой текст в браузере, PDF, мессенджере или коде, нажимаете хоткей — возле курсора появляется окно с переводом. Перевод сразу копируется в буфер обмена, поэтому при необходимости его можно тут же вставить в чат или письмо через Ctrl + V.
- Alt + G — проверка грамматики и стиля. Удобно при переписке: набросал ответ на английском, нажал хоткей — программа аккуратно правит ошибки и делает текст более естественным, сохраняя изначальный смысл.
- Alt + S — краткая выжимка. Если перед глазами длинная статья или отчет, за пару секунд выдает 3–4 главных тезиса на русском.
- Alt + E — объяснение. Помогает быстро разобраться в сложном термине или тексте ошибки из консоли простыми словами.
В фоне программа занимает около 15 МБ оперативной памяти. Окно перевода не создается каждый раз заново, а просто прячется средствами системы, поэтому при вызове оно появляется практически мгновенно (буквально за несколько миллисекунд).
Безопасность и ключ API
Для работы используется бесплатный ключ Google Gemini API (его можно получить в Google AI Studio за пару минут, для личного использования дается лимит в 15 запросов в минуту, чего для переводов хватает с запасом).
Здесь было важно предусмотреть два момента:
- Никаких промежуточных серверов. Запросы идут напрямую с компьютера пользователя на сервера Google по зашифрованному соединению.
- Шифрование ключа. Ключ не хранится в открытом виде. Он шифруется средствами Windows DPAPI (CryptProtectData) и привязывается к локальной учетной записи пользователя.
Итог
Утилита получилась компактной, закрывает базовые потребности в работе с текстом и экономит время на постоянных переключениях между окнами.
PolyShift бесплатен и опубликован с открытым исходным кодом на GitHub (лицензия MIT). Есть как обычный установщик, так и портабельная версия в zip-архиве, которой не нужны права администратора.