Простой ИИ-переводчик по хоткею для Windows: история и устройство PolyShift

Простой ИИ-переводчик по хоткею для Windows: история и устройство PolyShift

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

Привычный сценарий работы с незнакомым фрагментом обычно выглядит одинаково:

  1. Выделить нужное предложение или абзац.
  2. Скопировать (Ctrl + C).
  3. Переключиться во вкладку браузера с онлайн-переводчиком или диалогом нейросети.
  4. Вставить текст, дождаться ответа.
  5. Скопировать перевод и вернуться обратно в исходную программу.

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

Почему не подошли готовые варианты

Программ для быстрого перевода на рынке немало, но у большинства есть нюансы, с которыми сложно мириться:

  • Ежемесячные подписки. Платить каждый месяц за программу, которая просто пересылает текст в чужой API, кажется не самым практичным решением.
  • Тяжелые приложения на Electron. Многие современные утилиты тянут за собой полноценный Chromium и держат в памяти по 300–400 МБ просто ради того, чтобы висеть в трее и ждать нажатия клавиши.
  • Обычные словари. Классические переводчики без языковых моделей часто буксуют на техническом контексте, идиомах и разговорной речи.

Хотелось получить совсем простой инструмент: нажал комбинацию клавиш прямо там, где читаешь, — рядом с курсором появилось аккуратное окно с переводом, текст сам скопировался в буфер обмена, нажал Esc — окно исчезло. Без тяжелых процессов и лишних кликов.

Так появился PolyShift.

Простой ИИ-переводчик по хоткею для Windows: история и устройство PolyShift

Как собирали: от скрипта на Python к Rust и Tauri

Первый рабочий вариант был написан на Python. Программа вполне справлялась со своей задачей, но для повседневной системной утилиты ощущалась сыроватой:

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

В итоге проект был полностью пересобран на более подходящем стеке:

  • Ядро на Rust. Все системные вещи — перехват глобальных горячих клавиш, чтение выделенного текста и защита от повторного запуска — сделаны через прямые вызовы Win32 API.
  • Интерфейс на Tauri v2 и Svelte 5. Tauri не тащит собственный браузер, а использует системный компонент Windows WebView2. Интерфейс получается легким и не нагружает систему.
  • Модель Google Gemini. Используется официальный REST API со стримингом токенов: программа не ждет полной генерации ответа, а сразу выводит текст строчка за строчкой.

Что умеет программа

В итоге получилась тихая фоновая утилита в системном трее, которая вызывается по горячим клавишам:

  1. Alt + T — быстрый перевод. Выделяете любой текст в браузере, PDF, мессенджере или коде, нажимаете хоткей — возле курсора появляется окно с переводом. Перевод сразу копируется в буфер обмена, поэтому при необходимости его можно тут же вставить в чат или письмо через Ctrl + V.
  2. Alt + G — проверка грамматики и стиля. Удобно при переписке: набросал ответ на английском, нажал хоткей — программа аккуратно правит ошибки и делает текст более естественным, сохраняя изначальный смысл.
  3. Alt + S — краткая выжимка. Если перед глазами длинная статья или отчет, за пару секунд выдает 3–4 главных тезиса на русском.
  4. Alt + E — объяснение. Помогает быстро разобраться в сложном термине или тексте ошибки из консоли простыми словами.

В фоне программа занимает около 15 МБ оперативной памяти. Окно перевода не создается каждый раз заново, а просто прячется средствами системы, поэтому при вызове оно появляется практически мгновенно (буквально за несколько миллисекунд).

Безопасность и ключ API

Для работы используется бесплатный ключ Google Gemini API (его можно получить в Google AI Studio за пару минут, для личного использования дается лимит в 15 запросов в минуту, чего для переводов хватает с запасом).

Здесь было важно предусмотреть два момента:

  • Никаких промежуточных серверов. Запросы идут напрямую с компьютера пользователя на сервера Google по зашифрованному соединению.
  • Шифрование ключа. Ключ не хранится в открытом виде. Он шифруется средствами Windows DPAPI (CryptProtectData) и привязывается к локальной учетной записи пользователя.

Итог

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

PolyShift бесплатен и опубликован с открытым исходным кодом на GitHub (лицензия MIT). Есть как обычный установщик, так и портабельная версия в zip-архиве, которой не нужны права администратора.

1