This repository was archived by the owner on Apr 23, 2026. It is now read-only.
2.9.14: Dual-language reader with translation book split view
2.9.14
Dual-Language Reader (Translation Book)
A split-screen mode for reading a book alongside its translation in another language.
Features
- Split-screen view — opens a secondary ッツ reader panel below the primary book
- Draggable divider — drag the divider bar up/down to adjust the split ratio (20%–80%), ratio persisted per book
- Translation book toggle — dedicated button on the audio toolbar (between progress slider and menu) to show/hide the secondary panel
- Menu integration — "Set translation book" / "Change translation book" menu items with book title display and "Tap to change" subtitle
- Automatic title formatting — translation book is renamed to "Primary ⇨ Translation" format (e.g. "Erfolg ⇨ Success") in both the ッツ reader book list and the app's reader history
- Sort order preserved — translation book's
lastBookOpenis set to 0 so the primary book always appears first in book lists - Per-book persistence — translation book URL, title, and split ratio saved per primary book via Hive, restored on reopen
- Reading position persistence — auto-bookmark enabled in the secondary reader, so translation book position is saved independently
- Dictionary isolation — text selection in the translation book does not trigger dictionary lookups
Reader Margin Fix
- Removed hardcoded Tailwind padding (
py-8,px-4,md:px-8) from the ッツ reader's book container via CSS injection, eliminating the ~5% margins on all sides in both primary and secondary readers
Technical Notes
- Secondary WebView shares the same ッツ reader server (same port), so imported books are available in both panels
- Book URL detection handles SPA navigation (
/b?id=) by converting to direct-loadable format (/b.html?id=) before saving - Book title extracted from ッツ reader's
formatPageTitleoutput ("Title | ッツ Ebook Reader"→"Title") - CSS margin fix uses ID-checked style injection in both
onLoadStopandonTitleChangedto survive SPA navigation - IndexedDB title rename guarded by
⇨check to prevent re-renaming on subsequent opens