[web] Rename "Browse" tabs in the Music page to "History" #1685

At the same time, makes the naming of the underlying pages more coherent.
This commit is contained in:
Alain Nussbaumer 2023-11-21 15:25:27 +01:00
parent d68ec8c075
commit 356fcf8aa7
13 changed files with 122 additions and 146 deletions

View File

@ -7,13 +7,13 @@
<ul> <ul>
<router-link <router-link
v-slot="{ navigate, isActive }" v-slot="{ navigate, isActive }"
:to="{ name: 'music-browse' }" :to="{ name: 'music' }"
custom custom
> >
<li :class="{ 'is-active': isActive }"> <li :class="{ 'is-active': isActive }">
<a @click="navigate" @keypress.enter="navigate"> <a @click="navigate" @keypress.enter="navigate">
<mdicon class="icon is-small" name="web" size="16" /> <mdicon class="icon is-small" name="history" size="16" />
<span v-text="$t('page.browse.tabs.browse')" /> <span v-text="$t('page.music.tabs.history')" />
</a> </a>
</li> </li>
</router-link> </router-link>
@ -29,7 +29,7 @@
name="account-music" name="account-music"
size="16" size="16"
/> />
<span v-text="$t('page.browse.tabs.artists')" /> <span v-text="$t('page.music.tabs.artists')" />
</a> </a>
</li> </li>
</router-link> </router-link>
@ -41,7 +41,7 @@
<li :class="{ 'is-active': isActive }"> <li :class="{ 'is-active': isActive }">
<a @click="navigate" @keypress.enter="navigate"> <a @click="navigate" @keypress.enter="navigate">
<mdicon class="icon is-small" name="album" size="16" /> <mdicon class="icon is-small" name="album" size="16" />
<span v-text="$t('page.browse.tabs.albums')" /> <span v-text="$t('page.music.tabs.albums')" />
</a> </a>
</li> </li>
</router-link> </router-link>
@ -53,7 +53,7 @@
<li :class="{ 'is-active': isActive }"> <li :class="{ 'is-active': isActive }">
<a @click="navigate" @keypress.enter="navigate"> <a @click="navigate" @keypress.enter="navigate">
<mdicon class="icon is-small" name="speaker" size="16" /> <mdicon class="icon is-small" name="speaker" size="16" />
<span v-text="$t('page.browse.tabs.genres')" /> <span v-text="$t('page.music.tabs.genres')" />
</a> </a>
</li> </li>
</router-link> </router-link>
@ -69,7 +69,7 @@
name="book-open-page-variant" name="book-open-page-variant"
size="16" size="16"
/> />
<span v-text="$t('page.browse.tabs.composers')" /> <span v-text="$t('page.music.tabs.composers')" />
</a> </a>
</li> </li>
</router-link> </router-link>
@ -82,7 +82,7 @@
<li :class="{ 'is-active': isActive }"> <li :class="{ 'is-active': isActive }">
<a @click="navigate" @keypress.enter="navigate"> <a @click="navigate" @keypress.enter="navigate">
<mdicon class="icon is-small" name="spotify" size="16" /> <mdicon class="icon is-small" name="spotify" size="16" />
<span v-text="$t('page.browse.tabs.spotify')" /> <span v-text="$t('page.music.tabs.spotify')" />
</a> </a>
</li> </li>
</router-link> </router-link>

View File

@ -25,6 +25,7 @@ import {
mdiFire, mdiFire,
mdiFolder, mdiFolder,
mdiFolderOpen, mdiFolderOpen,
mdiHistory,
mdiMagnify, mdiMagnify,
mdiMenu, mdiMenu,
mdiMicrophone, mdiMicrophone,
@ -88,6 +89,7 @@ export const icons = {
mdiFire, mdiFire,
mdiFolder, mdiFolder,
mdiFolderOpen, mdiFolderOpen,
mdiHistory,
mdiMagnify, mdiMagnify,
mdiMenu, mdiMenu,
mdiMicrophone, mdiMicrophone,

View File

@ -317,27 +317,6 @@
"genres": "Genres" "genres": "Genres"
} }
}, },
"browse": {
"albums": "Alben",
"show-more": "Zeige mehr",
"tracks": "Tracks",
"recently-added": {
"albums": "Alben",
"title": "Kürzlich hinzugefügt"
},
"recently-played": {
"title": "Kürzlich gespielt",
"tracks": "Tracks"
},
"tabs": {
"albums": "Alben",
"artists": "Künstler",
"browse": "Auswählen",
"composers": "Komponisten",
"genres": "Genres",
"spotify": "Spotify"
}
},
"composer": { "composer": {
"album-count": "{count} Album|{count} Album|{count} Alben", "album-count": "{count} Album|{count} Album|{count} Alben",
"shuffle": "Zufallswiedergabe", "shuffle": "Zufallswiedergabe",
@ -370,6 +349,23 @@
"count": "{count} Genre|{count} Genre|{count} Genres", "count": "{count} Genre|{count} Genre|{count} Genres",
"title": "Genres" "title": "Genres"
}, },
"music": {
"show-more": "Zeige mehr",
"recently-added": {
"title": "Kürzlich hinzugefügt"
},
"recently-played": {
"title": "Kürzlich gespielt"
},
"tabs": {
"albums": "Alben",
"artists": "Künstler",
"composers": "Komponisten",
"genres": "Genres",
"history": "Verlauf",
"spotify": "Spotify"
}
},
"now-playing": { "now-playing": {
"info": "Tracks durch Auswählen aus der Bibliothek anfügen", "info": "Tracks durch Auswählen aus der Bibliothek anfügen",
"live": "Live", "live": "Live",
@ -532,7 +528,7 @@
"album-count": "{count} Album|{count} Album|{count} Alben", "album-count": "{count} Album|{count} Album|{count} Alben",
"shuffle": "Zufallswiedergabe" "shuffle": "Zufallswiedergabe"
}, },
"browse": { "music": {
"featured-playlists": "Ausgezeichnete Playlisten", "featured-playlists": "Ausgezeichnete Playlisten",
"new-releases": "Neuvorstellung", "new-releases": "Neuvorstellung",
"show-more": "Zeige mehr" "show-more": "Zeige mehr"

View File

@ -317,27 +317,6 @@
"genres": "Genres" "genres": "Genres"
} }
}, },
"browse": {
"albums": "albums",
"show-more": "Show more",
"tracks": "tracks",
"recently-added": {
"albums": "albums",
"title": "Recently added"
},
"recently-played": {
"title": "Recently played",
"tracks": "tracks"
},
"tabs": {
"albums": "Albums",
"artists": "Artists",
"browse": "Browse",
"composers": "Composers",
"genres": "Genres",
"spotify": "Spotify"
}
},
"composer": { "composer": {
"album-count": "{count} album|{count} album|{count} albums", "album-count": "{count} album|{count} album|{count} albums",
"shuffle": "Shuffle", "shuffle": "Shuffle",
@ -370,6 +349,23 @@
"count": "{count} genre|{count} genre|{count} genres", "count": "{count} genre|{count} genre|{count} genres",
"title": "Genres" "title": "Genres"
}, },
"music": {
"show-more": "Show more",
"recently-added": {
"title": "Recently added"
},
"recently-played": {
"title": "Recently played"
},
"tabs": {
"albums": "Albums",
"artists": "Artists",
"composers": "Composers",
"genres": "Genres",
"history": "History",
"spotify": "Spotify"
}
},
"now-playing": { "now-playing": {
"info": "Add some tracks by browsing your library", "info": "Add some tracks by browsing your library",
"live": "Live", "live": "Live",
@ -532,7 +528,7 @@
"album-count": "{count} album|{count} album|{count} albums", "album-count": "{count} album|{count} album|{count} albums",
"shuffle": "Shuffle" "shuffle": "Shuffle"
}, },
"browse": { "music": {
"featured-playlists": "Featured Playlists", "featured-playlists": "Featured Playlists",
"new-releases": "New Releases", "new-releases": "New Releases",
"show-more": "Show More" "show-more": "Show More"

View File

@ -317,27 +317,6 @@
"genres": "Genres" "genres": "Genres"
} }
}, },
"browse": {
"albums": "albums",
"show-more": "Afficher plus",
"tracks": "pistes",
"recently-added": {
"albums": "albums",
"title": "Ajouts récents"
},
"recently-played": {
"title": "Lectures récentes",
"tracks": "pistes"
},
"tabs": {
"albums": "Albums",
"artists": "Artistes",
"browse": "Parcourir",
"composers": "Compositeurs",
"genres": "Genres",
"spotify": "Spotify"
}
},
"composer": { "composer": {
"album-count": "{count} album|{count} album|{count} albums", "album-count": "{count} album|{count} album|{count} albums",
"shuffle": "Lecture aléatoire", "shuffle": "Lecture aléatoire",
@ -370,6 +349,23 @@
"count": "{count} genre|{count} genre|{count} genres", "count": "{count} genre|{count} genre|{count} genres",
"title": "Genres" "title": "Genres"
}, },
"music": {
"show-more": "Afficher plus",
"recently-added": {
"title": "Ajouts récents"
},
"recently-played": {
"title": "Lectures récentes"
},
"tabs": {
"albums": "Albums",
"artists": "Artistes",
"composers": "Compositeurs",
"genres": "Genres",
"history": "Historique",
"spotify": "Spotify"
}
},
"now-playing": { "now-playing": {
"info": "Ajoutez des pistes en parcourant votre bibliothèque", "info": "Ajoutez des pistes en parcourant votre bibliothèque",
"live": "En direct", "live": "En direct",
@ -532,7 +528,7 @@
"album-count": "{count} album|{count} album|{count} albums", "album-count": "{count} album|{count} album|{count} albums",
"shuffle": "Lecture aléatoire" "shuffle": "Lecture aléatoire"
}, },
"browse": { "music": {
"featured-playlists": "Listes de lecture en vedette", "featured-playlists": "Listes de lecture en vedette",
"new-releases": "Nouvelle sorties", "new-releases": "Nouvelle sorties",
"show-more": "Afficher plus" "show-more": "Afficher plus"

View File

@ -317,27 +317,6 @@
"genres": "流派" "genres": "流派"
} }
}, },
"browse": {
"albums": "专辑",
"show-more": "显示更多",
"tracks": "曲目",
"recently-added": {
"albums": "专辑",
"title": "最近添加"
},
"recently-played": {
"title": "最近播放",
"tracks": "曲目"
},
"tabs": {
"albums": "专辑",
"artists": "艺人",
"browse": "浏览",
"composers": "作曲家",
"genres": "流派",
"spotify": "Spotify"
}
},
"composer": { "composer": {
"album-count": "{count} 张专辑|{count} 张专辑", "album-count": "{count} 张专辑|{count} 张专辑",
"shuffle": "随机播放", "shuffle": "随机播放",
@ -370,6 +349,23 @@
"count": "{count} 个流派|{count} 个流派", "count": "{count} 个流派|{count} 个流派",
"title": "流派" "title": "流派"
}, },
"music": {
"show-more": "显示更多",
"recently-added": {
"title": "最近添加"
},
"recently-played": {
"title": "最近播放"
},
"tabs": {
"albums": "专辑",
"artists": "艺人",
"composers": "作曲家",
"genres": "流派",
"history": "历史",
"spotify": "Spotify"
}
},
"now-playing": { "now-playing": {
"info": "浏览资料库添加曲目", "info": "浏览资料库添加曲目",
"live": "直播", "live": "直播",
@ -532,7 +528,7 @@
"album-count": "{count} 张专辑|{count} 张专辑", "album-count": "{count} 张专辑|{count} 张专辑",
"shuffle": "随机播放" "shuffle": "随机播放"
}, },
"browse": { "music": {
"featured-playlists": "特色列表", "featured-playlists": "特色列表",
"new-releases": "最新发行", "new-releases": "最新发行",
"show-more": "显示更多" "show-more": "显示更多"

View File

@ -4,8 +4,7 @@
<!-- Recently added --> <!-- Recently added -->
<content-with-heading> <content-with-heading>
<template #heading-left> <template #heading-left>
<p class="title is-4" v-text="$t('page.browse.recently-added.title')" /> <p class="title is-4" v-text="$t('page.music.recently-added.title')" />
<p class="heading" v-text="$t('page.browse.albums')" />
</template> </template>
<template #content> <template #content>
<list-albums :albums="recently_added" /> <list-albums :albums="recently_added" />
@ -15,8 +14,8 @@
<p class="level-item"> <p class="level-item">
<router-link <router-link
class="button is-light is-small is-rounded" class="button is-light is-small is-rounded"
:to="{ name: 'music-browse-recently-added' }" :to="{ name: 'music-recently-added' }"
>{{ $t('page.browse.show-more') }}</router-link >{{ $t('page.music.show-more') }}</router-link
> >
</p> </p>
</nav> </nav>
@ -25,11 +24,7 @@
<!-- Recently played --> <!-- Recently played -->
<content-with-heading> <content-with-heading>
<template #heading-left> <template #heading-left>
<p <p class="title is-4" v-text="$t('page.music.recently-played.title')" />
class="title is-4"
v-text="$t('page.browse.recently-played.title')"
/>
<p class="heading" v-text="$t('page.browse.tracks')" />
</template> </template>
<template #content> <template #content>
<list-tracks :tracks="recently_played" /> <list-tracks :tracks="recently_played" />
@ -39,8 +34,8 @@
<p class="level-item"> <p class="level-item">
<router-link <router-link
class="button is-light is-small is-rounded" class="button is-light is-small is-rounded"
:to="{ name: 'music-browse-recently-played' }" :to="{ name: 'music-recently-played' }"
>{{ $t('page.browse.show-more') }}</router-link >{{ $t('page.music.show-more') }}</router-link
> >
</p> </p>
</nav> </nav>
@ -82,7 +77,7 @@ const dataObject = {
} }
export default { export default {
name: 'PageBrowse', name: 'PageMusic',
components: { ContentWithHeading, ListAlbums, ListTracks, TabsMusic }, components: { ContentWithHeading, ListAlbums, ListTracks, TabsMusic },
beforeRouteEnter(to, from, next) { beforeRouteEnter(to, from, next) {

View File

@ -3,8 +3,7 @@
<tabs-music /> <tabs-music />
<content-with-heading> <content-with-heading>
<template #heading-left> <template #heading-left>
<p class="title is-4" v-text="$t('page.browse.recently-added.title')" /> <p class="title is-4" v-text="$t('page.music.recently-added.title')" />
<p class="heading" v-text="$t('page.browse.recently-added.albums')" />
</template> </template>
<template #content> <template #content>
<list-albums :albums="recently_added" /> <list-albums :albums="recently_added" />
@ -43,7 +42,7 @@ const dataObject = {
} }
export default { export default {
name: 'PageBrowseType', name: 'PageMusicRecentlyAdded',
components: { ContentWithHeading, TabsMusic, ListAlbums }, components: { ContentWithHeading, TabsMusic, ListAlbums },
beforeRouteEnter(to, from, next) { beforeRouteEnter(to, from, next) {

View File

@ -3,11 +3,7 @@
<tabs-music /> <tabs-music />
<content-with-heading> <content-with-heading>
<template #heading-left> <template #heading-left>
<p <p class="title is-4" v-text="$t('page.music.recently-played.title')" />
class="title is-4"
v-text="$t('page.browse.recently-played.title')"
/>
<p class="heading" v-text="$t('page.browse.recently-played.tracks')" />
</template> </template>
<template #content> <template #content>
<list-tracks :tracks="recently_played" /> <list-tracks :tracks="recently_played" />
@ -39,7 +35,7 @@ const dataObject = {
} }
export default { export default {
name: 'PageBrowseType', name: 'PageMusicRecentlyPlayed',
components: { ContentWithHeading, TabsMusic, ListTracks }, components: { ContentWithHeading, TabsMusic, ListTracks },
beforeRouteEnter(to, from, next) { beforeRouteEnter(to, from, next) {

View File

@ -4,7 +4,7 @@
<!-- New Releases --> <!-- New Releases -->
<content-with-heading> <content-with-heading>
<template #heading-left> <template #heading-left>
<p class="title is-4" v-text="$t('page.spotify.browse.new-releases')" /> <p class="title is-4" v-text="$t('page.spotify.music.new-releases')" />
</template> </template>
<template #content> <template #content>
<list-item-album-spotify <list-item-album-spotify
@ -45,7 +45,7 @@
<router-link <router-link
:to="{ name: 'music-spotify-new-releases' }" :to="{ name: 'music-spotify-new-releases' }"
class="button is-light is-small is-rounded" class="button is-light is-small is-rounded"
>{{ $t('page.spotify.browse.show-more') }}</router-link >{{ $t('page.spotify.music.show-more') }}</router-link
> >
</p> </p>
</nav> </nav>
@ -56,7 +56,7 @@
<template #heading-left> <template #heading-left>
<p <p
class="title is-4" class="title is-4"
v-text="$t('page.spotify.browse.featured-playlists')" v-text="$t('page.spotify.music.featured-playlists')"
/> />
</template> </template>
<template #content> <template #content>
@ -87,7 +87,7 @@
<router-link <router-link
:to="{ name: 'music-spotify-featured-playlists' }" :to="{ name: 'music-spotify-featured-playlists' }"
class="button is-light is-small is-rounded" class="button is-light is-small is-rounded"
>{{ $t('page.spotify.browse.show-more') }}</router-link >{{ $t('page.spotify.music.show-more') }}</router-link
> >
</p> </p>
</nav> </nav>
@ -143,7 +143,7 @@ const dataObject = {
} }
export default { export default {
name: 'SpotifyPageBrowse', name: 'PageMusicSpotify',
components: { components: {
ContentWithHeading, ContentWithHeading,
CoverArtwork, CoverArtwork,

View File

@ -5,7 +5,7 @@
<template #heading-left> <template #heading-left>
<p <p
class="title is-4" class="title is-4"
v-text="$t('page.spotify.browse.featured-playlists')" v-text="$t('page.spotify.music.featured-playlists')"
/> />
</template> </template>
<template #content> <template #content>
@ -65,7 +65,7 @@ const dataObject = {
} }
export default { export default {
name: 'SpotifyPageBrowseFeaturedPlaylists', name: 'PageMusicSpotifyFeaturedPlaylists',
components: { components: {
ContentWithHeading, ContentWithHeading,
ListItemPlaylistSpotify, ListItemPlaylistSpotify,

View File

@ -3,7 +3,7 @@
<tabs-music /> <tabs-music />
<content-with-heading> <content-with-heading>
<template #heading-left> <template #heading-left>
<p class="title is-4" v-text="$t('page.spotify.browse.new-releases')" /> <p class="title is-4" v-text="$t('page.spotify.music.new-releases')" />
</template> </template>
<template #content> <template #content>
<list-item-album-spotify <list-item-album-spotify
@ -74,7 +74,7 @@ const dataObject = {
} }
export default { export default {
name: 'PageBrowseSpotifyNewReleases', name: 'PageMusicSpotifyNewReleases',
components: { components: {
ContentWithHeading, ContentWithHeading,
CoverArtwork, CoverArtwork,

View File

@ -13,12 +13,6 @@ import PageAudiobooksAlbums from '@/pages/PageAudiobooksAlbums.vue'
import PageAudiobooksArtist from '@/pages/PageAudiobooksArtist.vue' import PageAudiobooksArtist from '@/pages/PageAudiobooksArtist.vue'
import PageAudiobooksArtists from '@/pages/PageAudiobooksArtists.vue' import PageAudiobooksArtists from '@/pages/PageAudiobooksArtists.vue'
import PageAudiobooksGenres from '@/pages/PageAudiobooksGenres.vue' import PageAudiobooksGenres from '@/pages/PageAudiobooksGenres.vue'
import PageBrowse from '@/pages/PageBrowse.vue'
import PageBrowseRecentlyAdded from '@/pages/PageBrowseRecentlyAdded.vue'
import PageBrowseRecentlyPlayed from '@/pages/PageBrowseRecentlyPlayed.vue'
import PageBrowseSpotify from '@/pages/PageBrowseSpotify.vue'
import PageBrowseSpotifyNewReleases from '@/pages/PageBrowseSpotifyNewReleases.vue'
import PageBrowseSpotifyFeaturedPlaylists from '@/pages/PageBrowseSpotifyFeaturedPlaylists.vue'
import PageComposerAlbums from '@/pages/PageComposerAlbums.vue' import PageComposerAlbums from '@/pages/PageComposerAlbums.vue'
import PageComposerTracks from '@/pages/PageComposerTracks.vue' import PageComposerTracks from '@/pages/PageComposerTracks.vue'
import PageComposers from '@/pages/PageComposers.vue' import PageComposers from '@/pages/PageComposers.vue'
@ -26,12 +20,18 @@ import PageFiles from '@/pages/PageFiles.vue'
import PageGenreAlbums from '@/pages/PageGenreAlbums.vue' import PageGenreAlbums from '@/pages/PageGenreAlbums.vue'
import PageGenreTracks from '@/pages/PageGenreTracks.vue' import PageGenreTracks from '@/pages/PageGenreTracks.vue'
import PageGenres from '@/pages/PageGenres.vue' import PageGenres from '@/pages/PageGenres.vue'
import PageMusic from '@/pages/PageMusic.vue'
import PageMusicSpotify from '@/pages/PageMusicSpotify.vue'
import PageMusicSpotifyNewReleases from '@/pages/PageMusicSpotifyNewReleases.vue'
import PageMusicSpotifyFeaturedPlaylists from '@/pages/PageMusicSpotifyFeaturedPlaylists.vue'
import PageMusicRecentlyAdded from '@/pages/PageMusicRecentlyAdded.vue'
import PageMusicRecentlyPlayed from '@/pages/PageMusicRecentlyPlayed.vue'
import PageNowPlaying from '@/pages/PageNowPlaying.vue'
import PagePlaylistFolder from '@/pages/PagePlaylistFolder.vue' import PagePlaylistFolder from '@/pages/PagePlaylistFolder.vue'
import PagePlaylistTracks from '@/pages/PagePlaylistTracks.vue' import PagePlaylistTracks from '@/pages/PagePlaylistTracks.vue'
import PagePlaylistTracksSpotify from '@/pages/PagePlaylistTracksSpotify.vue' import PagePlaylistTracksSpotify from '@/pages/PagePlaylistTracksSpotify.vue'
import PagePodcast from '@/pages/PagePodcast.vue' import PagePodcast from '@/pages/PagePodcast.vue'
import PagePodcasts from '@/pages/PagePodcasts.vue' import PagePodcasts from '@/pages/PagePodcasts.vue'
import PageNowPlaying from '@/pages/PageNowPlaying.vue'
import PageQueue from '@/pages/PageQueue.vue' import PageQueue from '@/pages/PageQueue.vue'
import PageSettingsWebinterface from '@/pages/PageSettingsWebinterface.vue' import PageSettingsWebinterface from '@/pages/PageSettingsWebinterface.vue'
import PageSettingsArtwork from '@/pages/PageSettingsArtwork.vue' import PageSettingsArtwork from '@/pages/PageSettingsArtwork.vue'
@ -133,40 +133,40 @@ export const router = createRouter({
{ {
name: 'music', name: 'music',
path: '/music', path: '/music',
redirect: { name: 'music-browse' } redirect: { name: 'music-history' }
}, },
{ {
component: PageBrowse, component: PageMusic,
meta: { has_tabs: true, show_progress: true }, meta: { has_tabs: true, show_progress: true },
name: 'music-browse', name: 'music-history',
path: '/music/browse' path: '/music/history'
}, },
{ {
component: PageBrowseRecentlyAdded, component: PageMusicRecentlyAdded,
meta: { has_tabs: true, show_progress: true }, meta: { has_tabs: true, show_progress: true },
name: 'music-browse-recently-added', name: 'music-recently-added',
path: '/music/browse/recently-added' path: '/music/recently-added'
}, },
{ {
component: PageBrowseRecentlyPlayed, component: PageMusicRecentlyPlayed,
meta: { has_tabs: true, show_progress: true }, meta: { has_tabs: true, show_progress: true },
name: 'music-browse-recently-played', name: 'music-recently-played',
path: '/music/browse/recently-played' path: '/music/recently-played'
}, },
{ {
component: PageBrowseSpotify, component: PageMusicSpotify,
meta: { has_tabs: true, show_progress: true }, meta: { has_tabs: true, show_progress: true },
name: 'music-spotify', name: 'music-spotify',
path: '/music/spotify' path: '/music/spotify'
}, },
{ {
component: PageBrowseSpotifyFeaturedPlaylists, component: PageMusicSpotifyFeaturedPlaylists,
meta: { has_tabs: true, show_progress: true }, meta: { has_tabs: true, show_progress: true },
name: 'music-spotify-featured-playlists', name: 'music-spotify-featured-playlists',
path: '/music/spotify/featured-playlists' path: '/music/spotify/featured-playlists'
}, },
{ {
component: PageBrowseSpotifyNewReleases, component: PageMusicSpotifyNewReleases,
meta: { has_tabs: true, show_progress: true }, meta: { has_tabs: true, show_progress: true },
name: 'music-spotify-new-releases', name: 'music-spotify-new-releases',
path: '/music/spotify/new-releases' path: '/music/spotify/new-releases'