Correctness / behaviour:
- Move the Personal Views modal from inside the collapsible filter rail to the
feed page (moduleRegistry FeedPage), so opening it from the always-visible
toolbar view chip works while the rail is unpinned (its default) instead of
no-op'ing and latching modalOpen into a later stale pop-open.
- Migrate a persisted legacy global `tagMode` into per-category `tagModes` on the
localStorage seed paths too (loadAccountFilters), matching the saved-view and
URL paths — an upgrading user's topic any/all no longer silently reverts to 'or'.
- DateFilterSelect: reset the custom reveal on an external clear while the popover
is closed (guard on !open, not maxAgeDays), so the trigger reverts to "Any time"
instead of lingering on "Custom range" with empty fields.
- PersonalViewsModal delete: only advance the detail selection when the delete
actually happened (remove() now resolves a boolean) — cancelling the confirm no
longer switches the selected view.
- SavedViewsProvider: prefer the explicitly-applied (sticky) view among several
that capture identical filters, so apply(B) isn't re-attributed to an earlier
duplicate A (wrong "modified" chip name).
A11y:
- Give the clickable panel title a descriptive accessible name (titleActionLabel,
wired to "Personal views") instead of announcing only "Filters".
- Give the "+N" overflow pill an aria-label ("N more filters").
- Use t("views.reorder") for the saved-view drag handle instead of a hardcoded
English "reorder" literal.
Also extract the chip-fit decision into a pure, testable lib/chipOverflow.ts and
measure the inter-chip gap live (rem-safe) instead of a frozen 6px constant.
85 lines
3.6 KiB
JSON
85 lines
3.6 KiB
JSON
{
|
||
"chips": {
|
||
"label": "Szűrve",
|
||
"remove": "Szűrő eltávolítása: {{name}}",
|
||
"contentNone": "Nincs tartalomtípus",
|
||
"count_one": "{{count}} szűrő",
|
||
"count_other": "{{count}} szűrő",
|
||
"moreCount_one": "még {{count}} szűrő",
|
||
"moreCount_other": "még {{count}} szűrő",
|
||
"maxAge_one": "Utolsó {{count}} nap",
|
||
"maxAge_other": "Utolsó {{count}} nap"
|
||
},
|
||
"loading": "Hírfolyam betöltése…",
|
||
"loadError": "Nem sikerült betölteni a hírfolyamot.",
|
||
"emptyTitle": "A hírfolyamod üres",
|
||
"emptyBody": "Kösd össze a YouTube-fiókodat, hogy importáld a feliratkozásaidat, és felépítsd a hírfolyamodat.",
|
||
"setUp": "Hírfolyam beállítása",
|
||
"browseShared": "Vagy csak böngészd a közös könyvtárat",
|
||
"demoEmptyTitle": "Itt a demóban nincs semmi",
|
||
"demoEmptyBody": "A demo fióknak nincsenek saját feliratkozásai — de a teljes közös könyvtár a tiéd: böngészd, szűrd és rendezd kedvedre.",
|
||
"browseLibrary": "Könyvtár böngészése",
|
||
"noMatches": "Egy videó sem felel meg ezeknek a szűrőknek.",
|
||
"channelScopeHint": "Ez a csatorna nincs a feliratkozásaid feedjében – lehet, hogy el van rejtve. A videói a közös könyvtárban vannak.",
|
||
"viewInLibrary": "Megnézés a Könyvtárban",
|
||
"videoCount_one": "{{formattedCount}} videó",
|
||
"videoCount_other": "{{formattedCount}} videó",
|
||
"sortLabel": "Rendezés",
|
||
"viewLabel": "Nézet",
|
||
"showLabel": "Megtekintési állapot",
|
||
"contentLabel": "Tartalomtípusok",
|
||
"view": {
|
||
"cards": "Nagy kártya",
|
||
"cardsSmall": "Kis kártya",
|
||
"rows": "Sor",
|
||
"rowsCompact": "Tömör sor",
|
||
"tiles": "Csempe"
|
||
},
|
||
"dirAsc": "Növekvő",
|
||
"dirDesc": "Csökkenő",
|
||
"sortKey": {
|
||
"date": "Dátum",
|
||
"popular": "Népszerű",
|
||
"duration": "Hossz",
|
||
"title": "Név",
|
||
"subscribers": "Csatorna feliratkozók",
|
||
"priority": "Csatorna prioritás",
|
||
"shuffle": "Meglepetés",
|
||
"relevance": "Relevancia"
|
||
},
|
||
"loadingMore": "Továbbiak betöltése…",
|
||
"hiddenNamed": "Elrejtve: „{{title}}”",
|
||
"hidden": "Videó elrejtve",
|
||
"undo": "Visszavonás",
|
||
"markedWatchedNamed": "Megnézettnek jelölve: „{{title}}”",
|
||
"markedWatched": "Megnézettnek jelölve",
|
||
"thisVideo": "ez a videó",
|
||
"unwatch": "Megnézés visszavonása",
|
||
"source": {
|
||
"label": "Forrás",
|
||
"tip": "Szűrés aszerint, hogyan kerültek be a videók: csak a feliratkozásaid/katalógus, az élő YouTube-keresésből talált videóiddal együtt, vagy csak azok a keresési találatok.",
|
||
"organic": "Keresés nélkül",
|
||
"all": "Kereséssel együtt",
|
||
"only": "Csak keresésből",
|
||
"plex": "Plex"
|
||
},
|
||
"yt": {
|
||
"searchFor": "Keresés a YouTube-on: „{{query}}”",
|
||
"resultsFor": "YouTube találatok erre: „{{query}}”",
|
||
"quotaNote": "Élő találatok — a közös API-kvótát fogyasztja",
|
||
"freeNote": "Élő találatok — nem fogyaszt keresési kvótát",
|
||
"back": "Vissza a hírfolyamhoz",
|
||
"searching": "Keresés a YouTube-on…",
|
||
"noResults": "Nincs YouTube-találat.",
|
||
"error": "A YouTube-keresés nem sikerült.",
|
||
"loadMore": "Továbbiak betöltése (kvótát fogyaszt)",
|
||
"loadMoreFree": "Továbbiak betöltése",
|
||
"show": "Mutat",
|
||
"ephemeralNote": "Ezek a találatok ideiglenesek — maguktól eltűnnek, hacsak meg nem nézel vagy el nem mentesz egyet.",
|
||
"clearNow": "Törlés most",
|
||
"cleared_one": "{{count}} találat törölve",
|
||
"cleared_other": "{{count}} találat törölve",
|
||
"showHint": "Hány találatot szerezzen egyszerre — a Több betöltése ennyivel tölt tovább."
|
||
}
|
||
}
|