2026-07-05 02:32:00 +02:00
{
2026-07-05 03:29:20 +02:00
"navLabel" : "Plex" ,
2026-07-05 02:32:00 +02:00
"backToFeed" : "YouTube-Feed" ,
"backToLibrary" : "Zurück zur Bibliothek" ,
"searchPlaceholder" : "Plex durchsuchen…" ,
"sort" : {
"added" : "Kürzlich hinzugefügt" ,
"title" : "Titel"
} ,
2026-07-05 03:29:20 +02:00
"filter" : {
"library" : "Bibliothek" ,
"show" : "Anzeige" ,
"showOpt" : {
"all" : "Alle" ,
"unwatched" : "Ungesehen" ,
"in_progress" : "Läuft" ,
"watched" : "Gesehen"
} ,
"sort" : "Sortierung"
} ,
2026-07-05 02:32:00 +02:00
"count" : "{{count}} Titel" ,
"searchCount" : "{{count}} Treffer" ,
2026-07-05 03:29:20 +02:00
"noMatches" : "Keine Treffer." ,
2026-07-05 02:32:00 +02:00
"loading" : "Wird geladen…" ,
"empty" : "Noch nichts hier. Starte eine Plex-Synchronisierung auf der Admin-Konfigurationsseite." ,
"loadMore" : "Mehr laden" ,
"watched" : "Angesehen" ,
2026-07-05 05:26:16 +02:00
"play" : "Abspielen" ,
"resume" : "Fortsetzen" ,
"openShow" : "Serie öffnen" ,
"markWatched" : "Als gesehen markieren" ,
"markUnwatched" : "Als ungesehen markieren" ,
2026-07-05 02:32:00 +02:00
"seasons" : "{{count}} Staffeln" ,
"playerSoon" : "Player kommt bald — „{{title}}“" ,
feat(plex): P2 player — rich full-page HLS/direct player + watch-state
- backend: GET /api/plex/item/{rk} detail (metadata, cast + intro/credit markers
from Plex, episode prev/next, per-user resume+status); POST /item/{rk}/progress
(resume checkpoint, near-end→watched) + /state (new|watched|hidden).
- frontend PlexPlayer.tsx (lazy, pulls hls.js): full-page player over the Plex
module. Direct files stream raw <video>; remux via hls.js on the seek-restart
session — custom controls map the ABSOLUTE timeline over the session offset, and a
seek beyond the loaded region restarts the session at the target. Play/pause/resume
/restart, ±10s seek, prev/next episode (Shift+←/→), volume, windowed/fullscreen,
full keyboard, Skip intro/Skip credits from markers (shaded on the seekbar),
auto-advance + watched-on-end, resume from saved position, 10s progress checkpoints.
- PlexBrowse: card/episode click opens the player as a history subview (browser Back
returns to the grid/show). api client (plexItem/plexSession/plexProgress/plexSetState)
+ types; plex.player.* i18n en/hu/de. hls.js@^1.6.16.
- Verified over HTTP: detail w/ markers+cast+episode-nav, progress persist. Video
playback itself is pending browser UAT. Subtitle/audio track SELECTION deferred.
2026-07-05 04:28:00 +02:00
"player" : {
"loading" : "Wird geladen…" ,
"back" : "Zurück" ,
"skipIntro" : "Intro überspringen" ,
"skipCredits" : "Abspann überspringen" ,
"playPause" : "Wiedergabe / Pause (Leertaste)" ,
"restart" : "Von vorn beginnen" ,
"prev" : "Vorherige Folge" ,
"next" : "Nächste Folge" ,
"mute" : "Stumm (m)" ,
2026-07-05 05:26:16 +02:00
"fullscreen" : "Vollbild (f)" ,
2026-07-05 06:08:44 +02:00
"download" : "Originaldatei herunterladen" ,
"tracks" : "Audio & Untertitel" ,
"audio" : "Audio" ,
"subtitles" : "Untertitel" ,
2026-07-05 06:58:34 +02:00
"subOff" : "Aus" ,
"errNotFound" : "Diese Datei kann nicht abgespielt werden — die Medien sind auf dem Server nicht erreichbar (die Plex-Medieneinbindung fehlt oder die Pfadzuordnung ist falsch). Bitte den Administrator, die Plex-Konfiguration zu prüfen." ,
"errTranscode" : "Das Format dieser Datei erfordert eine Transkodierung, die noch nicht unterstützt wird." ,
"errGeneric" : "Die Wiedergabe konnte nicht gestartet werden. Bitte erneut versuchen."
feat(plex): P2 player — rich full-page HLS/direct player + watch-state
- backend: GET /api/plex/item/{rk} detail (metadata, cast + intro/credit markers
from Plex, episode prev/next, per-user resume+status); POST /item/{rk}/progress
(resume checkpoint, near-end→watched) + /state (new|watched|hidden).
- frontend PlexPlayer.tsx (lazy, pulls hls.js): full-page player over the Plex
module. Direct files stream raw <video>; remux via hls.js on the seek-restart
session — custom controls map the ABSOLUTE timeline over the session offset, and a
seek beyond the loaded region restarts the session at the target. Play/pause/resume
/restart, ±10s seek, prev/next episode (Shift+←/→), volume, windowed/fullscreen,
full keyboard, Skip intro/Skip credits from markers (shaded on the seekbar),
auto-advance + watched-on-end, resume from saved position, 10s progress checkpoints.
- PlexBrowse: card/episode click opens the player as a history subview (browser Back
returns to the grid/show). api client (plexItem/plexSession/plexProgress/plexSetState)
+ types; plex.player.* i18n en/hu/de. hls.js@^1.6.16.
- Verified over HTTP: detail w/ markers+cast+episode-nav, progress persist. Video
playback itself is pending browser UAT. Subtitle/audio track SELECTION deferred.
2026-07-05 04:28:00 +02:00
} ,
2026-07-05 02:32:00 +02:00
"playable" : {
"direct" : "Spielt direkt im Browser" ,
"remux" : "Braucht ein leichtes Remux (keine Video-Neucodierung)" ,
"transcode" : "Braucht Transcoding (aufwendiger)"
}
}