🌍📄✨ Immersive translation of Word docx files
Project description
English · Français · Deutsch · 简体中文 · 繁體中文 · 한국어 · Português
Looking for someone to translate this README.
Pure, unadulterated vibe coding powers this entire beast of a project.
DocxTranslator is a tool to translate Word documents (.docx) using OpenAI's API. It preserves the original document formatting and adds translations below each paragraph.
⤷ If these images breaks, you can view them on Github
✨ Features
- 🔄 Translate Word documents (.docx) using OpenAI GPT models
- 🎨 Preserve document formatting and structure
- 🌐 Add translations directly below the original text
- 💻 Command-line interface for easy integration into scripts
- 🌍 Web interface powered by Streamlit
- 💾 Translation caching to avoid redundant API calls
- ⚡ Parallel processing for faster translation
- 🔧 Support for custom OpenAI API endpoints
📦 Installation
Via Pip
pip install docx-translator
Via Docker
You can use the prebuilt Docker image to get started immediately:
# Pull the prebuilt image
docker pull johndope/docx-translator:latest
# Run with your API key
docker run -p 8501:8501 -e OPENAI_API_KEY=your-api-key johndope/docx-translator
🖥️ Command Line Usage
After installation, you can use the dt command to translate documents:
# Basic usage
dt translate document.docx Spanish
# Specify output file
dt translate document.docx French --output translated_document.docx
# Translate specific paragraph styles
dt translate document.docx German --styles "Normal,Heading 1,List Paragraph"
# Use a different model
dt translate document.docx Japanese --model gpt-4o
# Disable caching
dt translate document.docx Chinese --no-cache
# Clear cache for a language before translation
dt translate document.docx Italian --clear-cache
# Process sequentially (instead of in parallel)
dt translate document.docx Russian --sequential
# Show verbose logging
dt translate document.docx Portuguese --verbose
🧹 Clear Translation Caches
dt clear-caches
🚀 Launch Web Interface
dt serve
🐳 Docker Usage
You can run DocxTranslator using Docker:
Option 1: Using prebuilt image (recommended)
# Pull the prebuilt image
docker pull johndope/docx-translator:latest
# Run with your API key
docker run -p 8501:8501 -e OPENAI_API_KEY=your-api-key johndope/docx-translator
Option 2: Using docker-compose
# Create a .env file with your OpenAI API key and other settings
echo "OPENAI_API_KEY=your-api-key" > .env
# Build and start the Docker container
docker-compose up -d
# Access the web interface at http://localhost:8501
The Docker setup:
- 📂 Uses the installed package directly via the
dtcommand - 💽 Mounts a cache directory for persistent translations
- 📁 Mounts a data directory for sharing documents with the container
🔑 Environment Variables
You can set the following environment variables (or use a .env file):
OPENAI_API_KEY: Your OpenAI API keyOPENAI_BASE_URL: Custom base URL for OpenAI API (optional)OPENAI_MODEL: The model to use (default: gpt-4-turbo)OPENAI_MAX_CONCURRENT: Maximum concurrent requests (default: 5)TARGET_LANGUAGE: Default target language (default: Spanish)DOCX_TRANSLATOR_CACHE_DIR: Custom cache directory
🐍 Python API
You can also use DocxTranslator programmatically:
from pathlib import Path
from docx_translator.translator import setup_openai_client, process_document
# Set up OpenAI client
client = setup_openai_client(api_key="your-api-key")
# Translate document
process_document(
input_file=Path("document.docx"),
output_file=Path("translated_document.docx"),
target_language="Spanish",
target_styles=["Normal", "Heading 1"],
openai_client=client,
use_cache=True,
parallel=True,
max_concurrent=5
)
🌐 Web Interface
DocxTranslator includes a web interface powered by Streamlit. To start it:
dt serve
This will launch a local web server where you can:
- 📤 Upload Word documents
- 🎯 Select which paragraph styles to translate
- ⚙️ Configure OpenAI API settings
- 🚀 Start translations with progress tracking
- 📥 Download the translated document
📜 License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file docx_translator-0.1.10.tar.gz.
File metadata
- Download URL: docx_translator-0.1.10.tar.gz
- Upload date:
- Size: 23.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d24b029ce20fa461a2d9fa7c64e58d778d61b3b6271e082e404c257b9cd5e104
|
|
| MD5 |
1ec87530ed10f45c617a5a058830a0b0
|
|
| BLAKE2b-256 |
02a484908cf3cb08f5823aba2d483a2419d59b4adcbfb1c9d5152bb9092336c7
|
File details
Details for the file docx_translator-0.1.10-py3-none-any.whl.
File metadata
- Download URL: docx_translator-0.1.10-py3-none-any.whl
- Upload date:
- Size: 22.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c58b4531ffd7ce868d6674429f4029f508a44fcf70fb0f350a38518477895a58
|
|
| MD5 |
7bc9d4d4c08199e91085227758295bea
|
|
| BLAKE2b-256 |
657db6c2637619d71edd431783e9f9b3bad3b8aa1a7e573ccacf5f694b17fd89
|