feat: add Favorite Artists collection

- Add CollectionArtistEntry model with toJson/fromJson and artistCollectionKey helper
- Create favorite_artists table in SQLite with DB migration v1→v2
- Implement toggleFavoriteArtist/removeFavoriteArtist in LibraryCollectionsNotifier
- Add FavoriteArtistsScreen with list view, empty state, and artist navigation
- Add heart toggle button on ArtistScreen header (reactive via Riverpod selector)
- Integrate favorite artists folder in queue_tab collection grid/list views
- Add 8 new localization strings across all 13 locale files
This commit is contained in:
zarzet
2026-05-02 00:50:02 +07:00
parent 148e5c1231
commit 64dbf4441c
21 changed files with 1112 additions and 2 deletions
+48
View File
@@ -4475,6 +4475,12 @@ abstract class AppLocalizations {
/// **'Loved'**
String get collectionLoved;
/// Custom folder for favorite artists
///
/// In en, this message translates to:
/// **'Favorite Artists'**
String get collectionFavoriteArtists;
/// Custom user playlists folder
///
/// In en, this message translates to:
@@ -4517,6 +4523,12 @@ abstract class AppLocalizations {
/// **'{count, plural, =1{1 track} other{{count} tracks}}'**
String collectionPlaylistTracks(int count);
/// Artist count label for favorite artists
///
/// In en, this message translates to:
/// **'{count, plural, =1{1 artist} other{{count} artists}}'**
String collectionArtistCount(int count);
/// Snackbar after adding track to playlist
///
/// In en, this message translates to:
@@ -4601,6 +4613,18 @@ abstract class AppLocalizations {
/// **'Tap love on tracks to keep your favorites'**
String get collectionLovedEmptySubtitle;
/// Favorite artists empty state title
///
/// In en, this message translates to:
/// **'No favorite artists yet'**
String get collectionFavoriteArtistsEmptyTitle;
/// Favorite artists empty state subtitle
///
/// In en, this message translates to:
/// **'Tap the heart on an artist page to keep them here'**
String get collectionFavoriteArtistsEmptySubtitle;
/// Playlist empty state title
///
/// In en, this message translates to:
@@ -4655,6 +4679,18 @@ abstract class AppLocalizations {
/// **'\"{trackName}\" removed from Wishlist'**
String collectionRemovedFromWishlist(String trackName);
/// Snackbar after adding artist to favorite artists
///
/// In en, this message translates to:
/// **'\"{artistName}\" added to Favorite Artists'**
String collectionAddedToFavoriteArtists(String artistName);
/// Snackbar after removing artist from favorite artists
///
/// In en, this message translates to:
/// **'\"{artistName}\" removed from Favorite Artists'**
String collectionRemovedFromFavoriteArtists(String artistName);
/// Bottom sheet action label - add track to loved folder
///
/// In en, this message translates to:
@@ -4679,6 +4715,18 @@ abstract class AppLocalizations {
/// **'Remove from Wishlist'**
String get trackOptionRemoveFromWishlist;
/// Action label - add artist to favorite artists
///
/// In en, this message translates to:
/// **'Add to Favorite Artists'**
String get artistOptionAddToFavorites;
/// Action label - remove artist from favorite artists
///
/// In en, this message translates to:
/// **'Remove from Favorite Artists'**
String get artistOptionRemoveFromFavorites;
/// Bottom sheet action to pick a custom cover image for a playlist
///
/// In en, this message translates to:
+37
View File
@@ -2549,6 +2549,9 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get collectionLoved => 'Lieblingssongs';
@override
String get collectionFavoriteArtists => 'Favorite Artists';
@override
String get collectionPlaylists => 'Playlisten';
@@ -2579,6 +2582,17 @@ class AppLocalizationsDe extends AppLocalizations {
return '$_temp0';
}
@override
String collectionArtistCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count artists',
one: '1 artist',
);
return '$_temp0';
}
@override
String collectionAddedToPlaylist(String playlistName) {
return 'Zu \"$playlistName \" hinzugefügt';
@@ -2629,6 +2643,13 @@ class AppLocalizationsDe extends AppLocalizations {
String get collectionLovedEmptySubtitle =>
'Tippe auf das Herz, um deine Favoriten zu behalten';
@override
String get collectionFavoriteArtistsEmptyTitle => 'No favorite artists yet';
@override
String get collectionFavoriteArtistsEmptySubtitle =>
'Tap the heart on an artist page to keep them here';
@override
String get collectionPlaylistEmptyTitle => 'Die Playlist ist leer';
@@ -2667,6 +2688,16 @@ class AppLocalizationsDe extends AppLocalizations {
return '\"$trackName\" aus der Wunschliste entfernt';
}
@override
String collectionAddedToFavoriteArtists(String artistName) {
return '\"$artistName\" added to Favorite Artists';
}
@override
String collectionRemovedFromFavoriteArtists(String artistName) {
return '\"$artistName\" removed from Favorite Artists';
}
@override
String get trackOptionAddToLoved => 'Zu Lieblingssongs hinzufügen';
@@ -2679,6 +2710,12 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get trackOptionRemoveFromWishlist => 'Von der Wunschliste entfernen';
@override
String get artistOptionAddToFavorites => 'Add to Favorite Artists';
@override
String get artistOptionRemoveFromFavorites => 'Remove from Favorite Artists';
@override
String get collectionPlaylistChangeCover => 'Coverbild ändern';
+37
View File
@@ -2518,6 +2518,9 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get collectionLoved => 'Loved';
@override
String get collectionFavoriteArtists => 'Favorite Artists';
@override
String get collectionPlaylists => 'Playlists';
@@ -2548,6 +2551,17 @@ class AppLocalizationsEn extends AppLocalizations {
return '$_temp0';
}
@override
String collectionArtistCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count artists',
one: '1 artist',
);
return '$_temp0';
}
@override
String collectionAddedToPlaylist(String playlistName) {
return 'Added to \"$playlistName\"';
@@ -2598,6 +2612,13 @@ class AppLocalizationsEn extends AppLocalizations {
String get collectionLovedEmptySubtitle =>
'Tap love on tracks to keep your favorites';
@override
String get collectionFavoriteArtistsEmptyTitle => 'No favorite artists yet';
@override
String get collectionFavoriteArtistsEmptySubtitle =>
'Tap the heart on an artist page to keep them here';
@override
String get collectionPlaylistEmptyTitle => 'Playlist is empty';
@@ -2636,6 +2657,16 @@ class AppLocalizationsEn extends AppLocalizations {
return '\"$trackName\" removed from Wishlist';
}
@override
String collectionAddedToFavoriteArtists(String artistName) {
return '\"$artistName\" added to Favorite Artists';
}
@override
String collectionRemovedFromFavoriteArtists(String artistName) {
return '\"$artistName\" removed from Favorite Artists';
}
@override
String get trackOptionAddToLoved => 'Add to Loved';
@@ -2648,6 +2679,12 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get trackOptionRemoveFromWishlist => 'Remove from Wishlist';
@override
String get artistOptionAddToFavorites => 'Add to Favorite Artists';
@override
String get artistOptionRemoveFromFavorites => 'Remove from Favorite Artists';
@override
String get collectionPlaylistChangeCover => 'Change cover image';
+37
View File
@@ -2518,6 +2518,9 @@ class AppLocalizationsEs extends AppLocalizations {
@override
String get collectionLoved => 'Loved';
@override
String get collectionFavoriteArtists => 'Favorite Artists';
@override
String get collectionPlaylists => 'Playlists';
@@ -2548,6 +2551,17 @@ class AppLocalizationsEs extends AppLocalizations {
return '$_temp0';
}
@override
String collectionArtistCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count artists',
one: '1 artist',
);
return '$_temp0';
}
@override
String collectionAddedToPlaylist(String playlistName) {
return 'Added to \"$playlistName\"';
@@ -2598,6 +2612,13 @@ class AppLocalizationsEs extends AppLocalizations {
String get collectionLovedEmptySubtitle =>
'Tap love on tracks to keep your favorites';
@override
String get collectionFavoriteArtistsEmptyTitle => 'No favorite artists yet';
@override
String get collectionFavoriteArtistsEmptySubtitle =>
'Tap the heart on an artist page to keep them here';
@override
String get collectionPlaylistEmptyTitle => 'Playlist is empty';
@@ -2636,6 +2657,16 @@ class AppLocalizationsEs extends AppLocalizations {
return '\"$trackName\" removed from Wishlist';
}
@override
String collectionAddedToFavoriteArtists(String artistName) {
return '\"$artistName\" added to Favorite Artists';
}
@override
String collectionRemovedFromFavoriteArtists(String artistName) {
return '\"$artistName\" removed from Favorite Artists';
}
@override
String get trackOptionAddToLoved => 'Add to Loved';
@@ -2648,6 +2679,12 @@ class AppLocalizationsEs extends AppLocalizations {
@override
String get trackOptionRemoveFromWishlist => 'Remove from Wishlist';
@override
String get artistOptionAddToFavorites => 'Add to Favorite Artists';
@override
String get artistOptionRemoveFromFavorites => 'Remove from Favorite Artists';
@override
String get collectionPlaylistChangeCover => 'Change cover image';
+37
View File
@@ -2519,6 +2519,9 @@ class AppLocalizationsFr extends AppLocalizations {
@override
String get collectionLoved => 'Loved';
@override
String get collectionFavoriteArtists => 'Favorite Artists';
@override
String get collectionPlaylists => 'Playlists';
@@ -2549,6 +2552,17 @@ class AppLocalizationsFr extends AppLocalizations {
return '$_temp0';
}
@override
String collectionArtistCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count artists',
one: '1 artist',
);
return '$_temp0';
}
@override
String collectionAddedToPlaylist(String playlistName) {
return 'Added to \"$playlistName\"';
@@ -2599,6 +2613,13 @@ class AppLocalizationsFr extends AppLocalizations {
String get collectionLovedEmptySubtitle =>
'Tap love on tracks to keep your favorites';
@override
String get collectionFavoriteArtistsEmptyTitle => 'No favorite artists yet';
@override
String get collectionFavoriteArtistsEmptySubtitle =>
'Tap the heart on an artist page to keep them here';
@override
String get collectionPlaylistEmptyTitle => 'Playlist is empty';
@@ -2637,6 +2658,16 @@ class AppLocalizationsFr extends AppLocalizations {
return '\"$trackName\" removed from Wishlist';
}
@override
String collectionAddedToFavoriteArtists(String artistName) {
return '\"$artistName\" added to Favorite Artists';
}
@override
String collectionRemovedFromFavoriteArtists(String artistName) {
return '\"$artistName\" removed from Favorite Artists';
}
@override
String get trackOptionAddToLoved => 'Add to Loved';
@@ -2649,6 +2680,12 @@ class AppLocalizationsFr extends AppLocalizations {
@override
String get trackOptionRemoveFromWishlist => 'Remove from Wishlist';
@override
String get artistOptionAddToFavorites => 'Add to Favorite Artists';
@override
String get artistOptionRemoveFromFavorites => 'Remove from Favorite Artists';
@override
String get collectionPlaylistChangeCover => 'Change cover image';
+37
View File
@@ -2517,6 +2517,9 @@ class AppLocalizationsHi extends AppLocalizations {
@override
String get collectionLoved => 'Loved';
@override
String get collectionFavoriteArtists => 'Favorite Artists';
@override
String get collectionPlaylists => 'Playlists';
@@ -2547,6 +2550,17 @@ class AppLocalizationsHi extends AppLocalizations {
return '$_temp0';
}
@override
String collectionArtistCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count artists',
one: '1 artist',
);
return '$_temp0';
}
@override
String collectionAddedToPlaylist(String playlistName) {
return 'Added to \"$playlistName\"';
@@ -2597,6 +2611,13 @@ class AppLocalizationsHi extends AppLocalizations {
String get collectionLovedEmptySubtitle =>
'Tap love on tracks to keep your favorites';
@override
String get collectionFavoriteArtistsEmptyTitle => 'No favorite artists yet';
@override
String get collectionFavoriteArtistsEmptySubtitle =>
'Tap the heart on an artist page to keep them here';
@override
String get collectionPlaylistEmptyTitle => 'Playlist is empty';
@@ -2635,6 +2656,16 @@ class AppLocalizationsHi extends AppLocalizations {
return '\"$trackName\" removed from Wishlist';
}
@override
String collectionAddedToFavoriteArtists(String artistName) {
return '\"$artistName\" added to Favorite Artists';
}
@override
String collectionRemovedFromFavoriteArtists(String artistName) {
return '\"$artistName\" removed from Favorite Artists';
}
@override
String get trackOptionAddToLoved => 'Add to Loved';
@@ -2647,6 +2678,12 @@ class AppLocalizationsHi extends AppLocalizations {
@override
String get trackOptionRemoveFromWishlist => 'Remove from Wishlist';
@override
String get artistOptionAddToFavorites => 'Add to Favorite Artists';
@override
String get artistOptionRemoveFromFavorites => 'Remove from Favorite Artists';
@override
String get collectionPlaylistChangeCover => 'Change cover image';
+37
View File
@@ -2527,6 +2527,9 @@ class AppLocalizationsId extends AppLocalizations {
@override
String get collectionLoved => 'Loved';
@override
String get collectionFavoriteArtists => 'Favorite Artists';
@override
String get collectionPlaylists => 'Playlists';
@@ -2557,6 +2560,17 @@ class AppLocalizationsId extends AppLocalizations {
return '$_temp0';
}
@override
String collectionArtistCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count artists',
one: '1 artist',
);
return '$_temp0';
}
@override
String collectionAddedToPlaylist(String playlistName) {
return 'Added to \"$playlistName\"';
@@ -2607,6 +2621,13 @@ class AppLocalizationsId extends AppLocalizations {
String get collectionLovedEmptySubtitle =>
'Tap love on tracks to keep your favorites';
@override
String get collectionFavoriteArtistsEmptyTitle => 'No favorite artists yet';
@override
String get collectionFavoriteArtistsEmptySubtitle =>
'Tap the heart on an artist page to keep them here';
@override
String get collectionPlaylistEmptyTitle => 'Playlist is empty';
@@ -2645,6 +2666,16 @@ class AppLocalizationsId extends AppLocalizations {
return '\"$trackName\" removed from Wishlist';
}
@override
String collectionAddedToFavoriteArtists(String artistName) {
return '\"$artistName\" added to Favorite Artists';
}
@override
String collectionRemovedFromFavoriteArtists(String artistName) {
return '\"$artistName\" removed from Favorite Artists';
}
@override
String get trackOptionAddToLoved => 'Add to Loved';
@@ -2657,6 +2688,12 @@ class AppLocalizationsId extends AppLocalizations {
@override
String get trackOptionRemoveFromWishlist => 'Remove from Wishlist';
@override
String get artistOptionAddToFavorites => 'Add to Favorite Artists';
@override
String get artistOptionRemoveFromFavorites => 'Remove from Favorite Artists';
@override
String get collectionPlaylistChangeCover => 'Change cover image';
+37
View File
@@ -2503,6 +2503,9 @@ class AppLocalizationsJa extends AppLocalizations {
@override
String get collectionLoved => 'Loved';
@override
String get collectionFavoriteArtists => 'Favorite Artists';
@override
String get collectionPlaylists => 'Playlists';
@@ -2533,6 +2536,17 @@ class AppLocalizationsJa extends AppLocalizations {
return '$_temp0';
}
@override
String collectionArtistCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count artists',
one: '1 artist',
);
return '$_temp0';
}
@override
String collectionAddedToPlaylist(String playlistName) {
return 'Added to \"$playlistName\"';
@@ -2583,6 +2597,13 @@ class AppLocalizationsJa extends AppLocalizations {
String get collectionLovedEmptySubtitle =>
'Tap love on tracks to keep your favorites';
@override
String get collectionFavoriteArtistsEmptyTitle => 'No favorite artists yet';
@override
String get collectionFavoriteArtistsEmptySubtitle =>
'Tap the heart on an artist page to keep them here';
@override
String get collectionPlaylistEmptyTitle => 'Playlist is empty';
@@ -2621,6 +2642,16 @@ class AppLocalizationsJa extends AppLocalizations {
return '\"$trackName\" removed from Wishlist';
}
@override
String collectionAddedToFavoriteArtists(String artistName) {
return '\"$artistName\" added to Favorite Artists';
}
@override
String collectionRemovedFromFavoriteArtists(String artistName) {
return '\"$artistName\" removed from Favorite Artists';
}
@override
String get trackOptionAddToLoved => 'Add to Loved';
@@ -2633,6 +2664,12 @@ class AppLocalizationsJa extends AppLocalizations {
@override
String get trackOptionRemoveFromWishlist => 'ウィッシュから削除';
@override
String get artistOptionAddToFavorites => 'Add to Favorite Artists';
@override
String get artistOptionRemoveFromFavorites => 'Remove from Favorite Artists';
@override
String get collectionPlaylistChangeCover => 'カバー画像を変更';
+37
View File
@@ -2497,6 +2497,9 @@ class AppLocalizationsKo extends AppLocalizations {
@override
String get collectionLoved => 'Loved';
@override
String get collectionFavoriteArtists => 'Favorite Artists';
@override
String get collectionPlaylists => 'Playlists';
@@ -2527,6 +2530,17 @@ class AppLocalizationsKo extends AppLocalizations {
return '$_temp0';
}
@override
String collectionArtistCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count artists',
one: '1 artist',
);
return '$_temp0';
}
@override
String collectionAddedToPlaylist(String playlistName) {
return 'Added to \"$playlistName\"';
@@ -2577,6 +2591,13 @@ class AppLocalizationsKo extends AppLocalizations {
String get collectionLovedEmptySubtitle =>
'Tap love on tracks to keep your favorites';
@override
String get collectionFavoriteArtistsEmptyTitle => 'No favorite artists yet';
@override
String get collectionFavoriteArtistsEmptySubtitle =>
'Tap the heart on an artist page to keep them here';
@override
String get collectionPlaylistEmptyTitle => 'Playlist is empty';
@@ -2615,6 +2636,16 @@ class AppLocalizationsKo extends AppLocalizations {
return '\"$trackName\" removed from Wishlist';
}
@override
String collectionAddedToFavoriteArtists(String artistName) {
return '\"$artistName\" added to Favorite Artists';
}
@override
String collectionRemovedFromFavoriteArtists(String artistName) {
return '\"$artistName\" removed from Favorite Artists';
}
@override
String get trackOptionAddToLoved => 'Add to Loved';
@@ -2627,6 +2658,12 @@ class AppLocalizationsKo extends AppLocalizations {
@override
String get trackOptionRemoveFromWishlist => 'Remove from Wishlist';
@override
String get artistOptionAddToFavorites => 'Add to Favorite Artists';
@override
String get artistOptionRemoveFromFavorites => 'Remove from Favorite Artists';
@override
String get collectionPlaylistChangeCover => 'Change cover image';
+37
View File
@@ -2517,6 +2517,9 @@ class AppLocalizationsNl extends AppLocalizations {
@override
String get collectionLoved => 'Loved';
@override
String get collectionFavoriteArtists => 'Favorite Artists';
@override
String get collectionPlaylists => 'Playlists';
@@ -2547,6 +2550,17 @@ class AppLocalizationsNl extends AppLocalizations {
return '$_temp0';
}
@override
String collectionArtistCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count artists',
one: '1 artist',
);
return '$_temp0';
}
@override
String collectionAddedToPlaylist(String playlistName) {
return 'Added to \"$playlistName\"';
@@ -2597,6 +2611,13 @@ class AppLocalizationsNl extends AppLocalizations {
String get collectionLovedEmptySubtitle =>
'Tap love on tracks to keep your favorites';
@override
String get collectionFavoriteArtistsEmptyTitle => 'No favorite artists yet';
@override
String get collectionFavoriteArtistsEmptySubtitle =>
'Tap the heart on an artist page to keep them here';
@override
String get collectionPlaylistEmptyTitle => 'Playlist is empty';
@@ -2635,6 +2656,16 @@ class AppLocalizationsNl extends AppLocalizations {
return '\"$trackName\" removed from Wishlist';
}
@override
String collectionAddedToFavoriteArtists(String artistName) {
return '\"$artistName\" added to Favorite Artists';
}
@override
String collectionRemovedFromFavoriteArtists(String artistName) {
return '\"$artistName\" removed from Favorite Artists';
}
@override
String get trackOptionAddToLoved => 'Add to Loved';
@@ -2647,6 +2678,12 @@ class AppLocalizationsNl extends AppLocalizations {
@override
String get trackOptionRemoveFromWishlist => 'Remove from Wishlist';
@override
String get artistOptionAddToFavorites => 'Add to Favorite Artists';
@override
String get artistOptionRemoveFromFavorites => 'Remove from Favorite Artists';
@override
String get collectionPlaylistChangeCover => 'Change cover image';
+37
View File
@@ -2518,6 +2518,9 @@ class AppLocalizationsPt extends AppLocalizations {
@override
String get collectionLoved => 'Loved';
@override
String get collectionFavoriteArtists => 'Favorite Artists';
@override
String get collectionPlaylists => 'Playlists';
@@ -2548,6 +2551,17 @@ class AppLocalizationsPt extends AppLocalizations {
return '$_temp0';
}
@override
String collectionArtistCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count artists',
one: '1 artist',
);
return '$_temp0';
}
@override
String collectionAddedToPlaylist(String playlistName) {
return 'Added to \"$playlistName\"';
@@ -2598,6 +2612,13 @@ class AppLocalizationsPt extends AppLocalizations {
String get collectionLovedEmptySubtitle =>
'Tap love on tracks to keep your favorites';
@override
String get collectionFavoriteArtistsEmptyTitle => 'No favorite artists yet';
@override
String get collectionFavoriteArtistsEmptySubtitle =>
'Tap the heart on an artist page to keep them here';
@override
String get collectionPlaylistEmptyTitle => 'Playlist is empty';
@@ -2636,6 +2657,16 @@ class AppLocalizationsPt extends AppLocalizations {
return '\"$trackName\" removed from Wishlist';
}
@override
String collectionAddedToFavoriteArtists(String artistName) {
return '\"$artistName\" added to Favorite Artists';
}
@override
String collectionRemovedFromFavoriteArtists(String artistName) {
return '\"$artistName\" removed from Favorite Artists';
}
@override
String get trackOptionAddToLoved => 'Add to Loved';
@@ -2648,6 +2679,12 @@ class AppLocalizationsPt extends AppLocalizations {
@override
String get trackOptionRemoveFromWishlist => 'Remove from Wishlist';
@override
String get artistOptionAddToFavorites => 'Add to Favorite Artists';
@override
String get artistOptionRemoveFromFavorites => 'Remove from Favorite Artists';
@override
String get collectionPlaylistChangeCover => 'Change cover image';
+37
View File
@@ -2570,6 +2570,9 @@ class AppLocalizationsRu extends AppLocalizations {
@override
String get collectionLoved => 'Любимые';
@override
String get collectionFavoriteArtists => 'Favorite Artists';
@override
String get collectionPlaylists => 'Плейлисты';
@@ -2602,6 +2605,17 @@ class AppLocalizationsRu extends AppLocalizations {
return '$_temp0';
}
@override
String collectionArtistCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count artists',
one: '1 artist',
);
return '$_temp0';
}
@override
String collectionAddedToPlaylist(String playlistName) {
return 'Добавлено в \"$playlistName\"';
@@ -2652,6 +2666,13 @@ class AppLocalizationsRu extends AppLocalizations {
String get collectionLovedEmptySubtitle =>
'Нажмите \"любовь\" на треках, чтобы сохранить ваши избранные';
@override
String get collectionFavoriteArtistsEmptyTitle => 'No favorite artists yet';
@override
String get collectionFavoriteArtistsEmptySubtitle =>
'Tap the heart on an artist page to keep them here';
@override
String get collectionPlaylistEmptyTitle => 'Плейлист пуст';
@@ -2690,6 +2711,16 @@ class AppLocalizationsRu extends AppLocalizations {
return '\"$trackName\" удалён из списка желаний';
}
@override
String collectionAddedToFavoriteArtists(String artistName) {
return '\"$artistName\" added to Favorite Artists';
}
@override
String collectionRemovedFromFavoriteArtists(String artistName) {
return '\"$artistName\" removed from Favorite Artists';
}
@override
String get trackOptionAddToLoved => 'Добавить в Любимое';
@@ -2702,6 +2733,12 @@ class AppLocalizationsRu extends AppLocalizations {
@override
String get trackOptionRemoveFromWishlist => 'Удалить из списка желаний';
@override
String get artistOptionAddToFavorites => 'Add to Favorite Artists';
@override
String get artistOptionRemoveFromFavorites => 'Remove from Favorite Artists';
@override
String get collectionPlaylistChangeCover => 'Изменить обложку';
+37
View File
@@ -2564,6 +2564,9 @@ class AppLocalizationsTr extends AppLocalizations {
@override
String get collectionLoved => 'Favoriler';
@override
String get collectionFavoriteArtists => 'Favorite Artists';
@override
String get collectionPlaylists => 'Çalma Listeleri';
@@ -2594,6 +2597,17 @@ class AppLocalizationsTr extends AppLocalizations {
return '$_temp0';
}
@override
String collectionArtistCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count artists',
one: '1 artist',
);
return '$_temp0';
}
@override
String collectionAddedToPlaylist(String playlistName) {
return '\"$playlistName\" listesine eklendi';
@@ -2645,6 +2659,13 @@ class AppLocalizationsTr extends AppLocalizations {
String get collectionLovedEmptySubtitle =>
'Sevdiğiniz şarkıları burada toplamak için kalp ikonuna dokunun';
@override
String get collectionFavoriteArtistsEmptyTitle => 'No favorite artists yet';
@override
String get collectionFavoriteArtistsEmptySubtitle =>
'Tap the heart on an artist page to keep them here';
@override
String get collectionPlaylistEmptyTitle => 'Bu çalma listesi boş';
@@ -2683,6 +2704,16 @@ class AppLocalizationsTr extends AppLocalizations {
return '\"$trackName\" İstek Listenizden çıkarıldı';
}
@override
String collectionAddedToFavoriteArtists(String artistName) {
return '\"$artistName\" added to Favorite Artists';
}
@override
String collectionRemovedFromFavoriteArtists(String artistName) {
return '\"$artistName\" removed from Favorite Artists';
}
@override
String get trackOptionAddToLoved => 'Favorilere Ekle';
@@ -2695,6 +2726,12 @@ class AppLocalizationsTr extends AppLocalizations {
@override
String get trackOptionRemoveFromWishlist => 'İstek Listesinden Çıkar';
@override
String get artistOptionAddToFavorites => 'Add to Favorite Artists';
@override
String get artistOptionRemoveFromFavorites => 'Remove from Favorite Artists';
@override
String get collectionPlaylistChangeCover => 'Kapak resmini değiştir';
+37
View File
@@ -2518,6 +2518,9 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get collectionLoved => 'Loved';
@override
String get collectionFavoriteArtists => 'Favorite Artists';
@override
String get collectionPlaylists => 'Playlists';
@@ -2548,6 +2551,17 @@ class AppLocalizationsZh extends AppLocalizations {
return '$_temp0';
}
@override
String collectionArtistCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count artists',
one: '1 artist',
);
return '$_temp0';
}
@override
String collectionAddedToPlaylist(String playlistName) {
return 'Added to \"$playlistName\"';
@@ -2598,6 +2612,13 @@ class AppLocalizationsZh extends AppLocalizations {
String get collectionLovedEmptySubtitle =>
'Tap love on tracks to keep your favorites';
@override
String get collectionFavoriteArtistsEmptyTitle => 'No favorite artists yet';
@override
String get collectionFavoriteArtistsEmptySubtitle =>
'Tap the heart on an artist page to keep them here';
@override
String get collectionPlaylistEmptyTitle => 'Playlist is empty';
@@ -2636,6 +2657,16 @@ class AppLocalizationsZh extends AppLocalizations {
return '\"$trackName\" removed from Wishlist';
}
@override
String collectionAddedToFavoriteArtists(String artistName) {
return '\"$artistName\" added to Favorite Artists';
}
@override
String collectionRemovedFromFavoriteArtists(String artistName) {
return '\"$artistName\" removed from Favorite Artists';
}
@override
String get trackOptionAddToLoved => 'Add to Loved';
@@ -2648,6 +2679,12 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get trackOptionRemoveFromWishlist => 'Remove from Wishlist';
@override
String get artistOptionAddToFavorites => 'Add to Favorite Artists';
@override
String get artistOptionRemoveFromFavorites => 'Remove from Favorite Artists';
@override
String get collectionPlaylistChangeCover => 'Change cover image';
+47
View File
@@ -3330,6 +3330,10 @@
"@collectionLoved": {
"description": "Custom folder for favorite tracks"
},
"collectionFavoriteArtists": "Favorite Artists",
"@collectionFavoriteArtists": {
"description": "Custom folder for favorite artists"
},
"collectionPlaylists": "Playlists",
"@collectionPlaylists": {
"description": "Custom user playlists folder"
@@ -3363,6 +3367,15 @@
}
}
},
"collectionArtistCount": "{count, plural, =1{1 artist} other{{count} artists}}",
"@collectionArtistCount": {
"description": "Artist count label for favorite artists",
"placeholders": {
"count": {
"type": "int"
}
}
},
"collectionAddedToPlaylist": "Added to \"{playlistName}\"",
"@collectionAddedToPlaylist": {
"description": "Snackbar after adding track to playlist",
@@ -3434,6 +3447,14 @@
"@collectionLovedEmptySubtitle": {
"description": "Loved empty state subtitle"
},
"collectionFavoriteArtistsEmptyTitle": "No favorite artists yet",
"@collectionFavoriteArtistsEmptyTitle": {
"description": "Favorite artists empty state title"
},
"collectionFavoriteArtistsEmptySubtitle": "Tap the heart on an artist page to keep them here",
"@collectionFavoriteArtistsEmptySubtitle": {
"description": "Favorite artists empty state subtitle"
},
"collectionPlaylistEmptyTitle": "Playlist is empty",
"@collectionPlaylistEmptyTitle": {
"description": "Playlist empty state title"
@@ -3495,6 +3516,24 @@
}
}
},
"collectionAddedToFavoriteArtists": "\"{artistName}\" added to Favorite Artists",
"@collectionAddedToFavoriteArtists": {
"description": "Snackbar after adding artist to favorite artists",
"placeholders": {
"artistName": {
"type": "String"
}
}
},
"collectionRemovedFromFavoriteArtists": "\"{artistName}\" removed from Favorite Artists",
"@collectionRemovedFromFavoriteArtists": {
"description": "Snackbar after removing artist from favorite artists",
"placeholders": {
"artistName": {
"type": "String"
}
}
},
"trackOptionAddToLoved": "Add to Loved",
"@trackOptionAddToLoved": {
"description": "Bottom sheet action label - add track to loved folder"
@@ -3511,6 +3550,14 @@
"@trackOptionRemoveFromWishlist": {
"description": "Bottom sheet action label - remove track from wishlist"
},
"artistOptionAddToFavorites": "Add to Favorite Artists",
"@artistOptionAddToFavorites": {
"description": "Action label - add artist to favorite artists"
},
"artistOptionRemoveFromFavorites": "Remove from Favorite Artists",
"@artistOptionRemoveFromFavorites": {
"description": "Action label - remove artist from favorite artists"
},
"collectionPlaylistChangeCover": "Change cover image",
"@collectionPlaylistChangeCover": {
"description": "Bottom sheet action to pick a custom cover image for a playlist"