fix(client): localize the read-aloud interface

Replace the hardcoded English in the TTS and narration components with
message keys, label every icon-only control, and add settings.common.nav.tts,
which the settings sidebar rendered as a raw key.

Stop requiring PODCAST_ENCRYPTION_KEY while APP_FEATURES.podcasts is off, and
skip podcast routes and permissions in the authorization matrix for the same
reason.

Pass the direct-download settle() helper the SETTLE_MS budget the file already
defines: vi.waitFor's one-second default cannot cover six DNS-resolved redirect
hops on a cold CI resolver.
This commit is contained in:
neon
2026-09-21 04:35:57 +00:00
parent 7c7e23806e
commit 67ef7f29a5
22 changed files with 550 additions and 171 deletions
@@ -1,12 +1,12 @@
{
"totalRoutes": 606,
"totalRoutes": 612,
"byPermission": {
"(none)": 259,
"(none)": 260,
"Permission.ManageMetadataConfig": 34,
"Permission.EmailSend": 30,
"Permission.LibraryEditMetadata": 35,
"Permission.BookDockAccess": 17,
"Permission.ManageAppSettings": 57,
"Permission.ManageAppSettings": 62,
"Permission.ManageLibraries": 22,
"Permission.ManageUsers": 13,
"Permission.ManageEmail": 8,