feat(artist): group albums by release type on artist page (#471)

* feat(artist): group albums by release type on artist page

Uses the releaseType field to group albums/releases into sections like Albums, Compilation, Live, etc.
If there's no release type it falls back to normal view

* feat(artist): i18n release-type group labels

* fix(artist): deterministic release-type group order

* refactor(artist): replace inline styles with CSS classes

* i18n(artist): translate release-type labels in remaining 7 locales

Sayykii's `releaseTypes` namespace was added to en.ts only. Fills in
de, fr, nl, zh, nb, ru, es with the same 8 keys (album, ep, single,
compilation, live, soundtrack, remix, other) so users on non-English
UIs see translated section headers on the artist page instead of the
raw title-cased fallback.

* docs: changelog + contributors for PR #471

Adds the v1.46.0 "Added" entry and bumps Sayykii's contributors line
for the artist-page release-type grouping.

---------

Co-authored-by: Psychotoxical <171614930+Psychotoxical@users.noreply.github.com>
This commit is contained in:
Sayykii
2026-05-06 15:47:05 +03:00
committed by GitHub
parent 81041c44c4
commit dc35f53674
13 changed files with 162 additions and 3 deletions
+10
View File
@@ -264,6 +264,16 @@ export const deTranslation = {
offlineDownloading: 'Wird gecacht… ({{done}}/{{total}} Alben)',
uploadImage: 'Künstlerbild hochladen',
uploadImageError: 'Bild konnte nicht hochgeladen werden',
releaseTypes: {
album: 'Album',
ep: 'EP',
single: 'Single',
compilation: 'Kompilation',
live: 'Live',
soundtrack: 'Soundtrack',
remix: 'Remix',
other: 'Sonstige',
},
},
favorites: {
title: 'Favoriten',
+10
View File
@@ -266,6 +266,16 @@ export const enTranslation = {
offlineDownloading: 'Caching… ({{done}}/{{total}} albums)',
uploadImage: 'Upload artist image',
uploadImageError: 'Failed to upload image',
releaseTypes: {
album: 'Album',
ep: 'EP',
single: 'Single',
compilation: 'Compilation',
live: 'Live',
soundtrack: 'Soundtrack',
remix: 'Remix',
other: 'Other',
},
},
favorites: {
title: 'Favorites',
+10
View File
@@ -265,6 +265,16 @@ export const esTranslation = {
offlineDownloading: 'Descargando… ({{done}}/{{total}} álbumes)',
uploadImage: 'Subir imagen del artista',
uploadImageError: 'Error al subir imagen',
releaseTypes: {
album: 'Álbum',
ep: 'EP',
single: 'Single',
compilation: 'Recopilación',
live: 'En vivo',
soundtrack: 'Banda sonora',
remix: 'Remix',
other: 'Otro',
},
},
favorites: {
title: 'Favoritos',
+10
View File
@@ -264,6 +264,16 @@ export const frTranslation = {
offlineDownloading: 'En cache… ({{done}}/{{total}} albums)',
uploadImage: "Téléverser l'image de l'artiste",
uploadImageError: "Échec du téléversement de l'image",
releaseTypes: {
album: 'Album',
ep: 'EP',
single: 'Single',
compilation: 'Compilation',
live: 'Live',
soundtrack: 'Bande originale',
remix: 'Remix',
other: 'Autre',
},
},
favorites: {
title: 'Favoris',
+10
View File
@@ -264,6 +264,16 @@ export const nbTranslation = {
offlineDownloading: 'Bufrer… ({{done}}/{{total}} album)',
uploadImage: 'Last opp artistbilde',
uploadImageError: 'Kunne ikke laste opp bildet',
releaseTypes: {
album: 'Album',
ep: 'EP',
single: 'Single',
compilation: 'Samling',
live: 'Live',
soundtrack: 'Filmmusikk',
remix: 'Remiks',
other: 'Annet',
},
},
favorites: {
title: 'Favoritter',
+10
View File
@@ -263,6 +263,16 @@ export const nlTranslation = {
offlineDownloading: 'Cachen… ({{done}}/{{total}} albums)',
uploadImage: 'Artiestafbeelding uploaden',
uploadImageError: 'Uploaden van afbeelding mislukt',
releaseTypes: {
album: 'Album',
ep: 'EP',
single: 'Single',
compilation: 'Compilatie',
live: 'Live',
soundtrack: 'Soundtrack',
remix: 'Remix',
other: 'Overig',
},
},
favorites: {
title: 'Favorieten',
+10
View File
@@ -277,6 +277,16 @@ export const ruTranslation = {
offlineDownloading: 'Кэширование… ({{done}} из {{total}} альбомов)',
uploadImage: 'Загрузить фото исполнителя',
uploadImageError: 'Не удалось загрузить изображение',
releaseTypes: {
album: 'Альбом',
ep: 'EP',
single: 'Сингл',
compilation: 'Сборник',
live: 'Концерт',
soundtrack: 'Саундтрек',
remix: 'Ремикс',
other: 'Другое',
},
},
favorites: {
title: 'Избранное',
+10
View File
@@ -262,6 +262,16 @@ export const zhTranslation = {
offlineDownloading: '正在缓存… ({{done}}/{{total}} 张专辑)',
uploadImage: '上传艺术家图片',
uploadImageError: '图片上传失败',
releaseTypes: {
album: '专辑',
ep: 'EP',
single: '单曲',
compilation: '合辑',
live: '现场',
soundtrack: '原声带',
remix: '混音',
other: '其他',
},
},
favorites: {
title: '收藏夹',