mirror of
https://github.com/kilyabin/psysonic.git
synced 2026-07-22 06:25:41 +00:00
Merge branch 'main' into exp/orbit (pre-PR sync)
Conflicts resolved in: - src/pages/SearchResults.tsx - src/pages/AdvancedSearch.tsx Both pages were rewritten on main (PR #303) to use the shared <SongRow> component with click-to-enqueueAndPlay semantics. Orbit's playSong helper that branched on orbit-active is no longer needed at the page level — instead, orbit awareness moved INTO SongRow and SongCard themselves: in an active orbit session both buttons collapse into addTrackToOrbit (suggest for guests, host-enqueue for the host) so we don't ship a queue replacement to every guest. Also kept main's IntersectionObserver-based pagination on both pages. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -21,6 +21,7 @@ export const deTranslation = {
|
||||
cancelDownload: 'Download abbrechen',
|
||||
offlineLibrary: 'Offline-Bibliothek',
|
||||
genres: 'Genres',
|
||||
tracks: 'Titel',
|
||||
playlists: 'Playlists',
|
||||
mostPlayed: 'Meistgehört',
|
||||
radio: 'Internetradio',
|
||||
@@ -40,6 +41,7 @@ export const deTranslation = {
|
||||
mostPlayed: 'Meistgehört',
|
||||
recentlyPlayed: 'Kürzlich gespielt',
|
||||
discover: 'Entdecken',
|
||||
discoverSongs: 'Titel entdecken',
|
||||
loadMore: 'Mehr laden',
|
||||
discoverMore: 'Mehr entdecken',
|
||||
discoverArtists: 'Künstler entdecken',
|
||||
@@ -378,6 +380,20 @@ export const deTranslation = {
|
||||
offlineQueuing: '{{count}} Album(s) für Offline einreihen…',
|
||||
offlineFailed: '{{name}} konnte nicht offline hinzugefügt werden',
|
||||
},
|
||||
tracks: {
|
||||
title: 'Titel',
|
||||
subtitle: 'Stöbern. Suchen. Entdecken.',
|
||||
heroEyebrow: 'Titel des Moments',
|
||||
heroReroll: 'Anderen wählen',
|
||||
playSong: 'Abspielen',
|
||||
enqueueSong: 'Zur Warteschlange',
|
||||
railRandom: 'Zufallsauswahl',
|
||||
browseTitle: 'Alle Titel durchstöbern',
|
||||
browseUnsupported: 'Dieser Server listet nicht die ganze Bibliothek auf einmal. Nutze die Suche oben, um bestimmte Titel zu finden.',
|
||||
searchPlaceholder: 'Titel, Künstler oder Album suchen…',
|
||||
count_one: '{{count}} Titel',
|
||||
count_other: '{{count}} Titel',
|
||||
},
|
||||
artists: {
|
||||
title: 'Künstler',
|
||||
search: 'Suchen…',
|
||||
|
||||
@@ -22,6 +22,7 @@ export const enTranslation = {
|
||||
cancelDownload: 'Cancel download',
|
||||
offlineLibrary: 'Offline Library',
|
||||
genres: 'Genres',
|
||||
tracks: 'Tracks',
|
||||
playlists: 'Playlists',
|
||||
smartPlaylists: 'Smart Playlists',
|
||||
mostPlayed: 'Most Played',
|
||||
@@ -42,6 +43,7 @@ export const enTranslation = {
|
||||
mostPlayed: 'Most Played',
|
||||
recentlyPlayed: 'Recently Played',
|
||||
discover: 'Discover',
|
||||
discoverSongs: 'Discover Songs',
|
||||
loadMore: 'Load More',
|
||||
discoverMore: 'Discover More',
|
||||
discoverArtists: 'Discover Artists',
|
||||
@@ -380,6 +382,20 @@ export const enTranslation = {
|
||||
offlineQueuing: 'Queuing {{count}} album(s) for offline…',
|
||||
offlineFailed: 'Failed to add {{name}} offline',
|
||||
},
|
||||
tracks: {
|
||||
title: 'Tracks',
|
||||
subtitle: 'Browse. Search. Discover.',
|
||||
heroEyebrow: 'Track of the moment',
|
||||
heroReroll: 'Pick another',
|
||||
playSong: 'Play',
|
||||
enqueueSong: 'Add to queue',
|
||||
railRandom: 'Random Pick',
|
||||
browseTitle: 'Browse all tracks',
|
||||
browseUnsupported: "This server doesn't list the whole library at once. Use the search above to find specific tracks.",
|
||||
searchPlaceholder: 'Find a track by title, artist or album…',
|
||||
count_one: '{{count}} track',
|
||||
count_other: '{{count}} tracks',
|
||||
},
|
||||
artists: {
|
||||
title: 'Artists',
|
||||
search: 'Search…',
|
||||
|
||||
@@ -22,6 +22,7 @@ export const esTranslation = {
|
||||
cancelDownload: 'Cancelar descarga',
|
||||
offlineLibrary: 'Biblioteca Offline',
|
||||
genres: 'Géneros',
|
||||
tracks: 'Canciones',
|
||||
playlists: 'Listas de Reproducción',
|
||||
mostPlayed: 'Más Reproducidos',
|
||||
radio: 'Radio por Internet',
|
||||
@@ -41,6 +42,7 @@ export const esTranslation = {
|
||||
mostPlayed: 'Más Reproducidos',
|
||||
recentlyPlayed: 'Reproducidos Recientemente',
|
||||
discover: 'Descubrir',
|
||||
discoverSongs: 'Descubrir canciones',
|
||||
loadMore: 'Cargar Más',
|
||||
discoverMore: 'Descubrir Más',
|
||||
discoverArtists: 'Descubrir Artistas',
|
||||
@@ -380,6 +382,20 @@ export const esTranslation = {
|
||||
offlineFailed: 'Error al agregar {{name}} offline',
|
||||
addToPlaylist: 'Agregar a Lista de Reproducción',
|
||||
},
|
||||
tracks: {
|
||||
title: 'Canciones',
|
||||
subtitle: 'Explorar. Buscar. Descubrir.',
|
||||
heroEyebrow: 'Canción del momento',
|
||||
heroReroll: 'Elegir otra',
|
||||
playSong: 'Reproducir',
|
||||
enqueueSong: 'Añadir a la cola',
|
||||
railRandom: 'Selección aleatoria',
|
||||
browseTitle: 'Explorar todas las canciones',
|
||||
browseUnsupported: 'Este servidor no lista toda la biblioteca de una vez. Usa la búsqueda de arriba para encontrar canciones concretas.',
|
||||
searchPlaceholder: 'Busca una canción por título, artista o álbum…',
|
||||
count_one: '{{count}} canción',
|
||||
count_other: '{{count}} canciones',
|
||||
},
|
||||
artists: {
|
||||
title: 'Artistas',
|
||||
search: 'Buscar…',
|
||||
|
||||
@@ -21,6 +21,7 @@ export const frTranslation = {
|
||||
cancelDownload: 'Annuler le téléchargement',
|
||||
offlineLibrary: 'Bibliothèque hors ligne',
|
||||
genres: 'Genres',
|
||||
tracks: 'Titres',
|
||||
playlists: 'Playlists',
|
||||
mostPlayed: 'Les plus joués',
|
||||
radio: 'Radio Internet',
|
||||
@@ -40,6 +41,7 @@ export const frTranslation = {
|
||||
mostPlayed: 'Les plus écoutés',
|
||||
recentlyPlayed: 'Récemment écoutés',
|
||||
discover: 'Découvrir',
|
||||
discoverSongs: 'Découvrir des titres',
|
||||
loadMore: 'Charger plus',
|
||||
discoverMore: 'Découvrir plus',
|
||||
discoverArtists: 'Découvrir des artistes',
|
||||
@@ -378,6 +380,20 @@ export const frTranslation = {
|
||||
offlineQueuing: 'Mise en file d\'attente de {{count}} album(s) hors ligne…',
|
||||
offlineFailed: 'Échec de l\'ajout de {{name}} hors ligne',
|
||||
},
|
||||
tracks: {
|
||||
title: 'Titres',
|
||||
subtitle: 'Parcourir. Chercher. Découvrir.',
|
||||
heroEyebrow: 'Titre du moment',
|
||||
heroReroll: 'En choisir un autre',
|
||||
playSong: 'Lire',
|
||||
enqueueSong: 'Ajouter à la file',
|
||||
railRandom: 'Sélection aléatoire',
|
||||
browseTitle: 'Parcourir tous les titres',
|
||||
browseUnsupported: 'Ce serveur ne liste pas toute la bibliothèque d\'un coup. Utilisez la recherche ci-dessus pour trouver des titres précis.',
|
||||
searchPlaceholder: 'Chercher un titre par titre, artiste ou album…',
|
||||
count_one: '{{count}} titre',
|
||||
count_other: '{{count}} titres',
|
||||
},
|
||||
artists: {
|
||||
title: 'Artistes',
|
||||
search: 'Rechercher…',
|
||||
|
||||
@@ -21,6 +21,7 @@ export const nbTranslation = {
|
||||
cancelDownload: 'Avbryt nedlasting',
|
||||
offlineLibrary: 'Frakoblet bibliotek',
|
||||
genres: 'Sjangere',
|
||||
tracks: 'Spor',
|
||||
playlists: 'Spillelister',
|
||||
mostPlayed: 'Mest spilt',
|
||||
radio: 'Internettradio',
|
||||
@@ -40,6 +41,7 @@ export const nbTranslation = {
|
||||
mostPlayed: 'Mest spilt',
|
||||
recentlyPlayed: 'Nylig spilt',
|
||||
discover: 'Oppdag',
|
||||
discoverSongs: 'Oppdag spor',
|
||||
loadMore: 'Last inn flere',
|
||||
discoverMore: 'Oppdag flere',
|
||||
discoverArtists: 'Oppdag artister',
|
||||
@@ -378,6 +380,20 @@ export const nbTranslation = {
|
||||
offlineQueuing: 'Legger {{count}} album i kø for offline…',
|
||||
offlineFailed: 'Kunne ikke legge til {{name}} offline',
|
||||
},
|
||||
tracks: {
|
||||
title: 'Spor',
|
||||
subtitle: 'Bla. Søk. Oppdag.',
|
||||
heroEyebrow: 'Sporet akkurat nå',
|
||||
heroReroll: 'Velg et annet',
|
||||
playSong: 'Spill av',
|
||||
enqueueSong: 'Legg til i kø',
|
||||
railRandom: 'Tilfeldig valg',
|
||||
browseTitle: 'Bla gjennom alle spor',
|
||||
browseUnsupported: 'Denne tjeneren lister ikke hele biblioteket på én gang. Bruk søket ovenfor for å finne bestemte spor.',
|
||||
searchPlaceholder: 'Finn et spor etter tittel, artist eller album…',
|
||||
count_one: '{{count}} spor',
|
||||
count_other: '{{count}} spor',
|
||||
},
|
||||
artists: {
|
||||
title: 'Artister',
|
||||
search: 'Søk…',
|
||||
|
||||
@@ -21,6 +21,7 @@ export const nlTranslation = {
|
||||
cancelDownload: 'Download annuleren',
|
||||
offlineLibrary: 'Offline bibliotheek',
|
||||
genres: 'Genres',
|
||||
tracks: 'Nummers',
|
||||
playlists: 'Playlists',
|
||||
mostPlayed: 'Meest gespeeld',
|
||||
radio: 'Internetradio',
|
||||
@@ -40,6 +41,7 @@ export const nlTranslation = {
|
||||
mostPlayed: 'Meest gespeeld',
|
||||
recentlyPlayed: 'Recent afgespeeld',
|
||||
discover: 'Ontdekken',
|
||||
discoverSongs: 'Nummers ontdekken',
|
||||
loadMore: 'Meer laden',
|
||||
discoverMore: 'Meer ontdekken',
|
||||
discoverArtists: 'Artiesten ontdekken',
|
||||
@@ -377,6 +379,20 @@ export const nlTranslation = {
|
||||
offlineQueuing: '{{count}} album(s) in wachtrij voor offline…',
|
||||
offlineFailed: 'Toevoegen van {{name}} offline mislukt',
|
||||
},
|
||||
tracks: {
|
||||
title: 'Nummers',
|
||||
subtitle: 'Bladeren. Zoeken. Ontdekken.',
|
||||
heroEyebrow: 'Nummer van het moment',
|
||||
heroReroll: 'Een ander kiezen',
|
||||
playSong: 'Afspelen',
|
||||
enqueueSong: 'Aan wachtrij toevoegen',
|
||||
railRandom: 'Willekeurige selectie',
|
||||
browseTitle: 'Alle nummers doorbladeren',
|
||||
browseUnsupported: 'Deze server toont niet de hele bibliotheek in één keer. Gebruik de zoekbalk hierboven om specifieke nummers te vinden.',
|
||||
searchPlaceholder: 'Zoek op titel, artiest of album…',
|
||||
count_one: '{{count}} nummer',
|
||||
count_other: '{{count}} nummers',
|
||||
},
|
||||
artists: {
|
||||
title: 'Artiesten',
|
||||
search: 'Zoeken…',
|
||||
|
||||
@@ -22,6 +22,7 @@ export const ruTranslation = {
|
||||
cancelDownload: 'Отменить загрузку',
|
||||
offlineLibrary: 'Офлайн-библиотека',
|
||||
genres: 'Жанры',
|
||||
tracks: 'Треки',
|
||||
playlists: 'Плейлисты',
|
||||
smartPlaylists: 'Смарт-плейлисты',
|
||||
mostPlayed: 'Популярное',
|
||||
@@ -42,6 +43,7 @@ export const ruTranslation = {
|
||||
mostPlayed: 'Популярное',
|
||||
recentlyPlayed: 'Недавно проиграно',
|
||||
discover: 'Обзор',
|
||||
discoverSongs: 'Открыть треки',
|
||||
loadMore: 'Ещё',
|
||||
discoverMore: 'Смотреть ещё',
|
||||
discoverArtists: 'Исполнители',
|
||||
@@ -402,6 +404,22 @@ export const ruTranslation = {
|
||||
offlineQueuing: 'Добавление {{count}} альбом(ов) в офлайн…',
|
||||
offlineFailed: 'Не удалось добавить {{name}} офлайн',
|
||||
},
|
||||
tracks: {
|
||||
title: 'Треки',
|
||||
subtitle: 'Листать. Искать. Открывать.',
|
||||
heroEyebrow: 'Трек момента',
|
||||
heroReroll: 'Выбрать другой',
|
||||
playSong: 'Воспроизвести',
|
||||
enqueueSong: 'В очередь',
|
||||
railRandom: 'Случайная подборка',
|
||||
browseTitle: 'Просмотреть все треки',
|
||||
browseUnsupported: 'Этот сервер не возвращает всю библиотеку сразу. Воспользуйтесь поиском выше, чтобы найти конкретные треки.',
|
||||
searchPlaceholder: 'Найти трек по названию, исполнителю или альбому…',
|
||||
count_one: '{{count}} трек',
|
||||
count_few: '{{count}} трека',
|
||||
count_many: '{{count}} треков',
|
||||
count_other: '{{count}} треков',
|
||||
},
|
||||
artists: {
|
||||
title: 'Исполнители',
|
||||
search: 'Поиск…',
|
||||
|
||||
@@ -21,6 +21,7 @@ export const zhTranslation = {
|
||||
cancelDownload: '取消下载',
|
||||
offlineLibrary: '离线音乐库',
|
||||
genres: '流派',
|
||||
tracks: '曲目',
|
||||
playlists: '播放列表',
|
||||
mostPlayed: '最常播放',
|
||||
radio: '网络电台',
|
||||
@@ -40,6 +41,7 @@ export const zhTranslation = {
|
||||
mostPlayed: '最常播放',
|
||||
recentlyPlayed: '最近播放',
|
||||
discover: '发现',
|
||||
discoverSongs: '发现曲目',
|
||||
loadMore: '加载更多',
|
||||
discoverMore: '发现更多',
|
||||
discoverArtists: '发现艺术家',
|
||||
@@ -376,6 +378,20 @@ export const zhTranslation = {
|
||||
offlineQueuing: '正在将 {{count}} 张专辑加入离线队列…',
|
||||
offlineFailed: '添加 {{name}} 离线失败',
|
||||
},
|
||||
tracks: {
|
||||
title: '曲目',
|
||||
subtitle: '浏览。搜索。发现。',
|
||||
heroEyebrow: '此刻精选',
|
||||
heroReroll: '换一首',
|
||||
playSong: '播放',
|
||||
enqueueSong: '加入队列',
|
||||
railRandom: '随机精选',
|
||||
browseTitle: '浏览所有曲目',
|
||||
browseUnsupported: '此服务器不支持一次性列出整个音乐库。使用上方的搜索来查找特定曲目。',
|
||||
searchPlaceholder: '按标题、艺人或专辑搜索…',
|
||||
count_one: '{{count}} 首曲目',
|
||||
count_other: '{{count}} 首曲目',
|
||||
},
|
||||
artists: {
|
||||
title: '艺术家',
|
||||
search: '搜索…',
|
||||
|
||||
Reference in New Issue
Block a user