Initial commit
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+250
@@ -0,0 +1,250 @@
|
||||
# 🌐 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
|
||||
|
||||
---
|
||||
|
||||
**Приятного использования! 🚀**
|
||||
Reference in New Issue
Block a user