Text translation
Paste text and translate with your current model, glossary, and style.
Translate Books with LLMs
Paste text and translate with your current model, glossary, and style.
Support for TXT, EPUB, SRT, DOCX, and PDF
Polish an existing translation — same language in, same language out
Inject a curated source-to-target term list into every chunk's prompt to keep entity translations consistent. Click Manage to create, edit or auto-extract terms.
Select custom instructions from the Custom_Instructions/ folder. Use .yaml files with translation: and/or refinement: keys to scope a preset per phase. Legacy .txt files still work and apply to both phases.
Run multiple LLM configurations side-by-side on a few extracts from your book — no full translation needed.
Support for TXT, EPUB, SRT, DOCX, and PDF
No results yet. Pick a file, configure columns, and click Run.
550 + (chunk size × 3) tokens of context window, and a failed chunk is retried in full. Suggested range: 450 (default, safest) to 800 for tag-heavy EPUB/DOCX, up to 1500-2000 for plain prose on a large-context cloud model. Actual chunks average about 80% of this value.
Saves API keys, endpoints, naming convention, and current model as default values in the .env file. Changes in this section are not auto-saved.
Get pinged on your phone, Discord channel, or any HTTP endpoint when a translation reaches a terminal state. Useful for long-running jobs with local models. Compatible with ntfy, gotify, Discord, Slack, Healthchecks.io, or any custom webhook. See docs/NOTIFICATIONS.md for the full reference.
Pick a service to pre-fill URL and payload, then edit the values to match your account.
{event}, {file}, {translation_id}, ...
{event}, {file}, {duration_seconds}, {provider}, {model}, {source_lang}, {target_lang}, {error}.
Click Save first, then Send test. The test uses the configuration currently on disk.
Loading files...
Total: 0 files, 0 MB
Tired of seeing the same character's name translated three different ways? A glossary gives the model a fixed mapping for any term you want to control: names, places, domain vocabulary, or stylistic choices. Reusable across jobs. Assign one below (or via Settings → Translation Options) to inject it into every chunk's prompt.
No glossaries yet. Create one from scratch or import an existing CSV / JSON file.
Give the model a reusable writing style — register, rhythm, imagery, dialogue conventions — extracted from books you already like or from a quick sample translation. Assign one below (or via Settings → Translation Options) to apply it to every chunk.
No styles yet. Extract one from books or start from a blank style.