Skip to content

DionisiuBrovka/DOCX-Translator

Repository files navigation

DOCX Translator

Веб-приложение для перевода Word-документов с русского на английский (и между любыми языками) через Groq API, с полным сохранением форматирования.

Что сохраняется

  • ✅ Inline-стили (жирный, курсив, подчёркивание, цвет шрифта, размер)
  • ✅ Таблицы (включая вложенные)
  • ✅ Картинки и их расположение
  • ✅ Колонтитулы (хедеры и футеры)
  • ✅ Стили параграфов (заголовки, списки, отступы)
  • ✅ Нумерация страниц, поля, ориентация

Как это работает

Ключевая идея — перевод на уровне runs (ранов). Каждый параграф в .docx состоит из ранов, где каждый хранит своё форматирование. Приложение:

  1. Извлекает текст из каждого рана
  2. Отправляет массив фрагментов в Groq API как JSON-массив
  3. Получает обратно массив той же длины с переводами
  4. Записывает переведённый текст обратно в раны, не трогая XML-атрибуты форматирования

Картинки остаются нетронутыми — они хранятся как бинарные части в .docx архиве.

Установка

# Клонировать/скачать проект
cd docx-translator

# Создать виртуальное окружение
python -m venv .venv
source .venv/bin/activate  # Linux/Mac
# .venv\Scripts\activate   # Windows

# Установить зависимости
pip install -r requirements.txt

Запуск

# Вариант 1: API-ключ через переменную окружения
export GROQ_API_KEY="gsk_..."
python app.py

# Вариант 2: ввести ключ через веб-интерфейс
python app.py

Открыть в браузере: http://localhost:5000

Переменные окружения

Переменная По умолчанию Описание
GROQ_API_KEY API-ключ Groq
GROQ_MODEL llama-3.3-70b-versatile Модель для перевода
PORT 5000 Порт веб-сервера
FLASK_DEBUG 0 Режим отладки (1 = вкл.)
SECRET_KEY встроенный Секрет Flask-сессий

Получение Groq API Key

  1. Зарегистрироваться на console.groq.com
  2. Перейти в API Keys → Create API Key
  3. Скопировать ключ (gsk_...)

Бесплатный тариф: ~30 req/min, 14,400 req/day — хватает для документов до ~50 страниц.

Рекомендации по моделям

Модель Качество Скорость Когда использовать
Llama 3.3 70B ⭐⭐⭐⭐⭐ ⚡⚡⚡ Основной выбор
DeepSeek R1 70B ⭐⭐⭐⭐⭐ ⚡⚡ Сложные тексты
Mixtral 8x7B ⭐⭐⭐⭐ ⚡⚡⚡⚡ Баланс цена/качество
Llama 3.1 8B ⭐⭐⭐ ⚡⚡⚡⚡⚡ Быстрый черновик

Ограничения

  • Текст внутри встроенных объектов (SmartArt, диаграммы) не переводится
  • Текст на картинках не переводится (нужен OCR)
  • Очень длинные параграфы могут упираться в лимит токенов модели
  • Синхронная обработка — большие документы блокируют сервер (для продакшена нужен Celery/RQ)

About

DOCX Translator — Перевод Word-документов с сохранением форматирования. Использует Groq API для быстрого перевода через LLM.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors