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)",
|
|
|
|
|
"download": "Originaldatei herunterladen"
|
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)"
|
|
|
|
|
}
|
|
|
|
|
}
|