Files
ollama-translate-model/GUI_README.md
T
dinlo 4655401fd3 Initial commit
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 18:45:38 +08:00

12 KiB

🌐 Ollama Translator GUI

Современное графическое приложение для перевода текстов на русский язык с использованием uncensored модели Qwen3-14B.

Python CustomTkinter License

📸 Скриншот

┌─────────────────────────────────────────────────────────────┐
│  🌐 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

Шаги установки

  1. Клонируйте репозиторий или скачайте файлы
cd C:\Users\dimir\proects\ollama-translate-model
  1. Установите зависимости
pip install -r requirements.txt
  1. Убедитесь, что модель translator установлена
ollama list | grep translator

Если модели нет, создайте её:

ollama create translator -f Modelfile

🚀 Запуск

python translator_gui.py

📖 Использование

Способ 1: Ввод текста вручную

  1. Введите или вставьте текст в левое поле
  2. Нажмите кнопку "🔄 Перевести" или F5
  3. Дождитесь завершения перевода
  4. Скопируйте или сохраните результат

Способ 2: Открытие файла

  1. Нажмите "📁 Открыть файл" или Ctrl+O
  2. Выберите текстовый файл
  3. Нажмите "🔄 Перевести"
  4. Сохраните результат кнопкой "💾 Сохранить"

Способ 3: Drag & Drop

  1. Перетащите текстовый файл в окно приложения
  2. Файл автоматически загрузится
  3. Нажмите "🔄 Перевести"
  4. Сохраните результат

Способ 4: Буфер обмена

  1. Скопируйте текст в буфер обмена
  2. Нажмите "📋 Вставить" или Ctrl+V
  3. Нажмите "🔄 Перевести"
  4. Нажмите "📄 Копировать" для копирования результата

🎯 Примеры использования

Перевод короткого текста

Исходный текст: "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.

📞 Поддержка

Если у вас возникли проблемы:

  1. Проверьте раздел "Решение проблем"
  2. Убедитесь, что все зависимости установлены
  3. Проверьте, что модель translator работает через CLI

Приятного использования! 🚀