`filters.channelId` was settable by exactly one thing: a "?channel=" URL from a shared view. The panel still rendered a CHANNEL card whose only control was "remove" — a remove button for a filter the UI could not apply. Two ways in now. The panel gets a real Channel group (searchable picker, first-class alongside date/tags/language, so the chip row surfaces it for free); normalizeLayout appends it to saved layouts, so nobody loses their arrangement. And a subscribed channel's page gets "Show in my feed", which applies the filter and keeps the rest of your filters — the point is "this channel, the way I normally read", which the channel page itself can't answer (it runs show=all, scope=all over the whole catalog). The picker owns its channel query so a few-hundred-entry list loads when the panel is actually opened, not on every feed visit, and says "showing 50 of N" rather than quietly stopping.
29 lines
894 B
JSON
29 lines
894 B
JSON
{
|
|
"back": "Back",
|
|
"exploringBadge": "Exploring",
|
|
"subscribe": "Subscribe",
|
|
"subscribedState": "Subscribed",
|
|
"unsubscribe": "Unsubscribe",
|
|
"unsubTitle": "Unsubscribe?",
|
|
"unsubBody": "Stop following {{name}} on YouTube?",
|
|
"subscribed": "Subscribed to {{name}}",
|
|
"subscribers": "{{formatted}} subscribers",
|
|
"videoCount_one": "{{count}} video",
|
|
"videoCount_other": "{{count}} videos",
|
|
"totalViews": "{{formatted}} views",
|
|
"joined": "Joined {{date}}",
|
|
"loadingVideos": "Loading this channel's videos…",
|
|
"tabVideos": "Videos",
|
|
"tabAbout": "About",
|
|
"loadMore": "Load more from YouTube",
|
|
"noDescription": "This channel has no description.",
|
|
"block": "Block channel",
|
|
"unblock": "Unblock channel",
|
|
"blockedBadge": "Blocked",
|
|
"country": "Country",
|
|
"language": "Language",
|
|
"topics": "Topics",
|
|
"keywords": "Keywords",
|
|
"showInFeed": "Show in my feed"
|
|
}
|