`. The `tabIndex={-1}` made the decorative div click/touch-focusable. Android WebView long-press focused it and painted the browser default focus ring (`outline: auto`, matched `:focus-visible`). It's a top-document element pinned `absolute bottom-0` at book-view width, so the ring shows as a content-width box at the bottom on *every* page until focus clears. NOT a range/slider input — those are `opacity-0`/`visibility:hidden` (red herring: globals.css excludes `input[type='range']` from its outline-suppression rule, but that's unrelated here).
+
+**Fix:** remove `tabIndex={-1}`. A `role='presentation'` decorative element must not be focusable. `onClick` (tap-to-cycle progress mode / dismiss annotation popup) fires regardless of tabindex, and no ancestor has a real `tabindex` to grab focus instead (verified: focus falls through to ``). Nothing programmatically focuses `.progressinfo`. Test asserts `.progressinfo` has no `tabindex` attribute (in `ProgressBar.test.tsx`).
+
+**Debugging technique that worked:** download the issue video (`gh` attachment URL) → `ffmpeg` extract frames → zoom on the line; the **downward corner at the right end** revealed it was a rectangular *outline* (focus box), not a strikethrough/selection. Then in the live dev app (`mcp__claude-in-chrome__javascript_tool`): `el.focus(); el.matches(':focus-visible'); getComputedStyle(el).outlineStyle` → returned `true` / `auto`, confirming the element + mechanism. See [[annotator-reader-fixes]] [[layout-ui-fixes]].
diff --git a/apps/readest-app/.claude/memory/table-dark-mode-tint-4419.md b/apps/readest-app/.claude/memory/table-dark-mode-tint-4419.md
new file mode 100644
index 00000000..b2d46799
--- /dev/null
+++ b/apps/readest-app/.claude/memory/table-dark-mode-tint-4419.md
@@ -0,0 +1,38 @@
+---
+name: table-dark-mode-tint-4419
+description: "Dark-mode table tint must stay gated on overrideColor; blanket `table *` color-mix breaks plain tables AND vertical-TOC spacer cells"
+metadata:
+ node_type: memory
+ type: project
+ originSessionId: 114eeb22-c9b6-480d-8305-3a3190855638
+---
+
+`getColorStyles` in `src/utils/style.ts` has a rule:
+`blockquote, table * { background-color: color-mix(in srgb, ${bg} 80%, #000) }` in dark mode.
+The `table *` part **must** be gated on `overrideColor` — `${isDarkMode && overrideColor ? ...}`.
+
+**This gate has regressed twice.** #2377 (PR #2379) first added it ("avoid overriding
+table background by default"). #4055 (commit `cead0f42e`, closes #4028/#4029) **removed**
+the gate to darken illegible white zebra-stripe rows — which re-broke it and caused #4419:
+*every* dark-mode table (and its cells) gets a tint a few shades off the page bg, even
+tables with no background of their own.
+
+Why the gate is safe now: #4392 (`176b950c9`) added light-background rewriters that map
+only actually-light backgrounds → page `bg` in dark mode, regardless of overrideColor —
+`getDarkModeLightBackgroundOverrides` (inline styles) + the `transformStylesheet` dark-mode
+block (stylesheet rules, `isLightCssColor` luminance > 0.85). So #4028's white zebra rows
+stay legible without the blanket tint. The blockquote-only tint (standalone `blockquote {}`
+rule, from #2538) stays unconditional in dark mode — that's intended.
+
+**Symptom #2 shares this root cause.** #4419 also reported "spacing between words changes"
+on a vertical (writing-mode) 目录/TOC page. Those CJK web-novel books lay the TOC out as a
+`
` with empty `| ` spacer columns and `▉` spacers
+(custom "space" font; ▉ U+2589 is a **blank glyph, contours=0** — pure advance width, no
+outline). The blanket `table *` rule paints a background on those spacer spans/cells,
+making the invisible gaps show as tinted blocks → looks like the spacing changed. It's the
+painted **background**, not text color, that reveals them — recoloring `.co0` (`color:#000`
+→ fg) does nothing because the glyph has no outline. Gating the tint fixes both symptoms.
+
+Tests live in `src/__tests__/utils/style-get-styles.test.ts` (assert the `blockquote,
+table *` block has no `color-mix` when overrideColor false; keep the override-true and
+blockquote-still-tinted cases). Related: [[css-style-fixes]].
diff --git a/apps/readest-app/.claude/memory/tauri-menu-append-race-4389.md b/apps/readest-app/.claude/memory/tauri-menu-append-race-4389.md
new file mode 100644
index 00000000..3a25bca5
--- /dev/null
+++ b/apps/readest-app/.claude/memory/tauri-menu-append-race-4389.md
@@ -0,0 +1,36 @@
+---
+name: tauri-menu-append-race-4389
+description: "Un-awaited Tauri Menu.append() races on IPC → context menu items shuffle order randomly; fix = single Menu.new({ items })"
+metadata:
+ node_type: memory
+ type: project
+ originSessionId: 8169b903-f66e-4c35-b90f-6b9110837588
+---
+
+#4389 — the bookshelf right-click context menu (Windows/Edge WebView2) showed the
+same items but in a **randomly changing order** on every open.
+
+**Root cause:** `Menu.append()` from `@tauri-apps/api/menu` returns `Promise`
+— each call is an async IPC round-trip to the Rust backend. `BookshelfItem.tsx`
+fired ~11 `menu.append(item)` calls **without awaiting** (then `menu.popup()` also
+un-awaited). The concurrent IPC requests resolve in non-deterministic order on the
+Rust side, so items land shuffled. Synchronous JS call order is correct — the race
+is purely in async resolution, which is why it's invisible in jsdom and only shows
+on the native app.
+
+**Fix:** build the items array in order and create the menu in ONE call:
+`const menu = await Menu.new({ items })` then `await menu.popup()`.
+`MenuOptions.items` / `append()` accept plain `MenuItemOptions` (`{ text, action }`)
+arrays — no need to pre-create `MenuItem.new()` per item at all. Applied to both
+book and group handlers.
+
+**Testability:** extracted the order/inclusion logic into a pure
+`getBookContextMenuItemIds(book): BookContextMenuItemId[]` in
+`src/app/library/utils/libraryUtils.ts` (dep-light, already test-covered) so the
+deterministic ordering is unit-testable without mounting the component or mocking
+Tauri. Test: `src/__tests__/app/library/book-context-menu.test.ts`. The pure fn
+guards the order contract; the `Menu.new({ items })` wiring is what kills the race.
+
+**General lesson:** any un-awaited sequence of Tauri/IPC mutations that must stay
+ordered (append, insert, etc.) is a latent race — batch into one call or await each.
+See [[bug-patterns]].
diff --git a/apps/readest-app/.claude/memory/txt-author-recognition-4390.md b/apps/readest-app/.claude/memory/txt-author-recognition-4390.md
new file mode 100644
index 00000000..8abd6efc
--- /dev/null
+++ b/apps/readest-app/.claude/memory/txt-author-recognition-4390.md
@@ -0,0 +1,37 @@
+---
+name: txt-author-recognition-4390
+metadata:
+ node_type: memory
+ type: project
+ originSessionId: f151827f-0bf2-4307-ac92-e6077df54d19
+---
+
+Issue #4390: imported Chinese web-novels showed author either **missing (未知)** or
+as an **irrelevant metadata blob** (e.g. `2024/08/01发表于:是否首发:是字数1023150字116:01`).
+
+**Key debugging tell:** the displayed *title* was the **entire filename** including
+`作者:X` (e.g. `【月如无恨月长圆】(1-154)作者:陈西`). A real EPUB's `dc:title` would
+be just the book name. Full-filename title ⇒ the file went through Readest's
+**TXT→EPUB converter** (`bookService.ts` `/\.txt$/` → `TxtToEpubConverter`), which
+sets `bookTitle = base filename` in the no-`《》` branch of `extractTxtFilenameMetadata`.
+So "EPUB format" books can still be TXT-origin — check `src/utils/txt.ts`, not foliate-js,
+when title looks like a filename. (Native Rust EPUB parser #4369 was NOT shipped in 0.11.2.)
+
+Two root causes in `src/utils/txt.ts`:
+1. `extractTxtFilenameMetadata` only pulled an author from `《》`-wrapped names; `【】`
+ names (the web-novel norm) got no filename author.
+2. Greedy header capture `/[【\[]?作者[】\]]?[::\s]\s*(.+)\r?\n/` grabbed a whole noisy
+ metadata line as the author.
+
+Fix:
+- `parseLabeledAuthor(base)` extracts the labeled `作者:X` from ANY filename; title stays
+ the full name. Only the *labeled* form is safe on a full filename — a bracketed/bare
+ fallback would mistake a leading `【title】` for the author.
+- `isPlausibleAuthorName()` rejects a header match that looks like a blob (contains `:`/`:`,
+ a `\d{4,}` run, or length > 20) → falls back to the filename author. Applied in BOTH
+ `convertSmallFile` and `extractAuthorAndLanguage` (large-file path).
+
+Note: the `著` form is handled for file *content* headers but NOT for filenames (kept minimal).
+Reported files were 455 kB / 1.25 MB → both under the 8 MB `LARGE_TXT_THRESHOLD_BYTES`
+(`convertSmallFile` path). Tests live in `txt-converter.test.ts` (faithful repro of both
+reported strings). Related: [[bug-patterns]].
diff --git a/apps/readest-app/public/locales/ar/translation.json b/apps/readest-app/public/locales/ar/translation.json
index e47e777a..1e2e31b7 100644
--- a/apps/readest-app/public/locales/ar/translation.json
+++ b/apps/readest-app/public/locales/ar/translation.json
@@ -1827,5 +1827,9 @@
"No Annotations": "لا توجد تعليقات توضيحية",
"No Bookmarks": "لا توجد إشارات مرجعية",
"Select some text to highlight": "حدّد نصًا لتمييزه",
- "Bookmark This Page": "أضف إشارة مرجعية لهذه الصفحة"
+ "Bookmark This Page": "أضف إشارة مرجعية لهذه الصفحة",
+ "Book file is not available locally": "ملف الكتاب غير متوفر محليًا",
+ "Failed to send book": "فشل إرسال الكتاب",
+ "Send": "إرسال",
+ "Highlight Current Sentence": "تمييز الجملة الحالية"
}
diff --git a/apps/readest-app/public/locales/bn/translation.json b/apps/readest-app/public/locales/bn/translation.json
index 02db7a21..775027fc 100644
--- a/apps/readest-app/public/locales/bn/translation.json
+++ b/apps/readest-app/public/locales/bn/translation.json
@@ -1695,5 +1695,9 @@
"No Annotations": "কোনো টীকা নেই",
"No Bookmarks": "কোনো বুকমার্ক নেই",
"Select some text to highlight": "হাইলাইট করতে কিছু লেখা নির্বাচন করুন",
- "Bookmark This Page": "এই পৃষ্ঠা বুকমার্ক করুন"
+ "Bookmark This Page": "এই পৃষ্ঠা বুকমার্ক করুন",
+ "Book file is not available locally": "বইয়ের ফাইলটি স্থানীয়ভাবে উপলব্ধ নয়",
+ "Failed to send book": "বই পাঠাতে ব্যর্থ হয়েছে",
+ "Send": "পাঠান",
+ "Highlight Current Sentence": "বর্তমান বাক্য হাইলাইট করুন"
}
diff --git a/apps/readest-app/public/locales/bo/translation.json b/apps/readest-app/public/locales/bo/translation.json
index 96977d66..6d9805fa 100644
--- a/apps/readest-app/public/locales/bo/translation.json
+++ b/apps/readest-app/public/locales/bo/translation.json
@@ -1662,5 +1662,9 @@
"No Annotations": "མཆན་མེད།",
"No Bookmarks": "དཔེ་རྟགས་མེད།",
"Select some text to highlight": "འོག་ཐིག་གཏོང་བར་ཡི་གེ་འདེམས་རོགས།",
- "Bookmark This Page": "ཤོག་ངོས་འདིར་དཔེ་རྟགས་འགོད།"
+ "Bookmark This Page": "ཤོག་ངོས་འདིར་དཔེ་རྟགས་འགོད།",
+ "Book file is not available locally": "དེབ་ཀྱི་ཡིག་ཆ་དེ་ས་གནས་སུ་མི་འདུག",
+ "Failed to send book": "དེབ་སྐུར་གཏོང་མ་ཐུབ།",
+ "Send": "སྐུར་གཏོང་།",
+ "Highlight Current Sentence": "ད་ལྟའི་ཚིག་གྲུབ་ལ་འོག་ཐིག་གཏོང་།"
}
diff --git a/apps/readest-app/public/locales/de/translation.json b/apps/readest-app/public/locales/de/translation.json
index 50382470..0d745095 100644
--- a/apps/readest-app/public/locales/de/translation.json
+++ b/apps/readest-app/public/locales/de/translation.json
@@ -1695,5 +1695,9 @@
"No Annotations": "Keine Anmerkungen",
"No Bookmarks": "Keine Lesezeichen",
"Select some text to highlight": "Wähle Text zum Hervorheben aus",
- "Bookmark This Page": "Diese Seite mit Lesezeichen versehen"
+ "Bookmark This Page": "Diese Seite mit Lesezeichen versehen",
+ "Book file is not available locally": "Buchdatei ist nicht lokal verfügbar",
+ "Failed to send book": "Senden des Buchs fehlgeschlagen",
+ "Send": "Senden",
+ "Highlight Current Sentence": "Aktuellen Satz hervorheben"
}
diff --git a/apps/readest-app/public/locales/el/translation.json b/apps/readest-app/public/locales/el/translation.json
index c0eb9df1..68799d54 100644
--- a/apps/readest-app/public/locales/el/translation.json
+++ b/apps/readest-app/public/locales/el/translation.json
@@ -1695,5 +1695,9 @@
"No Annotations": "Κανένας σχολιασμός",
"No Bookmarks": "Κανένας σελιδοδείκτης",
"Select some text to highlight": "Επιλέξτε κείμενο για επισήμανση",
- "Bookmark This Page": "Προσθήκη σελιδοδείκτη σε αυτή τη σελίδα"
+ "Bookmark This Page": "Προσθήκη σελιδοδείκτη σε αυτή τη σελίδα",
+ "Book file is not available locally": "Το αρχείο του βιβλίου δεν είναι διαθέσιμο τοπικά",
+ "Failed to send book": "Αποτυχία αποστολής βιβλίου",
+ "Send": "Αποστολή",
+ "Highlight Current Sentence": "Επισήμανση τρέχουσας πρότασης"
}
diff --git a/apps/readest-app/public/locales/es/translation.json b/apps/readest-app/public/locales/es/translation.json
index b38e4eb1..bf5951f7 100644
--- a/apps/readest-app/public/locales/es/translation.json
+++ b/apps/readest-app/public/locales/es/translation.json
@@ -1728,5 +1728,9 @@
"No Annotations": "Sin anotaciones",
"No Bookmarks": "Sin marcadores",
"Select some text to highlight": "Selecciona texto para resaltar",
- "Bookmark This Page": "Añadir esta página a marcadores"
+ "Bookmark This Page": "Añadir esta página a marcadores",
+ "Book file is not available locally": "El archivo del libro no está disponible localmente",
+ "Failed to send book": "No se pudo enviar el libro",
+ "Send": "Enviar",
+ "Highlight Current Sentence": "Resaltar la oración actual"
}
diff --git a/apps/readest-app/public/locales/fa/translation.json b/apps/readest-app/public/locales/fa/translation.json
index 466838ab..9213644a 100644
--- a/apps/readest-app/public/locales/fa/translation.json
+++ b/apps/readest-app/public/locales/fa/translation.json
@@ -1695,5 +1695,9 @@
"No Annotations": "هیچ حاشیهنویسیای نیست",
"No Bookmarks": "هیچ نشانکی نیست",
"Select some text to highlight": "برای هایلایت کردن، متنی را انتخاب کنید",
- "Bookmark This Page": "افزودن این صفحه به نشانکها"
+ "Bookmark This Page": "افزودن این صفحه به نشانکها",
+ "Book file is not available locally": "فایل کتاب به صورت محلی در دسترس نیست",
+ "Failed to send book": "ارسال کتاب ناموفق بود",
+ "Send": "ارسال",
+ "Highlight Current Sentence": "برجستهسازی جملهٔ فعلی"
}
diff --git a/apps/readest-app/public/locales/fr/translation.json b/apps/readest-app/public/locales/fr/translation.json
index 1952e58f..15b495a0 100644
--- a/apps/readest-app/public/locales/fr/translation.json
+++ b/apps/readest-app/public/locales/fr/translation.json
@@ -1728,5 +1728,9 @@
"No Annotations": "Aucune annotation",
"No Bookmarks": "Aucun signet",
"Select some text to highlight": "Sélectionnez du texte à surligner",
- "Bookmark This Page": "Ajouter cette page aux signets"
+ "Bookmark This Page": "Ajouter cette page aux signets",
+ "Book file is not available locally": "Le fichier du livre n'est pas disponible localement",
+ "Failed to send book": "Échec de l'envoi du livre",
+ "Send": "Envoyer",
+ "Highlight Current Sentence": "Surligner la phrase actuelle"
}
diff --git a/apps/readest-app/public/locales/he/translation.json b/apps/readest-app/public/locales/he/translation.json
index 7a8813cd..505c5c5f 100644
--- a/apps/readest-app/public/locales/he/translation.json
+++ b/apps/readest-app/public/locales/he/translation.json
@@ -1728,5 +1728,9 @@
"No Annotations": "אין הדגשות",
"No Bookmarks": "אין סימניות",
"Select some text to highlight": "בחרו טקסט להדגשה",
- "Bookmark This Page": "הוסיפו דף זה לסימניות"
+ "Bookmark This Page": "הוסיפו דף זה לסימניות",
+ "Book file is not available locally": "קובץ הספר אינו זמין באופן מקומי",
+ "Failed to send book": "שליחת הספר נכשלה",
+ "Send": "שליחה",
+ "Highlight Current Sentence": "הדגשת המשפט הנוכחי"
}
diff --git a/apps/readest-app/public/locales/hi/translation.json b/apps/readest-app/public/locales/hi/translation.json
index 9bacd197..9a1bcfe1 100644
--- a/apps/readest-app/public/locales/hi/translation.json
+++ b/apps/readest-app/public/locales/hi/translation.json
@@ -1695,5 +1695,9 @@
"No Annotations": "कोई टिप्पणी नहीं",
"No Bookmarks": "कोई बुकमार्क नहीं",
"Select some text to highlight": "हाइलाइट करने के लिए कुछ टेक्स्ट चुनें",
- "Bookmark This Page": "इस पृष्ठ को बुकमार्क करें"
+ "Bookmark This Page": "इस पृष्ठ को बुकमार्क करें",
+ "Book file is not available locally": "पुस्तक फ़ाइल स्थानीय रूप से उपलब्ध नहीं है",
+ "Failed to send book": "पुस्तक भेजने में विफल",
+ "Send": "भेजें",
+ "Highlight Current Sentence": "वर्तमान वाक्य को हाइलाइट करें"
}
diff --git a/apps/readest-app/public/locales/hu/translation.json b/apps/readest-app/public/locales/hu/translation.json
index 601c170d..80446ac7 100644
--- a/apps/readest-app/public/locales/hu/translation.json
+++ b/apps/readest-app/public/locales/hu/translation.json
@@ -1695,5 +1695,9 @@
"No Annotations": "Nincsenek megjegyzések",
"No Bookmarks": "Nincsenek könyvjelzők",
"Select some text to highlight": "Jelölj ki szöveget a kiemeléshez",
- "Bookmark This Page": "Oldal hozzáadása a könyvjelzőkhöz"
+ "Bookmark This Page": "Oldal hozzáadása a könyvjelzőkhöz",
+ "Book file is not available locally": "A könyvfájl nem érhető el helyileg",
+ "Failed to send book": "A könyv küldése sikertelen",
+ "Send": "Küldés",
+ "Highlight Current Sentence": "Aktuális mondat kiemelése"
}
diff --git a/apps/readest-app/public/locales/id/translation.json b/apps/readest-app/public/locales/id/translation.json
index 06dc47f8..6a8cf2b3 100644
--- a/apps/readest-app/public/locales/id/translation.json
+++ b/apps/readest-app/public/locales/id/translation.json
@@ -1662,5 +1662,9 @@
"No Annotations": "Tidak ada anotasi",
"No Bookmarks": "Tidak ada penanda",
"Select some text to highlight": "Pilih teks untuk disorot",
- "Bookmark This Page": "Tandai halaman ini"
+ "Bookmark This Page": "Tandai halaman ini",
+ "Book file is not available locally": "Berkas buku tidak tersedia secara lokal",
+ "Failed to send book": "Gagal mengirim buku",
+ "Send": "Kirim",
+ "Highlight Current Sentence": "Sorot kalimat saat ini"
}
diff --git a/apps/readest-app/public/locales/it/translation.json b/apps/readest-app/public/locales/it/translation.json
index e3ba50db..f7cb01e1 100644
--- a/apps/readest-app/public/locales/it/translation.json
+++ b/apps/readest-app/public/locales/it/translation.json
@@ -1728,5 +1728,9 @@
"No Annotations": "Nessuna annotazione",
"No Bookmarks": "Nessun segnalibro",
"Select some text to highlight": "Seleziona del testo da evidenziare",
- "Bookmark This Page": "Aggiungi questa pagina ai segnalibri"
+ "Bookmark This Page": "Aggiungi questa pagina ai segnalibri",
+ "Book file is not available locally": "Il file del libro non è disponibile localmente",
+ "Failed to send book": "Invio del libro non riuscito",
+ "Send": "Invia",
+ "Highlight Current Sentence": "Evidenzia la frase corrente"
}
diff --git a/apps/readest-app/public/locales/ja/translation.json b/apps/readest-app/public/locales/ja/translation.json
index ad7cdfca..595f6048 100644
--- a/apps/readest-app/public/locales/ja/translation.json
+++ b/apps/readest-app/public/locales/ja/translation.json
@@ -1662,5 +1662,9 @@
"No Annotations": "注釈がありません",
"No Bookmarks": "ブックマークがありません",
"Select some text to highlight": "ハイライトするテキストを選択してください",
- "Bookmark This Page": "このページをブックマーク"
+ "Bookmark This Page": "このページをブックマーク",
+ "Book file is not available locally": "書籍ファイルがローカルに存在しません",
+ "Failed to send book": "書籍の送信に失敗しました",
+ "Send": "送信",
+ "Highlight Current Sentence": "現在の文をハイライト"
}
diff --git a/apps/readest-app/public/locales/ko/translation.json b/apps/readest-app/public/locales/ko/translation.json
index 9b72cd6b..ee849e5f 100644
--- a/apps/readest-app/public/locales/ko/translation.json
+++ b/apps/readest-app/public/locales/ko/translation.json
@@ -1662,5 +1662,9 @@
"No Annotations": "주석 없음",
"No Bookmarks": "북마크 없음",
"Select some text to highlight": "하이라이트할 텍스트를 선택하세요",
- "Bookmark This Page": "이 페이지 북마크"
+ "Bookmark This Page": "이 페이지 북마크",
+ "Book file is not available locally": "책 파일을 로컬에서 사용할 수 없습니다",
+ "Failed to send book": "책 보내기에 실패했습니다",
+ "Send": "보내기",
+ "Highlight Current Sentence": "현재 문장 강조"
}
diff --git a/apps/readest-app/public/locales/ms/translation.json b/apps/readest-app/public/locales/ms/translation.json
index 433cabe8..59eb94b7 100644
--- a/apps/readest-app/public/locales/ms/translation.json
+++ b/apps/readest-app/public/locales/ms/translation.json
@@ -1662,5 +1662,9 @@
"No Annotations": "Tiada anotasi",
"No Bookmarks": "Tiada penanda buku",
"Select some text to highlight": "Pilih teks untuk ditonjolkan",
- "Bookmark This Page": "Tanda halaman ini"
+ "Bookmark This Page": "Tanda halaman ini",
+ "Book file is not available locally": "Fail buku tidak tersedia secara setempat",
+ "Failed to send book": "Gagal menghantar buku",
+ "Send": "Hantar",
+ "Highlight Current Sentence": "Serlahkan ayat semasa"
}
diff --git a/apps/readest-app/public/locales/nl/translation.json b/apps/readest-app/public/locales/nl/translation.json
index 147d0f45..4f2b4b33 100644
--- a/apps/readest-app/public/locales/nl/translation.json
+++ b/apps/readest-app/public/locales/nl/translation.json
@@ -1695,5 +1695,9 @@
"No Annotations": "Geen aantekeningen",
"No Bookmarks": "Geen bladwijzers",
"Select some text to highlight": "Selecteer tekst om te markeren",
- "Bookmark This Page": "Deze pagina als bladwijzer toevoegen"
+ "Bookmark This Page": "Deze pagina als bladwijzer toevoegen",
+ "Book file is not available locally": "Boekbestand is niet lokaal beschikbaar",
+ "Failed to send book": "Verzenden van boek mislukt",
+ "Send": "Verzenden",
+ "Highlight Current Sentence": "Huidige zin markeren"
}
diff --git a/apps/readest-app/public/locales/pl/translation.json b/apps/readest-app/public/locales/pl/translation.json
index 03297142..c40c632b 100644
--- a/apps/readest-app/public/locales/pl/translation.json
+++ b/apps/readest-app/public/locales/pl/translation.json
@@ -1761,5 +1761,9 @@
"No Annotations": "Brak adnotacji",
"No Bookmarks": "Brak zakładek",
"Select some text to highlight": "Wybierz tekst do podświetlenia",
- "Bookmark This Page": "Dodaj tę stronę do zakładek"
+ "Bookmark This Page": "Dodaj tę stronę do zakładek",
+ "Book file is not available locally": "Plik książki nie jest dostępny lokalnie",
+ "Failed to send book": "Nie udało się wysłać książki",
+ "Send": "Wyślij",
+ "Highlight Current Sentence": "Podświetl bieżące zdanie"
}
diff --git a/apps/readest-app/public/locales/pt-BR/translation.json b/apps/readest-app/public/locales/pt-BR/translation.json
index 4fce077e..92b6e681 100644
--- a/apps/readest-app/public/locales/pt-BR/translation.json
+++ b/apps/readest-app/public/locales/pt-BR/translation.json
@@ -1728,5 +1728,9 @@
"No Annotations": "Nenhuma anotação",
"No Bookmarks": "Nenhum marcador",
"Select some text to highlight": "Selecione um texto para destacar",
- "Bookmark This Page": "Adicionar esta página aos marcadores"
+ "Bookmark This Page": "Adicionar esta página aos marcadores",
+ "Book file is not available locally": "O arquivo do livro não está disponível localmente",
+ "Failed to send book": "Falha ao enviar o livro",
+ "Send": "Enviar",
+ "Highlight Current Sentence": "Destacar a frase atual"
}
diff --git a/apps/readest-app/public/locales/pt/translation.json b/apps/readest-app/public/locales/pt/translation.json
index 2cf6b4f9..f642ee57 100644
--- a/apps/readest-app/public/locales/pt/translation.json
+++ b/apps/readest-app/public/locales/pt/translation.json
@@ -1728,5 +1728,9 @@
"No Annotations": "Sem anotações",
"No Bookmarks": "Sem marcadores",
"Select some text to highlight": "Selecione texto para destacar",
- "Bookmark This Page": "Adicionar esta página aos marcadores"
+ "Bookmark This Page": "Adicionar esta página aos marcadores",
+ "Book file is not available locally": "O ficheiro do livro não está disponível localmente",
+ "Failed to send book": "Falha ao enviar o livro",
+ "Send": "Enviar",
+ "Highlight Current Sentence": "Destacar a frase atual"
}
diff --git a/apps/readest-app/public/locales/ro/translation.json b/apps/readest-app/public/locales/ro/translation.json
index c4c0b974..062f4659 100644
--- a/apps/readest-app/public/locales/ro/translation.json
+++ b/apps/readest-app/public/locales/ro/translation.json
@@ -1728,5 +1728,9 @@
"No Annotations": "Nicio adnotare",
"No Bookmarks": "Niciun marcaj",
"Select some text to highlight": "Selectează text pentru evidențiere",
- "Bookmark This Page": "Adaugă această pagină la marcaje"
+ "Bookmark This Page": "Adaugă această pagină la marcaje",
+ "Book file is not available locally": "Fișierul cărții nu este disponibil local",
+ "Failed to send book": "Trimiterea cărții a eșuat",
+ "Send": "Trimite",
+ "Highlight Current Sentence": "Evidențiază propoziția curentă"
}
diff --git a/apps/readest-app/public/locales/ru/translation.json b/apps/readest-app/public/locales/ru/translation.json
index ea9eddec..cdc8775a 100644
--- a/apps/readest-app/public/locales/ru/translation.json
+++ b/apps/readest-app/public/locales/ru/translation.json
@@ -1761,5 +1761,9 @@
"No Annotations": "Нет аннотаций",
"No Bookmarks": "Нет закладок",
"Select some text to highlight": "Выберите текст для выделения",
- "Bookmark This Page": "Добавить эту страницу в закладки"
+ "Bookmark This Page": "Добавить эту страницу в закладки",
+ "Book file is not available locally": "Файл книги недоступен локально",
+ "Failed to send book": "Не удалось отправить книгу",
+ "Send": "Отправить",
+ "Highlight Current Sentence": "Выделять текущее предложение"
}
diff --git a/apps/readest-app/public/locales/si/translation.json b/apps/readest-app/public/locales/si/translation.json
index b1c8910b..9e407695 100644
--- a/apps/readest-app/public/locales/si/translation.json
+++ b/apps/readest-app/public/locales/si/translation.json
@@ -1695,5 +1695,9 @@
"No Annotations": "අනුසටහන් නැත",
"No Bookmarks": "පොත් සලකුණු නැත",
"Select some text to highlight": "ඉස්මතු කිරීමට පෙළක් තෝරන්න",
- "Bookmark This Page": "මෙම පිටුව පොත් සලකුණක් කරන්න"
+ "Bookmark This Page": "මෙම පිටුව පොත් සලකුණක් කරන්න",
+ "Book file is not available locally": "පොත් ගොනුව දේශීයව ලබා ගත නොහැක",
+ "Failed to send book": "පොත යැවීමට අසමත් විය",
+ "Send": "යවන්න",
+ "Highlight Current Sentence": "වර්තමාන වාක්යය ඉස්මතු කරන්න"
}
diff --git a/apps/readest-app/public/locales/sl/translation.json b/apps/readest-app/public/locales/sl/translation.json
index 4b472ac3..be165932 100644
--- a/apps/readest-app/public/locales/sl/translation.json
+++ b/apps/readest-app/public/locales/sl/translation.json
@@ -1761,5 +1761,9 @@
"No Annotations": "Ni opomb",
"No Bookmarks": "Ni zaznamkov",
"Select some text to highlight": "Izberite besedilo za označevanje",
- "Bookmark This Page": "Dodaj to stran med zaznamke"
+ "Bookmark This Page": "Dodaj to stran med zaznamke",
+ "Book file is not available locally": "Datoteka knjige ni na voljo lokalno",
+ "Failed to send book": "Pošiljanje knjige ni uspelo",
+ "Send": "Pošlji",
+ "Highlight Current Sentence": "Označi trenutni stavek"
}
diff --git a/apps/readest-app/public/locales/sv/translation.json b/apps/readest-app/public/locales/sv/translation.json
index 79ff2b50..31b1fd4d 100644
--- a/apps/readest-app/public/locales/sv/translation.json
+++ b/apps/readest-app/public/locales/sv/translation.json
@@ -1695,5 +1695,9 @@
"No Annotations": "Inga kommentarer",
"No Bookmarks": "Inga bokmärken",
"Select some text to highlight": "Markera text att framhäva",
- "Bookmark This Page": "Bokmärk den här sidan"
+ "Bookmark This Page": "Bokmärk den här sidan",
+ "Book file is not available locally": "Bokfilen är inte tillgänglig lokalt",
+ "Failed to send book": "Det gick inte att skicka boken",
+ "Send": "Skicka",
+ "Highlight Current Sentence": "Markera aktuell mening"
}
diff --git a/apps/readest-app/public/locales/ta/translation.json b/apps/readest-app/public/locales/ta/translation.json
index 918554d4..c0db9498 100644
--- a/apps/readest-app/public/locales/ta/translation.json
+++ b/apps/readest-app/public/locales/ta/translation.json
@@ -1695,5 +1695,9 @@
"No Annotations": "சிறுகுறிப்புகள் இல்லை",
"No Bookmarks": "புக்மார்க்குகள் இல்லை",
"Select some text to highlight": "சிறப்பிக்க உரையைத் தேர்ந்தெடுக்கவும்",
- "Bookmark This Page": "இந்தப் பக்கத்தைப் புக்மார்க் செய்யவும்"
+ "Bookmark This Page": "இந்தப் பக்கத்தைப் புக்மார்க் செய்யவும்",
+ "Book file is not available locally": "புத்தக கோப்பு உள்ளூரில் கிடைக்கவில்லை",
+ "Failed to send book": "புத்தகத்தை அனுப்ப முடியவில்லை",
+ "Send": "அனுப்பு",
+ "Highlight Current Sentence": "தற்போதைய வாக்கியத்தை தனிப்படுத்து"
}
diff --git a/apps/readest-app/public/locales/th/translation.json b/apps/readest-app/public/locales/th/translation.json
index 6dd427da..1dd097a8 100644
--- a/apps/readest-app/public/locales/th/translation.json
+++ b/apps/readest-app/public/locales/th/translation.json
@@ -1662,5 +1662,9 @@
"No Annotations": "ไม่มีคำอธิบายประกอบ",
"No Bookmarks": "ไม่มีบุ๊กมาร์ก",
"Select some text to highlight": "เลือกข้อความเพื่อไฮไลต์",
- "Bookmark This Page": "บุ๊กมาร์กหน้านี้"
+ "Bookmark This Page": "บุ๊กมาร์กหน้านี้",
+ "Book file is not available locally": "ไม่มีไฟล์หนังสือในเครื่อง",
+ "Failed to send book": "ส่งหนังสือไม่สำเร็จ",
+ "Send": "ส่ง",
+ "Highlight Current Sentence": "ไฮไลต์ประโยคปัจจุบัน"
}
diff --git a/apps/readest-app/public/locales/tr/translation.json b/apps/readest-app/public/locales/tr/translation.json
index b1c53aa8..509d9675 100644
--- a/apps/readest-app/public/locales/tr/translation.json
+++ b/apps/readest-app/public/locales/tr/translation.json
@@ -1695,5 +1695,9 @@
"No Annotations": "Açıklama yok",
"No Bookmarks": "Yer işareti yok",
"Select some text to highlight": "Vurgulamak için metin seçin",
- "Bookmark This Page": "Bu Sayfayı Yer İşaretine Ekle"
+ "Bookmark This Page": "Bu Sayfayı Yer İşaretine Ekle",
+ "Book file is not available locally": "Kitap dosyası yerel olarak mevcut değil",
+ "Failed to send book": "Kitap gönderilemedi",
+ "Send": "Gönder",
+ "Highlight Current Sentence": "Geçerli cümleyi vurgula"
}
diff --git a/apps/readest-app/public/locales/uk/translation.json b/apps/readest-app/public/locales/uk/translation.json
index 60ab798e..c38518b1 100644
--- a/apps/readest-app/public/locales/uk/translation.json
+++ b/apps/readest-app/public/locales/uk/translation.json
@@ -1761,5 +1761,9 @@
"No Annotations": "Немає анотацій",
"No Bookmarks": "Немає закладок",
"Select some text to highlight": "Виділіть текст для підсвічування",
- "Bookmark This Page": "Додати цю сторінку до закладок"
+ "Bookmark This Page": "Додати цю сторінку до закладок",
+ "Book file is not available locally": "Файл книги недоступний локально",
+ "Failed to send book": "Не вдалося надіслати книгу",
+ "Send": "Надіслати",
+ "Highlight Current Sentence": "Виділяти поточне речення"
}
diff --git a/apps/readest-app/public/locales/uz/translation.json b/apps/readest-app/public/locales/uz/translation.json
index 325fb206..b4742e33 100644
--- a/apps/readest-app/public/locales/uz/translation.json
+++ b/apps/readest-app/public/locales/uz/translation.json
@@ -1695,5 +1695,9 @@
"No Annotations": "Izohlar yoʻq",
"No Bookmarks": "Xatchoʻplar yoʻq",
"Select some text to highlight": "Belgilash uchun matn tanlang",
- "Bookmark This Page": "Bu sahifani xatchoʻpga qoʻshish"
+ "Bookmark This Page": "Bu sahifani xatchoʻpga qoʻshish",
+ "Book file is not available locally": "Kitob fayli mahalliy tarzda mavjud emas",
+ "Failed to send book": "Kitobni yuborib bo'lmadi",
+ "Send": "Yuborish",
+ "Highlight Current Sentence": "Joriy jumlani ajratib ko'rsatish"
}
diff --git a/apps/readest-app/public/locales/vi/translation.json b/apps/readest-app/public/locales/vi/translation.json
index d7418f84..32051b66 100644
--- a/apps/readest-app/public/locales/vi/translation.json
+++ b/apps/readest-app/public/locales/vi/translation.json
@@ -1662,5 +1662,9 @@
"No Annotations": "Không có chú thích",
"No Bookmarks": "Không có dấu trang",
"Select some text to highlight": "Chọn một đoạn văn bản để tô sáng",
- "Bookmark This Page": "Đánh dấu trang này"
+ "Bookmark This Page": "Đánh dấu trang này",
+ "Book file is not available locally": "Tệp sách không có sẵn trên thiết bị",
+ "Failed to send book": "Gửi sách thất bại",
+ "Send": "Gửi",
+ "Highlight Current Sentence": "Tô sáng câu hiện tại"
}
diff --git a/apps/readest-app/public/locales/zh-CN/translation.json b/apps/readest-app/public/locales/zh-CN/translation.json
index 59756e73..aebf33c2 100644
--- a/apps/readest-app/public/locales/zh-CN/translation.json
+++ b/apps/readest-app/public/locales/zh-CN/translation.json
@@ -1662,5 +1662,9 @@
"No Annotations": "暂无注释",
"No Bookmarks": "暂无书签",
"Select some text to highlight": "选择文本以划线",
- "Bookmark This Page": "为此页添加书签"
+ "Bookmark This Page": "为此页添加书签",
+ "Book file is not available locally": "本地没有该图书文件",
+ "Failed to send book": "发送图书失败",
+ "Send": "发送",
+ "Highlight Current Sentence": "高亮当前句子"
}
diff --git a/apps/readest-app/public/locales/zh-TW/translation.json b/apps/readest-app/public/locales/zh-TW/translation.json
index 5f0c4785..4f102e7d 100644
--- a/apps/readest-app/public/locales/zh-TW/translation.json
+++ b/apps/readest-app/public/locales/zh-TW/translation.json
@@ -1662,5 +1662,9 @@
"No Annotations": "尚無註解",
"No Bookmarks": "尚無書籤",
"Select some text to highlight": "選取文字以劃線",
- "Bookmark This Page": "將此頁加入書籤"
+ "Bookmark This Page": "將此頁加入書籤",
+ "Book file is not available locally": "本機沒有此書籍檔案",
+ "Failed to send book": "傳送書籍失敗",
+ "Send": "傳送",
+ "Highlight Current Sentence": "醒目標示目前句子"
}
|