Deep-review round 4, the playlist surfaces. - A failed move or reorder relied on the resync to put the rows back — but the server's list is unchanged, so the refetch comes back deep-equal, react-query keeps the same `data` object, and the re-seed effect keyed on it never ran: the moved row stayed gone, the rejected order stayed on screen. Both restore from the cached detail now. - A failed removal puts its row back itself: when the server is unreachable the resync fails too, and round 3's "keep the list on a failed refetch" guard then kept showing it as removed. - The Plex playlist page (remove / rename / delete / reorder), the add-to-playlist popover and the tag manager had no failure handling at all: a list or tag deleted elsewhere (a 404, now a structured `not_found` the request layer leaves to the caller) failed in silence and an optimistic removal stayed removed. Each says it and resyncs; deleting a Plex playlist that is already gone just leaves the page. - Playlists' own loading/error branches use the shared `LoadingState` / `StateMessage` (the loading line had no live region). - The "player stays mounted" tests count mounts: a remount ended with the same flag as staying up.
130 lines
7.6 KiB
JSON
130 lines
7.6 KiB
JSON
{
|
|
"title": "Lejátszási listák",
|
|
"manageGroup": "Kezelés",
|
|
"listGroup": "Listáid",
|
|
"watchLater": "Megnézem később",
|
|
"syncYoutube": "Szinkron YouTube-ról",
|
|
"syncedToast": "{{count}} lista szinkronizálva a YouTube-ról",
|
|
"syncFailed": "Nem sikerült a YouTube-szinkron",
|
|
"ytReadonly": "YouTube-ról szinkronizálva — a módosítások visszaszinkronizálhatók",
|
|
"noneYet": "Még nincs lejátszási lista",
|
|
"newPlaylist": "Új lista…",
|
|
"searchPlaceholder": "Listák keresése…",
|
|
"noMatches": "Nincs találó lista.",
|
|
"itemCount_one": "{{count}} videó",
|
|
"itemCount_other": "{{count}} videó",
|
|
"pickOne": "Válassz egy listát a bal oldalon.",
|
|
"loading": "Betöltés…",
|
|
"empty": "Ez a lista üres — adj hozzá videókat a hírfolyamból.",
|
|
"playAll": "Összes lejátszása",
|
|
"delete": "Törlés",
|
|
"rename": "Átnevezés",
|
|
"confirmDelete": "Törlöd a(z) „{{name}}” listát? Nem vonható vissza.",
|
|
"addToPlaylist": "Hozzáadás listához",
|
|
"exportToYoutube": "Exportálás YouTube-ra",
|
|
"pushToYoutube": "Szinkron YouTube-ra",
|
|
"unsynced": "Nincs szinkronizálva",
|
|
"unsyncedHint": "Vannak helyi módosításaid, amelyek még nincsenek a YouTube-ra szinkronizálva.",
|
|
"openOnYoutube": "Megnyitás YouTube-on",
|
|
"revert": "Visszaállítás YouTube-ról",
|
|
"revertTitle": "Eldobod a helyi módosításokat?",
|
|
"revertMsg": "Ez újratölti a listát a YouTube-ról, és eldobja a nem szinkronizált helyi módosításaidat (sorrend, hozzáadás, eltávolítás, átnevezés). Folytatod?",
|
|
"revertConfirm": "Eldobás és újratöltés",
|
|
"revertDone": "„{{name}}” újratöltve a YouTube-ról ✓",
|
|
"revertFailed": "Nem sikerült újratölteni a YouTube-ról.",
|
|
"pushTitle": "Szinkron YouTube-ra",
|
|
"pushConfirm": "Szinkron",
|
|
"pushPlanCreate": "Létrehozol egy új YouTube-listát {{count}} videóval? (~{{units}} kvótaegység; ma még {{left}} maradt.)",
|
|
"mergeAddLocal_one": "{{count}} videó bekerül a Siftlode-listádba a YouTube-ról.",
|
|
"mergeAddLocal_other": "{{count}} videó bekerül a Siftlode-listádba a YouTube-ról.",
|
|
"mergeRemoveLocal_one": "{{count}} videó törlődik a Siftlode-listádból.",
|
|
"mergeRemoveLocal_other": "{{count}} videó törlődik a Siftlode-listádból.",
|
|
"mergeAddYt_one": "{{count}} videó felkerül a YouTube-ra.",
|
|
"mergeAddYt_other": "{{count}} videó felkerül a YouTube-ra.",
|
|
"mergeRemoveYt_one": "{{count}} videó törlődik a YouTube-ról.",
|
|
"mergeRemoveYt_other": "{{count}} videó törlődik a YouTube-ról.",
|
|
"mergeReorder_one": "{{count}} videó átrendeződik a YouTube-on.",
|
|
"mergeReorder_other": "{{count}} videó átrendeződik a YouTube-on.",
|
|
"mergeRename": "A lista átnevezésre kerül a YouTube-on.",
|
|
"mergeYtUnchanged": "A YouTube-listád nem változik.",
|
|
"mergeLocalUnchanged": "A Siftlode-listád nem változik.",
|
|
"mergeQuota": " (~{{units}} kvótaegység; ma még {{left}} maradt.)",
|
|
"mergeQuotaFree": " (~0 kvótaegység.)",
|
|
"pushNoQuota": "Nincs elég YouTube-kvóta mára ({{left}}) ehhez a szinkronhoz (~{{units}} kell). Próbáld újra holnap.",
|
|
"pushUpToDate": "A(z) „{{name}}” már szinkronban van a YouTube-bal.",
|
|
"pushDone": "„{{name}}” szinkronizálva a YouTube-ra ✓",
|
|
"pushPartial": "Szinkronizálva, de {{count}} elem kimaradt.",
|
|
"pushFailed": "Nem sikerült a YouTube-ra szinkronizálás.",
|
|
"deleteHereOnly": "Törlés csak itt",
|
|
"deleteYtFailed": "Nem sikerült törölni a YouTube-on; csak itt lett eltávolítva.",
|
|
"sortLabel": "Rendezés",
|
|
"dirAsc": "Növekvő",
|
|
"dirDesc": "Csökkenő",
|
|
"groupByChannel": "Csoportosítás csatorna szerint",
|
|
"railSortCustom": "Egyéni sorrend",
|
|
"railSortName": "Név",
|
|
"railSortCount": "Elemszám",
|
|
"railSortDuration": "Összhossz",
|
|
"railSortRecent": "Utoljára módosított",
|
|
"dirtyFirst": "Nem szinkronizáltak elöl",
|
|
"colTitle": "Cím",
|
|
"colChannel": "Csatorna",
|
|
"colDuration": "Hossz",
|
|
"rowMenu": "Videó műveletek",
|
|
"moveTo": "Áthelyezés másik listába",
|
|
"moveToRecent": "Áthelyezés ide: „{{name}}”",
|
|
"moveNoTargets": "Még nincs másik lejátszási lista, ahová áthelyezhetnéd.",
|
|
"movedToast": "„{{title}}” áthelyezve ide: „{{name}}” ✓",
|
|
"moveFailed": "Nem sikerült áthelyezni a videót.",
|
|
"removeFailed": "Nem sikerült eltávolítani a videót.",
|
|
"errors": {
|
|
"name_required": "Adj nevet a lejátszási listának.",
|
|
"youtube_read_scope": "A listák szinkronizálásához kapcsold össze a YouTube-ot (olvasási hozzáférés).",
|
|
"not_on_youtube": "Ez a lejátszási lista nincs fent a YouTube-on.",
|
|
"youtube_failed": "A YouTube most nem fogadta el. Próbáld újra.",
|
|
"watch_later_not_pushable": "A „Megnézem később” listát nem lehet a YouTube-ra küldeni.",
|
|
"watch_later_undeletable": "A „Megnézem később” lista nem törölhető.",
|
|
"youtube_editing_off": "Előbb engedélyezd a YouTube-szerkesztést a Beállításokban.",
|
|
"quota_exceeded": "Mára nem maradt elég YouTube-keret ehhez a szinkronhoz."
|
|
},
|
|
"moveErrors": {
|
|
"not_in_playlist": "Ez a videó már nincs ebben a listában — időközben máshol megváltozott.",
|
|
"same_playlist": "Ez a videó már ebben a listában van."
|
|
},
|
|
"orderTop": "Legfelülre",
|
|
"orderUp": "Eggyel feljebb",
|
|
"orderDown": "Eggyel lejjebb",
|
|
"orderBottom": "Legalulra",
|
|
"railMenu": "Lejátszási lista műveletei",
|
|
"builtinLocked": "A beépített „{{name}}” lista nem nevezhető át és nem törölhető.",
|
|
"removeItem": "Eltávolítás",
|
|
"removeItemOf": "„{{title}}” eltávolítása a listáról",
|
|
"confirmRemove": "Eltávolítod a(z) „{{title}}” videót erről a listáról?",
|
|
"dragHandle": "Húzd az átrendezéshez",
|
|
"dragHandleOf": "„{{title}}” átrendezése",
|
|
"dragBlockedSort": "A kézi átrendezés ki van kapcsolva, amíg oszloprendezés vagy csoportosítás van érvényben.",
|
|
"dragBlockedFilter": "A kézi átrendezés ki van kapcsolva, amíg szűrő van érvényben.",
|
|
"clearView": "Nézet visszaállítása",
|
|
"saveOrder": "Sorrend mentése",
|
|
"filteredCount": "{{count}} látszik",
|
|
"noneMatchFilter": "Egy videó sem felel meg a szűrőnek.",
|
|
"loadFailed": "Nem sikerült betölteni ezt a listát.",
|
|
"reorderFailed": "Nem sikerült elmenteni az új sorrendet.",
|
|
"renameFailed": "Nem sikerült átnevezni a listát.",
|
|
"deleteFailed": "Nem sikerült törölni a listát.",
|
|
"confirmDeleteLinked": "Törlöd a(z) „{{name}}” listát? A YouTube-bal szinkronban van — válaszd ki, hogy ott is törlődjön-e. Nem vonható vissza.",
|
|
"dragBlockedBuiltin": "Ennek a listának kötött a sorrendje — kézzel nem rendezhető át.",
|
|
"deleteBoth": "Törlés itt és a YouTube-on",
|
|
"dndInstructions": "Szóközzel felveszed a videót, a nyilakkal mozgatod, újabb szóközzel leteszed, Escape-pel megszakítod.",
|
|
"dndPickedUp": "„{{title}}” felvéve, {{pos}}. a(z) {{total}} közül.",
|
|
"dndMovedOver": "„{{title}}” a(z) {{pos}}. helyre került a(z) {{total}} közül.",
|
|
"dndDropped": "„{{title}}” letéve a(z) {{pos}}. helyre a(z) {{total}} közül.",
|
|
"dndCancelled": "Mozgatás megszakítva; „{{title}}” visszakerült a(z) {{pos}}. helyre.",
|
|
"viewGrouped": "csatorna szerint csoportosítva",
|
|
"viewGroupedAnd": "csatorna szerint csoportosítva, {{sort}}",
|
|
"viewDiffers": "Ideiglenes nézet ({{view}}) — a lista mentett sorrendje változatlan. Mentsd, ha ez maradjon.",
|
|
"viewMatches": "Ez a nézet ({{view}}) megegyezik a lista mentett sorrendjével, így nincs mit menteni.",
|
|
"viewFiltered": "Szűrt nézet — {{total}} elemből {{shown}} látszik. Szűrés közben a sorrend nem menthető.",
|
|
"addFailed": "Nem sikerült hozzáadni a lejátszási listához."
|
|
}
|