Переводчик экрана: наложение перевода поверх текста на экране
build / build (push) Failing after 10s

Программа накладывает русский перевод прямо на английские надписи —
как переводчик по фото, только для монитора. Работает с играми,
интерфейсами и документами: распознаёт кадр, собирает текст в связные
блоки, переводит и рисует плашки под цвет фона.

Распознавание — встроенный Windows.Media.Ocr, офлайн. Перевод — цепочка
движков с автопереключением (google, lingva, mymemory), потому что до
разных сервисов из разных сетей достучаться получается по-разному.

Собирается без .NET SDK: Roslyn из Build Tools плюс сборки Framework 4.8,
которые уже есть в системе. На выходе один exe без установщика.

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

Чтобы правки эвристик не оценивались на глаз, в tools лежат эталонные
кадры и RenderTest: прогон конвейера без окна с подсчётом попаданий.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-27 15:54:02 +03:00
commit 7c6b182402
26 changed files with 5161 additions and 0 deletions
+87
View File
@@ -0,0 +1,87 @@
ПЕРЕВОДЧИК ЭКРАНА
=================
Накладывает русский перевод прямо поверх английского текста на экране —
как Яндекс.Переводчик по фото, только для монитора. Работает с чем угодно:
игры, сайты, программы, PDF.
КАК ЗАПУСТИТЬ
-------------
1. Распакуй папку куда угодно (например, на рабочий стол).
2. Запусти ScreenTranslator.exe
3. Windows скажет «SmartScreen защитил ваш компьютер» — это потому, что
у файла нет платной подписи. Жми «Подробнее» → «Выполнить в любом случае».
4. Появится значок в трее (синий кружок «AЯ», рядом с часами). Всё, работает.
Окна никакого нет и не должно быть — программа ждёт горячую клавишу.
КАК ПОЛЬЗОВАТЬСЯ
----------------
Ctrl + Alt + Z перевести тот монитор, где сейчас курсор
Ctrl + Alt + X обвести рамкой кусок экрана и перевести только его
Esc закрыть перевод (или ещё раз Ctrl+Alt+Z)
пробел пока держишь — видно оригинал под переводом
клик по тексту скопировать перевод в буфер
Ctrl + C скопировать весь перевод
Как это выглядит: экран замирает, английские надписи закрываются плашками
под цвет фона, на них русский текст. Переведённые места подчёркнуты тонкой
синей линией. Перевод занимает пару секунд, всё это время видно, что
программа работает.
В игре лучше оконный или безрамочный режим — в полноэкранном Windows
не даёт рисовать поверх.
ЧТО ХОЧЕТСЯ ПРОВЕРИТЬ
---------------------
Главное — связный текст: описания квестов, книги, диалоги, подсказки.
Он должен переводиться целыми фразами, а не по отдельным словам.
Ещё интересно:
- меню и панели (окна профессий, настройки, инвентарь);
- не наезжают ли плашки на соседние надписи;
- успевает ли по скорости.
Если что-то пойдёт не так — нажми PrintScreen прямо поверх перевода
(оверлей от этого не закроется) и скинь скриншот целиком, не обрезая.
По полному кадру видно, где именно проблема.
ЧТО УЖЕ ИЗВЕСТНО
----------------
- Названия переводятся буквально: Steam → «Пар», Discord → «Раздор».
Отличить название от обычного слова программа не может, это нормально.
- Рабочий стол и панель задач переводить бесполезно — там одни названия.
- Совсем мелкие надписи (8 пикселей, вкладки браузера) распознаются плохо.
- Русский текст на экране программа старается не трогать, но иногда
что-то проскакивает.
ЕСЛИ НЕ РАБОТАЕТ
----------------
Ничего не происходит по Ctrl+Alt+Z
Комбинацию мог занять кто-то другой (часто это Яндекс.Диск или Punto).
Открой config.json блокнотом, поменяй hotkeyTranslate на другую,
например "Ctrl+Alt+Q", потом правый клик по значку в трее →
«Перечитать настройки».
Пишет, что нет распознавания текста
Нужен языковой компонент Windows. Параметры → Время и язык →
Язык и регион → у английского языка «...» → Компоненты языка →
поставить галочку «Распознавание текста». Обычно он уже стоит.
Не переводит, ругается на сеть
Правый клик по значку в трее → «Проверить переводчики». Покажет,
какой из трёх сервисов отвечает, а какой нет. Скинь этот результат.
Настройки — файл config.json рядом с программой, открывается блокнотом.
После правки: значок в трее → «Перечитать настройки», перезапуск не нужен.