mirror of
https://github.com/kilyabin/psysonic.git
synced 2026-07-22 06:25:41 +00:00
efd85ffde3
* feat(tracklist): play count, last played, and BPM columns (#516) Adds three opt-in columns to Album / Playlist / Favorites tracklists, plus the same fields in the Song Info modal. Picks up Navidrome's existing `playCount` / `played` / `bpm` from the Subsonic response — no new API calls. - `SubsonicSong` gains `playCount`, `played`, `bpm` (already populated by Navidrome's Subsonic API, just unmapped in the TS model). - `albumTrackListHelpers.COLUMNS`, `PL_COLUMNS` (PlaylistDetail), and `FAV_COLUMNS` (Favorites) get the three new entries. Genre also added to the playlist column set for parity with the other two lists. - Render uses `.track-duration` (12px tabular, centered, muted) for the numeric stats and `.track-genre` (11px text, muted) for the relative last-played timestamp via the existing `formatLastSeen` helper. - Sort logic extended in `playlistDisplayedSongs`, `useAlbumDetailSort`, and `useFavoritesSongFiltering` for the three new keys. - `SongInfoModal` gets matching rows (BPM / Play count / Last played). - `useTracklistColumns.gridTemplate` / `gridMinWidth` fall back to the ColDef's `defaultWidth` when a visible column has no saved width (newly added column on an old prefs blob would otherwise emit `undefinedpx` and collapse the row layout until reset-to-defaults). - BPM cells skip the rendering when Navidrome returns 0 (default for untagged files) — show `—` instead of `0`. - i18n: `albumDetail.trackPlayCount / trackLastPlayed / trackBpm` and `songInfo.playCount / lastPlayed / bpm` in all 9 locales. Suggested by jbigginswyl (#516). * docs(changelog): tracklist Plays / Last played / BPM columns (#730)
51 lines
1.8 KiB
TypeScript
51 lines
1.8 KiB
TypeScript
export const albumDetail = {
|
||
back: 'Zurück',
|
||
orbitDoubleClickHint: 'Doppelklick fügt diesen Titel zur Orbit-Queue hinzu',
|
||
playAll: 'Alle abspielen',
|
||
shareAlbum: 'Album teilen',
|
||
enqueue: 'Einreihen',
|
||
enqueueTooltip: 'Ganzes Album zur Warteschlange hinzufügen',
|
||
artistBio: 'Künstler-Bio',
|
||
download: 'Download (ZIP)',
|
||
downloading: 'Lade…',
|
||
cacheOffline: 'Offline verfügbar machen',
|
||
offlineCached: 'Offline verfügbar',
|
||
offlineDownloading: 'Wird gecacht… ({{n}}/{{total}})',
|
||
removeOffline: 'Offline-Cache löschen',
|
||
offlineStorageFull: 'Offline-Speicher voll (Limit: {{mb}} MB). Lösche ein Album aus der Offline-Bibliothek oder erhöhe das Limit in den Einstellungen.',
|
||
offlineStorageGoToSettings: 'Einstellungen',
|
||
offlineStorageGoToLibrary: 'Offline-Bibliothek',
|
||
favoriteAdd: 'Zu Favoriten hinzufügen',
|
||
favoriteRemove: 'Aus Favoriten entfernen',
|
||
favorite: 'Als Favorit',
|
||
noBio: 'Keine Biografie verfügbar.',
|
||
moreByArtist: 'Mehr von {{artist}}',
|
||
tracksCount: '{{n}} Tracks',
|
||
goToArtist: 'Zu {{artist}} wechseln',
|
||
moreLabelAlbums: 'Weitere Alben von {{label}} anzeigen',
|
||
trackTitle: 'Titel',
|
||
trackAlbum: 'Album',
|
||
trackArtist: 'Interpret',
|
||
trackGenre: 'Genre',
|
||
trackPlayCount: 'Wiedergaben',
|
||
trackLastPlayed: 'Zuletzt gespielt',
|
||
trackBpm: 'BPM',
|
||
trackFormat: 'Format',
|
||
trackFavorite: 'Favorit',
|
||
trackRating: 'Bewertung',
|
||
trackDuration: 'Dauer',
|
||
trackTotal: 'Gesamt',
|
||
columns: 'Spalten',
|
||
resetColumns: 'Zurücksetzen',
|
||
notFound: 'Album nicht gefunden.',
|
||
bioModal: 'Künstler-Biografie',
|
||
bioClose: 'Schließen',
|
||
ratingLabel: 'Bewertung',
|
||
enlargeCover: 'Vergrößern',
|
||
filterSongs: 'Titel filtern…',
|
||
sortNatural: 'Reihenfolge',
|
||
sortByTitle: 'A–Z (Titel)',
|
||
sortByArtist: 'A–Z (Künstler)',
|
||
sortByAlbum: 'A–Z (Album)',
|
||
};
|