{ "@@locale": "it", "@@last_modified": "2026-04-28", "appName": "SpotiFLAC Mobile", "@appName": { "description": "App name - DO NOT TRANSLATE" }, "navHome": "Home", "@navHome": { "description": "Bottom navigation - Home tab" }, "navLibrary": "Libreria", "@navLibrary": { "description": "Bottom navigation - Library tab" }, "navSettings": "Impostazioni", "@navSettings": { "description": "Bottom navigation - Settings tab" }, "navStore": "Repository", "@navStore": { "description": "Bottom navigation - Extension repo tab" }, "homeTitle": "Home", "@homeTitle": { "description": "Home screen title" }, "homeSubtitle": "Incolla un URL supportato o cerca per nome", "@homeSubtitle": { "description": "Subtitle shown below search box" }, "homeEmptyTitle": "Nessun provider di ricerca presente", "@homeEmptyTitle": { "description": "Title shown on home when no providers are available yet" }, "homeEmptySubtitle": "Installa un'estensione per continuare.", "@homeEmptySubtitle": { "description": "Subtitle shown on home when no providers are available yet" }, "homeSupports": "Supporta: Traccia, Album, Playlist, URL Artista", "@homeSupports": { "description": "Info text about supported URL types" }, "homeRecent": "Recenti", "@homeRecent": { "description": "Section header for recent searches" }, "historyFilterAll": "Tutti", "@historyFilterAll": { "description": "Filter chip - show all items" }, "historyFilterAlbums": "Album", "@historyFilterAlbums": { "description": "Filter chip - show albums only" }, "historyFilterSingles": "Singoli", "@historyFilterSingles": { "description": "Filter chip - show singles only" }, "historySearchHint": "Cronologia ricerche...", "@historySearchHint": { "description": "Search bar placeholder in history" }, "settingsTitle": "Impostazioni", "@settingsTitle": { "description": "Settings screen title" }, "settingsDownload": "Download", "@settingsDownload": { "description": "Settings section - download options" }, "settingsAppearance": "Aspetto", "@settingsAppearance": { "description": "Settings section - visual customization" }, "settingsExtensions": "Estensioni", "@settingsExtensions": { "description": "Settings section - extension management" }, "settingsAbout": "Info", "@settingsAbout": { "description": "Settings section - app info" }, "downloadTitle": "Download", "@downloadTitle": { "description": "Download settings page title" }, "downloadAskQualitySubtitle": "Mostra scelta qualità per ogni download", "@downloadAskQualitySubtitle": { "description": "Subtitle for ask quality toggle" }, "downloadFilenameFormat": "Formato nome file", "@downloadFilenameFormat": { "description": "Setting for output filename pattern" }, "downloadSingleFilenameFormat": "Formato nome file singolo", "@downloadSingleFilenameFormat": { "description": "Setting for output filename pattern for singles/EPs" }, "downloadSingleFilenameFormatDescription": "Modello di nome file per singoli ed EP. Utilizza gli stessi tag del formato album.", "@downloadSingleFilenameFormatDescription": { "description": "Subtitle description for single filename format setting" }, "downloadFolderOrganization": "Organizzazione cartella", "@downloadFolderOrganization": { "description": "Title of the folder organization picker bottom sheet" }, "appearanceTitle": "Aspetto", "@appearanceTitle": { "description": "Appearance settings page title" }, "appearanceThemeSystem": "Sistema", "@appearanceThemeSystem": { "description": "Follow system theme" }, "appearanceThemeLight": "Chiaro", "@appearanceThemeLight": { "description": "Light theme" }, "appearanceThemeDark": "Scuro", "@appearanceThemeDark": { "description": "Dark theme" }, "appearanceDynamicColor": "Colore dinamico", "@appearanceDynamicColor": { "description": "Material You dynamic colors" }, "appearanceDynamicColorSubtitle": "Usa colori dal tuo sfondo", "@appearanceDynamicColorSubtitle": { "description": "Subtitle for dynamic color" }, "appearanceHistoryView": "Cronologia aspetto", "@appearanceHistoryView": { "description": "Layout style for history" }, "appearanceHistoryViewList": "Lista", "@appearanceHistoryViewList": { "description": "List layout option" }, "appearanceHistoryViewGrid": "Griglia", "@appearanceHistoryViewGrid": { "description": "Grid layout option" }, "optionsPrimaryProvider": "Provider primario", "@optionsPrimaryProvider": { "description": "Main search provider setting" }, "optionsPrimaryProviderSubtitle": "Servizio usato per la ricerca di brani o album", "@optionsPrimaryProviderSubtitle": { "description": "Subtitle for primary provider" }, "optionsUsingExtension": "Estensione usata: {extensionName}", "@optionsUsingExtension": { "description": "Shows active extension name", "placeholders": { "extensionName": { "type": "String" } } }, "optionsDefaultSearchTab": "Scheda di ricerca predefinita", "@optionsDefaultSearchTab": { "description": "Title for the preferred default search tab setting" }, "optionsDefaultSearchTabSubtitle": "Scegli la scheda da aprire per la ricerca di nuovi risultati.", "@optionsDefaultSearchTabSubtitle": { "description": "Subtitle for the preferred default search tab setting" }, "optionsAutoFallback": "Fallback automatico", "@optionsAutoFallback": { "description": "Auto-retry with other services" }, "optionsAutoFallbackSubtitle": "Prova altri servizi se il download fallisce", "@optionsAutoFallbackSubtitle": { "description": "Subtitle for auto fallback" }, "optionsEmbedLyrics": "Incorpora Testo", "@optionsEmbedLyrics": { "description": "Embed lyrics in audio files" }, "optionsEmbedLyricsSubtitle": "Salva i testi sincronizzati accanto alle tracce scaricate", "@optionsEmbedLyricsSubtitle": { "description": "Subtitle for embed lyrics" }, "optionsReplayGain": "ReplayGain", "@optionsReplayGain": { "description": "Title for ReplayGain setting toggle" }, "optionsReplayGainSubtitleOn": "Scan loudness and embed ReplayGain tags (EBU R128)", "@optionsReplayGainSubtitleOn": { "description": "Subtitle when ReplayGain is enabled" }, "optionsReplayGainSubtitleOff": "Disabled: no loudness normalization tags", "@optionsReplayGainSubtitleOff": { "description": "Subtitle when ReplayGain is disabled" }, "trackReplayGain": "Rescan ReplayGain", "@trackReplayGain": { "description": "Three-dot menu option to scan loudness and write ReplayGain tags" }, "trackReplayGainScanning": "Analyzing loudness...", "@trackReplayGainScanning": { "description": "Snackbar/progress message while scanning ReplayGain for a single track" }, "trackReplayGainSuccess": "ReplayGain tags added", "@trackReplayGainSuccess": { "description": "Snackbar message after ReplayGain tags written for a single track" }, "trackReplayGainFailed": "Failed to add ReplayGain tags", "@trackReplayGainFailed": { "description": "Snackbar message when ReplayGain scan/write fails" }, "selectionReplayGainCount": "ReplayGain ({count})", "@selectionReplayGainCount": { "description": "Batch selection action button label for ReplayGain", "placeholders": { "count": { "type": "int" } } }, "replayGainBatchConfirmTitle": "Add ReplayGain", "@replayGainBatchConfirmTitle": { "description": "Title of the batch ReplayGain confirmation dialog" }, "replayGainBatchConfirmMessage": "Analyze loudness and write ReplayGain tags to {count} track(s)?", "@replayGainBatchConfirmMessage": { "description": "Message of the batch ReplayGain confirmation dialog", "placeholders": { "count": { "type": "int" } } }, "replayGainBatchAnalyzing": "Analyzing ReplayGain...", "@replayGainBatchAnalyzing": { "description": "Progress dialog title while batch scanning ReplayGain" }, "replayGainBatchSuccess": "ReplayGain added to {success} of {total} tracks", "@replayGainBatchSuccess": { "description": "Snackbar after batch ReplayGain completes", "placeholders": { "success": { "type": "int" }, "total": { "type": "int" } } }, "optionsArtistTagMode": "Artist Tag Mode", "@optionsArtistTagMode": { "description": "Setting title for how artist metadata is written into files" }, "optionsArtistTagModeDescription": "Choose how multiple artists are written into embedded tags.", "@optionsArtistTagModeDescription": { "description": "Bottom-sheet description for artist tag mode setting" }, "optionsArtistTagModeJoined": "Single joined value", "@optionsArtistTagModeJoined": { "description": "Artist tag mode option that joins multiple artists into one value" }, "optionsArtistTagModeJoinedSubtitle": "Write one ARTIST value like \"Artist A, Artist B\" for maximum player compatibility.", "@optionsArtistTagModeJoinedSubtitle": { "description": "Subtitle for joined artist tag mode" }, "optionsArtistTagModeSplitVorbis": "Split tags for FLAC/Opus", "@optionsArtistTagModeSplitVorbis": { "description": "Artist tag mode option that writes repeated ARTIST tags for Vorbis formats" }, "optionsArtistTagModeSplitVorbisSubtitle": "Write one artist tag per artist for FLAC and Opus; MP3 and M4A stay joined.", "@optionsArtistTagModeSplitVorbisSubtitle": { "description": "Subtitle for split Vorbis artist tag mode" }, "optionsExtensionStore": "Extension Repo", "@optionsExtensionStore": { "description": "Show/hide repo tab" }, "optionsExtensionStoreSubtitle": "Show Repo tab in navigation", "@optionsExtensionStoreSubtitle": { "description": "Subtitle for extension repo toggle" }, "optionsCheckUpdates": "Controlla aggiornamenti", "@optionsCheckUpdates": { "description": "Auto update check toggle" }, "optionsCheckUpdatesSubtitle": "Notifica quando una nuova versione è disponibile", "@optionsCheckUpdatesSubtitle": { "description": "Subtitle for update check" }, "optionsUpdateChannel": "Aggiorna canale", "@optionsUpdateChannel": { "description": "Stable vs preview releases" }, "optionsUpdateChannelStable": "Solo versioni stabili", "@optionsUpdateChannelStable": { "description": "Only stable updates" }, "optionsUpdateChannelPreview": "Ottieni le versioni in anteprima", "@optionsUpdateChannelPreview": { "description": "Include beta/preview updates" }, "optionsUpdateChannelWarning": "L'anteprima può contenere bug o funzionalità incomplete", "@optionsUpdateChannelWarning": { "description": "Warning about preview channel" }, "optionsClearHistory": "Svuota la cronologia dei download", "@optionsClearHistory": { "description": "Delete all download history" }, "optionsClearHistorySubtitle": "Rimuovi tutte le tracce scaricate dalla cronologia", "@optionsClearHistorySubtitle": { "description": "Subtitle for clear history" }, "optionsDetailedLogging": "Log dettagliato", "@optionsDetailedLogging": { "description": "Enable verbose logs for debugging" }, "optionsDetailedLoggingOn": "Detailed logs are being recorded", "@optionsDetailedLoggingOn": { "description": "Status when logging enabled" }, "optionsDetailedLoggingOff": "Enable for bug reports", "@optionsDetailedLoggingOff": { "description": "Status when logging disabled" }, "extensionsTitle": "Estensioni", "@extensionsTitle": { "description": "Extensions page title" }, "extensionsDisabled": "Disabilitato", "@extensionsDisabled": { "description": "Extension status - inactive" }, "extensionsVersion": "Versione {version}", "@extensionsVersion": { "description": "Extension version display", "placeholders": { "version": { "type": "String" } } }, "extensionsUninstall": "Disinstalla", "@extensionsUninstall": { "description": "Uninstall extension button" }, "storeTitle": "Extension Repo", "@storeTitle": { "description": "Repo screen title" }, "storeSearch": "Cerca estensioni...", "@storeSearch": { "description": "Repo search placeholder" }, "storeInstall": "Installa", "@storeInstall": { "description": "Install extension button" }, "storeInstalled": "Installata", "@storeInstalled": { "description": "Already installed badge" }, "storeUpdate": "Aggiorna", "@storeUpdate": { "description": "Update available button" }, "aboutTitle": "Informazioni su...", "@aboutTitle": { "description": "About page title" }, "aboutContributors": "Collaboratori", "@aboutContributors": { "description": "Section for contributors" }, "aboutMobileDeveloper": "Sviluppatore versione mobile", "@aboutMobileDeveloper": { "description": "Role description for mobile dev" }, "aboutOriginalCreator": "Creatore dello SpotiFLAC originale", "@aboutOriginalCreator": { "description": "Role description for original creator" }, "aboutLogoArtist": "Il talentuoso artista che ha creato il nostro bellissimo logo!", "@aboutLogoArtist": { "description": "Role description for logo artist" }, "aboutTranslators": "Traduttori", "@aboutTranslators": { "description": "Section for translators" }, "aboutSpecialThanks": "Ringraziamenti speciali", "@aboutSpecialThanks": { "description": "Section for special thanks" }, "aboutLinks": "Link", "@aboutLinks": { "description": "Section for external links" }, "aboutMobileSource": "Codice sorgente mobile", "@aboutMobileSource": { "description": "Link to mobile GitHub repo" }, "aboutPCSource": "Codice sorgente PC", "@aboutPCSource": { "description": "Link to PC GitHub repo" }, "aboutKeepAndroidOpen": "Mantieni android aperto", "@aboutKeepAndroidOpen": { "description": "Link to Keep Android Open campaign website" }, "aboutReportIssue": "Segnala un problema", "@aboutReportIssue": { "description": "Link to report bugs" }, "aboutReportIssueSubtitle": "Segnala ogni problema che incontri", "@aboutReportIssueSubtitle": { "description": "Subtitle for report issue" }, "aboutFeatureRequest": "Richiesta di nuove funzionalità", "@aboutFeatureRequest": { "description": "Link to suggest features" }, "aboutFeatureRequestSubtitle": "Suggerisci nuove funzionalità per l'applicazione", "@aboutFeatureRequestSubtitle": { "description": "Subtitle for feature request" }, "aboutTelegramChannel": "Canale Telegram", "@aboutTelegramChannel": { "description": "Link to Telegram channel" }, "aboutTelegramChannelSubtitle": "Annunci e aggiornamenti", "@aboutTelegramChannelSubtitle": { "description": "Subtitle for Telegram channel" }, "aboutTelegramChat": "Comunità Telegram", "@aboutTelegramChat": { "description": "Link to Telegram chat group" }, "aboutTelegramChatSubtitle": "Parla con altri utenti", "@aboutTelegramChatSubtitle": { "description": "Subtitle for Telegram chat" }, "aboutSocial": "Social", "@aboutSocial": { "description": "Section for social links" }, "aboutApp": "Applicazione", "@aboutApp": { "description": "Section for app info" }, "aboutVersion": "Versione", "@aboutVersion": { "description": "Version info label" }, "aboutBinimumDesc": "Il creatore di QQDL e HiFi API. Questo progetto ha aiutato a rifinire il supporto per i download lossless.", "@aboutBinimumDesc": { "description": "Credit description for binimum" }, "aboutSachinsenalDesc": "Il creatore originale del progetto HiFi. Fondazione per l'integrazione di sorgenti lossless.", "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, "aboutAppDescription": "Cerca i metadati, gestisci le estensioni e organizza la tua libreria.", "@aboutAppDescription": { "description": "App description in header card" }, "artistAlbums": "Album", "@artistAlbums": { "description": "Section header for artist albums" }, "artistSingles": "Singoli ed EP", "@artistSingles": { "description": "Section header for singles/EPs" }, "artistCompilations": "Compilation", "@artistCompilations": { "description": "Section header for compilations" }, "artistPopular": "Popolari", "@artistPopular": { "description": "Section header for popular/top tracks" }, "artistMonthlyListeners": "{count} ascoltatori mensili", "@artistMonthlyListeners": { "description": "Monthly listener count display", "placeholders": { "count": { "type": "String", "description": "Formatted listener count" } } }, "trackMetadataService": "Servizi", "@trackMetadataService": { "description": "Metadata field - download service used" }, "trackMetadataPlay": "Riproduci", "@trackMetadataPlay": { "description": "Action button - play track" }, "trackMetadataShare": "Condividi", "@trackMetadataShare": { "description": "Action button - share track" }, "trackMetadataDelete": "Elimina", "@trackMetadataDelete": { "description": "Action button - delete track" }, "setupGrantPermission": "Grant Permission", "@setupGrantPermission": { "description": "Button to request permission" }, "setupSkip": "Salta per ora", "@setupSkip": { "description": "Skip current step button" }, "setupStorageAccessRequired": "Accesso alla memoria richiesto", "@setupStorageAccessRequired": { "description": "Title when storage access needed" }, "setupStorageAccessMessageAndroid11": "Android 11+ richiede il permesso \"Accesso a tutti i file\" per salvare i download nella cartella selezionata.", "@setupStorageAccessMessageAndroid11": { "description": "Android 11+ specific explanation" }, "setupOpenSettings": "Apri impostazioni", "@setupOpenSettings": { "description": "Button to open system settings" }, "setupPermissionDeniedMessage": "Permesso negato. Per favore fornisci tutti i permessi per continuare.", "@setupPermissionDeniedMessage": { "description": "Error when permission denied" }, "setupPermissionRequired": "{permissionType} Permesso richiesto", "@setupPermissionRequired": { "description": "Generic permission required title", "placeholders": { "permissionType": { "type": "String", "description": "Type of permission (Storage/Notification)" } } }, "setupPermissionRequiredMessage": "{permissionType} permesso richiesto per la migliore esperienza. Puoi cambiarlo in ogni momento nelle impostazioni.", "@setupPermissionRequiredMessage": { "description": "Generic permission required message", "placeholders": { "permissionType": { "type": "String" } } }, "setupUseDefaultFolder": "Usare la cartella predefinita?", "@setupUseDefaultFolder": { "description": "Dialog title for default folder" }, "setupNoFolderSelected": "Nessuna cartella selezionata. Vuoi usare la cartella Musica predefinita?", "@setupNoFolderSelected": { "description": "Prompt when no folder selected" }, "setupUseDefault": "Usa predefinita", "@setupUseDefault": { "description": "Button to use default folder" }, "setupDownloadLocationTitle": "Posizione download", "@setupDownloadLocationTitle": { "description": "Download location dialog title" }, "setupDownloadLocationIosMessage": "Su iOS, i download sono salvati nella cartella dell'app in Documenti. Puoi accedervi tramite l'app File.", "@setupDownloadLocationIosMessage": { "description": "iOS-specific folder info" }, "setupAppDocumentsFolder": "App Documents Folder", "@setupAppDocumentsFolder": { "description": "iOS documents folder option" }, "setupAppDocumentsFolderSubtitle": "Raccomandato - accessibile via app File", "@setupAppDocumentsFolderSubtitle": { "description": "Subtitle for documents folder" }, "setupChooseFromFiles": "Scegli dai file", "@setupChooseFromFiles": { "description": "iOS file picker option" }, "setupChooseFromFilesSubtitle": "Seleziona iCloud o altre posizioni", "@setupChooseFromFilesSubtitle": { "description": "Subtitle for file picker" }, "setupIosEmptyFolderWarning": "Limitazione iOS: Le cartelle vuote non possono essere selezionate. Scegli una cartella con almeno un file.", "@setupIosEmptyFolderWarning": { "description": "iOS folder selection warning" }, "setupIcloudNotSupported": "iCloud Drive non è supportato. Per favore, usa la cartella Documenti dell'app", "@setupIcloudNotSupported": { "description": "Error when user selects iCloud Drive on iOS" }, "setupDownloadInFlac": "Download music in lossless and Hi-Res quality", "@setupDownloadInFlac": { "description": "App tagline in setup" }, "setupStorageGranted": "Permesso di archiviazione concesso!", "@setupStorageGranted": { "description": "Success message for storage permission" }, "setupStorageRequired": "Permesso di archiviazione richiesto", "@setupStorageRequired": { "description": "Title when storage permission needed" }, "setupStorageDescription": "SpotiFLAC ha bisogno del permesso di archiviazione per salvare i file musicali scaricati.", "@setupStorageDescription": { "description": "Explanation for storage permission" }, "setupNotificationGranted": "Permesso di notifica concesso!", "@setupNotificationGranted": { "description": "Success message for notification permission" }, "setupNotificationEnable": "Attiva notifiche", "@setupNotificationEnable": { "description": "Button to enable notifications" }, "setupFolderChoose": "Scegli la cartella di download", "@setupFolderChoose": { "description": "Button to choose folder" }, "setupFolderDescription": "Seleziona una cartella dove la musica scaricata verrà salvata.", "@setupFolderDescription": { "description": "Explanation for folder selection" }, "setupSelectFolder": "Seleziona cartella", "@setupSelectFolder": { "description": "Button to select folder" }, "setupEnableNotifications": "Attiva notifiche", "@setupEnableNotifications": { "description": "Button to enable notifications" }, "setupNotificationBackgroundDescription": "Ricevi notifiche sull'avanzamento e sul completamento dei download. Questo ti aiuta a monitorare i download quando l'app è in background.", "@setupNotificationBackgroundDescription": { "description": "Detailed notification explanation" }, "setupSkipForNow": "Salta per adesso", "@setupSkipForNow": { "description": "Skip button text" }, "setupNext": "Prossimo", "@setupNext": { "description": "Next button text" }, "setupGetStarted": "Iniziamo", "@setupGetStarted": { "description": "Final setup button" }, "setupAllowAccessToManageFiles": "Per favore, attiva \"Consenti accesso per gestire tutti i file\" nella prossima schermata.", "@setupAllowAccessToManageFiles": { "description": "Instruction for file access permission" }, "setupLanguageTitle": "Scegli lingua", "@setupLanguageTitle": { "description": "Title for the language selection step in setup" }, "setupLanguageDescription": "Seleziona la tua lingua preferita per l'applicazione. Puoi cambiarla in ogni momento nelle impostazioni.", "@setupLanguageDescription": { "description": "Description for the language selection step in setup" }, "setupLanguageSystemDefault": "Sistema predefinito", "@setupLanguageSystemDefault": { "description": "Option to use the system language" }, "dialogCancel": "Cancella", "@dialogCancel": { "description": "Dialog button - cancel action" }, "dialogSave": "Salva", "@dialogSave": { "description": "Dialog button - save changes" }, "dialogDelete": "Elimina", "@dialogDelete": { "description": "Dialog button - delete item" }, "dialogRetry": "Riprova", "@dialogRetry": { "description": "Dialog button - retry action" }, "dialogClear": "Cancella", "@dialogClear": { "description": "Dialog button - clear items" }, "dialogDone": "Fatto", "@dialogDone": { "description": "Dialog button - action completed" }, "dialogImport": "Importa", "@dialogImport": { "description": "Dialog button - import data" }, "dialogDownload": "Scarica", "@dialogDownload": { "description": "Confirm button in Download All dialog" }, "previewPlay": "Riproduci anteprima", "@previewPlay": { "description": "Tooltip for the button that plays a short track preview snippet" }, "previewStop": "Ferma anteprima", "@previewStop": { "description": "Tooltip for the button that stops the playing track preview snippet" }, "previewUnavailable": "Anteprima non disponibile", "@previewUnavailable": { "description": "Snackbar shown when a track preview snippet cannot be played" }, "dialogDiscard": "Scarta", "@dialogDiscard": { "description": "Dialog button - discard changes" }, "dialogRemove": "Rimuovi", "@dialogRemove": { "description": "Dialog button - remove item" }, "dialogUninstall": "Disinstalla", "@dialogUninstall": { "description": "Dialog button - uninstall extension" }, "dialogDiscardChanges": "Scartare i cambiamenti?", "@dialogDiscardChanges": { "description": "Dialog title - unsaved changes warning" }, "dialogUnsavedChanges": "Hai dei cambiamenti non salvati. Vuoi scartarli?", "@dialogUnsavedChanges": { "description": "Dialog message - unsaved changes" }, "dialogClearAll": "Pulisci tutto", "@dialogClearAll": { "description": "Dialog title - clear all items" }, "dialogRemoveExtension": "Rimuovi estensione", "@dialogRemoveExtension": { "description": "Dialog title - uninstall extension" }, "dialogRemoveExtensionMessage": "Sei sicuro di voler rimuovere l'estensione? Questa azione è irreversibile.", "@dialogRemoveExtensionMessage": { "description": "Dialog message - uninstall confirmation" }, "dialogUninstallExtension": "Disinstallare l'estensione?", "@dialogUninstallExtension": { "description": "Dialog title - uninstall extension" }, "dialogUninstallExtensionMessage": "Sei sicuro di voler rimuovere {extensionName}?", "@dialogUninstallExtensionMessage": { "description": "Dialog message - uninstall specific extension", "placeholders": { "extensionName": { "type": "String" } } }, "dialogClearHistoryTitle": "Cancella la cronologia", "@dialogClearHistoryTitle": { "description": "Dialog title - clear download history" }, "dialogClearHistoryMessage": "Sei sicuro di voler cancellare la cronologia dei download? Questa azione è irreversibile.", "@dialogClearHistoryMessage": { "description": "Dialog message - clear history confirmation" }, "dialogDeleteSelectedTitle": "Elimina selezionato", "@dialogDeleteSelectedTitle": { "description": "Dialog title - delete selected items" }, "dialogDeleteSelectedMessage": "Elimina {count} {count, plural, one {}=1{traccia} other{tracce}} dalla cronologia?\n\nEliminerà anche i file dalla memoria.", "@dialogDeleteSelectedMessage": { "description": "Dialog message - delete selected tracks", "placeholders": { "count": { "type": "int" } } }, "dialogImportPlaylistTitle": "Importa playlist", "@dialogImportPlaylistTitle": { "description": "Dialog title - import CSV playlist" }, "dialogImportPlaylistMessage": "Trovate {count} nel file della playlist. Vuoi aggiungerle alla coda dei download?", "csvImportTracks": "{count} tracce dal CSV", "@csvImportTracks": { "description": "Label shown in quality picker for CSV import", "placeholders": { "count": { "type": "int" } } }, "collectionExportM3u": "Esporta come M3U8", "@collectionExportM3u": { "description": "Tooltip on the collection screen action that exports the track list as an M3U8 playlist file" }, "collectionExportM3uDone": "Esportate {exported} di {total} tracce", "@collectionExportM3uDone": { "description": "Snackbar after M3U8 export; tracks without a local file are not exported", "placeholders": { "exported": { "type": "int" }, "total": { "type": "int" } } }, "collectionExportM3uNone": "Nessun file scaricato da esportare", "@collectionExportM3uNone": { "description": "Snackbar when an M3U8 export finds no local files" }, "collectionExportM3uFailed": "Esportazione fallita", "@collectionExportM3uFailed": { "description": "Snackbar when writing or sharing the M3U8 export fails" }, "trackOpenOn": "Apri con...", "@trackOpenOn": { "description": "Track option and sheet title listing streaming platforms where the track can be opened" }, "trackOpenOnNoLinks": "Nessun link trovato sulle piattaforme per questa traccia.", "@trackOpenOnNoLinks": { "description": "Shown in the Open on sheet when song.link returns no links" }, "libraryReviewDuplicates": "Controlla i duplicati", "@libraryReviewDuplicates": { "description": "Library settings row opening the duplicate review sheet" }, "libraryReviewDuplicatesSubtitle": "Trovate tracce salvate più di una volta", "@libraryReviewDuplicatesSubtitle": { "description": "Subtitle for the duplicate review settings row" }, "duplicatesTitle": "Duplicati", "@duplicatesTitle": { "description": "Title of the duplicate review sheet" }, "duplicatesEmpty": "Non sono state trovate tracce duplicate.", "@duplicatesEmpty": { "description": "Shown when the duplicate review sheet finds nothing" }, "duplicatesKeepBest": "Mantieni il migliore", "@duplicatesKeepBest": { "description": "Button that deletes all but the highest-quality copy in a duplicate group" }, "duplicatesKeepBestMessage": "Eliminare {count} copie con qualità minore di \"{trackName}\"?", "@duplicatesKeepBestMessage": { "description": "Confirmation message for the keep-best action", "placeholders": { "count": { "type": "int" }, "trackName": { "type": "String" } } }, "duplicatesDeleteCopyMessage": "Eliminare questa copia di \"{trackName}\"?", "@duplicatesDeleteCopyMessage": { "description": "Confirmation message for deleting one duplicate copy", "placeholders": { "trackName": { "type": "String" } } }, "@dialogImportPlaylistMessage": { "description": "Dialog message - import playlist confirmation", "placeholders": { "count": { "type": "int" } } }, "snackbarAddedToQueue": "Aggiunta \"{trackName}\" alla coda", "@snackbarAddedToQueue": { "description": "Snackbar - track added to download queue", "placeholders": { "trackName": { "type": "String" } } }, "snackbarAddedTracksToQueue": "Aggiunte {count} tracce alla coda", "@snackbarAddedTracksToQueue": { "description": "Snackbar - multiple tracks added to queue", "placeholders": { "count": { "type": "int" } } }, "snackbarAlreadyDownloaded": "\"{trackName}\" già scaricata", "@snackbarAlreadyDownloaded": { "description": "Snackbar - track already exists", "placeholders": { "trackName": { "type": "String" } } }, "snackbarAlreadyInLibrary": "\"{trackName}\" già esiste nella tua libreria", "@snackbarAlreadyInLibrary": { "description": "Snackbar - track already exists in local library", "placeholders": { "trackName": { "type": "String" } } }, "snackbarHistoryCleared": "Cronologia cancellata", "@snackbarHistoryCleared": { "description": "Snackbar - history deleted" }, "snackbarDeletedTracks": "Eliminate {count} {count, plural, one {}=1{traccia} other{tracce}}", "@snackbarDeletedTracks": { "description": "Snackbar - tracks deleted", "placeholders": { "count": { "type": "int" } } }, "snackbarCannotOpenFile": "Impossibile aprire file: {error}", "@snackbarCannotOpenFile": { "description": "Snackbar - file open error", "placeholders": { "error": { "type": "String" } } }, "snackbarViewQueue": "Vedi coda", "@snackbarViewQueue": { "description": "Snackbar action - view download queue" }, "snackbarUrlCopied": "{platform} URL copiato", "@snackbarUrlCopied": { "description": "Snackbar - URL copied", "placeholders": { "platform": { "type": "String", "description": "Platform name (Spotify/Deezer)" } } }, "snackbarFileNotFound": "File non trovato", "@snackbarFileNotFound": { "description": "Snackbar - file doesn't exist" }, "snackbarSelectExtFile": "Per favore, seleziona un file .spotiflac-ext", "@snackbarSelectExtFile": { "description": "Snackbar - wrong file type selected" }, "snackbarProviderPrioritySaved": "Priorità servizi salvata", "@snackbarProviderPrioritySaved": { "description": "Snackbar - provider order saved" }, "snackbarMetadataProviderSaved": "Priorità servizi metadati salvata", "@snackbarMetadataProviderSaved": { "description": "Snackbar - metadata provider order saved" }, "snackbarExtensionInstalled": "{extensionName} installata.", "@snackbarExtensionInstalled": { "description": "Snackbar - extension installed successfully", "placeholders": { "extensionName": { "type": "String" } } }, "snackbarExtensionUpdated": "{extensionName} aggiornata.", "@snackbarExtensionUpdated": { "description": "Snackbar - extension updated successfully", "placeholders": { "extensionName": { "type": "String" } } }, "snackbarFailedToInstall": "Impossibile installare l'estensione", "@snackbarFailedToInstall": { "description": "Snackbar - extension install error" }, "snackbarFailedToUpdate": "Impossibile aggiornare l'estensione", "@snackbarFailedToUpdate": { "description": "Snackbar - extension update error" }, "errorRateLimited": "Limite di richieste superato", "@errorRateLimited": { "description": "Error title - too many requests" }, "errorRateLimitedMessage": "Troppe richieste. Aspetta un momento prima di cercare nuovamente.", "@errorRateLimitedMessage": { "description": "Error message - rate limit explanation" }, "errorNoTracksFound": "Nessuna traccia trovata", "@errorNoTracksFound": { "description": "Error - search returned no results" }, "searchEmptyResultSubtitle": "Prova un'altra parola chiave", "@searchEmptyResultSubtitle": { "description": "Subtitle shown under the empty search result state on the home screen" }, "errorUrlNotRecognized": "Link non riconosciuto", "@errorUrlNotRecognized": { "description": "Error title - URL not handled by any extension or service" }, "errorUrlNotRecognizedMessage": "Questo link non è supportato. Controlla che l'URL sia corretto e che un'estensione compatibile sia installata.", "@errorUrlNotRecognizedMessage": { "description": "Error message - URL not recognized explanation" }, "errorUrlFetchFailed": "Impossibile caricare il contenuto da questo link. Per favore riprova.", "@errorUrlFetchFailed": { "description": "Error message - generic URL fetch failure" }, "errorMissingExtensionSource": "Impossibile caricare {item}: sorgente dell'estensione mancante", "@errorMissingExtensionSource": { "description": "Error - extension source not available", "placeholders": { "item": { "type": "String" } } }, "actionPause": "Pausa", "@actionPause": { "description": "Action button - pause download" }, "actionResume": "Riprendi", "@actionResume": { "description": "Action button - resume download" }, "actionCancel": "Cancella", "@actionCancel": { "description": "Action button - cancel operation" }, "actionSelectAll": "Seleziona tutto", "@actionSelectAll": { "description": "Action button - select all items" }, "actionDeselect": "Deseleziona", "@actionDeselect": { "description": "Action button - deselect all" }, "selectionSelected": "{count} selezionati", "@selectionSelected": { "description": "Selection count indicator", "placeholders": { "count": { "type": "int" } } }, "selectionAllSelected": "Tutte le tracce selezionate", "@selectionAllSelected": { "description": "Status - all items selected" }, "selectionSelectToDelete": "Seleziona tracce da eliminare", "@selectionSelectToDelete": { "description": "Placeholder when nothing selected" }, "progressFetchingMetadata": "Recupero metadata... {current}/{total}", "@progressFetchingMetadata": { "description": "Progress indicator - loading track info", "placeholders": { "current": { "type": "int" }, "total": { "type": "int" } } }, "progressReadingCsv": "Leggendo CSV...", "@progressReadingCsv": { "description": "Progress indicator - parsing CSV file" }, "searchSongs": "Canzoni", "@searchSongs": { "description": "Search result category - songs" }, "searchArtists": "Artisti", "@searchArtists": { "description": "Search result category - artists" }, "searchAlbums": "Album", "@searchAlbums": { "description": "Search result category - albums" }, "searchPlaylists": "Playlist", "@searchPlaylists": { "description": "Search result category - playlists" }, "searchSortTitle": "Ordina i risultati", "@searchSortTitle": { "description": "Bottom sheet title for search sort options" }, "searchSortDefault": "Predefinito", "@searchSortDefault": { "description": "Sort option - default API order" }, "searchSortTitleAZ": "Titoli (A-Z)", "@searchSortTitleAZ": { "description": "Sort option - title ascending" }, "searchSortTitleZA": "Titoli (Z-A)", "@searchSortTitleZA": { "description": "Sort option - title descending" }, "searchSortArtistAZ": "Artisti (A-Z)", "@searchSortArtistAZ": { "description": "Sort option - artist ascending" }, "searchSortArtistZA": "Artisti (Z-A)", "@searchSortArtistZA": { "description": "Sort option - artist descending" }, "searchSortDurationShort": "Durata (Più breve)", "@searchSortDurationShort": { "description": "Sort option - shortest duration first" }, "searchSortDurationLong": "Durata (Più lunga)", "@searchSortDurationLong": { "description": "Sort option - longest duration first" }, "searchSortDateOldest": "Data di uscita (Più recente)", "@searchSortDateOldest": { "description": "Sort option - oldest release first" }, "searchSortDateNewest": "Data di uscita (Meno recente)", "@searchSortDateNewest": { "description": "Sort option - newest release first" }, "tooltipPlay": "Play", "@tooltipPlay": { "description": "Tooltip - play button" }, "filenameFormat": "Filename Format", "@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": "No organization", "@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": "By Artist", "@folderOrganizationByArtist": { "description": "Folder option - artist folders" }, "folderOrganizationByAlbum": "By Album", "@folderOrganizationByAlbum": { "description": "Folder option - album folders" }, "folderOrganizationByArtistAlbum": "Artist/Album", "@folderOrganizationByArtistAlbum": { "description": "Folder option - nested folders" }, "folderOrganizationDescription": "Organize downloaded files into folders", "@folderOrganizationDescription": { "description": "Folder organization sheet description" }, "folderOrganizationNoneSubtitle": "All files in download folder", "@folderOrganizationNoneSubtitle": { "description": "Subtitle for no organization option" }, "folderOrganizationByArtistSubtitle": "Separate folder for each artist", "@folderOrganizationByArtistSubtitle": { "description": "Subtitle for artist folder option" }, "folderOrganizationByAlbumSubtitle": "Separate folder for each album", "@folderOrganizationByAlbumSubtitle": { "description": "Subtitle for album folder option" }, "folderOrganizationByArtistAlbumSubtitle": "Nested folders for artist and album", "@folderOrganizationByArtistAlbumSubtitle": { "description": "Subtitle for nested folder option" }, "updateAvailable": "Update Available", "@updateAvailable": { "description": "Update dialog title" }, "updateLater": "Later", "@updateLater": { "description": "Update button - dismiss" }, "updateStartingDownload": "Starting download...", "@updateStartingDownload": { "description": "Update status - initializing" }, "updateDownloadFailed": "Download failed", "@updateDownloadFailed": { "description": "Update error title" }, "updateFailedMessage": "Failed to download update", "@updateFailedMessage": { "description": "Update error message" }, "updateNewVersionReady": "A new version is ready", "@updateNewVersionReady": { "description": "Update subtitle" }, "updateRequiredTitle": "Update required", "@updateRequiredTitle": { "description": "Title of the mandatory update dialog shown when the installed version is too old" }, "updateRequiredNotice": "This version is {count} releases behind and is no longer supported. Update to keep using the app.", "@updateRequiredNotice": { "description": "Subtitle of the mandatory update dialog; explains why the dialog cannot be dismissed", "placeholders": { "count": { "type": "int" } } }, "updateCurrent": "Current", "@updateCurrent": { "description": "Label for current version" }, "updateNew": "New", "@updateNew": { "description": "Label for new version" }, "updateDownloading": "Downloading...", "@updateDownloading": { "description": "Update status - downloading" }, "updateWhatsNew": "What's New", "@updateWhatsNew": { "description": "Changelog section title" }, "updateDownloadInstall": "Download & Install", "@updateDownloadInstall": { "description": "Update button - download and install" }, "updateDontRemind": "Don't remind", "@updateDontRemind": { "description": "Update button - skip this version" }, "providerPriorityTitle": "Provider Priority", "@providerPriorityTitle": { "description": "Provider priority page title" }, "providerPriorityDescription": "Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.", "@providerPriorityDescription": { "description": "Provider priority page description" }, "providerPriorityInfo": "If a track is not available on the first provider, the app will automatically try the next one.", "@providerPriorityInfo": { "description": "Info tip about fallback behavior" }, "providerPriorityFallbackExtensionsDescription": "Choose which installed download extensions can be used during automatic fallback.", "@providerPriorityFallbackExtensionsDescription": { "description": "Section description for extension fallback selection" }, "providerPriorityFallbackExtensionsHint": "Only enabled extensions with download-provider capability are listed here.", "@providerPriorityFallbackExtensionsHint": { "description": "Hint below the extension fallback selection list" }, "providerExtension": "Extension", "@providerExtension": { "description": "Label for extension-provided providers" }, "metadataProviderPriorityTitle": "Metadata Priority", "@metadataProviderPriorityTitle": { "description": "Metadata priority page title" }, "metadataProviderPriorityDescription": "Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.", "@metadataProviderPriorityDescription": { "description": "Metadata priority page description" }, "metadataProviderPriorityInfo": "Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.", "@metadataProviderPriorityInfo": { "description": "Info tip about rate limits" }, "logTitle": "Logs", "@logTitle": { "description": "Logs screen title" }, "logCopied": "Logs copied to clipboard", "@logCopied": { "description": "Snackbar - logs copied" }, "logSearchHint": "Search logs...", "@logSearchHint": { "description": "Log search placeholder" }, "logFilterLevel": "Level", "@logFilterLevel": { "description": "Filter by log level" }, "logFilterSection": "Filter", "@logFilterSection": { "description": "Filter section title" }, "logShareLogs": "Share logs", "@logShareLogs": { "description": "Share button tooltip" }, "logClearLogs": "Clear logs", "@logClearLogs": { "description": "Clear button tooltip" }, "logClearLogsTitle": "Clear Logs", "@logClearLogsTitle": { "description": "Clear logs dialog title" }, "logClearLogsMessage": "Are you sure you want to clear all logs?", "@logClearLogsMessage": { "description": "Clear logs confirmation message" }, "logFilterBySeverity": "Filter logs by severity", "@logFilterBySeverity": { "description": "Filter dialog title" }, "logNoLogsYet": "No logs yet", "@logNoLogsYet": { "description": "Empty state title" }, "logNoLogsYetSubtitle": "I log appariranno qui man mano che usi l'app", "@logNoLogsYetSubtitle": { "description": "Empty state subtitle" }, "logEntriesFiltered": "Voci ({count} filtrate)", "@logEntriesFiltered": { "description": "Log count with filter active", "placeholders": { "count": { "type": "int" } } }, "logEntries": "Voci ({count})", "@logEntries": { "description": "Total log count", "placeholders": { "count": { "type": "int" } } }, "channelStable": "Stabile", "@channelStable": { "description": "Update channel - stable releases" }, "channelPreview": "Anteprima", "@channelPreview": { "description": "Update channel - beta/preview releases" }, "sectionSearchSource": "Cerca sorgente", "@sectionSearchSource": { "description": "Settings section header" }, "sectionDownload": "Download", "@sectionDownload": { "description": "Settings section header" }, "sectionPerformance": "Prestazioni", "@sectionPerformance": { "description": "Settings section header" }, "sectionApp": "App", "@sectionApp": { "description": "Settings section header" }, "sectionData": "Data", "@sectionData": { "description": "Settings section header" }, "sectionDebug": "Debug", "@sectionDebug": { "description": "Settings section header" }, "sectionService": "Servizio", "@sectionService": { "description": "Settings section header" }, "sectionAudioQuality": "Qualità audio", "@sectionAudioQuality": { "description": "Settings section header" }, "sectionFileSettings": "Impostazioni file", "@sectionFileSettings": { "description": "Settings section header" }, "sectionLyrics": "Testi", "@sectionLyrics": { "description": "Settings section header" }, "lyricsMode": "Modalità testi", "@lyricsMode": { "description": "Setting - how to save lyrics" }, "lyricsModeDescription": "Scegli come i testi vengono salvati con i tuoi download", "@lyricsModeDescription": { "description": "Lyrics mode picker description" }, "lyricsModeEmbed": "Incorpora nel file", "@lyricsModeEmbed": { "description": "Lyrics mode option - embed in audio file" }, "lyricsModeEmbedSubtitle": "Testi memorizzati nei metadata del FLAC", "@lyricsModeEmbedSubtitle": { "description": "Subtitle for embed option" }, "lyricsModeExternal": "File .lrc esterno", "@lyricsModeExternal": { "description": "Lyrics mode option - separate LRC file" }, "lyricsModeExternalSubtitle": "Separa il file .lrc per riproduttori tipo Samsung Music", "@lyricsModeExternalSubtitle": { "description": "Subtitle for external option" }, "lyricsModeBoth": "Entrambi", "@lyricsModeBoth": { "description": "Lyrics mode option - embed and external" }, "lyricsModeBothSubtitle": "Incorpora e salva file .lrc", "@lyricsModeBothSubtitle": { "description": "Subtitle for both option" }, "sectionColor": "Colori", "@sectionColor": { "description": "Settings section header" }, "sectionTheme": "Temi", "@sectionTheme": { "description": "Settings section header" }, "sectionLayout": "Layout", "@sectionLayout": { "description": "Settings section header" }, "sectionLanguage": "Lingua", "@sectionLanguage": { "description": "Settings section header for language" }, "appearanceLanguage": "Lingua dell'applicazione", "@appearanceLanguage": { "description": "Language setting title" }, "settingsAppearanceSubtitle": "Temi, colori e display", "@settingsAppearanceSubtitle": { "description": "Appearance settings description" }, "settingsDownloadSubtitle": "Servizi, qualità, fallback", "@settingsDownloadSubtitle": { "description": "Download settings description" }, "settingsExtensionsSubtitle": "Gestisci i provider di download", "@settingsExtensionsSubtitle": { "description": "Extensions settings description" }, "settingsLogsSubtitle": "Vedi i log dell'applicazione per debug", "@settingsLogsSubtitle": { "description": "Logs settings description" }, "loadingSharedLink": "Caricando il link condiviso...", "@loadingSharedLink": { "description": "Status when opening shared URL" }, "pressBackAgainToExit": "Premi ancora indietro per uscire", "@pressBackAgainToExit": { "description": "Exit confirmation message" }, "downloadAllCount": "Scarica tutti ({count})", "@downloadAllCount": { "description": "Download all button with count", "placeholders": { "count": { "type": "int" } } }, "tracksCount": "{count, plural, one {}=1{1 traccia} other{{count} tracce}}", "@tracksCount": { "description": "Track count display", "placeholders": { "count": { "type": "int" } } }, "trackCopyFilePath": "Copia il percorso del file", "@trackCopyFilePath": { "description": "Action - copy file path" }, "trackRemoveFromDevice": "Rimuovi dal dispositivo", "@trackRemoveFromDevice": { "description": "Action - delete downloaded file" }, "trackLoadLyrics": "Carica testi", "@trackLoadLyrics": { "description": "Action - fetch lyrics" }, "trackMetadata": "Metadati", "@trackMetadata": { "description": "Tab title - track metadata" }, "trackFileInfo": "Informazioni sul file", "@trackFileInfo": { "description": "Tab title - file information" }, "trackLyrics": "Testi", "@trackLyrics": { "description": "Tab title - lyrics" }, "trackFileNotFound": "File non trovato", "@trackFileNotFound": { "description": "Error - file doesn't exist" }, "trackOpenInDeezer": "Apri su Deezer", "@trackOpenInDeezer": { "description": "Action - open track in Deezer app" }, "trackOpenInSpotify": "Apri su Spotify", "@trackOpenInSpotify": { "description": "Action - open track in Spotify app" }, "trackTrackName": "Nome della traccia", "@trackTrackName": { "description": "Metadata label - track title" }, "trackArtist": "Artista", "@trackArtist": { "description": "Metadata label - artist name" }, "trackAlbumArtist": "Artista dell'album", "@trackAlbumArtist": { "description": "Metadata label - album artist" }, "trackAlbum": "Album", "@trackAlbum": { "description": "Metadata label - album name" }, "trackTrackNumber": "Numero della traccia", "@trackTrackNumber": { "description": "Metadata label - track number" }, "trackDiscNumber": "Disc number", "@trackDiscNumber": { "description": "Metadata label - disc number" }, "trackDuration": "Duration", "@trackDuration": { "description": "Metadata label - track length" }, "trackAudioQuality": "Audio quality", "@trackAudioQuality": { "description": "Metadata label - audio quality" }, "libraryQualityLabelFileFormat": "File format", "@libraryQualityLabelFileFormat": { "description": "Library audio quality label mode that shows the detected file format" }, "trackReleaseDate": "Release date", "@trackReleaseDate": { "description": "Metadata label - release date" }, "trackGenre": "Genre", "@trackGenre": { "description": "Metadata label - music genre" }, "trackLabel": "Label", "@trackLabel": { "description": "Metadata label - record label" }, "trackCopyright": "Copyright", "@trackCopyright": { "description": "Metadata label - copyright information" }, "trackDownloaded": "Downloaded", "@trackDownloaded": { "description": "Metadata label - download date" }, "trackCopyLyrics": "Copy lyrics", "@trackCopyLyrics": { "description": "Action - copy lyrics to clipboard" }, "trackLyricsSource": "Source: {source}", "@trackLyricsSource": { "description": "Label showing the lyrics source/provider", "placeholders": { "source": { "type": "String" } } }, "trackLyricsNotAvailable": "Lyrics not available for this track", "@trackLyricsNotAvailable": { "description": "Message when lyrics not found" }, "trackLyricsNotInFile": "No lyrics found in this file", "@trackLyricsNotInFile": { "description": "Message when no embedded lyrics in audio file" }, "trackFetchOnlineLyrics": "Fetch from Online", "@trackFetchOnlineLyrics": { "description": "Action - fetch lyrics from online providers" }, "trackLyricsTimeout": "Request timed out. Try again later.", "@trackLyricsTimeout": { "description": "Message when lyrics request times out" }, "trackLyricsLoadFailed": "Failed to load lyrics", "@trackLyricsLoadFailed": { "description": "Message when lyrics loading fails" }, "trackEmbedLyrics": "Embed Lyrics", "@trackEmbedLyrics": { "description": "Action - embed lyrics into audio file" }, "trackLyricsEmbedded": "Lyrics embedded successfully", "@trackLyricsEmbedded": { "description": "Snackbar - lyrics saved to file" }, "trackInstrumental": "Instrumental track", "@trackInstrumental": { "description": "Message when track is instrumental (no lyrics)" }, "trackCopiedToClipboard": "Copied to clipboard", "@trackCopiedToClipboard": { "description": "Snackbar - content copied" }, "trackDeleteConfirmTitle": "Remove from device?", "@trackDeleteConfirmTitle": { "description": "Delete confirmation title" }, "trackDeleteConfirmMessage": "This will permanently delete the downloaded file and remove it from your history.", "@trackDeleteConfirmMessage": { "description": "Delete confirmation message" }, "dateToday": "Today", "@dateToday": { "description": "Relative date - today" }, "dateYesterday": "Yesterday", "@dateYesterday": { "description": "Relative date - yesterday" }, "dateDaysAgo": "{count} days ago", "@dateDaysAgo": { "description": "Relative date - days ago", "placeholders": { "count": { "type": "int" } } }, "dateWeeksAgo": "{count} weeks ago", "@dateWeeksAgo": { "description": "Relative date - weeks ago", "placeholders": { "count": { "type": "int" } } }, "dateMonthsAgo": "{count} months ago", "@dateMonthsAgo": { "description": "Relative date - months ago", "placeholders": { "count": { "type": "int" } } }, "storeFilterAll": "All", "@storeFilterAll": { "description": "Repo filter - all extensions" }, "storeFilterMetadata": "Metadata", "@storeFilterMetadata": { "description": "Repo filter - metadata providers" }, "storeFilterDownload": "Download", "@storeFilterDownload": { "description": "Repo filter - download providers" }, "storeFilterUtility": "Utility", "@storeFilterUtility": { "description": "Repo filter - utility extensions" }, "storeFilterLyrics": "Lyrics", "@storeFilterLyrics": { "description": "Repo filter - lyrics providers" }, "storeFilterIntegration": "Integration", "@storeFilterIntegration": { "description": "Repo filter - integrations" }, "storeClearFilters": "Clear filters", "@storeClearFilters": { "description": "Button to clear all filters" }, "storeAddRepoTitle": "Add Extension Repository", "@storeAddRepoTitle": { "description": "Store setup screen - heading when no repo is configured" }, "storeAddRepoDescription": "Enter a GitHub repository URL that contains a registry.json file to browse and install extensions.", "@storeAddRepoDescription": { "description": "Store setup screen - explanatory text" }, "storeRepoUrlLabel": "Repository URL", "@storeRepoUrlLabel": { "description": "Label for the repository URL input field" }, "storeRepoUrlHint": "https://github.com/user/repo", "@storeRepoUrlHint": { "description": "Hint/placeholder for the repository URL input field" }, "storeAddRepoButton": "Add Repository", "@storeAddRepoButton": { "description": "Button to submit a new repository URL" }, "storeChangeRepoTooltip": "Change repository", "@storeChangeRepoTooltip": { "description": "Tooltip for the change-repository icon button in the app bar" }, "storeRepoDialogTitle": "Extension Repository", "@storeRepoDialogTitle": { "description": "Title of the change/remove repository dialog" }, "storeRepoDialogCurrent": "Current repository:", "@storeRepoDialogCurrent": { "description": "Label shown above the current repository URL in the dialog" }, "storeNewRepoUrlLabel": "New Repository URL", "@storeNewRepoUrlLabel": { "description": "Label for the new repository URL field inside the dialog" }, "storeLoadError": "Failed to load repository", "@storeLoadError": { "description": "Error heading when the store cannot be loaded" }, "storeEmptyNoExtensions": "No extensions available", "@storeEmptyNoExtensions": { "description": "Message when store has no extensions" }, "storeEmptyNoResults": "No extensions found", "@storeEmptyNoResults": { "description": "Message when search/filter returns no results" }, "extensionId": "ID", "@extensionId": { "description": "Extension detail - unique ID" }, "extensionError": "Error", "@extensionError": { "description": "Extension detail - error message" }, "extensionCapabilities": "Capabilities", "@extensionCapabilities": { "description": "Section header - extension features" }, "extensionMetadataProvider": "Metadata Provider", "@extensionMetadataProvider": { "description": "Capability - provides metadata" }, "extensionDownloadProvider": "Download Provider", "@extensionDownloadProvider": { "description": "Capability - provides downloads" }, "extensionLyricsProvider": "Lyrics Provider", "@extensionLyricsProvider": { "description": "Capability - provides lyrics" }, "extensionUrlHandler": "URL Handler", "@extensionUrlHandler": { "description": "Capability - handles URLs" }, "extensionQualityOptions": "Quality Options", "@extensionQualityOptions": { "description": "Capability - quality selection" }, "extensionPostProcessingHooks": "Post-Processing Hooks", "@extensionPostProcessingHooks": { "description": "Capability - post-processing" }, "extensionPermissions": "Permissions", "@extensionPermissions": { "description": "Section header - required permissions" }, "extensionSettings": "Settings", "@extensionSettings": { "description": "Section header - extension settings" }, "extensionRemoveButton": "Remove Extension", "@extensionRemoveButton": { "description": "Button to uninstall extension" }, "extensionUpdated": "Updated", "@extensionUpdated": { "description": "Extension detail - last update" }, "extensionMinAppVersion": "Min App Version", "@extensionMinAppVersion": { "description": "Extension detail - minimum app version" }, "extensionCustomTrackMatching": "Custom Track Matching", "@extensionCustomTrackMatching": { "description": "Capability - custom track matching algorithm" }, "extensionPostProcessing": "Post-Processing", "@extensionPostProcessing": { "description": "Capability - post-download processing" }, "extensionHooksAvailable": "{count} hook(s) available", "@extensionHooksAvailable": { "description": "Post-processing hooks count", "placeholders": { "count": { "type": "int" } } }, "extensionPatternsCount": "{count} pattern(s)", "@extensionPatternsCount": { "description": "URL patterns count", "placeholders": { "count": { "type": "int" } } }, "extensionStrategy": "Strategy: {strategy}", "@extensionStrategy": { "description": "Track matching strategy name", "placeholders": { "strategy": { "type": "String" } } }, "extensionsProviderPrioritySection": "Provider Priority", "@extensionsProviderPrioritySection": { "description": "Section header - provider priority" }, "extensionsInstalledSection": "Installed Extensions", "@extensionsInstalledSection": { "description": "Section header - installed extensions" }, "extensionsNoExtensions": "No extensions installed", "@extensionsNoExtensions": { "description": "Empty state - no extensions" }, "extensionsNoExtensionsSubtitle": "Install .spotiflac-ext files to add new providers", "@extensionsNoExtensionsSubtitle": { "description": "Empty state subtitle" }, "extensionsInstallButton": "Install Extension", "@extensionsInstallButton": { "description": "Button to install extension from file" }, "extensionsInfoTip": "Extensions can add new metadata and download providers. Only install extensions from trusted sources.", "@extensionsInfoTip": { "description": "Security warning about extensions" }, "extensionsInstalledSuccess": "Extension installed successfully", "@extensionsInstalledSuccess": { "description": "Success message after install" }, "extensionsInstalledCount": "{count} extensions installed successfully", "@extensionsInstalledCount": { "description": "Success message after installing multiple extensions", "placeholders": { "count": { "type": "int", "description": "Number of installed extensions" } } }, "extensionsInstallPartialSuccess": "Installed {installed} of {attempted} extensions", "@extensionsInstallPartialSuccess": { "description": "Message when installing multiple extensions partially succeeds", "placeholders": { "installed": { "type": "int", "description": "Number of successfully installed extensions" }, "attempted": { "type": "int", "description": "Number of selected extensions" } } }, "extensionsDownloadPriority": "Download Priority", "@extensionsDownloadPriority": { "description": "Setting - download provider order" }, "extensionsDownloadPrioritySubtitle": "Set download service order", "@extensionsDownloadPrioritySubtitle": { "description": "Subtitle for download priority" }, "extensionsFallbackTitle": "Fallback Extensions", "@extensionsFallbackTitle": { "description": "Setting and page title for choosing which download extensions can be used during fallback" }, "extensionsFallbackSubtitle": "Choose which installed download extensions can be used as fallback", "@extensionsFallbackSubtitle": { "description": "Subtitle for download fallback extensions menu" }, "extensionsNoDownloadProvider": "No extensions with download provider", "@extensionsNoDownloadProvider": { "description": "Empty state - no download providers" }, "extensionsMetadataPriority": "Metadata Priority", "@extensionsMetadataPriority": { "description": "Setting - metadata provider order" }, "extensionsMetadataPrioritySubtitle": "Set search & metadata source order", "@extensionsMetadataPrioritySubtitle": { "description": "Subtitle for metadata priority" }, "extensionsNoMetadataProvider": "No extensions with metadata provider", "@extensionsNoMetadataProvider": { "description": "Empty state - no metadata providers" }, "extensionsSearchProvider": "Search Provider", "@extensionsSearchProvider": { "description": "Setting - search provider selection" }, "extensionsNoCustomSearch": "No extensions with custom search", "@extensionsNoCustomSearch": { "description": "Empty state - no search providers" }, "extensionsSearchProviderDescription": "Choose which service to use for searching tracks", "@extensionsSearchProviderDescription": { "description": "Search provider setting description" }, "extensionsCustomSearch": "Custom search", "@extensionsCustomSearch": { "description": "Label for custom search provider" }, "extensionsErrorLoading": "Error loading extension", "@extensionsErrorLoading": { "description": "Error message when extension fails to load" }, "qualityFlacLossless": "FLAC Lossless", "@qualityFlacLossless": { "description": "Quality option - CD quality FLAC" }, "qualityFlacLosslessSubtitle": "16-bit / 44.1kHz", "@qualityFlacLosslessSubtitle": { "description": "Technical spec for lossless" }, "qualityHiResFlac": "Hi-Res FLAC", "@qualityHiResFlac": { "description": "Quality option - high resolution FLAC" }, "qualityHiResFlacSubtitle": "24-bit / up to 96kHz", "@qualityHiResFlacSubtitle": { "description": "Technical spec for hi-res" }, "qualityHiResFlacMax": "Hi-Res FLAC Max", "@qualityHiResFlacMax": { "description": "Quality option - maximum resolution FLAC" }, "qualityHiResFlacMaxSubtitle": "24-bit / up to 192kHz", "@qualityHiResFlacMaxSubtitle": { "description": "Technical spec for hi-res max" }, "downloadLossy320": "Lossy 320kbps", "@downloadLossy320": { "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Lossy Format", "@downloadLossyFormat": { "description": "Setting title to pick output format for lossy downloads" }, "downloadAutoConvert": "Auto-convert after download", "@downloadAutoConvert": { "description": "Toggle for automatic post-download audio conversion" }, "downloadAutoConvertSubtitle": "Convert completed downloads to a smaller lossy format. The original is replaced only after conversion succeeds.", "@downloadAutoConvertSubtitle": { "description": "Explanation of safe automatic post-download conversion" }, "downloadAutoConvertFormat": "Output format", "@downloadAutoConvertFormat": { "description": "Automatic conversion output format setting" }, "downloadAutoConvertFormatSubtitle": "Choose the lossy format used for newly completed downloads.", "@downloadAutoConvertFormatSubtitle": { "description": "Automatic conversion format picker explanation" }, "downloadAutoConvertBitrate": "Output quality", "@downloadAutoConvertBitrate": { "description": "Automatic conversion bitrate setting" }, "downloadAutoConvertBitrateSubtitle": "Higher bitrates preserve more detail but create larger files.", "@downloadAutoConvertBitrateSubtitle": { "description": "Automatic conversion bitrate picker explanation" }, "downloadAutoConvertMp3Subtitle": "Best compatibility across players and devices", "@downloadAutoConvertMp3Subtitle": { "description": "MP3 automatic conversion option description" }, "downloadAutoConvertM4aSubtitle": "Efficient AAC audio in an M4A container", "@downloadAutoConvertM4aSubtitle": { "description": "M4A AAC automatic conversion option description" }, "downloadAutoConvertOpusSubtitle": "Best efficiency for modern players", "@downloadAutoConvertOpusSubtitle": { "description": "Opus automatic conversion option description" }, "downloadLossy320Format": "Lossy 320kbps Format", "@downloadLossy320Format": { "description": "Title of the lossy format picker bottom sheet" }, "downloadLossy320FormatDesc": "Choose the output format for 320kbps lossy downloads. The original stream will be converted to your selected format when needed.", "@downloadLossy320FormatDesc": { "description": "Description in the lossy format picker" }, "downloadLossyMp3": "MP3 320kbps", "@downloadLossyMp3": { "description": "Lossy format option - MP3 320kbps" }, "downloadLossyMp3Subtitle": "Best compatibility, ~10MB per track", "@downloadLossyMp3Subtitle": { "description": "Subtitle for MP3 320kbps lossy option" }, "downloadLossyAac": "AAC/M4A 320kbps", "@downloadLossyAac": { "description": "Lossy format option - AAC in M4A container at 320kbps" }, "downloadLossyAacSubtitle": "Best mobile compatibility, M4A container", "@downloadLossyAacSubtitle": { "description": "Subtitle for AAC/M4A 320kbps lossy option" }, "downloadLossyOpus256": "Opus 256kbps", "@downloadLossyOpus256": { "description": "Lossy format option - Opus 256kbps" }, "downloadLossyOpus256Subtitle": "Best quality Opus, ~8MB per track", "@downloadLossyOpus256Subtitle": { "description": "Subtitle for Opus 256kbps lossy option" }, "downloadLossyOpus128": "Opus 128kbps", "@downloadLossyOpus128": { "description": "Lossy format option - Opus 128kbps" }, "downloadLossyOpus128Subtitle": "Smallest size, ~4MB per track", "@downloadLossyOpus128Subtitle": { "description": "Subtitle for Opus 128kbps lossy option" }, "downloadAskBeforeDownload": "Ask Before Download", "@downloadAskBeforeDownload": { "description": "Setting - show quality picker" }, "downloadDirectory": "Download Directory", "@downloadDirectory": { "description": "Setting - download folder" }, "downloadSeparateSinglesFolder": "Separate Singles Folder", "@downloadSeparateSinglesFolder": { "description": "Setting - separate folder for singles" }, "downloadAlbumFolderStructure": "Album Folder Structure", "@downloadAlbumFolderStructure": { "description": "Setting - album folder organization" }, "albumFolderStructureDescription": "Choose how album folders are structured", "@albumFolderStructureDescription": { "description": "Album folder structure picker description" }, "downloadUseAlbumArtistForFolders": "Use Album Artist for folders", "@downloadUseAlbumArtistForFolders": { "description": "Setting - choose whether artist folders use Album Artist or Track Artist" }, "downloadUsePrimaryArtistOnly": "Primary artist only for folders", "@downloadUsePrimaryArtistOnly": { "description": "Setting - strip featured artists from folder name" }, "downloadUsePrimaryArtistOnlyEnabled": "Featured artists removed from folder name (e.g. Justin Bieber, Quavo → Justin Bieber)", "@downloadUsePrimaryArtistOnlyEnabled": { "description": "Subtitle when primary artist only is enabled" }, "downloadUsePrimaryArtistOnlyDisabled": "Full artist string used for folder name", "@downloadUsePrimaryArtistOnlyDisabled": { "description": "Subtitle when primary artist only is disabled" }, "downloadSelectQuality": "Select Quality", "@downloadSelectQuality": { "description": "Dialog title - choose audio quality" }, "downloadFrom": "Download From", "@downloadFrom": { "description": "Label - download source" }, "appearanceAmoledDark": "AMOLED Dark", "@appearanceAmoledDark": { "description": "Theme option - pure black" }, "appearanceAmoledDarkSubtitle": "Pure black background", "@appearanceAmoledDarkSubtitle": { "description": "Subtitle for AMOLED dark" }, "appearanceHeroAnimations": "Hero animations", "@appearanceHeroAnimations": { "description": "Toggle for shared-element (Hero) transitions" }, "appearanceHeroAnimationsSubtitle": "Fly covers between screens, e.g. when opening the player", "@appearanceHeroAnimationsSubtitle": { "description": "Subtitle for the Hero animations toggle" }, "appearanceForceBlur": "Always use blur effects", "@appearanceForceBlur": { "description": "Toggle that forces backdrop blur on even when the device profile disabled it" }, "appearanceForceBlurSubtitle": "Enable the navigation bar blur even on devices where it is off by default. May cost performance.", "@appearanceForceBlurSubtitle": { "description": "Subtitle for the force-blur toggle" }, "queueClearAll": "Clear All", "@queueClearAll": { "description": "Button - clear all queue items" }, "queueClearAllMessage": "Are you sure you want to clear all downloads?", "@queueClearAllMessage": { "description": "Clear queue confirmation" }, "settingsAutoExportFailed": "Auto-export failed downloads", "@settingsAutoExportFailed": { "description": "Setting toggle for auto-export" }, "settingsAutoExportFailedSubtitle": "Save failed downloads to TXT file automatically", "@settingsAutoExportFailedSubtitle": { "description": "Subtitle for auto-export setting" }, "settingsDownloadNetwork": "Download Network", "@settingsDownloadNetwork": { "description": "Setting for network type preference" }, "settingsDownloadNetworkAny": "WiFi + Mobile Data", "@settingsDownloadNetworkAny": { "description": "Network option - use any connection" }, "settingsDownloadNetworkWifiOnly": "WiFi Only", "@settingsDownloadNetworkWifiOnly": { "description": "Network option - only use WiFi" }, "settingsDownloadNetworkSubtitle": "Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.", "@settingsDownloadNetworkSubtitle": { "description": "Subtitle explaining network preference" }, "settingsConcurrentDownloads": "Concurrent downloads", "@settingsConcurrentDownloads": { "description": "Setting title - how many tracks download at the same time" }, "settingsConcurrentDownloadsSubtitle": "Downloading several tracks at once is faster, but some providers may rate-limit parallel requests.", "@settingsConcurrentDownloadsSubtitle": { "description": "Subtitle explaining the concurrent downloads picker" }, "concurrentDownloadsOne": "1 track at a time", "@concurrentDownloadsOne": { "description": "Concurrent downloads option - sequential" }, "concurrentDownloadsCount": "Up to {count} tracks at once", "@concurrentDownloadsCount": { "description": "Concurrent downloads option - parallel", "placeholders": { "count": { "type": "int" } } }, "albumFolderArtistAlbum": "Artist / Album", "@albumFolderArtistAlbum": { "description": "Album folder option" }, "albumFolderArtistAlbumSubtitle": "Albums/Artist Name/Album Name/", "@albumFolderArtistAlbumSubtitle": { "description": "Folder structure example" }, "albumFolderArtistYearAlbum": "Artist / [Year] Album", "@albumFolderArtistYearAlbum": { "description": "Album folder option with year" }, "albumFolderArtistYearAlbumSubtitle": "Albums/Artist Name/[2005] Album Name/", "@albumFolderArtistYearAlbumSubtitle": { "description": "Folder structure example" }, "albumFolderAlbumOnly": "Album Only", "@albumFolderAlbumOnly": { "description": "Album folder option" }, "albumFolderAlbumOnlySubtitle": "Albums/Album Name/", "@albumFolderAlbumOnlySubtitle": { "description": "Folder structure example" }, "albumFolderYearAlbum": "[Year] Album", "@albumFolderYearAlbum": { "description": "Album folder option with year" }, "albumFolderYearAlbumSubtitle": "Albums/[2005] Album Name/", "@albumFolderYearAlbumSubtitle": { "description": "Folder structure example" }, "albumFolderArtistAlbumSingles": "Artist / Album + Singles", "@albumFolderArtistAlbumSingles": { "description": "Album folder option with singles inside artist" }, "albumFolderArtistAlbumSinglesSubtitle": "Artist/Album/ and Artist/Singles/", "@albumFolderArtistAlbumSinglesSubtitle": { "description": "Folder structure example" }, "albumFolderArtistAlbumFlat": "Artist / Album (Singles flat)", "@albumFolderArtistAlbumFlat": { "description": "Album folder option with singles directly in artist folder" }, "albumFolderArtistAlbumFlatSubtitle": "Artist/Album/ and Artist/song.flac", "@albumFolderArtistAlbumFlatSubtitle": { "description": "Folder structure example for flat singles" }, "downloadedAlbumDeleteSelected": "Delete Selected", "@downloadedAlbumDeleteSelected": { "description": "Button - delete selected tracks" }, "downloadedAlbumDeleteMessage": "Delete {count} {count, plural, =1{track} other{tracks}} from this album?\n\nThis will also delete the files from storage.", "@downloadedAlbumDeleteMessage": { "description": "Delete confirmation with count", "placeholders": { "count": { "type": "int" } } }, "downloadedAlbumSelectedCount": "{count} selected", "@downloadedAlbumSelectedCount": { "description": "Selection count indicator", "placeholders": { "count": { "type": "int" } } }, "downloadedAlbumTapToSelect": "Tap tracks to select", "@downloadedAlbumTapToSelect": { "description": "Selection hint" }, "downloadedAlbumDeleteCount": "Delete {count} {count, plural, =1{track} other{tracks}}", "@downloadedAlbumDeleteCount": { "description": "Delete button text with count", "placeholders": { "count": { "type": "int" } } }, "downloadedAlbumSelectToDelete": "Select tracks to delete", "@downloadedAlbumSelectToDelete": { "description": "Placeholder when nothing selected" }, "downloadedAlbumDiscHeader": "Disc {discNumber}", "@downloadedAlbumDiscHeader": { "description": "Header for disc separator in multi-disc albums", "placeholders": { "discNumber": { "type": "int", "example": "1" } } }, "recentTypeArtist": "Artist", "@recentTypeArtist": { "description": "Recent access item type - artist" }, "recentTypeAlbum": "Album", "@recentTypeAlbum": { "description": "Recent access item type - album" }, "recentTypeSong": "Song", "@recentTypeSong": { "description": "Recent access item type - song/track" }, "recentTypePlaylist": "Playlist", "@recentTypePlaylist": { "description": "Recent access item type - playlist" }, "recentEmpty": "No recent items yet", "@recentEmpty": { "description": "Empty state text for recent access list" }, "recentClearAllMessage": "Clear all recent activity? Download history and music files will not be deleted.", "@recentClearAllMessage": { "description": "Confirmation message before clearing all recent activity" }, "recentShowAllDownloads": "Show All Downloads", "@recentShowAllDownloads": { "description": "Button label to unhide hidden downloads in recent access" }, "recentPlaylistInfo": "Playlist: {name}", "@recentPlaylistInfo": { "description": "Snackbar message when tapping playlist in recent access", "placeholders": { "name": { "type": "String", "description": "Playlist name" } } }, "discographyDownload": "Download Discography", "@discographyDownload": { "description": "Button - download artist discography" }, "discographyDownloadAll": "Download All", "@discographyDownloadAll": { "description": "Option - download entire discography" }, "discographyDownloadAllSubtitle": "{count} tracks from {albumCount} releases", "@discographyDownloadAllSubtitle": { "description": "Subtitle showing total tracks and albums", "placeholders": { "count": { "type": "int" }, "albumCount": { "type": "int" } } }, "discographyAlbumsOnly": "Albums Only", "@discographyAlbumsOnly": { "description": "Option - download only albums" }, "discographyAlbumsOnlySubtitle": "{count} tracks from {albumCount} albums", "@discographyAlbumsOnlySubtitle": { "description": "Subtitle showing album tracks count", "placeholders": { "count": { "type": "int" }, "albumCount": { "type": "int" } } }, "discographySinglesOnly": "Singles & EPs Only", "@discographySinglesOnly": { "description": "Option - download only singles" }, "discographySinglesOnlySubtitle": "{count} tracks from {albumCount} singles", "@discographySinglesOnlySubtitle": { "description": "Subtitle showing singles tracks count", "placeholders": { "count": { "type": "int" }, "albumCount": { "type": "int" } } }, "discographySelectAlbums": "Select Albums...", "@discographySelectAlbums": { "description": "Option - manually select albums to download" }, "discographySelectAlbumsSubtitle": "Choose specific albums or singles", "@discographySelectAlbumsSubtitle": { "description": "Subtitle for select albums option" }, "discographyFetchingTracks": "Fetching tracks...", "@discographyFetchingTracks": { "description": "Progress - fetching album tracks" }, "discographyFetchingAlbum": "Fetching {current} of {total}...", "@discographyFetchingAlbum": { "description": "Progress - fetching specific album", "placeholders": { "current": { "type": "int" }, "total": { "type": "int" } } }, "discographySelectedCount": "{count} selected", "@discographySelectedCount": { "description": "Selection count badge", "placeholders": { "count": { "type": "int" } } }, "discographyDownloadSelected": "Download Selected", "@discographyDownloadSelected": { "description": "Button - download selected albums" }, "discographyAddedToQueue": "Added {count} tracks to queue", "@discographyAddedToQueue": { "description": "Snackbar - tracks added from discography", "placeholders": { "count": { "type": "int" } } }, "discographySkippedDownloaded": "{added} added, {skipped} already downloaded", "@discographySkippedDownloaded": { "description": "Snackbar - with skipped tracks count", "placeholders": { "added": { "type": "int" }, "skipped": { "type": "int" } } }, "discographyNoAlbums": "No albums available", "@discographyNoAlbums": { "description": "Error - no albums found for artist" }, "discographyFailedToFetch": "Failed to fetch some albums", "@discographyFailedToFetch": { "description": "Error - some albums failed to load" }, "sectionStorageAccess": "Storage Access", "@sectionStorageAccess": { "description": "Section header for storage access settings" }, "allFilesAccess": "All Files Access", "@allFilesAccess": { "description": "Toggle for MANAGE_EXTERNAL_STORAGE permission" }, "allFilesAccessEnabledSubtitle": "Can write to any folder", "@allFilesAccessEnabledSubtitle": { "description": "Subtitle when all files access is enabled" }, "allFilesAccessDisabledSubtitle": "Limited to media folders only", "@allFilesAccessDisabledSubtitle": { "description": "Subtitle when all files access is disabled" }, "allFilesAccessDescription": "Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.", "@allFilesAccessDescription": { "description": "Description explaining when to enable all files access" }, "allFilesAccessDeniedMessage": "Permission was denied. Please enable 'All files access' manually in system settings.", "@allFilesAccessDeniedMessage": { "description": "Message when permission is permanently denied" }, "allFilesAccessDisabledMessage": "All Files Access disabled. The app will use limited storage access.", "@allFilesAccessDisabledMessage": { "description": "Snackbar message when user disables all files access" }, "settingsLocalLibrary": "Local Library", "@settingsLocalLibrary": { "description": "Settings menu item - local library" }, "settingsLocalLibrarySubtitle": "Scan music & detect duplicates", "@settingsLocalLibrarySubtitle": { "description": "Subtitle for local library settings" }, "settingsCache": "Storage & Cache", "@settingsCache": { "description": "Settings menu item - cache management" }, "settingsCacheSubtitle": "View size and clear cached data", "@settingsCacheSubtitle": { "description": "Subtitle for cache management menu" }, "libraryTitle": "Local Library", "@libraryTitle": { "description": "Library settings page title" }, "libraryScanSettings": "Scan Settings", "@libraryScanSettings": { "description": "Section header for scan settings" }, "libraryEnableLocalLibrary": "Enable Local Library", "@libraryEnableLocalLibrary": { "description": "Toggle to enable library scanning" }, "libraryEnableLocalLibrarySubtitle": "Scan and track your existing music", "@libraryEnableLocalLibrarySubtitle": { "description": "Subtitle for enable toggle" }, "libraryFolder": "Library Folder", "@libraryFolder": { "description": "Folder selection setting" }, "libraryFolderHint": "Tap to select folder", "@libraryFolderHint": { "description": "Placeholder when no folder selected" }, "libraryAddFolder": "Add library folder", "@libraryAddFolder": { "description": "Action to add another local library source" }, "libraryAddFolderSubtitle": "Internal storage, SD card, SSD, or another external drive", "@libraryAddFolderSubtitle": { "description": "Supported storage locations for local library sources" }, "librarySourceOnline": "Online", "@librarySourceOnline": { "description": "Library source is connected and accessible" }, "librarySourceOffline": "Offline. Reconnect the storage to restore these tracks", "@librarySourceOffline": { "description": "Library source is temporarily disconnected" }, "librarySourceDisabled": "Disabled", "@librarySourceDisabled": { "description": "Library source has been disabled by the user" }, "librarySourceScanCount": "{scanned} of {total} files scanned ({progress}%)", "@librarySourceScanCount": { "description": "Live progress for one library folder scan", "placeholders": { "scanned": { "type": "int" }, "total": { "type": "int" }, "progress": { "type": "String" } } }, "libraryExternalStorage": "External storage", "@libraryExternalStorage": { "description": "Label for a removable or external library source" }, "libraryRemoveFolder": "Remove library folder", "@libraryRemoveFolder": { "description": "Action to remove one indexed library source" }, "libraryRemoveFolderMessage": "Remove this folder and its indexed tracks from SpotiFLAC Mobile? Audio files on the storage will not be deleted.", "@libraryRemoveFolderMessage": { "description": "Confirmation shown before removing a library source" }, "libraryShowDuplicateIndicator": "Show Duplicate Indicator", "@libraryShowDuplicateIndicator": { "description": "Toggle for duplicate indicator in search" }, "libraryShowDuplicateIndicatorSubtitle": "Show when searching for existing tracks", "@libraryShowDuplicateIndicatorSubtitle": { "description": "Subtitle for duplicate indicator toggle" }, "libraryAutoScan": "Auto Scan", "@libraryAutoScan": { "description": "Setting for automatic library scanning" }, "libraryAutoScanSubtitle": "Automatically scan your library for new files", "@libraryAutoScanSubtitle": { "description": "Subtitle for auto scan setting" }, "libraryAutoScanOff": "Off", "@libraryAutoScanOff": { "description": "Auto scan disabled" }, "libraryAutoScanOnOpen": "Every app open", "@libraryAutoScanOnOpen": { "description": "Auto scan when app opens" }, "libraryAutoScanDaily": "Daily", "@libraryAutoScanDaily": { "description": "Auto scan once per day" }, "libraryAutoScanWeekly": "Weekly", "@libraryAutoScanWeekly": { "description": "Auto scan once per week" }, "libraryActions": "Actions", "@libraryActions": { "description": "Section header for library actions" }, "libraryScan": "Scan Library", "@libraryScan": { "description": "Button to start library scan" }, "libraryScanSubtitle": "Scan for audio files", "@libraryScanSubtitle": { "description": "Subtitle for scan button" }, "libraryScanSelectFolderFirst": "Select a folder first", "@libraryScanSelectFolderFirst": { "description": "Message when trying to scan without folder" }, "libraryCleanupMissingFiles": "Cleanup Missing Files", "@libraryCleanupMissingFiles": { "description": "Button to remove entries for missing files" }, "libraryCleanupMissingFilesSubtitle": "Remove entries for files that no longer exist", "@libraryCleanupMissingFilesSubtitle": { "description": "Subtitle for cleanup button" }, "libraryClear": "Clear Library", "@libraryClear": { "description": "Button to clear all library entries" }, "libraryClearSubtitle": "Remove all scanned tracks", "@libraryClearSubtitle": { "description": "Subtitle for clear button" }, "libraryClearConfirmTitle": "Clear Library", "@libraryClearConfirmTitle": { "description": "Dialog title for clear confirmation" }, "libraryClearConfirmMessage": "This will remove all scanned tracks from your library. Your actual music files will not be deleted.", "@libraryClearConfirmMessage": { "description": "Dialog message for clear confirmation" }, "libraryAbout": "About Local Library", "@libraryAbout": { "description": "Section header for about info" }, "libraryAboutDescription": "Scans your existing music collection to detect duplicates when downloading. Supports FLAC, ALAC, M4A, MP3, Opus, OGG, WAV, AIFF, and APE formats. Metadata is read from file tags when available.", "@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" } } }, "libraryFilesUnit": "{count, plural, =1{file} other{files}}", "@libraryFilesUnit": { "description": "Unit label for files count during library scanning", "placeholders": { "count": { "type": "int" } } }, "libraryLastScanned": "Last scanned: {time}", "@libraryLastScanned": { "description": "Last scan time display", "placeholders": { "time": { "type": "String" } } }, "libraryLastScannedNever": "Never", "@libraryLastScannedNever": { "description": "Shown when library has never been scanned" }, "libraryScanning": "Scanning...", "@libraryScanning": { "description": "Status during scan" }, "libraryScanFinalizing": "Finalizing library...", "@libraryScanFinalizing": { "description": "Status shown after file scanning finishes but library persistence is still running" }, "libraryScanProgress": "{progress}% of {total} files", "@libraryScanProgress": { "description": "Scan progress display", "placeholders": { "progress": { "type": "String" }, "total": { "type": "int" } } }, "libraryInLibrary": "In Library", "@libraryInLibrary": { "description": "Badge shown on tracks that exist in local library" }, "libraryRemovedMissingFiles": "Removed {count} missing files from library", "@libraryRemovedMissingFiles": { "description": "Snackbar after cleanup", "placeholders": { "count": { "type": "int" } } }, "libraryCleared": "Library cleared", "@libraryCleared": { "description": "Snackbar after clearing library" }, "libraryStorageAccessRequired": "Storage Access Required", "@libraryStorageAccessRequired": { "description": "Dialog title for storage permission" }, "libraryStorageAccessMessage": "SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.", "@libraryStorageAccessMessage": { "description": "Dialog message for storage permission" }, "libraryFolderNotExist": "Selected folder does not exist", "@libraryFolderNotExist": { "description": "Error when folder doesn't exist" }, "librarySourceDownloaded": "Downloaded", "@librarySourceDownloaded": { "description": "Badge for tracks downloaded via SpotiFLAC" }, "librarySourceLocal": "Local", "@librarySourceLocal": { "description": "Badge for tracks from local library scan" }, "libraryFilterAll": "All", "@libraryFilterAll": { "description": "Filter chip - show all library items" }, "libraryFilterDownloaded": "Downloaded", "@libraryFilterDownloaded": { "description": "Filter chip - show only downloaded items" }, "libraryFilterLocal": "Local", "@libraryFilterLocal": { "description": "Filter chip - show only local library items" }, "libraryFilterTitle": "Filters", "@libraryFilterTitle": { "description": "Filter bottom sheet title" }, "libraryFilterReset": "Reset", "@libraryFilterReset": { "description": "Reset all filters button" }, "libraryFilterApply": "Apply", "@libraryFilterApply": { "description": "Apply filters button" }, "libraryFilterSource": "Source", "@libraryFilterSource": { "description": "Filter section - source type" }, "libraryFilterQuality": "Quality", "@libraryFilterQuality": { "description": "Filter section - audio quality" }, "libraryFilterQualityHiRes": "Hi-Res (24bit)", "@libraryFilterQualityHiRes": { "description": "Filter option - high resolution audio" }, "libraryFilterQualityCD": "CD (16bit)", "@libraryFilterQualityCD": { "description": "Filter option - CD quality audio" }, "libraryFilterQualityLossy": "Lossy", "@libraryFilterQualityLossy": { "description": "Filter option - lossy compressed audio" }, "libraryFilterFormat": "Format", "@libraryFilterFormat": { "description": "Filter section - file format" }, "libraryFilterMetadata": "Metadata", "@libraryFilterMetadata": { "description": "Filter section - metadata completeness" }, "libraryFilterMetadataComplete": "Complete metadata", "@libraryFilterMetadataComplete": { "description": "Filter option - items with complete metadata" }, "libraryFilterMetadataMissingAny": "Missing any metadata", "@libraryFilterMetadataMissingAny": { "description": "Filter option - items missing any tracked metadata field" }, "libraryFilterMetadataMissingYear": "Missing year", "@libraryFilterMetadataMissingYear": { "description": "Filter option - items missing release year/date" }, "libraryFilterMetadataMissingGenre": "Missing genre", "@libraryFilterMetadataMissingGenre": { "description": "Filter option - items missing genre" }, "libraryFilterMetadataMissingAlbumArtist": "Missing album artist", "@libraryFilterMetadataMissingAlbumArtist": { "description": "Filter option - items missing album artist" }, "libraryFilterSort": "Sort", "@libraryFilterSort": { "description": "Filter section - sort order" }, "libraryFilterSortLatest": "Latest", "@libraryFilterSortLatest": { "description": "Sort option - newest first" }, "libraryFilterSortOldest": "Oldest", "@libraryFilterSortOldest": { "description": "Sort option - oldest first" }, "libraryFilterSortAlbumAsc": "Album (A-Z)", "@libraryFilterSortAlbumAsc": { "description": "Sort option - album ascending" }, "libraryFilterSortAlbumDesc": "Album (Z-A)", "@libraryFilterSortAlbumDesc": { "description": "Sort option - album descending" }, "libraryFilterSortGenreAsc": "Genre (A-Z)", "@libraryFilterSortGenreAsc": { "description": "Sort option - genre ascending" }, "libraryFilterSortGenreDesc": "Genre (Z-A)", "@libraryFilterSortGenreDesc": { "description": "Sort option - genre descending" }, "timeJustNow": "Just now", "@timeJustNow": { "description": "Relative time - less than a minute ago" }, "timeMinutesAgo": "{count, plural, =1{1 minute ago} other{{count} minutes ago}}", "@timeMinutesAgo": { "description": "Relative time - minutes ago", "placeholders": { "count": { "type": "int" } } }, "timeHoursAgo": "{count, plural, =1{1 hour ago} other{{count} hours ago}}", "@timeHoursAgo": { "description": "Relative time - hours ago", "placeholders": { "count": { "type": "int" } } }, "tutorialWelcomeTitle": "Welcome to SpotiFLAC Mobile!", "@tutorialWelcomeTitle": { "description": "Tutorial welcome page title" }, "tutorialWelcomeDesc": "Learn how to find music with extensions, choose the quality you want, and manage downloads in SpotiFLAC Mobile.", "@tutorialWelcomeDesc": { "description": "Tutorial welcome page description" }, "tutorialWelcomeTip1": "Search with an installed extension or paste a supported music link", "@tutorialWelcomeTip1": { "description": "Tutorial welcome tip 1" }, "tutorialWelcomeTip2": "Choose from the audio qualities offered by your download provider", "@tutorialWelcomeTip2": { "description": "Tutorial welcome tip 2" }, "tutorialWelcomeTip3": "Embed metadata, cover art, lyrics, and release information automatically", "@tutorialWelcomeTip3": { "description": "Tutorial welcome tip 3" }, "tutorialSearchTitle": "Finding Music", "@tutorialSearchTitle": { "description": "Tutorial search page title" }, "tutorialSearchDesc": "Search with your selected extension or paste a supported music link.", "@tutorialSearchDesc": { "description": "Tutorial search page description" }, "tutorialDownloadTitle": "Downloading Music", "@tutorialDownloadTitle": { "description": "Tutorial download page title" }, "tutorialDownloadDesc": "Pick an available quality, start the download, and follow its progress in the queue.", "@tutorialDownloadDesc": { "description": "Tutorial download page description" }, "tutorialLibraryTitle": "Your Library", "@tutorialLibraryTitle": { "description": "Tutorial library page title" }, "tutorialLibraryDesc": "Downloaded and locally scanned music is organized in your Library.", "@tutorialLibraryDesc": { "description": "Tutorial library page description" }, "tutorialLibraryTip1": "Manage active, pending, and completed downloads from the Library queue", "@tutorialLibraryTip1": { "description": "Tutorial library tip 1" }, "tutorialLibraryTip2": "Tap a track to play it with the built-in player", "@tutorialLibraryTip2": { "description": "Tutorial library tip 2" }, "tutorialLibraryTip3": "Browse tracks, albums, and playlists in list or grid views", "@tutorialLibraryTip3": { "description": "Tutorial library tip 3" }, "tutorialExtensionsTitle": "Extensions", "@tutorialExtensionsTitle": { "description": "Tutorial extensions page title" }, "tutorialExtensionsDesc": "Extensions add search, download, metadata, lyrics, and other integrations.", "@tutorialExtensionsDesc": { "description": "Tutorial extensions page description" }, "tutorialExtensionsTip1": "Browse the Repo tab to discover useful extensions", "@tutorialExtensionsTip1": { "description": "Tutorial extensions tip 1" }, "tutorialExtensionsTip2": "Choose providers for search, downloads, metadata, and fallbacks", "@tutorialExtensionsTip2": { "description": "Tutorial extensions tip 2" }, "tutorialExtensionsTip3": "Connect accounts when required and keep extensions up to date", "@tutorialExtensionsTip3": { "description": "Tutorial extensions tip 3" }, "tutorialSettingsTitle": "Customize Your Experience", "@tutorialSettingsTitle": { "description": "Tutorial settings page title" }, "tutorialSettingsDesc": "Fine-tune downloads, playback, Library behavior, appearance, and storage.", "@tutorialSettingsDesc": { "description": "Tutorial settings page description" }, "tutorialSettingsTip1": "Change download location and folder organization", "@tutorialSettingsTip1": { "description": "Tutorial settings tip 1" }, "tutorialSettingsTip2": "Set quality, concurrency, filenames, and conversion preferences", "@tutorialSettingsTip2": { "description": "Tutorial settings tip 2" }, "tutorialSettingsTip3": "Customize app theme and appearance", "@tutorialSettingsTip3": { "description": "Tutorial settings tip 3" }, "tutorialReadyMessage": "You're ready. Select your extensions, then search or paste a supported link.", "@tutorialReadyMessage": { "description": "Tutorial completion message" }, "libraryForceFullScan": "Force Full Scan", "@libraryForceFullScan": { "description": "Button to force a complete rescan of library" }, "libraryForceFullScanSubtitle": "Rescan all files, ignoring cache", "@libraryForceFullScanSubtitle": { "description": "Subtitle for force full scan button" }, "cleanupOrphanedDownloads": "Cleanup Orphaned Downloads", "@cleanupOrphanedDownloads": { "description": "Button to remove history entries for deleted files" }, "cleanupOrphanedDownloadsSubtitle": "Remove history entries for files that no longer exist", "@cleanupOrphanedDownloadsSubtitle": { "description": "Subtitle for orphaned cleanup button" }, "cleanupOrphanedDownloadsResult": "Removed {count} orphaned entries from history", "@cleanupOrphanedDownloadsResult": { "description": "Snackbar after orphan cleanup", "placeholders": { "count": { "type": "int" } } }, "cleanupOrphanedDownloadsNone": "No orphaned entries found", "@cleanupOrphanedDownloadsNone": { "description": "Snackbar when no orphans found" }, "cacheTitle": "Storage & Cache", "@cacheTitle": { "description": "Cache management page title" }, "cacheSummaryTitle": "Cache overview", "@cacheSummaryTitle": { "description": "Heading for cache summary card" }, "cacheSummarySubtitle": "Clearing cache will not remove downloaded music files.", "@cacheSummarySubtitle": { "description": "Helper text for cache summary card" }, "cacheEstimatedTotal": "Estimated cache usage: {size}", "@cacheEstimatedTotal": { "description": "Total cache size shown in summary", "placeholders": { "size": { "type": "String" } } }, "cacheSectionStorage": "Cached Data", "@cacheSectionStorage": { "description": "Section header for cache entries" }, "cacheSectionMaintenance": "Maintenance", "@cacheSectionMaintenance": { "description": "Section header for cleanup actions" }, "cacheAppDirectory": "App cache directory", "@cacheAppDirectory": { "description": "Cache item title for app cache directory" }, "cacheAppDirectoryDesc": "HTTP responses, WebView data, and other temporary app data.", "@cacheAppDirectoryDesc": { "description": "Description of what app cache directory contains" }, "cacheTempDirectory": "Temporary directory", "@cacheTempDirectory": { "description": "Cache item title for temporary files directory" }, "cacheTempDirectoryDesc": "Temporary files from downloads and audio conversion.", "@cacheTempDirectoryDesc": { "description": "Description of what temporary directory contains" }, "cacheCoverImage": "Cover image cache", "@cacheCoverImage": { "description": "Cache item title for persistent cover images" }, "cacheCoverImageDesc": "Downloaded album and track cover art. Will re-download when viewed.", "@cacheCoverImageDesc": { "description": "Description of what cover image cache contains" }, "cacheLibraryCover": "Library cover cache", "@cacheLibraryCover": { "description": "Cache item title for local library cover art images" }, "cacheLibraryCoverDesc": "Cover art extracted from local music files. Will re-extract on next scan.", "@cacheLibraryCoverDesc": { "description": "Description of what library cover cache contains" }, "libraryPlaybackNormalization": "Volume normalization", "@libraryPlaybackNormalization": { "description": "Toggle title for ReplayGain playback normalization in the built-in player" }, "libraryPlaybackNormalizationSubtitle": "Even out loudness between tracks using their ReplayGain or R128 tags, when present", "@libraryPlaybackNormalizationSubtitle": { "description": "Subtitle explaining playback volume normalization" }, "cacheAudioAnalysis": "Audio analysis cache", "@cacheAudioAnalysis": { "description": "Cache item title for saved audio analysis results" }, "cacheAudioAnalysisDesc": "Saved spectrograms and analysis results. Will re-analyze on next open.", "@cacheAudioAnalysisDesc": { "description": "Description of what audio analysis cache contains" }, "cacheExploreFeed": "Explore feed cache", "@cacheExploreFeed": { "description": "Cache item title for explore home feed cache" }, "cacheExploreFeedDesc": "Explore tab content (new releases, trending). Will refresh on next visit.", "@cacheExploreFeedDesc": { "description": "Description of what explore feed cache contains" }, "cacheTrackLookup": "Track lookup cache", "@cacheTrackLookup": { "description": "Cache item title for track ID lookup cache" }, "cacheTrackLookupDesc": "Spotify/Deezer track ID lookups. Clearing may slow next few searches.", "@cacheTrackLookupDesc": { "description": "Description of what track lookup cache contains" }, "cacheCleanupUnusedDesc": "Remove orphaned download history and library entries for missing files.", "@cacheCleanupUnusedDesc": { "description": "Description of what cleanup unused data does" }, "cacheNoData": "No cached data", "@cacheNoData": { "description": "Label when cache category has no data" }, "cacheSizeWithFiles": "{size} in {count} files", "@cacheSizeWithFiles": { "description": "Cache size and file count", "placeholders": { "size": { "type": "String" }, "count": { "type": "int" } } }, "cacheSizeOnly": "{size}", "@cacheSizeOnly": { "description": "Cache size only", "placeholders": { "size": { "type": "String" } } }, "cacheEntries": "{count} entries", "@cacheEntries": { "description": "Track cache entry count", "placeholders": { "count": { "type": "int" } } }, "cacheClearSuccess": "Cleared: {target}", "@cacheClearSuccess": { "description": "Snackbar after clearing selected cache", "placeholders": { "target": { "type": "String" } } }, "cacheClearConfirmTitle": "Clear cache?", "@cacheClearConfirmTitle": { "description": "Dialog title before clearing one cache category" }, "cacheClearConfirmMessage": "This will clear cached data for {target}. Downloaded music files will not be deleted.", "@cacheClearConfirmMessage": { "description": "Dialog message before clearing selected cache", "placeholders": { "target": { "type": "String" } } }, "cacheClearAllConfirmTitle": "Clear all cache?", "@cacheClearAllConfirmTitle": { "description": "Dialog title before clearing all caches" }, "cacheClearAllConfirmMessage": "This will clear all cache categories on this page. Downloaded music files will not be deleted.", "@cacheClearAllConfirmMessage": { "description": "Dialog message before clearing all caches" }, "cacheClearAll": "Clear all cache", "@cacheClearAll": { "description": "Button label to clear all caches" }, "cacheCleanupUnused": "Cleanup unused data", "@cacheCleanupUnused": { "description": "Action title for cleaning unused entries" }, "cacheCleanupUnusedSubtitle": "Remove orphaned download history and missing library entries", "@cacheCleanupUnusedSubtitle": { "description": "Subtitle for cleanup unused data action" }, "cacheCleanupResult": "Cleanup completed: {downloadCount} orphaned downloads, {libraryCount} missing library entries", "@cacheCleanupResult": { "description": "Snackbar after unused data cleanup", "placeholders": { "downloadCount": { "type": "int" }, "libraryCount": { "type": "int" } } }, "cacheRefreshStats": "Refresh stats", "@cacheRefreshStats": { "description": "Button label to refresh cache statistics" }, "trackSaveCoverArt": "Save Cover Art", "@trackSaveCoverArt": { "description": "Menu action - save album cover art as file" }, "trackSaveLyrics": "Save Lyrics (.lrc)", "@trackSaveLyrics": { "description": "Menu action - save lyrics as .lrc file" }, "trackSaveLyricsProgress": "Saving lyrics...", "@trackSaveLyricsProgress": { "description": "Snackbar while saving lyrics to file" }, "trackReEnrich": "Re-enrich", "@trackReEnrich": { "description": "Menu action - re-embed metadata into audio file" }, "trackReEnrichOnlineSubtitle": "Search metadata online and embed into file", "@trackReEnrichOnlineSubtitle": { "description": "Subtitle for re-enrich metadata action for local items" }, "trackReEnrichFieldCover": "Cover Art", "@trackReEnrichFieldCover": { "description": "Checkbox label for cover art field in re-enrich" }, "trackReEnrichFieldLyrics": "Lyrics", "@trackReEnrichFieldLyrics": { "description": "Checkbox label for lyrics field in re-enrich" }, "trackReEnrichFieldBasicTags": "Album, Album Artist", "@trackReEnrichFieldBasicTags": { "description": "Checkbox label for basic tags in re-enrich (title/artist are never overwritten)" }, "trackReEnrichFieldTrackInfo": "Track & Disc Number", "@trackReEnrichFieldTrackInfo": { "description": "Checkbox label for track info in re-enrich" }, "trackReEnrichFieldReleaseInfo": "Date & ISRC", "@trackReEnrichFieldReleaseInfo": { "description": "Checkbox label for release info in re-enrich" }, "trackReEnrichFieldExtra": "Genre, Label, Copyright", "@trackReEnrichFieldExtra": { "description": "Checkbox label for extra metadata in re-enrich" }, "trackReEnrichSelectAll": "Select All", "@trackReEnrichSelectAll": { "description": "Select all fields checkbox in re-enrich" }, "trackReEnrichModeIsrc": "ISRC only", "@trackReEnrichModeIsrc": { "description": "Batch metadata mode that only writes ISRC" }, "trackReEnrichModeIsrcSubtitle": "Find and add the recording identifier without changing other tags", "@trackReEnrichModeIsrcSubtitle": { "description": "Explanation for the ISRC-only batch metadata mode" }, "trackReEnrichModeMissing": "Fill missing tags", "@trackReEnrichModeMissing": { "description": "Batch metadata mode that fills only empty tags" }, "trackReEnrichModeMissingSubtitle": "Keep existing values and fill only fields that are empty", "@trackReEnrichModeMissingSubtitle": { "description": "Explanation for the fill-missing batch metadata mode" }, "trackReEnrichModeReplace": "Update selected tags", "@trackReEnrichModeReplace": { "description": "Batch metadata mode that replaces selected tag groups" }, "trackReEnrichModeReplaceSubtitle": "Choose which existing values may be replaced by online metadata", "@trackReEnrichModeReplaceSubtitle": { "description": "Explanation for the selected-tag batch metadata mode" }, "trackReEnrichFieldsTitle": "Tags to update", "@trackReEnrichFieldsTitle": { "description": "Heading above batch re-enrich field checkboxes" }, "trackReEnrichReview": "Review changes", "@trackReEnrichReview": { "description": "Button that searches metadata and opens the batch change review" }, "trackReEnrichReviewTitle": "Review metadata changes", "@trackReEnrichReviewTitle": { "description": "Title of the batch metadata review sheet" }, "trackReEnrichReviewSubtitle": "{changeCount} proposed changes across {trackCount} tracks", "@trackReEnrichReviewSubtitle": { "description": "Summary shown above proposed batch metadata changes", "placeholders": { "changeCount": { "type": "int" }, "trackCount": { "type": "int" } } }, "trackReEnrichNoChanges": "No metadata changes were found for the selected tracks.", "@trackReEnrichNoChanges": { "description": "Message when batch metadata preview has no proposed changes" }, "trackReEnrichApplyChanges": "Apply changes", "@trackReEnrichApplyChanges": { "description": "Confirmation button in the batch metadata review sheet" }, "trackReEnrichRefreshOnline": "Refresh from online", "@trackReEnrichRefreshOnline": { "description": "Proposed value when lyrics will be refreshed during re-enrich" }, "trackEditMetadata": "Edit Metadata", "@trackEditMetadata": { "description": "Menu action - edit embedded metadata" }, "trackCoverSaved": "Cover art saved to {fileName}", "@trackCoverSaved": { "description": "Snackbar after cover art saved", "placeholders": { "fileName": { "type": "String" } } }, "trackCoverNoSource": "No cover art source available", "@trackCoverNoSource": { "description": "Snackbar when no cover art URL or embedded cover" }, "trackLyricsSaved": "Lyrics saved to {fileName}", "@trackLyricsSaved": { "description": "Snackbar after lyrics saved", "placeholders": { "fileName": { "type": "String" } } }, "trackReEnrichProgress": "Re-enriching metadata...", "@trackReEnrichProgress": { "description": "Snackbar while re-enriching metadata" }, "trackReEnrichSearching": "Searching metadata online...", "@trackReEnrichSearching": { "description": "Snackbar while searching metadata from internet for local items" }, "trackReEnrichSuccess": "Metadata re-enriched successfully", "@trackReEnrichSuccess": { "description": "Snackbar after successful re-enrichment" }, "trackReEnrichFfmpegFailed": "FFmpeg metadata embed failed", "@trackReEnrichFfmpegFailed": { "description": "Snackbar when FFmpeg embed fails for MP3/Opus" }, "queueFlacAction": "Queue FLAC", "@queueFlacAction": { "description": "Action/button label for queueing FLAC redownloads for local tracks" }, "queueFlacConfirmMessage": "Search online matches for the selected tracks and queue FLAC downloads.\n\nExisting files will not be modified or deleted.\n\nOnly high-confidence matches are queued automatically.\n\n{count} selected", "@queueFlacConfirmMessage": { "description": "Confirmation dialog body before queueing FLAC redownloads for local tracks", "placeholders": { "count": { "type": "int" } } }, "queueFlacNoReliableMatches": "No reliable online matches found for the selection", "@queueFlacNoReliableMatches": { "description": "Snackbar when no safe FLAC redownload matches were found" }, "queueFlacQueuedWithSkipped": "Added {addedCount} tracks to queue, skipped {skippedCount}", "@queueFlacQueuedWithSkipped": { "description": "Snackbar when some selected local tracks were queued for FLAC redownload and some were skipped", "placeholders": { "addedCount": { "type": "int" }, "skippedCount": { "type": "int" } } }, "trackSaveFailed": "Failed: {error}", "@trackSaveFailed": { "description": "Snackbar when save operation fails", "placeholders": { "error": { "type": "String" } } }, "trackConvertFormat": "Convert Format", "@trackConvertFormat": { "description": "Menu item - convert audio format" }, "trackConvertTitle": "Convert Audio", "@trackConvertTitle": { "description": "Title of convert bottom sheet" }, "trackConvertTargetFormat": "Target Format", "@trackConvertTargetFormat": { "description": "Label for format selection" }, "trackConvertBitrate": "Bitrate", "@trackConvertBitrate": { "description": "Label for bitrate selection" }, "trackConvertKeepOriginal": "Keep original file", "@trackConvertKeepOriginal": { "description": "Toggle to preserve the source file during conversion" }, "trackConvertKeepOriginalDescription": "Add the converted file as a separate library entry", "@trackConvertKeepOriginalDescription": { "description": "Description for preserving the source file during conversion" }, "trackConvertConfirmTitle": "Confirm Conversion", "@trackConvertConfirmTitle": { "description": "Confirmation dialog title" }, "trackConvertConfirmMessage": "Convert from {sourceFormat} to {targetFormat} at {bitrate}?\n\nThe original file will be deleted after conversion.", "@trackConvertConfirmMessage": { "description": "Confirmation dialog message", "placeholders": { "sourceFormat": { "type": "String" }, "targetFormat": { "type": "String" }, "bitrate": { "type": "String" } } }, "trackConvertConfirmMessageLossless": "Convert from {sourceFormat} to {targetFormat}? (Lossless — no quality loss)\n\nThe original file will be deleted after conversion.", "@trackConvertConfirmMessageLossless": { "description": "Confirmation dialog message for lossless-to-lossless conversion", "placeholders": { "sourceFormat": { "type": "String" }, "targetFormat": { "type": "String" } } }, "trackConvertConfirmKeepOriginal": "Convert from {sourceFormat} to {targetFormat}?\n\nThe original file will be kept and the converted file will be added as a separate library entry.", "@trackConvertConfirmKeepOriginal": { "description": "Confirmation message when the source file will be preserved", "placeholders": { "sourceFormat": { "type": "String" }, "targetFormat": { "type": "String" } } }, "trackConvertLosslessHint": "Lossless conversion — no quality loss", "@trackConvertLosslessHint": { "description": "Hint shown when converting between lossless formats" }, "trackConvertConverting": "Converting audio...", "@trackConvertConverting": { "description": "Snackbar while converting" }, "trackConvertSuccess": "Converted to {format} successfully", "@trackConvertSuccess": { "description": "Snackbar after successful conversion", "placeholders": { "format": { "type": "String" } } }, "trackConvertFailed": "Conversion failed", "@trackConvertFailed": { "description": "Snackbar when conversion fails" }, "cueSplitTitle": "Split CUE Sheet", "@cueSplitTitle": { "description": "Title for CUE split bottom sheet" }, "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" }, "collectionFavoriteArtists": "Favorite Artists", "@collectionFavoriteArtists": { "description": "Custom folder for favorite artists" }, "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" }, "collectionPlaylistTracks": "{count, plural, =1{1 track} other{{count} tracks}}", "@collectionPlaylistTracks": { "description": "Track count label for custom playlists", "placeholders": { "count": { "type": "int" } } }, "collectionArtistCount": "{count, plural, =1{1 artist} other{{count} artists}}", "@collectionArtistCount": { "description": "Artist count label for favorite artists", "placeholders": { "count": { "type": "int" } } }, "collectionAddedToPlaylist": "Added to \"{playlistName}\"", "@collectionAddedToPlaylist": { "description": "Snackbar after adding track to playlist", "placeholders": { "playlistName": { "type": "String" } } }, "collectionAlreadyInPlaylist": "Already in \"{playlistName}\"", "@collectionAlreadyInPlaylist": { "description": "Snackbar when track already exists in playlist", "placeholders": { "playlistName": { "type": "String" } } }, "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" }, "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" }, "collectionFavoriteArtistsEmptyTitle": "No favorite artists yet", "@collectionFavoriteArtistsEmptyTitle": { "description": "Favorite artists empty state title" }, "collectionFavoriteArtistsEmptySubtitle": "Tap the heart on an artist page to keep them here", "@collectionFavoriteArtistsEmptySubtitle": { "description": "Favorite artists empty state subtitle" }, "collectionPlaylistEmptyTitle": "Playlist is empty", "@collectionPlaylistEmptyTitle": { "description": "Playlist empty state title" }, "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" }, "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" } } }, "collectionAddedToFavoriteArtists": "\"{artistName}\" added to Favorite Artists", "@collectionAddedToFavoriteArtists": { "description": "Snackbar after adding artist to favorite artists", "placeholders": { "artistName": { "type": "String" } } }, "collectionRemovedFromFavoriteArtists": "\"{artistName}\" removed from Favorite Artists", "@collectionRemovedFromFavoriteArtists": { "description": "Snackbar after removing artist from favorite artists", "placeholders": { "artistName": { "type": "String" } } }, "trackOptionAddToLoved": "Add to Loved", "@trackOptionAddToLoved": { "description": "Bottom sheet action label - add track to loved folder" }, "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" }, "artistOptionAddToFavorites": "Add to Favorite Artists", "@artistOptionAddToFavorites": { "description": "Action label - add artist to favorite artists" }, "artistOptionRemoveFromFavorites": "Remove from Favorite Artists", "@artistOptionRemoveFromFavorites": { "description": "Action label - remove artist from favorite artists" }, "collectionPlaylistChangeCover": "Change cover image", "@collectionPlaylistChangeCover": { "description": "Bottom sheet action to pick a custom cover image for a playlist" }, "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" } } }, "selectionBatchConvertConfirmMessageLossless": "Convert {count} {count, plural, =1{track} other{tracks}} to {format}? (Lossless — no quality loss)\n\nOriginal files will be deleted after conversion.", "@selectionBatchConvertConfirmMessageLossless": { "description": "Confirmation dialog message for lossless batch conversion", "placeholders": { "count": { "type": "int" }, "format": { "type": "String" } } }, "selectionBatchConvertConfirmKeepOriginal": "Convert {count} {count, plural, =1{track} other{tracks}} to {format}?\n\nOriginal files will be kept and converted files will be added as separate library entries.", "@selectionBatchConvertConfirmKeepOriginal": { "description": "Batch conversion confirmation when source files will be preserved", "placeholders": { "count": { "type": "int" }, "format": { "type": "String" } } }, "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} downloaded", "@downloadedAlbumDownloadedCount": { "description": "Downloaded tracks count badge", "placeholders": { "count": { "type": "int" } } }, "downloadUseAlbumArtistForFoldersAlbumSubtitle": "Folder named after Album Artist tag", "@downloadUseAlbumArtistForFoldersAlbumSubtitle": { "description": "Subtitle when album artist is used for folder names" }, "downloadUseAlbumArtistForFoldersTrackSubtitle": "Folder named after Track Artist tag", "@downloadUseAlbumArtistForFoldersTrackSubtitle": { "description": "Subtitle when track artist is used for folder names" }, "lyricsProvidersTitle": "Lyrics Provider Priority", "@lyricsProvidersTitle": { "description": "Settings item title for lyrics provider order" }, "lyricsProvidersDescription": "Enable, disable and reorder lyrics sources. Providers are tried top-to-bottom until lyrics are found.", "@lyricsProvidersDescription": { "description": "Description on the lyrics provider priority page" }, "lyricsProvidersInfoText": "Extension lyrics providers run before built-in lyrics providers. At least one provider must remain enabled.", "@lyricsProvidersInfoText": { "description": "Info tip on lyrics provider priority page" }, "lyricsProvidersEnabledSection": "Enabled ({count})", "@lyricsProvidersEnabledSection": { "description": "Section header for enabled providers", "placeholders": { "count": { "type": "int" } } }, "lyricsProvidersDisabledSection": "Disabled ({count})", "@lyricsProvidersDisabledSection": { "description": "Section header for disabled providers", "placeholders": { "count": { "type": "int" } } }, "lyricsProvidersAtLeastOne": "At least one provider must remain enabled", "@lyricsProvidersAtLeastOne": { "description": "Snackbar when user tries to disable the last enabled provider" }, "lyricsProvidersSaved": "Lyrics provider priority saved", "@lyricsProvidersSaved": { "description": "Snackbar after saving lyrics provider priority" }, "lyricsProvidersDiscardContent": "You have unsaved changes that will be lost.", "@lyricsProvidersDiscardContent": { "description": "Body text of the discard-changes dialog on lyrics provider page" }, "lyricsProviderLrclibDesc": "Open-source synced lyrics database", "@lyricsProviderLrclibDesc": { "description": "Description for LRCLIB provider" }, "lyricsProviderNeteaseDesc": "NetEase Cloud Music (good for Asian songs)", "@lyricsProviderNeteaseDesc": { "description": "Description for Netease provider" }, "lyricsProviderMusixmatchDesc": "Largest lyrics database (multi-language)", "@lyricsProviderMusixmatchDesc": { "description": "Description for Musixmatch provider" }, "lyricsProviderAppleMusicDesc": "Word-by-word synced lyrics (via proxy)", "@lyricsProviderAppleMusicDesc": { "description": "Description for Apple Music provider" }, "lyricsProviderQqMusicDesc": "QQ Music (good for Chinese songs, via proxy)", "@lyricsProviderQqMusicDesc": { "description": "Description for QQ Music provider" }, "lyricsProviderLyricsPlusDesc": "Word-by-word karaoke lyrics (Apple/Musixmatch/Spotify/QQ, via proxy)", "@lyricsProviderLyricsPlusDesc": { "description": "Description for LyricsPlus provider" }, "lyricsProviderExtensionDesc": "Extension provider", "@lyricsProviderExtensionDesc": { "description": "Generic description for extension-based lyrics providers" }, "safMigrationTitle": "Storage Update Required", "@safMigrationTitle": { "description": "Title of SAF migration dialog" }, "safMigrationMessage1": "SpotiFLAC now uses Android Storage Access Framework (SAF) for downloads. This fixes \"permission denied\" errors on Android 10+.", "@safMigrationMessage1": { "description": "First paragraph of SAF migration dialog" }, "safMigrationMessage2": "Please select your download folder again to switch to the new storage system.", "@safMigrationMessage2": { "description": "Second paragraph of SAF migration dialog" }, "safMigrationSuccess": "Download folder updated to SAF mode", "@safMigrationSuccess": { "description": "Snackbar after successfully migrating to SAF" }, "settingsDonate": "Support Development", "@settingsDonate": { "description": "Settings menu item - donate page" }, "settingsDonateSubtitle": "Buy the developer a coffee", "@settingsDonateSubtitle": { "description": "Subtitle for donate menu item" }, "settingsBackup": "Backup & Restore", "@settingsBackup": { "description": "Settings menu item - backup and restore page" }, "settingsBackupSubtitle": "Move your library, history and settings to a new device", "@settingsBackupSubtitle": { "description": "Subtitle for backup and restore settings item" }, "backupTitle": "Backup & Restore", "@backupTitle": { "description": "App bar title for the backup and restore page" }, "backupExportSectionTitle": "Create backup", "@backupExportSectionTitle": { "description": "Section title for the export/backup card" }, "backupExportSectionDescription": "Save your settings, download history, liked tracks, wishlist, favorite artists and playlists into a single file you can keep or move to another phone.", "@backupExportSectionDescription": { "description": "Description of what a backup contains" }, "backupExportButton": "Create backup file", "@backupExportButton": { "description": "Button to create and share a backup file" }, "backupImportSectionTitle": "Restore backup", "@backupImportSectionTitle": { "description": "Section title for the import/restore card" }, "backupImportSectionDescription": "Pick a backup file to restore your data. This replaces the current settings, history and library on this device.", "@backupImportSectionDescription": { "description": "Description for the restore action" }, "backupImportButton": "Choose backup file", "@backupImportButton": { "description": "Button to pick a backup file to restore" }, "backupCreated": "Backup created", "@backupCreated": { "description": "Snackbar after a backup file is created" }, "backupCreateFailed": "Failed to create backup", "@backupCreateFailed": { "description": "Snackbar when backup creation fails" }, "backupRestoreConfirmTitle": "Restore this backup?", "@backupRestoreConfirmTitle": { "description": "Confirmation dialog title before restoring a backup" }, "backupRestoreConfirmMessage": "This will replace your current settings, download history, liked tracks, wishlist and playlists with the contents of the backup. This cannot be undone.", "@backupRestoreConfirmMessage": { "description": "Confirmation dialog message before restoring a backup" }, "backupRestoreConfirmButton": "Restore", "@backupRestoreConfirmButton": { "description": "Confirm button to proceed with restore" }, "backupRestored": "Backup restored successfully", "@backupRestored": { "description": "Snackbar after a successful restore" }, "backupRestoreFailed": "Failed to restore backup", "@backupRestoreFailed": { "description": "Snackbar when restore fails" }, "backupInvalidFile": "This file is not a valid SpotiFLAC backup", "@backupInvalidFile": { "description": "Snackbar when the chosen file is not a valid backup" }, "backupRestoreRestartHint": "Restart the app to make sure every change is applied.", "@backupRestoreRestartHint": { "description": "Hint shown after restoring that an app restart is recommended" }, "backupContentsTitle": "Backup contents", "@backupContentsTitle": { "description": "Header above the list summarizing what the backup contains" }, "backupContentsSettings": "App settings", "@backupContentsSettings": { "description": "Backup contents row label for settings" }, "backupContentsHistory": "{count} history {count, plural, =1{item} other{items}}", "@backupContentsHistory": { "description": "Backup contents row for history count", "placeholders": { "count": { "type": "int" } } }, "backupContentsLiked": "{count} liked {count, plural, =1{track} other{tracks}}", "@backupContentsLiked": { "description": "Backup contents row for liked tracks count", "placeholders": { "count": { "type": "int" } } }, "backupContentsWishlist": "{count} wishlist {count, plural, =1{track} other{tracks}}", "@backupContentsWishlist": { "description": "Backup contents row for wishlist tracks count", "placeholders": { "count": { "type": "int" } } }, "backupContentsPlaylists": "{count, plural, =1{1 playlist} other{{count} playlists}}", "@backupContentsPlaylists": { "description": "Backup contents row for playlist count", "placeholders": { "count": { "type": "int" } } }, "backupContentsArtists": "{count, plural, =1{1 favorite artist} other{{count} favorite artists}}", "@backupContentsArtists": { "description": "Backup contents row for favorite artists count", "placeholders": { "count": { "type": "int" } } }, "backupContentsExtensions": "{count, plural, =1{1 extension} other{{count} extensions}}", "@backupContentsExtensions": { "description": "Backup contents row for installed extensions count", "placeholders": { "count": { "type": "int" } } }, "backupIncludeSecrets": "Include extension credentials", "@backupIncludeSecrets": { "description": "Toggle to include secret extension settings (tokens, API keys) in the backup" }, "backupIncludeSecretsDescription": "Tokens and API keys from extensions will be saved into the backup file. Keep the file private. When off, you re-enter them after restoring.", "@backupIncludeSecretsDescription": { "description": "Explanation for the include-credentials toggle" }, "backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} could not be reinstalled. Install them manually from the repo.", "@backupExtensionsRestoreFailed": { "description": "Snackbar/hint when some extensions failed to reinstall during restore", "placeholders": { "count": { "type": "int" } } }, "tooltipLoveAll": "Love All", "@tooltipLoveAll": { "description": "Tooltip for the Love All button on album/playlist screens" }, "tooltipAddToPlaylist": "Add to Playlist", "@tooltipAddToPlaylist": { "description": "Tooltip for the Add to Playlist button" }, "snackbarRemovedTracksFromLoved": "Removed {count} tracks from Loved", "@snackbarRemovedTracksFromLoved": { "description": "Snackbar after removing multiple tracks from Loved folder", "placeholders": { "count": { "type": "int" } } }, "snackbarAddedTracksToLoved": "Added {count} tracks to Loved", "@snackbarAddedTracksToLoved": { "description": "Snackbar after adding multiple tracks to Loved folder", "placeholders": { "count": { "type": "int" } } }, "dialogDownloadAllTitle": "Download All", "@dialogDownloadAllTitle": { "description": "Dialog title for bulk download confirmation" }, "dialogDownloadAllMessage": "Download {count} tracks?", "@dialogDownloadAllMessage": { "description": "Body of the Download All confirmation dialog", "placeholders": { "count": { "type": "int" } } }, "homeSkipAlreadyDownloaded": "Skip already downloaded songs", "@homeSkipAlreadyDownloaded": { "description": "Checkbox label in import dialog to skip already-downloaded songs" }, "homeGoToAlbum": "Go to Album", "@homeGoToAlbum": { "description": "Context menu item to navigate to the album page" }, "homeAlbumInfoUnavailable": "Album info not available", "@homeAlbumInfoUnavailable": { "description": "Snackbar when album info cannot be loaded" }, "snackbarLoadingCueSheet": "Loading CUE sheet...", "@snackbarLoadingCueSheet": { "description": "Snackbar while loading a CUE sheet file" }, "snackbarMetadataSaved": "Metadata saved successfully", "@snackbarMetadataSaved": { "description": "Snackbar after successfully saving track metadata" }, "snackbarFailedToEmbedLyrics": "Failed to embed lyrics", "@snackbarFailedToEmbedLyrics": { "description": "Snackbar when lyrics embedding fails" }, "snackbarFailedToWriteStorage": "Failed to write back to storage", "@snackbarFailedToWriteStorage": { "description": "Snackbar when writing metadata back to file fails" }, "snackbarError": "Error: {error}", "@snackbarError": { "description": "Generic error snackbar with error detail", "placeholders": { "error": { "type": "String" } } }, "snackbarNoActionDefined": "No action defined for this button", "@snackbarNoActionDefined": { "description": "Snackbar when an extension button has no action configured" }, "noTracksFoundForAlbum": "No tracks found for this album", "@noTracksFoundForAlbum": { "description": "Empty state message when an album has no tracks" }, "downloadLocationSubtitle": "Choose where to save your downloaded tracks", "@downloadLocationSubtitle": { "description": "Subtitle shown in the download location picker sheet" }, "storageModeAppFolder": "App Folder (Recommended)", "@storageModeAppFolder": { "description": "Storage mode option - app-managed folder" }, "storageModeAppFolderSubtitle": "Saves to Music/SpotiFLAC by default", "@storageModeAppFolderSubtitle": { "description": "Subtitle for app folder storage mode" }, "storageModeSaf": "Custom Folder (SAF)", "@storageModeSaf": { "description": "Storage mode option - Storage Access Framework" }, "storageModeSafSubtitle": "Pick any folder, including SD card", "@storageModeSafSubtitle": { "description": "Subtitle for SAF storage mode" }, "downloadFolderAccessLostTitle": "Download folder access lost", "@downloadFolderAccessLostTitle": { "description": "Title of the warning banner shown in Files settings when the saved SAF folder grant is no longer valid" }, "downloadFolderAccessLostSubtitle": "Downloads will fail until you re-select the folder", "@downloadFolderAccessLostSubtitle": { "description": "Subtitle of the warning banner shown when the saved SAF folder grant is no longer valid" }, "downloadFolderReselect": "Re-select folder", "@downloadFolderReselect": { "description": "Button that reopens the folder picker to restore download folder access" }, "downloadErrorSafPermissionLost": "SAF permission invalid or revoked. Please reconfigure download location in Settings.", "@downloadErrorSafPermissionLost": { "description": "Error shown on downloads that failed because the persisted Android SAF folder grant is no longer valid" }, "downloadErrorFolderAccessLost": "Download folder access lost. Please re-select your download folder in Settings.", "@downloadErrorFolderAccessLost": { "description": "Error shown on downloads that failed because the iOS download folder bookmark could not be opened" }, "downloadFilenameDescription": "Use {artist}, {title}, {album}, {track}, {year}, {date}, {disc} as placeholders.", "@downloadFilenameDescription": { "description": "Description shown in filename format editor" }, "downloadFilenameInsertTag": "Tap to insert tag:", "@downloadFilenameInsertTag": { "description": "Label above filename tag chips" }, "downloadSeparateSinglesEnabled": "Singles and EPs saved in a separate folder", "@downloadSeparateSinglesEnabled": { "description": "Subtitle when separate singles folder is on" }, "downloadSeparateSinglesDisabled": "Singles and albums saved in the same folder", "@downloadSeparateSinglesDisabled": { "description": "Subtitle when separate singles folder is off" }, "downloadArtistNameFilters": "Artist Name Filters", "@downloadArtistNameFilters": { "description": "Setting title for artist folder filter options" }, "downloadCreatePlaylistSourceFolder": "Playlist Source Folder", "@downloadCreatePlaylistSourceFolder": { "description": "Setting to create a subfolder per playlist source" }, "downloadCreatePlaylistSourceFolderEnabled": "A subfolder is created for each playlist", "@downloadCreatePlaylistSourceFolderEnabled": { "description": "Subtitle when playlist folder is enabled" }, "downloadCreatePlaylistSourceFolderDisabled": "All tracks saved directly to download folder", "@downloadCreatePlaylistSourceFolderDisabled": { "description": "Subtitle when playlist folder is disabled" }, "downloadCreatePlaylistSourceFolderRedundant": "Handled by folder organization setting", "@downloadCreatePlaylistSourceFolderRedundant": { "description": "Subtitle when folder organization is already set to playlist" }, "downloadSongLinkRegion": "SongLink Region", "@downloadSongLinkRegion": { "description": "Setting for SongLink region used during fallback resolution" }, "downloadNetworkCompatibilityMode": "Network Compatibility Mode", "@downloadNetworkCompatibilityMode": { "description": "Setting for legacy TLS/network handling" }, "downloadNetworkCompatibilityModeEnabled": "Allowing legacy HTTP endpoints; TLS verification remains enabled", "@downloadNetworkCompatibilityModeEnabled": { "description": "Subtitle when network compatibility mode is on" }, "downloadNetworkCompatibilityModeDisabled": "Using standard network settings", "@downloadNetworkCompatibilityModeDisabled": { "description": "Subtitle when network compatibility mode is off" }, "downloadAllowLocalNetwork": "Allow Local Network Access", "@downloadAllowLocalNetwork": { "description": "Setting title for allowing requests to private/local network targets" }, "downloadAllowLocalNetworkEnabled": "Requests to local/private addresses are allowed (for local proxy or custom DNS)", "@downloadAllowLocalNetworkEnabled": { "description": "Subtitle when allow local network access is on" }, "downloadAllowLocalNetworkDisabled": "Local/private addresses are blocked for security", "@downloadAllowLocalNetworkDisabled": { "description": "Subtitle when allow local network access is off" }, "downloadSelectServiceToEnable": "Select a provider with quality options to enable this option", "@downloadSelectServiceToEnable": { "description": "Subtitle when quality picker is disabled due to extension service" }, "downloadEmbedLyricsDisabled": "Enable metadata embedding first", "@downloadEmbedLyricsDisabled": { "description": "Subtitle when lyrics embedding is blocked by metadata toggle" }, "downloadNeteaseIncludeTranslation": "Netease: Include Translation", "@downloadNeteaseIncludeTranslation": { "description": "Setting to include translated lyrics from Netease" }, "downloadNeteaseIncludeTranslationEnabled": "Chinese translation lines included", "@downloadNeteaseIncludeTranslationEnabled": { "description": "Subtitle when Netease translation is on" }, "downloadNeteaseIncludeTranslationDisabled": "Original lyrics only", "@downloadNeteaseIncludeTranslationDisabled": { "description": "Subtitle when Netease translation is off" }, "downloadNeteaseIncludeRomanization": "Netease: Include Romanization", "@downloadNeteaseIncludeRomanization": { "description": "Setting to include romanized lyrics from Netease" }, "downloadNeteaseIncludeRomanizationEnabled": "Romanization lines included", "@downloadNeteaseIncludeRomanizationEnabled": { "description": "Subtitle when Netease romanization is on" }, "downloadNeteaseIncludeRomanizationDisabled": "No romanization", "@downloadNeteaseIncludeRomanizationDisabled": { "description": "Subtitle when Netease romanization is off" }, "downloadAppleQqMultiPerson": "Apple / QQ: Multi-Person Lyrics", "@downloadAppleQqMultiPerson": { "description": "Setting for word-by-word multi-person lyrics from Apple Music and QQ Music" }, "downloadAppleQqMultiPersonEnabled": "Speaker labels included for duets and group tracks", "@downloadAppleQqMultiPersonEnabled": { "description": "Subtitle when multi-person lyrics is on" }, "downloadAppleQqMultiPersonDisabled": "Standard lyrics without speaker labels", "@downloadAppleQqMultiPersonDisabled": { "description": "Subtitle when multi-person lyrics is off" }, "downloadAppleElrcWordSync": "Apple Music eLRC Word Sync", "@downloadAppleElrcWordSync": { "description": "Setting for preserving Apple Music word-by-word eLRC timestamps" }, "downloadAppleElrcWordSyncEnabled": "Raw word-by-word timestamps preserved", "@downloadAppleElrcWordSyncEnabled": { "description": "Subtitle when Apple Music eLRC word sync is enabled" }, "downloadAppleElrcWordSyncDisabled": "Safer line-by-line Apple Music lyrics", "@downloadAppleElrcWordSyncDisabled": { "description": "Subtitle when Apple Music eLRC word sync is disabled" }, "downloadMusixmatchLanguage": "Musixmatch Language", "@downloadMusixmatchLanguage": { "description": "Setting for Musixmatch lyrics translation language" }, "downloadMusixmatchLanguageAuto": "Auto (original language)", "@downloadMusixmatchLanguageAuto": { "description": "Subtitle when no language is set" }, "downloadFilterContributing": "Filter Contributing Artists", "@downloadFilterContributing": { "description": "Setting to strip contributing artists from Album Artist folder name" }, "downloadFilterContributingEnabled": "Contributing artists removed from Album Artist folder name", "@downloadFilterContributingEnabled": { "description": "Subtitle when contributing artist filter is on" }, "downloadFilterContributingDisabled": "Full Album Artist string used", "@downloadFilterContributingDisabled": { "description": "Subtitle when contributing artist filter is off" }, "downloadProvidersNoneEnabled": "No providers enabled", "@downloadProvidersNoneEnabled": { "description": "Shown when no lyrics providers are active" }, "downloadMusixmatchLanguageCode": "Language code", "@downloadMusixmatchLanguageCode": { "description": "Label for Musixmatch language input field" }, "downloadMusixmatchLanguageHint": "e.g. en, de, ja", "@downloadMusixmatchLanguageHint": { "description": "Placeholder for Musixmatch language input" }, "downloadMusixmatchLanguageDesc": "Enter a BCP-47 language code (e.g. en, de, ja) to request translated lyrics from Musixmatch.", "@downloadMusixmatchLanguageDesc": { "description": "Description in Musixmatch language picker" }, "downloadMusixmatchAuto": "Auto", "@downloadMusixmatchAuto": { "description": "Button to clear Musixmatch language (use auto)" }, "downloadNetworkAnySubtitle": "Use WiFi or mobile data", "@downloadNetworkAnySubtitle": { "description": "Subtitle for any-network option in picker" }, "downloadNetworkWifiOnlySubtitle": "Downloads pause when on mobile data", "@downloadNetworkWifiOnlySubtitle": { "description": "Subtitle for WiFi-only option in picker" }, "downloadSongLinkRegionDesc": "Region used when resolving track links via SongLink. Choose the country where your streaming services are available.", "@downloadSongLinkRegionDesc": { "description": "Description in SongLink region picker" }, "snackbarUnsupportedAudioFormat": "Unsupported audio format", "@snackbarUnsupportedAudioFormat": { "description": "Snackbar when the audio format is not supported for the requested operation" }, "cacheRefresh": "Refresh", "@cacheRefresh": { "description": "Tooltip for refresh button on cache management page" }, "dialogDownloadPlaylistsMessage": "Download {trackCount} {trackCount, plural, =1{track} other{tracks}} from {playlistCount} {playlistCount, plural, =1{playlist} other{playlists}}?", "@dialogDownloadPlaylistsMessage": { "description": "Dialog message for bulk playlist download confirmation", "placeholders": { "trackCount": { "type": "int" }, "playlistCount": { "type": "int" } } }, "bulkDownloadPlaylistsButton": "Download {count} {count, plural, =1{playlist} other{playlists}}", "@bulkDownloadPlaylistsButton": { "description": "Button label for bulk downloading selected playlists", "placeholders": { "count": { "type": "int" } } }, "bulkDownloadSelectPlaylists": "Select playlists to download", "@bulkDownloadSelectPlaylists": { "description": "Button label when no playlists are selected for download" }, "snackbarSelectedPlaylistsEmpty": "Selected playlists have no tracks", "@snackbarSelectedPlaylistsEmpty": { "description": "Snackbar when selected playlists contain no tracks" }, "playlistsCount": "{count, plural, =1{1 playlist} other{{count} playlists}}", "@playlistsCount": { "description": "Playlist count display", "placeholders": { "count": { "type": "int" } } }, "editMetadataAutoFill": "Auto-fill from online", "@editMetadataAutoFill": { "description": "Section title for selective online metadata auto-fill in the edit metadata sheet" }, "editMetadataAutoFillDesc": "Choose a metadata extension, select fields, then review its data before applying", "@editMetadataAutoFillDesc": { "description": "Description for the auto-fill section" }, "editMetadataAutoFillSource": "Metadata source", "@editMetadataAutoFillSource": { "description": "Label for the metadata extension selector in online auto-fill" }, "editMetadataAutoFillSourceAutomatic": "Automatic (provider priority)", "@editMetadataAutoFillSourceAutomatic": { "description": "Automatic source option that follows configured metadata provider priority" }, "editMetadataAutoFillFind": "Find metadata", "@editMetadataAutoFillFind": { "description": "Button label for finding an online metadata candidate" }, "editMetadataAutoFillPreview": "Data from {source}", "@editMetadataAutoFillPreview": { "description": "Title for the online metadata preview", "placeholders": { "source": { "type": "String" } } }, "editMetadataAutoFillCoverAvailable": "Cover artwork available", "@editMetadataAutoFillCoverAvailable": { "description": "Preview value when the selected metadata source provides cover artwork" }, "editMetadataAutoFillApply": "Apply selected data", "@editMetadataAutoFillApply": { "description": "Button label for applying the previewed metadata" }, "editMetadataAutoFillDoneFromSource": "Filled {count} {count, plural, =1{field} other{fields}} from {source}", "@editMetadataAutoFillDoneFromSource": { "description": "Snackbar confirming fields applied from a selected metadata source", "placeholders": { "count": { "type": "int" }, "source": { "type": "String" } } }, "editMetadataAutoFillFetch": "Fetch & Fill", "@editMetadataAutoFillFetch": { "description": "Button label to fetch online metadata and fill selected fields" }, "editMetadataAutoFillSearching": "Searching online...", "@editMetadataAutoFillSearching": { "description": "Snackbar shown while searching for online metadata" }, "editMetadataAutoFillNoResults": "No matching metadata found online", "@editMetadataAutoFillNoResults": { "description": "Snackbar when online metadata search returns no results" }, "editMetadataAutoFillDone": "Filled {count} {count, plural, =1{field} other{fields}} from online metadata", "@editMetadataAutoFillDone": { "description": "Snackbar confirming how many fields were auto-filled", "placeholders": { "count": { "type": "int" } } }, "editMetadataAutoFillNoneSelected": "Select at least one field to auto-fill", "@editMetadataAutoFillNoneSelected": { "description": "Snackbar when user taps Fetch without selecting any fields" }, "editMetadataFieldTitle": "Title", "@editMetadataFieldTitle": { "description": "Chip label for title field in auto-fill selector" }, "editMetadataFieldArtist": "Artist", "@editMetadataFieldArtist": { "description": "Chip label for artist field in auto-fill selector" }, "editMetadataFieldAlbum": "Album", "@editMetadataFieldAlbum": { "description": "Chip label for album field in auto-fill selector" }, "editMetadataFieldAlbumArtist": "Album Artist", "@editMetadataFieldAlbumArtist": { "description": "Chip label for album artist field in auto-fill selector" }, "editMetadataFieldDate": "Date", "@editMetadataFieldDate": { "description": "Chip label for date field in auto-fill selector" }, "editMetadataFieldTrackNum": "Track #", "@editMetadataFieldTrackNum": { "description": "Chip label for track number field in auto-fill selector" }, "editMetadataFieldDiscNum": "Disc #", "@editMetadataFieldDiscNum": { "description": "Chip label for disc number field in auto-fill selector" }, "editMetadataFieldGenre": "Genre", "@editMetadataFieldGenre": { "description": "Chip label for genre field in auto-fill selector" }, "editMetadataFieldIsrc": "ISRC", "@editMetadataFieldIsrc": { "description": "Chip label for ISRC field in auto-fill selector" }, "editMetadataFieldLabel": "Label", "@editMetadataFieldLabel": { "description": "Chip label for label field in auto-fill selector" }, "editMetadataFieldCopyright": "Copyright", "@editMetadataFieldCopyright": { "description": "Chip label for copyright field in auto-fill selector" }, "editMetadataFieldCover": "Cover Art", "@editMetadataFieldCover": { "description": "Chip label for cover art field in auto-fill selector" }, "editMetadataSelectAll": "All", "@editMetadataSelectAll": { "description": "Button to select all fields for auto-fill" }, "editMetadataSelectEmpty": "Empty only", "@editMetadataSelectEmpty": { "description": "Button to select only fields that are currently empty" }, "queueDownloadingCount": "Downloading ({count})", "@queueDownloadingCount": { "description": "Header for active downloads section with count", "placeholders": { "count": { "type": "int" } } }, "queueFilteringIndicator": "Filtering...", "@queueFilteringIndicator": { "description": "Shown while filter results are being computed" }, "queueTrackCount": "{count, plural, =1{1 track} other{{count} tracks}}", "@queueTrackCount": { "description": "Track count label with plural support", "placeholders": { "count": { "type": "int" } } }, "queueAlbumCount": "{count, plural, =1{1 album} other{{count} albums}}", "@queueAlbumCount": { "description": "Album count label with plural support", "placeholders": { "count": { "type": "int" } } }, "queueEmptyAlbums": "No album downloads", "@queueEmptyAlbums": { "description": "Empty state title when no album downloads exist" }, "queueEmptyAlbumsSubtitle": "Download multiple tracks from an album to see them here", "@queueEmptyAlbumsSubtitle": { "description": "Empty state subtitle for album downloads" }, "queueEmptySingles": "No single downloads", "@queueEmptySingles": { "description": "Empty state title when no single track downloads exist" }, "queueEmptySinglesSubtitle": "Single track downloads will appear here", "@queueEmptySinglesSubtitle": { "description": "Empty state subtitle for single track downloads" }, "queuePlaylistCount": "{count, plural, =1{1 playlist} other{{count} playlists}}", "@queuePlaylistCount": { "description": "Playlist count label with plural support", "placeholders": { "count": { "type": "int" } } }, "queueEmptyPlaylistsSubtitle": "Create a playlist to organize your tracks", "@queueEmptyPlaylistsSubtitle": { "description": "Empty state subtitle for the playlists library view" }, "libraryDefaultView": "Default view", "@libraryDefaultView": { "description": "Setting title - which library view opens when switching to the Library tab" }, "libraryDefaultViewLastUsed": "Last used", "@libraryDefaultViewLastUsed": { "description": "Default view option - keep the last used library view" }, "queueEmptyHistory": "No download history", "@queueEmptyHistory": { "description": "Empty state title when download history is empty" }, "queueEmptyHistorySubtitle": "Downloaded tracks will appear here", "@queueEmptyHistorySubtitle": { "description": "Empty state subtitle for download history" }, "selectionAllPlaylistsSelected": "All playlists selected", "@selectionAllPlaylistsSelected": { "description": "Shown when all playlists are selected in selection mode" }, "selectionTapPlaylistsToSelect": "Tap playlists to select", "@selectionTapPlaylistsToSelect": { "description": "Hint shown in playlist selection mode" }, "selectionSelectPlaylistsToDelete": "Select playlists to delete", "@selectionSelectPlaylistsToDelete": { "description": "Hint shown when no playlists are selected for deletion" }, "audioAnalysisTitle": "Audio Quality Analysis", "@audioAnalysisTitle": { "description": "Title for audio analysis section" }, "audioAnalysisDescription": "Verify lossless quality with spectrum analysis", "@audioAnalysisDescription": { "description": "Description for audio analysis tap-to-analyze prompt" }, "audioAnalysisAnalyzing": "Analyzing audio...", "@audioAnalysisAnalyzing": { "description": "Loading text while analyzing audio" }, "audioAnalysisSampleRate": "Sample Rate", "@audioAnalysisSampleRate": { "description": "Sample rate metric label" }, "audioAnalysisCodec": "Codec", "@audioAnalysisCodec": { "description": "Audio codec metric label" }, "audioAnalysisContainer": "Container", "@audioAnalysisContainer": { "description": "Audio container metric label" }, "audioAnalysisDecodedFormat": "Decoded Format", "@audioAnalysisDecodedFormat": { "description": "Decoded sample format metric label" }, "audioAnalysisBitDepth": "Bit Depth", "@audioAnalysisBitDepth": { "description": "Bit depth metric label" }, "audioAnalysisChannels": "Channels", "@audioAnalysisChannels": { "description": "Channels metric label" }, "audioAnalysisDuration": "Duration", "@audioAnalysisDuration": { "description": "Duration metric label" }, "audioAnalysisNyquist": "Nyquist", "@audioAnalysisNyquist": { "description": "Nyquist frequency metric label" }, "audioAnalysisFileSize": "Size", "@audioAnalysisFileSize": { "description": "File size metric label" }, "audioAnalysisDynamicRange": "Dynamic Range", "@audioAnalysisDynamicRange": { "description": "Dynamic range metric label" }, "audioAnalysisPeak": "Peak", "@audioAnalysisPeak": { "description": "Peak amplitude metric label" }, "audioAnalysisRms": "RMS", "@audioAnalysisRms": { "description": "RMS level metric label" }, "audioAnalysisLufs": "LUFS", "@audioAnalysisLufs": { "description": "Integrated loudness metric label" }, "audioAnalysisTruePeak": "True Peak", "@audioAnalysisTruePeak": { "description": "True peak metric label" }, "audioAnalysisClipping": "Clipping", "@audioAnalysisClipping": { "description": "Clipping metric label" }, "audioAnalysisNoClipping": "No clipping", "@audioAnalysisNoClipping": { "description": "Displayed when no clipped samples were detected" }, "audioAnalysisSpectralCutoff": "Spectral Cutoff", "@audioAnalysisSpectralCutoff": { "description": "Estimated spectral cutoff metric label" }, "audioAnalysisCutoffNotDetected": "Not detected", "@audioAnalysisCutoffNotDetected": { "description": "Displayed when no reliable broadband spectral cutoff can be detected" }, "audioAnalysisChannelStats": "Per-channel Stats", "@audioAnalysisChannelStats": { "description": "Per-channel audio analysis section label" }, "audioAnalysisSamples": "Samples", "@audioAnalysisSamples": { "description": "Total samples metric label" }, "audioAnalysisRescan": "Re-analyze", "@audioAnalysisRescan": { "description": "Tooltip/label for the button that re-runs the audio analysis, discarding cached results" }, "audioAnalysisRescanning": "Re-analyzing audio...", "@audioAnalysisRescanning": { "description": "Loading text while audio is being re-analyzed after an explicit refresh" }, "extensionsHomeFeedProvider": "Home Feed Provider", "@extensionsHomeFeedProvider": { "description": "Extensions page - label for home feed provider selector" }, "extensionsHomeFeedDescription": "Choose which extension provides the home feed on the main screen", "@extensionsHomeFeedDescription": { "description": "Extensions page - description for home feed provider picker" }, "extensionsHomeFeedAuto": "Auto", "@extensionsHomeFeedAuto": { "description": "Label for auto-selected search provider" }, "extensionsHomeFeedAutoSubtitle": "Automatically select the best available", "@extensionsHomeFeedAutoSubtitle": { "description": "Extensions page - subtitle for auto home feed option" }, "extensionsHomeFeedOff": "Off", "@extensionsHomeFeedOff": { "description": "Extensions page - home feed provider option: off" }, "extensionsHomeFeedOffSubtitle": "Do not show the home feed on the main screen", "@extensionsHomeFeedOffSubtitle": { "description": "Extensions page - subtitle for off home feed option" }, "extensionsHomeFeedUse": "Use {extensionName} home feed", "@extensionsHomeFeedUse": { "description": "Extensions page - subtitle for a specific extension home feed option", "placeholders": { "extensionName": { "type": "String" } } }, "extensionsNoHomeFeedExtensions": "No extensions with home feed", "@extensionsNoHomeFeedExtensions": { "description": "Extensions page - shown when no installed extension has home feed" }, "cancelDownloadTitle": "Cancel download?", "@cancelDownloadTitle": { "description": "Dialog title when confirming cancellation of an active download" }, "cancelDownloadContent": "This will cancel the active download for \"{trackName}\".", "@cancelDownloadContent": { "description": "Dialog body when confirming cancellation of an active download", "placeholders": { "trackName": { "type": "String" } } }, "cancelDownloadKeep": "Keep", "@cancelDownloadKeep": { "description": "Dialog button - keep the active download (do not cancel)" }, "queueCancelledTitle": "Download cancelled", "@queueCancelledTitle": { "description": "Dialog title when opening a cancelled queue item" }, "queueCancelledMessage": "This download was cancelled. Retry it or remove it from the queue.", "@queueCancelledMessage": { "description": "Dialog body when opening a cancelled queue item" }, "metadataSaveFailedFfmpeg": "Failed to save metadata via FFmpeg", "@metadataSaveFailedFfmpeg": { "description": "Snackbar error when FFmpeg fails to write metadata" }, "metadataSaveFailedStorage": "Failed to write metadata back to storage", "@metadataSaveFailedStorage": { "description": "Snackbar error when writing metadata file back to storage fails" }, "snackbarFolderPickerFailed": "Failed to open folder picker: {error}", "@snackbarFolderPickerFailed": { "description": "Snackbar shown when folder picker fails to open", "placeholders": { "error": { "type": "String" } } }, "notifDownloadingTrack": "Downloading {trackName}", "@notifDownloadingTrack": { "description": "Notification title while downloading a track", "placeholders": { "trackName": { "type": "String" } } }, "notifFinalizingTrack": "Finalizing {trackName}", "@notifFinalizingTrack": { "description": "Notification title while finalizing (embedding metadata) a track", "placeholders": { "trackName": { "type": "String" } } }, "notifEmbeddingMetadata": "Embedding metadata...", "@notifEmbeddingMetadata": { "description": "Notification body while embedding metadata into a downloaded track" }, "notifAlreadyInLibraryCount": "Already in Library ({completed}/{total})", "@notifAlreadyInLibraryCount": { "description": "Notification title when track is already in library, with count", "placeholders": { "completed": { "type": "int" }, "total": { "type": "int" } } }, "notifAlreadyInLibrary": "Already in Library", "@notifAlreadyInLibrary": { "description": "Notification title when track is already in library" }, "notifDownloadCompleteCount": "Download Complete ({completed}/{total})", "@notifDownloadCompleteCount": { "description": "Notification title when download is complete, with count", "placeholders": { "completed": { "type": "int" }, "total": { "type": "int" } } }, "notifDownloadComplete": "Download Complete", "@notifDownloadComplete": { "description": "Notification title when a single download is complete" }, "notifDownloadsFinished": "Downloads Finished ({completed} done, {failed} failed)", "@notifDownloadsFinished": { "description": "Notification title when queue finishes with some failures", "placeholders": { "completed": { "type": "int" }, "failed": { "type": "int" } } }, "notifVerificationRequiredTitle": "Verification required", "@notifVerificationRequiredTitle": { "description": "Notification title shown when a download needs the user to complete a verification challenge but the app is in the background" }, "notifVerificationRequiredBody": "Open the app to complete verification and resume downloads", "@notifVerificationRequiredBody": { "description": "Notification body prompting the user to return to the app to solve a verification challenge" }, "notifAllDownloadsComplete": "All Downloads Complete", "@notifAllDownloadsComplete": { "description": "Notification title when all downloads finish successfully" }, "notifTracksDownloadedSuccess": "{count, plural, =1{1 track downloaded successfully} other{{count} tracks downloaded successfully}}", "@notifTracksDownloadedSuccess": { "description": "Notification body for queue complete - how many tracks were downloaded", "placeholders": { "count": { "type": "int" } } }, "notifDownloadsFinishedBody": "{completed, plural, =1{1 track downloaded} other{{completed} tracks downloaded}}, {failed, plural, =1{1 failed} other{{failed} failed}}", "@notifDownloadsFinishedBody": { "description": "Notification body when queue finishes with failures", "placeholders": { "completed": { "type": "int" }, "failed": { "type": "int" } } }, "notifDownloadsCanceledTitle": "Downloads canceled", "@notifDownloadsCanceledTitle": { "description": "Notification title when downloads are canceled by the user" }, "notifDownloadsCanceledBody": "{count, plural, =1{1 download canceled by user} other{{count} downloads canceled by user}}", "@notifDownloadsCanceledBody": { "description": "Notification body when downloads are canceled by the user", "placeholders": { "count": { "type": "int" } } }, "notifScanningLibrary": "Scanning local library", "@notifScanningLibrary": { "description": "Notification title while scanning local library" }, "notifLibraryScanProgressWithTotal": "{scanned}/{total} files • {percentage}%", "@notifLibraryScanProgressWithTotal": { "description": "Notification body for library scan progress when total is known", "placeholders": { "scanned": { "type": "int" }, "total": { "type": "int" }, "percentage": { "type": "int" } } }, "notifLibraryScanProgressNoTotal": "{scanned} files scanned • {percentage}%", "@notifLibraryScanProgressNoTotal": { "description": "Notification body for library scan progress when total is unknown", "placeholders": { "scanned": { "type": "int" }, "percentage": { "type": "int" } } }, "notifLibraryScanComplete": "Library scan complete", "@notifLibraryScanComplete": { "description": "Notification title when library scan finishes" }, "notifLibraryScanCompleteBody": "{count} tracks indexed", "@notifLibraryScanCompleteBody": { "description": "Notification body for library scan complete - number of indexed tracks", "placeholders": { "count": { "type": "int" } } }, "notifLibraryScanExcluded": "{count} excluded", "@notifLibraryScanExcluded": { "description": "Library scan complete suffix - excluded track count", "placeholders": { "count": { "type": "int" } } }, "notifLibraryScanErrors": "{count} errors", "@notifLibraryScanErrors": { "description": "Library scan complete suffix - error count", "placeholders": { "count": { "type": "int" } } }, "notifLibraryScanFailed": "Library scan failed", "@notifLibraryScanFailed": { "description": "Notification title when library scan fails" }, "notifLibraryScanCancelled": "Library scan cancelled", "@notifLibraryScanCancelled": { "description": "Notification title when library scan is cancelled by the user" }, "notifLibraryScanStopped": "Scan stopped before completion.", "@notifLibraryScanStopped": { "description": "Notification body when library scan is cancelled" }, "notifDownloadingUpdate": "Downloading SpotiFLAC Mobile v{version}", "@notifDownloadingUpdate": { "description": "Notification title while downloading an app update", "placeholders": { "version": { "type": "String" } } }, "notifUpdateProgress": "{received} / {total} MB • {percentage}%", "@notifUpdateProgress": { "description": "Notification body showing update download progress", "placeholders": { "received": { "type": "String" }, "total": { "type": "String" }, "percentage": { "type": "int" } } }, "notifUpdateReady": "Update Ready", "@notifUpdateReady": { "description": "Notification title when app update download is complete" }, "notifUpdateReadyBody": "SpotiFLAC Mobile v{version} downloaded. Tap to install.", "@notifUpdateReadyBody": { "description": "Notification body when app update is ready to install", "placeholders": { "version": { "type": "String" } } }, "notifUpdateFailed": "Update Failed", "@notifUpdateFailed": { "description": "Notification title when app update download fails" }, "notifUpdateFailedBody": "Could not download update. Try again later.", "@notifUpdateFailedBody": { "description": "Notification body when app update download fails" }, "searchTracks": "Tracks", "@searchTracks": { "description": "Search filter label - tracks" }, "homeSearchHintDefault": "Paste supported URL or search...", "@homeSearchHintDefault": { "description": "Default placeholder for the main search field on Home" }, "homeSearchHintProvider": "Search with {providerName}...", "@homeSearchHintProvider": { "description": "Placeholder for the main search field when a provider is selected", "placeholders": { "providerName": { "type": "String" } } }, "homeImportCsvTooltip": "Import playlist (CSV, M3U)", "@homeImportCsvTooltip": { "description": "Tooltip for importing a CSV or M3U playlist file into Home search" }, "homeChangeSearchProviderTooltip": "Change search provider", "@homeChangeSearchProviderTooltip": { "description": "Tooltip for the Home search provider picker" }, "actionPaste": "Paste", "@actionPaste": { "description": "Generic action - paste from clipboard" }, "tutorialSearchHint": "Paste or search...", "@tutorialSearchHint": { "description": "Placeholder shown in the tutorial search demo" }, "tutorialDownloadCompletedSemantics": "Download completed", "@tutorialDownloadCompletedSemantics": { "description": "Accessibility label for completed download state in tutorial demo" }, "tutorialDownloadInProgressSemantics": "Download in progress", "@tutorialDownloadInProgressSemantics": { "description": "Accessibility label for active download state in tutorial demo" }, "tutorialStartDownloadSemantics": "Start download", "@tutorialStartDownloadSemantics": { "description": "Accessibility label for idle download button in tutorial demo" }, "optionsEmbedMetadata": "Embed Metadata", "@optionsEmbedMetadata": { "description": "Settings toggle title for writing metadata into downloaded files" }, "optionsEmbedMetadataSubtitleOn": "Write metadata, cover art, and embedded lyrics to files", "@optionsEmbedMetadataSubtitleOn": { "description": "Subtitle when metadata embedding is enabled" }, "optionsEmbedMetadataSubtitleOff": "Disabled (advanced): skip all metadata embedding", "@optionsEmbedMetadataSubtitleOff": { "description": "Subtitle when metadata embedding is disabled" }, "trackCoverNoEmbeddedArt": "No embedded album art found", "@trackCoverNoEmbeddedArt": { "description": "Message shown when a track file has no embedded cover art" }, "trackCoverReplace": "Replace Cover", "@trackCoverReplace": { "description": "Button label for replacing selected cover art" }, "trackCoverPick": "Pick Cover", "@trackCoverPick": { "description": "Button label for selecting cover art" }, "trackCoverClearSelected": "Clear selected cover", "@trackCoverClearSelected": { "description": "Tooltip for clearing the newly selected cover art" }, "trackCoverCurrent": "Current cover", "@trackCoverCurrent": { "description": "Label for the currently embedded cover preview" }, "trackCoverSelected": "Selected cover", "@trackCoverSelected": { "description": "Label for the newly selected cover preview" }, "trackCoverReplaceNotice": "The selected cover will replace the current embedded cover when you tap Save.", "@trackCoverReplaceNotice": { "description": "Notice shown when a new cover has been selected but not saved yet" }, "trackCoverResolution": "Cover resolution", "@trackCoverResolution": { "description": "Label for selecting the embedded cover art resolution" }, "trackCoverResolutionHint": "Sets the longest edge when saved. Enlarging does not add image detail.", "@trackCoverResolutionHint": { "description": "Explanation below the embedded cover art resolution selector" }, "trackCoverResizeFailed": "The cover image could not be resized. Please try another size or image.", "@trackCoverResizeFailed": { "description": "Error shown when resizing cover art before saving metadata fails" }, "actionStop": "Stop", "@actionStop": { "description": "Generic action - stop" }, "queueFinalizingDownload": "Finalizing download", "@queueFinalizingDownload": { "description": "Accessibility label for a queue item that is finalizing" }, "queueDownloadNext": "Download next", "@queueDownloadNext": { "description": "Tooltip on a queued download row; moves the item to the front of the queue so the next free slot downloads it" }, "queueMoveUp": "Move up", "@queueMoveUp": { "description": "Queue item menu action - move the queued item one position earlier" }, "queueMoveDown": "Move down", "@queueMoveDown": { "description": "Queue item menu action - move the queued item one position later" }, "editMetadataMusicBrainzButton": "Fetch from MusicBrainz", "@editMetadataMusicBrainzButton": { "description": "Tag editor button that fills genre and album artist from MusicBrainz by ISRC" }, "editMetadataMusicBrainzFilled": "Updated from MusicBrainz", "@editMetadataMusicBrainzFilled": { "description": "Snackbar after MusicBrainz suggestions were applied to the tag editor fields" }, "editMetadataMusicBrainzNothing": "Nothing found on MusicBrainz", "@editMetadataMusicBrainzNothing": { "description": "Snackbar when the MusicBrainz lookup returns no data" }, "editMetadataMusicBrainzNeedsIsrc": "Requires an ISRC tag", "@editMetadataMusicBrainzNeedsIsrc": { "description": "Snackbar when the MusicBrainz lookup is tapped without an ISRC" }, "nowPlayingRepeatOff": "Repeat off", "@nowPlayingRepeatOff": { "description": "Repeat toggle tooltip when repeat is disabled" }, "nowPlayingRepeatAll": "Repeat all", "@nowPlayingRepeatAll": { "description": "Repeat toggle tooltip when the whole queue repeats" }, "nowPlayingRepeatOne": "Repeat one", "@nowPlayingRepeatOne": { "description": "Repeat toggle tooltip when the current track repeats" }, "queueNetworkFailedOffline": "{count} downloads failed while offline", "@queueNetworkFailedOffline": { "description": "Snackbar shown when connectivity returns and network-failed downloads can be retried", "placeholders": { "count": { "type": "int" } } }, "queueDownloadedFileMissing": "Downloaded file missing", "@queueDownloadedFileMissing": { "description": "Accessibility label when a downloaded file is missing from disk" }, "queueCheckingDownloadedFile": "Checking downloaded file...", "@queueCheckingDownloadedFile": { "description": "Accessibility label while the app checks whether a just-completed download has appeared at its final path yet. Not about authentication or a download session." }, "queueDownloadCompleted": "Download completed", "@queueDownloadCompleted": { "description": "Accessibility label for completed download state in queue" }, "queueRateLimitTitle": "Service rate limited", "@queueRateLimitTitle": { "description": "Title shown on a failed queue item when the download service rate limits requests" }, "queueRateLimitMessage": "This track may still be available. Wait a few minutes, reduce parallel downloads, then retry.", "@queueRateLimitMessage": { "description": "Explanation shown on a failed queue item when the download service rate limits requests" }, "appearanceSelectAccentColor": "Select accent color {hex}", "@appearanceSelectAccentColor": { "description": "Accessibility label for picking an accent color", "placeholders": { "hex": { "type": "String" } } }, "logAutoScrollOn": "Auto-scroll ON", "@logAutoScrollOn": { "description": "Tooltip when auto-scroll is enabled on the log screen" }, "logAutoScrollOff": "Auto-scroll OFF", "@logAutoScrollOff": { "description": "Tooltip when auto-scroll is disabled on the log screen" }, "logCopyLogs": "Copy logs", "@logCopyLogs": { "description": "Tooltip for copying logs" }, "logClearSearch": "Clear search", "@logClearSearch": { "description": "Tooltip for clearing the log search field" }, "logIssueIspBlockingLabel": "ISP BLOCKING DETECTED", "@logIssueIspBlockingLabel": { "description": "Diagnostic badge label when ISP blocking is detected" }, "logIssueIspBlockingDescription": "Your ISP may be blocking access to download services", "@logIssueIspBlockingDescription": { "description": "Diagnostic badge description for ISP blocking" }, "logIssueIspBlockingSuggestion": "Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8", "@logIssueIspBlockingSuggestion": { "description": "Diagnostic badge suggestion for ISP blocking" }, "logIssueRateLimitedLabel": "RATE LIMITED", "@logIssueRateLimitedLabel": { "description": "Diagnostic badge label when the service rate limits requests" }, "logIssueRateLimitedDescription": "Too many requests to the service", "@logIssueRateLimitedDescription": { "description": "Diagnostic badge description for rate limiting" }, "logIssueRateLimitedSuggestion": "Wait a few minutes before trying again", "@logIssueRateLimitedSuggestion": { "description": "Diagnostic badge suggestion for rate limiting" }, "logIssueNetworkErrorLabel": "NETWORK ERROR", "@logIssueNetworkErrorLabel": { "description": "Diagnostic badge label for generic network errors" }, "logIssueNetworkErrorDescription": "Connection issues detected", "@logIssueNetworkErrorDescription": { "description": "Diagnostic badge description for generic network errors" }, "logIssueNetworkErrorSuggestion": "Check your internet connection", "@logIssueNetworkErrorSuggestion": { "description": "Diagnostic badge suggestion for generic network errors" }, "logIssueTrackNotFoundLabel": "TRACK NOT FOUND", "@logIssueTrackNotFoundLabel": { "description": "Diagnostic badge label when a track is unavailable" }, "logIssueTrackNotFoundDescription": "Some tracks could not be found on download services", "@logIssueTrackNotFoundDescription": { "description": "Diagnostic badge description when a track is unavailable" }, "logIssueTrackNotFoundSuggestion": "The track may not be available in lossless quality", "@logIssueTrackNotFoundSuggestion": { "description": "Diagnostic badge suggestion when a track is unavailable" }, "clickableLookingUpArtist": "Looking up artist...", "@clickableLookingUpArtist": { "description": "Snackbar shown while clickable artist metadata is being resolved" }, "clickableInformationUnavailable": "{type} information not available", "@clickableInformationUnavailable": { "description": "Snackbar shown when clickable metadata cannot open a destination", "placeholders": { "type": { "type": "String" } } }, "extensionDetailsTags": "Tags", "@extensionDetailsTags": { "description": "Section title for extension tags" }, "extensionDetailsInformation": "Information", "@extensionDetailsInformation": { "description": "Section title for extension metadata information" }, "extensionUtilityFunctions": "Utility Functions", "@extensionUtilityFunctions": { "description": "Capability label for utility-only extensions" }, "actionDismiss": "Dismiss", "@actionDismiss": { "description": "Generic action - dismiss" }, "setupChangeFolderTooltip": "Change folder", "@setupChangeFolderTooltip": { "description": "Tooltip for editing the selected download folder" }, "a11yOpenTrackByArtist": "Open track {trackName} by {artistName}", "@a11yOpenTrackByArtist": { "description": "Accessibility label for opening a track item", "placeholders": { "trackName": { "type": "String" }, "artistName": { "type": "String" } } }, "a11yOpenItem": "Open {itemType} {name}", "@a11yOpenItem": { "description": "Accessibility label for opening a generic item", "placeholders": { "itemType": { "type": "String" }, "name": { "type": "String" } } }, "a11yOpenItemCount": "Open {title}, {count} {count, plural, =1{item} other{items}}", "@a11yOpenItemCount": { "description": "Accessibility label for opening a grouped item with count", "placeholders": { "title": { "type": "String" }, "count": { "type": "int" } } }, "a11yOpenAlbumByArtistTrackCount": "Open album {albumName} by {artistName}, {trackCount} tracks", "@a11yOpenAlbumByArtistTrackCount": { "description": "Accessibility label for opening an album item with track count", "placeholders": { "albumName": { "type": "String" }, "artistName": { "type": "String" }, "trackCount": { "type": "int" } } }, "a11yTrackByArtist": "{trackName} by {artistName}", "@a11yTrackByArtist": { "description": "Accessibility label for a queue or list track item", "placeholders": { "trackName": { "type": "String" }, "artistName": { "type": "String" } } }, "a11ySelectAlbum": "Select album {albumName}", "@a11ySelectAlbum": { "description": "Accessibility label for selecting an album", "placeholders": { "albumName": { "type": "String" } } }, "a11yOpenAlbum": "Open album {albumName}", "@a11yOpenAlbum": { "description": "Accessibility label for opening an album", "placeholders": { "albumName": { "type": "String" } } }, "settingsFiles": "Files & Folders", "@settingsFiles": { "description": "Settings menu item - file and folder settings" }, "settingsFilesSubtitle": "Download location, filename, folder structure", "@settingsFilesSubtitle": { "description": "Subtitle for files & folders settings" }, "settingsMetadata": "Metadata", "@settingsMetadata": { "description": "Settings menu item - metadata settings" }, "settingsMetadataSubtitle": "Cover art, tags, ReplayGain, providers", "@settingsMetadataSubtitle": { "description": "Subtitle for metadata settings" }, "settingsLyrics": "Lyrics", "@settingsLyrics": { "description": "Settings menu item - lyrics settings" }, "settingsLyricsSubtitle": "Embed, mode, providers, language options", "@settingsLyricsSubtitle": { "description": "Subtitle for lyrics settings" }, "settingsApp": "App", "@settingsApp": { "description": "Settings menu item - app settings" }, "settingsAppSubtitle": "Updates, data, extension repo, debug", "@settingsAppSubtitle": { "description": "Subtitle for app settings" }, "sectionMetadataProviders": "Providers", "@sectionMetadataProviders": { "description": "Settings section header for metadata providers" }, "sectionDuplicates": "Duplicates", "@sectionDuplicates": { "description": "Settings section header for deduplication" }, "sectionLyricsProviderOptions": "Provider Options", "@sectionLyricsProviderOptions": { "description": "Settings section header for per-provider lyrics options" }, "metadataProvidersTitle": "Metadata Provider Priority", "@metadataProvidersTitle": { "description": "Settings item title for metadata provider order" }, "metadataProvidersSubtitle": "Drag to set search and metadata source order", "@metadataProvidersSubtitle": { "description": "Subtitle for metadata provider priority item" }, "downloadDeduplication": "Skip Duplicate Downloads", "@downloadDeduplication": { "description": "Setting - skip tracks already in download history" }, "downloadDeduplicationEnabled": "Already-downloaded tracks will be skipped", "@downloadDeduplicationEnabled": { "description": "Subtitle when deduplication is on" }, "downloadDeduplicationWithQualityVariants": "Existing files at the selected quality will be skipped", "@downloadDeduplicationWithQualityVariants": { "description": "Deduplication subtitle when separate quality versions are allowed" }, "downloadDeduplicationDisabled": "All tracks will be downloaded regardless of history", "@downloadDeduplicationDisabled": { "description": "Subtitle when deduplication is off" }, "downloadQualityVariants": "Allow different quality versions", "@downloadQualityVariants": { "description": "Setting to retain multiple quality versions of the same track" }, "downloadQualityVariantsDescription": "Keep every quality version; add its measured quality to the filename only when the name is already used", "@downloadQualityVariantsDescription": { "description": "Description for retaining multiple quality versions" }, "trackOptionDownloadQualityVariant": "Download another quality", "@trackOptionDownloadQualityVariant": { "description": "Track menu action to download another quality version" }, "downloadFallbackExtensions": "Fallback Extensions", "@downloadFallbackExtensions": { "description": "Settings item for configuring fallback extension providers" }, "downloadFallbackExtensionsSubtitle": "Choose which extensions can be used as fallback", "@downloadFallbackExtensionsSubtitle": { "description": "Subtitle for fallback extensions item" }, "editMetadataFieldDateHint": "YYYY-MM-DD or YYYY", "@editMetadataFieldDateHint": { "description": "Hint text for the edit metadata date field" }, "editMetadataFieldTrackTotal": "Track Total", "@editMetadataFieldTrackTotal": { "description": "Label for total tracks field in the edit metadata sheet" }, "editMetadataFieldDiscTotal": "Disc Total", "@editMetadataFieldDiscTotal": { "description": "Label for total discs field in the edit metadata sheet" }, "editMetadataFieldComposer": "Composer", "@editMetadataFieldComposer": { "description": "Label for composer field in the edit metadata sheet" }, "editMetadataFieldComment": "Comment", "@editMetadataFieldComment": { "description": "Label for comment field in the edit metadata sheet" }, "trackAlbumType": "Release Type", "@trackAlbumType": { "description": "Label for an album or release type metadata value" }, "editMetadataFieldAlbumTypeHint": "Album, single, EP, compilation...", "@editMetadataFieldAlbumTypeHint": { "description": "Hint for the release type metadata field" }, "editMetadataFieldExplicit": "Explicit", "@editMetadataFieldExplicit": { "description": "Label for the explicit content metadata field" }, "editMetadataFieldExplicitHint": "Mark this track as containing explicit content", "@editMetadataFieldExplicitHint": { "description": "Description for the explicit content metadata switch" }, "metadataExplicitValue": "Explicit", "@metadataExplicitValue": { "description": "Displayed value when a track is marked explicit" }, "editMetadataFieldUpc": "UPC / Barcode", "@editMetadataFieldUpc": { "description": "Label for the release barcode metadata field" }, "editMetadataFieldUpcHint": "Numeric UPC, EAN, or GTIN", "@editMetadataFieldUpcHint": { "description": "Hint for the release barcode metadata field" }, "editMetadataAdvanced": "Advanced", "@editMetadataAdvanced": { "description": "Expandable section label for advanced metadata fields" }, "libraryFilterMetadataMissingTrackNumber": "Missing track number", "@libraryFilterMetadataMissingTrackNumber": { "description": "Filter option - items missing track number" }, "libraryFilterMetadataMissingDiscNumber": "Missing disc number", "@libraryFilterMetadataMissingDiscNumber": { "description": "Filter option - items missing disc number" }, "libraryFilterMetadataMissingArtist": "Missing artist", "@libraryFilterMetadataMissingArtist": { "description": "Filter option - items missing artist" }, "libraryFilterMetadataIncorrectIsrcFormat": "Incorrect ISRC format", "@libraryFilterMetadataIncorrectIsrcFormat": { "description": "Filter option - items with an invalid ISRC format" }, "libraryFilterMetadataMissingIsrc": "Missing ISRC", "@libraryFilterMetadataMissingIsrc": { "description": "Filter option - items without any ISRC tag" }, "libraryFilterMetadataMissingLabel": "Missing label", "@libraryFilterMetadataMissingLabel": { "description": "Filter option - items missing record label" }, "collectionDeletePlaylistsMessage": "Delete {count} {count, plural, =1{playlist} other{playlists}}?", "@collectionDeletePlaylistsMessage": { "description": "Confirmation message for deleting selected playlists", "placeholders": { "count": { "type": "int" } } }, "collectionPlaylistsDeleted": "{count} {count, plural, =1{playlist} other{playlists}} deleted", "@collectionPlaylistsDeleted": { "description": "Snackbar after deleting selected playlists", "placeholders": { "count": { "type": "int" } } }, "collectionAddedTracksToPlaylist": "Added {count} {count, plural, =1{track} other{tracks}} to {playlistName}", "@collectionAddedTracksToPlaylist": { "description": "Snackbar after adding multiple tracks to a playlist", "placeholders": { "count": { "type": "int" }, "playlistName": { "type": "String" } } }, "collectionAddedTracksToPlaylistWithExisting": "Added {count} {count, plural, =1{track} other{tracks}} to {playlistName} ({alreadyCount} already in playlist)", "@collectionAddedTracksToPlaylistWithExisting": { "description": "Snackbar after adding multiple tracks to a playlist when some were already present", "placeholders": { "count": { "type": "int" }, "playlistName": { "type": "String" }, "alreadyCount": { "type": "int" } } }, "itemCount": "{count} {count, plural, =1{item} other{items}}", "@itemCount": { "description": "Generic item count label", "placeholders": { "count": { "type": "int" } } }, "trackReEnrichSuccessWithFailures": "Metadata re-enriched successfully ({successCount}/{total}) - Failed: {failedCount}", "@trackReEnrichSuccessWithFailures": { "description": "Snackbar summary after batch metadata re-enrichment finishes with failures", "placeholders": { "successCount": { "type": "int" }, "total": { "type": "int" }, "failedCount": { "type": "int" } } }, "selectionDeleteTracksCount": "Delete {count} {count, plural, =1{track} other{tracks}}", "@selectionDeleteTracksCount": { "description": "Button label for deleting selected tracks", "placeholders": { "count": { "type": "int" } } }, "queueDownloadSpeedStatus": "Downloading - {speed} MB/s", "@queueDownloadSpeedStatus": { "description": "Queue status while downloading with speed", "placeholders": { "speed": { "type": "String" } } }, "queueDownloadStarting": "Starting...", "queueCheckingDownloadSession": "Checking download session...", "queueResolvingDownloadMetadata": "Resolving track metadata...", "queueResolvingDownloadStream": "Preparing audio stream...", "queueWaitingForVerification": "Waiting for verification...", "queueResumingAfterVerification": "Resuming after verification...", "@queueDownloadStarting": { "description": "Queue status before download progress is available" }, "@queueCheckingDownloadSession": { "description": "Queue status while the download provider's session is being checked during preparation (preparationStage 'checking_session'). This is about the provider session, not about locating a finished file." }, "a11ySelectTrack": "Select track", "@a11ySelectTrack": { "description": "Accessibility label for selecting a track" }, "a11yDeselectTrack": "Deselect track", "@a11yDeselectTrack": { "description": "Accessibility label for deselecting a track" }, "a11yPlayTrackByArtist": "Play {trackName} by {artistName}", "@a11yPlayTrackByArtist": { "description": "Accessibility label for playing a local library track", "placeholders": { "trackName": { "type": "String" }, "artistName": { "type": "String" } } }, "storeExtensionsCount": "{count} {count, plural, =1{extension} other{extensions}}", "@storeExtensionsCount": { "description": "Store extension result count", "placeholders": { "count": { "type": "int" } } }, "storeRequiresVersion": "Requires v{version}+", "@storeRequiresVersion": { "description": "Store compatibility badge for minimum app version", "placeholders": { "version": { "type": "String" } } }, "actionGo": "Go", "@actionGo": { "description": "Generic action button label" }, "logIssueSummary": "Issue Summary", "@logIssueSummary": { "description": "Header for log issue analysis summary" }, "logTotalErrors": "Total errors: {count}", "@logTotalErrors": { "description": "Total error count in log issue analysis", "placeholders": { "count": { "type": "int" } } }, "logAffectedDomains": "Affected: {domains}", "@logAffectedDomains": { "description": "Affected domains in log issue analysis", "placeholders": { "domains": { "type": "String" } } }, "libraryScanCancelled": "Scan cancelled", "@libraryScanCancelled": { "description": "Library scan status when a scan was cancelled" }, "libraryScanCancelledSubtitle": "You can retry the scan when ready.", "@libraryScanCancelledSubtitle": { "description": "Library scan status subtitle after cancellation" }, "libraryDownloadsHistoryExcluded": "{count} from Downloads history (excluded from list)", "@libraryDownloadsHistoryExcluded": { "description": "Library count note for downloaded history items excluded from the local list", "placeholders": { "count": { "type": "int" } } }, "downloadNativeWorker": "Native download worker", "@downloadNativeWorker": { "description": "Setting title for Android native download worker" }, "downloadNativeWorkerSubtitle": "Android background service for extension downloads", "@downloadNativeWorkerSubtitle": { "description": "Setting subtitle for Android native download worker" }, "extensionServiceStatus": "Service Status", "@extensionServiceStatus": { "description": "Extension detail section header for service status" }, "extensionServiceHealth": "Service health", "@extensionServiceHealth": { "description": "Extension capability label for service health checks" }, "extensionHealthChecksConfigured": "{count} {count, plural, =1{check} other{checks}} configured", "@extensionHealthChecksConfigured": { "description": "Extension service health check count", "placeholders": { "count": { "type": "int" } } }, "extensionOauthConnectHint": "Tap Connect to Spotify to fill this field.", "@extensionOauthConnectHint": { "description": "Hint for an OAuth login link field before connecting Spotify" }, "extensionLastChecked": "Last checked {time}", "@extensionLastChecked": { "description": "Timestamp for the latest extension service health check", "placeholders": { "time": { "type": "String" } } }, "extensionRefreshStatus": "Refresh status", "@extensionRefreshStatus": { "description": "Tooltip for refreshing extension service health status" }, "extensionCustomUrlHandling": "Custom URL Handling", "@extensionCustomUrlHandling": { "description": "Extension detail section title for custom URL handling" }, "extensionCustomUrlHandlingSubtitle": "This extension can handle links from these sites", "@extensionCustomUrlHandlingSubtitle": { "description": "Extension detail subtitle for custom URL handling" }, "extensionCustomUrlHandlingShareHint": "Share links from these sites to SpotiFLAC Mobile and this extension will handle them.", "@extensionCustomUrlHandlingShareHint": { "description": "Extension detail hint explaining share-to-app URL handling" }, "extensionSettingsCount": "{count} {count, plural, =1{setting} other{settings}}", "@extensionSettingsCount": { "description": "Count of settings exposed by an extension quality option", "placeholders": { "count": { "type": "int" } } }, "extensionHealthOnline": "Online", "@extensionHealthOnline": { "description": "Extension service health status - online" }, "extensionHealthDegraded": "Degraded", "@extensionHealthDegraded": { "description": "Extension service health status - degraded" }, "extensionHealthOffline": "Offline", "@extensionHealthOffline": { "description": "Extension service health status - offline" }, "extensionHealthNotConfigured": "Not configured", "@extensionHealthNotConfigured": { "description": "Extension service health status - not configured" }, "extensionHealthUnknown": "Unknown", "@extensionHealthUnknown": { "description": "Extension service health status - unknown" }, "extensionHealthRequired": "required", "@extensionHealthRequired": { "description": "Label for a required extension service health check" }, "extensionSettingNotSet": "Not set", "@extensionSettingNotSet": { "description": "Value shown when an extension setting has no value" }, "extensionActionFailed": "Action failed", "@extensionActionFailed": { "description": "Fallback error when an extension action fails without details" }, "extensionEnterValue": "Enter value", "@extensionEnterValue": { "description": "Hint for editing an extension setting value" }, "extensionHealthServiceOnline": "Service online", "@extensionHealthServiceOnline": { "description": "Tooltip for online extension service" }, "extensionHealthServiceDegraded": "Service degraded", "@extensionHealthServiceDegraded": { "description": "Tooltip for degraded extension service" }, "extensionHealthServiceOffline": "Service offline", "@extensionHealthServiceOffline": { "description": "Tooltip for offline extension service" }, "extensionHealthServiceUnknown": "Service status unknown", "@extensionHealthServiceUnknown": { "description": "Tooltip for unknown extension service health" }, "audioAnalysisStereo": "Stereo", "@audioAnalysisStereo": { "description": "Audio channel layout label - stereo" }, "audioAnalysisMono": "Mono", "@audioAnalysisMono": { "description": "Audio channel layout label - mono" }, "trackOpenInService": "Open in {serviceName}", "@trackOpenInService": { "description": "Button label to open a track in a named music service", "placeholders": { "serviceName": { "type": "String" } } }, "trackLyricsEmbeddedSource": "Embedded", "@trackLyricsEmbeddedSource": { "description": "Lyrics source label for embedded lyrics" }, "unknownAlbum": "Unknown Album", "@unknownAlbum": { "description": "Fallback album name when metadata is missing" }, "unknownArtist": "Unknown Artist", "@unknownArtist": { "description": "Fallback artist name when metadata is missing" }, "permissionAudio": "Audio", "@permissionAudio": { "description": "Audio permission type label" }, "permissionStorage": "Storage", "@permissionStorage": { "description": "Storage permission type label" }, "permissionNotification": "Notification", "@permissionNotification": { "description": "Notification permission type label" }, "errorInvalidFolderSelected": "Invalid folder selected", "@errorInvalidFolderSelected": { "description": "Error when the selected folder is invalid" }, "storeAnyVersion": "Any", "@storeAnyVersion": { "description": "Store detail value when any app version is accepted" }, "storeCategoryMetadata": "Metadata", "@storeCategoryMetadata": { "description": "Store extension category - metadata" }, "storeCategoryDownload": "Download", "@storeCategoryDownload": { "description": "Store extension category - download" }, "storeCategoryUtility": "Utility", "@storeCategoryUtility": { "description": "Store extension category - utility" }, "storeCategoryLyrics": "Lyrics", "@storeCategoryLyrics": { "description": "Store extension category - lyrics" }, "storeCategoryIntegration": "Integration", "@storeCategoryIntegration": { "description": "Store extension category - integration" }, "artistReleases": "Releases", "@artistReleases": { "description": "Section header for all artist releases" }, "editMetadataSelectNone": "None", "@editMetadataSelectNone": { "description": "Button to clear selected fields for auto-fill" }, "queueRetryAllFailed": "Retry {count} failed", "@queueRetryAllFailed": { "description": "Button to retry every failed download in the queue", "placeholders": { "count": { "type": "int" } } }, "settingsSaveDownloadHistory": "Save download history", "@settingsSaveDownloadHistory": { "description": "Settings switch title for storing completed downloads in history" }, "settingsSaveDownloadHistorySubtitle": "Keep completed downloads in history and library views", "@settingsSaveDownloadHistorySubtitle": { "description": "Settings switch subtitle for storing completed downloads in history" }, "dialogDisableHistoryTitle": "Turn off download history?", "@dialogDisableHistoryTitle": { "description": "Confirmation dialog title shown before disabling download history" }, "dialogDisableHistoryMessage": "Existing history will be cleared. Downloaded files will not be deleted.", "@dialogDisableHistoryMessage": { "description": "Confirmation dialog message shown before disabling download history" }, "dialogDisableAndClear": "Turn off and clear", "@dialogDisableAndClear": { "description": "Confirmation action to disable download history and clear existing entries" }, "openInOtherServices": "Open in Other Services", "@openInOtherServices": { "description": "Title and tooltip for finding the current collection in other services" }, "shareSheetNoExtensions": "No other compatible services", "@shareSheetNoExtensions": { "description": "Empty state when no extensions can be searched for cross-service links" }, "shareSheetNotFound": "Not found", "@shareSheetNotFound": { "description": "Cross-service share sheet row subtitle when a service has no match" }, "shareSheetCopyLink": "Copy Link", "@shareSheetCopyLink": { "description": "Tooltip for copying a cross-service link" }, "shareSheetLinkCopied": "{service} link copied", "@shareSheetLinkCopied": { "description": "Snackbar after copying a cross-service link", "placeholders": { "service": {} } }, "libraryPlayback": "Playback", "@libraryPlayback": { "description": "Section header for playback settings in library settings" }, "libraryExternalPlayer": "External player", "@libraryExternalPlayer": { "description": "Setting option to use an external music player" }, "libraryExternalPlayerSubtitle": "Recommended for listening, best quality, gapless playback, EQ, and wider format support", "@libraryExternalPlayerSubtitle": { "description": "Subtitle for external player option" }, "libraryBuiltInPreviewPlayer": "Built-in preview player", "@libraryBuiltInPreviewPlayer": { "description": "Setting option to use the built-in preview player" }, "libraryBuiltInPreviewPlayerSubtitle": "Only for quick local previews inside SpotiFLAC Mobile, not recommended for regular listening", "@libraryBuiltInPreviewPlayerSubtitle": { "description": "Subtitle for built-in preview player option" }, "libraryBuiltInPlayerInfo": "The built-in player is a preview tool for checking local tracks quickly. Use an external music player for actual listening.", "@libraryBuiltInPlayerInfo": { "description": "Info note explaining the built-in player is for previews only" }, "nowPlayingTitle": "Now Playing", "@nowPlayingTitle": { "description": "Title for the now playing screen" }, "nowPlayingNothingPlaying": "Nothing is playing", "@nowPlayingNothingPlaying": { "description": "Empty state when no track is currently playing" }, "nowPlayingMinimize": "Minimize", "@nowPlayingMinimize": { "description": "Tooltip for minimizing the now playing screen" }, "nowPlayingUpNext": "Up next", "@nowPlayingUpNext": { "description": "Title for the playback queue sheet" }, "nowPlayingPreviousTrack": "Previous track", "@nowPlayingPreviousTrack": { "description": "Tooltip for the previous-track playback control" }, "nowPlayingNextTrack": "Next track", "@nowPlayingNextTrack": { "description": "Tooltip for the next-track playback control" }, "nowPlayingDetails": "Details", "@nowPlayingDetails": { "description": "Menu item and section title for track metadata details" }, "nowPlayingOpenInExternalPlayer": "Open in external player", "@nowPlayingOpenInExternalPlayer": { "description": "Menu item to open the current track in an external player" }, "nowPlayingTabPlayer": "Player", "@nowPlayingTabPlayer": { "description": "Tab label for the player view" }, "nowPlayingTabLyrics": "Lyrics", "@nowPlayingTabLyrics": { "description": "Tab label for the lyrics view" }, "nowPlayingNoLyrics": "No lyrics in this file", "@nowPlayingNoLyrics": { "description": "Empty state when the playing file has no embedded lyrics" }, "nowPlayingLibraryEmpty": "Your library is empty", "@nowPlayingLibraryEmpty": { "description": "Snackbar when shuffle library is requested but library has no tracks" }, "nowPlayingShuffleLibraryFailed": "Could not shuffle library: {error}", "@nowPlayingShuffleLibraryFailed": { "description": "Snackbar when shuffling the library fails", "placeholders": { "error": { "type": "String" } } }, "nowPlayingShuffleOn": "Shuffle on", "@nowPlayingShuffleOn": { "description": "Tooltip when shuffle mode is enabled" }, "nowPlayingPlayInOrder": "Play in order", "@nowPlayingPlayInOrder": { "description": "Tooltip when shuffle mode is disabled" }, "nowPlayingShuffleLibrary": "Shuffle library", "@nowPlayingShuffleLibrary": { "description": "Button label to shuffle and play the entire local library" }, "nowPlayingQueueEmpty": "Queue is empty", "@nowPlayingQueueEmpty": { "description": "Empty state when the playback queue has no items" }, "nowPlayingNoMetadata": "No metadata available", "@nowPlayingNoMetadata": { "description": "Empty state when track metadata cannot be loaded" }, "announcementUnableToOpenLink": "Unable to open link. Please try again.", "@announcementUnableToOpenLink": { "description": "Snackbar shown when an announcement CTA link cannot be opened" }, "trackConvertLosslessOutputWithCap": "Lossless output with {quality} cap", "@trackConvertLosslessOutputWithCap": { "description": "Hint shown when lossless conversion will cap bit depth or sample rate", "placeholders": { "quality": { "type": "String" } } }, "trackConvertConfirmMessageLosslessCapped": "Convert from {sourceFormat} to {targetFormat} ({quality})?\n\nThe output stays in a lossless codec, but bit depth/sample rate will be capped. Original file will be deleted after conversion.", "@trackConvertConfirmMessageLosslessCapped": { "description": "Confirmation dialog message for capped lossless conversion of a single file", "placeholders": { "sourceFormat": { "type": "String" }, "targetFormat": { "type": "String" }, "quality": { "type": "String" } } }, "selectionBatchConvertConfirmMessageLosslessCapped": "Convert {count} {count, plural, =1{track} other{tracks}} to {format} ({quality})?\n\nThe output stays in a lossless codec, but bit depth/sample rate will be capped. Original files will be deleted after conversion.", "@selectionBatchConvertConfirmMessageLosslessCapped": { "description": "Confirmation dialog message for capped lossless batch conversion", "placeholders": { "count": { "type": "int" }, "format": { "type": "String" }, "quality": { "type": "String" } } }, "trackConvertActionLabelLossless": "{sourceFormat} → {targetFormat} ({quality})", "@trackConvertActionLabelLossless": { "description": "Convert button label for lossless conversion with quality cap", "placeholders": { "sourceFormat": { "type": "String" }, "targetFormat": { "type": "String" }, "quality": { "type": "String" } } }, "trackConvertActionLabelLossy": "{sourceFormat} → {targetFormat} @ {bitrate}", "@trackConvertActionLabelLossy": { "description": "Convert button label for lossy conversion", "placeholders": { "sourceFormat": { "type": "String" }, "targetFormat": { "type": "String" }, "bitrate": { "type": "String" } } }, "aboutPaxsenixSubtitle": "Lyrics proxy for Musixmatch, Netease, Apple Music, QQ Music, Spotify, Deezer, YouTube, Kugou, and Genius", "@aboutPaxsenixSubtitle": { "description": "Subtitle for Paxsenix special thanks entry on the about page" }, "snackbarPlayingNext": "Playing next", "@snackbarPlayingNext": { "description": "Snackbar when a track is inserted as the next queue item" }, "snackbarAddedToQueueGeneric": "Added to queue", "@snackbarAddedToQueueGeneric": { "description": "Snackbar when a track is added to the playback queue without naming it" }, "selectionDeletePlaylistsCount": "Delete {count} {count, plural, =1{playlist} other{playlists}}", "@selectionDeletePlaylistsCount": { "description": "Button label for deleting multiple selected playlists", "placeholders": { "count": { "type": "int" } } }, "actionShuffle": "Shuffle", "@actionShuffle": { "description": "Tooltip for shuffle playback action" }, "downloadPrimaryArtistOnlyOn": "Primary only: On", "@downloadPrimaryArtistOnlyOn": { "description": "Status label when primary-artist-only folder naming is enabled" }, "downloadPrimaryArtistOnlyOff": "Primary only: Off", "@downloadPrimaryArtistOnlyOff": { "description": "Status label when primary-artist-only folder naming is disabled" }, "downloadAlbumArtistMetadataPrimaryOnly": "Album Artist metadata: Primary only", "@downloadAlbumArtistMetadataPrimaryOnly": { "description": "Status label when album-artist folder filtering uses primary artist only" }, "downloadAlbumArtistMetadataFull": "Album Artist metadata: Full", "@downloadAlbumArtistMetadataFull": { "description": "Status label when album-artist folder filtering uses full metadata" }, "trackConvertOriginal": "Original", "@trackConvertOriginal": { "description": "Label for keeping original bit depth or sample rate during conversion" }, "trackConvertOriginalQuality": "Original quality", "@trackConvertOriginalQuality": { "description": "Label when no bit depth or sample rate cap is applied during lossless conversion" }, "trackConvertLosslessSuffix": "Lossless", "@trackConvertLosslessSuffix": { "description": "Suffix used in converted lossless quality labels" }, "trackConvertDithering": "Dithering", "@trackConvertDithering": { "description": "Section label for lossless conversion dithering options" }, "trackConvertResampler": "Resampler", "@trackConvertResampler": { "description": "Section label for lossless conversion resampler options" }, "trackConvertDitherNone": "None", "@trackConvertDitherNone": { "description": "Lossless conversion dither option with no dithering applied" }, "trackConvertDitherTriangular": "TPDF", "@trackConvertDitherTriangular": { "description": "Lossless conversion triangular probability density function dither option" }, "trackConvertDitherTriangularHp": "Triangular HP", "@trackConvertDitherTriangularHp": { "description": "Lossless conversion high-pass triangular dither option" }, "trackConvertResamplerSwr": "SWR", "@trackConvertResamplerSwr": { "description": "Lossless conversion default FFmpeg swresample resampler option" }, "trackConvertResamplerSoxr": "SoXr", "@trackConvertResamplerSoxr": { "description": "Lossless conversion SoX resampler option" }, "updateSeeReleaseNotes": "See release notes for details.", "@updateSeeReleaseNotes": { "description": "Fallback changelog text when release notes cannot be parsed" }, "unknownTitle": "Unknown title", "@unknownTitle": { "description": "Fallback track title when metadata is missing" }, "trackPlayNext": "Play next", "@trackPlayNext": { "description": "Menu action to play a track as the next queue item" }, "trackAddToQueue": "Add to queue", "@trackAddToQueue": { "description": "Menu action to add a track to the playback queue" }, "snackbarExtensionInstalledEnable": "{extensionName} installed. Enable it in Settings > Extensions", "@snackbarExtensionInstalledEnable": { "description": "Snackbar after installing an extension from the repo tab", "placeholders": { "extensionName": { "type": "String" } } }, "snackbarExtensionUpdatedVersion": "{extensionName} updated to v{version}", "@snackbarExtensionUpdatedVersion": { "description": "Snackbar after updating an extension from the repo tab", "placeholders": { "extensionName": { "type": "String" }, "version": { "type": "String" } } }, "snackbarFailedToInstallNamed": "Failed to install {extensionName}", "@snackbarFailedToInstallNamed": { "description": "Snackbar when extension install fails in the repo tab", "placeholders": { "extensionName": { "type": "String" } } }, "snackbarFailedToUpdateNamed": "Failed to update {extensionName}", "@snackbarFailedToUpdateNamed": { "description": "Snackbar when extension update fails in the repo tab", "placeholders": { "extensionName": { "type": "String" } } }, "releaseTypeEp": "EP", "@releaseTypeEp": { "description": "Badge label for EP releases" }, "releaseTypeSingle": "Single", "@releaseTypeSingle": { "description": "Badge label for single releases" }, "trackCoverOnline": "Online cover", "@trackCoverOnline": { "description": "Label shown when metadata autofill downloaded cover art from the internet" }, "regionCountryUS": "United States", "@regionCountryUS": { "description": "Country name for SongLink region picker" }, "regionCountryGB": "United Kingdom", "@regionCountryGB": { "description": "Country name for SongLink region picker" }, "regionCountryFR": "France", "@regionCountryFR": { "description": "Country name for SongLink region picker" }, "regionCountryDE": "Germany", "@regionCountryDE": { "description": "Country name for SongLink region picker" }, "regionCountryJP": "Japan", "@regionCountryJP": { "description": "Country name for SongLink region picker" }, "regionCountryKR": "South Korea", "@regionCountryKR": { "description": "Country name for SongLink region picker" }, "regionCountryIN": "India", "@regionCountryIN": { "description": "Country name for SongLink region picker" }, "regionCountryID": "Indonesia", "@regionCountryID": { "description": "Country name for SongLink region picker" }, "regionCountryBR": "Brazil", "@regionCountryBR": { "description": "Country name for SongLink region picker" }, "regionCountryMX": "Mexico", "@regionCountryMX": { "description": "Country name for SongLink region picker" }, "regionCountryAU": "Australia", "@regionCountryAU": { "description": "Country name for SongLink region picker" }, "regionCountryCA": "Canada", "@regionCountryCA": { "description": "Country name for SongLink region picker" }, "regionCountryXK": "Kosovo", "@regionCountryXK": { "description": "Country name for SongLink region picker" }, "extensionVerificationBrowserTitle": "Verification browser", "@extensionVerificationBrowserTitle": { "description": "Settings option title for extension verification browser preference" }, "extensionVerificationBrowserSubtitleExternal": "Open challenges in the default browser first", "@extensionVerificationBrowserSubtitleExternal": { "description": "Subtitle when external browser is preferred for extension verification" }, "extensionVerificationBrowserSubtitleInApp": "Open challenges in the in-app browser first", "@extensionVerificationBrowserSubtitleInApp": { "description": "Subtitle when in-app browser is preferred for extension verification" }, "extensionVerificationBrowserExternal": "External", "@extensionVerificationBrowserExternal": { "description": "Chip label for external browser verification mode" }, "extensionVerificationBrowserInApp": "In-app", "@extensionVerificationBrowserInApp": { "description": "Chip label for in-app browser verification mode" }, "extensionVerificationHelpTitleManual": "Open verification manually", "@extensionVerificationHelpTitleManual": { "description": "Dialog title when automatic browser launch for verification fails" }, "extensionVerificationHelpTitleWaiting": "Verification still waiting", "@extensionVerificationHelpTitleWaiting": { "description": "Dialog title when verification is taking longer than expected" }, "extensionVerificationHelpMessageManual": "SpotiFLAC Mobile could not open the browser automatically. Open this link in your browser, or copy it manually.", "@extensionVerificationHelpMessageManual": { "description": "Dialog message when automatic browser launch for verification fails" }, "extensionVerificationHelpMessageWaiting": "If the browser did not open, or verification finished but did not return to SpotiFLAC Mobile, open this link again or copy it manually.", "@extensionVerificationHelpMessageWaiting": { "description": "Dialog message when verification may need manual browser help" }, "extensionVerificationClose": "Close", "@extensionVerificationClose": { "description": "Button to dismiss the extension verification help dialog" }, "extensionVerificationCopyLink": "Copy link", "@extensionVerificationCopyLink": { "description": "Button to copy the extension verification URL" }, "extensionVerificationLinkCopied": "Verification link copied", "@extensionVerificationLinkCopied": { "description": "Snackbar after copying the extension verification URL" }, "extensionVerificationOpenBrowser": "Open browser", "@extensionVerificationOpenBrowser": { "description": "Button to open the extension verification URL in a browser" }, "settingsSearchHint": "Search settings", "@settingsSearchHint": { "description": "Placeholder of the search field on the Settings tab" }, "settingsSearchNoResults": "No settings match \"{query}\"", "@settingsSearchNoResults": { "description": "Shown when a Settings search returns nothing", "placeholders": { "query": { "type": "String" } } }, "settingsGroupInterface": "Extensions & appearance", "@settingsGroupInterface": { "description": "Settings group covering look and feel" }, "settingsGroupContent": "Content & metadata", "@settingsGroupContent": { "description": "Settings group covering the library, metadata and lyrics" }, "settingsGroupDownloads": "Downloads & files", "@settingsGroupDownloads": { "description": "Settings group covering download behaviour and storage" }, "settingsGroupSystem": "System", "@settingsGroupSystem": { "description": "Settings group covering app-level data, cache and logs" }, "settingsGroupHelp": "About & support", "@settingsGroupHelp": { "description": "Settings group covering the about page and donations" }, "libraryFilterMetadataMissingLyrics": "Missing lyrics", "@libraryFilterMetadataMissingLyrics": { "description": "Filter option for tracks without embedded or sidecar lyrics" }, "trackOptionCopyTrackName": "Copy track name", "@trackOptionCopyTrackName": { "description": "Track menu action that copies the track title" }, "trackOptionCopyArtist": "Copy artist", "@trackOptionCopyArtist": { "description": "Track menu action that copies the artist name" }, "trackOptionCopyTrackAndArtist": "Copy track and artist", "@trackOptionCopyTrackAndArtist": { "description": "Track menu action that copies the track title and artist" }, "metadataCopyValue": "Copy value", "@metadataCopyValue": { "description": "Metadata menu action that copies only the selected value" }, "metadataCopyField": "Copy field and value", "@metadataCopyField": { "description": "Metadata menu action that copies the selected key and value" }, "metadataCopyAll": "Copy all metadata", "@metadataCopyAll": { "description": "Metadata menu action that copies every visible key and value" }, "optionsEmbeddedCoverSize": "Embedded Cover Size", "@optionsEmbeddedCoverSize": { "description": "Metadata setting that limits downloaded artwork resolution before it is embedded" }, "optionsEmbeddedCoverSizeDescription": "Downscale remotely downloaded cover art before embedding it. Images already within the limit are kept unchanged.", "@optionsEmbeddedCoverSizeDescription": { "description": "Description shown in the embedded cover size picker" }, "optionsEmbeddedCoverSizeOriginal": "Original resolution", "@optionsEmbeddedCoverSizeOriginal": { "description": "Option that preserves the provider artwork at its original resolution" } }