4655401fd3
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
12 KiB
12 KiB
🌐 Ollama Translator GUI
Современное графическое приложение для перевода текстов на русский язык с использованием uncensored модели Qwen3-14B.
📸 Скриншот
┌─────────────────────────────────────────────────────────────┐
│ 🌐 Ollama Translator 🌙 Темная тема│
├─────────────────────────────────────────────────────────────┤
│ │
│ 📝 Исходный текст │ 🇷🇺 Перевод на русский │
│ ┌─────────────────────────┐│┌─────────────────────────────┐│
│ │ │││ ││
│ │ Введите текст здесь... │││ Перевод появится здесь... ││
│ │ │││ ││
│ └─────────────────────────┘│└─────────────────────────────┘│
│ Символов: 0 | Слов: 0 │ Символов: 0 | Слов: 0 │
│ │
│ 📁 Открыть 📋 Вставить 🗑️ Очистить │
│ 🔄 Перевести │
│ 📄 Копировать 💾 Сохранить │
│ │
│ ✅ Готов к работе [████░░░░] │
└─────────────────────────────────────────────────────────────┘
✨ Основные возможности
🎯 Базовый функционал
- ✅ Перевод текста - автоматическое определение языка и перевод на русский
- ✅ Drag & Drop - перетаскивание файлов прямо в окно приложения
- ✅ Копирование/Вставка - быстрая работа с буфером обмена
- ✅ Открытие файлов - поддержка .txt, .md и других текстовых форматов
- ✅ Сохранение результатов - экспорт перевода в файл с выбором имени и пути
🎨 Интерфейс
- 🌓 Темная/Светлая тема - переключение одним кликом
- 📊 Счетчики символов и слов - для исходного текста и перевода
- ⏳ Индикатор прогресса - визуальная обратная связь при переводе
- 📍 Статус-бар - информация о текущих операциях
- 🎯 Современный дизайн - чистый и интуитивный интерфейс
⌨️ Горячие клавиши
Ctrl + O- Открыть файлCtrl + V- Вставить текстCtrl + S- Сохранить переводCtrl + EnterилиF5- Перевести текст
🔧 Технические особенности
- 🧵 Многопоточность - перевод не блокирует интерфейс
- 🔤 Автоопределение кодировки - поддержка UTF-8, CP1251, Latin-1
- 🚫 Фильтрация тегов мышления - чистый вывод без
<think>тегов - ⏱️ Таймаут защита - автоматическая отмена зависших переводов
📦 Установка
Требования
- Python 3.8 или выше
- Ollama с установленной моделью
translator - CustomTkinter
Шаги установки
- Клонируйте репозиторий или скачайте файлы
cd C:\Users\dimir\proects\ollama-translate-model
- Установите зависимости
pip install -r requirements.txt
- Убедитесь, что модель translator установлена
ollama list | grep translator
Если модели нет, создайте её:
ollama create translator -f Modelfile
🚀 Запуск
python translator_gui.py
📖 Использование
Способ 1: Ввод текста вручную
- Введите или вставьте текст в левое поле
- Нажмите кнопку "🔄 Перевести" или
F5 - Дождитесь завершения перевода
- Скопируйте или сохраните результат
Способ 2: Открытие файла
- Нажмите "📁 Открыть файл" или
Ctrl+O - Выберите текстовый файл
- Нажмите "🔄 Перевести"
- Сохраните результат кнопкой "💾 Сохранить"
Способ 3: Drag & Drop
- Перетащите текстовый файл в окно приложения
- Файл автоматически загрузится
- Нажмите "🔄 Перевести"
- Сохраните результат
Способ 4: Буфер обмена
- Скопируйте текст в буфер обмена
- Нажмите "📋 Вставить" или
Ctrl+V - Нажмите "🔄 Перевести"
- Нажмите "📄 Копировать" для копирования результата
🎯 Примеры использования
Перевод короткого текста
Исходный текст: "Hello, how are you today?"
Результат: "Привет, как у тебя дела сегодня?"
Перевод с китайского
Исходный текст: "你好世界"
Результат: "Привет мир"
Перевод технического текста
Исходный текст: "The API endpoint returns a JSON response"
Результат: "Конечная точка API возвращает ответ в формате JSON"
🔮 Идеи для улучшения
Планируемые функции
- История переводов - сохранение и просмотр предыдущих переводов
- Batch обработка - перевод нескольких файлов одновременно
- Экспорт в разные форматы - PDF, DOCX, HTML
- Настройки модели - выбор температуры, top_p и других параметров
- Сравнение переводов - параллельный просмотр нескольких вариантов
- Автосохранение - периодическое сохранение работы
- Поиск и замена - редактирование текста перед переводом
- Статистика - количество переведенных символов, времени и т.д.
- Плагины - поддержка дополнительных моделей и функций
- Облачная синхронизация - сохранение истории в облаке
Возможные улучшения интерфейса
- Разделитель с изменяемым размером - регулировка размера панелей
- Вкладки - работа с несколькими переводами одновременно
- Предпросмотр файлов - просмотр содержимого перед загрузкой
- Подсветка синтаксиса - для кода и markdown
- Zoom - изменение размера шрифта
- Полноэкранный режим - для фокусировки на работе
Дополнительные функции
- Обратный перевод - проверка качества перевода
- Голосовой ввод - перевод речи в текст и перевод
- OCR - распознавание текста с изображений
- Интеграция с браузером - расширение для перевода веб-страниц
- API сервер - использование приложения как сервиса
🛠️ Технические детали
Архитектура
translator_gui.py
├── TranslatorApp (главный класс)
│ ├── create_widgets() - создание UI элементов
│ ├── setup_drag_drop() - настройка drag & drop
│ ├── translate_text() - запуск перевода
│ ├── _translate_worker() - фоновый поток перевода
│ └── _update_translation() - обновление UI
Используемые библиотеки
- CustomTkinter - современный GUI фреймворк
- tkinter - базовый GUI (встроенный в Python)
- subprocess - запуск ollama команд
- threading - многопоточность для неблокирующего UI
- re - регулярные выражения для фильтрации вывода
Производительность
- Перевод выполняется в отдельном потоке
- UI остается отзывчивым во время перевода
- Таймаут 120 секунд для длинных текстов
- Автоматическая очистка ресурсов
🐛 Решение проблем
Приложение не запускается
# Проверьте версию Python
python --version # Должна быть 3.8+
# Переустановите зависимости
pip install --upgrade customtkinter
Ошибка "ollama not found"
# Убедитесь, что ollama установлен и в PATH
ollama --version
# Проверьте модель
ollama list
Перевод не работает
# Проверьте, что модель translator существует
ollama list | grep translator
# Пересоздайте модель
ollama create translator -f Modelfile
Проблемы с кодировкой
- Приложение автоматически пробует UTF-8, CP1251, Latin-1
- Если файл не открывается, конвертируйте его в UTF-8
📝 Лицензия
MIT License - свободное использование и модификация
👨💻 Автор
Создано с помощью Claude Code (Opus 4.8)
🤝 Вклад
Предложения и улучшения приветствуются! Создавайте issues и pull requests.
📞 Поддержка
Если у вас возникли проблемы:
- Проверьте раздел "Решение проблем"
- Убедитесь, что все зависимости установлены
- Проверьте, что модель translator работает через CLI
Приятного использования! 🚀