fix(l10n): consolidate Crowdin locale files and fix ICU plural warnings

- Replace app_es-ES.arb, app_pt-PT.arb, app_tr-TR.arb (hyphen format)
  with properly named app_es_ES.arb, app_pt_PT.arb, app_tr.arb
- Fix @@locale values to match Flutter filename convention (underscore)
- Fix ICU plural syntax: remove redundant 'one {}' before '=1{...}'
  in es_ES, pt_PT, tr translations
- Regenerate l10n output files
This commit is contained in:
zarzet 2026-03-25 16:12:37 +07:00
parent a0306bd345
commit 4974284760
18 changed files with 2491 additions and 10191 deletions

View file

@ -365,7 +365,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get aboutAppDescription =>
'Lade Spotify-Titel in verlustfreier Qualität von Tidal, Qobuz und Amazon Music herunter.';
'Lade Spotify-Titel in verlustfreier Qualität von Tidal und Qobuz herunter.';
@override
String get artistAlbums => 'Alben';
@ -441,7 +441,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get setupDownloadLocationIosMessage =>
'Auf iOS werden Downloads im Dokumentenverzeichnis der App gespeichert. Du kannst sie über die Datei-App aufrufen.';
'Auf iOS werden Downloads im Dokumentenordner der App gespeichert. Du kannst sie über die Datei-App aufrufen.';
@override
String get setupAppDocumentsFolder => 'App-Dokumentenordner';
@ -705,15 +705,15 @@ class AppLocalizationsDe extends AppLocalizations {
String get errorNoTracksFound => 'Keine Titel gefunden';
@override
String get errorUrlNotRecognized => 'Link not recognized';
String get errorUrlNotRecognized => 'Link wurde nicht erkannt';
@override
String get errorUrlNotRecognizedMessage =>
'This link is not supported. Make sure the URL is correct and a compatible extension is installed.';
'Dieser Link ist inkompatibel. Prüfe die URL und stelle sicher, dass eine kompatible Erweiterung installiert ist.';
@override
String get errorUrlFetchFailed =>
'Failed to load content from this link. Please try again.';
'Laden fehlgeschlagen. Bitte erneut versuchen.';
@override
String errorMissingExtensionSource(String item) {
@ -750,7 +750,7 @@ class AppLocalizationsDe extends AppLocalizations {
String get selectionAllSelected => 'Alle Titel sind ausgewählt';
@override
String get selectionSelectToDelete => 'Titel zum Löschen auswählen';
String get selectionSelectToDelete => 'Titel zum Löschen wählen';
@override
String progressFetchingMetadata(int current, int total) {
@ -767,7 +767,7 @@ class AppLocalizationsDe extends AppLocalizations {
String get searchArtists => 'Künstler';
@override
String get searchAlbums => 'Albums';
String get searchAlbums => 'Alben';
@override
String get searchPlaylists => 'Playlisten';
@ -789,11 +789,11 @@ class AppLocalizationsDe extends AppLocalizations {
String get folderOrganizationNone => 'Keine Organisation';
@override
String get folderOrganizationByPlaylist => 'By Playlist';
String get folderOrganizationByPlaylist => 'Nach Playlist';
@override
String get folderOrganizationByPlaylistSubtitle =>
'Separate folder for each playlist';
'Ordner für jede Playlist trennen';
@override
String get folderOrganizationByArtist => 'Nach Künstler';
@ -810,7 +810,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get folderOrganizationNoneSubtitle =>
'Alle Dateien im Download-Verzeichnis';
'Alle Dateien im Download-Ordner';
@override
String get folderOrganizationByArtistSubtitle =>
@ -1463,19 +1463,20 @@ class AppLocalizationsDe extends AppLocalizations {
String get downloadAskBeforeDownload => 'Qualität vor Download fragen';
@override
String get downloadDirectory => 'Downloadverzeichnis';
String get downloadDirectory => 'Download-Ordner';
@override
String get downloadSeparateSinglesFolder => 'Singles Ordner trennen';
@override
String get downloadAlbumFolderStructure => 'Album Folder Structure';
String get downloadAlbumFolderStructure => 'Album-Ordnerstruktur';
@override
String get downloadUseAlbumArtistForFolders => 'Use Album Artist for folders';
String get downloadUseAlbumArtistForFolders =>
'Album-Künstler für Ordner verwenden';
@override
String get downloadUsePrimaryArtistOnly => 'Primary artist only for folders';
String get downloadUsePrimaryArtistOnly => 'Primärer Künstler nur für Ordner';
@override
String get downloadUsePrimaryArtistOnlyEnabled =>
@ -1483,7 +1484,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get downloadUsePrimaryArtistOnlyDisabled =>
'Full artist string used for folder name';
'Vollständiger Künstler für Ordnername';
@override
String get downloadSelectQuality => 'Qualität wählen';
@ -1505,7 +1506,8 @@ class AppLocalizationsDe extends AppLocalizations {
'Bist du dir sicher, dass du alle Downloads löschen möchten?';
@override
String get settingsAutoExportFailed => 'Auto-export failed downloads';
String get settingsAutoExportFailed =>
'Auto-Export fehlgeschlagener Downloads';
@override
String get settingsAutoExportFailedSubtitle =>
@ -1528,14 +1530,14 @@ class AppLocalizationsDe extends AppLocalizations {
String get albumFolderArtistAlbum => 'Künstler/Album';
@override
String get albumFolderArtistAlbumSubtitle => 'Albums/Artist Name/Album Name/';
String get albumFolderArtistAlbumSubtitle => 'Alben/Künster Name/Album Name/';
@override
String get albumFolderArtistYearAlbum => 'Artist / [Year] Album';
String get albumFolderArtistYearAlbum => 'Künstler / [Year] Album';
@override
String get albumFolderArtistYearAlbumSubtitle =>
'Albums/Künster Name/[2005] Album Name/';
'Alben/Künster Name/[2005] Album Name/';
@override
String get albumFolderAlbumOnly => 'Nur Alben';
@ -1547,14 +1549,14 @@ class AppLocalizationsDe extends AppLocalizations {
String get albumFolderYearAlbum => '[Year] Album';
@override
String get albumFolderYearAlbumSubtitle => 'Albums/[2005] Album Name/';
String get albumFolderYearAlbumSubtitle => 'Alben/[2005] Album Name/';
@override
String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles';
String get albumFolderArtistAlbumSingles => 'Künstler / Album + Singles';
@override
String get albumFolderArtistAlbumSinglesSubtitle =>
'Artist/Album/ and Artist/Singles/';
'Künstler/Album/ und Künstler/Singles/';
@override
String get downloadedAlbumDeleteSelected => 'Ausgewählte löschen';
@ -1593,7 +1595,7 @@ class AppLocalizationsDe extends AppLocalizations {
}
@override
String get downloadedAlbumSelectToDelete => 'Select tracks to delete';
String get downloadedAlbumSelectToDelete => 'Titel zum Löschen wählen';
@override
String downloadedAlbumDiscHeader(int discNumber) {
@ -1639,7 +1641,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String discographyAlbumsOnlySubtitle(int count, int albumCount) {
return '$count Titel von $albumCount Albums';
return '$count Titel aus $albumCount Alben';
}
@override
@ -1655,14 +1657,14 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get discographySelectAlbumsSubtitle =>
'Choose specific albums or singles';
'Wähle bestimmte Alben oder Singles';
@override
String get discographyFetchingTracks => 'Lade Titel...';
@override
String discographyFetchingAlbum(int current, int total) {
return 'Fetching $current of $total...';
return 'Lade $current von $total...';
}
@override
@ -1675,7 +1677,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String discographyAddedToQueue(int count) {
return 'Added $count tracks to queue';
return '$count Titel zur Warteschlange hinzugefügt';
}
@override
@ -1687,7 +1689,7 @@ class AppLocalizationsDe extends AppLocalizations {
String get discographyNoAlbums => 'Es sind keine Alben verfügbar';
@override
String get discographyFailedToFetch => 'Failed to fetch some albums';
String get discographyFailedToFetch => 'Fehler beim Abrufen einiger Alben';
@override
String get sectionStorageAccess => 'Speicherzugriff';
@ -1696,14 +1698,14 @@ class AppLocalizationsDe extends AppLocalizations {
String get allFilesAccess => 'Zugriff auf alle Dateien';
@override
String get allFilesAccessEnabledSubtitle => 'Can write to any folder';
String get allFilesAccessEnabledSubtitle => 'Darf in jeden Ordner schreiben';
@override
String get allFilesAccessDisabledSubtitle => 'Limited to media folders only';
String get allFilesAccessDisabledSubtitle => 'Nur auf Medienordner begrenzt';
@override
String get allFilesAccessDescription =>
'Aktiviere die Option, wenn beim Speichern in benutzerdefinierten Ordnern Schreibfehler auftreten. Weil Android 13+ standardmäßig den Zugriff auf bestimmte Verzeichnisse einschränkt.';
'Option bei Schreibfehlern bitte aktivieren (erforderlich ab Android 13).';
@override
String get allFilesAccessDeniedMessage =>
@ -1717,13 +1719,15 @@ class AppLocalizationsDe extends AppLocalizations {
String get settingsLocalLibrary => 'Lokale Bibliothek';
@override
String get settingsLocalLibrarySubtitle => 'Scan music & detect duplicates';
String get settingsLocalLibrarySubtitle =>
'Musik scannen & Duplikate erkennen';
@override
String get settingsCache => 'Speicher & Cache';
@override
String get settingsCacheSubtitle => 'View size and clear cached data';
String get settingsCacheSubtitle =>
'Größe anzeigen und Daten im Cache leeren';
@override
String get libraryTitle => 'Lokale Bibliothek';
@ -1736,7 +1740,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get libraryEnableLocalLibrarySubtitle =>
'Scan and track your existing music';
'Scan und verfolge deine bestehende Musik';
@override
String get libraryFolder => 'Bibliotheksordner';
@ -1745,7 +1749,7 @@ class AppLocalizationsDe extends AppLocalizations {
String get libraryFolderHint => 'Tippe um Ordner auszuwählen';
@override
String get libraryShowDuplicateIndicator => 'Show Duplicate Indicator';
String get libraryShowDuplicateIndicator => 'Duplikat Indikator anzeigen';
@override
String get libraryShowDuplicateIndicatorSubtitle =>
@ -1946,7 +1950,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get tutorialWelcomeTip2 =>
'Hole dir FLAC Audio von Tidal, Qobuz oder Amazon Musik';
'Hole dir FLAC Audio von Tidal, Qobuz oder Deezer';
@override
String get tutorialWelcomeTip3 =>
@ -2013,7 +2017,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get tutorialSettingsTip1 =>
'Downloadverzeichnis und Ordnerorganisation ändern';
'Download-Ordner und Ordner-Organisation ändern';
@override
String get tutorialSettingsTip2 =>
@ -2071,14 +2075,14 @@ class AppLocalizationsDe extends AppLocalizations {
String get cacheSectionMaintenance => 'Wartung';
@override
String get cacheAppDirectory => 'App-Cache Verzeichnis';
String get cacheAppDirectory => 'App-Cache Ordner';
@override
String get cacheAppDirectoryDesc =>
'HTTP-Antworten, WebView Daten und andere temporäre App-Daten.';
@override
String get cacheTempDirectory => 'Temporäres Verzeichnis';
String get cacheTempDirectory => 'Temporärer Ordner';
@override
String get cacheTempDirectoryDesc =>
@ -2199,11 +2203,11 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String trackCoverSaved(String fileName) {
return 'Cover art saved to $fileName';
return 'Cover in $fileName gespeichert';
}
@override
String get trackCoverNoSource => 'No cover art source available';
String get trackCoverNoSource => 'Keine Cover Quelle vorhanden';
@override
String trackLyricsSaved(String fileName) {
@ -2301,10 +2305,10 @@ class AppLocalizationsDe extends AppLocalizations {
String get trackConvertFailed => 'Konvertierung fehlgeschlagen';
@override
String get cueSplitTitle => 'Split CUE Sheet';
String get cueSplitTitle => 'CUE-Sheet aufteilen';
@override
String get cueSplitSubtitle => 'Split CUE+FLAC into individual tracks';
String get cueSplitSubtitle => 'CUE+FLAC in einzelne Titel aufteilen';
@override
String cueSplitAlbum(String album) {
@ -2313,40 +2317,41 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String cueSplitArtist(String artist) {
return 'Artist: $artist';
return 'Künstler: $artist';
}
@override
String cueSplitTrackCount(int count) {
return '$count tracks';
return '$count Titel';
}
@override
String get cueSplitConfirmTitle => 'Split CUE Album';
String get cueSplitConfirmTitle => 'CUE-Album aufteilen';
@override
String cueSplitConfirmMessage(String album, int count) {
return 'Split \"$album\" into $count individual FLAC files?\n\nFiles will be saved to the same directory.';
return 'Soll „$album“ in $count einzelne FLAC-Dateien aufgeteilt werden?\n\nDie Dateien werden im selben Ordner gespeichert.';
}
@override
String cueSplitSplitting(int current, int total) {
return 'Splitting CUE sheet... ($current/$total)';
return 'CUE-Sheet wird geteilt... ($current/$total)';
}
@override
String cueSplitSuccess(int count) {
return 'Split into $count tracks successfully';
return '$count Titel erfolgreich aufgeteilt';
}
@override
String get cueSplitFailed => 'CUE split failed';
String get cueSplitFailed => 'CUE-Aufteilung fehlgeschlagen';
@override
String get cueSplitNoAudioFile => 'Audio file not found for this CUE sheet';
String get cueSplitNoAudioFile =>
'Audiodatei für dieses CUE-Sheet nicht gefunden';
@override
String get cueSplitButton => 'Split into Tracks';
String get cueSplitButton => 'In Titel aufteilen';
@override
String get actionCreate => 'Erstellen';
@ -2571,11 +2576,11 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get downloadUseAlbumArtistForFoldersAlbumSubtitle =>
'Künstlerordner verwenden den Album-Interpreten, wenn verfügbar';
'Interpret-Ordner verwenden Album-Interpret, sofern vorhanden';
@override
String get downloadUseAlbumArtistForFoldersTrackSubtitle =>
'Artist folders use Track Artist only';
'Künstler-Ordner nur für Titel-Künstler';
@override
String get lyricsProvidersTitle => 'Lyrics Providers';

View file

@ -3326,7 +3326,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
@override
String get aboutAppDescription =>
'Descarga pistas de Spotify con calidad sin pérdida de Tidal y Qobuz.';
'Download Spotify tracks in lossless quality from Tidal and Qobuz.';
@override
String get artistAlbums => 'Álbumes';
@ -3661,6 +3661,17 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
@override
String get errorNoTracksFound => 'No se encontraron pistas';
@override
String get errorUrlNotRecognized => 'Link not recognized';
@override
String get errorUrlNotRecognizedMessage =>
'This link is not supported. Make sure the URL is correct and a compatible extension is installed.';
@override
String get errorUrlFetchFailed =>
'Failed to load content from this link. Please try again.';
@override
String errorMissingExtensionSource(String item) {
return 'No se puede cargar $item: falta una fuente de extensión';
@ -3724,9 +3735,23 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
@override
String get filenameFormat => 'Formato del nombre del archivo';
@override
String get filenameShowAdvancedTags => 'Show advanced tags';
@override
String get filenameShowAdvancedTagsDescription =>
'Enable formatted tags for track padding and date patterns';
@override
String get folderOrganizationNone => 'Ninguna organización';
@override
String get folderOrganizationByPlaylist => 'By Playlist';
@override
String get folderOrganizationByPlaylistSubtitle =>
'Separate folder for each playlist';
@override
String get folderOrganizationByArtist => 'Por Artista';
@ -4313,6 +4338,12 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
String get youtubeQualityNote =>
'YouTube provides lossy audio only. Not part of lossless fallback.';
@override
String get youtubeOpusBitrateTitle => 'YouTube Opus Bitrate';
@override
String get youtubeMp3BitrateTitle => 'YouTube MP3 Bitrate';
@override
String get downloadAskBeforeDownload => 'Preguntar antes de descargar';
@ -4645,6 +4676,17 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
String get libraryAboutDescription =>
'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
@override
String libraryTracksUnit(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return '$_temp0';
}
@override
String libraryLastScanned(String time) {
return 'Last scanned: $time';
@ -4771,7 +4813,7 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
@override
String get tutorialWelcomeTip2 =>
'Obtén audio en calidad FLAC de Tidal, Qobuz o Deezer';
'Get FLAC quality audio from Tidal, Qobuz, or Deezer';
@override
String get tutorialWelcomeTip3 =>
@ -5088,6 +5130,258 @@ class AppLocalizationsEsEs extends AppLocalizationsEs {
@override
String get trackConvertFailed => 'Conversion failed';
@override
String get cueSplitTitle => 'Split CUE Sheet';
@override
String get cueSplitSubtitle => 'Split CUE+FLAC into individual tracks';
@override
String cueSplitAlbum(String album) {
return 'Album: $album';
}
@override
String cueSplitArtist(String artist) {
return 'Artist: $artist';
}
@override
String cueSplitTrackCount(int count) {
return '$count tracks';
}
@override
String get cueSplitConfirmTitle => 'Split CUE Album';
@override
String cueSplitConfirmMessage(String album, int count) {
return 'Split \"$album\" into $count individual FLAC files?\n\nFiles will be saved to the same directory.';
}
@override
String cueSplitSplitting(int current, int total) {
return 'Splitting CUE sheet... ($current/$total)';
}
@override
String cueSplitSuccess(int count) {
return 'Split into $count tracks successfully';
}
@override
String get cueSplitFailed => 'CUE split failed';
@override
String get cueSplitNoAudioFile => 'Audio file not found for this CUE sheet';
@override
String get cueSplitButton => 'Split into Tracks';
@override
String get actionCreate => 'Create';
@override
String get collectionFoldersTitle => 'My folders';
@override
String get collectionWishlist => 'Wishlist';
@override
String get collectionLoved => 'Loved';
@override
String get collectionPlaylists => 'Playlists';
@override
String get collectionPlaylist => 'Playlist';
@override
String get collectionAddToPlaylist => 'Add to playlist';
@override
String get collectionCreatePlaylist => 'Create playlist';
@override
String get collectionNoPlaylistsYet => 'No playlists yet';
@override
String get collectionNoPlaylistsSubtitle =>
'Create a playlist to start categorizing tracks';
@override
String collectionPlaylistTracks(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count tracks',
one: '1 track',
);
return '$_temp0';
}
@override
String collectionAddedToPlaylist(String playlistName) {
return 'Added to \"$playlistName\"';
}
@override
String collectionAlreadyInPlaylist(String playlistName) {
return 'Already in \"$playlistName\"';
}
@override
String get collectionPlaylistCreated => 'Playlist created';
@override
String get collectionPlaylistNameHint => 'Playlist name';
@override
String get collectionPlaylistNameRequired => 'Playlist name is required';
@override
String get collectionRenamePlaylist => 'Rename playlist';
@override
String get collectionDeletePlaylist => 'Delete playlist';
@override
String collectionDeletePlaylistMessage(String playlistName) {
return 'Delete \"$playlistName\" and all tracks inside it?';
}
@override
String get collectionPlaylistDeleted => 'Playlist deleted';
@override
String get collectionPlaylistRenamed => 'Playlist renamed';
@override
String get collectionWishlistEmptyTitle => 'Wishlist is empty';
@override
String get collectionWishlistEmptySubtitle =>
'Tap + on tracks to save what you want to download later';
@override
String get collectionLovedEmptyTitle => 'Loved folder is empty';
@override
String get collectionLovedEmptySubtitle =>
'Tap love on tracks to keep your favorites';
@override
String get collectionPlaylistEmptyTitle => 'Playlist is empty';
@override
String get collectionPlaylistEmptySubtitle =>
'Long-press + on any track to add it here';
@override
String get collectionRemoveFromPlaylist => 'Remove from playlist';
@override
String get collectionRemoveFromFolder => 'Remove from folder';
@override
String collectionRemoved(String trackName) {
return '\"$trackName\" removed';
}
@override
String collectionAddedToLoved(String trackName) {
return '\"$trackName\" added to Loved';
}
@override
String collectionRemovedFromLoved(String trackName) {
return '\"$trackName\" removed from Loved';
}
@override
String collectionAddedToWishlist(String trackName) {
return '\"$trackName\" added to Wishlist';
}
@override
String collectionRemovedFromWishlist(String trackName) {
return '\"$trackName\" removed from Wishlist';
}
@override
String get trackOptionAddToLoved => 'Add to Loved';
@override
String get trackOptionRemoveFromLoved => 'Remove from Loved';
@override
String get trackOptionAddToWishlist => 'Add to Wishlist';
@override
String get trackOptionRemoveFromWishlist => 'Remove from Wishlist';
@override
String get collectionPlaylistChangeCover => 'Change cover image';
@override
String get collectionPlaylistRemoveCover => 'Remove cover image';
@override
String selectionShareCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Share $count $_temp0';
}
@override
String get selectionShareNoFiles => 'No shareable files found';
@override
String selectionConvertCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Convert $count $_temp0';
}
@override
String get selectionConvertNoConvertible => 'No convertible tracks selected';
@override
String get selectionBatchConvertConfirmTitle => 'Batch Convert';
@override
String selectionBatchConvertConfirmMessage(
int count,
String format,
String bitrate,
) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Convert $count $_temp0 to $format at $bitrate?\n\nOriginal files will be deleted after conversion.';
}
@override
String selectionBatchConvertProgress(int current, int total) {
return 'Converting $current of $total...';
}
@override
String selectionBatchConvertSuccess(int success, int total, String format) {
return 'Converted $success of $total tracks to $format';
}
@override
String downloadedAlbumDownloadedCount(int count) {
return '$count descargado';

View file

@ -358,7 +358,7 @@ class AppLocalizationsFr extends AppLocalizations {
@override
String get aboutAppDescription =>
'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.';
'Download Spotify tracks in lossless quality from Tidal and Qobuz.';
@override
String get artistAlbums => 'Albums';
@ -1924,7 +1924,7 @@ class AppLocalizationsFr extends AppLocalizations {
@override
String get tutorialWelcomeTip2 =>
'Get FLAC quality audio from Tidal, Qobuz, or Amazon Music';
'Get FLAC quality audio from Tidal, Qobuz, or Deezer';
@override
String get tutorialWelcomeTip3 =>

View file

@ -356,7 +356,7 @@ class AppLocalizationsHi extends AppLocalizations {
@override
String get aboutAppDescription =>
'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.';
'Download Spotify tracks in lossless quality from Tidal and Qobuz.';
@override
String get artistAlbums => 'Albums';
@ -1922,7 +1922,7 @@ class AppLocalizationsHi extends AppLocalizations {
@override
String get tutorialWelcomeTip2 =>
'Get FLAC quality audio from Tidal, Qobuz, or Amazon Music';
'Get FLAC quality audio from Tidal, Qobuz, or Deezer';
@override
String get tutorialWelcomeTip3 =>

View file

@ -359,7 +359,7 @@ class AppLocalizationsId extends AppLocalizations {
@override
String get aboutAppDescription =>
'Unduh lagu Spotify dalam kualitas lossless dari Tidal, Qobuz, dan Amazon Music.';
'Unduh lagu-lagu Spotify dalam kualitas lossless dari Tidal dan Qobuz.';
@override
String get artistAlbums => 'Album';
@ -769,21 +769,21 @@ class AppLocalizationsId extends AppLocalizations {
String get filenameFormat => 'Format Nama File';
@override
String get filenameShowAdvancedTags => 'Show advanced tags';
String get filenameShowAdvancedTags => 'Tampilkan tag lanjutan';
@override
String get filenameShowAdvancedTagsDescription =>
'Enable formatted tags for track padding and date patterns';
'Aktifkan tag yang diformat untuk padding trek dan pola tanggal';
@override
String get folderOrganizationNone => 'Tidak ada';
@override
String get folderOrganizationByPlaylist => 'By Playlist';
String get folderOrganizationByPlaylist => 'Berdasarkan Daftar Putar';
@override
String get folderOrganizationByPlaylistSubtitle =>
'Separate folder for each playlist';
'Setiap daftar putar memerlukan folder terpisah';
@override
String get folderOrganizationByArtist => 'Berdasarkan Artis';
@ -939,13 +939,13 @@ class AppLocalizationsId extends AppLocalizations {
'Masukkan Client ID dan Secret Anda untuk menggunakan kuota aplikasi Spotify Anda sendiri.';
@override
String get credentialsClientId => 'Client ID';
String get credentialsClientId => 'ID Klien';
@override
String get credentialsClientIdHint => 'Tempel Client ID';
@override
String get credentialsClientSecret => 'Client Secret';
String get credentialsClientSecret => 'Rahasia Klien';
@override
String get credentialsClientSecretHint => 'Tempel Client Secret';
@ -954,7 +954,7 @@ class AppLocalizationsId extends AppLocalizations {
String get channelStable => 'Stabil';
@override
String get channelPreview => 'Preview';
String get channelPreview => 'Pratinjau';
@override
String get sectionSearchSource => 'Sumber Pencarian';
@ -984,33 +984,34 @@ class AppLocalizationsId extends AppLocalizations {
String get sectionFileSettings => 'Pengaturan File';
@override
String get sectionLyrics => 'Lyrics';
String get sectionLyrics => 'Lirik';
@override
String get lyricsMode => 'Lyrics Mode';
String get lyricsMode => 'Mode Lirik';
@override
String get lyricsModeDescription =>
'Choose how lyrics are saved with your downloads';
'Pilih cara lirik disimpan bersama unduhan Anda';
@override
String get lyricsModeEmbed => 'Embed in file';
String get lyricsModeEmbed => 'Sematkan dalam file';
@override
String get lyricsModeEmbedSubtitle => 'Lyrics stored inside FLAC metadata';
String get lyricsModeEmbedSubtitle =>
'Lirik tersimpan di dalam metadata FLAC';
@override
String get lyricsModeExternal => 'External .lrc file';
String get lyricsModeExternal => 'File .lrc eksternal';
@override
String get lyricsModeExternalSubtitle =>
'Separate .lrc file for players like Samsung Music';
'File .lrc terpisah untuk pemutar musik seperti Samsung Music';
@override
String get lyricsModeBoth => 'Both';
String get lyricsModeBoth => 'Keduanya';
@override
String get lyricsModeBothSubtitle => 'Embed and save .lrc file';
String get lyricsModeBothSubtitle => 'Sematkan dan simpan file .lrc';
@override
String get sectionColor => 'Warna';
@ -1122,10 +1123,10 @@ class AppLocalizationsId extends AppLocalizations {
String get trackGenre => 'Genre';
@override
String get trackLabel => 'Label';
String get trackLabel => 'Lebel';
@override
String get trackCopyright => 'Copyright';
String get trackCopyright => 'Hak cipta';
@override
String get trackDownloaded => 'Diunduh';
@ -1143,13 +1144,13 @@ class AppLocalizationsId extends AppLocalizations {
String get trackLyricsLoadFailed => 'Gagal memuat lirik';
@override
String get trackEmbedLyrics => 'Embed Lyrics';
String get trackEmbedLyrics => 'Sematkan Lirik';
@override
String get trackLyricsEmbedded => 'Lyrics embedded successfully';
String get trackLyricsEmbedded => 'Lirik berhasil disematkan';
@override
String get trackInstrumental => 'Instrumental track';
String get trackInstrumental => 'Lagu instrumental';
@override
String get trackCopiedToClipboard => 'Disalin ke clipboard';
@ -1245,7 +1246,7 @@ class AppLocalizationsId extends AppLocalizations {
String get storeEmptyNoResults => 'No extensions found';
@override
String get extensionDefaultProvider => 'Default (Deezer/Spotify)';
String get extensionDefaultProvider => 'Bawaan (Deezer/Spotify)';
@override
String get extensionDefaultProviderSubtitle => 'Gunakan pencarian bawaan';
@ -1257,7 +1258,7 @@ class AppLocalizationsId extends AppLocalizations {
String get extensionId => 'ID';
@override
String get extensionError => 'Error';
String get extensionError => 'Terjadi kesalahan';
@override
String get extensionCapabilities => 'Kemampuan';
@ -1434,13 +1435,13 @@ class AppLocalizationsId extends AppLocalizations {
@override
String get youtubeQualityNote =>
'YouTube provides lossy audio only. Not part of lossless fallback.';
'YouTube hanya menyediakan audio terkompresi (lossy). Bukan bagian dari fallback lossless.';
@override
String get youtubeOpusBitrateTitle => 'YouTube Opus Bitrate';
String get youtubeOpusBitrateTitle => 'Bitrate YouTube Opus';
@override
String get youtubeMp3BitrateTitle => 'YouTube MP3 Bitrate';
String get youtubeMp3BitrateTitle => 'Kecepatan Bit MP3 YouTube';
@override
String get downloadAskBeforeDownload => 'Tanya Sebelum Unduh';
@ -1455,18 +1456,19 @@ class AppLocalizationsId extends AppLocalizations {
String get downloadAlbumFolderStructure => 'Struktur Folder Album';
@override
String get downloadUseAlbumArtistForFolders => 'Use Album Artist for folders';
String get downloadUseAlbumArtistForFolders =>
'Gunakan Artis Album untuk folder';
@override
String get downloadUsePrimaryArtistOnly => 'Primary artist only for folders';
String get downloadUsePrimaryArtistOnly => 'Hanya artis utama untuk folder';
@override
String get downloadUsePrimaryArtistOnlyEnabled =>
'Featured artists removed from folder name (e.g. Justin Bieber, Quavo → Justin Bieber)';
'Artis unggulan dihapus dari nama folder (misalnya Justin Bieber, Quavo → Justin Bieber)';
@override
String get downloadUsePrimaryArtistOnlyDisabled =>
'Full artist string used for folder name';
'Nama lengkap artis digunakan untuk nama folder';
@override
String get downloadSelectQuality => 'Pilih Kualitas';
@ -1488,24 +1490,24 @@ class AppLocalizationsId extends AppLocalizations {
'Apakah Anda yakin ingin menghapus semua unduhan?';
@override
String get settingsAutoExportFailed => 'Auto-export failed downloads';
String get settingsAutoExportFailed => 'Unduhan yang gagal diekspor otomatis';
@override
String get settingsAutoExportFailedSubtitle =>
'Save failed downloads to TXT file automatically';
'Simpan unduhan yang gagal ke file TXT secara otomatis';
@override
String get settingsDownloadNetwork => 'Download Network';
String get settingsDownloadNetwork => 'Jaringan Unduhan';
@override
String get settingsDownloadNetworkAny => 'WiFi + Mobile Data';
String get settingsDownloadNetworkAny => 'WiFi + Data Seluler';
@override
String get settingsDownloadNetworkWifiOnly => 'WiFi Only';
String get settingsDownloadNetworkWifiOnly => 'Hanya WiFi';
@override
String get settingsDownloadNetworkSubtitle =>
'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.';
'Pilih jaringan mana yang akan digunakan untuk mengunduh. Jika diatur ke Hanya WiFi, unduhan akan berhenti sementara dan menggunakan data seluler.';
@override
String get albumFolderArtistAlbum => 'Artis / Album';
@ -1533,11 +1535,11 @@ class AppLocalizationsId extends AppLocalizations {
String get albumFolderYearAlbumSubtitle => 'Albums/[2005] Nama Album/';
@override
String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles';
String get albumFolderArtistAlbumSingles => 'Artis / Album + Singel';
@override
String get albumFolderArtistAlbumSinglesSubtitle =>
'Artist/Album/ and Artist/Singles/';
'Artis/Album/ dan Artis/Single/';
@override
String get downloadedAlbumDeleteSelected => 'Hapus yang Dipilih';
@ -1593,21 +1595,21 @@ class AppLocalizationsId extends AppLocalizations {
String get recentTypeSong => 'Lagu';
@override
String get recentTypePlaylist => 'Playlist';
String get recentTypePlaylist => 'Daftar putar';
@override
String get recentEmpty => 'No recent items yet';
String get recentEmpty => 'Belum ada item terbaru';
@override
String get recentShowAllDownloads => 'Show All Downloads';
String get recentShowAllDownloads => 'Tampilkan Semua Unduhan';
@override
String recentPlaylistInfo(String name) {
return 'Playlist: $name';
return 'Daftar Putar: $name';
}
@override
String get discographyDownload => 'Download Discography';
String get discographyDownload => 'Unduh Diskografi';
@override
String get discographyDownloadAll => 'Unduh Semua';
@ -1917,44 +1919,44 @@ class AppLocalizationsId extends AppLocalizations {
}
@override
String get tutorialWelcomeTitle => 'Welcome to SpotiFLAC!';
String get tutorialWelcomeTitle => 'Selamat Datang di SpotiFLAC!';
@override
String get tutorialWelcomeDesc =>
'Let\'s learn how to download your favorite music in lossless quality. This quick tutorial will show you the basics.';
'Mari kita pelajari cara mengunduh musik favorit Anda dalam kualitas lossless. Tutorial singkat ini akan menunjukkan dasar-dasarnya.';
@override
String get tutorialWelcomeTip1 =>
'Download music from Spotify, Deezer, or paste any supported URL';
'Unduh musik dari Spotify, Deezer, atau tempel URL yang didukung';
@override
String get tutorialWelcomeTip2 =>
'Get FLAC quality audio from Tidal, Qobuz, or Amazon Music';
'Dapatkan audio berkualitas FLAC dari Tidal, Qobuz, atau Deezer';
@override
String get tutorialWelcomeTip3 =>
'Automatic metadata, cover art, and lyrics embedding';
'Penyematan metadata, sampul album, dan lirik secara otomatis';
@override
String get tutorialSearchTitle => 'Finding Music';
String get tutorialSearchTitle => 'Menemukan Musik';
@override
String get tutorialSearchDesc =>
'There are two easy ways to find music you want to download.';
'Ada dua cara mudah untuk menemukan musik yang ingin Anda unduh.';
@override
String get tutorialDownloadTitle => 'Downloading Music';
String get tutorialDownloadTitle => 'Mengunduh Musik';
@override
String get tutorialDownloadDesc =>
'Downloading music is simple and fast. Here\'s how it works.';
'Mengunduh musik itu mudah dan cepat. Begini cara kerjanya.';
@override
String get tutorialLibraryTitle => 'Your Library';
String get tutorialLibraryTitle => 'Perpustakaan Anda';
@override
String get tutorialLibraryDesc =>
'All your downloaded music is organized in the Library tab.';
'Semua musik yang Anda unduh tersusun rapi di tab Perpustakaan.';
@override
String get tutorialLibraryTip1 =>

View file

@ -352,7 +352,7 @@ class AppLocalizationsJa extends AppLocalizations {
@override
String get aboutAppDescription =>
'Tidal、Qobuz、Amazon Music から Spotify のトラックをロスレス品質でダウンロードします。';
'Download Spotify tracks in lossless quality from Tidal and Qobuz.';
@override
String get artistAlbums => 'アルバム';
@ -761,7 +761,7 @@ class AppLocalizationsJa extends AppLocalizations {
String get filenameFormat => 'ファイル名の形式';
@override
String get filenameShowAdvancedTags => 'Show advanced tags';
String get filenameShowAdvancedTags => '高度なタグを表示';
@override
String get filenameShowAdvancedTagsDescription =>
@ -1138,7 +1138,7 @@ class AppLocalizationsJa extends AppLocalizations {
String get trackLyricsEmbedded => 'Lyrics embedded successfully';
@override
String get trackInstrumental => 'Instrumental track';
String get trackInstrumental => 'インストゥルメンタルのトラック';
@override
String get trackCopiedToClipboard => 'クリップボードにコピーしました';
@ -1909,7 +1909,7 @@ class AppLocalizationsJa extends AppLocalizations {
@override
String get tutorialWelcomeTip2 =>
'Get FLAC quality audio from Tidal, Qobuz, or Amazon Music';
'Get FLAC quality audio from Tidal, Qobuz, or Deezer';
@override
String get tutorialWelcomeTip3 =>
@ -2261,7 +2261,7 @@ class AppLocalizationsJa extends AppLocalizations {
String get trackConvertFailed => '変換に失敗しました';
@override
String get cueSplitTitle => 'Split CUE Sheet';
String get cueSplitTitle => '分割 CUE シート';
@override
String get cueSplitSubtitle => 'Split CUE+FLAC into individual tracks';
@ -2411,7 +2411,7 @@ class AppLocalizationsJa extends AppLocalizations {
String get collectionRemoveFromPlaylist => 'Remove from playlist';
@override
String get collectionRemoveFromFolder => 'Remove from folder';
String get collectionRemoveFromFolder => 'フォルダから削除';
@override
String collectionRemoved(String trackName) {
@ -2445,26 +2445,26 @@ class AppLocalizationsJa extends AppLocalizations {
String get trackOptionRemoveFromLoved => 'Remove from Loved';
@override
String get trackOptionAddToWishlist => 'Add to Wishlist';
String get trackOptionAddToWishlist => 'ウィッシュリストに追加';
@override
String get trackOptionRemoveFromWishlist => 'Remove from Wishlist';
String get trackOptionRemoveFromWishlist => 'ウィッシュから削除';
@override
String get collectionPlaylistChangeCover => 'Change cover image';
String get collectionPlaylistChangeCover => 'カバー画像を変更';
@override
String get collectionPlaylistRemoveCover => 'Remove cover image';
String get collectionPlaylistRemoveCover => 'カバー画像を削除';
@override
String selectionShareCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
other: '個のトラック',
one: '個のトラック',
);
return 'Share $count $_temp0';
return '$count $_temp0を共有';
}
@override
@ -2485,7 +2485,7 @@ class AppLocalizationsJa extends AppLocalizations {
String get selectionConvertNoConvertible => 'No convertible tracks selected';
@override
String get selectionBatchConvertConfirmTitle => 'Batch Convert';
String get selectionBatchConvertConfirmTitle => '一括変換';
@override
String selectionBatchConvertConfirmMessage(

View file

@ -344,7 +344,7 @@ class AppLocalizationsKo extends AppLocalizations {
@override
String get aboutAppDescription =>
'Tidal, Qobuz, Amazon Music에서 Spotify 트랙을 무손실 음질로 다운로드하세요.';
'Download Spotify tracks in lossless quality from Tidal and Qobuz.';
@override
String get artistAlbums => '앨범';
@ -1902,7 +1902,7 @@ class AppLocalizationsKo extends AppLocalizations {
@override
String get tutorialWelcomeTip2 =>
'Get FLAC quality audio from Tidal, Qobuz, or Amazon Music';
'Get FLAC quality audio from Tidal, Qobuz, or Deezer';
@override
String get tutorialWelcomeTip3 =>

View file

@ -158,16 +158,16 @@ class AppLocalizationsNl extends AppLocalizations {
String get optionsConcurrentDownloads => 'Concurrent Downloads';
@override
String get optionsConcurrentSequential => 'Sequential (1 at a time)';
String get optionsConcurrentSequential => 'Sequentiële (1 per keer)';
@override
String optionsConcurrentParallel(int count) {
return '$count parallel downloads';
return '';
}
@override
String get optionsConcurrentWarning =>
'Parallel downloads may trigger rate limiting';
'Parallel downloaden kan leiden tot rate-limiting';
@override
String get optionsExtensionStore => 'Extension Store';
@ -271,7 +271,7 @@ class AppLocalizationsNl extends AppLocalizations {
String get aboutContributors => 'Contributors';
@override
String get aboutMobileDeveloper => 'Mobile version developer';
String get aboutMobileDeveloper => '';
@override
String get aboutOriginalCreator => 'Creator of the original SpotiFLAC';
@ -356,7 +356,7 @@ class AppLocalizationsNl extends AppLocalizations {
@override
String get aboutAppDescription =>
'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.';
'Download Spotify tracks in lossless quality from Tidal and Qobuz.';
@override
String get artistAlbums => 'Albums';
@ -1922,7 +1922,7 @@ class AppLocalizationsNl extends AppLocalizations {
@override
String get tutorialWelcomeTip2 =>
'Get FLAC quality audio from Tidal, Qobuz, or Amazon Music';
'Get FLAC quality audio from Tidal, Qobuz, or Deezer';
@override
String get tutorialWelcomeTip3 =>

View file

@ -3326,7 +3326,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
@override
String get aboutAppDescription =>
'Baixe faixas do Spotify em qualidade sem perdas do Tidal e Qobuz.';
'Download Spotify tracks in lossless quality from Tidal and Qobuz.';
@override
String get artistAlbums => 'Álbuns';
@ -3660,6 +3660,17 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
@override
String get errorNoTracksFound => 'Nenhuma faixa encontrada';
@override
String get errorUrlNotRecognized => 'Link not recognized';
@override
String get errorUrlNotRecognizedMessage =>
'This link is not supported. Make sure the URL is correct and a compatible extension is installed.';
@override
String get errorUrlFetchFailed =>
'Failed to load content from this link. Please try again.';
@override
String errorMissingExtensionSource(String item) {
return 'Não é possível carregar $item: faltando a fonte da extensão';
@ -3723,9 +3734,23 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
@override
String get filenameFormat => 'Formato do Nome do Arquivo';
@override
String get filenameShowAdvancedTags => 'Show advanced tags';
@override
String get filenameShowAdvancedTagsDescription =>
'Enable formatted tags for track padding and date patterns';
@override
String get folderOrganizationNone => 'Nenhuma organização';
@override
String get folderOrganizationByPlaylist => 'By Playlist';
@override
String get folderOrganizationByPlaylistSubtitle =>
'Separate folder for each playlist';
@override
String get folderOrganizationByArtist => 'Por Artista';
@ -4310,6 +4335,12 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
String get youtubeQualityNote =>
'YouTube provides lossy audio only. Not part of lossless fallback.';
@override
String get youtubeOpusBitrateTitle => 'YouTube Opus Bitrate';
@override
String get youtubeMp3BitrateTitle => 'YouTube MP3 Bitrate';
@override
String get downloadAskBeforeDownload => 'Perguntar qualidade antes de baixar';
@ -4642,6 +4673,17 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
String get libraryAboutDescription =>
'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
@override
String libraryTracksUnit(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return '$_temp0';
}
@override
String libraryLastScanned(String time) {
return 'Last scanned: $time';
@ -4768,7 +4810,7 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
@override
String get tutorialWelcomeTip2 =>
'Obtenha áudio em qualidade FLAC do Tidal, Qobuz ou Deezer';
'Get FLAC quality audio from Tidal, Qobuz, or Deezer';
@override
String get tutorialWelcomeTip3 =>
@ -5085,6 +5127,258 @@ class AppLocalizationsPtPt extends AppLocalizationsPt {
@override
String get trackConvertFailed => 'Conversion failed';
@override
String get cueSplitTitle => 'Split CUE Sheet';
@override
String get cueSplitSubtitle => 'Split CUE+FLAC into individual tracks';
@override
String cueSplitAlbum(String album) {
return 'Album: $album';
}
@override
String cueSplitArtist(String artist) {
return 'Artist: $artist';
}
@override
String cueSplitTrackCount(int count) {
return '$count tracks';
}
@override
String get cueSplitConfirmTitle => 'Split CUE Album';
@override
String cueSplitConfirmMessage(String album, int count) {
return 'Split \"$album\" into $count individual FLAC files?\n\nFiles will be saved to the same directory.';
}
@override
String cueSplitSplitting(int current, int total) {
return 'Splitting CUE sheet... ($current/$total)';
}
@override
String cueSplitSuccess(int count) {
return 'Split into $count tracks successfully';
}
@override
String get cueSplitFailed => 'CUE split failed';
@override
String get cueSplitNoAudioFile => 'Audio file not found for this CUE sheet';
@override
String get cueSplitButton => 'Split into Tracks';
@override
String get actionCreate => 'Create';
@override
String get collectionFoldersTitle => 'My folders';
@override
String get collectionWishlist => 'Wishlist';
@override
String get collectionLoved => 'Loved';
@override
String get collectionPlaylists => 'Playlists';
@override
String get collectionPlaylist => 'Playlist';
@override
String get collectionAddToPlaylist => 'Add to playlist';
@override
String get collectionCreatePlaylist => 'Create playlist';
@override
String get collectionNoPlaylistsYet => 'No playlists yet';
@override
String get collectionNoPlaylistsSubtitle =>
'Create a playlist to start categorizing tracks';
@override
String collectionPlaylistTracks(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count tracks',
one: '1 track',
);
return '$_temp0';
}
@override
String collectionAddedToPlaylist(String playlistName) {
return 'Added to \"$playlistName\"';
}
@override
String collectionAlreadyInPlaylist(String playlistName) {
return 'Already in \"$playlistName\"';
}
@override
String get collectionPlaylistCreated => 'Playlist created';
@override
String get collectionPlaylistNameHint => 'Playlist name';
@override
String get collectionPlaylistNameRequired => 'Playlist name is required';
@override
String get collectionRenamePlaylist => 'Rename playlist';
@override
String get collectionDeletePlaylist => 'Delete playlist';
@override
String collectionDeletePlaylistMessage(String playlistName) {
return 'Delete \"$playlistName\" and all tracks inside it?';
}
@override
String get collectionPlaylistDeleted => 'Playlist deleted';
@override
String get collectionPlaylistRenamed => 'Playlist renamed';
@override
String get collectionWishlistEmptyTitle => 'Wishlist is empty';
@override
String get collectionWishlistEmptySubtitle =>
'Tap + on tracks to save what you want to download later';
@override
String get collectionLovedEmptyTitle => 'Loved folder is empty';
@override
String get collectionLovedEmptySubtitle =>
'Tap love on tracks to keep your favorites';
@override
String get collectionPlaylistEmptyTitle => 'Playlist is empty';
@override
String get collectionPlaylistEmptySubtitle =>
'Long-press + on any track to add it here';
@override
String get collectionRemoveFromPlaylist => 'Remove from playlist';
@override
String get collectionRemoveFromFolder => 'Remove from folder';
@override
String collectionRemoved(String trackName) {
return '\"$trackName\" removed';
}
@override
String collectionAddedToLoved(String trackName) {
return '\"$trackName\" added to Loved';
}
@override
String collectionRemovedFromLoved(String trackName) {
return '\"$trackName\" removed from Loved';
}
@override
String collectionAddedToWishlist(String trackName) {
return '\"$trackName\" added to Wishlist';
}
@override
String collectionRemovedFromWishlist(String trackName) {
return '\"$trackName\" removed from Wishlist';
}
@override
String get trackOptionAddToLoved => 'Add to Loved';
@override
String get trackOptionRemoveFromLoved => 'Remove from Loved';
@override
String get trackOptionAddToWishlist => 'Add to Wishlist';
@override
String get trackOptionRemoveFromWishlist => 'Remove from Wishlist';
@override
String get collectionPlaylistChangeCover => 'Change cover image';
@override
String get collectionPlaylistRemoveCover => 'Remove cover image';
@override
String selectionShareCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Share $count $_temp0';
}
@override
String get selectionShareNoFiles => 'No shareable files found';
@override
String selectionConvertCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Convert $count $_temp0';
}
@override
String get selectionConvertNoConvertible => 'No convertible tracks selected';
@override
String get selectionBatchConvertConfirmTitle => 'Batch Convert';
@override
String selectionBatchConvertConfirmMessage(
int count,
String format,
String bitrate,
) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'tracks',
one: 'track',
);
return 'Convert $count $_temp0 to $format at $bitrate?\n\nOriginal files will be deleted after conversion.';
}
@override
String selectionBatchConvertProgress(int current, int total) {
return 'Converting $current of $total...';
}
@override
String selectionBatchConvertSuccess(int success, int total, String format) {
return 'Converted $success of $total tracks to $format';
}
@override
String downloadedAlbumDownloadedCount(int count) {
return '$count baixado(s)';

View file

@ -363,7 +363,7 @@ class AppLocalizationsRu extends AppLocalizations {
@override
String get aboutAppDescription =>
'Скачайте треки Spotify в Lossless качестве из Tidal, Qobuz и Amazon Music.';
'Скачивайте треки Spotify в lossless качестве с Tidal и Qobuz.';
@override
String get artistAlbums => 'Альбомы';
@ -706,15 +706,15 @@ class AppLocalizationsRu extends AppLocalizations {
String get errorNoTracksFound => 'Треки не найдены';
@override
String get errorUrlNotRecognized => 'Link not recognized';
String get errorUrlNotRecognized => 'Ссылка не распознана';
@override
String get errorUrlNotRecognizedMessage =>
'This link is not supported. Make sure the URL is correct and a compatible extension is installed.';
'Эта ссылка не поддерживается. Убедитесь, что URL-адрес указан правильно и установлено совместимое расширение.';
@override
String get errorUrlFetchFailed =>
'Failed to load content from this link. Please try again.';
'Не удалось загрузить контент по этой ссылке. Пожалуйста, попробуйте еще раз.';
@override
String errorMissingExtensionSource(String item) {
@ -790,11 +790,11 @@ class AppLocalizationsRu extends AppLocalizations {
String get folderOrganizationNone => 'Без организации';
@override
String get folderOrganizationByPlaylist => 'By Playlist';
String get folderOrganizationByPlaylist => 'По плейлисту';
@override
String get folderOrganizationByPlaylistSubtitle =>
'Separate folder for each playlist';
'Отдельная папка для каждого плейлиста';
@override
String get folderOrganizationByArtist => 'По исполнителю';
@ -1482,7 +1482,7 @@ class AppLocalizationsRu extends AppLocalizations {
@override
String get downloadUsePrimaryArtistOnlyEnabled =>
'Featured artists removed from folder name (e.g. Justin Bieber, Quavo → Justin Bieber)';
'Список исполнителей, чьи работы были удалены из названия папки (например, Джастин Бибер, Quavo → Джастин Бибер)';
@override
String get downloadUsePrimaryArtistOnlyDisabled =>
@ -1972,7 +1972,7 @@ class AppLocalizationsRu extends AppLocalizations {
@override
String get tutorialWelcomeTip2 =>
'Скачайте FLAC с Tidal, Qobuz или Amazon Music';
'Получите аудио в качестве FLAC от Tidal, Qobuz или Deezer';
@override
String get tutorialWelcomeTip3 =>
@ -2068,7 +2068,7 @@ class AppLocalizationsRu extends AppLocalizations {
@override
String cleanupOrphanedDownloadsResult(int count) {
return 'Removed $count orphaned entries from history';
return 'Удалено $count утерянных записей из истории';
}
@override
@ -2093,7 +2093,7 @@ class AppLocalizationsRu extends AppLocalizations {
String get cacheSectionStorage => 'Кэшированные данные';
@override
String get cacheSectionMaintenance => 'Maintenance';
String get cacheSectionMaintenance => 'Обслуживание';
@override
String get cacheAppDirectory => 'Папка кэша приложения';
@ -2139,7 +2139,7 @@ class AppLocalizationsRu extends AppLocalizations {
@override
String get cacheCleanupUnusedDesc =>
'Remove orphaned download history and library entries for missing files.';
'Удалить записи из истории загрузок и библиотеки, которые остались без файлов.';
@override
String get cacheNoData => 'Нет кэшированных данных';
@ -2187,7 +2187,7 @@ class AppLocalizationsRu extends AppLocalizations {
@override
String get cacheCleanupUnusedSubtitle =>
'Remove orphaned download history and missing library entries';
'Удалить историю загрузок, оставшихся без просмотра, и отсутствующие записи в библиотеке';
@override
String cacheCleanupResult(int downloadCount, int libraryCount) {
@ -2327,52 +2327,52 @@ class AppLocalizationsRu extends AppLocalizations {
String get trackConvertFailed => 'Ошибка конвертации';
@override
String get cueSplitTitle => 'Split CUE Sheet';
String get cueSplitTitle => 'Разделить CUE Sheet';
@override
String get cueSplitSubtitle => 'Split CUE+FLAC into individual tracks';
String get cueSplitSubtitle => 'Разделить файл CUE+FLAC на отдельные треки';
@override
String cueSplitAlbum(String album) {
return 'Album: $album';
return 'Альбом: $album';
}
@override
String cueSplitArtist(String artist) {
return 'Artist: $artist';
return 'Артист: $artist';
}
@override
String cueSplitTrackCount(int count) {
return '$count tracks';
return '$count треков';
}
@override
String get cueSplitConfirmTitle => 'Split CUE Album';
String get cueSplitConfirmTitle => 'Разделенный CUE-альбом';
@override
String cueSplitConfirmMessage(String album, int count) {
return 'Split \"$album\" into $count individual FLAC files?\n\nFiles will be saved to the same directory.';
return 'Разбить \"$album\" на $count отдельных FLAC-файлов?';
}
@override
String cueSplitSplitting(int current, int total) {
return 'Splitting CUE sheet... ($current/$total)';
return 'Разделение CUE sheet... ($current/$total)';
}
@override
String cueSplitSuccess(int count) {
return 'Split into $count tracks successfully';
return 'Успешно разделено на $count треков';
}
@override
String get cueSplitFailed => 'CUE split failed';
String get cueSplitFailed => 'Разделение CUE не удалось';
@override
String get cueSplitNoAudioFile => 'Audio file not found for this CUE sheet';
String get cueSplitNoAudioFile => 'Аудиофайл для этого CUE sheet не найден';
@override
String get cueSplitButton => 'Split into Tracks';
String get cueSplitButton => 'Разделить на Треки';
@override
String get actionCreate => 'Создать';
@ -2538,7 +2538,8 @@ class AppLocalizationsRu extends AppLocalizations {
}
@override
String get selectionShareNoFiles => 'No shareable files found';
String get selectionShareNoFiles =>
'Файлы, доступные для совместного доступа, не найдены';
@override
String selectionConvertCount(int count) {
@ -2571,7 +2572,7 @@ class AppLocalizationsRu extends AppLocalizations {
other: 'tracks',
one: 'track',
);
return 'Convert $count $_temp0 to $format at $bitrate?\n\nOriginal files will be deleted after conversion.';
return 'Преобразовать $count $_temp0 в $format с $bitrate?';
}
@override

View file

@ -361,7 +361,7 @@ class AppLocalizationsTr extends AppLocalizations {
@override
String get aboutAppDescription =>
'Spotify şarkılarını Tidal ve Qobuz\'den yüksek kalitede indir.';
'Download Spotify tracks in lossless quality from Tidal and Qobuz.';
@override
String get artistAlbums => 'Albümler';
@ -664,11 +664,11 @@ class AppLocalizationsTr extends AppLocalizations {
String get snackbarSelectExtFile => 'Lütfen .spotiflac-ext dosyasını seçin';
@override
String get snackbarProviderPrioritySaved => 'Sağlayıcı önceliği kaydedildi';
String get snackbarProviderPrioritySaved => 'Provider priority saved';
@override
String get snackbarMetadataProviderSaved =>
'Metadata sağlayıcı önceliği kaydedildi';
'Metadata provider priority saved';
@override
String snackbarExtensionInstalled(String extensionName) {
@ -869,21 +869,21 @@ class AppLocalizationsTr extends AppLocalizations {
String get providerExtension => 'Eklenti';
@override
String get metadataProviderPriorityTitle => 'Metadata Önceliği';
String get metadataProviderPriorityTitle => 'Metadata Priority';
@override
String get metadataProviderPriorityDescription =>
'Metadata sağlayıcılarını sıralamak için kaydır. Uygulama şarkı ararken ve metadata alırken sağlayıcıları yukarıdan aşağıya doğru deneyecektir.';
'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.';
@override
String get metadataProviderPriorityInfo =>
'Deezer\'ın istek sınırı yok ve birincil olarak önerilir. Spotify çok fazla istekten sonra sınırlama yapabilir.';
'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.';
@override
String get metadataNoRateLimits => 'İstek sınırı yok';
String get metadataNoRateLimits => 'No rate limits';
@override
String get metadataMayRateLimit => 'Sınırlama yapabilir';
String get metadataMayRateLimit => 'May rate limit';
@override
String get logTitle => 'Kayıtlar';
@ -914,14 +914,13 @@ class AppLocalizationsTr extends AppLocalizations {
'Tüm kayıtları temizlemek istediğinize emin misiniz?';
@override
String get logFilterBySeverity => 'Kayıtları önem derecesine göre filtrele';
String get logFilterBySeverity => 'Filter logs by severity';
@override
String get logNoLogsYet => 'Henüz kayıt yok';
String get logNoLogsYet => 'No logs yet';
@override
String get logNoLogsYetSubtitle =>
'Uygulamayı kullandıkça kayıtlar burada görünecek';
String get logNoLogsYetSubtitle => 'Logs will appear here as you use the app';
@override
String logEntriesFiltered(int count) {
@ -934,128 +933,125 @@ class AppLocalizationsTr extends AppLocalizations {
}
@override
String get credentialsTitle => 'Spotify Kimlik Bilgileri';
String get credentialsTitle => 'Spotify Credentials';
@override
String get credentialsDescription =>
'Kendi Spotify uygulama kotanızı kullanmak için Client ID ve Secret girin.';
'Enter your Client ID and Secret to use your own Spotify application quota.';
@override
String get credentialsClientId => 'Client ID';
@override
String get credentialsClientIdHint => 'Client ID yapıştır';
String get credentialsClientIdHint => 'Paste Client ID';
@override
String get credentialsClientSecret => 'Client Secret';
@override
String get credentialsClientSecretHint => 'Client Secret yapıştır';
String get credentialsClientSecretHint => 'Paste Client Secret';
@override
String get channelStable => 'Kararlı';
String get channelStable => 'Stable';
@override
String get channelPreview => 'Önizleme';
String get channelPreview => 'Preview';
@override
String get sectionSearchSource => 'Arama Kaynağı';
String get sectionSearchSource => 'Search Source';
@override
String get sectionDownload => 'İndirme';
String get sectionDownload => 'Download';
@override
String get sectionPerformance => 'Performans';
String get sectionPerformance => 'Performance';
@override
String get sectionApp => 'Uygulama';
String get sectionApp => 'App';
@override
String get sectionData => 'Veri';
String get sectionData => 'Data';
@override
String get sectionDebug => 'Hata Ayıklama';
String get sectionDebug => 'Debug';
@override
String get sectionService => 'Hizmet';
String get sectionService => 'Service';
@override
String get sectionAudioQuality => 'Ses Kalitesi';
String get sectionAudioQuality => 'Audio Quality';
@override
String get sectionFileSettings => 'Dosya Ayarları';
String get sectionFileSettings => 'File Settings';
@override
String get sectionLyrics => 'Şarkı Sözleri';
String get sectionLyrics => 'Lyrics';
@override
String get lyricsMode => 'Şarkı Sözü Modu';
String get lyricsMode => 'Lyrics Mode';
@override
String get lyricsModeDescription =>
'Şarkı sözlerinin indirmelerle nasıl kaydedileceğini seçin';
'Choose how lyrics are saved with your downloads';
@override
String get lyricsModeEmbed => 'Dosyaya göm';
String get lyricsModeEmbed => 'Embed in file';
@override
String get lyricsModeEmbedSubtitle =>
'Şarkı sözleri FLAC metadata içinde saklanır';
String get lyricsModeEmbedSubtitle => 'Lyrics stored inside FLAC metadata';
@override
String get lyricsModeExternal => 'Harici .lrc dosyası';
String get lyricsModeExternal => 'External .lrc file';
@override
String get lyricsModeExternalSubtitle =>
'Samsung Music gibi oynatıcılar için ayrı .lrc dosyası';
'Separate .lrc file for players like Samsung Music';
@override
String get lyricsModeBoth => 'Her ikisi';
String get lyricsModeBoth => 'Both';
@override
String get lyricsModeBothSubtitle => 'Göm ve .lrc dosyası kaydet';
String get lyricsModeBothSubtitle => 'Embed and save .lrc file';
@override
String get sectionColor => 'Renk';
String get sectionColor => 'Color';
@override
String get sectionTheme => 'Tema';
String get sectionTheme => 'Theme';
@override
String get sectionLayout => 'Düzen';
String get sectionLayout => 'Layout';
@override
String get sectionLanguage => 'Dil';
String get sectionLanguage => 'Language';
@override
String get appearanceLanguage => 'Uygulama Dili';
String get appearanceLanguage => 'App Language';
@override
String get settingsAppearanceSubtitle => 'Tema, renkler, görünüm';
String get settingsAppearanceSubtitle => 'Theme, colors, display';
@override
String get settingsDownloadSubtitle => 'Hizmet, kalite, dosya adı formatı';
String get settingsDownloadSubtitle => 'Service, quality, filename format';
@override
String get settingsOptionsSubtitle =>
'Yedek, şarkı sözleri, kapak resmi, güncellemeler';
String get settingsOptionsSubtitle => 'Fallback, lyrics, cover art, updates';
@override
String get settingsExtensionsSubtitle => 'İndirme sağlayıcılarını yönet';
String get settingsExtensionsSubtitle => 'Manage download providers';
@override
String get settingsLogsSubtitle =>
'Hata ayıklama için uygulama kayıtlarını görüntüle';
String get settingsLogsSubtitle => 'View app logs for debugging';
@override
String get loadingSharedLink => 'Paylaşılan bağlantı yükleniyor...';
String get loadingSharedLink => 'Loading shared link...';
@override
String get pressBackAgainToExit => 'Çıkmak için tekrar geri basın';
String get pressBackAgainToExit => 'Press back again to exit';
@override
String downloadAllCount(int count) {
return 'Tümünü İndir ($count)';
return 'Download All ($count)';
}
@override
@ -1063,151 +1059,150 @@ class AppLocalizationsTr extends AppLocalizations {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count şarkı',
one: '1 şarkı',
other: '$count tracks',
one: '1 track',
);
return '$_temp0';
}
@override
String get trackCopyFilePath => 'Dosya yolunu kopyala';
String get trackCopyFilePath => 'Copy file path';
@override
String get trackRemoveFromDevice => 'Cihazdan kaldır';
String get trackRemoveFromDevice => 'Remove from device';
@override
String get trackLoadLyrics => 'Şarkı Sözlerini Yükle';
String get trackLoadLyrics => 'Load Lyrics';
@override
String get trackMetadata => 'Metadata';
@override
String get trackFileInfo => 'Dosya Bilgisi';
String get trackFileInfo => 'File Info';
@override
String get trackLyrics => 'Şarkı Sözleri';
String get trackLyrics => 'Lyrics';
@override
String get trackFileNotFound => 'Dosya bulunamadı';
String get trackFileNotFound => 'File not found';
@override
String get trackOpenInDeezer => 'Deezer\'da aç';
String get trackOpenInDeezer => 'Open in Deezer';
@override
String get trackOpenInSpotify => 'Spotify\'da aç';
String get trackOpenInSpotify => 'Open in Spotify';
@override
String get trackTrackName => 'Şarkı adı';
String get trackTrackName => 'Track name';
@override
String get trackArtist => 'Sanatçı';
String get trackArtist => 'Artist';
@override
String get trackAlbumArtist => 'Albüm sanatçısı';
String get trackAlbumArtist => 'Album artist';
@override
String get trackAlbum => 'Albüm';
String get trackAlbum => 'Album';
@override
String get trackTrackNumber => 'Şarkı numarası';
String get trackTrackNumber => 'Track number';
@override
String get trackDiscNumber => 'Disk numarası';
String get trackDiscNumber => 'Disc number';
@override
String get trackDuration => 'Süre';
String get trackDuration => 'Duration';
@override
String get trackAudioQuality => 'Ses kalitesi';
String get trackAudioQuality => 'Audio quality';
@override
String get trackReleaseDate => 'Yayın tarihi';
String get trackReleaseDate => 'Release date';
@override
String get trackGenre => 'Tür';
String get trackGenre => 'Genre';
@override
String get trackLabel => 'Plak şirketi';
String get trackLabel => 'Label';
@override
String get trackCopyright => 'Telif hakkı';
String get trackCopyright => 'Copyright';
@override
String get trackDownloaded => 'İndirildi';
String get trackDownloaded => 'Downloaded';
@override
String get trackCopyLyrics => 'Şarkı sözlerini kopyala';
String get trackCopyLyrics => 'Copy lyrics';
@override
String get trackLyricsNotAvailable => 'Bu şarkı için şarkı sözü mevcut değil';
String get trackLyricsNotAvailable => 'Lyrics not available for this track';
@override
String get trackLyricsTimeout =>
'İstek zaman aşımına uğradı. Daha sonra tekrar deneyin.';
String get trackLyricsTimeout => 'Request timed out. Try again later.';
@override
String get trackLyricsLoadFailed => 'Şarkı sözleri yüklenemedi';
String get trackLyricsLoadFailed => 'Failed to load lyrics';
@override
String get trackEmbedLyrics => 'Şarkı Sözlerini Göm';
String get trackEmbedLyrics => 'Embed Lyrics';
@override
String get trackLyricsEmbedded => 'Şarkı sözleri başarıyla gömüldü';
String get trackLyricsEmbedded => 'Lyrics embedded successfully';
@override
String get trackInstrumental => 'Enstrümantal şarkı';
String get trackInstrumental => 'Instrumental track';
@override
String get trackCopiedToClipboard => 'Panoya kopyalandı';
String get trackCopiedToClipboard => 'Copied to clipboard';
@override
String get trackDeleteConfirmTitle => 'Cihazdan kaldırılsın mı?';
String get trackDeleteConfirmTitle => 'Remove from device?';
@override
String get trackDeleteConfirmMessage =>
'Bu işlem indirilen dosyayı kalıcı olarak silecek ve geçmişten kaldıracaktır.';
'This will permanently delete the downloaded file and remove it from your history.';
@override
String get dateToday => 'Bugün';
String get dateToday => 'Today';
@override
String get dateYesterday => 'Dün';
String get dateYesterday => 'Yesterday';
@override
String dateDaysAgo(int count) {
return '$count gün önce';
return '$count days ago';
}
@override
String dateWeeksAgo(int count) {
return '$count hafta önce';
return '$count weeks ago';
}
@override
String dateMonthsAgo(int count) {
return '$count ay önce';
return '$count months ago';
}
@override
String get storeFilterAll => 'Tümü';
String get storeFilterAll => 'All';
@override
String get storeFilterMetadata => 'Metadata';
@override
String get storeFilterDownload => 'İndirme';
String get storeFilterDownload => 'Download';
@override
String get storeFilterUtility => 'Araç';
String get storeFilterUtility => 'Utility';
@override
String get storeFilterLyrics => 'Şarkı Sözleri';
String get storeFilterLyrics => 'Lyrics';
@override
String get storeFilterIntegration => 'Entegrasyon';
String get storeFilterIntegration => 'Integration';
@override
String get storeClearFilters => 'Filtreleri temizle';
String get storeClearFilters => 'Clear filters';
@override
String get storeAddRepoTitle => 'Add Extension Repository';
@ -1251,137 +1246,136 @@ class AppLocalizationsTr extends AppLocalizations {
String get storeEmptyNoResults => 'No extensions found';
@override
String get extensionDefaultProvider => 'Varsayılan (Deezer/Spotify)';
String get extensionDefaultProvider => 'Default (Deezer/Spotify)';
@override
String get extensionDefaultProviderSubtitle => 'Dahili aramayı kullan';
String get extensionDefaultProviderSubtitle => 'Use built-in search';
@override
String get extensionAuthor => 'Yazar';
String get extensionAuthor => 'Author';
@override
String get extensionId => 'ID';
@override
String get extensionError => 'Hata';
String get extensionError => 'Error';
@override
String get extensionCapabilities => 'Yetenekler';
String get extensionCapabilities => 'Capabilities';
@override
String get extensionMetadataProvider => 'Metadata Sağlayıcı';
String get extensionMetadataProvider => 'Metadata Provider';
@override
String get extensionDownloadProvider => 'İndirme Sağlayıcı';
String get extensionDownloadProvider => 'Download Provider';
@override
String get extensionLyricsProvider => 'Şarkı Sözü Sağlayıcı';
String get extensionLyricsProvider => 'Lyrics Provider';
@override
String get extensionUrlHandler => 'URL İşleyici';
String get extensionUrlHandler => 'URL Handler';
@override
String get extensionQualityOptions => 'Kalite Seçenekleri';
String get extensionQualityOptions => 'Quality Options';
@override
String get extensionPostProcessingHooks => 'İşlem Sonrası Kancalar';
String get extensionPostProcessingHooks => 'Post-Processing Hooks';
@override
String get extensionPermissions => 'İzinler';
String get extensionPermissions => 'Permissions';
@override
String get extensionSettings => 'Ayarlar';
String get extensionSettings => 'Settings';
@override
String get extensionRemoveButton => 'Eklentiyi Kaldır';
String get extensionRemoveButton => 'Remove Extension';
@override
String get extensionUpdated => 'Güncellendi';
String get extensionUpdated => 'Updated';
@override
String get extensionMinAppVersion => 'Min Uygulama Sürümü';
String get extensionMinAppVersion => 'Min App Version';
@override
String get extensionCustomTrackMatching => 'Özel Şarkı Eşleştirme';
String get extensionCustomTrackMatching => 'Custom Track Matching';
@override
String get extensionPostProcessing => 'İşlem Sonrası';
String get extensionPostProcessing => 'Post-Processing';
@override
String extensionHooksAvailable(int count) {
return '$count kanca mevcut';
return '$count hook(s) available';
}
@override
String extensionPatternsCount(int count) {
return '$count desen';
return '$count pattern(s)';
}
@override
String extensionStrategy(String strategy) {
return 'Strateji: $strategy';
return 'Strategy: $strategy';
}
@override
String get extensionsProviderPrioritySection => 'Sağlayıcı Önceliği';
String get extensionsProviderPrioritySection => 'Provider Priority';
@override
String get extensionsInstalledSection => 'Yüklü Eklentiler';
String get extensionsInstalledSection => 'Installed Extensions';
@override
String get extensionsNoExtensions => 'Yüklü eklenti yok';
String get extensionsNoExtensions => 'No extensions installed';
@override
String get extensionsNoExtensionsSubtitle =>
'Yeni sağlayıcılar eklemek için .spotiflac-ext dosyalarını yükleyin';
'Install .spotiflac-ext files to add new providers';
@override
String get extensionsInstallButton => 'Eklenti Yükle';
String get extensionsInstallButton => 'Install Extension';
@override
String get extensionsInfoTip =>
'Eklentiler yeni metadata ve indirme sağlayıcıları ekleyebilir. Sadece güvenilir kaynaklardan eklenti yükleyin.';
'Extensions can add new metadata and download providers. Only install extensions from trusted sources.';
@override
String get extensionsInstalledSuccess => 'Eklenti başarıyla yüklendi';
String get extensionsInstalledSuccess => 'Extension installed successfully';
@override
String get extensionsDownloadPriority => 'İndirme Önceliği';
String get extensionsDownloadPriority => 'Download Priority';
@override
String get extensionsDownloadPrioritySubtitle =>
'İndirme hizmeti sırasını ayarla';
String get extensionsDownloadPrioritySubtitle => 'Set download service order';
@override
String get extensionsNoDownloadProvider =>
'İndirme sağlayıcısı olan eklenti yok';
'No extensions with download provider';
@override
String get extensionsMetadataPriority => 'Metadata Önceliği';
String get extensionsMetadataPriority => 'Metadata Priority';
@override
String get extensionsMetadataPrioritySubtitle =>
'Arama ve metadata kaynağı sırasını ayarla';
'Set search & metadata source order';
@override
String get extensionsNoMetadataProvider =>
'Metadata sağlayıcısı olan eklenti yok';
'No extensions with metadata provider';
@override
String get extensionsSearchProvider => 'Arama Sağlayıcı';
String get extensionsSearchProvider => 'Search Provider';
@override
String get extensionsNoCustomSearch => 'Özel arama olan eklenti yok';
String get extensionsNoCustomSearch => 'No extensions with custom search';
@override
String get extensionsSearchProviderDescription =>
'Şarkı aramak için hangi hizmetin kullanılacağını seçin';
'Choose which service to use for searching tracks';
@override
String get extensionsCustomSearch => 'Özel arama';
String get extensionsCustomSearch => 'Custom search';
@override
String get extensionsErrorLoading => 'Eklenti yüklenirken hata oluştu';
String get extensionsErrorLoading => 'Error loading extension';
@override
String get qualityFlacLossless => 'FLAC Lossless';
@ -1663,19 +1657,19 @@ class AppLocalizationsTr extends AppLocalizations {
@override
String discographyAddedToQueue(int count) {
return '$count şarkı kuyruğa eklendi';
return 'Added $count tracks to queue';
}
@override
String discographySkippedDownloaded(int added, int skipped) {
return '$added eklendi, $skipped zaten indirilmiş';
return '$added added, $skipped already downloaded';
}
@override
String get discographyNoAlbums => 'Albüm mevcut değil';
String get discographyNoAlbums => 'No albums available';
@override
String get discographyFailedToFetch => 'Bazı albümler alınamadı';
String get discographyFailedToFetch => 'Failed to fetch some albums';
@override
String get sectionStorageAccess => 'Storage Access';
@ -1934,7 +1928,7 @@ class AppLocalizationsTr extends AppLocalizations {
@override
String get tutorialWelcomeTip2 =>
'Tidal, Qobuz veya Deezer\'den FLAC kalitesinde ses alın';
'Get FLAC quality audio from Tidal, Qobuz, or Deezer';
@override
String get tutorialWelcomeTip3 =>

View file

@ -2973,294 +2973,283 @@ class AppLocalizationsZhCn extends AppLocalizationsZh {
String get appName => 'SpotiFLAC';
@override
String get navHome => 'Home';
String get navHome => '主页';
@override
String get navLibrary => 'Library';
String get navLibrary => '乐库';
@override
String get navSettings => 'Settings';
String get navSettings => '设置';
@override
String get navStore => 'Store';
String get navStore => '商店';
@override
String get homeTitle => 'Home';
String get homeTitle => '主页';
@override
String get homeSubtitle => 'Paste a Spotify link or search by name';
String get homeSubtitle => '粘贴 Spotify 链接或按名称搜索';
@override
String get homeSupports => 'Supports: Track, Album, Playlist, Artist URLs';
String get homeSupports => '支持:歌曲、专辑、播放列表、艺人网址';
@override
String get homeRecent => 'Recent';
String get homeRecent => '最近';
@override
String get historyFilterAll => 'All';
String get historyFilterAll => '全部';
@override
String get historyFilterAlbums => 'Albums';
String get historyFilterAlbums => '专辑';
@override
String get historyFilterSingles => 'Singles';
String get historyFilterSingles => '单曲';
@override
String get historySearchHint => 'Search history...';
String get historySearchHint => '搜索历史……';
@override
String get settingsTitle => 'Settings';
String get settingsTitle => '设置';
@override
String get settingsDownload => 'Download';
String get settingsDownload => '下载';
@override
String get settingsAppearance => 'Appearance';
String get settingsAppearance => '外观';
@override
String get settingsOptions => 'Options';
String get settingsOptions => '选项';
@override
String get settingsExtensions => 'Extensions';
String get settingsExtensions => '扩展';
@override
String get settingsAbout => 'About';
String get settingsAbout => '关于';
@override
String get downloadTitle => 'Download';
String get downloadTitle => '下载';
@override
String get downloadAskQualitySubtitle =>
'Show quality picker for each download';
String get downloadAskQualitySubtitle => '为每次下载显示质量选择器';
@override
String get downloadFilenameFormat => 'Filename Format';
String get downloadFilenameFormat => '文件名格式';
@override
String get downloadFolderOrganization => 'Folder Organization';
String get downloadFolderOrganization => '文件夹结构';
@override
String get appearanceTitle => 'Appearance';
String get appearanceTitle => '外观';
@override
String get appearanceThemeSystem => 'System';
String get appearanceThemeSystem => '系统';
@override
String get appearanceThemeLight => 'Light';
String get appearanceThemeLight => '浅色';
@override
String get appearanceThemeDark => 'Dark';
String get appearanceThemeDark => '深色';
@override
String get appearanceDynamicColor => 'Dynamic Color';
String get appearanceDynamicColor => '动态色彩';
@override
String get appearanceDynamicColorSubtitle => 'Use colors from your wallpaper';
String get appearanceDynamicColorSubtitle => '使用壁纸的颜色';
@override
String get appearanceHistoryView => 'History View';
String get appearanceHistoryView => '历史记录';
@override
String get appearanceHistoryViewList => 'List';
String get appearanceHistoryViewList => '列表';
@override
String get appearanceHistoryViewGrid => 'Grid';
String get appearanceHistoryViewGrid => '网格';
@override
String get optionsTitle => 'Options';
String get optionsTitle => '选项';
@override
String get optionsPrimaryProvider => 'Primary Provider';
String get optionsPrimaryProvider => '主要提供者';
@override
String get optionsPrimaryProviderSubtitle =>
'Service used when searching by track name.';
String get optionsPrimaryProviderSubtitle => '按歌曲名称搜索时使用的服务。';
@override
String optionsUsingExtension(String extensionName) {
return 'Using extension: $extensionName';
return '使用扩展:$extensionName';
}
@override
String get optionsSwitchBack =>
'Tap Deezer or Spotify to switch back from extension';
String get optionsSwitchBack => '点击 Deezer 或 Spotify 即可从扩展程序切换回来';
@override
String get optionsAutoFallback => 'Auto Fallback';
String get optionsAutoFallback => '自动回退';
@override
String get optionsAutoFallbackSubtitle =>
'Try other services if download fails';
String get optionsAutoFallbackSubtitle => '如果下载失败,请尝试其他服务';
@override
String get optionsUseExtensionProviders => 'Use Extension Providers';
String get optionsUseExtensionProviders => '使用扩展提供商';
@override
String get optionsUseExtensionProvidersOn => 'Extensions will be tried first';
String get optionsUseExtensionProvidersOn => '扩展会被最先尝试';
@override
String get optionsUseExtensionProvidersOff => 'Using built-in providers only';
String get optionsUseExtensionProvidersOff => '仅使用内置提供商';
@override
String get optionsEmbedLyrics => 'Embed Lyrics';
String get optionsEmbedLyrics => '内嵌歌词';
@override
String get optionsEmbedLyricsSubtitle =>
'Embed synced lyrics into FLAC files';
String get optionsEmbedLyricsSubtitle => '嵌入已同步歌词到 FLAC 文件';
@override
String get optionsMaxQualityCover => 'Max Quality Cover';
String get optionsMaxQualityCover => '最高质量封面';
@override
String get optionsMaxQualityCoverSubtitle =>
'Download highest resolution cover art';
String get optionsMaxQualityCoverSubtitle => '下载最高分辨率封面';
@override
String get optionsConcurrentDownloads => 'Concurrent Downloads';
String get optionsConcurrentDownloads => '并行下载数';
@override
String get optionsConcurrentSequential => 'Sequential (1 at a time)';
String get optionsConcurrentSequential => '按顺序下载(一次一首)';
@override
String optionsConcurrentParallel(int count) {
return '$count parallel downloads';
return '同时下载 $count';
}
@override
String get optionsConcurrentWarning =>
'Parallel downloads may trigger rate limiting';
String get optionsConcurrentWarning => '并行下载可能会触发速率限制';
@override
String get optionsExtensionStore => 'Extension Store';
String get optionsExtensionStore => '扩展商店';
@override
String get optionsExtensionStoreSubtitle => 'Show Store tab in navigation';
String get optionsExtensionStoreSubtitle => '在导航中显示商店标签';
@override
String get optionsCheckUpdates => 'Check for Updates';
String get optionsCheckUpdates => '检查更新';
@override
String get optionsCheckUpdatesSubtitle =>
'Notify when new version is available';
String get optionsCheckUpdatesSubtitle => '当有新版本可用时通知';
@override
String get optionsUpdateChannel => 'Update Channel';
String get optionsUpdateChannel => '更新频道';
@override
String get optionsUpdateChannelStable => 'Stable releases only';
String get optionsUpdateChannelStable => '仅稳定版本';
@override
String get optionsUpdateChannelPreview => 'Get preview releases';
String get optionsUpdateChannelPreview => '获取预览版本';
@override
String get optionsUpdateChannelWarning =>
'Preview may contain bugs or incomplete features';
String get optionsUpdateChannelWarning => '预览版本可能包含错误或者尚未完善的功能';
@override
String get optionsClearHistory => 'Clear Download History';
String get optionsClearHistory => '清除下载历史记录';
@override
String get optionsClearHistorySubtitle =>
'Remove all downloaded tracks from history';
String get optionsClearHistorySubtitle => '从历史记录中清除所有已下载的曲目';
@override
String get optionsDetailedLogging => 'Detailed Logging';
String get optionsDetailedLogging => '详细日志';
@override
String get optionsDetailedLoggingOn => 'Detailed logs are being recorded';
String get optionsDetailedLoggingOn => '正在记录详细日志';
@override
String get optionsDetailedLoggingOff => 'Enable for bug reports';
String get optionsDetailedLoggingOff => '为错误报告启用';
@override
String get optionsSpotifyCredentials => 'Spotify Credentials';
String get optionsSpotifyCredentials => 'Spotify 凭据';
@override
String optionsSpotifyCredentialsConfigured(String clientId) {
return 'Client ID: $clientId...';
return '客户端 ID$clientId……';
}
@override
String get optionsSpotifyCredentialsRequired => 'Required - tap to configure';
String get optionsSpotifyCredentialsRequired => '必填 - 点击配置';
@override
String get optionsSpotifyWarning =>
'Spotify requires your own API credentials. Get them free from developer.spotify.com';
'Spotify 需要您自己的 API 凭据。在 developer.spotify.com 免费获取';
@override
String get optionsSpotifyDeprecationWarning =>
'Spotify search will be deprecated on March 3, 2026 due to Spotify API changes. Please switch to Deezer.';
'Spotify 搜索将在 2026 年 3 月 3 日因 Spotify API 更改而被废弃。请切换到 Deezer。';
@override
String get extensionsTitle => 'Extensions';
String get extensionsTitle => '扩展';
@override
String get extensionsDisabled => 'Disabled';
String get extensionsDisabled => '禁用';
@override
String extensionsVersion(String version) {
return 'Version $version';
return '版本 $version';
}
@override
String extensionsAuthor(String author) {
return 'by $author';
return '来自 $author';
}
@override
String get extensionsUninstall => 'Uninstall';
String get extensionsUninstall => '卸载';
@override
String get storeTitle => 'Extension Store';
String get storeTitle => '扩展商店';
@override
String get storeSearch => 'Search extensions...';
String get storeSearch => '搜索扩展……';
@override
String get storeInstall => 'Install';
String get storeInstall => '安装';
@override
String get storeInstalled => 'Installed';
String get storeInstalled => '已安装';
@override
String get storeUpdate => 'Update';
String get storeUpdate => '更新';
@override
String get aboutTitle => 'About';
String get aboutTitle => '关于';
@override
String get aboutContributors => 'Contributors';
String get aboutContributors => '贡献者';
@override
String get aboutMobileDeveloper => 'Mobile version developer';
String get aboutMobileDeveloper => '移动版本开发者';
@override
String get aboutOriginalCreator => 'Creator of the original SpotiFLAC';
String get aboutOriginalCreator => '原 SpotiLDAC 创建者';
@override
String get aboutLogoArtist =>
'The talented artist who created our beautiful app logo!';
String get aboutLogoArtist => '有才华的艺术家创建了我们美丽的应用图标!';
@override
String get aboutTranslators => 'Translators';
String get aboutTranslators => '译者';
@override
String get aboutSpecialThanks => 'Special Thanks';
String get aboutSpecialThanks => '特别鸣谢';
@override
String get aboutLinks => 'Links';
String get aboutLinks => '相关链接';
@override
String get aboutMobileSource => 'Mobile source code';
String get aboutMobileSource => '移动版本源代码';
@override
String get aboutPCSource => 'PC source code';
String get aboutPCSource => '桌面版本源代码';
@override
String get aboutReportIssue => 'Report an issue';
String get aboutReportIssue => '报告一个问题';
@override
String get aboutReportIssueSubtitle => 'Report any problems you encounter';
String get aboutReportIssueSubtitle => '报告您遇到的任何问题';
@override
String get aboutFeatureRequest => 'Feature request';
@ -3317,7 +3306,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh {
@override
String get aboutAppDescription =>
'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.';
'Download Spotify tracks in lossless quality from Tidal and Qobuz.';
@override
String get artistAlbums => 'Albums';
@ -3433,20 +3422,19 @@ class AppLocalizationsZhCn extends AppLocalizationsZh {
String get setupNotificationGranted => 'Notification Permission Granted!';
@override
String get setupNotificationEnable => 'Enable Notifications';
String get setupNotificationEnable => '启用通知';
@override
String get setupFolderChoose => 'Choose Download Folder';
String get setupFolderChoose => '选择下载文件夹';
@override
String get setupFolderDescription =>
'Select a folder where your downloaded music will be saved.';
String get setupFolderDescription => '选择保存您下载的音乐的文件夹。';
@override
String get setupSelectFolder => 'Select Folder';
String get setupSelectFolder => '选择文件夹';
@override
String get setupEnableNotifications => 'Enable Notifications';
String get setupEnableNotifications => '启用通知';
@override
String get setupNotificationBackgroundDescription =>
@ -3643,11 +3631,21 @@ class AppLocalizationsZhCn extends AppLocalizationsZh {
String get errorRateLimited => 'Rate Limited';
@override
String get errorRateLimitedMessage =>
'Too many requests. Please wait a moment before searching again.';
String get errorRateLimitedMessage => '请求过多。请等一会再搜索。';
@override
String get errorNoTracksFound => 'No tracks found';
String get errorNoTracksFound => '未找到曲目';
@override
String get errorUrlNotRecognized => 'Link not recognized';
@override
String get errorUrlNotRecognizedMessage =>
'This link is not supported. Make sure the URL is correct and a compatible extension is installed.';
@override
String get errorUrlFetchFailed =>
'Failed to load content from this link. Please try again.';
@override
String errorMissingExtensionSource(String item) {
@ -3722,6 +3720,13 @@ class AppLocalizationsZhCn extends AppLocalizationsZh {
@override
String get folderOrganizationNone => 'No organization';
@override
String get folderOrganizationByPlaylist => 'By Playlist';
@override
String get folderOrganizationByPlaylistSubtitle =>
'Separate folder for each playlist';
@override
String get folderOrganizationByArtist => 'By Artist';
@ -4770,7 +4775,7 @@ class AppLocalizationsZhCn extends AppLocalizationsZh {
@override
String get tutorialWelcomeTip2 =>
'Get FLAC quality audio from Tidal, Qobuz, or Amazon Music';
'Get FLAC quality audio from Tidal, Qobuz, or Deezer';
@override
String get tutorialWelcomeTip3 =>
@ -5087,6 +5092,54 @@ class AppLocalizationsZhCn extends AppLocalizationsZh {
@override
String get trackConvertFailed => 'Conversion failed';
@override
String get cueSplitTitle => 'Split CUE Sheet';
@override
String get cueSplitSubtitle => 'Split CUE+FLAC into individual tracks';
@override
String cueSplitAlbum(String album) {
return 'Album: $album';
}
@override
String cueSplitArtist(String artist) {
return 'Artist: $artist';
}
@override
String cueSplitTrackCount(int count) {
return '$count tracks';
}
@override
String get cueSplitConfirmTitle => 'Split CUE Album';
@override
String cueSplitConfirmMessage(String album, int count) {
return 'Split \"$album\" into $count individual FLAC files?\n\nFiles will be saved to the same directory.';
}
@override
String cueSplitSplitting(int current, int total) {
return 'Splitting CUE sheet... ($current/$total)';
}
@override
String cueSplitSuccess(int count) {
return 'Split into $count tracks successfully';
}
@override
String get cueSplitFailed => 'CUE split failed';
@override
String get cueSplitNoAudioFile => 'Audio file not found for this CUE sheet';
@override
String get cueSplitButton => 'Split into Tracks';
@override
String get actionCreate => 'Create';
@ -5657,7 +5710,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
@override
String get aboutAppDescription =>
'Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.';
'Download Spotify tracks in lossless quality from Tidal and Qobuz.';
@override
String get artistAlbums => 'Albums';
@ -5989,6 +6042,17 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
@override
String get errorNoTracksFound => 'No tracks found';
@override
String get errorUrlNotRecognized => 'Link not recognized';
@override
String get errorUrlNotRecognizedMessage =>
'This link is not supported. Make sure the URL is correct and a compatible extension is installed.';
@override
String get errorUrlFetchFailed =>
'Failed to load content from this link. Please try again.';
@override
String errorMissingExtensionSource(String item) {
return 'Cannot load $item: missing extension source';
@ -6062,6 +6126,13 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
@override
String get folderOrganizationNone => 'No organization';
@override
String get folderOrganizationByPlaylist => 'By Playlist';
@override
String get folderOrganizationByPlaylistSubtitle =>
'Separate folder for each playlist';
@override
String get folderOrganizationByArtist => 'By Artist';
@ -7110,7 +7181,7 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
@override
String get tutorialWelcomeTip2 =>
'Get FLAC quality audio from Tidal, Qobuz, or Amazon Music';
'Get FLAC quality audio from Tidal, Qobuz, or Deezer';
@override
String get tutorialWelcomeTip3 =>
@ -7427,6 +7498,54 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
@override
String get trackConvertFailed => 'Conversion failed';
@override
String get cueSplitTitle => 'Split CUE Sheet';
@override
String get cueSplitSubtitle => 'Split CUE+FLAC into individual tracks';
@override
String cueSplitAlbum(String album) {
return 'Album: $album';
}
@override
String cueSplitArtist(String artist) {
return 'Artist: $artist';
}
@override
String cueSplitTrackCount(int count) {
return '$count tracks';
}
@override
String get cueSplitConfirmTitle => 'Split CUE Album';
@override
String cueSplitConfirmMessage(String album, int count) {
return 'Split \"$album\" into $count individual FLAC files?\n\nFiles will be saved to the same directory.';
}
@override
String cueSplitSplitting(int current, int total) {
return 'Splitting CUE sheet... ($current/$total)';
}
@override
String cueSplitSuccess(int count) {
return 'Split into $count tracks successfully';
}
@override
String get cueSplitFailed => 'CUE split failed';
@override
String get cueSplitNoAudioFile => 'Audio file not found for this CUE sheet';
@override
String get cueSplitButton => 'Split into Tracks';
@override
String get actionCreate => 'Create';

File diff suppressed because it is too large Load diff

View file

@ -450,7 +450,7 @@
"@aboutSpotiSaverDesc": {
"description": "Credit for SpotiSaver API"
},
"aboutAppDescription": "Descarga pistas de Spotify con calidad sin pérdida de Tidal y Qobuz.",
"aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal and Qobuz.",
"@aboutAppDescription": {
"description": "App description in header card"
},
@ -897,6 +897,18 @@
"@errorNoTracksFound": {
"description": "Error - search returned no results"
},
"errorUrlNotRecognized": "Link not recognized",
"@errorUrlNotRecognized": {
"description": "Error title - URL not handled by any extension or service"
},
"errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.",
"@errorUrlNotRecognizedMessage": {
"description": "Error message - URL not recognized explanation"
},
"errorUrlFetchFailed": "Failed to load content from this link. Please try again.",
"@errorUrlFetchFailed": {
"description": "Error message - generic URL fetch failure"
},
"errorMissingExtensionSource": "No se puede cargar {item}: falta una fuente de extensión",
"@errorMissingExtensionSource": {
"description": "Error - extension source not available",
@ -991,10 +1003,26 @@
"@filenameFormat": {
"description": "Setting title - filename pattern"
},
"filenameShowAdvancedTags": "Show advanced tags",
"@filenameShowAdvancedTags": {
"description": "Toggle label for showing advanced filename tags"
},
"filenameShowAdvancedTagsDescription": "Enable formatted tags for track padding and date patterns",
"@filenameShowAdvancedTagsDescription": {
"description": "Description for advanced filename tag toggle"
},
"folderOrganizationNone": "Ninguna organización",
"@folderOrganizationNone": {
"description": "Folder option - flat structure"
},
"folderOrganizationByPlaylist": "By Playlist",
"@folderOrganizationByPlaylist": {
"description": "Folder option - playlist folders"
},
"folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist",
"@folderOrganizationByPlaylistSubtitle": {
"description": "Subtitle for playlist folder option"
},
"folderOrganizationByArtist": "Por Artista",
"@folderOrganizationByArtist": {
"description": "Folder option - artist folders"
@ -1749,6 +1777,14 @@
"@youtubeQualityNote": {
"description": "Note for YouTube service explaining lossy-only quality"
},
"youtubeOpusBitrateTitle": "YouTube Opus Bitrate",
"@youtubeOpusBitrateTitle": {
"description": "Title for YouTube Opus bitrate setting"
},
"youtubeMp3BitrateTitle": "YouTube MP3 Bitrate",
"@youtubeMp3BitrateTitle": {
"description": "Title for YouTube MP3 bitrate setting"
},
"downloadAskBeforeDownload": "Preguntar antes de descargar",
"@downloadAskBeforeDownload": {
"description": "Setting - show quality picker"
@ -2198,6 +2234,15 @@
"@libraryAboutDescription": {
"description": "Description of local library feature"
},
"libraryTracksUnit": "{count, plural, =1{track} other{tracks}}",
"@libraryTracksUnit": {
"description": "Unit label for tracks count (without the number itself)",
"placeholders": {
"count": {
"type": "int"
}
}
},
"libraryLastScanned": "Last scanned: {time}",
"@libraryLastScanned": {
"description": "Last scan time display",
@ -2358,7 +2403,7 @@
"@tutorialWelcomeTip1": {
"description": "Tutorial welcome tip 1"
},
"tutorialWelcomeTip2": "Obtén audio en calidad FLAC de Tidal, Qobuz o Deezer",
"tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer",
"@tutorialWelcomeTip2": {
"description": "Tutorial welcome tip 2"
},
@ -2783,6 +2828,367 @@
"@trackConvertFailed": {
"description": "Snackbar when conversion fails"
},
"cueSplitTitle": "Split CUE Sheet",
"@cueSplitTitle": {
"description": "Title for CUE split bottom sheet"
},
"cueSplitSubtitle": "Split CUE+FLAC into individual tracks",
"@cueSplitSubtitle": {
"description": "Subtitle for CUE split menu item"
},
"cueSplitAlbum": "Album: {album}",
"@cueSplitAlbum": {
"description": "Album name in CUE split sheet",
"placeholders": {
"album": {
"type": "String"
}
}
},
"cueSplitArtist": "Artist: {artist}",
"@cueSplitArtist": {
"description": "Artist name in CUE split sheet",
"placeholders": {
"artist": {
"type": "String"
}
}
},
"cueSplitTrackCount": "{count} tracks",
"@cueSplitTrackCount": {
"description": "Number of tracks in CUE sheet",
"placeholders": {
"count": {
"type": "int"
}
}
},
"cueSplitConfirmTitle": "Split CUE Album",
"@cueSplitConfirmTitle": {
"description": "CUE split confirmation dialog title"
},
"cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.",
"@cueSplitConfirmMessage": {
"description": "CUE split confirmation dialog message",
"placeholders": {
"album": {
"type": "String"
},
"count": {
"type": "int"
}
}
},
"cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})",
"@cueSplitSplitting": {
"description": "Snackbar while splitting CUE",
"placeholders": {
"current": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"cueSplitSuccess": "Split into {count} tracks successfully",
"@cueSplitSuccess": {
"description": "Snackbar after successful CUE split",
"placeholders": {
"count": {
"type": "int"
}
}
},
"cueSplitFailed": "CUE split failed",
"@cueSplitFailed": {
"description": "Snackbar when CUE split fails"
},
"cueSplitNoAudioFile": "Audio file not found for this CUE sheet",
"@cueSplitNoAudioFile": {
"description": "Error when CUE audio file is missing"
},
"cueSplitButton": "Split into Tracks",
"@cueSplitButton": {
"description": "Button text to start CUE splitting"
},
"actionCreate": "Create",
"@actionCreate": {
"description": "Generic action button - create"
},
"collectionFoldersTitle": "My folders",
"@collectionFoldersTitle": {
"description": "Library section title for custom folders"
},
"collectionWishlist": "Wishlist",
"@collectionWishlist": {
"description": "Custom folder for saved tracks to download later"
},
"collectionLoved": "Loved",
"@collectionLoved": {
"description": "Custom folder for favorite tracks"
},
"collectionPlaylists": "Playlists",
"@collectionPlaylists": {
"description": "Custom user playlists folder"
},
"collectionPlaylist": "Playlist",
"@collectionPlaylist": {
"description": "Single playlist label"
},
"collectionAddToPlaylist": "Add to playlist",
"@collectionAddToPlaylist": {
"description": "Action to add a track to user playlist"
},
"collectionCreatePlaylist": "Create playlist",
"@collectionCreatePlaylist": {
"description": "Action to create a new playlist"
},
"collectionNoPlaylistsYet": "No playlists yet",
"@collectionNoPlaylistsYet": {
"description": "Empty state title when user has no playlists"
},
"collectionNoPlaylistsSubtitle": "Create a playlist to start categorizing tracks",
"@collectionNoPlaylistsSubtitle": {
"description": "Empty state subtitle when user has no playlists"
},
"collectionPlaylistTracks": "{count, plural, =1{1 track} other{{count} tracks}}",
"@collectionPlaylistTracks": {
"description": "Track count label for custom playlists",
"placeholders": {
"count": {
"type": "int"
}
}
},
"collectionAddedToPlaylist": "Added to \"{playlistName}\"",
"@collectionAddedToPlaylist": {
"description": "Snackbar after adding track to playlist",
"placeholders": {
"playlistName": {
"type": "String"
}
}
},
"collectionAlreadyInPlaylist": "Already in \"{playlistName}\"",
"@collectionAlreadyInPlaylist": {
"description": "Snackbar when track already exists in playlist",
"placeholders": {
"playlistName": {
"type": "String"
}
}
},
"collectionPlaylistCreated": "Playlist created",
"@collectionPlaylistCreated": {
"description": "Snackbar after creating playlist"
},
"collectionPlaylistNameHint": "Playlist name",
"@collectionPlaylistNameHint": {
"description": "Hint text for playlist name input"
},
"collectionPlaylistNameRequired": "Playlist name is required",
"@collectionPlaylistNameRequired": {
"description": "Validation error for empty playlist name"
},
"collectionRenamePlaylist": "Rename playlist",
"@collectionRenamePlaylist": {
"description": "Action to rename playlist"
},
"collectionDeletePlaylist": "Delete playlist",
"@collectionDeletePlaylist": {
"description": "Action to delete playlist"
},
"collectionDeletePlaylistMessage": "Delete \"{playlistName}\" and all tracks inside it?",
"@collectionDeletePlaylistMessage": {
"description": "Confirmation message for deleting playlist",
"placeholders": {
"playlistName": {
"type": "String"
}
}
},
"collectionPlaylistDeleted": "Playlist deleted",
"@collectionPlaylistDeleted": {
"description": "Snackbar after deleting playlist"
},
"collectionPlaylistRenamed": "Playlist renamed",
"@collectionPlaylistRenamed": {
"description": "Snackbar after renaming playlist"
},
"collectionWishlistEmptyTitle": "Wishlist is empty",
"@collectionWishlistEmptyTitle": {
"description": "Wishlist empty state title"
},
"collectionWishlistEmptySubtitle": "Tap + on tracks to save what you want to download later",
"@collectionWishlistEmptySubtitle": {
"description": "Wishlist empty state subtitle"
},
"collectionLovedEmptyTitle": "Loved folder is empty",
"@collectionLovedEmptyTitle": {
"description": "Loved empty state title"
},
"collectionLovedEmptySubtitle": "Tap love on tracks to keep your favorites",
"@collectionLovedEmptySubtitle": {
"description": "Loved empty state subtitle"
},
"collectionPlaylistEmptyTitle": "Playlist is empty",
"@collectionPlaylistEmptyTitle": {
"description": "Playlist empty state title"
},
"collectionPlaylistEmptySubtitle": "Long-press + on any track to add it here",
"@collectionPlaylistEmptySubtitle": {
"description": "Playlist empty state subtitle"
},
"collectionRemoveFromPlaylist": "Remove from playlist",
"@collectionRemoveFromPlaylist": {
"description": "Tooltip for removing track from playlist"
},
"collectionRemoveFromFolder": "Remove from folder",
"@collectionRemoveFromFolder": {
"description": "Tooltip for removing track from wishlist/loved folder"
},
"collectionRemoved": "\"{trackName}\" removed",
"@collectionRemoved": {
"description": "Snackbar after removing a track from a collection",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"collectionAddedToLoved": "\"{trackName}\" added to Loved",
"@collectionAddedToLoved": {
"description": "Snackbar after adding track to loved folder",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"collectionRemovedFromLoved": "\"{trackName}\" removed from Loved",
"@collectionRemovedFromLoved": {
"description": "Snackbar after removing track from loved folder",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"collectionAddedToWishlist": "\"{trackName}\" added to Wishlist",
"@collectionAddedToWishlist": {
"description": "Snackbar after adding track to wishlist",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"collectionRemovedFromWishlist": "\"{trackName}\" removed from Wishlist",
"@collectionRemovedFromWishlist": {
"description": "Snackbar after removing track from wishlist",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"trackOptionAddToLoved": "Add to Loved",
"@trackOptionAddToLoved": {
"description": "Bottom sheet action label - add track to loved folder"
},
"trackOptionRemoveFromLoved": "Remove from Loved",
"@trackOptionRemoveFromLoved": {
"description": "Bottom sheet action label - remove track from loved folder"
},
"trackOptionAddToWishlist": "Add to Wishlist",
"@trackOptionAddToWishlist": {
"description": "Bottom sheet action label - add track to wishlist"
},
"trackOptionRemoveFromWishlist": "Remove from Wishlist",
"@trackOptionRemoveFromWishlist": {
"description": "Bottom sheet action label - remove track from wishlist"
},
"collectionPlaylistChangeCover": "Change cover image",
"@collectionPlaylistChangeCover": {
"description": "Bottom sheet action to pick a custom cover image for a playlist"
},
"collectionPlaylistRemoveCover": "Remove cover image",
"@collectionPlaylistRemoveCover": {
"description": "Bottom sheet action to remove custom cover image from a playlist"
},
"selectionShareCount": "Share {count} {count, plural, =1{track} other{tracks}}",
"@selectionShareCount": {
"description": "Share button text with count in selection mode",
"placeholders": {
"count": {
"type": "int"
}
}
},
"selectionShareNoFiles": "No shareable files found",
"@selectionShareNoFiles": {
"description": "Snackbar when no selected files exist on disk"
},
"selectionConvertCount": "Convert {count} {count, plural, =1{track} other{tracks}}",
"@selectionConvertCount": {
"description": "Convert button text with count in selection mode",
"placeholders": {
"count": {
"type": "int"
}
}
},
"selectionConvertNoConvertible": "No convertible tracks selected",
"@selectionConvertNoConvertible": {
"description": "Snackbar when no selected tracks support conversion"
},
"selectionBatchConvertConfirmTitle": "Batch Convert",
"@selectionBatchConvertConfirmTitle": {
"description": "Confirmation dialog title for batch conversion"
},
"selectionBatchConvertConfirmMessage": "Convert {count} {count, plural, =1{track} other{tracks}} to {format} at {bitrate}?\n\nOriginal files will be deleted after conversion.",
"@selectionBatchConvertConfirmMessage": {
"description": "Confirmation dialog message for batch conversion",
"placeholders": {
"count": {
"type": "int"
},
"format": {
"type": "String"
},
"bitrate": {
"type": "String"
}
}
},
"selectionBatchConvertProgress": "Converting {current} of {total}...",
"@selectionBatchConvertProgress": {
"description": "Snackbar during batch conversion progress",
"placeholders": {
"current": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"selectionBatchConvertSuccess": "Converted {success} of {total} tracks to {format}",
"@selectionBatchConvertSuccess": {
"description": "Snackbar after batch conversion completes",
"placeholders": {
"success": {
"type": "int"
},
"total": {
"type": "int"
},
"format": {
"type": "String"
}
}
},
"downloadedAlbumDownloadedCount": "{count} descargado",
"@downloadedAlbumDownloadedCount": {
"description": "Downloaded tracks count badge",
@ -2800,4 +3206,4 @@
"@downloadUseAlbumArtistForFoldersTrackSubtitle": {
"description": "Subtitle when Track Artist is used for folder naming"
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -450,7 +450,7 @@
"@aboutSpotiSaverDesc": {
"description": "Credit for SpotiSaver API"
},
"aboutAppDescription": "Baixe faixas do Spotify em qualidade sem perdas do Tidal e Qobuz.",
"aboutAppDescription": "Download Spotify tracks in lossless quality from Tidal and Qobuz.",
"@aboutAppDescription": {
"description": "App description in header card"
},
@ -897,6 +897,18 @@
"@errorNoTracksFound": {
"description": "Error - search returned no results"
},
"errorUrlNotRecognized": "Link not recognized",
"@errorUrlNotRecognized": {
"description": "Error title - URL not handled by any extension or service"
},
"errorUrlNotRecognizedMessage": "This link is not supported. Make sure the URL is correct and a compatible extension is installed.",
"@errorUrlNotRecognizedMessage": {
"description": "Error message - URL not recognized explanation"
},
"errorUrlFetchFailed": "Failed to load content from this link. Please try again.",
"@errorUrlFetchFailed": {
"description": "Error message - generic URL fetch failure"
},
"errorMissingExtensionSource": "Não é possível carregar {item}: faltando a fonte da extensão",
"@errorMissingExtensionSource": {
"description": "Error - extension source not available",
@ -991,10 +1003,26 @@
"@filenameFormat": {
"description": "Setting title - filename pattern"
},
"filenameShowAdvancedTags": "Show advanced tags",
"@filenameShowAdvancedTags": {
"description": "Toggle label for showing advanced filename tags"
},
"filenameShowAdvancedTagsDescription": "Enable formatted tags for track padding and date patterns",
"@filenameShowAdvancedTagsDescription": {
"description": "Description for advanced filename tag toggle"
},
"folderOrganizationNone": "Nenhuma organização",
"@folderOrganizationNone": {
"description": "Folder option - flat structure"
},
"folderOrganizationByPlaylist": "By Playlist",
"@folderOrganizationByPlaylist": {
"description": "Folder option - playlist folders"
},
"folderOrganizationByPlaylistSubtitle": "Separate folder for each playlist",
"@folderOrganizationByPlaylistSubtitle": {
"description": "Subtitle for playlist folder option"
},
"folderOrganizationByArtist": "Por Artista",
"@folderOrganizationByArtist": {
"description": "Folder option - artist folders"
@ -1749,6 +1777,14 @@
"@youtubeQualityNote": {
"description": "Note for YouTube service explaining lossy-only quality"
},
"youtubeOpusBitrateTitle": "YouTube Opus Bitrate",
"@youtubeOpusBitrateTitle": {
"description": "Title for YouTube Opus bitrate setting"
},
"youtubeMp3BitrateTitle": "YouTube MP3 Bitrate",
"@youtubeMp3BitrateTitle": {
"description": "Title for YouTube MP3 bitrate setting"
},
"downloadAskBeforeDownload": "Perguntar qualidade antes de baixar",
"@downloadAskBeforeDownload": {
"description": "Setting - show quality picker"
@ -2198,6 +2234,15 @@
"@libraryAboutDescription": {
"description": "Description of local library feature"
},
"libraryTracksUnit": "{count, plural, =1{track} other{tracks}}",
"@libraryTracksUnit": {
"description": "Unit label for tracks count (without the number itself)",
"placeholders": {
"count": {
"type": "int"
}
}
},
"libraryLastScanned": "Last scanned: {time}",
"@libraryLastScanned": {
"description": "Last scan time display",
@ -2358,7 +2403,7 @@
"@tutorialWelcomeTip1": {
"description": "Tutorial welcome tip 1"
},
"tutorialWelcomeTip2": "Obtenha áudio em qualidade FLAC do Tidal, Qobuz ou Deezer",
"tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer",
"@tutorialWelcomeTip2": {
"description": "Tutorial welcome tip 2"
},
@ -2783,6 +2828,367 @@
"@trackConvertFailed": {
"description": "Snackbar when conversion fails"
},
"cueSplitTitle": "Split CUE Sheet",
"@cueSplitTitle": {
"description": "Title for CUE split bottom sheet"
},
"cueSplitSubtitle": "Split CUE+FLAC into individual tracks",
"@cueSplitSubtitle": {
"description": "Subtitle for CUE split menu item"
},
"cueSplitAlbum": "Album: {album}",
"@cueSplitAlbum": {
"description": "Album name in CUE split sheet",
"placeholders": {
"album": {
"type": "String"
}
}
},
"cueSplitArtist": "Artist: {artist}",
"@cueSplitArtist": {
"description": "Artist name in CUE split sheet",
"placeholders": {
"artist": {
"type": "String"
}
}
},
"cueSplitTrackCount": "{count} tracks",
"@cueSplitTrackCount": {
"description": "Number of tracks in CUE sheet",
"placeholders": {
"count": {
"type": "int"
}
}
},
"cueSplitConfirmTitle": "Split CUE Album",
"@cueSplitConfirmTitle": {
"description": "CUE split confirmation dialog title"
},
"cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.",
"@cueSplitConfirmMessage": {
"description": "CUE split confirmation dialog message",
"placeholders": {
"album": {
"type": "String"
},
"count": {
"type": "int"
}
}
},
"cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})",
"@cueSplitSplitting": {
"description": "Snackbar while splitting CUE",
"placeholders": {
"current": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"cueSplitSuccess": "Split into {count} tracks successfully",
"@cueSplitSuccess": {
"description": "Snackbar after successful CUE split",
"placeholders": {
"count": {
"type": "int"
}
}
},
"cueSplitFailed": "CUE split failed",
"@cueSplitFailed": {
"description": "Snackbar when CUE split fails"
},
"cueSplitNoAudioFile": "Audio file not found for this CUE sheet",
"@cueSplitNoAudioFile": {
"description": "Error when CUE audio file is missing"
},
"cueSplitButton": "Split into Tracks",
"@cueSplitButton": {
"description": "Button text to start CUE splitting"
},
"actionCreate": "Create",
"@actionCreate": {
"description": "Generic action button - create"
},
"collectionFoldersTitle": "My folders",
"@collectionFoldersTitle": {
"description": "Library section title for custom folders"
},
"collectionWishlist": "Wishlist",
"@collectionWishlist": {
"description": "Custom folder for saved tracks to download later"
},
"collectionLoved": "Loved",
"@collectionLoved": {
"description": "Custom folder for favorite tracks"
},
"collectionPlaylists": "Playlists",
"@collectionPlaylists": {
"description": "Custom user playlists folder"
},
"collectionPlaylist": "Playlist",
"@collectionPlaylist": {
"description": "Single playlist label"
},
"collectionAddToPlaylist": "Add to playlist",
"@collectionAddToPlaylist": {
"description": "Action to add a track to user playlist"
},
"collectionCreatePlaylist": "Create playlist",
"@collectionCreatePlaylist": {
"description": "Action to create a new playlist"
},
"collectionNoPlaylistsYet": "No playlists yet",
"@collectionNoPlaylistsYet": {
"description": "Empty state title when user has no playlists"
},
"collectionNoPlaylistsSubtitle": "Create a playlist to start categorizing tracks",
"@collectionNoPlaylistsSubtitle": {
"description": "Empty state subtitle when user has no playlists"
},
"collectionPlaylistTracks": "{count, plural, =1{1 track} other{{count} tracks}}",
"@collectionPlaylistTracks": {
"description": "Track count label for custom playlists",
"placeholders": {
"count": {
"type": "int"
}
}
},
"collectionAddedToPlaylist": "Added to \"{playlistName}\"",
"@collectionAddedToPlaylist": {
"description": "Snackbar after adding track to playlist",
"placeholders": {
"playlistName": {
"type": "String"
}
}
},
"collectionAlreadyInPlaylist": "Already in \"{playlistName}\"",
"@collectionAlreadyInPlaylist": {
"description": "Snackbar when track already exists in playlist",
"placeholders": {
"playlistName": {
"type": "String"
}
}
},
"collectionPlaylistCreated": "Playlist created",
"@collectionPlaylistCreated": {
"description": "Snackbar after creating playlist"
},
"collectionPlaylistNameHint": "Playlist name",
"@collectionPlaylistNameHint": {
"description": "Hint text for playlist name input"
},
"collectionPlaylistNameRequired": "Playlist name is required",
"@collectionPlaylistNameRequired": {
"description": "Validation error for empty playlist name"
},
"collectionRenamePlaylist": "Rename playlist",
"@collectionRenamePlaylist": {
"description": "Action to rename playlist"
},
"collectionDeletePlaylist": "Delete playlist",
"@collectionDeletePlaylist": {
"description": "Action to delete playlist"
},
"collectionDeletePlaylistMessage": "Delete \"{playlistName}\" and all tracks inside it?",
"@collectionDeletePlaylistMessage": {
"description": "Confirmation message for deleting playlist",
"placeholders": {
"playlistName": {
"type": "String"
}
}
},
"collectionPlaylistDeleted": "Playlist deleted",
"@collectionPlaylistDeleted": {
"description": "Snackbar after deleting playlist"
},
"collectionPlaylistRenamed": "Playlist renamed",
"@collectionPlaylistRenamed": {
"description": "Snackbar after renaming playlist"
},
"collectionWishlistEmptyTitle": "Wishlist is empty",
"@collectionWishlistEmptyTitle": {
"description": "Wishlist empty state title"
},
"collectionWishlistEmptySubtitle": "Tap + on tracks to save what you want to download later",
"@collectionWishlistEmptySubtitle": {
"description": "Wishlist empty state subtitle"
},
"collectionLovedEmptyTitle": "Loved folder is empty",
"@collectionLovedEmptyTitle": {
"description": "Loved empty state title"
},
"collectionLovedEmptySubtitle": "Tap love on tracks to keep your favorites",
"@collectionLovedEmptySubtitle": {
"description": "Loved empty state subtitle"
},
"collectionPlaylistEmptyTitle": "Playlist is empty",
"@collectionPlaylistEmptyTitle": {
"description": "Playlist empty state title"
},
"collectionPlaylistEmptySubtitle": "Long-press + on any track to add it here",
"@collectionPlaylistEmptySubtitle": {
"description": "Playlist empty state subtitle"
},
"collectionRemoveFromPlaylist": "Remove from playlist",
"@collectionRemoveFromPlaylist": {
"description": "Tooltip for removing track from playlist"
},
"collectionRemoveFromFolder": "Remove from folder",
"@collectionRemoveFromFolder": {
"description": "Tooltip for removing track from wishlist/loved folder"
},
"collectionRemoved": "\"{trackName}\" removed",
"@collectionRemoved": {
"description": "Snackbar after removing a track from a collection",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"collectionAddedToLoved": "\"{trackName}\" added to Loved",
"@collectionAddedToLoved": {
"description": "Snackbar after adding track to loved folder",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"collectionRemovedFromLoved": "\"{trackName}\" removed from Loved",
"@collectionRemovedFromLoved": {
"description": "Snackbar after removing track from loved folder",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"collectionAddedToWishlist": "\"{trackName}\" added to Wishlist",
"@collectionAddedToWishlist": {
"description": "Snackbar after adding track to wishlist",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"collectionRemovedFromWishlist": "\"{trackName}\" removed from Wishlist",
"@collectionRemovedFromWishlist": {
"description": "Snackbar after removing track from wishlist",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"trackOptionAddToLoved": "Add to Loved",
"@trackOptionAddToLoved": {
"description": "Bottom sheet action label - add track to loved folder"
},
"trackOptionRemoveFromLoved": "Remove from Loved",
"@trackOptionRemoveFromLoved": {
"description": "Bottom sheet action label - remove track from loved folder"
},
"trackOptionAddToWishlist": "Add to Wishlist",
"@trackOptionAddToWishlist": {
"description": "Bottom sheet action label - add track to wishlist"
},
"trackOptionRemoveFromWishlist": "Remove from Wishlist",
"@trackOptionRemoveFromWishlist": {
"description": "Bottom sheet action label - remove track from wishlist"
},
"collectionPlaylistChangeCover": "Change cover image",
"@collectionPlaylistChangeCover": {
"description": "Bottom sheet action to pick a custom cover image for a playlist"
},
"collectionPlaylistRemoveCover": "Remove cover image",
"@collectionPlaylistRemoveCover": {
"description": "Bottom sheet action to remove custom cover image from a playlist"
},
"selectionShareCount": "Share {count} {count, plural, =1{track} other{tracks}}",
"@selectionShareCount": {
"description": "Share button text with count in selection mode",
"placeholders": {
"count": {
"type": "int"
}
}
},
"selectionShareNoFiles": "No shareable files found",
"@selectionShareNoFiles": {
"description": "Snackbar when no selected files exist on disk"
},
"selectionConvertCount": "Convert {count} {count, plural, =1{track} other{tracks}}",
"@selectionConvertCount": {
"description": "Convert button text with count in selection mode",
"placeholders": {
"count": {
"type": "int"
}
}
},
"selectionConvertNoConvertible": "No convertible tracks selected",
"@selectionConvertNoConvertible": {
"description": "Snackbar when no selected tracks support conversion"
},
"selectionBatchConvertConfirmTitle": "Batch Convert",
"@selectionBatchConvertConfirmTitle": {
"description": "Confirmation dialog title for batch conversion"
},
"selectionBatchConvertConfirmMessage": "Convert {count} {count, plural, =1{track} other{tracks}} to {format} at {bitrate}?\n\nOriginal files will be deleted after conversion.",
"@selectionBatchConvertConfirmMessage": {
"description": "Confirmation dialog message for batch conversion",
"placeholders": {
"count": {
"type": "int"
},
"format": {
"type": "String"
},
"bitrate": {
"type": "String"
}
}
},
"selectionBatchConvertProgress": "Converting {current} of {total}...",
"@selectionBatchConvertProgress": {
"description": "Snackbar during batch conversion progress",
"placeholders": {
"current": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"selectionBatchConvertSuccess": "Converted {success} of {total} tracks to {format}",
"@selectionBatchConvertSuccess": {
"description": "Snackbar after batch conversion completes",
"placeholders": {
"success": {
"type": "int"
},
"total": {
"type": "int"
},
"format": {
"type": "String"
}
}
},
"downloadedAlbumDownloadedCount": "{count} baixado(s)",
"@downloadedAlbumDownloadedCount": {
"description": "Downloaded tracks count badge",
@ -2800,4 +3206,4 @@
"@downloadUseAlbumArtistForFoldersTrackSubtitle": {
"description": "Subtitle when Track Artist is used for folder naming"
}
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff