feat(ui): bulk entity ratings, Random Albums multi-select, album New badge (#446)

Add star rating rows to multi-artist and multi-album context menus so the
selection shares one rating control (mixed ratings show empty until set;
keyboard navigation supported). Pass selectedAlbums into AlbumCard on Random
Albums so multi-select context menu works. Add i18n aria labels for bulk
rating controls. Move the New album badge to the top-right of the cover and
stack it with the offline badge to avoid overlap.
This commit is contained in:
cucadmuh
2026-05-04 01:56:26 +03:00
committed by GitHub
parent 3b4d54431b
commit dc7a785f94
12 changed files with 133 additions and 16 deletions
+2
View File
@@ -230,6 +230,8 @@ export const deTranslation = {
artistShort: 'Künstlerbewertung',
albumAriaLabel: 'Albumbewertung',
artistAriaLabel: 'Künstlerbewertung',
selectedArtistsRatingAriaLabel: 'Sternebewertung für {{count}} ausgewählte Künstler',
selectedAlbumsRatingAriaLabel: 'Sternebewertung für {{count}} ausgewählte Alben',
saveFailed: 'Bewertung konnte nicht gespeichert werden.',
},
artistDetail: {
+2
View File
@@ -232,6 +232,8 @@ export const enTranslation = {
artistShort: 'Artist rating',
albumAriaLabel: 'Album rating',
artistAriaLabel: 'Artist rating',
selectedArtistsRatingAriaLabel: 'Star rating for {{count}} selected artists',
selectedAlbumsRatingAriaLabel: 'Star rating for {{count}} selected albums',
saveFailed: 'Could not save rating.',
},
artistDetail: {
+2
View File
@@ -231,6 +231,8 @@ export const esTranslation = {
artistShort: 'Calificación del artista',
albumAriaLabel: 'Calificación del álbum',
artistAriaLabel: 'Calificación del artista',
selectedArtistsRatingAriaLabel: 'Calificación con estrellas para {{count}} artistas seleccionados',
selectedAlbumsRatingAriaLabel: 'Calificación con estrellas para {{count}} álbumes seleccionados',
saveFailed: 'No se pudo guardar la calificación.',
},
artistDetail: {
+2
View File
@@ -230,6 +230,8 @@ export const frTranslation = {
artistShort: 'Note de lartiste',
albumAriaLabel: 'Note de lalbum',
artistAriaLabel: 'Note de lartiste',
selectedArtistsRatingAriaLabel: 'Note sur {{count}} artistes sélectionnés',
selectedAlbumsRatingAriaLabel: 'Note sur {{count}} albums sélectionnés',
saveFailed: 'Impossible denregistrer la note.',
},
artistDetail: {
+2
View File
@@ -230,6 +230,8 @@ export const nbTranslation = {
artistShort: 'Artistvurdering',
albumAriaLabel: 'Albumvurdering',
artistAriaLabel: 'Artistvurdering',
selectedArtistsRatingAriaLabel: 'Stjernevurdering for {{count}} valgte artister',
selectedAlbumsRatingAriaLabel: 'Stjernevurdering for {{count}} valgte album',
saveFailed: 'Kunne ikke lagre vurderingen.',
},
artistDetail: {
+2
View File
@@ -229,6 +229,8 @@ export const nlTranslation = {
artistShort: 'Artiestbeoordeling',
albumAriaLabel: 'Albumbeoordeling',
artistAriaLabel: 'Artiestbeoordeling',
selectedArtistsRatingAriaLabel: 'Sterrenbeoordeling voor {{count}} geselecteerde artiesten',
selectedAlbumsRatingAriaLabel: 'Sterrenbeoordeling voor {{count}} geselecteerde albums',
saveFailed: 'Beoordeling opslaan mislukt.',
},
artistDetail: {
+2
View File
@@ -241,6 +241,8 @@ export const ruTranslation = {
artistShort: 'Оценка исполнителя',
albumAriaLabel: 'Оценка альбома',
artistAriaLabel: 'Оценка исполнителя',
selectedArtistsRatingAriaLabel: 'Звёздная оценка для выбранных исполнителей ({{count}})',
selectedAlbumsRatingAriaLabel: 'Звёздная оценка для выбранных альбомов ({{count}})',
saveFailed: 'Не удалось сохранить оценку.',
},
artistDetail: {
+2
View File
@@ -228,6 +228,8 @@ export const zhTranslation = {
artistShort: '艺人评分',
albumAriaLabel: '专辑评分',
artistAriaLabel: '艺人评分',
selectedArtistsRatingAriaLabel: '为所选 {{count}} 位艺人设置星级评分',
selectedAlbumsRatingAriaLabel: '为所选 {{count}} 张专辑设置星级评分',
saveFailed: '无法保存评分。',
},
artistDetail: {