4655401fd3
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
251 lines
12 KiB
Markdown
251 lines
12 KiB
Markdown
# 🌐 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
|
|
|
|
### Шаги установки
|
|
|
|
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
|
|
|
|
---
|
|
|
|
**Приятного использования! 🚀**
|