mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-21 23:05:46 +00:00
23f7ba02d6
* feat(player-stats): local listening history tab with heatmap and summaries Record play sessions in library.sqlite when the library index is enabled, add Rust read APIs and Tauri commands for year/day aggregates, and ship the Player stats UI with session clustering, event-driven live refresh, and a notice when some servers are excluded from indexing. * test(player-stats): split play_session repo and expand test coverage Move the repository into play_session/ (completion, cluster, integration tests), add remap/purge/FK coverage in Rust, and cover ingestion gates plus live-refresh hooks on the frontend per spec v0.3. * docs(release): CHANGELOG and credits for player stats (PR #849) * fix(player-stats): satisfy tsc and clippy CI gates Use InternetRadioStation field names in the radio skip test and replace manual month/day range checks with RangeInclusive::contains.
95 lines
3.6 KiB
TypeScript
95 lines
3.6 KiB
TypeScript
export const statistics = {
|
||
title: 'Statistics',
|
||
recentlyPlayed: 'Recently Played',
|
||
mostPlayed: 'Most Played Albums',
|
||
highestRated: 'Highest Rated Albums',
|
||
genreDistribution: 'Genre Distribution (Top 20)',
|
||
loadMore: 'Load more',
|
||
statArtists: 'Artists',
|
||
statArtistsTooltip: 'Album artists only — artists appearing only as a track-level artist (featured, guest, etc.) without their own album are not included.',
|
||
statAlbums: 'Albums',
|
||
statSongs: 'Songs',
|
||
statGenres: 'Genres',
|
||
statPlaytime: 'Total Playtime',
|
||
genreInsights: 'Genre Insights',
|
||
formatDistribution: 'Format Distribution',
|
||
formatSample: 'Sample of {{n}} tracks',
|
||
computing: 'Computing…',
|
||
genreSongs: '{{count}} Songs',
|
||
genreAlbums: '{{count}} Albums',
|
||
recentlyAdded: 'Recently Added',
|
||
decadeDistribution: 'Albums by Decade',
|
||
decadeAlbums_one: '{{count}} Album',
|
||
decadeAlbums_other: '{{count}} Albums',
|
||
decadeUnknown: 'Unknown',
|
||
lfmTitle: 'Last.fm Stats',
|
||
lfmTopArtists: 'Top Artists',
|
||
lfmTopAlbums: 'Top Albums',
|
||
lfmTopTracks: 'Top Tracks',
|
||
lfmPlays: '{{count}} plays',
|
||
lfmPeriodOverall: 'All Time',
|
||
lfmPeriod7day: '7 Days',
|
||
lfmPeriod1month: '1 Month',
|
||
lfmPeriod3month: '3 Months',
|
||
lfmPeriod6month: '6 Months',
|
||
lfmPeriod12month: '12 Months',
|
||
lfmNotConnected: 'Connect Last.fm in Settings to see your stats.',
|
||
lfmRecentTracks: 'Recent Scrobbles',
|
||
lfmNowPlaying: 'Now Playing',
|
||
lfmJustNow: 'just now',
|
||
lfmMinutesAgo: '{{n}}m ago',
|
||
lfmHoursAgo: '{{n}}h ago',
|
||
lfmDaysAgo: '{{n}}d ago',
|
||
topRatedSongs: 'Top Rated Songs',
|
||
topRatedArtists: 'Top Rated Artists',
|
||
noRatedSongs: 'No rated songs yet. Rate songs in album or playlist view.',
|
||
noRatedArtists: 'No rated artists yet.',
|
||
exportShare: 'Share',
|
||
exportTitle: 'Share Top Albums',
|
||
exportSubtitle: 'Generate a shareable image of your most-played albums.',
|
||
exportFormat: 'Format',
|
||
exportFormatStory: 'Story',
|
||
exportFormatSquare: 'Square',
|
||
exportFormatTwitter: 'Twitter Card',
|
||
exportGrid: 'Grid',
|
||
exportGridLabel: '{{n}}×{{n}}',
|
||
exportPreview: 'Preview',
|
||
exportGenerate: 'Generate',
|
||
exportSave: 'Save image…',
|
||
exportCancel: 'Cancel',
|
||
exportFooterLabel: 'Top Albums',
|
||
exportNotEnough: 'Need at least {{count}} albums in your library for a {{n}}×{{n}} grid.',
|
||
exportSaving: 'Saving…',
|
||
exportSaved: 'Saved.',
|
||
exportSaveFailed: 'Could not save the image.',
|
||
tabServer: 'Server stats',
|
||
tabPlayer: 'Player stats',
|
||
playerEmpty: 'Start listening — your local play history will appear here once the library index is enabled.',
|
||
playerSummaryTime: 'Listening time',
|
||
playerListeningDayShort: '{{count}}d',
|
||
playerListeningHourShort: '{{count}}h',
|
||
playerListeningMinuteShort: '{{count}}m',
|
||
playerSummarySessions: 'Sessions',
|
||
playerSummaryTracks: 'Track plays',
|
||
playerSummaryUniqueTracks: 'Unique tracks',
|
||
playerSummaryDays: 'Days',
|
||
playerPartialIndexNotice: 'Some servers are excluded from the local library index. Listening on those servers is not recorded in player statistics.',
|
||
playerPartialIndexSettings: 'Library settings',
|
||
playerSummaryCompletion: 'Full / partial',
|
||
playerYearPrev: 'Previous year',
|
||
playerYearNext: 'Next year',
|
||
playerHeatmapLegend: 'Darker cells = more tracks played that day.',
|
||
playerHeatmapLess: 'Less',
|
||
playerHeatmapMore: 'More',
|
||
playerDaySessions: '{{count}} sessions',
|
||
playerDayTrackPlays: '{{count}} tracks',
|
||
playerDayFullPartial: '{{full}} full · {{partial}} partial',
|
||
playerRecentDaysTitle: 'Recent days',
|
||
playerDayToday: 'Today',
|
||
playerDayYesterday: 'Yesterday',
|
||
playerListenedSecShort: '{{seconds}}s',
|
||
playerListenedMinDecimal: '{{minutes}} min',
|
||
completionFull: 'Full listen',
|
||
completionPartial: 'Partial',
|
||
};
|