Files
siftlode/frontend/src/i18n/locales/en/plex.json
T
peter 3eb87e7108 feat(plex): every show card plays the episode it would put on
A show card's picture opened the show page everywhere but Home, whose shelves carried the
resolved `next`. Now every Plex picture plays: a show asks `GET /api/plex/show/{id}/next`
(the in-progress episode, else the first unwatched, else S1·E1 — the rule Home and the show
page's Resume follow) on the click, fresh each time. A started show shows Continue + Restart;
its title, an ⓘ and the menu's "Open show" row open its page; one with no episodes opens there.

The question is asked per show, never carried on every card: three probes a show would cost a
grid page up to 180 queries. The hover preview asks it once it opens and names the episode
("Next: S6·E16 — Title"). Related shows on a show page play the same way.
2026-10-09 01:22:00 +02:00

396 lines
13 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"textMore": "More",
"textLess": "Less",
"navLabel": "Plex",
"backToLibrary": "Back to library",
"collection": {
"playAll": "Play all",
"shuffle": "Shuffle",
"rename": "Rename",
"addItem": "Add title…",
"delete": "Delete",
"enableEdit": "Enable editing",
"removeItem": "Remove from collection",
"removeConfirm": "Remove “{{title}}” from this collection? This affects all users on Plex.",
"nameMaybeTaken": "A collection with this name may already exist in another library — you can still create it here.",
"readOnly": "Read-only",
"empty": "This collection has no items.",
"addSearch": "Search titles to add…",
"addHint": "Type to search for a title to add.",
"addNoResults": "No matches.",
"add": "Add",
"added": "Added",
"deleteConfirm": "Delete the collection “{{title}}”? This removes it from Plex too.",
"editFailed": "Couldn't edit the collection",
"playFailed": "Couldn't build the play queue — try again",
"playEmpty": "Nothing to play in this collection yet",
"newCollection": "New collection…",
"newCollectionTitle": "New collection",
"namePlaceholder": "Collection name",
"nameTaken": "A collection with this name already exists",
"newHint": "Pick the first title to add — a collection needs at least one.",
"createWith": "Create",
"deleteFailed": "Couldn't delete the collection"
},
"searchPlaceholder": "Search Plex…",
"searchField": {
"aria": "Search scope",
"all": "Everywhere",
"title": "Titles",
"people": "Cast & crew",
"summary": "Descriptions",
"episode": "Episodes"
},
"suggest": {
"aria": "Search suggestions"
},
"sort": {
"added": "Recently added",
"lastwatched": "Last watched",
"title": "Title",
"year": "Year",
"rating": "IMDb rating",
"duration": "Length",
"release": "Release date"
},
"filter": {
"scope": "Library",
"scopeOpt": {
"both": "All",
"movie": "Movies",
"show": "Shows",
"playlists": "Playlists",
"collections": "Collections"
},
"show": "Show",
"showOpt": {
"all": "All",
"unwatched": "Unwatched",
"in_progress": "In progress",
"watched": "Watched"
},
"sort": "Sort",
"clearAll": "Clear filters",
"active": "Active",
"any": "Any",
"rating": "IMDb rating",
"genre": "Genre",
"year": "Year",
"duration": "Length",
"durationUnit": "min",
"durationOpt": {
"short": "Under 90 min",
"mid": "90–120 min",
"long": "Over 2 hr"
},
"added": "Added to Plex",
"addedOpt": {
"24h": "24 hours",
"1w": "1 week",
"1m": "1 month",
"6m": "6 months",
"1y": "1 year"
},
"contentRating": "Age rating",
"dir": {
"desc": "↓ Descending",
"asc": "↑ Ascending"
},
"collection": "Collection",
"collectionSearch": "Search collections…",
"collectionEmpty": "No collections",
"studio": "Studio",
"playable": "Playback",
"playableOpt": {
"direct": "Direct Play",
"remux": "Direct Stream",
"transcode_hw": "Transcode · HW",
"transcode_sw": "Transcode · SW"
}
},
"noMatches": "No matches.",
"noMatchesFiltered_one": "No matches — a filter is also narrowing the results.",
"noMatchesFiltered_other": "No matches — {{count}} filters are also narrowing the results.",
"loading": "Loading…",
"empty": "Nothing here yet. Run a Plex sync from the admin Config page.",
"watched": "Watched",
"inProgress": "In progress",
"play": "Play",
"resume": "Resume",
"openShow": "Open show",
"menu": "Media",
"markWatched": "Mark watched",
"markUnwatched": "Mark unwatched",
"markNextWatched": "Mark {{name}} watched",
"markNextUnwatched": "Mark {{name}} unwatched",
"nextUp": "Next: {{name}}",
"episodeLine": "S{{season}}·E{{episode}} · {{title}}",
"seasonTitle": "Season {{n}}",
"specials": "Specials",
"playShowFailed": "Couldn't find the episode to play — please try again",
"watchedFailed": "Couldn't update the watched state — please try again",
"seasons_one": "{{count}} season",
"seasons_other": "{{count}} seasons",
"unified": {
"titles": "Titles",
"episodes": "Episodes"
},
"series": {
"seasons": "Seasons",
"backToShow": "Back to show",
"episodeCount_one": "{{count}} episode",
"episodeCount_other": "{{count}} episodes",
"showFromStart": "Show from the start",
"seasonFromStart": "Season from the start",
"related": "Related shows",
"markShowWatched": "Mark show watched",
"markShowUnwatched": "Mark show unwatched",
"markSeasonWatched": "Mark season watched",
"markSeasonUnwatched": "Mark season unwatched",
"openSeason": "Open season",
"addShowCollection": "Add to collection"
},
"collEditor": {
"manage": "Collections",
"title": "Collections — {{title}}",
"newPlaceholder": "New collection name…",
"create": "Create",
"search": "Filter collections…",
"none": "No editable collections yet. Create one above.",
"count_one": "{{count}} item",
"count_other": "{{count}} items",
"delete": "Delete",
"deleteConfirm": "Delete the collection “{{title}}” from Plex? This affects all users.",
"note": "Changes are written to Plex and shared across all clients and users.",
"others_one": "Manage {{count}} existing collection",
"others_other": "Manage {{count}} existing collections",
"makeEditable": "Manage"
},
"player": {
"loading": "Loading…",
"buffering": "Buffering…",
"preparing": "Preparing stream…",
"back": "Back",
"close": "Close",
"skipIntro": "Skip intro",
"skipCredits": "Skip credits",
"playPause": "Play / pause (space)",
"restart": "Restart from beginning",
"prev": "Previous episode",
"next": "Next episode",
"tapBack": "−{{d}}",
"tapForward": "+{{d}}",
"mute": "Mute (m)",
"volume": "Volume",
"fullscreen": "Fullscreen (f)",
"download": "Download original file",
"tracks": "Audio & subtitles",
"audio": "Audio",
"subtitles": "Subtitles",
"subOff": "Off",
"errNotFound": "This file can't be played — the media isn't reachable on the server (the Plex media mount is missing or the path map is wrong). Ask the admin to check the Plex configuration.",
"errTranscode": "This file's format needs transcoding, which isn't supported yet.",
"errGeneric": "Playback couldn't start. Please try again.",
"help": "Keyboard shortcuts",
"infoBtn": "Media info",
"more": "More",
"upNext": {
"title": "Up next",
"playNow": "Play now",
"cancel": "Cancel",
"pref": "Up-next card"
},
"stats": {
"title": "Stats for nerds",
"mode": "Mode",
"transport": "Transport",
"resolution": "Resolution",
"codec": "Codec",
"bitrate": "Bitrate",
"level": "HLS level",
"audio": "Audio track",
"subtitle": "Subtitle track",
"frames": "Dropped frames",
"buffer": "Buffer ahead",
"offset": "Session offset",
"position": "Position"
},
"settings": "Settings",
"sync": "Offsets",
"subOffset": "Subtitle delay",
"audioOffset": "Audio delay",
"playback": "Playback",
"seekStep": "Seek step",
"fineSeek": "Fine seek (Ctrl)",
"autoHide": "Auto-hide controls",
"subStyle": "Subtitles",
"subPreparing": "Preparing subtitles: {{label}}…",
"subUnavailable": {
"bitmap": "This subtitle is image-based and can't be shown as text",
"missing": "This subtitle track isn't available",
"failed": "Couldn't load this subtitle"
},
"subSize": "Text size",
"subPos": "Position",
"subColor": "Text color",
"subBg": "Background",
"subBgNone": "None",
"clock": "Clock",
"clockShow": "Show clock",
"clock24h": "24-hour",
"clockSize": "Size",
"clockColor": "Color",
"clockDate": "Show date",
"subShadow": "Shadow",
"subShadowColor": "Shadow color",
"autoSkipIntro": "Auto-skip intro",
"autoSkipCredits": "Auto-skip credits",
"autoSkipDelay": "Auto-skip delay"
},
"info": {
"title": "Media info",
"customize": "Customize view",
"prefArtBg": "Faint backdrop",
"prefCast": "Cast",
"prefRelated": "Related shows",
"prefFacts": "Details",
"prefKeywords": "Keywords",
"prefCrew": "Crew",
"stripSource": {
"collection": "Collections",
"imdb": "IMDb",
"tmdb": "TMDb",
"tvdb": "TVDb",
"trakt": "Trakt",
"smart": "Smart lists"
},
"openImdb": "Open on IMDb",
"director": "Director",
"cast": "Cast",
"markWatched": "Mark watched",
"markUnwatched": "Mark unwatched",
"clearResume": "Clear resume position",
"filterYear": "Show titles from {{year}}",
"filterRating": "Show titles rated {{n}}+",
"filterActor": "Show titles with {{name}}",
"viewPerson": "View {{name}}'s filmography",
"browseCollection": "Browse collection →",
"audience": "Audience",
"keywords": "Keywords",
"crew": "Crew",
"crewMore_one": "Show {{count}} more",
"crewMore_other": "Show {{count}} more",
"crewLess": "Show less",
"filterValue": "Filter by “{{name}}”",
"facts": {
"title": "Details",
"release": "Released",
"runtime": "Runtime",
"cert": "Rating",
"budget": "Budget",
"revenue": "Revenue",
"studios": "Studios",
"countries": "Countries"
},
"prefCrossfade": "Crossfade backdrop"
},
"playable": {
"direct": "Plays directly in the browser",
"remux": "Direct Stream — a light remux (no video re-encode)",
"transcode_hw": "Transcoded on the hardware encoder",
"transcode_sw": "Transcoded in software (heaviest)"
},
"playlistAdd": {
"manage": "Add to playlist…",
"title": "Add to playlist — {{title}}",
"newPlaceholder": "New playlist name…",
"create": "Create",
"none": "No playlists yet. Create one above.",
"count_one": "{{count}} item",
"count_other": "{{count}} items",
"groupProgress": "{{in}} / {{size}}",
"addFailed": "Couldn't add it to the playlist",
"removeFailed": "Couldn't remove it from the playlist",
"createFailed": "Couldn't create the playlist"
},
"playlist": {
"section": "Playlists",
"pickerPlaceholder": "Find or create a playlist…",
"createNamed": "Create “{{name}}”",
"none": "No playlists yet.",
"deleteConfirm": "Delete the playlist “{{title}}”?",
"rename": "Rename",
"playAll": "Play all",
"delete": "Delete playlist",
"empty": "This playlist is empty. Add titles from their info page.",
"layoutLabel": "Layout",
"layoutAccordion": "Accordion view",
"layoutTree": "Tree view",
"removeShow": "Remove whole show",
"removeSeason": "Remove whole season",
"episodes_one": "{{count}} episode",
"episodes_other": "{{count}} episodes",
"seasonUnknown": "Episodes",
"addShow": "Add whole show to a playlist",
"addSeason": "Add season to a playlist",
"addEpisode": "Add episode to a playlist",
"removeFailed": "Couldn't remove it from the playlist",
"renameFailed": "Couldn't rename the playlist",
"deleteFailed": "Couldn't delete the playlist",
"reorderFailed": "Couldn't save the new order",
"reorderItem": "Move “{{title}}”",
"rowMenu": "Item actions",
"menu": "Playlist actions",
"playShow": "Play the show",
"playSeason": "Play the season",
"removeFromPlaylist": "Remove from the playlist",
"removedToast": "“{{title}}” removed from the playlist",
"undoRemoveFailed": "Couldn't put it back in the playlist"
},
"people": {
"count_one": "{{count}} title",
"count_other": "{{count}} titles",
"remove": "Remove from filter"
},
"person": {
"credits": "{{movies}} movies · {{shows}} shows",
"filterBy": "Filter library by {{name}}",
"movies_one": "Movies ({{count}})",
"movies_other": "Movies ({{count}})",
"shows_one": "Shows ({{count}})",
"shows_other": "Shows ({{count}})",
"empty": "No titles found for this person.",
"born": "Born",
"died": "Died",
"aka": "Also known as",
"knownFor": "Known for",
"bioLoading": "Loading the biography",
"bioFailed": "Couldn't load the biography right now"
},
"view": {
"label": "View",
"browse": "Browse"
},
"browse": {
"items_one": "{{count}} item",
"items_other": "{{count}} items"
},
"discover": {
"tab": "Discover",
"continueWatching": "Continue watching",
"recentlyWatched": "Recently watched",
"recentlyAdded": "Recently added",
"surprise": "Surprise me",
"reshuffle": "Reshuffle",
"byGenre": "Browse by genre",
"becauseWatched": "Because you watched {{title}}",
"empty": "Nothing to discover yet — run a Plex sync from the admin Config page."
},
"collectionAdd": {
"row": "Add to collection…",
"title": "Add to collection",
"none": "No collection to add to yet — name one below.",
"loadFailed": "Couldn't load the collections"
}
}