SpotiFLAC-Mobile/lib/l10n/arb/app_es_ES.arb

4593 lines
159 KiB
Text

{
"@@locale": "es_ES",
"@@last_modified": "2026-01-16",
"appName": "SpotiFLAC Mobile",
"@appName": {
"description": "App name - DO NOT TRANSLATE"
},
"navHome": "Inicio",
"@navHome": {
"description": "Bottom navigation - Home tab"
},
"navLibrary": "Biblioteca",
"@navLibrary": {
"description": "Bottom navigation - Library tab"
},
"navSettings": "Ajustes",
"@navSettings": {
"description": "Bottom navigation - Settings tab"
},
"navStore": "Repositorio",
"@navStore": {
"description": "Bottom navigation - Extension store tab"
},
"homeTitle": "Inicio",
"@homeTitle": {
"description": "Home screen title"
},
"homeSubtitle": "Pega una URL compatible o busca por nombre",
"@homeSubtitle": {
"description": "Subtitle shown below search box"
},
"homeSupports": "Soportes: Pista, Álbum, Lista de reproducción, URLs de Artistas",
"@homeSupports": {
"description": "Info text about supported URL types"
},
"homeRecent": "Recientes",
"@homeRecent": {
"description": "Section header for recent searches"
},
"historyFilterAll": "Todo",
"@historyFilterAll": {
"description": "Filter chip - show all items"
},
"historyFilterAlbums": "Álbumes",
"@historyFilterAlbums": {
"description": "Filter chip - show albums only"
},
"historyFilterSingles": "Pistas",
"@historyFilterSingles": {
"description": "Filter chip - show singles only"
},
"historySearchHint": "Buscar en historial...",
"@historySearchHint": {
"description": "Search bar placeholder in history"
},
"settingsTitle": "Ajustes",
"@settingsTitle": {
"description": "Settings screen title"
},
"settingsDownload": "Descargar",
"@settingsDownload": {
"description": "Settings section - download options"
},
"settingsAppearance": "Apariencia",
"@settingsAppearance": {
"description": "Settings section - visual customization"
},
"settingsOptions": "Opciones",
"@settingsOptions": {
"description": "Settings section - app options"
},
"settingsExtensions": "Extensiones",
"@settingsExtensions": {
"description": "Settings section - extension management"
},
"settingsAbout": "Acerca de",
"@settingsAbout": {
"description": "Settings section - app info"
},
"downloadTitle": "Descargar",
"@downloadTitle": {
"description": "Download settings page title"
},
"downloadAskQualitySubtitle": "Mostrar selector de calidad para cada descarga",
"@downloadAskQualitySubtitle": {
"description": "Subtitle for ask quality toggle"
},
"downloadFilenameFormat": "Formato del nombre del archivo",
"@downloadFilenameFormat": {
"description": "Setting for output filename pattern"
},
"downloadSingleFilenameFormat": "Formato de título único",
"@downloadSingleFilenameFormat": {
"description": "Setting for output filename pattern for singles/EPs"
},
"downloadSingleFilenameFormatDescription": "Patrón de título para sencillos y mini-álbumes. Usa las mismas etiquetas que un álbum completo.",
"@downloadSingleFilenameFormatDescription": {
"description": "Subtitle description for single filename format setting"
},
"downloadFolderOrganization": "Organización de carpetas",
"@downloadFolderOrganization": {
"description": "Title of the folder organization picker bottom sheet"
},
"appearanceTitle": "Apariencia",
"@appearanceTitle": {
"description": "Appearance settings page title"
},
"appearanceThemeSystem": "Sistema",
"@appearanceThemeSystem": {
"description": "Follow system theme"
},
"appearanceThemeLight": "Claro",
"@appearanceThemeLight": {
"description": "Light theme"
},
"appearanceThemeDark": "Oscuro",
"@appearanceThemeDark": {
"description": "Dark theme"
},
"appearanceDynamicColor": "Color dinámico",
"@appearanceDynamicColor": {
"description": "Material You dynamic colors"
},
"appearanceDynamicColorSubtitle": "Usar colores de tu fondo de pantalla",
"@appearanceDynamicColorSubtitle": {
"description": "Subtitle for dynamic color"
},
"appearanceHistoryView": "Vista de Historial",
"@appearanceHistoryView": {
"description": "Layout style for history"
},
"appearanceHistoryViewList": "Lista",
"@appearanceHistoryViewList": {
"description": "List layout option"
},
"appearanceHistoryViewGrid": "Cuadrícula",
"@appearanceHistoryViewGrid": {
"description": "Grid layout option"
},
"optionsTitle": "Opciones",
"@optionsTitle": {
"description": "Options settings page title"
},
"optionsPrimaryProvider": "Proveedor Principal",
"@optionsPrimaryProvider": {
"description": "Main search provider setting"
},
"optionsPrimaryProviderSubtitle": "Servicio usado al buscar por nombre de la pista.",
"@optionsPrimaryProviderSubtitle": {
"description": "Subtitle for primary provider"
},
"optionsUsingExtension": "Usando la extensión: {extensionName}",
"@optionsUsingExtension": {
"description": "Shows active extension name",
"placeholders": {
"extensionName": {
"type": "String"
}
}
},
"optionsDefaultSearchTab": "Default Search Tab",
"@optionsDefaultSearchTab": {
"description": "Title for the preferred default search tab setting"
},
"optionsDefaultSearchTabSubtitle": "Choose which tab opens first for new search results.",
"@optionsDefaultSearchTabSubtitle": {
"description": "Subtitle for the preferred default search tab setting"
},
"optionsDefaultSearchTabAlbums": "Albums",
"@optionsDefaultSearchTabAlbums": {
"description": "Default search tab option - Albums tab"
},
"optionsDefaultSearchTabTracks": "Tracks",
"@optionsDefaultSearchTabTracks": {
"description": "Default search tab option - Tracks tab"
},
"optionsSwitchBack": "Toque Deezer o Spotify para volver desde la extensión",
"@optionsSwitchBack": {
"description": "Hint to switch back to built-in providers"
},
"optionsAutoFallback": "Alternativa automática",
"@optionsAutoFallback": {
"description": "Auto-retry with other services"
},
"optionsAutoFallbackSubtitle": "Pruebe otros servicios si falla la descarga",
"@optionsAutoFallbackSubtitle": {
"description": "Subtitle for auto fallback"
},
"optionsUseExtensionProviders": "Usar proveedores de extensiones",
"@optionsUseExtensionProviders": {
"description": "Enable extension download providers"
},
"optionsUseExtensionProvidersOn": "Las extensiones serán probadas primero",
"@optionsUseExtensionProvidersOn": {
"description": "Status when extension providers enabled"
},
"optionsUseExtensionProvidersOff": "Utilizando sólo proveedores integrados",
"@optionsUseExtensionProvidersOff": {
"description": "Status when extension providers disabled"
},
"optionsEmbedLyrics": "Incrustar Letras",
"@optionsEmbedLyrics": {
"description": "Embed lyrics in audio files"
},
"optionsEmbedLyricsSubtitle": "Insertar letras sincronizadas en archivos FLAC",
"@optionsEmbedLyricsSubtitle": {
"description": "Subtitle for embed lyrics"
},
"optionsMaxQualityCover": "Carátula de calidad máxima",
"@optionsMaxQualityCover": {
"description": "Download highest quality album art"
},
"optionsMaxQualityCoverSubtitle": "Descargar carátula de resolución máxima",
"@optionsMaxQualityCoverSubtitle": {
"description": "Subtitle for max quality cover"
},
"optionsReplayGain": "Nivelación de Ganancia",
"@optionsReplayGain": {
"description": "Title for ReplayGain setting toggle"
},
"optionsReplayGainSubtitleOn": "Analizar volumen e incrustar etiquetas de RG (EBU-R128)",
"@optionsReplayGainSubtitleOn": {
"description": "Subtitle when ReplayGain is enabled"
},
"optionsReplayGainSubtitleOff": "Desactivado: sin etiquetas de normalización de volumen",
"@optionsReplayGainSubtitleOff": {
"description": "Subtitle when ReplayGain is disabled"
},
"optionsArtistTagMode": "Modo de Etiqueta de Artista",
"@optionsArtistTagMode": {
"description": "Setting title for how artist metadata is written into files"
},
"optionsArtistTagModeDescription": "Elija cómo se ingresan múltiples artistas en etiquetas incrustadas.",
"@optionsArtistTagModeDescription": {
"description": "Bottom-sheet description for artist tag mode setting"
},
"optionsArtistTagModeJoined": "Valor único ingresado",
"@optionsArtistTagModeJoined": {
"description": "Artist tag mode option that joins multiple artists into one value"
},
"optionsArtistTagModeJoinedSubtitle": "Escribe un valor ARTIST, como \"Artista A, Artista B\" para mejor compatibilidad en reproductores.",
"@optionsArtistTagModeJoinedSubtitle": {
"description": "Subtitle for joined artist tag mode"
},
"optionsArtistTagModeSplitVorbis": "Dividir (recortar) etiquetar para FLAC/OPUS",
"@optionsArtistTagModeSplitVorbis": {
"description": "Artist tag mode option that writes repeated ARTIST tags for Vorbis formats"
},
"optionsArtistTagModeSplitVorbisSubtitle": "Escribe una etiqueta de artista por artista para FLAC y OPUS; MP3 y M4A se mantienen agrupados.",
"@optionsArtistTagModeSplitVorbisSubtitle": {
"description": "Subtitle for split Vorbis artist tag mode"
},
"optionsConcurrentDownloads": "Descargas Simultáneas",
"@optionsConcurrentDownloads": {
"description": "Number of parallel downloads"
},
"optionsConcurrentSequential": "Secuencial (1 a la vez)",
"@optionsConcurrentSequential": {
"description": "Download one at a time"
},
"optionsConcurrentParallel": "{count} descargas paralelas",
"@optionsConcurrentParallel": {
"description": "Multiple parallel downloads",
"placeholders": {
"count": {
"type": "int"
}
}
},
"optionsConcurrentWarning": "Las descargas paralelas pueden activar la limitación de velocidad",
"@optionsConcurrentWarning": {
"description": "Warning about rate limits"
},
"optionsExtensionStore": "Extensión .Repo (repositorio)",
"@optionsExtensionStore": {
"description": "Show/hide store tab"
},
"optionsExtensionStoreSubtitle": "Mostar barra de navegación repo",
"@optionsExtensionStoreSubtitle": {
"description": "Subtitle for extension store toggle"
},
"optionsCheckUpdates": "Comprobar actualizaciones",
"@optionsCheckUpdates": {
"description": "Auto update check toggle"
},
"optionsCheckUpdatesSubtitle": "Notificar cuando una nueva versión esté disponible",
"@optionsCheckUpdatesSubtitle": {
"description": "Subtitle for update check"
},
"optionsUpdateChannel": "Tipo de actualizaciones",
"@optionsUpdateChannel": {
"description": "Stable vs preview releases"
},
"optionsUpdateChannelStable": "Sólo versiones estables",
"@optionsUpdateChannelStable": {
"description": "Only stable updates"
},
"optionsUpdateChannelPreview": "Versión preliminar",
"@optionsUpdateChannelPreview": {
"description": "Include beta/preview updates"
},
"optionsUpdateChannelWarning": "La Versión preliminar puede contener errores o características incompletas",
"@optionsUpdateChannelWarning": {
"description": "Warning about preview channel"
},
"optionsClearHistory": "Borrar el historial de descargas",
"@optionsClearHistory": {
"description": "Delete all download history"
},
"optionsClearHistorySubtitle": "Eliminar todas las pistas descargadas del historial",
"@optionsClearHistorySubtitle": {
"description": "Subtitle for clear history"
},
"optionsDetailedLogging": "Registro detallado",
"@optionsDetailedLogging": {
"description": "Enable verbose logs for debugging"
},
"optionsDetailedLoggingOn": "Registros detallados están siendo registrados",
"@optionsDetailedLoggingOn": {
"description": "Status when logging enabled"
},
"optionsDetailedLoggingOff": "Habilitar para informes de errores",
"@optionsDetailedLoggingOff": {
"description": "Status when logging disabled"
},
"optionsSpotifyCredentials": "Credenciales de Spotify",
"@optionsSpotifyCredentials": {
"description": "Spotify API credentials setting"
},
"optionsSpotifyCredentialsConfigured": "ID de cliente: {clientId}...",
"@optionsSpotifyCredentialsConfigured": {
"description": "Shows configured client ID preview",
"placeholders": {
"clientId": {
"type": "String"
}
}
},
"optionsSpotifyCredentialsRequired": "Requerido - toque para configurar",
"@optionsSpotifyCredentialsRequired": {
"description": "Prompt to set up credentials"
},
"optionsSpotifyWarning": "Spotify requiere tus propias credenciales API. Obténgalas gratis de developer.spotify.com",
"@optionsSpotifyWarning": {
"description": "Info about Spotify API requirement"
},
"optionsSpotifyDeprecationWarning": "La función de búsqueda de Spotify dejará de estar disponible el 3 de marzo de 2026 debido a cambios en la API de Spotify. Te recomendamos que te pases a Deezer.",
"@optionsSpotifyDeprecationWarning": {
"description": "Warning about Spotify API deprecation"
},
"extensionsTitle": "Extensiones",
"@extensionsTitle": {
"description": "Extensions page title"
},
"extensionsDisabled": "Deshabilitado",
"@extensionsDisabled": {
"description": "Extension status - inactive"
},
"extensionsVersion": "Versión {version}",
"@extensionsVersion": {
"description": "Extension version display",
"placeholders": {
"version": {
"type": "String"
}
}
},
"extensionsAuthor": "por {author}",
"@extensionsAuthor": {
"description": "Extension author credit",
"placeholders": {
"author": {
"type": "String"
}
}
},
"extensionsUninstall": "Desinstalar",
"@extensionsUninstall": {
"description": "Uninstall extension button"
},
"storeTitle": "Extensión .Repo",
"@storeTitle": {
"description": "Store screen title"
},
"storeSearch": "Buscar extensiones...",
"@storeSearch": {
"description": "Store search placeholder"
},
"storeInstall": "Instalar",
"@storeInstall": {
"description": "Install extension button"
},
"storeInstalled": "Instalada",
"@storeInstalled": {
"description": "Already installed badge"
},
"storeUpdate": "Actualizar",
"@storeUpdate": {
"description": "Update available button"
},
"aboutTitle": "Acerca de",
"@aboutTitle": {
"description": "About page title"
},
"aboutContributors": "Colaboradores",
"@aboutContributors": {
"description": "Section for contributors"
},
"aboutMobileDeveloper": "Desarrollador de versiones móviles",
"@aboutMobileDeveloper": {
"description": "Role description for mobile dev"
},
"aboutOriginalCreator": "Creador original de SpotiFLAC",
"@aboutOriginalCreator": {
"description": "Role description for original creator"
},
"aboutLogoArtist": "¡El talentoso artista que creó nuestro hermoso logo!",
"@aboutLogoArtist": {
"description": "Role description for logo artist"
},
"aboutTranslators": "Traductores",
"@aboutTranslators": {
"description": "Section for translators"
},
"aboutSpecialThanks": "Agradecimientos especiales",
"@aboutSpecialThanks": {
"description": "Section for special thanks"
},
"aboutLinks": "Enlaces",
"@aboutLinks": {
"description": "Section for external links"
},
"aboutMobileSource": "Código fuente móvil",
"@aboutMobileSource": {
"description": "Link to mobile GitHub repo"
},
"aboutPCSource": "Código fuente de PC",
"@aboutPCSource": {
"description": "Link to PC GitHub repo"
},
"aboutKeepAndroidOpen": "Keep Android Open",
"@aboutKeepAndroidOpen": {
"description": "Link to Keep Android Open campaign website"
},
"aboutReportIssue": "Reportar un problema",
"@aboutReportIssue": {
"description": "Link to report bugs"
},
"aboutReportIssueSubtitle": "Reporta cualquier problema que encuentres",
"@aboutReportIssueSubtitle": {
"description": "Subtitle for report issue"
},
"aboutFeatureRequest": "Sugerir una función",
"@aboutFeatureRequest": {
"description": "Link to suggest features"
},
"aboutFeatureRequestSubtitle": "Sugerir nuevas funciones para la aplicación",
"@aboutFeatureRequestSubtitle": {
"description": "Subtitle for feature request"
},
"aboutTelegramChannel": "Canal de Telegram",
"@aboutTelegramChannel": {
"description": "Link to Telegram channel"
},
"aboutTelegramChannelSubtitle": "Anuncios y actualizaciones",
"@aboutTelegramChannelSubtitle": {
"description": "Subtitle for Telegram channel"
},
"aboutTelegramChat": "Comunidad de Telegram",
"@aboutTelegramChat": {
"description": "Link to Telegram chat group"
},
"aboutTelegramChatSubtitle": "Chatear con otros usuarios",
"@aboutTelegramChatSubtitle": {
"description": "Subtitle for Telegram chat"
},
"aboutSocial": "Redes sociales",
"@aboutSocial": {
"description": "Section for social links"
},
"aboutApp": "Aplicación",
"@aboutApp": {
"description": "Section for app info"
},
"aboutVersion": "Versión",
"@aboutVersion": {
"description": "Version info label"
},
"aboutBinimumDesc": "El creador de la API QQDL & Hi-Fi. ¡Sin esta API, las descargas de Tidal no existiría!",
"@aboutBinimumDesc": {
"description": "Credit description for binimum"
},
"aboutSachinsenalDesc": "El creador original del proyecto Hi-Fi. ¡La base de la integración de Tidal!",
"@aboutSachinsenalDesc": {
"description": "Credit description for sachinsenal0x64"
},
"aboutSjdonadoDesc": "Creador de I No tengo Spotify (IDHS). ¡La solución de enlace de reserva que salva el día!",
"@aboutSjdonadoDesc": {
"description": "Credit description for sjdonado"
},
"aboutDabMusic": "Música DAB",
"@aboutDabMusic": {
"description": "Name of Qobuz API service - DO NOT TRANSLATE"
},
"aboutDabMusicDesc": "La mejor API de streaming de Qobuz. ¡Las descargas de Hi-Res no serían posibles sin esto!",
"@aboutDabMusicDesc": {
"description": "Credit for DAB Music API"
},
"aboutSpotiSaver": "SpotiSaver",
"@aboutSpotiSaver": {
"description": "Name of SpotiSaver API service - DO NOT TRANSLATE"
},
"aboutSpotiSaverDesc": "Tidal de transmisión Hi-Res FLAC. ¡Una pieza clave del rompecabezas sin pérdida!",
"@aboutSpotiSaverDesc": {
"description": "Credit for SpotiSaver API"
},
"aboutAppDescription": "Descargar pistas de Spotify en alta calidad (sin pérdida) de Tidal y Qobuz.",
"@aboutAppDescription": {
"description": "App description in header card"
},
"artistAlbums": "Álbumes",
"@artistAlbums": {
"description": "Section header for artist albums"
},
"artistSingles": "Pistas y EPs",
"@artistSingles": {
"description": "Section header for singles/EPs"
},
"artistCompilations": "Compilaciones",
"@artistCompilations": {
"description": "Section header for compilations"
},
"artistPopular": "Populares",
"@artistPopular": {
"description": "Section header for popular/top tracks"
},
"artistMonthlyListeners": "{count} oyentes mensuales",
"@artistMonthlyListeners": {
"description": "Monthly listener count display",
"placeholders": {
"count": {
"type": "String",
"description": "Formatted listener count"
}
}
},
"trackMetadataService": "Servicio",
"@trackMetadataService": {
"description": "Metadata field - download service used"
},
"trackMetadataPlay": "Reproducir",
"@trackMetadataPlay": {
"description": "Action button - play track"
},
"trackMetadataShare": "Compartir",
"@trackMetadataShare": {
"description": "Action button - share track"
},
"trackMetadataDelete": "Eliminar",
"@trackMetadataDelete": {
"description": "Action button - delete track"
},
"setupGrantPermission": "Conceder permiso",
"@setupGrantPermission": {
"description": "Button to request permission"
},
"setupSkip": "Omitir por ahora",
"@setupSkip": {
"description": "Skip current step button"
},
"setupStorageAccessRequired": "Acceso al almacenamiento requerido",
"@setupStorageAccessRequired": {
"description": "Title when storage access needed"
},
"setupStorageAccessMessageAndroid11": "Android 11+ requiere permiso \"Todos los archivos de acceso\" para guardar los archivos en la carpeta de descargas elegida.",
"@setupStorageAccessMessageAndroid11": {
"description": "Android 11+ specific explanation"
},
"setupOpenSettings": "Abrir ajustes",
"@setupOpenSettings": {
"description": "Button to open system settings"
},
"setupPermissionDeniedMessage": "Permiso denegado. Por favor, conceda todos los permisos para continuar.",
"@setupPermissionDeniedMessage": {
"description": "Error when permission denied"
},
"setupPermissionRequired": "Permiso de {permissionType} requerido",
"@setupPermissionRequired": {
"description": "Generic permission required title",
"placeholders": {
"permissionType": {
"type": "String",
"description": "Type of permission (Storage/Notification)"
}
}
},
"setupPermissionRequiredMessage": "Se requiere un permiso {permissionType} para la mejor experiencia. Puedes cambiar esto más tarde en ajustes.",
"@setupPermissionRequiredMessage": {
"description": "Generic permission required message",
"placeholders": {
"permissionType": {
"type": "String"
}
}
},
"setupUseDefaultFolder": "¿Usar carpeta por defecto?",
"@setupUseDefaultFolder": {
"description": "Dialog title for default folder"
},
"setupNoFolderSelected": "No se ha seleccionado ninguna carpeta. ¿Desea utilizar la carpeta por defecto?",
"@setupNoFolderSelected": {
"description": "Prompt when no folder selected"
},
"setupUseDefault": "Usar por defecto",
"@setupUseDefault": {
"description": "Button to use default folder"
},
"setupDownloadLocationTitle": "Ubicación de descarga",
"@setupDownloadLocationTitle": {
"description": "Download location dialog title"
},
"setupDownloadLocationIosMessage": "En iOS, las descargas se guardan en la carpeta de documentos de la aplicación. Puede acceder a ellas desde la aplicación Archivos.",
"@setupDownloadLocationIosMessage": {
"description": "iOS-specific folder info"
},
"setupAppDocumentsFolder": "Carpeta de documentos de App",
"@setupAppDocumentsFolder": {
"description": "iOS documents folder option"
},
"setupAppDocumentsFolderSubtitle": "Recomendado - accesible desde la aplicación Archivos",
"@setupAppDocumentsFolderSubtitle": {
"description": "Subtitle for documents folder"
},
"setupChooseFromFiles": "Elegir de archivos",
"@setupChooseFromFiles": {
"description": "iOS file picker option"
},
"setupChooseFromFilesSubtitle": "Seleccione iCloud u otra ubicación",
"@setupChooseFromFilesSubtitle": {
"description": "Subtitle for file picker"
},
"setupIosEmptyFolderWarning": "Limitación de iOS: No se pueden seleccionar carpetas vacías. Elige una carpeta con al menos un archivo.",
"@setupIosEmptyFolderWarning": {
"description": "iOS folder selection warning"
},
"setupIcloudNotSupported": "iCloud Drive no es compatible. Utilice la carpeta Documentos de la aplicación.",
"@setupIcloudNotSupported": {
"description": "Error when user selects iCloud Drive on iOS"
},
"setupDownloadInFlac": "Descargar pistas de Spotify en FLAC",
"@setupDownloadInFlac": {
"description": "App tagline in setup"
},
"setupStorageGranted": "¡Permiso de almacenamiento concedido!",
"@setupStorageGranted": {
"description": "Success message for storage permission"
},
"setupStorageRequired": "Permiso de almacenamiento requerido",
"@setupStorageRequired": {
"description": "Title when storage permission needed"
},
"setupStorageDescription": "SpotiFLAC necesita permiso de almacenamiento para guardar sus archivos de música descargados.",
"@setupStorageDescription": {
"description": "Explanation for storage permission"
},
"setupNotificationGranted": "¡Acceso a las notificaciones permitido!",
"@setupNotificationGranted": {
"description": "Success message for notification permission"
},
"setupNotificationEnable": "Activar notificaciones",
"@setupNotificationEnable": {
"description": "Button to enable notifications"
},
"setupFolderChoose": "Cambiar carpeta de descargas",
"@setupFolderChoose": {
"description": "Button to choose folder"
},
"setupFolderDescription": "Seleccione una carpeta donde se guardará la música descargada.",
"@setupFolderDescription": {
"description": "Explanation for folder selection"
},
"setupSelectFolder": "Seleccionar Carpeta",
"@setupSelectFolder": {
"description": "Button to select folder"
},
"setupEnableNotifications": "Activar notificaciones",
"@setupEnableNotifications": {
"description": "Button to enable notifications"
},
"setupNotificationBackgroundDescription": "Recibe notificaciones sobre el progreso de la descarga y la finalización. Esto te ayuda a rastrear las descargas cuando la aplicación está en segundo plano.",
"@setupNotificationBackgroundDescription": {
"description": "Detailed notification explanation"
},
"setupSkipForNow": "Omitir por ahora",
"@setupSkipForNow": {
"description": "Skip button text"
},
"setupNext": "Siguiente",
"@setupNext": {
"description": "Next button text"
},
"setupGetStarted": "Empezar",
"@setupGetStarted": {
"description": "Final setup button"
},
"setupAllowAccessToManageFiles": "Por favor, activa \"Permitir el acceso para gestionar todos los archivos\" en la siguiente pantalla.",
"@setupAllowAccessToManageFiles": {
"description": "Instruction for file access permission"
},
"dialogCancel": "Cancelar",
"@dialogCancel": {
"description": "Dialog button - cancel action"
},
"dialogSave": "Guardar",
"@dialogSave": {
"description": "Dialog button - save changes"
},
"dialogDelete": "Eliminar",
"@dialogDelete": {
"description": "Dialog button - delete item"
},
"dialogRetry": "Volver a intentar",
"@dialogRetry": {
"description": "Dialog button - retry action"
},
"dialogClear": "Borrar",
"@dialogClear": {
"description": "Dialog button - clear items"
},
"dialogDone": "Hecho",
"@dialogDone": {
"description": "Dialog button - action completed"
},
"dialogImport": "Importar",
"@dialogImport": {
"description": "Dialog button - import data"
},
"dialogDownload": "Descargar",
"@dialogDownload": {
"description": "Confirm button in Download All dialog"
},
"dialogDiscard": "Descartar",
"@dialogDiscard": {
"description": "Dialog button - discard changes"
},
"dialogRemove": "Eliminar",
"@dialogRemove": {
"description": "Dialog button - remove item"
},
"dialogUninstall": "Desinstalar",
"@dialogUninstall": {
"description": "Dialog button - uninstall extension"
},
"dialogDiscardChanges": "¿Descartar cambios?",
"@dialogDiscardChanges": {
"description": "Dialog title - unsaved changes warning"
},
"dialogUnsavedChanges": "Tienes cambios sin guardar. ¿Quieres descartarlos?",
"@dialogUnsavedChanges": {
"description": "Dialog message - unsaved changes"
},
"dialogClearAll": "Eliminar todo",
"@dialogClearAll": {
"description": "Dialog title - clear all items"
},
"dialogRemoveExtension": "Eliminar extensión",
"@dialogRemoveExtension": {
"description": "Dialog title - uninstall extension"
},
"dialogRemoveExtensionMessage": "¿Estás seguro de que quieres eliminar esta extensión? Esto no se puede deshacer.",
"@dialogRemoveExtensionMessage": {
"description": "Dialog message - uninstall confirmation"
},
"dialogUninstallExtension": "¿Desinstalar extensión?",
"@dialogUninstallExtension": {
"description": "Dialog title - uninstall extension"
},
"dialogUninstallExtensionMessage": "¿Estás seguro de que quieres eliminar {extensionName}?",
"@dialogUninstallExtensionMessage": {
"description": "Dialog message - uninstall specific extension",
"placeholders": {
"extensionName": {
"type": "String"
}
}
},
"dialogClearHistoryTitle": "Borrar historial",
"@dialogClearHistoryTitle": {
"description": "Dialog title - clear download history"
},
"dialogClearHistoryMessage": "¿Estás seguro de que quieres borrar todo el historial de descargas? Esta acción no se puede deshacer.",
"@dialogClearHistoryMessage": {
"description": "Dialog message - clear history confirmation"
},
"dialogDeleteSelectedTitle": "Borrar Seleccionados",
"@dialogDeleteSelectedTitle": {
"description": "Dialog title - delete selected items"
},
"dialogDeleteSelectedMessage": "¿Eliminar {count} {count, plural, =1{pista} other{pistas}} del historial?\n\nEsto también eliminará los archivos del almacenamiento.",
"@dialogDeleteSelectedMessage": {
"description": "Dialog message - delete selected tracks",
"placeholders": {
"count": {
"type": "int"
}
}
},
"dialogImportPlaylistTitle": "Importar lista de reproducción",
"@dialogImportPlaylistTitle": {
"description": "Dialog title - import CSV playlist"
},
"dialogImportPlaylistMessage": "Se han encontrado pistas {count} en CSV. ¿Añadirlas para descargar la cola?",
"csvImportTracks": "{count} pistas de CSV",
"@csvImportTracks": {
"description": "Label shown in quality picker for CSV import",
"placeholders": {
"count": {
"type": "int"
}
}
},
"@dialogImportPlaylistMessage": {
"description": "Dialog message - import playlist confirmation",
"placeholders": {
"count": {
"type": "int"
}
}
},
"snackbarAddedToQueue": "Añadido \"{trackName}\" a la cola",
"@snackbarAddedToQueue": {
"description": "Snackbar - track added to download queue",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"snackbarAddedTracksToQueue": "Añadidas pistas {count} a la cola",
"@snackbarAddedTracksToQueue": {
"description": "Snackbar - multiple tracks added to queue",
"placeholders": {
"count": {
"type": "int"
}
}
},
"snackbarAlreadyDownloaded": "\"{trackName}\" ya descargado",
"@snackbarAlreadyDownloaded": {
"description": "Snackbar - track already exists",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"snackbarAlreadyInLibrary": "\"{trackName}\" ya existe en tu biblioteca",
"@snackbarAlreadyInLibrary": {
"description": "Snackbar - track already exists in local library",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"snackbarHistoryCleared": "Historial borrado",
"@snackbarHistoryCleared": {
"description": "Snackbar - history deleted"
},
"snackbarCredentialsSaved": "Credenciales guardadas",
"@snackbarCredentialsSaved": {
"description": "Snackbar - Spotify credentials saved"
},
"snackbarCredentialsCleared": "Credenciales borradas",
"@snackbarCredentialsCleared": {
"description": "Snackbar - Spotify credentials removed"
},
"snackbarDeletedTracks": "Eliminado {count} {count, plural, =1{pista} other{pistas}}",
"@snackbarDeletedTracks": {
"description": "Snackbar - tracks deleted",
"placeholders": {
"count": {
"type": "int"
}
}
},
"snackbarCannotOpenFile": "No se puede abrir el archivo: {error}",
"@snackbarCannotOpenFile": {
"description": "Snackbar - file open error",
"placeholders": {
"error": {
"type": "String"
}
}
},
"snackbarFillAllFields": "Por favor, completa todos los campos",
"@snackbarFillAllFields": {
"description": "Snackbar - validation error"
},
"snackbarViewQueue": "Ver cola",
"@snackbarViewQueue": {
"description": "Snackbar action - view download queue"
},
"snackbarUrlCopied": "URL {platform} copiada al portapapeles",
"@snackbarUrlCopied": {
"description": "Snackbar - URL copied",
"placeholders": {
"platform": {
"type": "String",
"description": "Platform name (Spotify/Deezer)"
}
}
},
"snackbarFileNotFound": "Archivo no encontrado",
"@snackbarFileNotFound": {
"description": "Snackbar - file doesn't exist"
},
"snackbarSelectExtFile": "Por favor, seleccione un archivo .spotiflac-ext",
"@snackbarSelectExtFile": {
"description": "Snackbar - wrong file type selected"
},
"snackbarProviderPrioritySaved": "Prioridad de proveedor guardada",
"@snackbarProviderPrioritySaved": {
"description": "Snackbar - provider order saved"
},
"snackbarMetadataProviderSaved": "Prioridad de proveedor de metadatos guardada",
"@snackbarMetadataProviderSaved": {
"description": "Snackbar - metadata provider order saved"
},
"snackbarExtensionInstalled": "{extensionName} instalado.",
"@snackbarExtensionInstalled": {
"description": "Snackbar - extension installed successfully",
"placeholders": {
"extensionName": {
"type": "String"
}
}
},
"snackbarExtensionUpdated": "{extensionName} actualizada.",
"@snackbarExtensionUpdated": {
"description": "Snackbar - extension updated successfully",
"placeholders": {
"extensionName": {
"type": "String"
}
}
},
"snackbarFailedToInstall": "Fallo al instalar la extensión",
"@snackbarFailedToInstall": {
"description": "Snackbar - extension install error"
},
"snackbarFailedToUpdate": "Error al actualizar la extensión",
"@snackbarFailedToUpdate": {
"description": "Snackbar - extension update error"
},
"errorRateLimited": "Límite Excedido",
"@errorRateLimited": {
"description": "Error title - too many requests"
},
"errorRateLimitedMessage": "Demasiadas solicitudes. Por favor, espere un momento antes de buscar de nuevo.",
"@errorRateLimitedMessage": {
"description": "Error message - rate limit explanation"
},
"errorNoTracksFound": "No se encontraron pistas",
"@errorNoTracksFound": {
"description": "Error - search returned no results"
},
"errorUrlNotRecognized": "Enlace no reconocido",
"@errorUrlNotRecognized": {
"description": "Error title - URL not handled by any extension or service"
},
"errorUrlNotRecognizedMessage": "Este enlace no es compatible. Asegúrate de que la URL sea correcta y de tener instalada una extensión compatible.",
"@errorUrlNotRecognizedMessage": {
"description": "Error message - URL not recognized explanation"
},
"errorUrlFetchFailed": "No se ha podido cargar el contenido de este enlace. Inténtalo de nuevo.",
"@errorUrlFetchFailed": {
"description": "Error message - generic URL fetch failure"
},
"errorMissingExtensionSource": "No se puede cargar {item}: falta una fuente de extensión",
"@errorMissingExtensionSource": {
"description": "Error - extension source not available",
"placeholders": {
"item": {
"type": "String"
}
}
},
"actionPause": "Pausar",
"@actionPause": {
"description": "Action button - pause download"
},
"actionResume": "Reanudar",
"@actionResume": {
"description": "Action button - resume download"
},
"actionCancel": "Cancelar",
"@actionCancel": {
"description": "Action button - cancel operation"
},
"actionSelectAll": "Seleccionar Todo",
"@actionSelectAll": {
"description": "Action button - select all items"
},
"actionDeselect": "Deseleccionar",
"@actionDeselect": {
"description": "Action button - deselect all"
},
"actionRemoveCredentials": "Eliminar credenciales",
"@actionRemoveCredentials": {
"description": "Action button - delete Spotify credentials"
},
"actionSaveCredentials": "Guardar credenciales",
"@actionSaveCredentials": {
"description": "Action button - save Spotify credentials"
},
"selectionSelected": "{count} seleccionado",
"@selectionSelected": {
"description": "Selection count indicator",
"placeholders": {
"count": {
"type": "int"
}
}
},
"selectionAllSelected": "Todas las pistas seleccionadas",
"@selectionAllSelected": {
"description": "Status - all items selected"
},
"selectionSelectToDelete": "Seleccionar pistas a eliminar",
"@selectionSelectToDelete": {
"description": "Placeholder when nothing selected"
},
"progressFetchingMetadata": "Obteniendo metadatos... {current}/{total}",
"@progressFetchingMetadata": {
"description": "Progress indicator - loading track info",
"placeholders": {
"current": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"progressReadingCsv": "Leyendo CSV...",
"@progressReadingCsv": {
"description": "Progress indicator - parsing CSV file"
},
"searchSongs": "Canciones",
"@searchSongs": {
"description": "Search result category - songs"
},
"searchArtists": "Artistas",
"@searchArtists": {
"description": "Search result category - artists"
},
"searchAlbums": "Álbumes",
"@searchAlbums": {
"description": "Search result category - albums"
},
"searchPlaylists": "Listas de reproducción",
"@searchPlaylists": {
"description": "Search result category - playlists"
},
"searchSortTitle": "Ordenar resultados",
"@searchSortTitle": {
"description": "Bottom sheet title for search sort options"
},
"searchSortDefault": "Por defecto",
"@searchSortDefault": {
"description": "Sort option - default API order"
},
"searchSortTitleAZ": "Nombre (A-Z)",
"@searchSortTitleAZ": {
"description": "Sort option - title ascending"
},
"searchSortTitleZA": "Nombre (Z-A)",
"@searchSortTitleZA": {
"description": "Sort option - title descending"
},
"searchSortArtistAZ": "Artista (A-Z)",
"@searchSortArtistAZ": {
"description": "Sort option - artist ascending"
},
"searchSortArtistZA": "Artista (Z-A)",
"@searchSortArtistZA": {
"description": "Sort option - artist descending"
},
"searchSortDurationShort": "Duración (más corto)",
"@searchSortDurationShort": {
"description": "Sort option - shortest duration first"
},
"searchSortDurationLong": "Duración (más largo)",
"@searchSortDurationLong": {
"description": "Sort option - longest duration first"
},
"searchSortDateOldest": "Fecha de lanzamiento (antiguo)",
"@searchSortDateOldest": {
"description": "Sort option - oldest release first"
},
"searchSortDateNewest": "Fecha de lanzamiento (reciente)",
"@searchSortDateNewest": {
"description": "Sort option - newest release first"
},
"tooltipPlay": "Reproducir",
"@tooltipPlay": {
"description": "Tooltip - play button"
},
"filenameFormat": "Formato del nombre del archivo",
"@filenameFormat": {
"description": "Setting title - filename pattern"
},
"filenameShowAdvancedTags": "Mostrar etiquetas avanzadas",
"@filenameShowAdvancedTags": {
"description": "Toggle label for showing advanced filename tags"
},
"filenameShowAdvancedTagsDescription": "Habilitar etiquetas con formato para el relleno de pistas y los formatos de fecha",
"@filenameShowAdvancedTagsDescription": {
"description": "Description for advanced filename tag toggle"
},
"folderOrganizationNone": "Ninguna organización",
"@folderOrganizationNone": {
"description": "Folder option - flat structure"
},
"folderOrganizationByPlaylist": "Por Playlist",
"@folderOrganizationByPlaylist": {
"description": "Folder option - playlist folders"
},
"folderOrganizationByPlaylistSubtitle": "Una carpeta independiente para cada Playlist",
"@folderOrganizationByPlaylistSubtitle": {
"description": "Subtitle for playlist folder option"
},
"folderOrganizationByArtist": "Por Artista",
"@folderOrganizationByArtist": {
"description": "Folder option - artist folders"
},
"folderOrganizationByAlbum": "Por Álbum",
"@folderOrganizationByAlbum": {
"description": "Folder option - album folders"
},
"folderOrganizationByArtistAlbum": "Artista/Álbum",
"@folderOrganizationByArtistAlbum": {
"description": "Folder option - nested folders"
},
"folderOrganizationDescription": "Organizar los archivos descargados en carpetas",
"@folderOrganizationDescription": {
"description": "Folder organization sheet description"
},
"folderOrganizationNoneSubtitle": "Todos los archivos de la carpeta de descargas",
"@folderOrganizationNoneSubtitle": {
"description": "Subtitle for no organization option"
},
"folderOrganizationByArtistSubtitle": "Carpeta separada para cada artista",
"@folderOrganizationByArtistSubtitle": {
"description": "Subtitle for artist folder option"
},
"folderOrganizationByAlbumSubtitle": "Carpeta separada para cada artista",
"@folderOrganizationByAlbumSubtitle": {
"description": "Subtitle for album folder option"
},
"folderOrganizationByArtistAlbumSubtitle": "Carpetas organizadas por artista y álbum",
"@folderOrganizationByArtistAlbumSubtitle": {
"description": "Subtitle for nested folder option"
},
"updateAvailable": "Actualización Disponible",
"@updateAvailable": {
"description": "Update dialog title"
},
"updateLater": "Más tarde",
"@updateLater": {
"description": "Update button - dismiss"
},
"updateStartingDownload": "Iniciando descarga...",
"@updateStartingDownload": {
"description": "Update status - initializing"
},
"updateDownloadFailed": "Descarga fallida",
"@updateDownloadFailed": {
"description": "Update error title"
},
"updateFailedMessage": "Error al descargar la actualización",
"@updateFailedMessage": {
"description": "Update error message"
},
"updateNewVersionReady": "Una nueva versión está lista",
"@updateNewVersionReady": {
"description": "Update subtitle"
},
"updateCurrent": "Actual",
"@updateCurrent": {
"description": "Label for current version"
},
"updateNew": "Nuevo",
"@updateNew": {
"description": "Label for new version"
},
"updateDownloading": "Descargando...",
"@updateDownloading": {
"description": "Update status - downloading"
},
"updateWhatsNew": "Novedades",
"@updateWhatsNew": {
"description": "Changelog section title"
},
"updateDownloadInstall": "Descargar & Instalar",
"@updateDownloadInstall": {
"description": "Update button - download and install"
},
"updateDontRemind": "No recordar",
"@updateDontRemind": {
"description": "Update button - skip this version"
},
"providerPriorityTitle": "Prioridad del proveedor",
"@providerPriorityTitle": {
"description": "Provider priority page title"
},
"providerPriorityDescription": "Arrastra para reordenar los proveedores de descarga. La aplicación intentará usar los proveedores de arriba hacia abajo al descargar las pistas.",
"@providerPriorityDescription": {
"description": "Provider priority page description"
},
"providerPriorityInfo": "Si una pista no está disponible en el primer proveedor, la aplicación intentará automáticamente el siguiente.",
"@providerPriorityInfo": {
"description": "Info tip about fallback behavior"
},
"providerPriorityFallbackExtensionsTitle": "Fallback de extensión",
"@providerPriorityFallbackExtensionsTitle": {
"description": "Section title for choosing which download extensions can be used as fallback providers"
},
"providerPriorityFallbackExtensionsDescription": "Elije qué extensiones instaladas se pueden utilizar durante el cambio automático a una alternativa. Los proveedores integrados siguen el orden de prioridad indicado anteriormente.",
"@providerPriorityFallbackExtensionsDescription": {
"description": "Section description for extension fallback selection"
},
"providerPriorityFallbackExtensionsHint": "Solo las extensiones activas con proveedor de descarga se listan aquí.",
"@providerPriorityFallbackExtensionsHint": {
"description": "Hint below the extension fallback selection list"
},
"providerBuiltIn": "Integrado",
"@providerBuiltIn": {
"description": "Label for built-in providers (Tidal/Qobuz)"
},
"providerExtension": "Extensión",
"@providerExtension": {
"description": "Label for extension-provided providers"
},
"metadataProviderPriorityTitle": "Prioridad de los metadatos",
"@metadataProviderPriorityTitle": {
"description": "Metadata priority page title"
},
"metadataProviderPriorityDescription": "Arrastra para reordenar los proveedores de metadatos. La aplicación probará los proveedores de arriba hacia abajo al buscar pistas y obtener los metadatos.",
"@metadataProviderPriorityDescription": {
"description": "Metadata priority page description"
},
"metadataProviderPriorityInfo": "Deezer no tiene límites de tasa y se recomienda como principal. Spotify puede valorar el límite después de muchas solicitudes.",
"@metadataProviderPriorityInfo": {
"description": "Info tip about rate limits"
},
"metadataNoRateLimits": "Sin límites de tasa",
"@metadataNoRateLimits": {
"description": "Deezer provider description"
},
"metadataMayRateLimit": "Sin límites de tasa",
"@metadataMayRateLimit": {
"description": "Spotify provider description"
},
"logTitle": "Registros",
"@logTitle": {
"description": "Logs screen title"
},
"logCopied": "Registros copiados al portapapeles",
"@logCopied": {
"description": "Snackbar - logs copied"
},
"logSearchHint": "Buscar registros...",
"@logSearchHint": {
"description": "Log search placeholder"
},
"logFilterLevel": "Nivel",
"@logFilterLevel": {
"description": "Filter by log level"
},
"logFilterSection": "Filtrar",
"@logFilterSection": {
"description": "Filter section title"
},
"logShareLogs": "Compartir registros",
"@logShareLogs": {
"description": "Share button tooltip"
},
"logClearLogs": "Borrar registros",
"@logClearLogs": {
"description": "Clear button tooltip"
},
"logClearLogsTitle": "Limpiar registros",
"@logClearLogsTitle": {
"description": "Clear logs dialog title"
},
"logClearLogsMessage": "¿Estás seguro que deseas limpiar todos los registros?",
"@logClearLogsMessage": {
"description": "Clear logs confirmation message"
},
"logFilterBySeverity": "Filtrar los registros por gravedad",
"@logFilterBySeverity": {
"description": "Filter dialog title"
},
"logNoLogsYet": "No hay registros aún",
"@logNoLogsYet": {
"description": "Empty state title"
},
"logNoLogsYetSubtitle": "Los registros aparecerán aquí mientras usas la aplicación",
"@logNoLogsYetSubtitle": {
"description": "Empty state subtitle"
},
"logEntriesFiltered": "Entradas ({count} filtradas)",
"@logEntriesFiltered": {
"description": "Log count with filter active",
"placeholders": {
"count": {
"type": "int"
}
}
},
"logEntries": "Entradas ({count})",
"@logEntries": {
"description": "Total log count",
"placeholders": {
"count": {
"type": "int"
}
}
},
"credentialsTitle": "Credenciales de Spotify",
"@credentialsTitle": {
"description": "Credentials dialog title"
},
"credentialsDescription": "Introduzca su ID de cliente y secreto para utilizar su propia cuota de aplicación de Spotify.",
"@credentialsDescription": {
"description": "Credentials dialog explanation"
},
"credentialsClientId": "ID del cliente",
"@credentialsClientId": {
"description": "Client ID field label - DO NOT TRANSLATE"
},
"credentialsClientIdHint": "Pegar ID de cliente",
"@credentialsClientIdHint": {
"description": "Client ID placeholder"
},
"credentialsClientSecret": "Client Secret",
"@credentialsClientSecret": {
"description": "Client Secret field label - DO NOT TRANSLATE"
},
"credentialsClientSecretHint": "Pegar Client Secret",
"@credentialsClientSecretHint": {
"description": "Client Secret placeholder"
},
"channelStable": "Estable",
"@channelStable": {
"description": "Update channel - stable releases"
},
"channelPreview": "Vista previa",
"@channelPreview": {
"description": "Update channel - beta/preview releases"
},
"sectionSearchSource": "Buscar Fuente",
"@sectionSearchSource": {
"description": "Settings section header"
},
"sectionDownload": "Descargar",
"@sectionDownload": {
"description": "Settings section header"
},
"sectionPerformance": "Alto rendimiento",
"@sectionPerformance": {
"description": "Settings section header"
},
"sectionApp": "Aplicación",
"@sectionApp": {
"description": "Settings section header"
},
"sectionData": "Datos",
"@sectionData": {
"description": "Settings section header"
},
"sectionDebug": "Depuración",
"@sectionDebug": {
"description": "Settings section header"
},
"sectionService": "Servicio",
"@sectionService": {
"description": "Settings section header"
},
"sectionAudioQuality": "Calidad de Sonido",
"@sectionAudioQuality": {
"description": "Settings section header"
},
"sectionFileSettings": "Ajustes del archivo",
"@sectionFileSettings": {
"description": "Settings section header"
},
"sectionLyrics": "Letras",
"@sectionLyrics": {
"description": "Settings section header"
},
"lyricsMode": "Modo Letras",
"@lyricsMode": {
"description": "Setting - how to save lyrics"
},
"lyricsModeDescription": "Elige cómo se guardan las letras de tus descargas",
"@lyricsModeDescription": {
"description": "Lyrics mode picker description"
},
"lyricsModeEmbed": "Insertar en archivo",
"@lyricsModeEmbed": {
"description": "Lyrics mode option - embed in audio file"
},
"lyricsModeEmbedSubtitle": "Letras almacenadas en los metadatos FLAC",
"@lyricsModeEmbedSubtitle": {
"description": "Subtitle for embed option"
},
"lyricsModeExternal": "Archivo .lrc externo",
"@lyricsModeExternal": {
"description": "Lyrics mode option - separate LRC file"
},
"lyricsModeExternalSubtitle": "Archivo .lrc separado para reproductores como Samsung Music",
"@lyricsModeExternalSubtitle": {
"description": "Subtitle for external option"
},
"lyricsModeBoth": "Ambos",
"@lyricsModeBoth": {
"description": "Lyrics mode option - embed and external"
},
"lyricsModeBothSubtitle": "Insertar y guardar archivo .lrc",
"@lyricsModeBothSubtitle": {
"description": "Subtitle for both option"
},
"sectionColor": "Colores",
"@sectionColor": {
"description": "Settings section header"
},
"sectionTheme": "Tema",
"@sectionTheme": {
"description": "Settings section header"
},
"sectionLayout": "Diseño",
"@sectionLayout": {
"description": "Settings section header"
},
"sectionLanguage": "Idioma",
"@sectionLanguage": {
"description": "Settings section header for language"
},
"appearanceLanguage": "Idioma de la aplicación",
"@appearanceLanguage": {
"description": "Language setting title"
},
"settingsAppearanceSubtitle": "Tema, colores, pantalla",
"@settingsAppearanceSubtitle": {
"description": "Appearance settings description"
},
"settingsDownloadSubtitle": "Servicio, calidad, formato del nombre del archivo",
"@settingsDownloadSubtitle": {
"description": "Download settings description"
},
"settingsOptionsSubtitle": "Alternativa, letras, carátula, actualizaciones",
"@settingsOptionsSubtitle": {
"description": "Options settings description"
},
"settingsExtensionsSubtitle": "Administrar proveedores de descarga",
"@settingsExtensionsSubtitle": {
"description": "Extensions settings description"
},
"settingsLogsSubtitle": "Ver registros de aplicaciones para depuración",
"@settingsLogsSubtitle": {
"description": "Logs settings description"
},
"loadingSharedLink": "Cargando enlace compartido...",
"@loadingSharedLink": {
"description": "Status when opening shared URL"
},
"pressBackAgainToExit": "Presione de nuevo para salir",
"@pressBackAgainToExit": {
"description": "Exit confirmation message"
},
"downloadAllCount": "Descargar Todo ({count})",
"@downloadAllCount": {
"description": "Download all button with count",
"placeholders": {
"count": {
"type": "int"
}
}
},
"tracksCount": "{count, plural, =1{1 pista} other{{count} pistas}}",
"@tracksCount": {
"description": "Track count display",
"placeholders": {
"count": {
"type": "int"
}
}
},
"trackCopyFilePath": "Copiar ruta de archivo",
"@trackCopyFilePath": {
"description": "Action - copy file path"
},
"trackRemoveFromDevice": "Eliminar del dispositivo",
"@trackRemoveFromDevice": {
"description": "Action - delete downloaded file"
},
"trackLoadLyrics": "Cargar letras",
"@trackLoadLyrics": {
"description": "Action - fetch lyrics"
},
"trackMetadata": "Metadatos",
"@trackMetadata": {
"description": "Tab title - track metadata"
},
"trackFileInfo": "Información de archivo",
"@trackFileInfo": {
"description": "Tab title - file information"
},
"trackLyrics": "Letras",
"@trackLyrics": {
"description": "Tab title - lyrics"
},
"trackFileNotFound": "Archivo no encontrado",
"@trackFileNotFound": {
"description": "Error - file doesn't exist"
},
"trackOpenInDeezer": "Abrir en Deezer",
"@trackOpenInDeezer": {
"description": "Action - open track in Deezer app"
},
"trackOpenInSpotify": "Abrir en Spotify",
"@trackOpenInSpotify": {
"description": "Action - open track in Spotify app"
},
"trackTrackName": "Nombre de pista",
"@trackTrackName": {
"description": "Metadata label - track title"
},
"trackArtist": "Artista",
"@trackArtist": {
"description": "Metadata label - artist name"
},
"trackAlbumArtist": "Artista del álbum",
"@trackAlbumArtist": {
"description": "Metadata label - album artist"
},
"trackAlbum": "Álbum",
"@trackAlbum": {
"description": "Metadata label - album name"
},
"trackTrackNumber": "Número de pista",
"@trackTrackNumber": {
"description": "Metadata label - track number"
},
"trackDiscNumber": "Número de disco",
"@trackDiscNumber": {
"description": "Metadata label - disc number"
},
"trackDuration": "Duración",
"@trackDuration": {
"description": "Metadata label - track length"
},
"trackAudioQuality": "Calidad del sonido",
"@trackAudioQuality": {
"description": "Metadata label - audio quality"
},
"trackReleaseDate": "Fecha de lanzamiento",
"@trackReleaseDate": {
"description": "Metadata label - release date"
},
"trackGenre": "Género",
"@trackGenre": {
"description": "Metadata label - music genre"
},
"trackLabel": "Etiqueta",
"@trackLabel": {
"description": "Metadata label - record label"
},
"trackCopyright": "Derechos de autor",
"@trackCopyright": {
"description": "Metadata label - copyright information"
},
"trackDownloaded": "Descargado",
"@trackDownloaded": {
"description": "Metadata label - download date"
},
"trackCopyLyrics": "Copiar letras",
"@trackCopyLyrics": {
"description": "Action - copy lyrics to clipboard"
},
"trackLyricsNotAvailable": "Letras no disponibles para este tema",
"@trackLyricsNotAvailable": {
"description": "Message when lyrics not found"
},
"trackLyricsNotInFile": "No se encontraron letras",
"@trackLyricsNotInFile": {
"description": "Message when no embedded lyrics in audio file"
},
"trackFetchOnlineLyrics": "Obtener en línea",
"@trackFetchOnlineLyrics": {
"description": "Action - fetch lyrics from online providers"
},
"trackLyricsTimeout": "Tiempo de espera agotado. Inténtalo de nuevo más tarde.",
"@trackLyricsTimeout": {
"description": "Message when lyrics request times out"
},
"trackLyricsLoadFailed": "Error al cargar la letra",
"@trackLyricsLoadFailed": {
"description": "Message when lyrics loading fails"
},
"trackEmbedLyrics": "Incrustar Letras",
"@trackEmbedLyrics": {
"description": "Action - embed lyrics into audio file"
},
"trackLyricsEmbedded": "Letra incrustada con éxito",
"@trackLyricsEmbedded": {
"description": "Snackbar - lyrics saved to file"
},
"trackInstrumental": "Pista intrumental",
"@trackInstrumental": {
"description": "Message when track is instrumental (no lyrics)"
},
"trackCopiedToClipboard": "Copiado al portapapeles",
"@trackCopiedToClipboard": {
"description": "Snackbar - content copied"
},
"trackDeleteConfirmTitle": "¿Eliminar del dispositivo?",
"@trackDeleteConfirmTitle": {
"description": "Delete confirmation title"
},
"trackDeleteConfirmMessage": "Esto eliminará permanentemente el archivo descargado y lo eliminará de tu historial.",
"@trackDeleteConfirmMessage": {
"description": "Delete confirmation message"
},
"dateToday": "Hoy",
"@dateToday": {
"description": "Relative date - today"
},
"dateYesterday": "Ayer",
"@dateYesterday": {
"description": "Relative date - yesterday"
},
"dateDaysAgo": "Hace {count} días",
"@dateDaysAgo": {
"description": "Relative date - days ago",
"placeholders": {
"count": {
"type": "int"
}
}
},
"dateWeeksAgo": "{count} semanas antes",
"@dateWeeksAgo": {
"description": "Relative date - weeks ago",
"placeholders": {
"count": {
"type": "int"
}
}
},
"dateMonthsAgo": "{count} meses atrás",
"@dateMonthsAgo": {
"description": "Relative date - months ago",
"placeholders": {
"count": {
"type": "int"
}
}
},
"storeFilterAll": "Todo",
"@storeFilterAll": {
"description": "Store filter - all extensions"
},
"storeFilterMetadata": "Metadatos",
"@storeFilterMetadata": {
"description": "Store filter - metadata providers"
},
"storeFilterDownload": "Descargar",
"@storeFilterDownload": {
"description": "Store filter - download providers"
},
"storeFilterUtility": "Utilidad",
"@storeFilterUtility": {
"description": "Store filter - utility extensions"
},
"storeFilterLyrics": "Letras",
"@storeFilterLyrics": {
"description": "Store filter - lyrics providers"
},
"storeFilterIntegration": "Integración",
"@storeFilterIntegration": {
"description": "Store filter - integrations"
},
"storeClearFilters": "Limpiar filtros",
"@storeClearFilters": {
"description": "Button to clear all filters"
},
"storeAddRepoTitle": "Añadir repositorio de extensiones",
"@storeAddRepoTitle": {
"description": "Store setup screen - heading when no repo is configured"
},
"storeAddRepoDescription": "Introduzca una URL de repositorio de GitHub que contenga un archivo registry.json para navegar e instalar extensiones.",
"@storeAddRepoDescription": {
"description": "Store setup screen - explanatory text"
},
"storeRepoUrlLabel": "URL del repositorio",
"@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"
},
"storeRepoUrlHelper": "Ejemplo: https://github.com/user/extensions-repo",
"@storeRepoUrlHelper": {
"description": "Helper text below the repository URL input field"
},
"storeAddRepoButton": "Añadir repositorio",
"@storeAddRepoButton": {
"description": "Button to submit a new repository URL"
},
"storeChangeRepoTooltip": "Cambiar repositorio",
"@storeChangeRepoTooltip": {
"description": "Tooltip for the change-repository icon button in the app bar"
},
"storeRepoDialogTitle": "Repositorio de extensiones",
"@storeRepoDialogTitle": {
"description": "Title of the change/remove repository dialog"
},
"storeRepoDialogCurrent": "Repositorio actual:",
"@storeRepoDialogCurrent": {
"description": "Label shown above the current repository URL in the dialog"
},
"storeNewRepoUrlLabel": "Nueva URL del repositorio",
"@storeNewRepoUrlLabel": {
"description": "Label for the new repository URL field inside the dialog"
},
"storeLoadError": "Falló al carga repositorio",
"@storeLoadError": {
"description": "Error heading when the store cannot be loaded"
},
"storeEmptyNoExtensions": "No hay extensiones disponibles",
"@storeEmptyNoExtensions": {
"description": "Message when store has no extensions"
},
"storeEmptyNoResults": "No se encontraron extensiones",
"@storeEmptyNoResults": {
"description": "Message when search/filter returns no results"
},
"extensionDefaultProvider": "Predeterminado (Deezer)",
"@extensionDefaultProvider": {
"description": "Default search provider option"
},
"extensionDefaultProviderSubtitle": "Usar búsqueda integrada",
"@extensionDefaultProviderSubtitle": {
"description": "Subtitle for default provider"
},
"extensionAuthor": "Autor/a",
"@extensionAuthor": {
"description": "Extension detail - author"
},
"extensionId": "ID",
"@extensionId": {
"description": "Extension detail - unique ID"
},
"extensionError": "Error",
"@extensionError": {
"description": "Extension detail - error message"
},
"extensionCapabilities": "Recursos",
"@extensionCapabilities": {
"description": "Section header - extension features"
},
"extensionMetadataProvider": "Proveedor de metadatos",
"@extensionMetadataProvider": {
"description": "Capability - provides metadata"
},
"extensionDownloadProvider": "Proveedor de descargas",
"@extensionDownloadProvider": {
"description": "Capability - provides downloads"
},
"extensionLyricsProvider": "Proveedor de letras",
"@extensionLyricsProvider": {
"description": "Capability - provides lyrics"
},
"extensionUrlHandler": "Gestor de URL",
"@extensionUrlHandler": {
"description": "Capability - handles URLs"
},
"extensionQualityOptions": "Opciones de calidad",
"@extensionQualityOptions": {
"description": "Capability - quality selection"
},
"extensionPostProcessingHooks": "Hooks post-procesamiento",
"@extensionPostProcessingHooks": {
"description": "Capability - post-processing"
},
"extensionPermissions": "Permisos",
"@extensionPermissions": {
"description": "Section header - required permissions"
},
"extensionSettings": "Ajustes",
"@extensionSettings": {
"description": "Section header - extension settings"
},
"extensionRemoveButton": "Eliminar extensión",
"@extensionRemoveButton": {
"description": "Button to uninstall extension"
},
"extensionUpdated": "Actualizado",
"@extensionUpdated": {
"description": "Extension detail - last update"
},
"extensionMinAppVersion": "Versión Mínima de la aplicación",
"@extensionMinAppVersion": {
"description": "Extension detail - minimum app version"
},
"extensionCustomTrackMatching": "Coincidencia de pista personalizada",
"@extensionCustomTrackMatching": {
"description": "Capability - custom track matching algorithm"
},
"extensionPostProcessing": "Post-Procesamiento",
"@extensionPostProcessing": {
"description": "Capability - post-download processing"
},
"extensionHooksAvailable": "{count} hook(s) disponibles",
"@extensionHooksAvailable": {
"description": "Post-processing hooks count",
"placeholders": {
"count": {
"type": "int"
}
}
},
"extensionPatternsCount": "Patrón(es) {count}",
"@extensionPatternsCount": {
"description": "URL patterns count",
"placeholders": {
"count": {
"type": "int"
}
}
},
"extensionStrategy": "Estrategia: {strategy}",
"@extensionStrategy": {
"description": "Track matching strategy name",
"placeholders": {
"strategy": {
"type": "String"
}
}
},
"extensionsProviderPrioritySection": "Prioridad del proveedor",
"@extensionsProviderPrioritySection": {
"description": "Section header - provider priority"
},
"extensionsInstalledSection": "Extensiones instaladas",
"@extensionsInstalledSection": {
"description": "Section header - installed extensions"
},
"extensionsNoExtensions": "No hay extensiones instaladas",
"@extensionsNoExtensions": {
"description": "Empty state - no extensions"
},
"extensionsNoExtensionsSubtitle": "Instalar archivos .spotiflac-ext para añadir nuevos proveedores",
"@extensionsNoExtensionsSubtitle": {
"description": "Empty state subtitle"
},
"extensionsInstallButton": "Instalar extensión",
"@extensionsInstallButton": {
"description": "Button to install extension from file"
},
"extensionsInfoTip": "Las extensiones pueden añadir nuevos metadatos y proveedores de descargas. Sólo instalar extensiones desde fuentes confiables.",
"@extensionsInfoTip": {
"description": "Security warning about extensions"
},
"extensionsInstalledSuccess": "Extensión instalada correctamente",
"@extensionsInstalledSuccess": {
"description": "Success message after install"
},
"extensionsDownloadPriority": "Prioridad de descarga",
"@extensionsDownloadPriority": {
"description": "Setting - download provider order"
},
"extensionsDownloadPrioritySubtitle": "Establecer orden de servicio de descarga",
"@extensionsDownloadPrioritySubtitle": {
"description": "Subtitle for download priority"
},
"extensionsFallbackTitle": "Fallback de extensiones",
"@extensionsFallbackTitle": {
"description": "Setting and page title for choosing which download extensions can be used during fallback"
},
"extensionsFallbackSubtitle": "Elija que extensiones pueden usarse como reserva",
"@extensionsFallbackSubtitle": {
"description": "Subtitle for download fallback extensions menu"
},
"extensionsNoDownloadProvider": "No hay extensiones con proveedor de descargas",
"@extensionsNoDownloadProvider": {
"description": "Empty state - no download providers"
},
"extensionsMetadataPriority": "Prioridad de los metadatos",
"@extensionsMetadataPriority": {
"description": "Setting - metadata provider order"
},
"extensionsMetadataPrioritySubtitle": "Establecer orden de búsqueda y metadatos",
"@extensionsMetadataPrioritySubtitle": {
"description": "Subtitle for metadata priority"
},
"extensionsNoMetadataProvider": "No hay extensiones con el proveedor de metadatos",
"@extensionsNoMetadataProvider": {
"description": "Empty state - no metadata providers"
},
"extensionsSearchProvider": "Proveedor de búsqueda",
"@extensionsSearchProvider": {
"description": "Setting - search provider selection"
},
"extensionsNoCustomSearch": "No hay extensiones con búsqueda personalizada",
"@extensionsNoCustomSearch": {
"description": "Empty state - no search providers"
},
"extensionsSearchProviderDescription": "Elegir qué servicio usar para buscar pistas",
"@extensionsSearchProviderDescription": {
"description": "Search provider setting description"
},
"extensionsCustomSearch": "Búsqueda personalizada",
"@extensionsCustomSearch": {
"description": "Label for custom search provider"
},
"extensionsErrorLoading": "Error al cargar la extensión",
"@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 bits/hasta 96kHz",
"@qualityHiResFlacSubtitle": {
"description": "Technical spec for hi-res"
},
"qualityHiResFlacMax": "Hi-Res FLAC Max",
"@qualityHiResFlacMax": {
"description": "Quality option - maximum resolution FLAC"
},
"qualityHiResFlacMaxSubtitle": "24 bits / hasta 192kHz",
"@qualityHiResFlacMaxSubtitle": {
"description": "Technical spec for hi-res max"
},
"downloadLossy320": "Con pérdida, 320 kbps",
"@downloadLossy320": {
"description": "Quality option label for Tidal lossy 320kbps"
},
"downloadLossyFormat": "Formato con pérdida",
"@downloadLossyFormat": {
"description": "Setting title to pick output format for Tidal lossy downloads"
},
"downloadLossy320Format": "Formato con pérdida a 320 kbps",
"@downloadLossy320Format": {
"description": "Title of the Tidal lossy format picker bottom sheet"
},
"downloadLossy320FormatDesc": "Elige el formato de salida para las descargas con pérdida de Tidal a 320kbps. La transmisión AAC original se convertirá al formato que hayas seleccionado.",
"@downloadLossy320FormatDesc": {
"description": "Description in the Tidal lossy format picker"
},
"downloadLossyMp3": "MP3 (320kbps)",
"@downloadLossyMp3": {
"description": "Tidal lossy format option - MP3 320kbps"
},
"downloadLossyMp3Subtitle": "Óptima compatibilidad, ~10 MB por pista",
"@downloadLossyMp3Subtitle": {
"description": "Subtitle for MP3 320kbps Tidal lossy option"
},
"downloadLossyOpus256": "OPUS (256kbps)",
"@downloadLossyOpus256": {
"description": "Tidal lossy format option - Opus 256kbps"
},
"downloadLossyOpus256Subtitle": "Opus de la mejor calidad, ~8 MB por pista",
"@downloadLossyOpus256Subtitle": {
"description": "Subtitle for Opus 256kbps Tidal lossy option"
},
"downloadLossyOpus128": "OPUS (128kbps)",
"@downloadLossyOpus128": {
"description": "Tidal lossy format option - Opus 128kbps"
},
"downloadLossyOpus128Subtitle": "Tamaño mínimo: ~4 MB por pista",
"@downloadLossyOpus128Subtitle": {
"description": "Subtitle for Opus 128kbps Tidal lossy option"
},
"qualityNote": "La calidad real depende de la disponibilidad de la pista del servicio",
"@qualityNote": {
"description": "Note about quality availability"
},
"downloadAskBeforeDownload": "Preguntar antes de descargar",
"@downloadAskBeforeDownload": {
"description": "Setting - show quality picker"
},
"downloadDirectory": "Carpeta de descarga",
"@downloadDirectory": {
"description": "Setting - download folder"
},
"downloadSeparateSinglesFolder": "Carpeta separada para pistas",
"@downloadSeparateSinglesFolder": {
"description": "Setting - separate folder for singles"
},
"downloadAlbumFolderStructure": "Estructura de carpeta del álbum",
"@downloadAlbumFolderStructure": {
"description": "Setting - album folder organization"
},
"downloadUseAlbumArtistForFolders": "Usar álbum de artista cómo carpeta",
"@downloadUseAlbumArtistForFolders": {
"description": "Setting - choose whether artist folders use Album Artist or Track Artist"
},
"downloadUsePrimaryArtistOnly": "Artista principal solo para carpetas",
"@downloadUsePrimaryArtistOnly": {
"description": "Setting - strip featured artists from folder name"
},
"downloadUsePrimaryArtistOnlyEnabled": "Se han eliminado los nombres de los artistas destacados del nombre de la carpeta (p. ej., Justin Bieber, Quavo → Justin Bieber)",
"@downloadUsePrimaryArtistOnlyEnabled": {
"description": "Subtitle when primary artist only is enabled"
},
"downloadUsePrimaryArtistOnlyDisabled": "Se utiliza el nombre completo del artista como nombre de la carpeta",
"@downloadUsePrimaryArtistOnlyDisabled": {
"description": "Subtitle when primary artist only is disabled"
},
"downloadSelectQuality": "Seleccionar Calidad",
"@downloadSelectQuality": {
"description": "Dialog title - choose audio quality"
},
"downloadFrom": "Descargar Desde",
"@downloadFrom": {
"description": "Label - download source"
},
"appearanceAmoledDark": "AMOLED Oscuro",
"@appearanceAmoledDark": {
"description": "Theme option - pure black"
},
"appearanceAmoledDarkSubtitle": "Fondo negro puro",
"@appearanceAmoledDarkSubtitle": {
"description": "Subtitle for AMOLED dark"
},
"queueClearAll": "Eliminar todo",
"@queueClearAll": {
"description": "Button - clear all queue items"
},
"queueClearAllMessage": "¿Estás seguro de que quieres borrar todas las descargas?",
"@queueClearAllMessage": {
"description": "Clear queue confirmation"
},
"settingsAutoExportFailed": "Autoexportar descargas fallidas",
"@settingsAutoExportFailed": {
"description": "Setting toggle for auto-export"
},
"settingsAutoExportFailedSubtitle": "Guardar descargas fallidas en el archivo TXT automáticamente",
"@settingsAutoExportFailedSubtitle": {
"description": "Subtitle for auto-export setting"
},
"settingsDownloadNetwork": "Red de descarga",
"@settingsDownloadNetwork": {
"description": "Setting for network type preference"
},
"settingsDownloadNetworkAny": "WiFi + Datos móviles",
"@settingsDownloadNetworkAny": {
"description": "Network option - use any connection"
},
"settingsDownloadNetworkWifiOnly": "Iniciar solo por Wifi",
"@settingsDownloadNetworkWifiOnly": {
"description": "Network option - only use WiFi"
},
"settingsDownloadNetworkSubtitle": "Elegir qué red usar para descargas. Cuando se establece en WiFi solamente, las descargas se detendrán en los datos móviles.",
"@settingsDownloadNetworkSubtitle": {
"description": "Subtitle explaining network preference"
},
"albumFolderArtistAlbum": "Artista / Álbum",
"@albumFolderArtistAlbum": {
"description": "Album folder option"
},
"albumFolderArtistAlbumSubtitle": "Álbumes/Nombre del Artista/Nombre del Álbum/",
"@albumFolderArtistAlbumSubtitle": {
"description": "Folder structure example"
},
"albumFolderArtistYearAlbum": "Artista / [Año] Álbum",
"@albumFolderArtistYearAlbum": {
"description": "Album folder option with year"
},
"albumFolderArtistYearAlbumSubtitle": "Álbumes/Nombre del Artista /[2005] Nombre del Álbum/",
"@albumFolderArtistYearAlbumSubtitle": {
"description": "Folder structure example"
},
"albumFolderAlbumOnly": "Sólo álbum",
"@albumFolderAlbumOnly": {
"description": "Album folder option"
},
"albumFolderAlbumOnlySubtitle": "Álbumes/Nombre del Álbum/",
"@albumFolderAlbumOnlySubtitle": {
"description": "Folder structure example"
},
"albumFolderYearAlbum": "Álbum [Año]",
"@albumFolderYearAlbum": {
"description": "Album folder option with year"
},
"albumFolderYearAlbumSubtitle": "Álbumes/[2005] Nombre del Álbum/",
"@albumFolderYearAlbumSubtitle": {
"description": "Folder structure example"
},
"albumFolderArtistAlbumSingles": "Artista / Álbum + Pistas",
"@albumFolderArtistAlbumSingles": {
"description": "Album folder option with singles inside artist"
},
"albumFolderArtistAlbumSinglesSubtitle": "Artista/Álbum/ y Artista/pistas/",
"@albumFolderArtistAlbumSinglesSubtitle": {
"description": "Folder structure example"
},
"albumFolderArtistAlbumFlat": "Artista / Álbum (sencillos planos)",
"@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": "Borrar Seleccionados",
"@downloadedAlbumDeleteSelected": {
"description": "Button - delete selected tracks"
},
"downloadedAlbumDeleteMessage": "¿Eliminar {count} {count, plural, =1{pista} other{pistas}} del historial?\n\nEsto también eliminará los archivos del almacenamiento.",
"@downloadedAlbumDeleteMessage": {
"description": "Delete confirmation with count",
"placeholders": {
"count": {
"type": "int"
}
}
},
"downloadedAlbumSelectedCount": "{count} seleccionado",
"@downloadedAlbumSelectedCount": {
"description": "Selection count indicator",
"placeholders": {
"count": {
"type": "int"
}
}
},
"downloadedAlbumAllSelected": "Todas las pistas seleccionadas",
"@downloadedAlbumAllSelected": {
"description": "Status - all items selected"
},
"downloadedAlbumTapToSelect": "Toca las pistas para seleccionar",
"@downloadedAlbumTapToSelect": {
"description": "Selection hint"
},
"downloadedAlbumDeleteCount": "¡Eliminar {count} {count, plural, =1{pista} other{pistas}}",
"@downloadedAlbumDeleteCount": {
"description": "Delete button text with count",
"placeholders": {
"count": {
"type": "int"
}
}
},
"downloadedAlbumSelectToDelete": "Seleccionar pistas a eliminar",
"@downloadedAlbumSelectToDelete": {
"description": "Placeholder when nothing selected"
},
"downloadedAlbumDiscHeader": "Disco {discNumber}",
"@downloadedAlbumDiscHeader": {
"description": "Header for disc separator in multi-disc albums",
"placeholders": {
"discNumber": {
"type": "int",
"example": "1"
}
}
},
"recentTypeArtist": "Artista",
"@recentTypeArtist": {
"description": "Recent access item type - artist"
},
"recentTypeAlbum": "Álbum",
"@recentTypeAlbum": {
"description": "Recent access item type - album"
},
"recentTypeSong": "Canción",
"@recentTypeSong": {
"description": "Recent access item type - song/track"
},
"recentTypePlaylist": "Lista de reproducción",
"@recentTypePlaylist": {
"description": "Recent access item type - playlist"
},
"recentEmpty": "Aún no hay entradas recientes",
"@recentEmpty": {
"description": "Empty state text for recent access list"
},
"recentShowAllDownloads": "Mostrar todas las descargas",
"@recentShowAllDownloads": {
"description": "Button label to unhide hidden downloads in recent access"
},
"recentPlaylistInfo": "Lista de reproducción: {name}",
"@recentPlaylistInfo": {
"description": "Snackbar message when tapping playlist in recent access",
"placeholders": {
"name": {
"type": "String",
"description": "Playlist name"
}
}
},
"discographyDownload": "Descargar Discografía",
"@discographyDownload": {
"description": "Button - download artist discography"
},
"discographyDownloadAll": "Descargar Todo",
"@discographyDownloadAll": {
"description": "Option - download entire discography"
},
"discographyDownloadAllSubtitle": "{count} pistas de {albumCount} lanzamientos",
"@discographyDownloadAllSubtitle": {
"description": "Subtitle showing total tracks and albums",
"placeholders": {
"count": {
"type": "int"
},
"albumCount": {
"type": "int"
}
}
},
"discographyAlbumsOnly": "Sólo álbumes",
"@discographyAlbumsOnly": {
"description": "Option - download only albums"
},
"discographyAlbumsOnlySubtitle": "{count} pistas de {albumCount} álbumes",
"@discographyAlbumsOnlySubtitle": {
"description": "Subtitle showing album tracks count",
"placeholders": {
"count": {
"type": "int"
},
"albumCount": {
"type": "int"
}
}
},
"discographySinglesOnly": "Solo sencillos & EPs ",
"@discographySinglesOnly": {
"description": "Option - download only singles"
},
"discographySinglesOnlySubtitle": "{count} Pistas de {albumCount} sencillos",
"@discographySinglesOnlySubtitle": {
"description": "Subtitle showing singles tracks count",
"placeholders": {
"count": {
"type": "int"
},
"albumCount": {
"type": "int"
}
}
},
"discographySelectAlbums": "Seleccionar álbumes...",
"@discographySelectAlbums": {
"description": "Option - manually select albums to download"
},
"discographySelectAlbumsSubtitle": "Elige álbumes o sencillos concretos",
"@discographySelectAlbumsSubtitle": {
"description": "Subtitle for select albums option"
},
"discographyFetchingTracks": "Cargando canciones...",
"@discographyFetchingTracks": {
"description": "Progress - fetching album tracks"
},
"discographyFetchingAlbum": "Cargando {current} de {total}...",
"@discographyFetchingAlbum": {
"description": "Progress - fetching specific album",
"placeholders": {
"current": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"discographySelectedCount": "{count} seleccionados",
"@discographySelectedCount": {
"description": "Selection count badge",
"placeholders": {
"count": {
"type": "int"
}
}
},
"discographyDownloadSelected": "Descargar seleccionados",
"@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": "Almacenamiento & Caché",
"@settingsCache": {
"description": "Settings menu item - cache management"
},
"settingsCacheSubtitle": "Ver tamaño y borrar datos en caché",
"@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": "Escanea y rastrea tu música existente",
"@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"
},
"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": "Escaneo Automático",
"@libraryAutoScan": {
"description": "Setting for automatic library scanning"
},
"libraryAutoScanSubtitle": "Automatically scan your library for new files",
"@libraryAutoScanSubtitle": {
"description": "Subtitle for auto scan setting"
},
"libraryAutoScanOff": "Apagado",
"@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, M4A, MP3, Opus, and OGG 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!",
"@tutorialWelcomeTitle": {
"description": "Tutorial welcome page title"
},
"tutorialWelcomeDesc": "Let's learn how to download your favorite music in lossless quality. This quick tutorial will show you the basics.",
"@tutorialWelcomeDesc": {
"description": "Tutorial welcome page description"
},
"tutorialWelcomeTip1": "Download music from Spotify, Deezer, or paste any supported URL",
"@tutorialWelcomeTip1": {
"description": "Tutorial welcome tip 1"
},
"tutorialWelcomeTip2": "Get FLAC quality audio from Tidal, Qobuz, or Deezer",
"@tutorialWelcomeTip2": {
"description": "Tutorial welcome tip 2"
},
"tutorialWelcomeTip3": "Automatic metadata, cover art, and lyrics embedding",
"@tutorialWelcomeTip3": {
"description": "Tutorial welcome tip 3"
},
"tutorialSearchTitle": "Finding Music",
"@tutorialSearchTitle": {
"description": "Tutorial search page title"
},
"tutorialSearchDesc": "There are two easy ways to find music you want to download.",
"@tutorialSearchDesc": {
"description": "Tutorial search page description"
},
"tutorialDownloadTitle": "Downloading Music",
"@tutorialDownloadTitle": {
"description": "Tutorial download page title"
},
"tutorialDownloadDesc": "Downloading music is simple and fast. Here's how it works.",
"@tutorialDownloadDesc": {
"description": "Tutorial download page description"
},
"tutorialLibraryTitle": "Your Library",
"@tutorialLibraryTitle": {
"description": "Tutorial library page title"
},
"tutorialLibraryDesc": "All your downloaded music is organized in the Library tab.",
"@tutorialLibraryDesc": {
"description": "Tutorial library page description"
},
"tutorialLibraryTip1": "View download progress and queue in the Library tab",
"@tutorialLibraryTip1": {
"description": "Tutorial library tip 1"
},
"tutorialLibraryTip2": "Tap any track to play it with your music player",
"@tutorialLibraryTip2": {
"description": "Tutorial library tip 2"
},
"tutorialLibraryTip3": "Switch between list and grid view for better browsing",
"@tutorialLibraryTip3": {
"description": "Tutorial library tip 3"
},
"tutorialExtensionsTitle": "Extensions",
"@tutorialExtensionsTitle": {
"description": "Tutorial extensions page title"
},
"tutorialExtensionsDesc": "Extend the app's capabilities with community extensions.",
"@tutorialExtensionsDesc": {
"description": "Tutorial extensions page description"
},
"tutorialExtensionsTip1": "Browse the Repo tab to discover useful extensions",
"@tutorialExtensionsTip1": {
"description": "Tutorial extensions tip 1"
},
"tutorialExtensionsTip2": "Add new download providers or search sources",
"@tutorialExtensionsTip2": {
"description": "Tutorial extensions tip 2"
},
"tutorialExtensionsTip3": "Get lyrics, enhanced metadata, and more features",
"@tutorialExtensionsTip3": {
"description": "Tutorial extensions tip 3"
},
"tutorialSettingsTitle": "Customize Your Experience",
"@tutorialSettingsTitle": {
"description": "Tutorial settings page title"
},
"tutorialSettingsDesc": "Personalize the app in Settings to match your preferences.",
"@tutorialSettingsDesc": {
"description": "Tutorial settings page description"
},
"tutorialSettingsTip1": "Change download location and folder organization",
"@tutorialSettingsTip1": {
"description": "Tutorial settings tip 1"
},
"tutorialSettingsTip2": "Set default audio quality and format preferences",
"@tutorialSettingsTip2": {
"description": "Tutorial settings tip 2"
},
"tutorialSettingsTip3": "Customize app theme and appearance",
"@tutorialSettingsTip3": {
"description": "Tutorial settings tip 3"
},
"tutorialReadyMessage": "You're all set! Start downloading your favorite music now.",
"@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"
},
"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"
},
"trackSaveCoverArtSubtitle": "Save album art as .jpg file",
"@trackSaveCoverArtSubtitle": {
"description": "Subtitle for save cover art action"
},
"trackSaveLyrics": "Save Lyrics (.lrc)",
"@trackSaveLyrics": {
"description": "Menu action - save lyrics as .lrc file"
},
"trackSaveLyricsSubtitle": "Fetch and save lyrics as .lrc file",
"@trackSaveLyricsSubtitle": {
"description": "Subtitle for save lyrics action"
},
"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"
},
"trackReEnrichFieldsTitle": "Fields to update",
"@trackReEnrichFieldsTitle": {
"description": "Section title for field selection in re-enrich dialog"
},
"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"
},
"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"
}
}
},
"queueFlacFindingProgress": "Finding FLAC matches... ({current}/{total})",
"@queueFlacFindingProgress": {
"description": "Snackbar while resolving remote matches for local FLAC redownloads",
"placeholders": {
"current": {
"type": "int"
},
"total": {
"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"
},
"trackConvertFormatSubtitle": "Convert to MP3, Opus, ALAC, or FLAC",
"@trackConvertFormatSubtitle": {
"description": "Subtitle for convert format menu item"
},
"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"
},
"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"
}
}
},
"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"
},
"cueSplitSubtitle": "Split CUE+FLAC into individual tracks",
"@cueSplitSubtitle": {
"description": "Subtitle for CUE split menu item"
},
"cueSplitAlbum": "Album: {album}",
"@cueSplitAlbum": {
"description": "Album name in CUE split sheet",
"placeholders": {
"album": {
"type": "String"
}
}
},
"cueSplitArtist": "Artist: {artist}",
"@cueSplitArtist": {
"description": "Artist name in CUE split sheet",
"placeholders": {
"artist": {
"type": "String"
}
}
},
"cueSplitTrackCount": "{count} tracks",
"@cueSplitTrackCount": {
"description": "Number of tracks in CUE sheet",
"placeholders": {
"count": {
"type": "int"
}
}
},
"cueSplitConfirmTitle": "Split CUE Album",
"@cueSplitConfirmTitle": {
"description": "CUE split confirmation dialog title"
},
"cueSplitConfirmMessage": "Split \"{album}\" into {count} individual FLAC files?\n\nFiles will be saved to the same directory.",
"@cueSplitConfirmMessage": {
"description": "CUE split confirmation dialog message",
"placeholders": {
"album": {
"type": "String"
},
"count": {
"type": "int"
}
}
},
"cueSplitSplitting": "Splitting CUE sheet... ({current}/{total})",
"@cueSplitSplitting": {
"description": "Snackbar while splitting CUE",
"placeholders": {
"current": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"cueSplitSuccess": "Split into {count} tracks successfully",
"@cueSplitSuccess": {
"description": "Snackbar after successful CUE split",
"placeholders": {
"count": {
"type": "int"
}
}
},
"cueSplitFailed": "CUE split failed",
"@cueSplitFailed": {
"description": "Snackbar when CUE split fails"
},
"cueSplitNoAudioFile": "Audio file not found for this CUE sheet",
"@cueSplitNoAudioFile": {
"description": "Error when CUE audio file is missing"
},
"cueSplitButton": "Split into Tracks",
"@cueSplitButton": {
"description": "Button text to start CUE splitting"
},
"actionCreate": "Create",
"@actionCreate": {
"description": "Generic action button - create"
},
"collectionFoldersTitle": "My folders",
"@collectionFoldersTitle": {
"description": "Library section title for custom folders"
},
"collectionWishlist": "Wishlist",
"@collectionWishlist": {
"description": "Custom folder for saved tracks to download later"
},
"collectionLoved": "Loved",
"@collectionLoved": {
"description": "Custom folder for favorite tracks"
},
"collectionPlaylists": "Playlists",
"@collectionPlaylists": {
"description": "Custom user playlists folder"
},
"collectionPlaylist": "Playlist",
"@collectionPlaylist": {
"description": "Single playlist label"
},
"collectionAddToPlaylist": "Add to playlist",
"@collectionAddToPlaylist": {
"description": "Action to add a track to user playlist"
},
"collectionCreatePlaylist": "Create playlist",
"@collectionCreatePlaylist": {
"description": "Action to create a new playlist"
},
"collectionNoPlaylistsYet": "No playlists yet",
"@collectionNoPlaylistsYet": {
"description": "Empty state title when user has no playlists"
},
"collectionNoPlaylistsSubtitle": "Create a playlist to start categorizing tracks",
"@collectionNoPlaylistsSubtitle": {
"description": "Empty state subtitle when user has no playlists"
},
"collectionPlaylistTracks": "{count, plural, =1{1 track} other{{count} tracks}}",
"@collectionPlaylistTracks": {
"description": "Track count label for custom playlists",
"placeholders": {
"count": {
"type": "int"
}
}
},
"collectionAddedToPlaylist": "Added to \"{playlistName}\"",
"@collectionAddedToPlaylist": {
"description": "Snackbar after adding track to playlist",
"placeholders": {
"playlistName": {
"type": "String"
}
}
},
"collectionAlreadyInPlaylist": "Already in \"{playlistName}\"",
"@collectionAlreadyInPlaylist": {
"description": "Snackbar when track already exists in playlist",
"placeholders": {
"playlistName": {
"type": "String"
}
}
},
"collectionPlaylistCreated": "Playlist created",
"@collectionPlaylistCreated": {
"description": "Snackbar after creating playlist"
},
"collectionPlaylistNameHint": "Playlist name",
"@collectionPlaylistNameHint": {
"description": "Hint text for playlist name input"
},
"collectionPlaylistNameRequired": "Playlist name is required",
"@collectionPlaylistNameRequired": {
"description": "Validation error for empty playlist name"
},
"collectionRenamePlaylist": "Rename playlist",
"@collectionRenamePlaylist": {
"description": "Action to rename playlist"
},
"collectionDeletePlaylist": "Delete playlist",
"@collectionDeletePlaylist": {
"description": "Action to delete playlist"
},
"collectionDeletePlaylistMessage": "Delete \"{playlistName}\" and all tracks inside it?",
"@collectionDeletePlaylistMessage": {
"description": "Confirmation message for deleting playlist",
"placeholders": {
"playlistName": {
"type": "String"
}
}
},
"collectionPlaylistDeleted": "Playlist deleted",
"@collectionPlaylistDeleted": {
"description": "Snackbar after deleting playlist"
},
"collectionPlaylistRenamed": "Playlist renamed",
"@collectionPlaylistRenamed": {
"description": "Snackbar after renaming playlist"
},
"collectionWishlistEmptyTitle": "Wishlist is empty",
"@collectionWishlistEmptyTitle": {
"description": "Wishlist empty state title"
},
"collectionWishlistEmptySubtitle": "Tap + on tracks to save what you want to download later",
"@collectionWishlistEmptySubtitle": {
"description": "Wishlist empty state subtitle"
},
"collectionLovedEmptyTitle": "Loved folder is empty",
"@collectionLovedEmptyTitle": {
"description": "Loved empty state title"
},
"collectionLovedEmptySubtitle": "Tap love on tracks to keep your favorites",
"@collectionLovedEmptySubtitle": {
"description": "Loved empty state subtitle"
},
"collectionPlaylistEmptyTitle": "Playlist is empty",
"@collectionPlaylistEmptyTitle": {
"description": "Playlist empty state title"
},
"collectionPlaylistEmptySubtitle": "Long-press + on any track to add it here",
"@collectionPlaylistEmptySubtitle": {
"description": "Playlist empty state subtitle"
},
"collectionRemoveFromPlaylist": "Remove from playlist",
"@collectionRemoveFromPlaylist": {
"description": "Tooltip for removing track from playlist"
},
"collectionRemoveFromFolder": "Remove from folder",
"@collectionRemoveFromFolder": {
"description": "Tooltip for removing track from wishlist/loved folder"
},
"collectionRemoved": "\"{trackName}\" removed",
"@collectionRemoved": {
"description": "Snackbar after removing a track from a collection",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"collectionAddedToLoved": "\"{trackName}\" added to Loved",
"@collectionAddedToLoved": {
"description": "Snackbar after adding track to loved folder",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"collectionRemovedFromLoved": "\"{trackName}\" removed from Loved",
"@collectionRemovedFromLoved": {
"description": "Snackbar after removing track from loved folder",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"collectionAddedToWishlist": "\"{trackName}\" added to Wishlist",
"@collectionAddedToWishlist": {
"description": "Snackbar after adding track to wishlist",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"collectionRemovedFromWishlist": "\"{trackName}\" removed from Wishlist",
"@collectionRemovedFromWishlist": {
"description": "Snackbar after removing track from wishlist",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"trackOptionAddToLoved": "Add to Loved",
"@trackOptionAddToLoved": {
"description": "Bottom sheet action label - add track to loved folder"
},
"trackOptionRemoveFromLoved": "Remove from Loved",
"@trackOptionRemoveFromLoved": {
"description": "Bottom sheet action label - remove track from loved folder"
},
"trackOptionAddToWishlist": "Add to Wishlist",
"@trackOptionAddToWishlist": {
"description": "Bottom sheet action label - add track to wishlist"
},
"trackOptionRemoveFromWishlist": "Remove from Wishlist",
"@trackOptionRemoveFromWishlist": {
"description": "Bottom sheet action label - remove track from wishlist"
},
"collectionPlaylistChangeCover": "Change cover image",
"@collectionPlaylistChangeCover": {
"description": "Bottom sheet action to pick a custom cover image for a playlist"
},
"collectionPlaylistRemoveCover": "Remove cover image",
"@collectionPlaylistRemoveCover": {
"description": "Bottom sheet action to remove custom cover image from a playlist"
},
"selectionShareCount": "Share {count} {count, plural, =1{track} other{tracks}}",
"@selectionShareCount": {
"description": "Share button text with count in selection mode",
"placeholders": {
"count": {
"type": "int"
}
}
},
"selectionShareNoFiles": "No shareable files found",
"@selectionShareNoFiles": {
"description": "Snackbar when no selected files exist on disk"
},
"selectionConvertCount": "Convert {count} {count, plural, =1{track} other{tracks}}",
"@selectionConvertCount": {
"description": "Convert button text with count in selection mode",
"placeholders": {
"count": {
"type": "int"
}
}
},
"selectionConvertNoConvertible": "No convertible tracks selected",
"@selectionConvertNoConvertible": {
"description": "Snackbar when no selected tracks support conversion"
},
"selectionBatchConvertConfirmTitle": "Batch Convert",
"@selectionBatchConvertConfirmTitle": {
"description": "Confirmation dialog title for batch conversion"
},
"selectionBatchConvertConfirmMessage": "Convert {count} {count, plural, =1{track} other{tracks}} to {format} at {bitrate}?\n\nOriginal files will be deleted after conversion.",
"@selectionBatchConvertConfirmMessage": {
"description": "Confirmation dialog message for batch conversion",
"placeholders": {
"count": {
"type": "int"
},
"format": {
"type": "String"
},
"bitrate": {
"type": "String"
}
}
},
"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"
}
}
},
"selectionBatchConvertProgress": "Converting {current} of {total}...",
"@selectionBatchConvertProgress": {
"description": "Snackbar during batch conversion progress",
"placeholders": {
"current": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"selectionBatchConvertSuccess": "Converted {success} of {total} tracks to {format}",
"@selectionBatchConvertSuccess": {
"description": "Snackbar after batch conversion completes",
"placeholders": {
"success": {
"type": "int"
},
"total": {
"type": "int"
},
"format": {
"type": "String"
}
}
},
"downloadedAlbumDownloadedCount": "{count} descargado",
"@downloadedAlbumDownloadedCount": {
"description": "Downloaded tracks count badge",
"placeholders": {
"count": {
"type": "int"
}
}
},
"downloadUseAlbumArtistForFoldersAlbumSubtitle": "Artist folders use Album Artist when available",
"@downloadUseAlbumArtistForFoldersAlbumSubtitle": {
"description": "Subtitle when Album Artist is used for folder naming"
},
"downloadUseAlbumArtistForFoldersTrackSubtitle": "Artist folders use Track Artist only",
"@downloadUseAlbumArtistForFoldersTrackSubtitle": {
"description": "Subtitle when Track Artist is used for folder naming"
},
"lyricsProvidersTitle": "Lyrics Providers",
"@lyricsProvidersTitle": {
"description": "Title for the lyrics provider priority page"
},
"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 always run before built-in 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"
},
"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": "Donate",
"@settingsDonate": {
"description": "Settings menu item - donate"
},
"settingsDonateSubtitle": "Support SpotiFLAC-Mobile development",
"@settingsDonateSubtitle": {
"description": "Subtitle for donate menu item"
},
"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 storage mode for downloaded files.",
"@downloadLocationSubtitle": {
"description": "Subtitle text in Android download location bottom sheet"
},
"storageModeAppFolder": "App folder (non-SAF)",
"@storageModeAppFolder": {
"description": "Storage mode option - use legacy app folder"
},
"storageModeAppFolderSubtitle": "Use default Music/SpotiFLAC path",
"@storageModeAppFolderSubtitle": {
"description": "Subtitle for app folder storage mode"
},
"storageModeSaf": "SAF folder",
"@storageModeSaf": {
"description": "Storage mode option - use Android SAF picker"
},
"storageModeSafSubtitle": "Pick folder via Android Storage Access Framework",
"@storageModeSafSubtitle": {
"description": "Subtitle for SAF storage mode"
},
"downloadFilenameDescription": "Customize how your files are named.",
"@downloadFilenameDescription": {
"description": "Description text in filename format bottom sheet"
},
"downloadFilenameInsertTag": "Tap to insert tag:",
"@downloadFilenameInsertTag": {
"description": "Label above filename tag chips"
},
"downloadSeparateSinglesEnabled": "Albums/ and Singles/ folders",
"@downloadSeparateSinglesEnabled": {
"description": "Subtitle when separate singles folder is enabled"
},
"downloadSeparateSinglesDisabled": "All files in same structure",
"@downloadSeparateSinglesDisabled": {
"description": "Subtitle when separate singles folder is disabled"
},
"downloadArtistNameFilters": "Artist Name Filters",
"@downloadArtistNameFilters": {
"description": "Setting title for artist folder filter options"
},
"downloadCreatePlaylistSourceFolder": "Create playlist source folder",
"@downloadCreatePlaylistSourceFolder": {
"description": "Setting title for adding a playlist folder prefix before the normal organization structure"
},
"downloadCreatePlaylistSourceFolderEnabled": "Playlist downloads use Playlist/ plus your normal folder structure.",
"@downloadCreatePlaylistSourceFolderEnabled": {
"description": "Subtitle when playlist source folder prefix is enabled"
},
"downloadCreatePlaylistSourceFolderDisabled": "Playlist downloads use the normal folder structure only.",
"@downloadCreatePlaylistSourceFolderDisabled": {
"description": "Subtitle when playlist source folder prefix is disabled"
},
"downloadCreatePlaylistSourceFolderRedundant": "By Playlist already places downloads inside a playlist folder.",
"@downloadCreatePlaylistSourceFolderRedundant": {
"description": "Subtitle when playlist folder prefix setting is redundant because folder organization is already by playlist"
},
"downloadSongLinkRegion": "SongLink Region",
"@downloadSongLinkRegion": {
"description": "Setting title for SongLink country region"
},
"downloadNetworkCompatibilityMode": "Network compatibility mode",
"@downloadNetworkCompatibilityMode": {
"description": "Setting title for network compatibility toggle"
},
"downloadNetworkCompatibilityModeEnabled": "Enabled: try HTTP + accept invalid TLS certificates (unsafe)",
"@downloadNetworkCompatibilityModeEnabled": {
"description": "Subtitle when network compatibility mode is enabled"
},
"downloadNetworkCompatibilityModeDisabled": "Off: strict HTTPS certificate validation (recommended)",
"@downloadNetworkCompatibilityModeDisabled": {
"description": "Subtitle when network compatibility mode is disabled"
},
"downloadSelectServiceToEnable": "Select a built-in service to enable",
"@downloadSelectServiceToEnable": {
"description": "Hint shown instead of Ask-quality subtitle when no built-in service selected"
},
"downloadSelectTidalQobuz": "Select Tidal or Qobuz above to configure quality",
"@downloadSelectTidalQobuz": {
"description": "Info hint when non-Tidal/Qobuz service is selected"
},
"downloadEmbedLyricsDisabled": "Disabled while Embed Metadata is turned off",
"@downloadEmbedLyricsDisabled": {
"description": "Subtitle for Embed Lyrics when Embed Metadata is disabled"
},
"downloadNeteaseIncludeTranslation": "Netease: Include Translation",
"@downloadNeteaseIncludeTranslation": {
"description": "Toggle title for including Netease translated lyrics"
},
"downloadNeteaseIncludeTranslationEnabled": "Append translated lyrics when available",
"@downloadNeteaseIncludeTranslationEnabled": {
"description": "Subtitle when Netease translation is enabled"
},
"downloadNeteaseIncludeTranslationDisabled": "Use original lyrics only",
"@downloadNeteaseIncludeTranslationDisabled": {
"description": "Subtitle when Netease translation is disabled"
},
"downloadNeteaseIncludeRomanization": "Netease: Include Romanization",
"@downloadNeteaseIncludeRomanization": {
"description": "Toggle title for including Netease romanized lyrics"
},
"downloadNeteaseIncludeRomanizationEnabled": "Append romanized lyrics when available",
"@downloadNeteaseIncludeRomanizationEnabled": {
"description": "Subtitle when Netease romanization is enabled"
},
"downloadNeteaseIncludeRomanizationDisabled": "Disabled",
"@downloadNeteaseIncludeRomanizationDisabled": {
"description": "Subtitle when Netease romanization is disabled"
},
"downloadAppleQqMultiPerson": "Apple/QQ Multi-Person Word-by-Word",
"@downloadAppleQqMultiPerson": {
"description": "Toggle title for Apple/QQ multi-person word-by-word lyrics"
},
"downloadAppleQqMultiPersonEnabled": "Enable v1/v2 speaker and [bg:] tags",
"@downloadAppleQqMultiPersonEnabled": {
"description": "Subtitle when multi-person word-by-word is enabled"
},
"downloadAppleQqMultiPersonDisabled": "Simplified word-by-word formatting",
"@downloadAppleQqMultiPersonDisabled": {
"description": "Subtitle when multi-person word-by-word is disabled"
},
"downloadMusixmatchLanguage": "Musixmatch Language",
"@downloadMusixmatchLanguage": {
"description": "Setting title for Musixmatch language preference"
},
"downloadMusixmatchLanguageAuto": "Auto (original)",
"@downloadMusixmatchLanguageAuto": {
"description": "Option label when Musixmatch uses original language"
},
"downloadFilterContributing": "Filter contributing artists in Album Artist",
"@downloadFilterContributing": {
"description": "Toggle title for filtering contributing artists in Album Artist metadata"
},
"downloadFilterContributingEnabled": "Album Artist metadata uses primary artist only",
"@downloadFilterContributingEnabled": {
"description": "Subtitle when contributing artist filter is enabled"
},
"downloadFilterContributingDisabled": "Keep full Album Artist metadata value",
"@downloadFilterContributingDisabled": {
"description": "Subtitle when contributing artist filter is disabled"
},
"downloadProvidersNoneEnabled": "None enabled",
"@downloadProvidersNoneEnabled": {
"description": "Subtitle for lyrics providers setting when no providers are enabled"
},
"downloadMusixmatchLanguageCode": "Language code",
"@downloadMusixmatchLanguageCode": {
"description": "Label for the Musixmatch language code text field"
},
"downloadMusixmatchLanguageHint": "auto / en / es / ja",
"@downloadMusixmatchLanguageHint": {
"description": "Hint text for the Musixmatch language code field"
},
"downloadMusixmatchLanguageDesc": "Set preferred language code (example: en, es, ja). Leave empty for auto.",
"@downloadMusixmatchLanguageDesc": {
"description": "Description in the Musixmatch language picker"
},
"downloadMusixmatchAuto": "Auto",
"@downloadMusixmatchAuto": {
"description": "Button to reset Musixmatch language to automatic"
},
"downloadNetworkAnySubtitle": "WiFi + Mobile Data",
"@downloadNetworkAnySubtitle": {
"description": "Subtitle for 'Any' network mode option"
},
"downloadNetworkWifiOnlySubtitle": "Pause downloads on mobile data",
"@downloadNetworkWifiOnlySubtitle": {
"description": "Subtitle for 'WiFi only' network mode option"
},
"downloadSongLinkRegionDesc": "Used as userCountry for SongLink API lookup.",
"@downloadSongLinkRegionDesc": {
"description": "Description in the 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": "Select fields to fill automatically from online metadata",
"@editMetadataAutoFillDesc": {
"description": "Description for the auto-fill section"
},
"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"
}
}
},
"queueDownloadedHeader": "Downloaded",
"@queueDownloadedHeader": {
"description": "Header label for downloaded items section in library"
},
"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"
},
"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"
},
"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"
},
"audioAnalysisSamples": "Samples",
"@audioAnalysisSamples": {
"description": "Total samples metric label"
},
"extensionsSearchWith": "Search with {providerName}",
"@extensionsSearchWith": {
"description": "Extensions page - subtitle for built-in search provider option",
"placeholders": {
"providerName": {
"type": "String"
}
}
},
"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": "Extensions page - home feed provider option: auto"
},
"extensionsHomeFeedAutoSubtitle": "Automatically select the best available",
"@extensionsHomeFeedAutoSubtitle": {
"description": "Extensions page - subtitle for auto 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"
},
"sortAlphaAsc": "A-Z",
"@sortAlphaAsc": {
"description": "Sort option - alphabetical ascending"
},
"sortAlphaDesc": "Z-A",
"@sortAlphaDesc": {
"description": "Sort option - alphabetical descending"
},
"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)"
},
"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"
}
}
},
"errorLoadAlbum": "Failed to load album",
"@errorLoadAlbum": {
"description": "Error state shown when album fails to load"
},
"errorLoadPlaylist": "Failed to load playlist",
"@errorLoadPlaylist": {
"description": "Error state shown when playlist fails to load"
},
"errorLoadArtist": "Failed to load artist",
"@errorLoadArtist": {
"description": "Error state shown when artist fails to load"
},
"notifChannelDownloadName": "Download Progress",
"@notifChannelDownloadName": {
"description": "Android notification channel name for download progress"
},
"notifChannelDownloadDesc": "Shows download progress for tracks",
"@notifChannelDownloadDesc": {
"description": "Android notification channel description for download progress"
},
"notifChannelLibraryScanName": "Library Scan",
"@notifChannelLibraryScanName": {
"description": "Android notification channel name for library scan"
},
"notifChannelLibraryScanDesc": "Shows local library scan progress",
"@notifChannelLibraryScanDesc": {
"description": "Android notification channel description for library scan"
},
"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"
}
}
},
"notifAllDownloadsComplete": "All Downloads Complete",
"@notifAllDownloadsComplete": {
"description": "Notification title when all downloads finish successfully"
},
"notifTracksDownloadedSuccess": "{count} tracks downloaded successfully",
"@notifTracksDownloadedSuccess": {
"description": "Notification body for queue complete - how many tracks were downloaded",
"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"
},
"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"
},
"downloadDeduplicationDisabled": "All tracks will be downloaded regardless of history",
"@downloadDeduplicationDisabled": {
"description": "Subtitle when deduplication is off"
},
"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"
}
}