feat(search): ephemeral results UX, count selector, channel blocklist (frontend)
- Live-search view: a results-count selector (20/40/60/100) replaces manual load-more (the free scrape source pages until that many are gathered); an 'these results are temporary' banner with a 'Clear now' button that discards them 'as if never added' (api.clearSearch) and returns to the feed. - Channel blocklist: a Block/Unblock toggle + 'Blocked' badge on the channel page (blocked channels don't auto-explore and their videos are hidden), and a 'Blocked channels' section in the Channel manager with one-click unblock. ChannelDetail.blocked from the backend. - Admin: a 'Purge discovery' button on the Scheduler page (immediate un-kept search/explore cleanup). EN/HU/DE throughout.
This commit is contained in:
parent
f27f31b6db
commit
0c18845c34
21 changed files with 263 additions and 65 deletions
|
|
@ -16,5 +16,8 @@
|
|||
"tabVideos": "Videos",
|
||||
"tabAbout": "Info",
|
||||
"loadMore": "Mehr von YouTube laden",
|
||||
"noDescription": "Dieser Kanal hat keine Beschreibung."
|
||||
"noDescription": "Dieser Kanal hat keine Beschreibung.",
|
||||
"block": "Kanal blockieren",
|
||||
"unblock": "Blockierung aufheben",
|
||||
"blockedBadge": "Blockiert"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -123,5 +123,9 @@
|
|||
},
|
||||
"confirmUnsubscribe": "Kanal „{{name}}“ bei YouTube abbestellen? Dies ändert dein echtes YouTube-Konto. Um ihn nur aus deinem Feed zu entfernen, blende ihn stattdessen aus.",
|
||||
"confirmReset": "Kanal „{{name}}“ von Grund auf neu laden? Dies startet den Backfill neu (aktuell + vollständiger Verlauf) und verbraucht etwas API-Kontingent.",
|
||||
"searchPlaceholder": "Kanäle suchen…"
|
||||
"searchPlaceholder": "Kanäle suchen…",
|
||||
"blocked": {
|
||||
"title": "Blockierte Kanäle",
|
||||
"hint": "Ihre Videos sind in deinem Feed, der Bibliothek und der Live-Suche ausgeblendet."
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,6 +96,10 @@
|
|||
"explore_grace_days": {
|
||||
"label": "Erkunden — Karenzzeit (Tage)",
|
||||
"hint": "Wie lange ein erkundeter, nicht abonnierter Kanal (und seine flüchtigen Videos) behalten wird, bevor die Aufräumaufgabe ihn entfernt. Ein Abo behält ihn dauerhaft."
|
||||
},
|
||||
"search_grace_days": {
|
||||
"label": "Suchergebnisse — Karenzzeit (Tage)",
|
||||
"hint": "Wie lange ein nicht behaltenes Live-Suchergebnis-Video (niemand hat es angesehen/gespeichert/abonniert) behalten wird, bevor die Entdeckungs-Aufräumaufgabe es entfernt."
|
||||
}
|
||||
},
|
||||
"save": "Speichern",
|
||||
|
|
|
|||
|
|
@ -48,6 +48,11 @@
|
|||
"noResults": "Keine YouTube-Videos gefunden.",
|
||||
"error": "YouTube-Suche fehlgeschlagen.",
|
||||
"loadMore": "Mehr laden (verbraucht Kontingent)",
|
||||
"loadMoreFree": "Mehr laden"
|
||||
"loadMoreFree": "Mehr laden",
|
||||
"show": "Zeigen",
|
||||
"ephemeralNote": "Diese Ergebnisse sind temporär — sie verschwinden automatisch, außer du siehst dir eines an oder speicherst es.",
|
||||
"clearNow": "Jetzt löschen",
|
||||
"cleared_one": "{{count}} Ergebnis gelöscht",
|
||||
"cleared_other": "{{count}} Ergebnisse gelöscht"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -92,5 +92,8 @@
|
|||
"shortsPendingHint": "Bereits angereicherte Videos, die noch auf die Shorts-Prüfung warten.",
|
||||
"liveRefresh": "Live zu aktualisieren",
|
||||
"liveRefreshHint": "Live-/bevorstehende Videos (und gerade beendete Streams ohne Dauer), bis sie sich stabilisieren."
|
||||
}
|
||||
},
|
||||
"purgeDiscovery": "Entdeckung leeren",
|
||||
"purgeDiscoveryHint": "Alle nicht behaltenen Entdeckungsinhalte jetzt entfernen (von niemandem angesehene/gespeicherte Suchergebnisse und erkundete, nicht abonnierte Kanäle) — ohne Karenzzeit.",
|
||||
"purgedDiscovery": "{{count}} Entdeckungselemente entfernt"
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue