audiobookshelf/client/strings
Victor Da Luz 640c2f98b8 Add "Download by Chapters" tool for audiobooks
Adds a new tool in the item tools tab that splits a book's audio file
into per-chapter files using ffmpeg -c copy (no re-encoding) and
packages them as a ZIP download.

Key details:
- New GET /api/items/:id/download-chapters endpoint
- Accepts optional ?fileIno= to select which audio file to split when
  a book has multiple (e.g. m4b + mp3)
- Computes each file's start offset in the global chapter timeline and
  filters + re-bases chapter timestamps to be file-relative before
  splitting, handling the case where ABS stores chapters from all audio
  files with concatenated global timestamps
- Splits all chapters in parallel (ffmpeg -c copy per chapter) then
  streams the result as a ZIP
- Temp files written to MetadataPath/cache/items/:id/chapter-split-:ts
  with a timestamp suffix to prevent concurrent request collisions;
  cleaned up in a finally block regardless of success or failure
- UI shows a file selector dropdown when multiple audio files exist,
  with "Preparing..." state feedback during the request
- 10 new tests covering guard conditions and the chapter offset logic

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 17:24:01 -06:00
..
ar.json Translated using Weblate (Arabic) 2025-12-12 23:24:17 +00:00
be.json Translated using Weblate (Belarusian) 2026-03-18 23:01:28 +01:00
bg.json Translated using Weblate (Bulgarian) 2025-12-12 23:24:19 +00:00
bn.json Translated using Weblate (Bengali) 2025-11-10 23:37:16 +01:00
ca.json Translated using Weblate (Catalan) 2026-02-03 20:10:06 +01:00
cs.json Translated using Weblate (Czech) 2026-03-08 23:26:09 +01:00
da.json Translated using Weblate (Danish) 2026-02-02 08:02:19 +00:00
de.json Translated using Weblate (German) 2026-03-18 23:01:29 +01:00
el.json Translated using Weblate (Greek) 2026-03-08 23:26:10 +01:00
en-us.json Add "Download by Chapters" tool for audiobooks 2026-04-14 17:24:01 -06:00
es.json Translated using Weblate (Spanish) 2026-03-18 23:01:31 +01:00
et.json Translated using Weblate (Estonian) 2025-11-10 23:37:16 +01:00
eu.json Added translation using Weblate (Basque) 2025-08-25 21:50:29 +00:00
fa.json Translated using Weblate (Persian) 2025-10-03 21:43:18 +00:00
fi.json Translated using Weblate (Finnish) 2025-12-23 23:44:37 +01:00
fr.json Translated using Weblate (French) 2026-03-18 23:01:27 +01:00
gu.json Translated using Weblate (Gujarati) 2025-07-09 19:54:28 +00:00
he.json Translated using Weblate (Hebrew) 2026-02-02 08:02:26 +00:00
hi.json Translated using Weblate (Hindi) 2025-08-10 22:26:29 +00:00
hr.json Translated using Weblate (Croatian) 2026-03-08 23:26:09 +01:00
hu.json Translated using Weblate (Hungarian) 2026-03-08 23:26:09 +01:00
is.json Added translation using Weblate (Icelandic) 2025-11-29 23:26:53 +01:00
it.json Translated using Weblate (Italian) 2026-02-02 08:02:15 +00:00
ja.json Translated using Weblate (Japanese) 2026-03-08 23:26:09 +01:00
ko.json Translated using Weblate (Korean) 2025-12-12 23:24:17 +00:00
lt.json Translated using Weblate (Lithuanian) 2026-02-02 08:02:22 +00:00
nl.json Translated using Weblate (Dutch) 2025-08-25 21:50:31 +00:00
no.json Translated using Weblate (Norwegian Bokmål) 2026-03-08 23:26:10 +01:00
pl.json Translated using Weblate (Polish) 2026-03-08 23:26:10 +01:00
pt-br.json Translated using Weblate (Portuguese (Brazil)) 2026-03-08 23:26:09 +01:00
ro.json Translated using Weblate (Romanian) 2026-03-08 23:26:09 +01:00
ru.json Translated using Weblate (Russian) 2025-12-23 23:44:37 +01:00
sk.json Translated using Weblate (Slovak) 2026-03-08 23:26:10 +01:00
sl.json Translated using Weblate (Slovenian) 2026-03-08 23:26:10 +01:00
sv.json Translated using Weblate (Swedish) 2026-03-08 23:26:09 +01:00
tr.json Translated using Weblate (Turkish) 2026-02-02 08:02:24 +00:00
uk.json Translated using Weblate (Ukrainian) 2025-11-29 23:26:41 +01:00
vi-vn.json Translated using Weblate (Vietnamese) 2025-08-20 22:45:24 +00:00
zh-cn.json Translated using Weblate (Chinese (Simplified Han script)) 2026-02-02 08:02:25 +00:00
zh-tw.json Remove old unused i18n strings 2025-03-12 17:22:12 -05:00