Surface live YouTube search in the existing feed, triggered explicitly so the expensive API call is never per-keystroke. - Header: the search box still filters the local catalog as you type; Enter or a YouTube button escalates the term to a live search (hidden for the demo account). - Feed: a dedicated infinite query renders results in the same VirtualFeed cards + in-app player, under a banner with a back button and a quota note. No auto-paginate (each page spends 100 units) — an explicit 'Load more (uses quota)' button instead; quota/limit errors (incl. 429) shown inline. The empty local feed offers a 'Search YouTube for <q>' CTA. - Library: a 'Search-discovered' toggle reveals search-ingested videos (hidden by default); sent as exclude_search_discovered. - Admin: search_daily_limit_per_user config field; new videos_search quota label. - All new strings translated in HU/EN/DE.
45 lines
1.9 KiB
JSON
45 lines
1.9 KiB
JSON
{
|
|
"loading": "Feed wird geladen…",
|
|
"loadError": "Feed konnte nicht geladen werden.",
|
|
"emptyTitle": "Dein Feed ist leer",
|
|
"emptyBody": "Verbinde dein YouTube-Konto, um deine Abos zu importieren und deinen Feed aufzubauen.",
|
|
"setUp": "Meinen Feed einrichten",
|
|
"browseShared": "Oder einfach die gemeinsame Bibliothek durchsuchen",
|
|
"demoEmptyTitle": "Hier in der Demo ist nichts",
|
|
"demoEmptyBody": "Das Demo-Konto hat keine eigenen Abos — aber die gesamte gemeinsame Bibliothek steht dir offen: durchsuchen, filtern und sortieren.",
|
|
"browseLibrary": "Bibliothek durchsuchen",
|
|
"noMatches": "Keine Videos entsprechen diesen Filtern.",
|
|
"videoCount_one": "{{formattedCount}} Video",
|
|
"videoCount_other": "{{formattedCount}} Videos",
|
|
"sortLabel": "Sortierung",
|
|
"dirAsc": "Aufsteigend",
|
|
"dirDesc": "Absteigend",
|
|
"sortKey": {
|
|
"date": "Datum",
|
|
"popular": "Beliebt",
|
|
"duration": "Dauer",
|
|
"title": "Name",
|
|
"subscribers": "Kanal-Abonnenten",
|
|
"priority": "Kanal-Priorität",
|
|
"shuffle": "Überraschung"
|
|
},
|
|
"loadingMore": "Mehr wird geladen…",
|
|
"hiddenNamed": "Ausgeblendet: „{{title}}”",
|
|
"hidden": "Video ausgeblendet",
|
|
"undo": "Rückgängig",
|
|
"markedWatchedNamed": "Als angesehen markiert: „{{title}}”",
|
|
"markedWatched": "Als angesehen markiert",
|
|
"unwatch": "Nicht mehr als angesehen",
|
|
"searchDiscovered": "Über Suche gefunden",
|
|
"searchDiscoveredTip": "Auch Videos anzeigen, die nur über eine Live-YouTube-Suche in die Bibliothek kamen.",
|
|
"yt": {
|
|
"searchFor": "Auf YouTube suchen nach „{{query}}”",
|
|
"resultsFor": "YouTube-Ergebnisse für „{{query}}”",
|
|
"quotaNote": "Live-Ergebnisse — verbraucht gemeinsames API-Kontingent",
|
|
"back": "Zurück zum Feed",
|
|
"searching": "Suche auf YouTube…",
|
|
"noResults": "Keine YouTube-Videos gefunden.",
|
|
"error": "YouTube-Suche fehlgeschlagen.",
|
|
"loadMore": "Mehr laden (verbraucht Kontingent)"
|
|
}
|
|
}
|