saturngod / Sagar
git clone https://github.com/saturngod/Sagar.git
v0.3.3 · today
ePub Translation
—
stars, 24h
+29
stars, 7 days · #1,363
+29
stars, 30 days · #9,086
29
★ total · +29% this week
4
forks · 1 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageRust
License—
Created2026-10-13 (7d ago)
Last pushtoday
Watchers0
OwnerUser
Links
- GitHub: github.com/saturngod/Sagar
- Releases · Issues · Hacker News mentions
README excerpt
# Sagar — EPUB Translation Studio An offline-first desktop app for manually translating DRM-free EPUB books, side by side, without losing the original formatting. Read the original chapter on the left, write the translation on the right, review chapters, and export a separate translated EPUB. Built with Tauri 2, React, TypeScript and Rust; SQLite stores project data locally. **No** **account,** **no** **network:** **book** **content** **never** **leaves** **the** **machine.** ## Development (Bun + Rust) [code] Requires the **Tauri** **2** **prerequisites** for your OS (see https://v2.tauri.app/start/prerequisites/ ). ## Release (version tags) The version lives in 4 files that must always agree: `package.json`, `src-tauri/tauri.conf.json`, `src-tauri/Cargo.toml`, and `src-tauri/Cargo.lock` (the `sagar` entry). Never edit them by hand — one command bumps all four, commits, and tags: [code] Pushing a `v*` tag triggers the release workflow, which builds for macOS/Windows/Linux. Helpers: [code] There is no git hook for tag creation, so the `pre-push` hook validates the tagged commit itself and blocks mismatched tags before they reach CI. ## How it works 1. **Import** — open a DRM-free, reflowable EPUB 3 file. The app validates the archive safely, reads metadata/manifest/spine/navigation, copies an immutable snapshot into app-owned storage, and detects translatable blocks (headings, paragraphs, list items, captions). 1. **Translate** — chapters are listed in reading order. Each chapter shows the original (read-only) next to an editable translation. Chapter documents autosave with revision protection; you can mark chapters **reviewed** or choose **keep** **original**. Text structures the editor cannot translate safely (tables, preformatted text, MathML…) are preserved unchanged and listed as import notes. 1. **Export** — a review dialog shows exactly what is translated. A completed export requires every chapter reviewed or intentionally kept original; a draft export keeps untranslated chapters in the original language after explicit acknowledgement. The exported book is a new file: translated fragments are spliced into a copy of the original XHTML, so images, links, footnotes and structure are preserved, and the output is re-validated before the app reports success. ## Where your data lives - Database and immutable book snapshots: `~/Library/Application Support/app.myanmars.sagar` (macOS; equivalent app-data directories on Windows/Linux). - Delete that folder to reset the library (this also deletes translations). - The original EPUB file you open is never modified. - Presentation preferences (theme, text size, pane widths) live in the WebView's local storage, separate from translations. ## Translate using AI The AI dialog supports two workflows: - **Whole**** ****chapter** keeps the original Generate/Retry workflow for short chapters. - **Selected**** ****paragraphs** lets you choose passages, whole tables, and standalone images. Text is translate