[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Github All Releases](https://img.shields.io/github/downloads/ramjke/Translumo/total.svg)]()

<p align="center">
  <img width="670" src="https://github.com/ramjke/Translumo/assets/29047281/8985049f-ea1c-428e-94be-042ece66cb54">
</p>
  <h2 align="center" style="border: 0">Продвинутый экранный переводчик в реальном времени</h2>

<p align="center"><a href="https://github.com/ramjke/Translumo"><strong>English</strong></a> | <strong>Русский</strong></a></p>

## Родственный проект
У проекта есть родственный проект — **[Lookupper](https://lookupper.ru)**. Lookupper — это экранный словарь для изучения языков. Он похож на Translumo, но создан для другой цели. Lookupper нужен, чтобы учить язык с помощью игр и другого контента, вместо того чтобы всю жизнь зависеть от переводчиков.

Lookupper — это мой коммерческий проект с бесплатной версией. Но если решите приобрести Pro-версию, то поддержите разработку как Lookupper, так и Translumo.

<a href="https://lookupper.ru">
<img width="300" alt="Lookupper" src="https://github.com/user-attachments/assets/ef2f83b3-e15f-4bd3-826e-858266f36c93" />
</a>

## Скачать Translumo

**Прямая ссылка для скачивания последней версии:**  
[Translumo_1.0.2.zip](https://github.com/ramjke/Translumo/releases/download/v.1.0.2/Translumo_1.0.2.zip)  
После скачивания распакуйте архив и запустите `Translumo.exe`.

Версия 1.0.x включает множество изменений и улучшений по сравнению с версиями 0.9.x. Полный список обновлений смотрите на [странице релизов](https://github.com/ramjke/Translumo/releases).

## Основные функции

- **Высокая точность распознавания текста**  
  Translumo позволяет одновременно использовать несколько OCR движков. Специальный алгоритм оценивает результаты каждого движка и выбирает лучший.

  ![OCR Example](https://github.com/ramjke/Translumo/assets/29047281/649e5fab-a5de-4c54-a3d8-f7ea95b8f218)

- **Ориентирован на игры**  
  Разработан для перевода в реальном времени в ПК-играх, но работает в любой области экрана и с любым приложением.

- **Низкая задержка**  
  Оптимизации минимизируют нагрузку на систему и задержку между появлением текста и его переводом.

- **OCR движки**: Windows OCR (рекомендуется), Tesseract 5.2 (устарел), EasyOCR (устарел).

- **Переводчики**:  DeepL (рекомендуется), Google Translate, Яндекс Переводчик, Naver Papago.

- **Поддерживаемые языки распознавания**: английский, русский, японский, китайский (упрощенный), корейский.

- **Поддерживаемые языки перевода**: английский, русский, японский, китайский (упрощенный), корейский, французский, испанский, немецкий, португальский, итальянский, вьетнамский, тайский, турецкий, арабский, греческий, бразильский португальский, польский, белорусский, персидский, индонезийский, болгарский, чешский, датский, эстонский, финский, венгерский, литовский, латышский, нидерландский, румынский, словацкий, словенский, шведский, украинский.

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

### Минимальные требования для Tesseract и WindowsOCR
- Windows 10 версии 2004 (build 19041) или новее, или Windows 11
- GPU совместимый с DirectX 11
- 2 ГБ ОЗУ

### Минимальные требования для EasyOCR
- NVIDIA GPU с поддержкой CUDA SDK 11.8 (GTX 750, 8xxM, 9xx серия или новее)
- 8 ГБ ОЗУ
- Не менее 5 ГБ свободного места на диске

## Как использовать
![Превью](https://github.com/ramjke/Translumo/blob/c1dc35c8f7e074bfcddb5b840deb9534dde581b7/docs/preview-RU.gif)

1. Откройте Настройки (**Alt+G**).
2. Выберите языки: исходный язык для OCR и язык перевода.
3. Выберите движки распознавания текста (см. Советы по использованию).
4. Определите область захвата: нажмите **Alt+Q** и выделите область на экране.
5. Запустите перевод (нажмите **~**).

## Рекомендуемые OCR-движки
- Рекомендуется использовать только **WindowsOCR**.

Tesseract устарел, работает медленно и часто допускает ошибки.  
EasyOCR ещё медленнее, требует значительных ресурсов (включая Nvidia GPU) и нередко приводит к ошибкам во время установки.  

Вероятно, лучше отказаться от всех остальных OCR-движков и оставить только WindowsOCR, однако они всё ещё присутствуют в Translumo по историческим причинам.

### Выбирайте минимальную область захвата
Меньшая область уменьшает вероятность захвата случайных символов с фона. Кроме того, распознавание текста будет идти быстрее.

### Используйте прокси, чтобы избежать блокировок переводчиков
Некоторые переводчики, такие как DeepL или Google Translate, могут временно блокировать ваш IP при слишком большом числе запросов. Чтобы этого избежать, добавьте один или два личных или общих IPv4-прокси в **Языки → Прокси**. Translumo будет автоматически чередовать прокси между запросами, снижая запросы с каждого отдельного IP и предотвращая блокировки.

### Используйте безрамочный или оконный режим в играх (не полноэкранный)
Эти режимы необходимы для корректного отображения окна перевода. Если игра не поддерживает их, используйте утилиты вроде [Borderless Gaming](https://github.com/Codeusa/Borderless-Gaming).

## FAQ

**Q: Появляется "Failed to capture screen" или ничего не происходит после запуска перевода**  
A: Убедитесь, что целевое окно активно. Перезапустите Translumo или откройте окно заново.

**Q: Безрамочный/оконный режим включен, но окно перевода под игрой**  
A: С фокусом на игре нажмите горячую клавишу (**Alt+T** по умолчанию), чтобы скрыть и показать окно перевода.

**Q: Не удалось скачать EasyOCR пакет**  
A: Попробуйте установить через VPN.

**Q: Горячие клавиши не работают**  
A: Другие приложения могут перехватывать клавиши.

**Q: Ошибка "Text detection is failed (TesseractOCREngine)**  
A: Убедитесь, что путь установки приложения содержит только латинские буквы.


## Сборка

*Необходимы Visual Studio 2022 и .NET 8 SDK.*

1. Клонируйте репозиторий:

```bash
git clone https://github.com/ramjke/Translumo.git
```

> Примечание: Во время сборки **binaries_extract.bat** автоматически скачает модели и Python-библиотеки (~400 МБ) в output.

## Альтернативные решения

- [Lookupper](https://lookupper.ru) — экранный словарь и переводчик для изучения языков.
- [ScreTran](https://github.com/PavlikBender/ScreTran) — простой экранный переводчик.
- [ScreenTranslator](https://github.com/OneMoreGres/ScreenTranslator) — инструмент для захвата экрана, распознавания текста (OCR) и перевода.

