From b62ffc730aa1c38f73d4407d8fe713f47adf6184 Mon Sep 17 00:00:00 2001 From: vicrodh <103399283+vicrodh@users.noreply.github.com> Date: Sat, 18 Apr 2026 16:53:06 -0600 Subject: [PATCH] refactor(home): rename yourMixes to qobuzMixes Disambiguates Qobuz's auto-generated "Your Mixes" section from the upcoming user-owned Mixtapes feature (spec qbz-nix-docs/specs/2026-04-18-mixtapes-collections-design.md). - Renamed HomeSectionId type union entry from 'yourMixes' to 'qobuzMixes' - Updated DEFAULT_SECTIONS in homeSettingsStore.ts - Renamed translation keys in all 5 locale files (en, es, de, fr, pt) - Updated section labels to "Qobuz Mixes", "Mixes de Qobuz", etc. - Updated all component references in HomeView, DynamicSuggestView, FavQView, ForYouTab, TopQView, and WeeklySuggestView cc --- .../views/DynamicSuggestView.svelte | 24 +++--- src/lib/components/views/FavQView.svelte | 16 ++-- src/lib/components/views/ForYouTab.svelte | 4 +- src/lib/components/views/HomeView.svelte | 6 +- src/lib/components/views/TopQView.svelte | 16 ++-- .../components/views/WeeklySuggestView.svelte | 18 ++--- src/lib/i18n/locales/de.json | 74 +++++++++--------- src/lib/i18n/locales/en.json | 76 +++++++++---------- src/lib/i18n/locales/es.json | 76 +++++++++---------- src/lib/i18n/locales/fr.json | 74 +++++++++--------- src/lib/i18n/locales/pt.json | 74 +++++++++--------- src/lib/stores/homeSettingsStore.ts | 4 +- 12 files changed, 231 insertions(+), 231 deletions(-) diff --git a/src/lib/components/views/DynamicSuggestView.svelte b/src/lib/components/views/DynamicSuggestView.svelte index bd04257eb..826c997c2 100644 --- a/src/lib/components/views/DynamicSuggestView.svelte +++ b/src/lib/components/views/DynamicSuggestView.svelte @@ -140,7 +140,7 @@ playlistModalTrackIds = trackIds; showPlaylistModal = true; } catch (err) { - error = err instanceof Error ? err.message : $t('yourMixes.errors.playlistsLoadFailed'); + error = err instanceof Error ? err.message : $t('qobuzMixes.errors.playlistsLoadFailed'); } multiSelectMode = false; multiSelectedIds = new Set(); } @@ -262,7 +262,7 @@ const seedPayload = await buildSeeds(); if (seedPayload.listenedTrackIds.length === 0) { - error = $t('yourMixes.errors.insufficientHistory'); + error = $t('qobuzMixes.errors.insufficientHistory'); result = null; return; } @@ -287,7 +287,7 @@ }); } } catch (err) { - error = err instanceof Error ? err.message : $t('yourMixes.errors.fetchFailed'); + error = err instanceof Error ? err.message : $t('qobuzMixes.errors.fetchFailed'); result = null; } finally { loading = false; @@ -304,7 +304,7 @@ async function openSaveAsPlaylist(): Promise { const trackIds = getResultTrackIds(); if (trackIds.length === 0) { - showToast($t('yourMixes.errors.emptyPlaylist'), 'info'); + showToast($t('qobuzMixes.errors.emptyPlaylist'), 'info'); return; } @@ -313,7 +313,7 @@ playlistModalTrackIds = trackIds; showPlaylistModal = true; } catch (err) { - error = err instanceof Error ? err.message : $t('yourMixes.errors.playlistsLoadFailed'); + error = err instanceof Error ? err.message : $t('qobuzMixes.errors.playlistsLoadFailed'); } } @@ -473,21 +473,21 @@
- {$t('home.yourMixes')} + {$t('home.qobuzMixes')}

