Book Translator
A platform for translating books and large text documents.
Two-step process. For better quality.
The tool processes text files using Ollama LLM models with a two-stage approach: primary translation followed by AI self-reflection and refinement for better results. Suitable for translators, publishers, authors, researchers and content creators who need to translate large text documents.
Support for multiple languages including English, Russian, Spanish, French, German, Italian, Portuguese, Chinese, Japanese, and Korean. Genre-specific modes (fiction, technical, academic, business, poetry), real-time translation progress tracking for both stages, translation history and status monitoring, automatic error recovery and retry mechanisms, and multi-format export (TXT, PDF, EPUB).
[](https://deepwiki.com/kroryan/book-translator)
## Installation
- Install Ollama
curl -fsSL https://ollama.com/install.sh | sh- Clone the repository
git clone https://github.com/KazKozDev/book-translator.git
cd book-translator- Install dependencies
pip install -r requirements.txt- Pull an Ollama model (choose any you prefer)
# Example with gpt-oss:20b
ollama pull gpt-oss:20b
# Or use other models:
# ollama pull llama3.2
# ollama pull qwen3
# ollama pull gemma3:12b
# ollama pull phi3- Start the application
Option 1: Desktop App (Windows .exe)
Download BookTranslator.exe from the Releases page or build it yourself:
pip install pyinstaller pystray Pillow
pyinstaller book_translator_onefile.spec
# The .exe will be in dist/BookTranslator.exeFeatures:
- System tray icon for background operation
- Server keeps running when you close the browser
- Reopen anytime from the tray icon
- Right-click tray icon → "Quit Completely" to exit
Option 2: Quick Launch (macOS)
./Launch\ Book-Translator.commandThis will automatically:
- Kill any process on port 5001
- Start the Flask server
- Open http://localhost:5001 in your browser
- Clear translation cache
Option 3: Manual start
python run.py
# Then open http://localhost:5001 in your browserDefault settings in run.py:
- Port: 5001
- Chunk size: 1000 characters
- Temperature varies by genre (0.3-0.8)
MIT License - see LICENSE
If you like this project, please give it a star ⭐ For questions, feedback, or support, open an issue or submit a PR.
Note: The previous version of this project is available in the archive-old-version branch.
