Files
siftlode/frontend/src/i18n/locales/en/sidebar.json
T
peter edcea87ea5 feat(feed): filter by year — per-year count facet + year control (E8·S2)
Add a Year filter to the feed rail: quick chips for recent years plus a
'More…' popover listing all years with per-year video counts, sortable by
year or count. Selecting a year narrows the feed to that whole calendar
year (a published_after/before range applied in the api layer) and is
mutually exclusive with the Upload-date control.

Backend: new /api/feed/years endpoint + feed_years() — one grouped query
that honours every filter EXCEPT the publish-date narrowing (dropped), so
the year list stays a live drill-down and switching years never zeroes the
others. FE keys the list on the date-stripped filters, so picking a year
re-queries the feed but not the list.

Wires year through FeedFilters, the filterParams/URL (?year) round-trip,
the active-filter chip row, and the panel layout. i18n HU+EN.

Tests: feed_years count query (date narrowing ignored, other filters
honoured); dateFilter year-clearing; urlState year round-trip.
2026-08-25 02:55:12 +02:00

99 lines
2.4 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"filters": "Filters",
"activeCount": "{{count}} active",
"clearAll": "Clear all",
"resetDefaults": "Reset to defaults",
"customize": "Customize sidebar",
"done": "Done",
"editHint": "Drag to reorder · eye to show/hide",
"channel": "Channel",
"loading": "Loading…",
"channelCount": "{{count}} channel",
"channelCount_other": "{{count}} channels",
"dragToReorder": "Drag to reorder",
"showWidget": "Show widget",
"hideWidget": "Hide widget",
"expand": "Expand",
"collapse": "Collapse",
"pin": "Pin panel open",
"unpin": "Unpin panel",
"any": "Any",
"all": "All",
"tagModeTooltip": "Match any vs all selected tags",
"match": "Match",
"custom": "Custom",
"from": "From",
"to": "To",
"clearDates": "clear dates",
"reshuffle": "Reshuffle",
"noMatchingTags": "No matching tags here",
"noTagOption": "No tag",
"manageTags": "Manage",
"widget": {
"savedviews": "Saved views",
"show": "Show",
"sort": "Sort",
"date": "Upload date",
"content": "Content type",
"language": "Language",
"topic": "Topic",
"tags": "Your tags",
"channel": "Channel",
"year": "Year"
},
"year": {
"more": "More…",
"moreLabel": "All years",
"none": "No years yet",
"sortBy": "Sort",
"sortYear": "Year",
"sortCount": "Count"
},
"show": {
"unwatched": "Unwatched",
"in_progress": "In progress",
"all": "All",
"watched": "Watched",
"saved": "Saved",
"hidden": "Hidden"
},
"sort": {
"newest": "Newest",
"oldest": "Oldest",
"views": "Most viewed",
"duration_desc": "Longest",
"duration_asc": "Shortest",
"title": "Name (A–Z)",
"subscribers": "Channel subscribers",
"priority": "Channel priority",
"shuffle": "Surprise me"
},
"content": {
"normal": "Normal",
"shorts": "Shorts",
"live": "Live / Upcoming"
},
"datePresetLabel": "Upload date",
"datePreset": {
"24h": "24h",
"1week": "1 week",
"2weeks": "2 weeks",
"1month": "1 month",
"3months": "3 months",
"6months": "6 months",
"1year": "1 year",
"2years": "2 years",
"5years": "5 years"
},
"date": {
"anyTime": "Any time",
"customRange": "Custom range",
"fromShort": "From {{date}}",
"untilShort": "Until {{date}}"
},
"channelSearch": "Search channels…",
"noChannelMatch": "No channel matches.",
"channelOrder": "Priority first, then A–Z",
"channelRemove": "Remove channel: {{name}}"
}