- {$t('yourMixes.title')} + {$t('qobuzMixes.title')} {#if showAlgoTooltip} - {$t('yourMixes.algorithmInfo')} + {$t('qobuzMixes.algorithmInfo')} {/if}

-

{@html $t('yourMixes.cardDesc')}

+

{@html $t('qobuzMixes.cardDesc')}

- {$t('yourMixes.result.count', { values: { count: filteredTracks.length } })} + {$t('qobuzMixes.result.count', { values: { count: filteredTracks.length } })} {#if filteredTracks.length > 0} • {totalDurationFormatted} @@ -501,7 +501,7 @@ - - - {#if showAlgoTooltip} - {$t('yourMixes.algorithmInfo')} + {$t('qobuzMixes.algorithmInfo')} {/if}

{@html $t('weeklyMixes.cardDesc')}

- {$t('yourMixes.result.count', { values: { count: filteredTracks.length } })} + {$t('qobuzMixes.result.count', { values: { count: filteredTracks.length } })} {#if filteredTracks.length > 0} • {totalDurationFormatted} @@ -499,7 +499,7 @@ -
{:else if result && filteredTracks.length === 0} -
{$t('yourMixes.result.empty')}
+
{$t('qobuzMixes.result.empty')}
{:else if result}
diff --git a/src/lib/i18n/locales/de.json b/src/lib/i18n/locales/de.json index a2f9ffb98..799d78de9 100644 --- a/src/lib/i18n/locales/de.json +++ b/src/lib/i18n/locales/de.json @@ -46,7 +46,6 @@ "moreFromFavorites": "Mehr aus Favoriten", "startListening": "Beginne mit dem Hören", "startListeningDescription": "Spiele Musik oder füge Favoriten hinzu, um Empfehlungen zu aktivieren.", - "yourMixes": "Deine Mixe", "tabEditorPicks": "Redaktionsauswahl", "tabForYou": "Für dich", "radioStations": "Radiosender", @@ -76,7 +75,8 @@ "favoriteAlbums": "Mehr von Favoriten", "recentAlbums": "Kürzlich gespielt", "topArtists": "Ihre Top-Künstler", - "releaseWatch": "Release-Radar" + "releaseWatch": "Release-Radar", + "qobuzMixes": "Qobuz Mixes" }, "discover": { "newReleases": "Neuerscheinungen", @@ -2181,41 +2181,6 @@ "playlistDetected": "Dies ist eine Playlist. Verwende den Playlist-Importer fuer Playlists.", "openPlaylistImporter": "Playlist-Importer oeffnen" }, - "yourMixes": { - "title": "DailyQ", - "subtitle": "Basierend auf deinem letzten Hoerverlauf.", - "cardDesc": "Bereichere deinen Tag mit einer personalisierten Musikauswahl.", - "algorithmInfo": "Basierend auf dem Qobuz™-Vorschlagsalgorithmus, kuratiert aus deinem lokalen Hoerverlauf.", - "errors": { - "fetchFailed": "Dynamische Vorschlaege konnten nicht geladen werden.", - "insufficientHistory": "Nicht genuegend Hoerverlauf fuer Vorschlaege. Hoere etwas Musik und versuche es spaeter erneut.", - "emptyPlaylist": "Keine Titel zum Speichern als Playlist verfügbar.", - "playlistsLoadFailed": "Deine Playlists konnten nicht geladen werden.", - "prefillFailed": "Aktuelle Daten aus QBZ-Protokollen konnten nicht geladen werden.", - "rawProbeFailed": "Die rohe Endpunktantwort konnte nicht abgerufen werden." - }, - "form": { - "limit": "Limit", - "run": "Vorschläge abrufen", - "listenedTrackIdsPlaceholder": "123,456,789", - "listenedTrackIds": "IDs der gehörten Titel (durch Kommas getrennt)", - "prefillFromRecents": "Verwenden Sie das aktuelle QBZ-Protokoll", - "rawResponse": "Rohe Antwort", - "probeRaw": "Rohantwort prüfen", - "tracksToAnalyse": "Zu analysierende Titel (eine Zeile: Titel-ID, Künstler-ID, Genre-ID, Label-ID)", - "tracksToAnalysePlaceholder": "123,45,78,90" - }, - "result": { - "emptyHint": "Versuchte Fallback-Payload-Strategien. \nDieses Konto/Seed-Set gibt derzeit möglicherweise keine Mix-Kandidaten zurück.", - "algorithm": "Algorithmus", - "count": "{count} Titel", - "empty": "Es wurden keine vorgeschlagenen Titel zurückgegeben.", - "unknownArtist": "Unbekannter Künstler" - }, - "actions": { - "saveAsPlaylist": "Als Playlist speichern" - } - }, "weeklyMixes": { "title": "WeeklyQ", "subtitle": "Basierend auf deinem woechentlichen Hoerverlauf.", @@ -2701,5 +2666,40 @@ "follow": "Auszeichnung folgen", "unfollow": "Nicht mehr folgen", "otherAwards": "Weitere Auszeichnungen" + }, + "qobuzMixes": { + "title": "DailyQ", + "subtitle": "Basierend auf deinem letzten Hoerverlauf.", + "cardDesc": "Bereichere deinen Tag mit einer personalisierten Musikauswahl.", + "algorithmInfo": "Basierend auf dem Qobuz™-Vorschlagsalgorithmus, kuratiert aus deinem lokalen Hoerverlauf.", + "errors": { + "fetchFailed": "Dynamische Vorschlaege konnten nicht geladen werden.", + "insufficientHistory": "Nicht genuegend Hoerverlauf fuer Vorschlaege. Hoere etwas Musik und versuche es spaeter erneut.", + "emptyPlaylist": "Keine Titel zum Speichern als Playlist verfügbar.", + "playlistsLoadFailed": "Deine Playlists konnten nicht geladen werden.", + "prefillFailed": "Aktuelle Daten aus QBZ-Protokollen konnten nicht geladen werden.", + "rawProbeFailed": "Die rohe Endpunktantwort konnte nicht abgerufen werden." + }, + "form": { + "limit": "Limit", + "run": "Vorschläge abrufen", + "listenedTrackIdsPlaceholder": "123,456,789", + "listenedTrackIds": "IDs der gehörten Titel (durch Kommas getrennt)", + "prefillFromRecents": "Verwenden Sie das aktuelle QBZ-Protokoll", + "rawResponse": "Rohe Antwort", + "probeRaw": "Rohantwort prüfen", + "tracksToAnalyse": "Zu analysierende Titel (eine Zeile: Titel-ID, Künstler-ID, Genre-ID, Label-ID)", + "tracksToAnalysePlaceholder": "123,45,78,90" + }, + "result": { + "emptyHint": "Versuchte Fallback-Payload-Strategien. \nDieses Konto/Seed-Set gibt derzeit möglicherweise keine Mix-Kandidaten zurück.", + "algorithm": "Algorithmus", + "count": "{count} Titel", + "empty": "Es wurden keine vorgeschlagenen Titel zurückgegeben.", + "unknownArtist": "Unbekannter Künstler" + }, + "actions": { + "saveAsPlaylist": "Als Playlist speichern" + } } } diff --git a/src/lib/i18n/locales/en.json b/src/lib/i18n/locales/en.json index 8c85bdbba..f2365a83c 100644 --- a/src/lib/i18n/locales/en.json +++ b/src/lib/i18n/locales/en.json @@ -1,7 +1,7 @@ { "app": { "name": "QBZ", - "tagline": "Qobuz\u2122 Player" + "tagline": "Qobuz™ Player" }, "nav": { "home": "Discover", @@ -49,7 +49,6 @@ "moreFromFavorites": "More From Favorites", "startListening": "Start Listening", "startListeningDescription": "Play music or add favorites to activate recommendations.", - "yourMixes": "Your mixes", "tabEditorPicks": "Editor's Picks", "tabForYou": "For You", "radioStations": "Radio Stations", @@ -76,7 +75,8 @@ "continueTracks": "Continue Listening", "topArtists": "Your Top Artists", "favoriteAlbums": "More From Favorites", - "releaseWatch": "Release Watch" + "releaseWatch": "Release Watch", + "qobuzMixes": "Qobuz Mixes" }, "discover": { "newReleases": "New Releases", @@ -2286,41 +2286,6 @@ }, "loadFailed": "No purchases available." }, - "yourMixes": { - "title": "DailyQ", - "subtitle": "Based on your recent listening.", - "cardDesc": "Elevate your day with a customized selection of music.", - "actions": { - "saveAsPlaylist": "Save as playlist" - }, - "form": { - "limit": "Limit", - "listenedTrackIds": "Listened track IDs (comma-separated)", - "listenedTrackIdsPlaceholder": "123,456,789", - "tracksToAnalyse": "Tracks to analyse (one row: trackId,artistId,genreId,labelId)", - "tracksToAnalysePlaceholder": "123,45,78,90", - "prefillFromRecents": "Use QBZ recent log", - "run": "Fetch Suggestions", - "probeRaw": "Probe Raw Response", - "rawResponse": "Raw response" - }, - "algorithmInfo": "Powered by the Qobuz™ suggestion algorithm, curated from your local listening history.", - "result": { - "algorithm": "Algorithm", - "count": "{count} tracks", - "empty": "No suggested tracks returned.", - "emptyHint": "Tried fallback payload strategies. This account/seed set may currently return no mix candidates.", - "unknownArtist": "Unknown artist" - }, - "errors": { - "fetchFailed": "Failed to fetch dynamic suggestions.", - "insufficientHistory": "Not enough listening history to generate suggestions. Play some music and check back later.", - "prefillFailed": "Failed to load recent data from QBZ logs.", - "rawProbeFailed": "Failed to fetch raw endpoint response.", - "playlistsLoadFailed": "Failed to load your playlists.", - "emptyPlaylist": "No tracks available to save as playlist." - } - }, "weeklyMixes": { "title": "WeeklyQ", "subtitle": "Based on your weekly listening.", @@ -2707,5 +2672,40 @@ "follow": "Follow award", "unfollow": "Unfollow award", "otherAwards": "Other awards" + }, + "qobuzMixes": { + "title": "DailyQ", + "subtitle": "Based on your recent listening.", + "cardDesc": "Elevate your day with a customized selection of music.", + "actions": { + "saveAsPlaylist": "Save as playlist" + }, + "form": { + "limit": "Limit", + "listenedTrackIds": "Listened track IDs (comma-separated)", + "listenedTrackIdsPlaceholder": "123,456,789", + "tracksToAnalyse": "Tracks to analyse (one row: trackId,artistId,genreId,labelId)", + "tracksToAnalysePlaceholder": "123,45,78,90", + "prefillFromRecents": "Use QBZ recent log", + "run": "Fetch Suggestions", + "probeRaw": "Probe Raw Response", + "rawResponse": "Raw response" + }, + "algorithmInfo": "Powered by the Qobuz™ suggestion algorithm, curated from your local listening history.", + "result": { + "algorithm": "Algorithm", + "count": "{count} tracks", + "empty": "No suggested tracks returned.", + "emptyHint": "Tried fallback payload strategies. This account/seed set may currently return no mix candidates.", + "unknownArtist": "Unknown artist" + }, + "errors": { + "fetchFailed": "Failed to fetch dynamic suggestions.", + "insufficientHistory": "Not enough listening history to generate suggestions. Play some music and check back later.", + "prefillFailed": "Failed to load recent data from QBZ logs.", + "rawProbeFailed": "Failed to fetch raw endpoint response.", + "playlistsLoadFailed": "Failed to load your playlists.", + "emptyPlaylist": "No tracks available to save as playlist." + } } } diff --git a/src/lib/i18n/locales/es.json b/src/lib/i18n/locales/es.json index 4e7573d80..f20910179 100644 --- a/src/lib/i18n/locales/es.json +++ b/src/lib/i18n/locales/es.json @@ -1,7 +1,7 @@ { "app": { "name": "QBZ", - "tagline": "Qobuz\u2122 Player" + "tagline": "Qobuz™ Player" }, "nav": { "home": "Descubrir", @@ -49,7 +49,6 @@ "moreFromFavorites": "Más de Favoritos", "startListening": "Empieza a Escuchar", "startListeningDescription": "Reproduce música o agrega favoritos para activar recomendaciones.", - "yourMixes": "Tus mixes", "tabEditorPicks": "Selección editorial", "tabForYou": "Para ti", "radioStations": "Estaciones de Radio", @@ -76,7 +75,8 @@ "favoriteAlbums": "Más de Favoritos", "recentAlbums": "Jugado recientemente", "topArtists": "Tus mejores artistas", - "releaseWatch": "Radar de Novedades" + "releaseWatch": "Radar de Novedades", + "qobuzMixes": "Mixes de Qobuz" }, "discover": { "newReleases": "Novedades", @@ -2286,41 +2286,6 @@ }, "loadFailed": "No hay compras disponibles." }, - "yourMixes": { - "title": "DailyQ", - "subtitle": "Basado en tus escuchas recientes.", - "cardDesc": "Eleva tu dia con una seleccion personalizada de musica.", - "actions": { - "saveAsPlaylist": "Guardar como playlist" - }, - "form": { - "limit": "Limite", - "listenedTrackIds": "IDs de pistas escuchadas (separadas por coma)", - "listenedTrackIdsPlaceholder": "123,456,789", - "tracksToAnalyse": "Pistas a analizar (una linea: trackId,artistId,genreId,labelId)", - "tracksToAnalysePlaceholder": "123,45,78,90", - "prefillFromRecents": "Usar log reciente de QBZ", - "run": "Obtener sugerencias", - "probeRaw": "Probar respuesta raw", - "rawResponse": "Respuesta raw" - }, - "algorithmInfo": "Impulsado por el algoritmo de sugerencias de Qobuz™, curado a partir de tu historial de reproducciones local.", - "result": { - "algorithm": "Algoritmo", - "count": "{count} pistas", - "empty": "No se devolvieron pistas sugeridas.", - "emptyHint": "Se probaron estrategias de fallback del payload. Esta cuenta/semillas puede no estar devolviendo candidatos ahora.", - "unknownArtist": "Artista desconocido" - }, - "errors": { - "fetchFailed": "No se pudieron obtener sugerencias dinamicas.", - "insufficientHistory": "No hay suficiente historial de escucha para generar sugerencias. Escucha algo de musica y vuelve mas tarde.", - "prefillFailed": "No se pudieron cargar datos recientes del log de QBZ.", - "rawProbeFailed": "No se pudo obtener la respuesta raw del endpoint.", - "playlistsLoadFailed": "No se pudieron cargar tus playlists.", - "emptyPlaylist": "No hay pistas para guardar como playlist." - } - }, "weeklyMixes": { "title": "WeeklyQ", "subtitle": "Basado en tus escuchas semanales.", @@ -2707,5 +2672,40 @@ "follow": "Seguir premio", "unfollow": "Dejar de seguir", "otherAwards": "Más premios" + }, + "qobuzMixes": { + "title": "DailyQ", + "subtitle": "Basado en tus escuchas recientes.", + "cardDesc": "Eleva tu dia con una seleccion personalizada de musica.", + "actions": { + "saveAsPlaylist": "Guardar como playlist" + }, + "form": { + "limit": "Limite", + "listenedTrackIds": "IDs de pistas escuchadas (separadas por coma)", + "listenedTrackIdsPlaceholder": "123,456,789", + "tracksToAnalyse": "Pistas a analizar (una linea: trackId,artistId,genreId,labelId)", + "tracksToAnalysePlaceholder": "123,45,78,90", + "prefillFromRecents": "Usar log reciente de QBZ", + "run": "Obtener sugerencias", + "probeRaw": "Probar respuesta raw", + "rawResponse": "Respuesta raw" + }, + "algorithmInfo": "Impulsado por el algoritmo de sugerencias de Qobuz™, curado a partir de tu historial de reproducciones local.", + "result": { + "algorithm": "Algoritmo", + "count": "{count} pistas", + "empty": "No se devolvieron pistas sugeridas.", + "emptyHint": "Se probaron estrategias de fallback del payload. Esta cuenta/semillas puede no estar devolviendo candidatos ahora.", + "unknownArtist": "Artista desconocido" + }, + "errors": { + "fetchFailed": "No se pudieron obtener sugerencias dinamicas.", + "insufficientHistory": "No hay suficiente historial de escucha para generar sugerencias. Escucha algo de musica y vuelve mas tarde.", + "prefillFailed": "No se pudieron cargar datos recientes del log de QBZ.", + "rawProbeFailed": "No se pudo obtener la respuesta raw del endpoint.", + "playlistsLoadFailed": "No se pudieron cargar tus playlists.", + "emptyPlaylist": "No hay pistas para guardar como playlist." + } } } diff --git a/src/lib/i18n/locales/fr.json b/src/lib/i18n/locales/fr.json index 5f99c4179..0f17c20ed 100644 --- a/src/lib/i18n/locales/fr.json +++ b/src/lib/i18n/locales/fr.json @@ -49,7 +49,6 @@ "moreFromFavorites": "Plus de favoris", "startListening": "Commencer l'écoute", "startListeningDescription": "Lisez de la musique ou ajoutez des favoris pour activer les recommandations.", - "yourMixes": "Vos mix sur mesure", "tabEditorPicks": "Sélection éditoriale", "tabForYou": "Pour vous", "radioStations": "Radios à découvrir", @@ -76,7 +75,8 @@ "favoriteAlbums": "Plus de favoris", "recentAlbums": "Récemment écouté", "topArtists": "Vos artistes favoris", - "releaseWatch": "Radar des sorties" + "releaseWatch": "Radar des sorties", + "qobuzMixes": "Qobuz Mixes" }, "discover": { "newReleases": "Nouveautés", @@ -2186,41 +2186,6 @@ "playlistDetected": "C'est une playlist. Utilisez l'importateur de playlists.", "openPlaylistImporter": "Ouvrir l'importateur de playlists" }, - "yourMixes": { - "title": "DailyQ", - "subtitle": "Basé sur vos écoutes récentes.", - "cardDesc": "Sublimez votre journée avec une sélection musicale sur mesure.", - "actions": { - "saveAsPlaylist": "Enregistrer en tant que playlist" - }, - "algorithmInfo": "Propulsé par l'algorithme de suggestion Qobuz™, composé à partir de votre historique d'écoute local.", - "result": { - "algorithm": "Algorithme", - "count": "{count} titres", - "empty": "Aucun titre suggéré", - "unknownArtist": "Artiste inconnu", - "emptyHint": "Les stratégies de payload de secours ont échoué. Ce compte/seed ne peut actuellement renvoyer aucun candidat mixte." - }, - "errors": { - "fetchFailed": "Impossible de charger les suggestions dynamiques.", - "insufficientHistory": "Pas assez d'historique d'écoute pour génerer des suggestions. Ecoutez de la musique et réessayez plus tard.", - "emptyPlaylist": "Aucune piste disponible pour enregistrer en tant que playlist.", - "playlistsLoadFailed": "Échec du chargement de vos playlists.", - "prefillFailed": "Échec du chargement des données récentes à partir des journaux QBZ.", - "rawProbeFailed": "Échec de la récupération de la réponse brute du point de terminaison." - }, - "form": { - "limit": "Limite", - "listenedTrackIds": "ID des pistes écoutées (séparés par des virgules)", - "listenedTrackIdsPlaceholder": "123,456,789", - "prefillFromRecents": "Utiliser le journal récent QBZ", - "probeRaw": "Sonder la réponse brute", - "run": "Obtenir des suggestions", - "rawResponse": "Réponse brute", - "tracksToAnalyse": "Pistes à analyser (une ligne : trackId,artistId,genreId,labelId)", - "tracksToAnalysePlaceholder": "123,45,78,90" - } - }, "weeklyMixes": { "title": "WeeklyQ", "subtitle": "Basé sur vos écoutes hebdomadaires.", @@ -2701,5 +2666,40 @@ "follow": "Suivre la récompense", "unfollow": "Ne plus suivre", "otherAwards": "Autres récompenses" + }, + "qobuzMixes": { + "title": "DailyQ", + "subtitle": "Basé sur vos écoutes récentes.", + "cardDesc": "Sublimez votre journée avec une sélection musicale sur mesure.", + "actions": { + "saveAsPlaylist": "Enregistrer en tant que playlist" + }, + "algorithmInfo": "Propulsé par l'algorithme de suggestion Qobuz™, composé à partir de votre historique d'écoute local.", + "result": { + "algorithm": "Algorithme", + "count": "{count} titres", + "empty": "Aucun titre suggéré", + "unknownArtist": "Artiste inconnu", + "emptyHint": "Les stratégies de payload de secours ont échoué. Ce compte/seed ne peut actuellement renvoyer aucun candidat mixte." + }, + "errors": { + "fetchFailed": "Impossible de charger les suggestions dynamiques.", + "insufficientHistory": "Pas assez d'historique d'écoute pour génerer des suggestions. Ecoutez de la musique et réessayez plus tard.", + "emptyPlaylist": "Aucune piste disponible pour enregistrer en tant que playlist.", + "playlistsLoadFailed": "Échec du chargement de vos playlists.", + "prefillFailed": "Échec du chargement des données récentes à partir des journaux QBZ.", + "rawProbeFailed": "Échec de la récupération de la réponse brute du point de terminaison." + }, + "form": { + "limit": "Limite", + "listenedTrackIds": "ID des pistes écoutées (séparés par des virgules)", + "listenedTrackIdsPlaceholder": "123,456,789", + "prefillFromRecents": "Utiliser le journal récent QBZ", + "probeRaw": "Sonder la réponse brute", + "run": "Obtenir des suggestions", + "rawResponse": "Réponse brute", + "tracksToAnalyse": "Pistes à analyser (une ligne : trackId,artistId,genreId,labelId)", + "tracksToAnalysePlaceholder": "123,45,78,90" + } } } diff --git a/src/lib/i18n/locales/pt.json b/src/lib/i18n/locales/pt.json index 0eae27329..d475b0d88 100644 --- a/src/lib/i18n/locales/pt.json +++ b/src/lib/i18n/locales/pt.json @@ -49,7 +49,6 @@ "moreFromFavorites": "Mais dos Favoritos", "startListening": "Comece a Ouvir", "startListeningDescription": "Reproduza músicas ou adicione favoritos para ativar as recomendações.", - "yourMixes": "Suas mixtapes", "tabEditorPicks": "Escolhas do Editor", "tabForYou": "Para Você", "radioStations": "Estações de Rádio", @@ -76,7 +75,8 @@ "favoriteAlbums": "Mais dos favoritos", "recentAlbums": "Jogado recentemente", "topArtists": "Seus principais artistas", - "releaseWatch": "Radar de Novidades" + "releaseWatch": "Radar de Novidades", + "qobuzMixes": "Mixes do Qobuz" }, "discover": { "newReleases": "Novos Lançamentos", @@ -2275,41 +2275,6 @@ }, "loadFailed": "Nenhuma compra disponível." }, - "yourMixes": { - "title": "DailyQ", - "subtitle": "Baseado nas suas audições recentes.", - "cardDesc": "Eleve seu dia com uma seleção personalizada de músicas.", - "actions": { - "saveAsPlaylist": "Salvar como playlist" - }, - "form": { - "limit": "Limite", - "listenedTrackIds": "IDs das faixas ouvidas (separados por vírgula)", - "listenedTrackIdsPlaceholder": "123,456,789", - "tracksToAnalyse": "Faixas para analisar (uma linha: trackId,artistId,genreId,labelId)", - "tracksToAnalysePlaceholder": "123,45,78,90", - "prefillFromRecents": "Usar histórico recente do QBZ", - "run": "Buscar Sugestões", - "probeRaw": "Consultar Resposta Bruta", - "rawResponse": "Resposta bruta" - }, - "algorithmInfo": "Alimentado pelo algoritmo de sugestões do Qobuz™, curado a partir do seu histórico de audição local.", - "result": { - "algorithm": "Algoritmo", - "count": "{count} faixas", - "empty": "Nenhuma faixa sugerida retornada.", - "emptyHint": "Estratégias de payload alternativas foram tentadas. Esta conta/conjunto de sementes pode não retornar candidatos para mix no momento.", - "unknownArtist": "Artista desconhecido" - }, - "errors": { - "fetchFailed": "Falha ao buscar sugestões dinâmicas.", - "insufficientHistory": "Histórico de audição insuficiente para gerar sugestões. Ouça algumas músicas e volte mais tarde.", - "prefillFailed": "Falha ao carregar dados recentes dos logs do QBZ.", - "rawProbeFailed": "Falha ao buscar resposta bruta do endpoint.", - "playlistsLoadFailed": "Falha ao carregar suas playlists.", - "emptyPlaylist": "Nenhuma faixa disponível para salvar como playlist." - } - }, "weeklyMixes": { "title": "WeeklyQ", "subtitle": "Baseado nas suas audições semanais.", @@ -2701,5 +2666,40 @@ "follow": "Seguir prêmio", "unfollow": "Deixar de seguir", "otherAwards": "Mais prêmios" + }, + "qobuzMixes": { + "title": "DailyQ", + "subtitle": "Baseado nas suas audições recentes.", + "cardDesc": "Eleve seu dia com uma seleção personalizada de músicas.", + "actions": { + "saveAsPlaylist": "Salvar como playlist" + }, + "form": { + "limit": "Limite", + "listenedTrackIds": "IDs das faixas ouvidas (separados por vírgula)", + "listenedTrackIdsPlaceholder": "123,456,789", + "tracksToAnalyse": "Faixas para analisar (uma linha: trackId,artistId,genreId,labelId)", + "tracksToAnalysePlaceholder": "123,45,78,90", + "prefillFromRecents": "Usar histórico recente do QBZ", + "run": "Buscar Sugestões", + "probeRaw": "Consultar Resposta Bruta", + "rawResponse": "Resposta bruta" + }, + "algorithmInfo": "Alimentado pelo algoritmo de sugestões do Qobuz™, curado a partir do seu histórico de audição local.", + "result": { + "algorithm": "Algoritmo", + "count": "{count} faixas", + "empty": "Nenhuma faixa sugerida retornada.", + "emptyHint": "Estratégias de payload alternativas foram tentadas. Esta conta/conjunto de sementes pode não retornar candidatos para mix no momento.", + "unknownArtist": "Artista desconhecido" + }, + "errors": { + "fetchFailed": "Falha ao buscar sugestões dinâmicas.", + "insufficientHistory": "Histórico de audição insuficiente para gerar sugestões. Ouça algumas músicas e volte mais tarde.", + "prefillFailed": "Falha ao carregar dados recentes dos logs do QBZ.", + "rawProbeFailed": "Falha ao buscar resposta bruta do endpoint.", + "playlistsLoadFailed": "Falha ao carregar suas playlists.", + "emptyPlaylist": "Nenhuma faixa disponível para salvar como playlist." + } } } diff --git a/src/lib/stores/homeSettingsStore.ts b/src/lib/stores/homeSettingsStore.ts index 86ab1c26c..648fe7f7b 100644 --- a/src/lib/stores/homeSettingsStore.ts +++ b/src/lib/stores/homeSettingsStore.ts @@ -18,7 +18,7 @@ export type HomeSectionId = | 'continueTracks' | 'topArtists' | 'favoriteAlbums' - | 'yourMixes' + | 'qobuzMixes' | 'releaseWatch'; export interface HomeSection { @@ -56,7 +56,7 @@ const DEFAULT_SECTIONS: HomeSection[] = [ { id: 'qobuzissimes', label: 'Qobuzissimes', visible: false, source: 'qobuz' }, { id: 'editorPicks', label: "Editor's Picks", visible: false, source: 'qobuz' }, { id: 'qobuzPlaylists', label: 'Qobuz Playlists', visible: true, source: 'qobuz' }, - { id: 'yourMixes', label: 'Your Mixes', visible: true, source: 'qobuz' }, + { id: 'qobuzMixes', label: 'Your Mixes', visible: true, source: 'qobuz' }, { id: 'essentialDiscography', label: 'Essential Discography', visible: true, source: 'qobuz' }, { id: 'recentAlbums', label: 'Recently Played', visible: true, source: 'ml' }, { id: 'continueTracks', label: 'Continue Listening', visible: true, source: 'ml' },