Files
ollama-translate-model/GUI_README.md
T

251 lines
12 KiB
Markdown
Raw Normal View History

2026-05-31 18:45:38 +08:00
# 🌐 Ollama Translator GUI
Современное графическое приложение для перевода текстов на русский язык с использованием uncensored модели Qwen3-14B.
![Python](https://img.shields.io/badge/Python-3.8+-blue.svg)
![CustomTkinter](https://img.shields.io/badge/CustomTkinter-5.2+-green.svg)
![License](https://img.shields.io/badge/License-MIT-yellow.svg)
## 📸 Скриншот
```
┌─────────────────────────────────────────────────────────────┐
│ 🌐 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. **Клонируйте репозиторий или скачайте файлы**
```bash
cd C:\Users\dimir\proects\ollama-translate-model
```
2. **Установите зависимости**
```bash
pip install -r requirements.txt
```
3. **Убедитесь, что модель translator установлена**
```bash
ollama list | grep translator
```
Если модели нет, создайте её:
```bash
ollama create translator -f Modelfile
```
## 🚀 Запуск
```bash
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 секунд для длинных текстов
- Автоматическая очистка ресурсов
## 🐛 Решение проблем
### Приложение не запускается
```bash
# Проверьте версию Python
python --version # Должна быть 3.8+
# Переустановите зависимости
pip install --upgrade customtkinter
```
### Ошибка "ollama not found"
```bash
# Убедитесь, что ollama установлен и в PATH
ollama --version
# Проверьте модель
ollama list
```
### Перевод не работает
```bash
# Проверьте, что модель 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
---
**Приятного использования! 🚀**