diff --git a/lib/l10n/arb/app_es-ES.arb b/lib/l10n/arb/app_es-ES.arb deleted file mode 100644 index 3573d426..00000000 --- a/lib/l10n/arb/app_es-ES.arb +++ /dev/null @@ -1,3872 +0,0 @@ -{ - "@@locale": "es-ES", - "@@last_modified": "2026-01-16", - "appName": "SpotiFLAC", - "@appName": { - "description": "App name - DO NOT TRANSLATE" - }, - "appDescription": "Descargue pistas de Spotify con calidad sin pérdida de Tidal, Qobuz y Amazon Music.", - "@appDescription": { - "description": "App description shown in about page" - }, - "navHome": "Inicio", - "@navHome": { - "description": "Bottom navigation - Home tab" - }, - "navLibrary": "Biblioteca", - "@navLibrary": { - "description": "Bottom navigation - Library tab" - }, - "navHistory": "Historial", - "@navHistory": { - "description": "Bottom navigation - History tab (legacy)" - }, - "navSettings": "Ajustes", - "@navSettings": { - "description": "Bottom navigation - Settings tab" - }, - "navStore": "Tienda", - "@navStore": { - "description": "Bottom navigation - Extension store tab" - }, - "homeTitle": "Inicio", - "@homeTitle": { - "description": "Home screen title" - }, - "homeSearchHint": "Pegar URL Spotify o buscar...", - "@homeSearchHint": { - "description": "Placeholder text in search box" - }, - "homeSearchHintExtension": "Buscar con {extensionName}...", - "@homeSearchHintExtension": { - "description": "Placeholder when extension search is active", - "placeholders": { - "extensionName": { - "type": "String", - "description": "Name of the active extension" - } - } - }, - "homeSubtitle": "Pegar enlace de Spotify o buscar 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" - }, - "historyTitle": "Historial", - "@historyTitle": { - "description": "History screen title" - }, - "historyDownloading": "Descargando ({count})", - "@historyDownloading": { - "description": "Tab showing active downloads count", - "placeholders": { - "count": { - "type": "int", - "description": "Number of active downloads" - } - } - }, - "historyDownloaded": "Descargado", - "@historyDownloaded": { - "description": "Tab showing completed downloads" - }, - "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" - }, - "historyTracksCount": "{count, plural, one {}=1{1 pista} other{{count} pistas}}", - "@historyTracksCount": { - "description": "Track count with plural form", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "historyAlbumsCount": "{count, plural, one {}=1{1 álbum} other{{count} álbumes}}", - "@historyAlbumsCount": { - "description": "Album count with plural form", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "historyNoDownloads": "No hay historial de descargas", - "@historyNoDownloads": { - "description": "Empty state title" - }, - "historyNoDownloadsSubtitle": "Las pistas descargadas aparecerán aquí", - "@historyNoDownloadsSubtitle": { - "description": "Empty state subtitle" - }, - "historyNoAlbums": "No hay descargas de álbum", - "@historyNoAlbums": { - "description": "Empty state when filtering albums" - }, - "historyNoAlbumsSubtitle": "Descargar múltiples pistas de un álbum para verlas aquí", - "@historyNoAlbumsSubtitle": { - "description": "Empty state subtitle for albums filter" - }, - "historyNoSingles": "No hay descargas", - "@historyNoSingles": { - "description": "Empty state when filtering singles" - }, - "historyNoSinglesSubtitle": "Las descargas de una sola pista aparecerán aquí", - "@historyNoSinglesSubtitle": { - "description": "Empty state subtitle for singles filter" - }, - "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" - }, - "downloadLocation": "Ubicación de descarga", - "@downloadLocation": { - "description": "Setting for download folder" - }, - "downloadLocationSubtitle": "Elija dónde guardar los archivos", - "@downloadLocationSubtitle": { - "description": "Subtitle for download location" - }, - "downloadLocationDefault": "Ubicación predeterminada", - "@downloadLocationDefault": { - "description": "Shown when using default folder" - }, - "downloadDefaultService": "Servicio por defecto", - "@downloadDefaultService": { - "description": "Setting for preferred download service (Tidal/Qobuz/Amazon)" - }, - "downloadDefaultServiceSubtitle": "Servicio usado para descargas", - "@downloadDefaultServiceSubtitle": { - "description": "Subtitle for default service" - }, - "downloadDefaultQuality": "Calidad por defecto", - "@downloadDefaultQuality": { - "description": "Setting for audio quality" - }, - "downloadAskQuality": "Preguntar calidad antes de descargar", - "@downloadAskQuality": { - "description": "Toggle to show quality picker" - }, - "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" - }, - "downloadFolderOrganization": "Organización de carpetas", - "@downloadFolderOrganization": { - "description": "Setting for folder structure" - }, - "downloadSeparateSingles": "Separar Pistas", - "@downloadSeparateSingles": { - "description": "Toggle to separate single tracks" - }, - "downloadSeparateSinglesSubtitle": "Colocar pistas individuales en una carpeta separada", - "@downloadSeparateSinglesSubtitle": { - "description": "Subtitle for separate singles toggle" - }, - "qualityBest": "Mejor disponible", - "@qualityBest": { - "description": "Audio quality option - highest available" - }, - "qualityFlac": "FLAC", - "@qualityFlac": { - "description": "Audio quality option - FLAC lossless" - }, - "quality320": "320 kbps", - "@quality320": { - "description": "Audio quality option - 320kbps MP3" - }, - "quality128": "128 kbps", - "@quality128": { - "description": "Audio quality option - 128kbps MP3" - }, - "appearanceTitle": "Apariencia", - "@appearanceTitle": { - "description": "Appearance settings page title" - }, - "appearanceTheme": "Tema", - "@appearanceTheme": { - "description": "Theme mode setting" - }, - "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" - }, - "appearanceAccentColor": "Color Secundario", - "@appearanceAccentColor": { - "description": "Custom accent color picker" - }, - "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" - }, - "optionsSearchSource": "Buscar Fuente", - "@optionsSearchSource": { - "description": "Section for search provider settings" - }, - "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" - } - } - }, - "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" - }, - "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": "Tienda de extensiones", - "@optionsExtensionStore": { - "description": "Show/hide store tab" - }, - "optionsExtensionStoreSubtitle": "Mostrar pestaña de tienda en la navegación", - "@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": "Spotify search will be deprecated on March 3, 2026 due to Spotify API changes. Please switch to Deezer.", - "@optionsSpotifyDeprecationWarning": { - "description": "Warning about Spotify API deprecation" - }, - "extensionsTitle": "Extensiones", - "@extensionsTitle": { - "description": "Extensions page title" - }, - "extensionsInstalled": "Extensiones instaladas", - "@extensionsInstalled": { - "description": "Section header for installed extensions" - }, - "extensionsNone": "No hay extensiones instaladas", - "@extensionsNone": { - "description": "Empty state title" - }, - "extensionsNoneSubtitle": "Instalar extensiones desde la pestaña Tienda", - "@extensionsNoneSubtitle": { - "description": "Empty state subtitle" - }, - "extensionsEnabled": "Habilitado", - "@extensionsEnabled": { - "description": "Extension status - active" - }, - "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" - }, - "extensionsSetAsSearch": "Establecer como proveedor de búsqueda", - "@extensionsSetAsSearch": { - "description": "Use extension for search" - }, - "storeTitle": "Tienda de extensiones", - "@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" - }, - "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" - }, - "aboutSupport": "Soporte", - "@aboutSupport": { - "description": "Section for support/donation 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" - }, - "aboutDoubleDouble": "DoubleDouble", - "@aboutDoubleDouble": { - "description": "Name of Amazon API service - DO NOT TRANSLATE" - }, - "aboutDoubleDoubleDesc": "API increible para descargas de Amazon Music. ¡Gracias por hacerla gratis!", - "@aboutDoubleDoubleDesc": { - "description": "Credit for DoubleDouble API" - }, - "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": "Descarga pistas de Spotify con calidad sin pérdida de Tidal, Qobuz y Amazon Music.", - "@aboutAppDescription": { - "description": "App description in header card" - }, - "albumTitle": "Álbum", - "@albumTitle": { - "description": "Album screen title" - }, - "albumTracks": "{count, plural, one {}=1{1 pista} other{{count} pistas}}", - "@albumTracks": { - "description": "Album track count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "albumDownloadAll": "Descargar Todo", - "@albumDownloadAll": { - "description": "Button to download all tracks" - }, - "albumDownloadRemaining": "Descargas Restantes", - "@albumDownloadRemaining": { - "description": "Button to download remaining tracks" - }, - "playlistTitle": "Lista de reproducción", - "@playlistTitle": { - "description": "Playlist screen title" - }, - "artistTitle": "Artista", - "@artistTitle": { - "description": "Artist screen title" - }, - "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" - }, - "artistReleases": "{count, plural, one {}=1{1 lanzamiento} other{{count} lanzamientos}}", - "@artistReleases": { - "description": "Artist release count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "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" - } - } - }, - "trackMetadataTitle": "Información de pista", - "@trackMetadataTitle": { - "description": "Track metadata screen title" - }, - "trackMetadataArtist": "Artista", - "@trackMetadataArtist": { - "description": "Metadata field - artist name" - }, - "trackMetadataAlbum": "Álbum", - "@trackMetadataAlbum": { - "description": "Metadata field - album name" - }, - "trackMetadataDuration": "Duración", - "@trackMetadataDuration": { - "description": "Metadata field - track length" - }, - "trackMetadataQuality": "Calidad", - "@trackMetadataQuality": { - "description": "Metadata field - audio quality" - }, - "trackMetadataPath": "Ruta del archivo", - "@trackMetadataPath": { - "description": "Metadata field - file location" - }, - "trackMetadataDownloadedAt": "Descargado", - "@trackMetadataDownloadedAt": { - "description": "Metadata field - download date" - }, - "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" - }, - "trackMetadataRedownload": "Volver a descargar", - "@trackMetadataRedownload": { - "description": "Action button - download again" - }, - "trackMetadataOpenFolder": "Abrir carpeta", - "@trackMetadataOpenFolder": { - "description": "Action button - open containing folder" - }, - "setupTitle": "Bienvenido a SpotiFLAC", - "@setupTitle": { - "description": "Setup wizard title" - }, - "setupSubtitle": "Comencemos", - "@setupSubtitle": { - "description": "Setup wizard subtitle" - }, - "setupStoragePermission": "Permiso de almacenamiento", - "@setupStoragePermission": { - "description": "Storage permission step title" - }, - "setupStoragePermissionSubtitle": "Necesario para guardar los archivos descargados", - "@setupStoragePermissionSubtitle": { - "description": "Explanation for storage permission" - }, - "setupStoragePermissionGranted": "Permiso aprobado", - "@setupStoragePermissionGranted": { - "description": "Status when permission granted" - }, - "setupStoragePermissionDenied": "Permiso denegado", - "@setupStoragePermissionDenied": { - "description": "Status when permission denied" - }, - "setupGrantPermission": "Conceder permiso", - "@setupGrantPermission": { - "description": "Button to request permission" - }, - "setupDownloadLocation": "Ubicación de descarga", - "@setupDownloadLocation": { - "description": "Download folder step title" - }, - "setupChooseFolder": "Seleccionar Carpeta", - "@setupChooseFolder": { - "description": "Button to pick folder" - }, - "setupContinue": "Continuar", - "@setupContinue": { - "description": "Continue to next step button" - }, - "setupSkip": "Omitir por ahora", - "@setupSkip": { - "description": "Skip current step button" - }, - "setupStorageAccessRequired": "Acceso al almacenamiento requerido", - "@setupStorageAccessRequired": { - "description": "Title when storage access needed" - }, - "setupStorageAccessMessage": "SpotiFLAC necesita permiso de \"Todos los archivos de acceso\" para guardar los archivos de música en la carpeta elegida.", - "@setupStorageAccessMessage": { - "description": "Explanation for storage access" - }, - "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" - } - } - }, - "setupSelectDownloadFolder": "Seleccionar carpeta de descarga", - "@setupSelectDownloadFolder": { - "description": "Folder selection step title" - }, - "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" - }, - "setupStepStorage": "Almacenamiento", - "@setupStepStorage": { - "description": "Setup step indicator - storage" - }, - "setupStepNotification": "Notificación", - "@setupStepNotification": { - "description": "Setup step indicator - notification" - }, - "setupStepFolder": "Carpeta", - "@setupStepFolder": { - "description": "Setup step indicator - folder" - }, - "setupStepSpotify": "Spotify", - "@setupStepSpotify": { - "description": "Setup step indicator - Spotify API" - }, - "setupStepPermission": "Permiso", - "@setupStepPermission": { - "description": "Setup step indicator - permission" - }, - "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" - }, - "setupNotificationDescription": "Recibe notificaciones cuando las descargas completen o requieran atención.", - "@setupNotificationDescription": { - "description": "Explanation for notifications" - }, - "setupFolderSelected": "¡Carpeta de descarga seleccionada!", - "@setupFolderSelected": { - "description": "Success message for folder selection" - }, - "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" - }, - "setupChangeFolder": "Cambiar carpeta", - "@setupChangeFolder": { - "description": "Button to change selected folder" - }, - "setupSelectFolder": "Seleccionar Carpeta", - "@setupSelectFolder": { - "description": "Button to select folder" - }, - "setupSpotifyApiOptional": "API de Spotify (opcional)", - "@setupSpotifyApiOptional": { - "description": "Spotify API step title" - }, - "setupSpotifyApiDescription": "Añade tus credenciales de la API de Spotify para mejores resultados de búsqueda y acceso al contenido exclusivo de Spotify.", - "@setupSpotifyApiDescription": { - "description": "Explanation for Spotify API" - }, - "setupUseSpotifyApi": "Usar API de Spotify", - "@setupUseSpotifyApi": { - "description": "Toggle to enable Spotify API" - }, - "setupEnterCredentialsBelow": "Ingresa tus credenciales a continuación", - "@setupEnterCredentialsBelow": { - "description": "Prompt to enter credentials" - }, - "setupUsingDeezer": "Usando Deezer (no se necesita cuenta)", - "@setupUsingDeezer": { - "description": "Status when using Deezer" - }, - "setupEnterClientId": "Introduzca el ID de cliente de Spotify", - "@setupEnterClientId": { - "description": "Placeholder for client ID field" - }, - "setupEnterClientSecret": "Ingresa el Client Secret de Spotify", - "@setupEnterClientSecret": { - "description": "Placeholder for client secret field" - }, - "setupGetFreeCredentials": "Obtén tus credenciales gratuitas de la API desde el Spotify Developer Dashboard.", - "@setupGetFreeCredentials": { - "description": "Info about getting Spotify credentials" - }, - "setupEnableNotifications": "Activar notificaciones", - "@setupEnableNotifications": { - "description": "Button to enable notifications" - }, - "setupProceedToNextStep": "Ahora puedes continuar con el siguiente paso.", - "@setupProceedToNextStep": { - "description": "Message after completing a step" - }, - "setupNotificationProgressDescription": "Recibirás notificaciones de progreso de descargas.", - "@setupNotificationProgressDescription": { - "description": "Info about notification usage" - }, - "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" - }, - "setupBack": "Atrás", - "@setupBack": { - "description": "Back button text" - }, - "setupNext": "Siguiente", - "@setupNext": { - "description": "Next button text" - }, - "setupGetStarted": "Empezar", - "@setupGetStarted": { - "description": "Final setup button" - }, - "setupSkipAndStart": "Saltar y empezar", - "@setupSkipAndStart": { - "description": "Skip setup and start app" - }, - "setupAllowAccessToManageFiles": "Por favor, activa \"Permitir el acceso para gestionar todos los archivos\" en la siguiente pantalla.", - "@setupAllowAccessToManageFiles": { - "description": "Instruction for file access permission" - }, - "setupGetCredentialsFromSpotify": "Obtener credenciales de developer.spotify.com", - "@setupGetCredentialsFromSpotify": { - "description": "Link text for Spotify developer portal" - }, - "dialogCancel": "Cancelar", - "@dialogCancel": { - "description": "Dialog button - cancel action" - }, - "dialogOk": "Aceptar", - "@dialogOk": { - "description": "Dialog button - confirm/acknowledge" - }, - "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" - }, - "dialogClose": "Cerrar", - "@dialogClose": { - "description": "Dialog button - close dialog" - }, - "dialogYes": "Sí", - "@dialogYes": { - "description": "Dialog button - confirm yes" - }, - "dialogNo": "No", - "@dialogNo": { - "description": "Dialog button - confirm no" - }, - "dialogClear": "Borrar", - "@dialogClear": { - "description": "Dialog button - clear items" - }, - "dialogConfirm": "Confirmar", - "@dialogConfirm": { - "description": "Dialog button - confirm action" - }, - "dialogDone": "Hecho", - "@dialogDone": { - "description": "Dialog button - action completed" - }, - "dialogImport": "Importar", - "@dialogImport": { - "description": "Dialog button - import data" - }, - "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" - }, - "dialogDownloadFailed": "Descarga fallida", - "@dialogDownloadFailed": { - "description": "Dialog title - download error" - }, - "dialogTrackLabel": "Pista:", - "@dialogTrackLabel": { - "description": "Label for track name in error dialog" - }, - "dialogArtistLabel": "Artista:", - "@dialogArtistLabel": { - "description": "Label for artist name in error dialog" - }, - "dialogErrorLabel": "Error:", - "@dialogErrorLabel": { - "description": "Label for error message" - }, - "dialogClearAll": "Eliminar todo", - "@dialogClearAll": { - "description": "Dialog title - clear all items" - }, - "dialogClearAllDownloads": "¿Estás seguro de que quieres borrar todas las descargas?", - "@dialogClearAllDownloads": { - "description": "Dialog message - clear downloads confirmation" - }, - "dialogRemoveFromDevice": "¿Eliminar del dispositivo?", - "@dialogRemoveFromDevice": { - "description": "Dialog title - delete file confirmation" - }, - "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, one {}=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, one {}=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" - }, - "snackbarFailedToLoad": "Error al cargar: {error}", - "@snackbarFailedToLoad": { - "description": "Snackbar - loading error", - "placeholders": { - "error": { - "type": "String" - } - } - }, - "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" - }, - "errorFailedToLoad": "Error al cargar {item}", - "@errorFailedToLoad": { - "description": "Error message - loading failed", - "placeholders": { - "item": { - "type": "String", - "description": "Item that failed to load (album/playlist/etc)" - } - } - }, - "errorNoTracksFound": "No se encontraron pistas", - "@errorNoTracksFound": { - "description": "Error - search returned no results" - }, - "errorMissingExtensionSource": "No se puede cargar {item}: falta una fuente de extensión", - "@errorMissingExtensionSource": { - "description": "Error - extension source not available", - "placeholders": { - "item": { - "type": "String" - } - } - }, - "statusQueued": "En cola", - "@statusQueued": { - "description": "Download status - waiting in queue" - }, - "statusDownloading": "Descargando", - "@statusDownloading": { - "description": "Download status - in progress" - }, - "statusFinalizing": "Finalizando", - "@statusFinalizing": { - "description": "Download status - writing metadata" - }, - "statusCompleted": "Completado", - "@statusCompleted": { - "description": "Download status - finished" - }, - "statusFailed": "Error", - "@statusFailed": { - "description": "Download status - error occurred" - }, - "statusSkipped": "Omitido", - "@statusSkipped": { - "description": "Download status - already exists" - }, - "statusPaused": "Pausado", - "@statusPaused": { - "description": "Download status - paused" - }, - "actionPause": "Pausar", - "@actionPause": { - "description": "Action button - pause download" - }, - "actionResume": "Reanudar", - "@actionResume": { - "description": "Action button - resume download" - }, - "actionCancel": "Cancelar", - "@actionCancel": { - "description": "Action button - cancel operation" - }, - "actionStop": "Detener", - "@actionStop": { - "description": "Action button - stop operation" - }, - "actionSelect": "Seleccionar", - "@actionSelect": { - "description": "Action button - enter selection mode" - }, - "actionSelectAll": "Seleccionar Todo", - "@actionSelectAll": { - "description": "Action button - select all items" - }, - "actionDeselect": "Deseleccionar", - "@actionDeselect": { - "description": "Action button - deselect all" - }, - "actionPaste": "Pegar", - "@actionPaste": { - "description": "Action button - paste from clipboard" - }, - "actionImportCsv": "Importar CSV", - "@actionImportCsv": { - "description": "Action button - import CSV file" - }, - "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" - }, - "selectionTapToSelect": "Toca las pistas para seleccionar", - "@selectionTapToSelect": { - "description": "Hint - how to select items" - }, - "selectionDeleteTracks": "¡Eliminar {count} {count, plural, one {}=1{pista} other{pistas}}", - "@selectionDeleteTracks": { - "description": "Delete button with count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "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" - }, - "tooltipPlay": "Reproducir", - "@tooltipPlay": { - "description": "Tooltip - play button" - }, - "tooltipCancel": "Cancelar", - "@tooltipCancel": { - "description": "Tooltip - cancel button" - }, - "tooltipStop": "Detener", - "@tooltipStop": { - "description": "Tooltip - stop button" - }, - "tooltipRetry": "Volver a intentar", - "@tooltipRetry": { - "description": "Tooltip - retry button" - }, - "tooltipRemove": "Eliminar", - "@tooltipRemove": { - "description": "Tooltip - remove button" - }, - "tooltipClear": "Borrar", - "@tooltipClear": { - "description": "Tooltip - clear button" - }, - "tooltipPaste": "Pegar", - "@tooltipPaste": { - "description": "Tooltip - paste button" - }, - "filenameFormat": "Formato del nombre del archivo", - "@filenameFormat": { - "description": "Setting title - filename pattern" - }, - "filenameFormatPreview": "Vista previa: {preview}", - "@filenameFormatPreview": { - "description": "Preview of filename pattern", - "placeholders": { - "preview": { - "type": "String" - } - } - }, - "filenameAvailablePlaceholders": "Marcadores disponibles:", - "@filenameAvailablePlaceholders": { - "description": "Label for placeholder list" - }, - "filenameHint": "{artist} - {title}", - "@filenameHint": { - "description": "Default filename format hint" - }, - "folderOrganization": "Organización de carpetas", - "@folderOrganization": { - "description": "Setting title - folder structure" - }, - "folderOrganizationNone": "Ninguna organización", - "@folderOrganizationNone": { - "description": "Folder option - flat structure" - }, - "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" - }, - "updateNewVersion": "Versión {version} está disponible", - "@updateNewVersion": { - "description": "Update available message", - "placeholders": { - "version": { - "type": "String" - } - } - }, - "updateDownload": "Descargar", - "@updateDownload": { - "description": "Update button - download update" - }, - "updateLater": "Más tarde", - "@updateLater": { - "description": "Update button - dismiss" - }, - "updateChangelog": "Historial de cambios", - "@updateChangelog": { - "description": "Link to changelog" - }, - "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" - }, - "providerPriority": "Prioridad del proveedor", - "@providerPriority": { - "description": "Setting title - download provider order" - }, - "providerPrioritySubtitle": "Arrastre para reordenar los proveedores de descarga", - "@providerPrioritySubtitle": { - "description": "Subtitle for provider priority" - }, - "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" - }, - "providerBuiltIn": "Integrado", - "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" - }, - "providerExtension": "Extensión", - "@providerExtension": { - "description": "Label for extension-provided providers" - }, - "metadataProviderPriority": "Prioridad del proveedor de metadatos", - "@metadataProviderPriority": { - "description": "Setting title - metadata provider order" - }, - "metadataProviderPrioritySubtitle": "Orden usado al recuperar metadatos de la pista", - "@metadataProviderPrioritySubtitle": { - "description": "Subtitle for metadata priority" - }, - "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" - }, - "logCopy": "Copiar Registros", - "@logCopy": { - "description": "Action - copy logs to clipboard" - }, - "logClear": "Limpiar registros", - "@logClear": { - "description": "Action - delete all logs" - }, - "logShare": "Compartir Registros", - "@logShare": { - "description": "Action - share logs file" - }, - "logEmpty": "No hay registros aún", - "@logEmpty": { - "description": "Empty state 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" - }, - "logIspBlocking": "BLOQUEO POR EL ISP DETECTADO", - "@logIspBlocking": { - "description": "Error category - ISP blocking" - }, - "logRateLimited": "TASA LIMITADA", - "@logRateLimited": { - "description": "Error category - rate limiting" - }, - "logNetworkError": "ERROR DE RED", - "@logNetworkError": { - "description": "Error category - network issues" - }, - "logTrackNotFound": "PISTA NO ENCONTRADA", - "@logTrackNotFound": { - "description": "Error category - missing tracks" - }, - "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" - }, - "logIssueSummary": "Resumen de Incidencias", - "@logIssueSummary": { - "description": "Section header for error summary" - }, - "logIspBlockingDescription": "Tu ISP puede estar bloqueando el acceso a los servicios de descarga", - "@logIspBlockingDescription": { - "description": "ISP blocking explanation" - }, - "logIspBlockingSuggestion": "Intente usar una VPN o cambie el DNS a 1.1.1.1 o 8.8.8.8", - "@logIspBlockingSuggestion": { - "description": "ISP blocking fix suggestion" - }, - "logRateLimitedDescription": "Demasiadas solicitudes al servicio", - "@logRateLimitedDescription": { - "description": "Rate limit explanation" - }, - "logRateLimitedSuggestion": "Espere unos minutos antes de volver a intentarlo", - "@logRateLimitedSuggestion": { - "description": "Rate limit fix suggestion" - }, - "logNetworkErrorDescription": "Problemas de conexión detectados", - "@logNetworkErrorDescription": { - "description": "Network error explanation" - }, - "logNetworkErrorSuggestion": "Comprueba tu conexión a internet", - "@logNetworkErrorSuggestion": { - "description": "Network error fix suggestion" - }, - "logTrackNotFoundDescription": "No se pudieron encontrar algunas pistas en los servicios de descarga", - "@logTrackNotFoundDescription": { - "description": "Track not found explanation" - }, - "logTrackNotFoundSuggestion": "La pista puede no estar disponible en calidad sin pérdida", - "@logTrackNotFoundSuggestion": { - "description": "Track not found explanation" - }, - "logTotalErrors": "Total de errores: {count}", - "@logTotalErrors": { - "description": "Error count display", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "logAffected": "Afectado: {domains}", - "@logAffected": { - "description": "Affected domains display", - "placeholders": { - "domains": { - "type": "String" - } - } - }, - "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" - }, - "appearanceLanguageSubtitle": "Elija su idioma preferido", - "@appearanceLanguageSubtitle": { - "description": "Language setting subtitle" - }, - "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" - }, - "tracksHeader": "Pistas", - "@tracksHeader": { - "description": "Section header for track list" - }, - "downloadAllCount": "Descargar Todo ({count})", - "@downloadAllCount": { - "description": "Download all button with count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "tracksCount": "{count, plural, one {}=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" - }, - "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" - }, - "trackCannotOpen": "No se puede abrir: {message}", - "@trackCannotOpen": { - "description": "Error opening file", - "placeholders": { - "message": { - "type": "String" - } - } - }, - "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" - } - } - }, - "concurrentSequential": "Secuencial", - "@concurrentSequential": { - "description": "Download mode - one at a time" - }, - "concurrentParallel2": "2 simultáneamente", - "@concurrentParallel2": { - "description": "Download mode - 2 simultaneous" - }, - "concurrentParallel3": "3 simultáneamente", - "@concurrentParallel3": { - "description": "Download mode - 3 simultaneous" - }, - "tapToSeeError": "Pulse para ver los detalles del error", - "@tapToSeeError": { - "description": "Tooltip for failed download" - }, - "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" - }, - "storeNoResults": "No se encontraron extensiones", - "@storeNoResults": { - "description": "Empty state when no extensions match filters" - }, - "extensionProviderPriority": "Prioridad del proveedor", - "@extensionProviderPriority": { - "description": "Extension capability - provider priority" - }, - "extensionInstallButton": "Instalar extensión", - "@extensionInstallButton": { - "description": "Button to install extension" - }, - "extensionDefaultProvider": "Por defecto (Deezer/Spotify)", - "@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" - }, - "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" - }, - "qualityLossy": "Con pérdidas", - "@qualityLossy": { - "description": "Quality option - lossy format (MP3/Opus)" - }, - "qualityLossyMp3Subtitle": "MP3 320kbps (convertido desde FLAC)", - "@qualityLossyMp3Subtitle": { - "description": "Technical spec for lossy MP3" - }, - "qualityLossyOpusSubtitle": "Opus 128kbps (convertido de FLAC)", - "@qualityLossyOpusSubtitle": { - "description": "Technical spec for lossy Opus" - }, - "enableLossyOption": "Habilitar opción con pérdida", - "@enableLossyOption": { - "description": "Setting - enable lossy quality option" - }, - "enableLossyOptionSubtitleOn": "La opción de calidad con pérdida está disponible", - "@enableLossyOptionSubtitleOn": { - "description": "Subtitle when lossy is enabled" - }, - "enableLossyOptionSubtitleOff": "Descargas FLAC y luego se convierten en formato con pérdida", - "@enableLossyOptionSubtitleOff": { - "description": "Subtitle when lossy is disabled" - }, - "lossyFormat": "Formato con Perdido", - "@lossyFormat": { - "description": "Setting - choose lossy format" - }, - "lossyFormatDescription": "Elegir el formato con pérdida para la conversión", - "@lossyFormatDescription": { - "description": "Description for lossy format picker" - }, - "lossyFormatMp3Subtitle": "320kbps, mejor compatibilidad", - "@lossyFormatMp3Subtitle": { - "description": "MP3 format description" - }, - "lossyFormatOpusSubtitle": "128kbps, mejor calidad a menor tamaño", - "@lossyFormatOpusSubtitle": { - "description": "Opus format description" - }, - "qualityNote": "La calidad real depende de la disponibilidad de la pista del servicio", - "@qualityNote": { - "description": "Note about quality availability" - }, - "youtubeQualityNote": "YouTube provides lossy audio only. Not part of lossless fallback.", - "@youtubeQualityNote": { - "description": "Note for YouTube service explaining lossy-only quality" - }, - "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": "Use Album Artist for folders", - "@downloadUseAlbumArtistForFolders": { - "description": "Setting - choose whether artist folders use Album Artist or Track Artist" - }, - "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" - }, - "downloadUsePrimaryArtistOnly": "Primary artist only for folders", - "@downloadUsePrimaryArtistOnly": { - "description": "Setting - strip featured artists from folder name" - }, - "downloadUsePrimaryArtistOnlyEnabled": "Featured artists removed from folder name (e.g. Justin Bieber, Quavo → Justin Bieber)", - "@downloadUsePrimaryArtistOnlyEnabled": { - "description": "Subtitle when primary artist only is enabled" - }, - "downloadUsePrimaryArtistOnlyDisabled": "Full artist string used for folder name", - "@downloadUsePrimaryArtistOnlyDisabled": { - "description": "Subtitle when primary artist only is disabled" - }, - "downloadSaveFormat": "Guardar Formato", - "@downloadSaveFormat": { - "description": "Setting - output file format" - }, - "downloadSelectService": "Seleccionar Servicio", - "@downloadSelectService": { - "description": "Dialog title - choose download service" - }, - "downloadSelectQuality": "Seleccionar Calidad", - "@downloadSelectQuality": { - "description": "Dialog title - choose audio quality" - }, - "downloadFrom": "Descargar Desde", - "@downloadFrom": { - "description": "Label - download source" - }, - "downloadDefaultQualityLabel": "Calidad por Defecto", - "@downloadDefaultQualityLabel": { - "description": "Label - default quality setting" - }, - "downloadBestAvailable": "La mejor disponible", - "@downloadBestAvailable": { - "description": "Quality option - highest available" - }, - "folderNone": "Ninguna", - "@folderNone": { - "description": "Folder option - no organization" - }, - "folderNoneSubtitle": "Guardar todos los archivos directamente para descargar la carpeta", - "@folderNoneSubtitle": { - "description": "Subtitle for no folder organization" - }, - "folderArtist": "Artista", - "@folderArtist": { - "description": "Folder option - by artist" - }, - "folderArtistSubtitle": "Nombre del Artista/nombre de archivo", - "@folderArtistSubtitle": { - "description": "Folder structure example" - }, - "folderAlbum": "Álbum", - "@folderAlbum": { - "description": "Folder option - by album" - }, - "folderAlbumSubtitle": "Nombre del álbum/nombre de archivo", - "@folderAlbumSubtitle": { - "description": "Folder structure example" - }, - "folderArtistAlbum": "Artista/Álbum", - "@folderArtistAlbum": { - "description": "Folder option - nested" - }, - "folderArtistAlbumSubtitle": "Nombre del Artista/Nombre del Álbum/Nombre del Archivo", - "@folderArtistAlbumSubtitle": { - "description": "Folder structure example" - }, - "serviceTidal": "Tidal", - "@serviceTidal": { - "description": "Service name - DO NOT TRANSLATE" - }, - "serviceQobuz": "Qobuz", - "@serviceQobuz": { - "description": "Service name - DO NOT TRANSLATE" - }, - "serviceAmazon": "Amazon", - "@serviceAmazon": { - "description": "Service name - DO NOT TRANSLATE" - }, - "serviceDeezer": "Deezer", - "@serviceDeezer": { - "description": "Service name - DO NOT TRANSLATE" - }, - "serviceSpotify": "Spotify", - "@serviceSpotify": { - "description": "Service name - DO NOT TRANSLATE" - }, - "appearanceAmoledDark": "AMOLED Oscuro", - "@appearanceAmoledDark": { - "description": "Theme option - pure black" - }, - "appearanceAmoledDarkSubtitle": "Fondo negro puro", - "@appearanceAmoledDarkSubtitle": { - "description": "Subtitle for AMOLED dark" - }, - "appearanceChooseAccentColor": "Elegir color principal", - "@appearanceChooseAccentColor": { - "description": "Color picker dialog title" - }, - "appearanceChooseTheme": "Modo de tema", - "@appearanceChooseTheme": { - "description": "Theme picker dialog title" - }, - "queueTitle": "Descargas en proceso", - "@queueTitle": { - "description": "Queue screen title" - }, - "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" - }, - "queueExportFailed": "Exportar", - "@queueExportFailed": { - "description": "Button - export failed downloads to TXT" - }, - "queueExportFailedSuccess": "Descarga fallida exportada al archivo TXT", - "@queueExportFailedSuccess": { - "description": "Success message after exporting failed downloads" - }, - "queueExportFailedClear": "Limpieza Fallida", - "@queueExportFailedClear": { - "description": "Action to clear failed downloads after export" - }, - "queueExportFailedError": "Error al exportar descargas", - "@queueExportFailedError": { - "description": "Error message when export fails" - }, - "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" - }, - "queueEmpty": "No hay descargas en cola", - "@queueEmpty": { - "description": "Empty queue state title" - }, - "queueEmptySubtitle": "Añadir pistas desde la pantalla de inicio", - "@queueEmptySubtitle": { - "description": "Empty queue state subtitle" - }, - "queueClearCompleted": "Limpiar tareas finalizadas", - "@queueClearCompleted": { - "description": "Button - clear finished downloads" - }, - "queueDownloadFailed": "Descarga fallida", - "@queueDownloadFailed": { - "description": "Error dialog title" - }, - "queueTrackLabel": "Pista:", - "@queueTrackLabel": { - "description": "Label in error dialog" - }, - "queueArtistLabel": "Artista:", - "@queueArtistLabel": { - "description": "Label in error dialog" - }, - "queueErrorLabel": "Error:", - "@queueErrorLabel": { - "description": "Label in error dialog" - }, - "queueUnknownError": "Error desconocido", - "@queueUnknownError": { - "description": "Fallback error message" - }, - "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" - }, - "downloadedAlbumDeleteSelected": "Borrar Seleccionados", - "@downloadedAlbumDeleteSelected": { - "description": "Button - delete selected tracks" - }, - "downloadedAlbumDeleteMessage": "¿Eliminar {count} {count, plural, one {}=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" - } - } - }, - "downloadedAlbumTracksHeader": "Pistas", - "@downloadedAlbumTracksHeader": { - "description": "Section header for tracks" - }, - "downloadedAlbumDownloadedCount": "{count} descargado", - "@downloadedAlbumDownloadedCount": { - "description": "Downloaded tracks count badge", - "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, one {}=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" - } - } - }, - "utilityFunctions": "Funciones de utilidad", - "@utilityFunctions": { - "description": "Extension capability - utility functions" - }, - "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": "No recent items yet", - "@recentEmpty": { - "description": "Empty state text for recent access list" - }, - "recentShowAllDownloads": "Show All Downloads", - "@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" - } - } - }, - "errorGeneric": "Error: {message}", - "@errorGeneric": { - "description": "Generic error message format", - "placeholders": { - "message": { - "type": "String", - "description": "Error message" - } - } - }, - "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} tracks from {albumCount} singles", - "@discographySinglesOnlySubtitle": { - "description": "Subtitle showing singles tracks count", - "placeholders": { - "count": { - "type": "int" - }, - "albumCount": { - "type": "int" - } - } - }, - "discographySelectAlbums": "Select Albums...", - "@discographySelectAlbums": { - "description": "Option - manually select albums to download" - }, - "discographySelectAlbumsSubtitle": "Choose specific albums or singles", - "@discographySelectAlbumsSubtitle": { - "description": "Subtitle for select albums option" - }, - "discographyFetchingTracks": "Fetching tracks...", - "@discographyFetchingTracks": { - "description": "Progress - fetching album tracks" - }, - "discographyFetchingAlbum": "Fetching {current} of {total}...", - "@discographyFetchingAlbum": { - "description": "Progress - fetching specific album", - "placeholders": { - "current": { - "type": "int" - }, - "total": { - "type": "int" - } - } - }, - "discographySelectedCount": "{count} selected", - "@discographySelectedCount": { - "description": "Selection count badge", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "discographyDownloadSelected": "Download Selected", - "@discographyDownloadSelected": { - "description": "Button - download selected albums" - }, - "discographyAddedToQueue": "Added {count} tracks to queue", - "@discographyAddedToQueue": { - "description": "Snackbar - tracks added from discography", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "discographySkippedDownloaded": "{added} added, {skipped} already downloaded", - "@discographySkippedDownloaded": { - "description": "Snackbar - with skipped tracks count", - "placeholders": { - "added": { - "type": "int" - }, - "skipped": { - "type": "int" - } - } - }, - "discographyNoAlbums": "No albums available", - "@discographyNoAlbums": { - "description": "Error - no albums found for artist" - }, - "discographyFailedToFetch": "Failed to fetch some albums", - "@discographyFailedToFetch": { - "description": "Error - some albums failed to load" - }, - "sectionStorageAccess": "Storage Access", - "@sectionStorageAccess": { - "description": "Section header for storage access settings" - }, - "allFilesAccess": "All Files Access", - "@allFilesAccess": { - "description": "Toggle for MANAGE_EXTERNAL_STORAGE permission" - }, - "allFilesAccessEnabledSubtitle": "Can write to any folder", - "@allFilesAccessEnabledSubtitle": { - "description": "Subtitle when all files access is enabled" - }, - "allFilesAccessDisabledSubtitle": "Limited to media folders only", - "@allFilesAccessDisabledSubtitle": { - "description": "Subtitle when all files access is disabled" - }, - "allFilesAccessDescription": "Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.", - "@allFilesAccessDescription": { - "description": "Description explaining when to enable all files access" - }, - "allFilesAccessDeniedMessage": "Permission was denied. Please enable 'All files access' manually in system settings.", - "@allFilesAccessDeniedMessage": { - "description": "Message when permission is permanently denied" - }, - "allFilesAccessDisabledMessage": "All Files Access disabled. The app will use limited storage access.", - "@allFilesAccessDisabledMessage": { - "description": "Snackbar message when user disables all files access" - }, - "settingsLocalLibrary": "Local Library", - "@settingsLocalLibrary": { - "description": "Settings menu item - local library" - }, - "settingsLocalLibrarySubtitle": "Scan music & detect duplicates", - "@settingsLocalLibrarySubtitle": { - "description": "Subtitle for local library settings" - }, - "settingsCache": "Storage & Cache", - "@settingsCache": { - "description": "Settings menu item - cache management" - }, - "settingsCacheSubtitle": "View size and clear cached data", - "@settingsCacheSubtitle": { - "description": "Subtitle for cache management menu" - }, - "libraryTitle": "Local Library", - "@libraryTitle": { - "description": "Library settings page title" - }, - "libraryStatus": "Library Status", - "@libraryStatus": { - "description": "Section header for library status" - }, - "libraryScanSettings": "Scan Settings", - "@libraryScanSettings": { - "description": "Section header for scan settings" - }, - "libraryEnableLocalLibrary": "Enable Local Library", - "@libraryEnableLocalLibrary": { - "description": "Toggle to enable library scanning" - }, - "libraryEnableLocalLibrarySubtitle": "Scan and track your existing music", - "@libraryEnableLocalLibrarySubtitle": { - "description": "Subtitle for enable toggle" - }, - "libraryFolder": "Library Folder", - "@libraryFolder": { - "description": "Folder selection setting" - }, - "libraryFolderHint": "Tap to select folder", - "@libraryFolderHint": { - "description": "Placeholder when no folder selected" - }, - "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" - }, - "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" - }, - "libraryTracksCount": "{count} tracks", - "@libraryTracksCount": { - "description": "Track count in library", - "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" - }, - "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" - }, - "libraryFilterDate": "Date Added", - "@libraryFilterDate": { - "description": "Filter section - date range" - }, - "libraryFilterDateToday": "Today", - "@libraryFilterDateToday": { - "description": "Filter option - today only" - }, - "libraryFilterDateWeek": "This Week", - "@libraryFilterDateWeek": { - "description": "Filter option - this week" - }, - "libraryFilterDateMonth": "This Month", - "@libraryFilterDateMonth": { - "description": "Filter option - this month" - }, - "libraryFilterDateYear": "This Year", - "@libraryFilterDateYear": { - "description": "Filter option - this year" - }, - "libraryFilterSort": "Sort", - "@libraryFilterSort": { - "description": "Filter section - sort order" - }, - "libraryFilterSortLatest": "Latest", - "@libraryFilterSortLatest": { - "description": "Sort option - newest first" - }, - "libraryFilterSortOldest": "Oldest", - "@libraryFilterSortOldest": { - "description": "Sort option - oldest first" - }, - "libraryFilterActive": "{count} filter(s) active", - "@libraryFilterActive": { - "description": "Badge showing number of active filters", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "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" - } - } - }, - "storageSwitchTitle": "Switch Storage Mode", - "@storageSwitchTitle": { - "description": "Dialog title when switching storage mode" - }, - "storageSwitchToSafTitle": "Switch to SAF Storage?", - "@storageSwitchToSafTitle": { - "description": "Dialog title when switching to SAF" - }, - "storageSwitchToAppTitle": "Switch to App Storage?", - "@storageSwitchToAppTitle": { - "description": "Dialog title when switching to app storage" - }, - "storageSwitchToSafMessage": "Your existing downloads will remain in the current location and stay accessible.\n\nNew downloads will be saved to your selected SAF folder.", - "@storageSwitchToSafMessage": { - "description": "Explanation when switching to SAF" - }, - "storageSwitchToAppMessage": "Your existing downloads will remain in the current SAF location and stay accessible.\n\nNew downloads will be saved to Music/SpotiFLAC folder.", - "@storageSwitchToAppMessage": { - "description": "Explanation when switching to app storage" - }, - "storageSwitchExistingDownloads": "Existing Downloads", - "@storageSwitchExistingDownloads": { - "description": "Section header for existing downloads info" - }, - "storageSwitchExistingDownloadsInfo": "{count} tracks in {mode} storage", - "@storageSwitchExistingDownloadsInfo": { - "description": "Info about existing downloads count", - "placeholders": { - "count": { - "type": "int" - }, - "mode": { - "type": "String" - } - } - }, - "storageSwitchNewDownloads": "New Downloads", - "@storageSwitchNewDownloads": { - "description": "Section header for new downloads info" - }, - "storageSwitchNewDownloadsLocation": "Will be saved to: {location}", - "@storageSwitchNewDownloadsLocation": { - "description": "Shows where new downloads will go", - "placeholders": { - "location": { - "type": "String" - } - } - }, - "storageSwitchContinue": "Continue", - "@storageSwitchContinue": { - "description": "Button to proceed with storage switch" - }, - "storageSwitchSelectFolder": "Select SAF Folder", - "@storageSwitchSelectFolder": { - "description": "Button to select SAF folder" - }, - "storageAppStorage": "App Storage", - "@storageAppStorage": { - "description": "Label for app storage mode" - }, - "storageSafStorage": "SAF Storage", - "@storageSafStorage": { - "description": "Label for SAF storage mode" - }, - "storageModeBadge": "Storage: {mode}", - "@storageModeBadge": { - "description": "Badge showing storage mode for a track", - "placeholders": { - "mode": { - "type": "String" - } - } - }, - "storageStatsTitle": "Storage Statistics", - "@storageStatsTitle": { - "description": "Section title for storage stats" - }, - "storageStatsAppCount": "{count} tracks in App Storage", - "@storageStatsAppCount": { - "description": "Count of tracks in app storage", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "storageStatsSafCount": "{count} tracks in SAF Storage", - "@storageStatsSafCount": { - "description": "Count of tracks in SAF storage", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "storageModeInfo": "Your files are stored in multiple locations", - "@storageModeInfo": { - "description": "Info when user has files in both storage modes" - }, - "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 Amazon Music", - "@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" - }, - "tutorialSearchTip1": "Paste a Spotify or Deezer URL directly in the search box", - "@tutorialSearchTip1": { - "description": "Tutorial search tip 1" - }, - "tutorialSearchTip2": "Or type the song name, artist, or album to search", - "@tutorialSearchTip2": { - "description": "Tutorial search tip 2" - }, - "tutorialSearchTip3": "Supports tracks, albums, playlists, and artist pages", - "@tutorialSearchTip3": { - "description": "Tutorial search tip 3" - }, - "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" - }, - "tutorialDownloadTip1": "Tap the download button next to any track to start downloading", - "@tutorialDownloadTip1": { - "description": "Tutorial download tip 1" - }, - "tutorialDownloadTip2": "Choose your preferred quality (FLAC, Hi-Res, or MP3)", - "@tutorialDownloadTip2": { - "description": "Tutorial download tip 2" - }, - "tutorialDownloadTip3": "Download entire albums or playlists with one tap", - "@tutorialDownloadTip3": { - "description": "Tutorial download tip 3" - }, - "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 Store 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" - }, - "tutorialExample": "EXAMPLE", - "@tutorialExample": { - "description": "Example label in tutorial" - }, - "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 Metadata", - "@trackReEnrich": { - "description": "Menu action - re-embed metadata into audio file" - }, - "trackReEnrichSubtitle": "Re-embed metadata without re-downloading", - "@trackReEnrichSubtitle": { - "description": "Subtitle for re-enrich metadata action" - }, - "trackReEnrichOnlineSubtitle": "Search metadata online and embed into file", - "@trackReEnrichOnlineSubtitle": { - "description": "Subtitle for re-enrich metadata action for local items" - }, - "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" - }, - "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 or Opus", - "@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" - } - } - }, - "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" - } -} \ No newline at end of file diff --git a/lib/l10n/arb/app_es_ES.arb b/lib/l10n/arb/app_es_ES.arb index 8983f074..8f9268df 100644 --- a/lib/l10n/arb/app_es_ES.arb +++ b/lib/l10n/arb/app_es_ES.arb @@ -13,9 +13,13 @@ "@navHome": { "description": "Bottom navigation - Home tab" }, + "navLibrary": "Biblioteca", + "@navLibrary": { + "description": "Bottom navigation - Library tab" + }, "navHistory": "Historial", "@navHistory": { - "description": "Bottom navigation - History tab" + "description": "Bottom navigation - History tab (legacy)" }, "navSettings": "Ajustes", "@navSettings": { @@ -85,7 +89,7 @@ "@historyFilterSingles": { "description": "Filter chip - show singles only" }, - "historyTracksCount": "{count, plural, =1{1 pista} other{{count} pistas}}", + "historyTracksCount": "{count, plural, one {}=1{1 pista} other{{count} pistas}}", "@historyTracksCount": { "description": "Track count with plural form", "placeholders": { @@ -94,7 +98,7 @@ } } }, - "historyAlbumsCount": "{count, plural, =1{1 álbum} other{{count} álbumes}}", + "historyAlbumsCount": "{count, plural, one {}=1{1 álbum} other{{count} álbumes}}", "@historyAlbumsCount": { "description": "Album count with plural form", "placeholders": { @@ -127,6 +131,10 @@ "@historyNoSinglesSubtitle": { "description": "Empty state subtitle for singles filter" }, + "historySearchHint": "Buscar en historial...", + "@historySearchHint": { + "description": "Search bar placeholder in history" + }, "settingsTitle": "Ajustes", "@settingsTitle": { "description": "Settings screen title" @@ -422,6 +430,10 @@ "@optionsSpotifyWarning": { "description": "Info about Spotify API requirement" }, + "optionsSpotifyDeprecationWarning": "Spotify search will be deprecated on March 3, 2026 due to Spotify API changes. Please switch to Deezer.", + "@optionsSpotifyDeprecationWarning": { + "description": "Warning about Spotify API deprecation" + }, "extensionsTitle": "Extensiones", "@extensionsTitle": { "description": "Extensions page title" @@ -512,6 +524,10 @@ "@aboutLogoArtist": { "description": "Role description for logo artist" }, + "aboutTranslators": "Traductores", + "@aboutTranslators": { + "description": "Section for translators" + }, "aboutSpecialThanks": "Agradecimientos especiales", "@aboutSpecialThanks": { "description": "Section for special thanks" @@ -544,6 +560,26 @@ "@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" + }, "aboutSupport": "Soporte", "@aboutSupport": { "description": "Section for support/donation links" @@ -564,6 +600,10 @@ "@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" + }, "aboutDoubleDouble": "DoubleDouble", "@aboutDoubleDouble": { "description": "Name of Amazon API service - DO NOT TRANSLATE" @@ -580,6 +620,14 @@ "@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": "Descarga pistas de Spotify con calidad sin pérdida de Tidal, Qobuz y Amazon Music.", "@aboutAppDescription": { "description": "App description in header card" @@ -588,7 +636,7 @@ "@albumTitle": { "description": "Album screen title" }, - "albumTracks": "{count, plural, =1{1 pista} other{{count} pistas}}", + "albumTracks": "{count, plural, one {}=1{1 pista} other{{count} pistas}}", "@albumTracks": { "description": "Album track count", "placeholders": { @@ -625,7 +673,7 @@ "@artistCompilations": { "description": "Section header for compilations" }, - "artistReleases": "{count, plural, =1{1 lanzamiento} other{{count} lanzamientos}}", + "artistReleases": "{count, plural, one {}=1{1 lanzamiento} other{{count} lanzamientos}}", "@artistReleases": { "description": "Artist release count", "placeholders": { @@ -827,6 +875,10 @@ "@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" @@ -1100,7 +1152,7 @@ "@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": "¿Eliminar {count} {count, plural, one {}=1{pista} other{pistas}} del historial?\n\nEsto también eliminará los archivos del almacenamiento.", "@dialogDeleteSelectedMessage": { "description": "Dialog message - delete selected tracks", "placeholders": { @@ -1114,6 +1166,15 @@ "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": { @@ -1149,6 +1210,15 @@ } } }, + "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" @@ -1161,7 +1231,7 @@ "@snackbarCredentialsCleared": { "description": "Snackbar - Spotify credentials removed" }, - "snackbarDeletedTracks": "Eliminado {count} {count, plural, =1{pista} other{pistas}}", + "snackbarDeletedTracks": "Eliminado {count} {count, plural, one {}=1{pista} other{pistas}}", "@snackbarDeletedTracks": { "description": "Snackbar - tracks deleted", "placeholders": { @@ -1368,7 +1438,7 @@ "@selectionTapToSelect": { "description": "Hint - how to select items" }, - "selectionDeleteTracks": "¡Eliminar {count} {count, plural, =1{pista} other{pistas}}", + "selectionDeleteTracks": "¡Eliminar {count} {count, plural, one {}=1{pista} other{pistas}}", "@selectionDeleteTracks": { "description": "Delete button with count", "placeholders": { @@ -1843,6 +1913,42 @@ "@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" @@ -1908,7 +2014,7 @@ } } }, - "tracksCount": "{count, plural, =1{1 pista} other{{count} pistas}}", + "tracksCount": "{count, plural, one {}=1{1 pista} other{{count} pistas}}", "@tracksCount": { "description": "Track count display", "placeholders": { @@ -1989,6 +2095,18 @@ "@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" @@ -2009,6 +2127,18 @@ "@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" @@ -2320,10 +2450,54 @@ "@qualityHiResFlacMaxSubtitle": { "description": "Technical spec for hi-res max" }, + "qualityLossy": "Con pérdidas", + "@qualityLossy": { + "description": "Quality option - lossy format (MP3/Opus)" + }, + "qualityLossyMp3Subtitle": "MP3 320kbps (convertido desde FLAC)", + "@qualityLossyMp3Subtitle": { + "description": "Technical spec for lossy MP3" + }, + "qualityLossyOpusSubtitle": "Opus 128kbps (convertido de FLAC)", + "@qualityLossyOpusSubtitle": { + "description": "Technical spec for lossy Opus" + }, + "enableLossyOption": "Habilitar opción con pérdida", + "@enableLossyOption": { + "description": "Setting - enable lossy quality option" + }, + "enableLossyOptionSubtitleOn": "La opción de calidad con pérdida está disponible", + "@enableLossyOptionSubtitleOn": { + "description": "Subtitle when lossy is enabled" + }, + "enableLossyOptionSubtitleOff": "Descargas FLAC y luego se convierten en formato con pérdida", + "@enableLossyOptionSubtitleOff": { + "description": "Subtitle when lossy is disabled" + }, + "lossyFormat": "Formato con Perdido", + "@lossyFormat": { + "description": "Setting - choose lossy format" + }, + "lossyFormatDescription": "Elegir el formato con pérdida para la conversión", + "@lossyFormatDescription": { + "description": "Description for lossy format picker" + }, + "lossyFormatMp3Subtitle": "320kbps, mejor compatibilidad", + "@lossyFormatMp3Subtitle": { + "description": "MP3 format description" + }, + "lossyFormatOpusSubtitle": "128kbps, mejor calidad a menor tamaño", + "@lossyFormatOpusSubtitle": { + "description": "Opus format description" + }, "qualityNote": "La calidad real depende de la disponibilidad de la pista del servicio", "@qualityNote": { "description": "Note about quality availability" }, + "youtubeQualityNote": "YouTube provides lossy audio only. Not part of lossless fallback.", + "@youtubeQualityNote": { + "description": "Note for YouTube service explaining lossy-only quality" + }, "downloadAskBeforeDownload": "Preguntar antes de descargar", "@downloadAskBeforeDownload": { "description": "Setting - show quality picker" @@ -2340,6 +2514,30 @@ "@downloadAlbumFolderStructure": { "description": "Setting - album folder organization" }, + "downloadUseAlbumArtistForFolders": "Use Album Artist for folders", + "@downloadUseAlbumArtistForFolders": { + "description": "Setting - choose whether artist folders use Album Artist or Track Artist" + }, + "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" + }, + "downloadUsePrimaryArtistOnly": "Primary artist only for folders", + "@downloadUsePrimaryArtistOnly": { + "description": "Setting - strip featured artists from folder name" + }, + "downloadUsePrimaryArtistOnlyEnabled": "Featured artists removed from folder name (e.g. Justin Bieber, Quavo → Justin Bieber)", + "@downloadUsePrimaryArtistOnlyEnabled": { + "description": "Subtitle when primary artist only is enabled" + }, + "downloadUsePrimaryArtistOnlyDisabled": "Full artist string used for folder name", + "@downloadUsePrimaryArtistOnlyDisabled": { + "description": "Subtitle when primary artist only is disabled" + }, "downloadSaveFormat": "Guardar Formato", "@downloadSaveFormat": { "description": "Setting - output file format" @@ -2444,6 +2642,46 @@ "@queueClearAllMessage": { "description": "Clear queue confirmation" }, + "queueExportFailed": "Exportar", + "@queueExportFailed": { + "description": "Button - export failed downloads to TXT" + }, + "queueExportFailedSuccess": "Descarga fallida exportada al archivo TXT", + "@queueExportFailedSuccess": { + "description": "Success message after exporting failed downloads" + }, + "queueExportFailedClear": "Limpieza Fallida", + "@queueExportFailedClear": { + "description": "Action to clear failed downloads after export" + }, + "queueExportFailedError": "Error al exportar descargas", + "@queueExportFailedError": { + "description": "Error message when export fails" + }, + "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" + }, "queueEmpty": "No hay descargas en cola", "@queueEmpty": { "description": "Empty queue state title" @@ -2508,11 +2746,19 @@ "@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" + }, "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": "¿Eliminar {count} {count, plural, one {}=1{pista} other{pistas}} del historial?\n\nEsto también eliminará los archivos del almacenamiento.", "@downloadedAlbumDeleteMessage": { "description": "Delete confirmation with count", "placeholders": { @@ -2551,7 +2797,7 @@ "@downloadedAlbumTapToSelect": { "description": "Selection hint" }, - "downloadedAlbumDeleteCount": "¡Eliminar {count} {count, plural, =1{pista} other{pistas}}", + "downloadedAlbumDeleteCount": "¡Eliminar {count} {count, plural, one {}=1{pista} other{pistas}}", "@downloadedAlbumDeleteCount": { "description": "Delete button text with count", "placeholders": { @@ -2564,6 +2810,16 @@ "@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" + } + } + }, "utilityFunctions": "Funciones de utilidad", "@utilityFunctions": { "description": "Extension capability - utility functions" @@ -2584,6 +2840,14 @@ "@recentTypePlaylist": { "description": "Recent access item type - playlist" }, + "recentEmpty": "No recent items yet", + "@recentEmpty": { + "description": "Empty state text for recent access list" + }, + "recentShowAllDownloads": "Show All Downloads", + "@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", @@ -2603,5 +2867,1006 @@ "description": "Error message" } } + }, + "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} tracks from {albumCount} singles", + "@discographySinglesOnlySubtitle": { + "description": "Subtitle showing singles tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySelectAlbums": "Select Albums...", + "@discographySelectAlbums": { + "description": "Option - manually select albums to download" + }, + "discographySelectAlbumsSubtitle": "Choose specific albums or singles", + "@discographySelectAlbumsSubtitle": { + "description": "Subtitle for select albums option" + }, + "discographyFetchingTracks": "Fetching tracks...", + "@discographyFetchingTracks": { + "description": "Progress - fetching album tracks" + }, + "discographyFetchingAlbum": "Fetching {current} of {total}...", + "@discographyFetchingAlbum": { + "description": "Progress - fetching specific album", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "discographySelectedCount": "{count} selected", + "@discographySelectedCount": { + "description": "Selection count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographyDownloadSelected": "Download Selected", + "@discographyDownloadSelected": { + "description": "Button - download selected albums" + }, + "discographyAddedToQueue": "Added {count} tracks to queue", + "@discographyAddedToQueue": { + "description": "Snackbar - tracks added from discography", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographySkippedDownloaded": "{added} added, {skipped} already downloaded", + "@discographySkippedDownloaded": { + "description": "Snackbar - with skipped tracks count", + "placeholders": { + "added": { + "type": "int" + }, + "skipped": { + "type": "int" + } + } + }, + "discographyNoAlbums": "No albums available", + "@discographyNoAlbums": { + "description": "Error - no albums found for artist" + }, + "discographyFailedToFetch": "Failed to fetch some albums", + "@discographyFailedToFetch": { + "description": "Error - some albums failed to load" + }, + "sectionStorageAccess": "Storage Access", + "@sectionStorageAccess": { + "description": "Section header for storage access settings" + }, + "allFilesAccess": "All Files Access", + "@allFilesAccess": { + "description": "Toggle for MANAGE_EXTERNAL_STORAGE permission" + }, + "allFilesAccessEnabledSubtitle": "Can write to any folder", + "@allFilesAccessEnabledSubtitle": { + "description": "Subtitle when all files access is enabled" + }, + "allFilesAccessDisabledSubtitle": "Limited to media folders only", + "@allFilesAccessDisabledSubtitle": { + "description": "Subtitle when all files access is disabled" + }, + "allFilesAccessDescription": "Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.", + "@allFilesAccessDescription": { + "description": "Description explaining when to enable all files access" + }, + "allFilesAccessDeniedMessage": "Permission was denied. Please enable 'All files access' manually in system settings.", + "@allFilesAccessDeniedMessage": { + "description": "Message when permission is permanently denied" + }, + "allFilesAccessDisabledMessage": "All Files Access disabled. The app will use limited storage access.", + "@allFilesAccessDisabledMessage": { + "description": "Snackbar message when user disables all files access" + }, + "settingsLocalLibrary": "Local Library", + "@settingsLocalLibrary": { + "description": "Settings menu item - local library" + }, + "settingsLocalLibrarySubtitle": "Scan music & detect duplicates", + "@settingsLocalLibrarySubtitle": { + "description": "Subtitle for local library settings" + }, + "settingsCache": "Storage & Cache", + "@settingsCache": { + "description": "Settings menu item - cache management" + }, + "settingsCacheSubtitle": "View size and clear cached data", + "@settingsCacheSubtitle": { + "description": "Subtitle for cache management menu" + }, + "libraryTitle": "Local Library", + "@libraryTitle": { + "description": "Library settings page title" + }, + "libraryStatus": "Library Status", + "@libraryStatus": { + "description": "Section header for library status" + }, + "libraryScanSettings": "Scan Settings", + "@libraryScanSettings": { + "description": "Section header for scan settings" + }, + "libraryEnableLocalLibrary": "Enable Local Library", + "@libraryEnableLocalLibrary": { + "description": "Toggle to enable library scanning" + }, + "libraryEnableLocalLibrarySubtitle": "Scan and track your existing music", + "@libraryEnableLocalLibrarySubtitle": { + "description": "Subtitle for enable toggle" + }, + "libraryFolder": "Library Folder", + "@libraryFolder": { + "description": "Folder selection setting" + }, + "libraryFolderHint": "Tap to select folder", + "@libraryFolderHint": { + "description": "Placeholder when no folder selected" + }, + "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" + }, + "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" + }, + "libraryTracksCount": "{count} tracks", + "@libraryTracksCount": { + "description": "Track count in library", + "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" + }, + "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" + }, + "libraryFilterDate": "Date Added", + "@libraryFilterDate": { + "description": "Filter section - date range" + }, + "libraryFilterDateToday": "Today", + "@libraryFilterDateToday": { + "description": "Filter option - today only" + }, + "libraryFilterDateWeek": "This Week", + "@libraryFilterDateWeek": { + "description": "Filter option - this week" + }, + "libraryFilterDateMonth": "This Month", + "@libraryFilterDateMonth": { + "description": "Filter option - this month" + }, + "libraryFilterDateYear": "This Year", + "@libraryFilterDateYear": { + "description": "Filter option - this year" + }, + "libraryFilterSort": "Sort", + "@libraryFilterSort": { + "description": "Filter section - sort order" + }, + "libraryFilterSortLatest": "Latest", + "@libraryFilterSortLatest": { + "description": "Sort option - newest first" + }, + "libraryFilterSortOldest": "Oldest", + "@libraryFilterSortOldest": { + "description": "Sort option - oldest first" + }, + "libraryFilterActive": "{count} filter(s) active", + "@libraryFilterActive": { + "description": "Badge showing number of active filters", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "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" + } + } + }, + "storageSwitchTitle": "Switch Storage Mode", + "@storageSwitchTitle": { + "description": "Dialog title when switching storage mode" + }, + "storageSwitchToSafTitle": "Switch to SAF Storage?", + "@storageSwitchToSafTitle": { + "description": "Dialog title when switching to SAF" + }, + "storageSwitchToAppTitle": "Switch to App Storage?", + "@storageSwitchToAppTitle": { + "description": "Dialog title when switching to app storage" + }, + "storageSwitchToSafMessage": "Your existing downloads will remain in the current location and stay accessible.\n\nNew downloads will be saved to your selected SAF folder.", + "@storageSwitchToSafMessage": { + "description": "Explanation when switching to SAF" + }, + "storageSwitchToAppMessage": "Your existing downloads will remain in the current SAF location and stay accessible.\n\nNew downloads will be saved to Music/SpotiFLAC folder.", + "@storageSwitchToAppMessage": { + "description": "Explanation when switching to app storage" + }, + "storageSwitchExistingDownloads": "Existing Downloads", + "@storageSwitchExistingDownloads": { + "description": "Section header for existing downloads info" + }, + "storageSwitchExistingDownloadsInfo": "{count} tracks in {mode} storage", + "@storageSwitchExistingDownloadsInfo": { + "description": "Info about existing downloads count", + "placeholders": { + "count": { + "type": "int" + }, + "mode": { + "type": "String" + } + } + }, + "storageSwitchNewDownloads": "New Downloads", + "@storageSwitchNewDownloads": { + "description": "Section header for new downloads info" + }, + "storageSwitchNewDownloadsLocation": "Will be saved to: {location}", + "@storageSwitchNewDownloadsLocation": { + "description": "Shows where new downloads will go", + "placeholders": { + "location": { + "type": "String" + } + } + }, + "storageSwitchContinue": "Continue", + "@storageSwitchContinue": { + "description": "Button to proceed with storage switch" + }, + "storageSwitchSelectFolder": "Select SAF Folder", + "@storageSwitchSelectFolder": { + "description": "Button to select SAF folder" + }, + "storageAppStorage": "App Storage", + "@storageAppStorage": { + "description": "Label for app storage mode" + }, + "storageSafStorage": "SAF Storage", + "@storageSafStorage": { + "description": "Label for SAF storage mode" + }, + "storageModeBadge": "Storage: {mode}", + "@storageModeBadge": { + "description": "Badge showing storage mode for a track", + "placeholders": { + "mode": { + "type": "String" + } + } + }, + "storageStatsTitle": "Storage Statistics", + "@storageStatsTitle": { + "description": "Section title for storage stats" + }, + "storageStatsAppCount": "{count} tracks in App Storage", + "@storageStatsAppCount": { + "description": "Count of tracks in app storage", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "storageStatsSafCount": "{count} tracks in SAF Storage", + "@storageStatsSafCount": { + "description": "Count of tracks in SAF storage", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "storageModeInfo": "Your files are stored in multiple locations", + "@storageModeInfo": { + "description": "Info when user has files in both storage modes" + }, + "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 Amazon Music", + "@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" + }, + "tutorialSearchTip1": "Paste a Spotify or Deezer URL directly in the search box", + "@tutorialSearchTip1": { + "description": "Tutorial search tip 1" + }, + "tutorialSearchTip2": "Or type the song name, artist, or album to search", + "@tutorialSearchTip2": { + "description": "Tutorial search tip 2" + }, + "tutorialSearchTip3": "Supports tracks, albums, playlists, and artist pages", + "@tutorialSearchTip3": { + "description": "Tutorial search tip 3" + }, + "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" + }, + "tutorialDownloadTip1": "Tap the download button next to any track to start downloading", + "@tutorialDownloadTip1": { + "description": "Tutorial download tip 1" + }, + "tutorialDownloadTip2": "Choose your preferred quality (FLAC, Hi-Res, or MP3)", + "@tutorialDownloadTip2": { + "description": "Tutorial download tip 2" + }, + "tutorialDownloadTip3": "Download entire albums or playlists with one tap", + "@tutorialDownloadTip3": { + "description": "Tutorial download tip 3" + }, + "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 Store 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" + }, + "tutorialExample": "EXAMPLE", + "@tutorialExample": { + "description": "Example label in tutorial" + }, + "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 Metadata", + "@trackReEnrich": { + "description": "Menu action - re-embed metadata into audio file" + }, + "trackReEnrichSubtitle": "Re-embed metadata without re-downloading", + "@trackReEnrichSubtitle": { + "description": "Subtitle for re-enrich metadata action" + }, + "trackReEnrichOnlineSubtitle": "Search metadata online and embed into file", + "@trackReEnrichOnlineSubtitle": { + "description": "Subtitle for re-enrich metadata action for local items" + }, + "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" + }, + "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 or Opus", + "@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" + } + } + }, + "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" } } \ No newline at end of file diff --git a/lib/l10n/arb/app_pt-PT.arb b/lib/l10n/arb/app_pt-PT.arb deleted file mode 100644 index 36f63790..00000000 --- a/lib/l10n/arb/app_pt-PT.arb +++ /dev/null @@ -1,3872 +0,0 @@ -{ - "@@locale": "pt-PT", - "@@last_modified": "2026-01-16", - "appName": "SpotiFLAC", - "@appName": { - "description": "App name - DO NOT TRANSLATE" - }, - "appDescription": "Baixe faixas do Spotify em qualidade sem perdas de Tidal, Qobuz e Amazon Music.", - "@appDescription": { - "description": "App description shown in about page" - }, - "navHome": "Início", - "@navHome": { - "description": "Bottom navigation - Home tab" - }, - "navLibrary": "Library", - "@navLibrary": { - "description": "Bottom navigation - Library tab" - }, - "navHistory": "Histórico", - "@navHistory": { - "description": "Bottom navigation - History tab (legacy)" - }, - "navSettings": "Configurações", - "@navSettings": { - "description": "Bottom navigation - Settings tab" - }, - "navStore": "Loja", - "@navStore": { - "description": "Bottom navigation - Extension store tab" - }, - "homeTitle": "Início", - "@homeTitle": { - "description": "Home screen title" - }, - "homeSearchHint": "Pesquise ou cole a URL do Spotify...", - "@homeSearchHint": { - "description": "Placeholder text in search box" - }, - "homeSearchHintExtension": "Pesquisar com {extensionName}...", - "@homeSearchHintExtension": { - "description": "Placeholder when extension search is active", - "placeholders": { - "extensionName": { - "type": "String", - "description": "Name of the active extension" - } - } - }, - "homeSubtitle": "Cole um link do Spotify ou procure por nome", - "@homeSubtitle": { - "description": "Subtitle shown below search box" - }, - "homeSupports": "Suporte: Faixas, Álbuns, Playlists, URLs de Artista", - "@homeSupports": { - "description": "Info text about supported URL types" - }, - "homeRecent": "Recentes", - "@homeRecent": { - "description": "Section header for recent searches" - }, - "historyTitle": "Histórico", - "@historyTitle": { - "description": "History screen title" - }, - "historyDownloading": "Baixando ({count})", - "@historyDownloading": { - "description": "Tab showing active downloads count", - "placeholders": { - "count": { - "type": "int", - "description": "Number of active downloads" - } - } - }, - "historyDownloaded": "Baixados", - "@historyDownloaded": { - "description": "Tab showing completed downloads" - }, - "historyFilterAll": "Tudo", - "@historyFilterAll": { - "description": "Filter chip - show all items" - }, - "historyFilterAlbums": "Álbuns", - "@historyFilterAlbums": { - "description": "Filter chip - show albums only" - }, - "historyFilterSingles": "Singles", - "@historyFilterSingles": { - "description": "Filter chip - show singles only" - }, - "historyTracksCount": "{count, plural, one {}=1{1 faixa} other{{count} faixas}}", - "@historyTracksCount": { - "description": "Track count with plural form", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "historyAlbumsCount": "{count, plural, one {}=1{1 álbum} other{{count} álbuns}}", - "@historyAlbumsCount": { - "description": "Album count with plural form", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "historyNoDownloads": "Nenhum histórico de downloads", - "@historyNoDownloads": { - "description": "Empty state title" - }, - "historyNoDownloadsSubtitle": "As faixas baixadas aparecerão aqui", - "@historyNoDownloadsSubtitle": { - "description": "Empty state subtitle" - }, - "historyNoAlbums": "Sem álbuns baixados", - "@historyNoAlbums": { - "description": "Empty state when filtering albums" - }, - "historyNoAlbumsSubtitle": "Baixe várias faixas de um álbum para vê-las aqui", - "@historyNoAlbumsSubtitle": { - "description": "Empty state subtitle for albums filter" - }, - "historyNoSingles": "Sem singles baixados", - "@historyNoSingles": { - "description": "Empty state when filtering singles" - }, - "historyNoSinglesSubtitle": "Os downloads de faixa individuais aparecerão aqui", - "@historyNoSinglesSubtitle": { - "description": "Empty state subtitle for singles filter" - }, - "historySearchHint": "Pesquisar histórico...", - "@historySearchHint": { - "description": "Search bar placeholder in history" - }, - "settingsTitle": "Configurações", - "@settingsTitle": { - "description": "Settings screen title" - }, - "settingsDownload": "Download", - "@settingsDownload": { - "description": "Settings section - download options" - }, - "settingsAppearance": "Aparência", - "@settingsAppearance": { - "description": "Settings section - visual customization" - }, - "settingsOptions": "Opções", - "@settingsOptions": { - "description": "Settings section - app options" - }, - "settingsExtensions": "Extensões", - "@settingsExtensions": { - "description": "Settings section - extension management" - }, - "settingsAbout": "Sobre", - "@settingsAbout": { - "description": "Settings section - app info" - }, - "downloadTitle": "Download", - "@downloadTitle": { - "description": "Download settings page title" - }, - "downloadLocation": "Local dos Downloads", - "@downloadLocation": { - "description": "Setting for download folder" - }, - "downloadLocationSubtitle": "Escolha onde salvar os arquivos", - "@downloadLocationSubtitle": { - "description": "Subtitle for download location" - }, - "downloadLocationDefault": "Local padrão", - "@downloadLocationDefault": { - "description": "Shown when using default folder" - }, - "downloadDefaultService": "Serviço Padrão", - "@downloadDefaultService": { - "description": "Setting for preferred download service (Tidal/Qobuz/Amazon)" - }, - "downloadDefaultServiceSubtitle": "Serviço usado para downloads", - "@downloadDefaultServiceSubtitle": { - "description": "Subtitle for default service" - }, - "downloadDefaultQuality": "Qualidade Predefinida", - "@downloadDefaultQuality": { - "description": "Setting for audio quality" - }, - "downloadAskQuality": "Perguntar qualidade antes de baixar", - "@downloadAskQuality": { - "description": "Toggle to show quality picker" - }, - "downloadAskQualitySubtitle": "Mostrar seletor de qualidade para cada download", - "@downloadAskQualitySubtitle": { - "description": "Subtitle for ask quality toggle" - }, - "downloadFilenameFormat": "Formato do Nome do Arquivo", - "@downloadFilenameFormat": { - "description": "Setting for output filename pattern" - }, - "downloadFolderOrganization": "Organização de Pastas", - "@downloadFolderOrganization": { - "description": "Setting for folder structure" - }, - "downloadSeparateSingles": "Separar Singles", - "@downloadSeparateSingles": { - "description": "Toggle to separate single tracks" - }, - "downloadSeparateSinglesSubtitle": "Colocar singles numa pasta separada", - "@downloadSeparateSinglesSubtitle": { - "description": "Subtitle for separate singles toggle" - }, - "qualityBest": "Melhor Disponível", - "@qualityBest": { - "description": "Audio quality option - highest available" - }, - "qualityFlac": "FLAC", - "@qualityFlac": { - "description": "Audio quality option - FLAC lossless" - }, - "quality320": "320 kbps", - "@quality320": { - "description": "Audio quality option - 320kbps MP3" - }, - "quality128": "128 kbps", - "@quality128": { - "description": "Audio quality option - 128kbps MP3" - }, - "appearanceTitle": "Aparência", - "@appearanceTitle": { - "description": "Appearance settings page title" - }, - "appearanceTheme": "Tema", - "@appearanceTheme": { - "description": "Theme mode setting" - }, - "appearanceThemeSystem": "Sistema", - "@appearanceThemeSystem": { - "description": "Follow system theme" - }, - "appearanceThemeLight": "Claro", - "@appearanceThemeLight": { - "description": "Light theme" - }, - "appearanceThemeDark": "Escuro", - "@appearanceThemeDark": { - "description": "Dark theme" - }, - "appearanceDynamicColor": "Cores Dinâmicas", - "@appearanceDynamicColor": { - "description": "Material You dynamic colors" - }, - "appearanceDynamicColorSubtitle": "Usar cores do seu papel de parede", - "@appearanceDynamicColorSubtitle": { - "description": "Subtitle for dynamic color" - }, - "appearanceAccentColor": "Cor de Destaque", - "@appearanceAccentColor": { - "description": "Custom accent color picker" - }, - "appearanceHistoryView": "Visualização do Histórico", - "@appearanceHistoryView": { - "description": "Layout style for history" - }, - "appearanceHistoryViewList": "Lista", - "@appearanceHistoryViewList": { - "description": "List layout option" - }, - "appearanceHistoryViewGrid": "Grade", - "@appearanceHistoryViewGrid": { - "description": "Grid layout option" - }, - "optionsTitle": "Opções", - "@optionsTitle": { - "description": "Options settings page title" - }, - "optionsSearchSource": "Origem da Pesquisa", - "@optionsSearchSource": { - "description": "Section for search provider settings" - }, - "optionsPrimaryProvider": "Provedor Primário", - "@optionsPrimaryProvider": { - "description": "Main search provider setting" - }, - "optionsPrimaryProviderSubtitle": "Serviço usado ao pesquisar por nome da faixa.", - "@optionsPrimaryProviderSubtitle": { - "description": "Subtitle for primary provider" - }, - "optionsUsingExtension": "Usando a extensão: {extensionName}", - "@optionsUsingExtension": { - "description": "Shows active extension name", - "placeholders": { - "extensionName": { - "type": "String" - } - } - }, - "optionsSwitchBack": "Toque no Deezer ou Spotify para alternar de volta da extensão", - "@optionsSwitchBack": { - "description": "Hint to switch back to built-in providers" - }, - "optionsAutoFallback": "Fallback Automático", - "@optionsAutoFallback": { - "description": "Auto-retry with other services" - }, - "optionsAutoFallbackSubtitle": "Tentar outros serviços se o download falhar", - "@optionsAutoFallbackSubtitle": { - "description": "Subtitle for auto fallback" - }, - "optionsUseExtensionProviders": "Usar Provedores de Extensão", - "@optionsUseExtensionProviders": { - "description": "Enable extension download providers" - }, - "optionsUseExtensionProvidersOn": "Extensões serão tentadas primeiro", - "@optionsUseExtensionProvidersOn": { - "description": "Status when extension providers enabled" - }, - "optionsUseExtensionProvidersOff": "Usando apenas provedores integrados", - "@optionsUseExtensionProvidersOff": { - "description": "Status when extension providers disabled" - }, - "optionsEmbedLyrics": "Incorporar Letras", - "@optionsEmbedLyrics": { - "description": "Embed lyrics in audio files" - }, - "optionsEmbedLyricsSubtitle": "Incorporar letras sincronizadas aos arquivos FLAC", - "@optionsEmbedLyricsSubtitle": { - "description": "Subtitle for embed lyrics" - }, - "optionsMaxQualityCover": "Capa de Qualidade Máxima", - "@optionsMaxQualityCover": { - "description": "Download highest quality album art" - }, - "optionsMaxQualityCoverSubtitle": "Baixar capa do álbum com a mais alta resolução", - "@optionsMaxQualityCoverSubtitle": { - "description": "Subtitle for max quality cover" - }, - "optionsConcurrentDownloads": "Downloads Simultâneos", - "@optionsConcurrentDownloads": { - "description": "Number of parallel downloads" - }, - "optionsConcurrentSequential": "Sequencial (1 por vez)", - "@optionsConcurrentSequential": { - "description": "Download one at a time" - }, - "optionsConcurrentParallel": "{count} downloads paralelos", - "@optionsConcurrentParallel": { - "description": "Multiple parallel downloads", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "optionsConcurrentWarning": "Downloads simultâneos podem causar um limite da taxa (ratelimit)", - "@optionsConcurrentWarning": { - "description": "Warning about rate limits" - }, - "optionsExtensionStore": "Loja de Extensões", - "@optionsExtensionStore": { - "description": "Show/hide store tab" - }, - "optionsExtensionStoreSubtitle": "Mostrar aba da Loja na navegação", - "@optionsExtensionStoreSubtitle": { - "description": "Subtitle for extension store toggle" - }, - "optionsCheckUpdates": "Procurar Atualizações", - "@optionsCheckUpdates": { - "description": "Auto update check toggle" - }, - "optionsCheckUpdatesSubtitle": "Notificar quando uma nova versão estiver disponível", - "@optionsCheckUpdatesSubtitle": { - "description": "Subtitle for update check" - }, - "optionsUpdateChannel": "Canal de Atualização", - "@optionsUpdateChannel": { - "description": "Stable vs preview releases" - }, - "optionsUpdateChannelStable": "Somente versões estáveis", - "@optionsUpdateChannelStable": { - "description": "Only stable updates" - }, - "optionsUpdateChannelPreview": "Obter versões de prévia", - "@optionsUpdateChannelPreview": { - "description": "Include beta/preview updates" - }, - "optionsUpdateChannelWarning": "A prévia pode conter erros ou recursos incompletos", - "@optionsUpdateChannelWarning": { - "description": "Warning about preview channel" - }, - "optionsClearHistory": "Limpar Histórico de Download", - "@optionsClearHistory": { - "description": "Delete all download history" - }, - "optionsClearHistorySubtitle": "Remover todas as faixas baixadas do histórico", - "@optionsClearHistorySubtitle": { - "description": "Subtitle for clear history" - }, - "optionsDetailedLogging": "Registro detalhado", - "@optionsDetailedLogging": { - "description": "Enable verbose logs for debugging" - }, - "optionsDetailedLoggingOn": "Registros detalhados estão sendo gravados", - "@optionsDetailedLoggingOn": { - "description": "Status when logging enabled" - }, - "optionsDetailedLoggingOff": "Habilitar para relatórios de erros", - "@optionsDetailedLoggingOff": { - "description": "Status when logging disabled" - }, - "optionsSpotifyCredentials": "Credenciais do Spotify", - "@optionsSpotifyCredentials": { - "description": "Spotify API credentials setting" - }, - "optionsSpotifyCredentialsConfigured": "Client ID: {clientId}...", - "@optionsSpotifyCredentialsConfigured": { - "description": "Shows configured client ID preview", - "placeholders": { - "clientId": { - "type": "String" - } - } - }, - "optionsSpotifyCredentialsRequired": "Obrigatório - toque para configurar", - "@optionsSpotifyCredentialsRequired": { - "description": "Prompt to set up credentials" - }, - "optionsSpotifyWarning": "O Spotify requer as suas próprias credenciais de API. Consiga gratuitamente em developer.spotify.com", - "@optionsSpotifyWarning": { - "description": "Info about Spotify API requirement" - }, - "optionsSpotifyDeprecationWarning": "Spotify search will be deprecated on March 3, 2026 due to Spotify API changes. Please switch to Deezer.", - "@optionsSpotifyDeprecationWarning": { - "description": "Warning about Spotify API deprecation" - }, - "extensionsTitle": "Extensões", - "@extensionsTitle": { - "description": "Extensions page title" - }, - "extensionsInstalled": "Extensões Instaladas", - "@extensionsInstalled": { - "description": "Section header for installed extensions" - }, - "extensionsNone": "Nenhuma extensão instalada", - "@extensionsNone": { - "description": "Empty state title" - }, - "extensionsNoneSubtitle": "Instalar extensões a partir da aba Loja", - "@extensionsNoneSubtitle": { - "description": "Empty state subtitle" - }, - "extensionsEnabled": "Habilitado", - "@extensionsEnabled": { - "description": "Extension status - active" - }, - "extensionsDisabled": "Desabilitado", - "@extensionsDisabled": { - "description": "Extension status - inactive" - }, - "extensionsVersion": "Versão {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" - }, - "extensionsSetAsSearch": "Definir como Provedor de Pesquisa", - "@extensionsSetAsSearch": { - "description": "Use extension for search" - }, - "storeTitle": "Loja de Extensões", - "@storeTitle": { - "description": "Store screen title" - }, - "storeSearch": "Pesquisar extensões...", - "@storeSearch": { - "description": "Store search placeholder" - }, - "storeInstall": "Instalar", - "@storeInstall": { - "description": "Install extension button" - }, - "storeInstalled": "Instalado", - "@storeInstalled": { - "description": "Already installed badge" - }, - "storeUpdate": "Atualizar", - "@storeUpdate": { - "description": "Update available button" - }, - "aboutTitle": "Sobre", - "@aboutTitle": { - "description": "About page title" - }, - "aboutContributors": "Colaboradores", - "@aboutContributors": { - "description": "Section for contributors" - }, - "aboutMobileDeveloper": "Desenvolvedor da versão móvel", - "@aboutMobileDeveloper": { - "description": "Role description for mobile dev" - }, - "aboutOriginalCreator": "Criador do SpotiFLAC original", - "@aboutOriginalCreator": { - "description": "Role description for original creator" - }, - "aboutLogoArtist": "O artista talentoso que criou o nosso lindo logotipo do aplicativo!", - "@aboutLogoArtist": { - "description": "Role description for logo artist" - }, - "aboutTranslators": "Tradutores", - "@aboutTranslators": { - "description": "Section for translators" - }, - "aboutSpecialThanks": "Agradecimentos Especiais", - "@aboutSpecialThanks": { - "description": "Section for special thanks" - }, - "aboutLinks": "Links", - "@aboutLinks": { - "description": "Section for external links" - }, - "aboutMobileSource": "Código-fonte do app móvel", - "@aboutMobileSource": { - "description": "Link to mobile GitHub repo" - }, - "aboutPCSource": "Código-fonte do app desktop", - "@aboutPCSource": { - "description": "Link to PC GitHub repo" - }, - "aboutReportIssue": "Reportar um problema", - "@aboutReportIssue": { - "description": "Link to report bugs" - }, - "aboutReportIssueSubtitle": "Reporte qualquer problema que encontrar", - "@aboutReportIssueSubtitle": { - "description": "Subtitle for report issue" - }, - "aboutFeatureRequest": "Solicitação de recurso", - "@aboutFeatureRequest": { - "description": "Link to suggest features" - }, - "aboutFeatureRequestSubtitle": "Sugira novos recursos para o aplicativo", - "@aboutFeatureRequestSubtitle": { - "description": "Subtitle for feature request" - }, - "aboutTelegramChannel": "Canal do Telegram", - "@aboutTelegramChannel": { - "description": "Link to Telegram channel" - }, - "aboutTelegramChannelSubtitle": "Anúncios e atualizações", - "@aboutTelegramChannelSubtitle": { - "description": "Subtitle for Telegram channel" - }, - "aboutTelegramChat": "Comunidade do Telegram", - "@aboutTelegramChat": { - "description": "Link to Telegram chat group" - }, - "aboutTelegramChatSubtitle": "Converse com outros usuários", - "@aboutTelegramChatSubtitle": { - "description": "Subtitle for Telegram chat" - }, - "aboutSocial": "Social", - "@aboutSocial": { - "description": "Section for social links" - }, - "aboutSupport": "Apoiar", - "@aboutSupport": { - "description": "Section for support/donation links" - }, - "aboutApp": "Aplicativo", - "@aboutApp": { - "description": "Section for app info" - }, - "aboutVersion": "Versão", - "@aboutVersion": { - "description": "Version info label" - }, - "aboutBinimumDesc": "O criador da API QQDL e HiFi. Sem esta API, os downloads Tidal não existiriam!", - "@aboutBinimumDesc": { - "description": "Credit description for binimum" - }, - "aboutSachinsenalDesc": "O criador original do projeto HiFi. A base da integração do Tidal!", - "@aboutSachinsenalDesc": { - "description": "Credit description for sachinsenal0x64" - }, - "aboutSjdonadoDesc": "Creator of I Don't Have Spotify (IDHS). The fallback link resolver that saves the day!", - "@aboutSjdonadoDesc": { - "description": "Credit description for sjdonado" - }, - "aboutDoubleDouble": "DoubleDouble", - "@aboutDoubleDouble": { - "description": "Name of Amazon API service - DO NOT TRANSLATE" - }, - "aboutDoubleDoubleDesc": "API incrível para downloads do Amazon Music. Obrigado por fazê-lo gratuitamente!", - "@aboutDoubleDoubleDesc": { - "description": "Credit for DoubleDouble API" - }, - "aboutDabMusic": "DAB Music", - "@aboutDabMusic": { - "description": "Name of Qobuz API service - DO NOT TRANSLATE" - }, - "aboutDabMusicDesc": "A melhor API de streaming do Qobuz. Downloads de alta resolução não seriam possíveis sem isso!", - "@aboutDabMusicDesc": { - "description": "Credit for DAB Music API" - }, - "aboutSpotiSaver": "SpotiSaver", - "@aboutSpotiSaver": { - "description": "Name of SpotiSaver API service - DO NOT TRANSLATE" - }, - "aboutSpotiSaverDesc": "Tidal Hi-Res FLAC streaming endpoints. A key piece of the lossless puzzle!", - "@aboutSpotiSaverDesc": { - "description": "Credit for SpotiSaver API" - }, - "aboutAppDescription": "Baixe faixas do Spotify em qualidade sem perdas do Tidal, Qobuz e Amazon Music.", - "@aboutAppDescription": { - "description": "App description in header card" - }, - "albumTitle": "Álbum", - "@albumTitle": { - "description": "Album screen title" - }, - "albumTracks": "{count, plural, one {}=1{1 faixa} other{{count} faixas}}", - "@albumTracks": { - "description": "Album track count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "albumDownloadAll": "Baixar Tudo", - "@albumDownloadAll": { - "description": "Button to download all tracks" - }, - "albumDownloadRemaining": "Downloads Restantes", - "@albumDownloadRemaining": { - "description": "Button to download remaining tracks" - }, - "playlistTitle": "Playlist", - "@playlistTitle": { - "description": "Playlist screen title" - }, - "artistTitle": "Artista", - "@artistTitle": { - "description": "Artist screen title" - }, - "artistAlbums": "Álbuns", - "@artistAlbums": { - "description": "Section header for artist albums" - }, - "artistSingles": "Singles e EPs", - "@artistSingles": { - "description": "Section header for singles/EPs" - }, - "artistCompilations": "Compilações", - "@artistCompilations": { - "description": "Section header for compilations" - }, - "artistReleases": "{count, plural, one {}=1{1 lançamento} other{{count} lançamentos}}", - "@artistReleases": { - "description": "Artist release count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "artistPopular": "Populares", - "@artistPopular": { - "description": "Section header for popular/top tracks" - }, - "artistMonthlyListeners": "{count} ouvintes mensais", - "@artistMonthlyListeners": { - "description": "Monthly listener count display", - "placeholders": { - "count": { - "type": "String", - "description": "Formatted listener count" - } - } - }, - "trackMetadataTitle": "Informações da Faixa", - "@trackMetadataTitle": { - "description": "Track metadata screen title" - }, - "trackMetadataArtist": "Artista", - "@trackMetadataArtist": { - "description": "Metadata field - artist name" - }, - "trackMetadataAlbum": "Álbum", - "@trackMetadataAlbum": { - "description": "Metadata field - album name" - }, - "trackMetadataDuration": "Duração", - "@trackMetadataDuration": { - "description": "Metadata field - track length" - }, - "trackMetadataQuality": "Qualidade", - "@trackMetadataQuality": { - "description": "Metadata field - audio quality" - }, - "trackMetadataPath": "Caminho do Arquivo", - "@trackMetadataPath": { - "description": "Metadata field - file location" - }, - "trackMetadataDownloadedAt": "Baixado", - "@trackMetadataDownloadedAt": { - "description": "Metadata field - download date" - }, - "trackMetadataService": "Serviço", - "@trackMetadataService": { - "description": "Metadata field - download service used" - }, - "trackMetadataPlay": "Reproduzir", - "@trackMetadataPlay": { - "description": "Action button - play track" - }, - "trackMetadataShare": "Compartilhar", - "@trackMetadataShare": { - "description": "Action button - share track" - }, - "trackMetadataDelete": "Apagar", - "@trackMetadataDelete": { - "description": "Action button - delete track" - }, - "trackMetadataRedownload": "Baixar Novamente", - "@trackMetadataRedownload": { - "description": "Action button - download again" - }, - "trackMetadataOpenFolder": "Abrir Pasta", - "@trackMetadataOpenFolder": { - "description": "Action button - open containing folder" - }, - "setupTitle": "Bem-vindo ao SpotiFLAC", - "@setupTitle": { - "description": "Setup wizard title" - }, - "setupSubtitle": "Vamos começar", - "@setupSubtitle": { - "description": "Setup wizard subtitle" - }, - "setupStoragePermission": "Permissão de Armazenamento", - "@setupStoragePermission": { - "description": "Storage permission step title" - }, - "setupStoragePermissionSubtitle": "Necessária para salvar arquivos baixados", - "@setupStoragePermissionSubtitle": { - "description": "Explanation for storage permission" - }, - "setupStoragePermissionGranted": "Permissão concedida", - "@setupStoragePermissionGranted": { - "description": "Status when permission granted" - }, - "setupStoragePermissionDenied": "Permissão negada", - "@setupStoragePermissionDenied": { - "description": "Status when permission denied" - }, - "setupGrantPermission": "Conceder Permissão", - "@setupGrantPermission": { - "description": "Button to request permission" - }, - "setupDownloadLocation": "Local do Download", - "@setupDownloadLocation": { - "description": "Download folder step title" - }, - "setupChooseFolder": "Selecionar Pasta", - "@setupChooseFolder": { - "description": "Button to pick folder" - }, - "setupContinue": "Continuar", - "@setupContinue": { - "description": "Continue to next step button" - }, - "setupSkip": "Ignorar por enquanto", - "@setupSkip": { - "description": "Skip current step button" - }, - "setupStorageAccessRequired": "Acesso ao Armazenamento Necessário", - "@setupStorageAccessRequired": { - "description": "Title when storage access needed" - }, - "setupStorageAccessMessage": "O SpotiFLAC precisa da permissão \"Acesso a todos os arquivos\" para salvar arquivos de música na sua pasta escolhida.", - "@setupStorageAccessMessage": { - "description": "Explanation for storage access" - }, - "setupStorageAccessMessageAndroid11": "O Android 11+ requer a permissão \"Acesso a Todos os Arquivos\" para salvar arquivos na pasta de download escolhida.", - "@setupStorageAccessMessageAndroid11": { - "description": "Android 11+ specific explanation" - }, - "setupOpenSettings": "Abrir Configurações", - "@setupOpenSettings": { - "description": "Button to open system settings" - }, - "setupPermissionDeniedMessage": "Permissão negada. Por favor, conceda todas as permissões para continuar.", - "@setupPermissionDeniedMessage": { - "description": "Error when permission denied" - }, - "setupPermissionRequired": "Permissão {permissionType} Necessária", - "@setupPermissionRequired": { - "description": "Generic permission required title", - "placeholders": { - "permissionType": { - "type": "String", - "description": "Type of permission (Storage/Notification)" - } - } - }, - "setupPermissionRequiredMessage": "A permissão {permissionType} é necessária para a melhor experiência. Você pode alterar isso mais tarde em Configurações.", - "@setupPermissionRequiredMessage": { - "description": "Generic permission required message", - "placeholders": { - "permissionType": { - "type": "String" - } - } - }, - "setupSelectDownloadFolder": "Escolher Pasta de Download", - "@setupSelectDownloadFolder": { - "description": "Folder selection step title" - }, - "setupUseDefaultFolder": "Usar Pasta Padrão?", - "@setupUseDefaultFolder": { - "description": "Dialog title for default folder" - }, - "setupNoFolderSelected": "Nenhuma pasta selecionada. Você gostaria de usar a pasta padrão de música?", - "@setupNoFolderSelected": { - "description": "Prompt when no folder selected" - }, - "setupUseDefault": "Usar Padrão", - "@setupUseDefault": { - "description": "Button to use default folder" - }, - "setupDownloadLocationTitle": "Local do Download", - "@setupDownloadLocationTitle": { - "description": "Download location dialog title" - }, - "setupDownloadLocationIosMessage": "No iOS, downloads são salvos na pasta Documentos do aplicativo. Você pode acessá-los através do app Arquivos.", - "@setupDownloadLocationIosMessage": { - "description": "iOS-specific folder info" - }, - "setupAppDocumentsFolder": "Pasta Documentos do App", - "@setupAppDocumentsFolder": { - "description": "iOS documents folder option" - }, - "setupAppDocumentsFolderSubtitle": "Recomendado - acessível através do aplicativo Arquivos", - "@setupAppDocumentsFolderSubtitle": { - "description": "Subtitle for documents folder" - }, - "setupChooseFromFiles": "Escolher dos Arquivos", - "@setupChooseFromFiles": { - "description": "iOS file picker option" - }, - "setupChooseFromFilesSubtitle": "Selecione o iCloud ou outro local", - "@setupChooseFromFilesSubtitle": { - "description": "Subtitle for file picker" - }, - "setupIosEmptyFolderWarning": "Limitação do iOS: Pastas vazias não podem ser selecionadas. Escolha uma pasta com pelo menos um arquivo.", - "@setupIosEmptyFolderWarning": { - "description": "iOS folder selection warning" - }, - "setupIcloudNotSupported": "iCloud Drive is not supported. Please use the app Documents folder.", - "@setupIcloudNotSupported": { - "description": "Error when user selects iCloud Drive on iOS" - }, - "setupDownloadInFlac": "Baixar faixas do Spotify em FLAC", - "@setupDownloadInFlac": { - "description": "App tagline in setup" - }, - "setupStepStorage": "Armazenamento", - "@setupStepStorage": { - "description": "Setup step indicator - storage" - }, - "setupStepNotification": "Notificação", - "@setupStepNotification": { - "description": "Setup step indicator - notification" - }, - "setupStepFolder": "Pasta", - "@setupStepFolder": { - "description": "Setup step indicator - folder" - }, - "setupStepSpotify": "Spotify", - "@setupStepSpotify": { - "description": "Setup step indicator - Spotify API" - }, - "setupStepPermission": "Permissão", - "@setupStepPermission": { - "description": "Setup step indicator - permission" - }, - "setupStorageGranted": "Permissão de Armazenamento Concedida!", - "@setupStorageGranted": { - "description": "Success message for storage permission" - }, - "setupStorageRequired": "Permissão de Armazenamento Necessária", - "@setupStorageRequired": { - "description": "Title when storage permission needed" - }, - "setupStorageDescription": "O SpotiFLAC precisa de permissão de armazenamento para salvar os seus arquivos de música baixados.", - "@setupStorageDescription": { - "description": "Explanation for storage permission" - }, - "setupNotificationGranted": "Permissão de Notificações Concedida!", - "@setupNotificationGranted": { - "description": "Success message for notification permission" - }, - "setupNotificationEnable": "Habilitar Notificações", - "@setupNotificationEnable": { - "description": "Button to enable notifications" - }, - "setupNotificationDescription": "Seja notificado quando os downloads completarem ou exigirem atenção.", - "@setupNotificationDescription": { - "description": "Explanation for notifications" - }, - "setupFolderSelected": "Pasta para Download Selecionada!", - "@setupFolderSelected": { - "description": "Success message for folder selection" - }, - "setupFolderChoose": "Escolher Pasta de Download", - "@setupFolderChoose": { - "description": "Button to choose folder" - }, - "setupFolderDescription": "Selecione uma pasta onde as suas músicas baixadas serão salvas.", - "@setupFolderDescription": { - "description": "Explanation for folder selection" - }, - "setupChangeFolder": "Alterar Pasta", - "@setupChangeFolder": { - "description": "Button to change selected folder" - }, - "setupSelectFolder": "Seleccionar Pasta", - "@setupSelectFolder": { - "description": "Button to select folder" - }, - "setupSpotifyApiOptional": "API do Spotify (opcional)", - "@setupSpotifyApiOptional": { - "description": "Spotify API step title" - }, - "setupSpotifyApiDescription": "Adicione as suas credenciais da API do Spotify para obter melhores resultados de busca e acesso a conteúdo exclusivo do Spotify.", - "@setupSpotifyApiDescription": { - "description": "Explanation for Spotify API" - }, - "setupUseSpotifyApi": "Usar API do Spotify", - "@setupUseSpotifyApi": { - "description": "Toggle to enable Spotify API" - }, - "setupEnterCredentialsBelow": "Insira as suas credenciais abaixo", - "@setupEnterCredentialsBelow": { - "description": "Prompt to enter credentials" - }, - "setupUsingDeezer": "Usando o Deezer (nenhuma conta necessária)", - "@setupUsingDeezer": { - "description": "Status when using Deezer" - }, - "setupEnterClientId": "Insira o Spotify Client ID", - "@setupEnterClientId": { - "description": "Placeholder for client ID field" - }, - "setupEnterClientSecret": "Insira o Spotify Client Secret", - "@setupEnterClientSecret": { - "description": "Placeholder for client secret field" - }, - "setupGetFreeCredentials": "Receba as suas credenciais de API gratuitas na Spotify Developer Dashboard.", - "@setupGetFreeCredentials": { - "description": "Info about getting Spotify credentials" - }, - "setupEnableNotifications": "Habilitar Notificações", - "@setupEnableNotifications": { - "description": "Button to enable notifications" - }, - "setupProceedToNextStep": "Você já pode prosseguir para o próximo passo.", - "@setupProceedToNextStep": { - "description": "Message after completing a step" - }, - "setupNotificationProgressDescription": "Você receberá notificações de progresso dos downloads.", - "@setupNotificationProgressDescription": { - "description": "Info about notification usage" - }, - "setupNotificationBackgroundDescription": "Seja notificado sobre o progresso e conclusão do download. Isso ajuda você a acompanhar os downloads quando o app estiver em segundo plano.", - "@setupNotificationBackgroundDescription": { - "description": "Detailed notification explanation" - }, - "setupSkipForNow": "Ignorar por enquanto", - "@setupSkipForNow": { - "description": "Skip button text" - }, - "setupBack": "Voltar", - "@setupBack": { - "description": "Back button text" - }, - "setupNext": "Próximo", - "@setupNext": { - "description": "Next button text" - }, - "setupGetStarted": "Começar", - "@setupGetStarted": { - "description": "Final setup button" - }, - "setupSkipAndStart": "Ignorar e Iniciar", - "@setupSkipAndStart": { - "description": "Skip setup and start app" - }, - "setupAllowAccessToManageFiles": "Por favor, habilite \"Permitir acesso para gerenciar todos os arquivos\" na próxima tela.", - "@setupAllowAccessToManageFiles": { - "description": "Instruction for file access permission" - }, - "setupGetCredentialsFromSpotify": "Obter credenciais do developer.spotify.com", - "@setupGetCredentialsFromSpotify": { - "description": "Link text for Spotify developer portal" - }, - "dialogCancel": "Cancelar", - "@dialogCancel": { - "description": "Dialog button - cancel action" - }, - "dialogOk": "OK", - "@dialogOk": { - "description": "Dialog button - confirm/acknowledge" - }, - "dialogSave": "Salvar", - "@dialogSave": { - "description": "Dialog button - save changes" - }, - "dialogDelete": "Apagar", - "@dialogDelete": { - "description": "Dialog button - delete item" - }, - "dialogRetry": "Tentar novamente", - "@dialogRetry": { - "description": "Dialog button - retry action" - }, - "dialogClose": "Fechar", - "@dialogClose": { - "description": "Dialog button - close dialog" - }, - "dialogYes": "Sim", - "@dialogYes": { - "description": "Dialog button - confirm yes" - }, - "dialogNo": "Não", - "@dialogNo": { - "description": "Dialog button - confirm no" - }, - "dialogClear": "Limpar", - "@dialogClear": { - "description": "Dialog button - clear items" - }, - "dialogConfirm": "Confirmar", - "@dialogConfirm": { - "description": "Dialog button - confirm action" - }, - "dialogDone": "Concluído", - "@dialogDone": { - "description": "Dialog button - action completed" - }, - "dialogImport": "Importar", - "@dialogImport": { - "description": "Dialog button - import data" - }, - "dialogDiscard": "Descartar", - "@dialogDiscard": { - "description": "Dialog button - discard changes" - }, - "dialogRemove": "Remover", - "@dialogRemove": { - "description": "Dialog button - remove item" - }, - "dialogUninstall": "Desinstalar", - "@dialogUninstall": { - "description": "Dialog button - uninstall extension" - }, - "dialogDiscardChanges": "Descartar Alterações?", - "@dialogDiscardChanges": { - "description": "Dialog title - unsaved changes warning" - }, - "dialogUnsavedChanges": "Você tem alterações não salvas. Deseja descartá-las?", - "@dialogUnsavedChanges": { - "description": "Dialog message - unsaved changes" - }, - "dialogDownloadFailed": "Download Falhou", - "@dialogDownloadFailed": { - "description": "Dialog title - download error" - }, - "dialogTrackLabel": "Faixa:", - "@dialogTrackLabel": { - "description": "Label for track name in error dialog" - }, - "dialogArtistLabel": "Artista:", - "@dialogArtistLabel": { - "description": "Label for artist name in error dialog" - }, - "dialogErrorLabel": "Erro:", - "@dialogErrorLabel": { - "description": "Label for error message" - }, - "dialogClearAll": "Limpar Tudo", - "@dialogClearAll": { - "description": "Dialog title - clear all items" - }, - "dialogClearAllDownloads": "Você tem certeza que deseja limpar todos os downloads?", - "@dialogClearAllDownloads": { - "description": "Dialog message - clear downloads confirmation" - }, - "dialogRemoveFromDevice": "Remover do dispositivo?", - "@dialogRemoveFromDevice": { - "description": "Dialog title - delete file confirmation" - }, - "dialogRemoveExtension": "Remover Extensão", - "@dialogRemoveExtension": { - "description": "Dialog title - uninstall extension" - }, - "dialogRemoveExtensionMessage": "Tem certeza de que deseja remover esta extensão? Isso não pode ser desfeito.", - "@dialogRemoveExtensionMessage": { - "description": "Dialog message - uninstall confirmation" - }, - "dialogUninstallExtension": "Desinstalar Extensão?", - "@dialogUninstallExtension": { - "description": "Dialog title - uninstall extension" - }, - "dialogUninstallExtensionMessage": "Tem certeza que deseja remover {extensionName}?", - "@dialogUninstallExtensionMessage": { - "description": "Dialog message - uninstall specific extension", - "placeholders": { - "extensionName": { - "type": "String" - } - } - }, - "dialogClearHistoryTitle": "Limpar Histórico", - "@dialogClearHistoryTitle": { - "description": "Dialog title - clear download history" - }, - "dialogClearHistoryMessage": "Tem certeza que deseja limpar todo o histórico de downloads? Isso não pode ser desfeito.", - "@dialogClearHistoryMessage": { - "description": "Dialog message - clear history confirmation" - }, - "dialogDeleteSelectedTitle": "Apagar Selecionados", - "@dialogDeleteSelectedTitle": { - "description": "Dialog title - delete selected items" - }, - "dialogDeleteSelectedMessage": "Apagar {count} {count, plural, one {}=1{faixa} other{faixas}} do histórico?\n\nIsso também apagará os arquivos do armazenamento.", - "@dialogDeleteSelectedMessage": { - "description": "Dialog message - delete selected tracks", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "dialogImportPlaylistTitle": "Importar Playlist", - "@dialogImportPlaylistTitle": { - "description": "Dialog title - import CSV playlist" - }, - "dialogImportPlaylistMessage": "{count} Faixas encontradas em CSV. Adicioná-las à lista de downloads?", - "csvImportTracks": "{count} faixas do 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": "\"{trackName}\" adicionada à fila", - "@snackbarAddedToQueue": { - "description": "Snackbar - track added to download queue", - "placeholders": { - "trackName": { - "type": "String" - } - } - }, - "snackbarAddedTracksToQueue": "{count} faixas adicionadas à fila", - "@snackbarAddedTracksToQueue": { - "description": "Snackbar - multiple tracks added to queue", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "snackbarAlreadyDownloaded": "\"{trackName}\" já foi baixada", - "@snackbarAlreadyDownloaded": { - "description": "Snackbar - track already exists", - "placeholders": { - "trackName": { - "type": "String" - } - } - }, - "snackbarAlreadyInLibrary": "\"{trackName}\" already exists in your library", - "@snackbarAlreadyInLibrary": { - "description": "Snackbar - track already exists in local library", - "placeholders": { - "trackName": { - "type": "String" - } - } - }, - "snackbarHistoryCleared": "Histórico limpo", - "@snackbarHistoryCleared": { - "description": "Snackbar - history deleted" - }, - "snackbarCredentialsSaved": "Credenciais salvas", - "@snackbarCredentialsSaved": { - "description": "Snackbar - Spotify credentials saved" - }, - "snackbarCredentialsCleared": "Credenciais limpas", - "@snackbarCredentialsCleared": { - "description": "Snackbar - Spotify credentials removed" - }, - "snackbarDeletedTracks": "{count} {count, plural, one {}=1{faixa apagada} other{faixas apagadas}}", - "@snackbarDeletedTracks": { - "description": "Snackbar - tracks deleted", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "snackbarCannotOpenFile": "Não foi possível abrir o arquivo: {error}", - "@snackbarCannotOpenFile": { - "description": "Snackbar - file open error", - "placeholders": { - "error": { - "type": "String" - } - } - }, - "snackbarFillAllFields": "Por favor, preencha todos os campos", - "@snackbarFillAllFields": { - "description": "Snackbar - validation error" - }, - "snackbarViewQueue": "Ver Fila", - "@snackbarViewQueue": { - "description": "Snackbar action - view download queue" - }, - "snackbarFailedToLoad": "Falha ao carregar: {error}", - "@snackbarFailedToLoad": { - "description": "Snackbar - loading error", - "placeholders": { - "error": { - "type": "String" - } - } - }, - "snackbarUrlCopied": "URL do {platform} copiado para a área de transferência", - "@snackbarUrlCopied": { - "description": "Snackbar - URL copied", - "placeholders": { - "platform": { - "type": "String", - "description": "Platform name (Spotify/Deezer)" - } - } - }, - "snackbarFileNotFound": "Arquivo não encontrado", - "@snackbarFileNotFound": { - "description": "Snackbar - file doesn't exist" - }, - "snackbarSelectExtFile": "Por favor, selecione um arquivo .spotiflac-ext", - "@snackbarSelectExtFile": { - "description": "Snackbar - wrong file type selected" - }, - "snackbarProviderPrioritySaved": "Prioridade de provedor salva", - "@snackbarProviderPrioritySaved": { - "description": "Snackbar - provider order saved" - }, - "snackbarMetadataProviderSaved": "Prioridade do provedor de metadados salva", - "@snackbarMetadataProviderSaved": { - "description": "Snackbar - metadata provider order saved" - }, - "snackbarExtensionInstalled": "{extensionName} instalada.", - "@snackbarExtensionInstalled": { - "description": "Snackbar - extension installed successfully", - "placeholders": { - "extensionName": { - "type": "String" - } - } - }, - "snackbarExtensionUpdated": "{extensionName} atualizada.", - "@snackbarExtensionUpdated": { - "description": "Snackbar - extension updated successfully", - "placeholders": { - "extensionName": { - "type": "String" - } - } - }, - "snackbarFailedToInstall": "Falha ao instalar a extensão", - "@snackbarFailedToInstall": { - "description": "Snackbar - extension install error" - }, - "snackbarFailedToUpdate": "Falha ao atualizar a extensão", - "@snackbarFailedToUpdate": { - "description": "Snackbar - extension update error" - }, - "errorRateLimited": "Tráfico Limitado (Rate Limited)", - "@errorRateLimited": { - "description": "Error title - too many requests" - }, - "errorRateLimitedMessage": "Muitas solicitações. Por favor, aguarde um momento antes de pesquisar novamente.", - "@errorRateLimitedMessage": { - "description": "Error message - rate limit explanation" - }, - "errorFailedToLoad": "Falha ao carregar {item}", - "@errorFailedToLoad": { - "description": "Error message - loading failed", - "placeholders": { - "item": { - "type": "String", - "description": "Item that failed to load (album/playlist/etc)" - } - } - }, - "errorNoTracksFound": "Nenhuma faixa encontrada", - "@errorNoTracksFound": { - "description": "Error - search returned no results" - }, - "errorMissingExtensionSource": "Não é possível carregar {item}: faltando a fonte da extensão", - "@errorMissingExtensionSource": { - "description": "Error - extension source not available", - "placeholders": { - "item": { - "type": "String" - } - } - }, - "statusQueued": "Na Fila", - "@statusQueued": { - "description": "Download status - waiting in queue" - }, - "statusDownloading": "Baixando", - "@statusDownloading": { - "description": "Download status - in progress" - }, - "statusFinalizing": "Finalizando", - "@statusFinalizing": { - "description": "Download status - writing metadata" - }, - "statusCompleted": "Concluído", - "@statusCompleted": { - "description": "Download status - finished" - }, - "statusFailed": "Falhou", - "@statusFailed": { - "description": "Download status - error occurred" - }, - "statusSkipped": "Ignorado", - "@statusSkipped": { - "description": "Download status - already exists" - }, - "statusPaused": "Pausado", - "@statusPaused": { - "description": "Download status - paused" - }, - "actionPause": "Pausar", - "@actionPause": { - "description": "Action button - pause download" - }, - "actionResume": "Retomar", - "@actionResume": { - "description": "Action button - resume download" - }, - "actionCancel": "Cancelar", - "@actionCancel": { - "description": "Action button - cancel operation" - }, - "actionStop": "Parar", - "@actionStop": { - "description": "Action button - stop operation" - }, - "actionSelect": "Selecionar", - "@actionSelect": { - "description": "Action button - enter selection mode" - }, - "actionSelectAll": "Selecionar Tudo", - "@actionSelectAll": { - "description": "Action button - select all items" - }, - "actionDeselect": "Desselecionar", - "@actionDeselect": { - "description": "Action button - deselect all" - }, - "actionPaste": "Colar", - "@actionPaste": { - "description": "Action button - paste from clipboard" - }, - "actionImportCsv": "Importar CSV", - "@actionImportCsv": { - "description": "Action button - import CSV file" - }, - "actionRemoveCredentials": "Remover Credenciais", - "@actionRemoveCredentials": { - "description": "Action button - delete Spotify credentials" - }, - "actionSaveCredentials": "Salvar Credenciais", - "@actionSaveCredentials": { - "description": "Action button - save Spotify credentials" - }, - "selectionSelected": "{count} selecionado(s)", - "@selectionSelected": { - "description": "Selection count indicator", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "selectionAllSelected": "Todas as faixas selecionadas", - "@selectionAllSelected": { - "description": "Status - all items selected" - }, - "selectionTapToSelect": "Toque nas faixas para selecionar", - "@selectionTapToSelect": { - "description": "Hint - how to select items" - }, - "selectionDeleteTracks": "Apagar {count} {count, plural, one {}=1{faixa} other{faixas}}", - "@selectionDeleteTracks": { - "description": "Delete button with count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "selectionSelectToDelete": "Selecione as faixas para apagar", - "@selectionSelectToDelete": { - "description": "Placeholder when nothing selected" - }, - "progressFetchingMetadata": "Buscando metadados... {current}/{total}", - "@progressFetchingMetadata": { - "description": "Progress indicator - loading track info", - "placeholders": { - "current": { - "type": "int" - }, - "total": { - "type": "int" - } - } - }, - "progressReadingCsv": "Lendo CSV...", - "@progressReadingCsv": { - "description": "Progress indicator - parsing CSV file" - }, - "searchSongs": "Músicas", - "@searchSongs": { - "description": "Search result category - songs" - }, - "searchArtists": "Artistas", - "@searchArtists": { - "description": "Search result category - artists" - }, - "searchAlbums": "Álbuns", - "@searchAlbums": { - "description": "Search result category - albums" - }, - "searchPlaylists": "Playlists", - "@searchPlaylists": { - "description": "Search result category - playlists" - }, - "tooltipPlay": "Reproduzir", - "@tooltipPlay": { - "description": "Tooltip - play button" - }, - "tooltipCancel": "Cancelar", - "@tooltipCancel": { - "description": "Tooltip - cancel button" - }, - "tooltipStop": "Parar", - "@tooltipStop": { - "description": "Tooltip - stop button" - }, - "tooltipRetry": "Tentar Novamente", - "@tooltipRetry": { - "description": "Tooltip - retry button" - }, - "tooltipRemove": "Remover", - "@tooltipRemove": { - "description": "Tooltip - remove button" - }, - "tooltipClear": "Limpar", - "@tooltipClear": { - "description": "Tooltip - clear button" - }, - "tooltipPaste": "Colar", - "@tooltipPaste": { - "description": "Tooltip - paste button" - }, - "filenameFormat": "Formato do Nome do Arquivo", - "@filenameFormat": { - "description": "Setting title - filename pattern" - }, - "filenameFormatPreview": "Prévia: {preview}", - "@filenameFormatPreview": { - "description": "Preview of filename pattern", - "placeholders": { - "preview": { - "type": "String" - } - } - }, - "filenameAvailablePlaceholders": "Substituições permitidas:", - "@filenameAvailablePlaceholders": { - "description": "Label for placeholder list" - }, - "filenameHint": "{artist} - {title}", - "@filenameHint": { - "description": "Default filename format hint" - }, - "folderOrganization": "Organização de Pastas", - "@folderOrganization": { - "description": "Setting title - folder structure" - }, - "folderOrganizationNone": "Nenhuma organização", - "@folderOrganizationNone": { - "description": "Folder option - flat structure" - }, - "folderOrganizationByArtist": "Por Artista", - "@folderOrganizationByArtist": { - "description": "Folder option - artist folders" - }, - "folderOrganizationByAlbum": "Por Album", - "@folderOrganizationByAlbum": { - "description": "Folder option - album folders" - }, - "folderOrganizationByArtistAlbum": "Artista/Álbum", - "@folderOrganizationByArtistAlbum": { - "description": "Folder option - nested folders" - }, - "folderOrganizationDescription": "Organizar arquivos baixados em pastas", - "@folderOrganizationDescription": { - "description": "Folder organization sheet description" - }, - "folderOrganizationNoneSubtitle": "Todos os arquivos na pasta de download", - "@folderOrganizationNoneSubtitle": { - "description": "Subtitle for no organization option" - }, - "folderOrganizationByArtistSubtitle": "Pasta separada para cada artista", - "@folderOrganizationByArtistSubtitle": { - "description": "Subtitle for artist folder option" - }, - "folderOrganizationByAlbumSubtitle": "Pasta separada para cada álbum", - "@folderOrganizationByAlbumSubtitle": { - "description": "Subtitle for album folder option" - }, - "folderOrganizationByArtistAlbumSubtitle": "Pastas aninhadas para artista e álbum", - "@folderOrganizationByArtistAlbumSubtitle": { - "description": "Subtitle for nested folder option" - }, - "updateAvailable": "Atualização Disponível", - "@updateAvailable": { - "description": "Update dialog title" - }, - "updateNewVersion": "A versão {version} está disponível", - "@updateNewVersion": { - "description": "Update available message", - "placeholders": { - "version": { - "type": "String" - } - } - }, - "updateDownload": "Baixar", - "@updateDownload": { - "description": "Update button - download update" - }, - "updateLater": "Depois", - "@updateLater": { - "description": "Update button - dismiss" - }, - "updateChangelog": "Lista de alterações", - "@updateChangelog": { - "description": "Link to changelog" - }, - "updateStartingDownload": "Iniciando download...", - "@updateStartingDownload": { - "description": "Update status - initializing" - }, - "updateDownloadFailed": "Download falhou", - "@updateDownloadFailed": { - "description": "Update error title" - }, - "updateFailedMessage": "Falha ao baixar a atualização", - "@updateFailedMessage": { - "description": "Update error message" - }, - "updateNewVersionReady": "Uma nova versão está pronta", - "@updateNewVersionReady": { - "description": "Update subtitle" - }, - "updateCurrent": "Atual", - "@updateCurrent": { - "description": "Label for current version" - }, - "updateNew": "Novo", - "@updateNew": { - "description": "Label for new version" - }, - "updateDownloading": "Baixando...", - "@updateDownloading": { - "description": "Update status - downloading" - }, - "updateWhatsNew": "Novidades", - "@updateWhatsNew": { - "description": "Changelog section title" - }, - "updateDownloadInstall": "Baixar e Instalar", - "@updateDownloadInstall": { - "description": "Update button - download and install" - }, - "updateDontRemind": "Não lembrar", - "@updateDontRemind": { - "description": "Update button - skip this version" - }, - "providerPriority": "Prioridade de Provedor", - "@providerPriority": { - "description": "Setting title - download provider order" - }, - "providerPrioritySubtitle": "Arraste para reordenar os provedores de download", - "@providerPrioritySubtitle": { - "description": "Subtitle for provider priority" - }, - "providerPriorityTitle": "Prioridade de Provedor", - "@providerPriorityTitle": { - "description": "Provider priority page title" - }, - "providerPriorityDescription": "Arraste para reordenar provedores de download. O aplicativo irá tentar provedores de cima para baixo ao baixar as faixas.", - "@providerPriorityDescription": { - "description": "Provider priority page description" - }, - "providerPriorityInfo": "Se uma faixa não estiver disponível no primeiro provedor, o aplicativo irá tentar automaticamente a próxima.", - "@providerPriorityInfo": { - "description": "Info tip about fallback behavior" - }, - "providerBuiltIn": "Embutido", - "@providerBuiltIn": { - "description": "Label for built-in providers (Tidal/Qobuz/Amazon)" - }, - "providerExtension": "Extensão", - "@providerExtension": { - "description": "Label for extension-provided providers" - }, - "metadataProviderPriority": "Prioridade de Provedor de Metadados", - "@metadataProviderPriority": { - "description": "Setting title - metadata provider order" - }, - "metadataProviderPrioritySubtitle": "Ordem usada para obter metadados de faixa", - "@metadataProviderPrioritySubtitle": { - "description": "Subtitle for metadata priority" - }, - "metadataProviderPriorityTitle": "Prioridade de Metadados", - "@metadataProviderPriorityTitle": { - "description": "Metadata priority page title" - }, - "metadataProviderPriorityDescription": "Arraste para reordenar provedores de metadados. O aplicativo tentará provedores de cima para baixo ao procurar por faixas e buscar metadados.", - "@metadataProviderPriorityDescription": { - "description": "Metadata priority page description" - }, - "metadataProviderPriorityInfo": "O Deezer não tem limites de taxa e é recomendado como principal. O Spotify pode limitar a taxa após muitas solicitações.", - "@metadataProviderPriorityInfo": { - "description": "Info tip about rate limits" - }, - "metadataNoRateLimits": "Sem limites de taxa", - "@metadataNoRateLimits": { - "description": "Deezer provider description" - }, - "metadataMayRateLimit": "Pode ter limites de taxa", - "@metadataMayRateLimit": { - "description": "Spotify provider description" - }, - "logTitle": "Registros", - "@logTitle": { - "description": "Logs screen title" - }, - "logCopy": "Copiar Registros", - "@logCopy": { - "description": "Action - copy logs to clipboard" - }, - "logClear": "Limpar Registros", - "@logClear": { - "description": "Action - delete all logs" - }, - "logShare": "Compartilhar Registros", - "@logShare": { - "description": "Action - share logs file" - }, - "logEmpty": "Ainda não há registros", - "@logEmpty": { - "description": "Empty state title" - }, - "logCopied": "Registros copiados para área de transferência", - "@logCopied": { - "description": "Snackbar - logs copied" - }, - "logSearchHint": "Pesquisar registros...", - "@logSearchHint": { - "description": "Log search placeholder" - }, - "logFilterLevel": "Nível", - "@logFilterLevel": { - "description": "Filter by log level" - }, - "logFilterSection": "Filtro", - "@logFilterSection": { - "description": "Filter section title" - }, - "logShareLogs": "Compartilhar registros", - "@logShareLogs": { - "description": "Share button tooltip" - }, - "logClearLogs": "Limpar registros", - "@logClearLogs": { - "description": "Clear button tooltip" - }, - "logClearLogsTitle": "Limpar Registros", - "@logClearLogsTitle": { - "description": "Clear logs dialog title" - }, - "logClearLogsMessage": "Tem certeza de que deseja limpar todos os registros?", - "@logClearLogsMessage": { - "description": "Clear logs confirmation message" - }, - "logIspBlocking": "BLOQUEIO DE ISP DETECTADO", - "@logIspBlocking": { - "description": "Error category - ISP blocking" - }, - "logRateLimited": "TAXA LIMITADA (RATELIMITED)", - "@logRateLimited": { - "description": "Error category - rate limiting" - }, - "logNetworkError": "ERRO DE REDE", - "@logNetworkError": { - "description": "Error category - network issues" - }, - "logTrackNotFound": "FAIXA NÃO ENCONTRADA", - "@logTrackNotFound": { - "description": "Error category - missing tracks" - }, - "logFilterBySeverity": "Filtrar registros por gravidade", - "@logFilterBySeverity": { - "description": "Filter dialog title" - }, - "logNoLogsYet": "Ainda não há registros", - "@logNoLogsYet": { - "description": "Empty state title" - }, - "logNoLogsYetSubtitle": "Os registros aparecerão aqui enquanto você usa o aplicativo", - "@logNoLogsYetSubtitle": { - "description": "Empty state subtitle" - }, - "logIssueSummary": "Resumo do Problemas", - "@logIssueSummary": { - "description": "Section header for error summary" - }, - "logIspBlockingDescription": "O seu provedor pode estar bloqueando o acesso aos serviços de download", - "@logIspBlockingDescription": { - "description": "ISP blocking explanation" - }, - "logIspBlockingSuggestion": "Tente usar uma VPN ou altere o DNS para 1.1.1 ou 8.8.8.8", - "@logIspBlockingSuggestion": { - "description": "ISP blocking fix suggestion" - }, - "logRateLimitedDescription": "Muitas solicitações ao serviço", - "@logRateLimitedDescription": { - "description": "Rate limit explanation" - }, - "logRateLimitedSuggestion": "Aguarde alguns minutos antes de tentar novamente", - "@logRateLimitedSuggestion": { - "description": "Rate limit fix suggestion" - }, - "logNetworkErrorDescription": "Problemas de conexão detectados", - "@logNetworkErrorDescription": { - "description": "Network error explanation" - }, - "logNetworkErrorSuggestion": "Verifique sua conexão de internet", - "@logNetworkErrorSuggestion": { - "description": "Network error fix suggestion" - }, - "logTrackNotFoundDescription": "Algumas faixas não foram encontradas nos serviços de download", - "@logTrackNotFoundDescription": { - "description": "Track not found explanation" - }, - "logTrackNotFoundSuggestion": "A faixa pode não estar disponível em qualidade sem perdas", - "@logTrackNotFoundSuggestion": { - "description": "Track not found explanation" - }, - "logTotalErrors": "Total de erros: {count}", - "@logTotalErrors": { - "description": "Error count display", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "logAffected": "Afetado(s): {domains}", - "@logAffected": { - "description": "Affected domains display", - "placeholders": { - "domains": { - "type": "String" - } - } - }, - "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": "Credenciais do Spotify", - "@credentialsTitle": { - "description": "Credentials dialog title" - }, - "credentialsDescription": "Digite a sua Client ID e Secret para usar a sua própria cota de aplicativo do Spotify.", - "@credentialsDescription": { - "description": "Credentials dialog explanation" - }, - "credentialsClientId": "Client ID", - "@credentialsClientId": { - "description": "Client ID field label - DO NOT TRANSLATE" - }, - "credentialsClientIdHint": "Colar Client ID", - "@credentialsClientIdHint": { - "description": "Client ID placeholder" - }, - "credentialsClientSecret": "Client Secret", - "@credentialsClientSecret": { - "description": "Client Secret field label - DO NOT TRANSLATE" - }, - "credentialsClientSecretHint": "Colar Client Secret", - "@credentialsClientSecretHint": { - "description": "Client Secret placeholder" - }, - "channelStable": "Estável", - "@channelStable": { - "description": "Update channel - stable releases" - }, - "channelPreview": "Prévia", - "@channelPreview": { - "description": "Update channel - beta/preview releases" - }, - "sectionSearchSource": "Origem da Pesquisa", - "@sectionSearchSource": { - "description": "Settings section header" - }, - "sectionDownload": "Download", - "@sectionDownload": { - "description": "Settings section header" - }, - "sectionPerformance": "Desempenho", - "@sectionPerformance": { - "description": "Settings section header" - }, - "sectionApp": "Aplicativo", - "@sectionApp": { - "description": "Settings section header" - }, - "sectionData": "Dados", - "@sectionData": { - "description": "Settings section header" - }, - "sectionDebug": "Depuração", - "@sectionDebug": { - "description": "Settings section header" - }, - "sectionService": "Serviço", - "@sectionService": { - "description": "Settings section header" - }, - "sectionAudioQuality": "Qualidade de Áudio", - "@sectionAudioQuality": { - "description": "Settings section header" - }, - "sectionFileSettings": "Configurações de Arquivo", - "@sectionFileSettings": { - "description": "Settings section header" - }, - "sectionLyrics": "Letras", - "@sectionLyrics": { - "description": "Settings section header" - }, - "lyricsMode": "Modo de Letras", - "@lyricsMode": { - "description": "Setting - how to save lyrics" - }, - "lyricsModeDescription": "Escolha como as letras são salvas com os seus downloads", - "@lyricsModeDescription": { - "description": "Lyrics mode picker description" - }, - "lyricsModeEmbed": "Incorporar no arquivo", - "@lyricsModeEmbed": { - "description": "Lyrics mode option - embed in audio file" - }, - "lyricsModeEmbedSubtitle": "Letra armazenada nos metadados da FLAC", - "@lyricsModeEmbedSubtitle": { - "description": "Subtitle for embed option" - }, - "lyricsModeExternal": "Arquivo .lrc externo", - "@lyricsModeExternal": { - "description": "Lyrics mode option - separate LRC file" - }, - "lyricsModeExternalSubtitle": "Arquivo .lrc separado para reprodutores como o Samsung Music", - "@lyricsModeExternalSubtitle": { - "description": "Subtitle for external option" - }, - "lyricsModeBoth": "Ambos", - "@lyricsModeBoth": { - "description": "Lyrics mode option - embed and external" - }, - "lyricsModeBothSubtitle": "Incorporar e salvar arquivo .lrc", - "@lyricsModeBothSubtitle": { - "description": "Subtitle for both option" - }, - "sectionColor": "Cor", - "@sectionColor": { - "description": "Settings section header" - }, - "sectionTheme": "Tema", - "@sectionTheme": { - "description": "Settings section header" - }, - "sectionLayout": "Layout", - "@sectionLayout": { - "description": "Settings section header" - }, - "sectionLanguage": "Idioma", - "@sectionLanguage": { - "description": "Settings section header for language" - }, - "appearanceLanguage": "Idioma do aplicativo", - "@appearanceLanguage": { - "description": "Language setting title" - }, - "appearanceLanguageSubtitle": "Escolha o seu idioma preferido", - "@appearanceLanguageSubtitle": { - "description": "Language setting subtitle" - }, - "settingsAppearanceSubtitle": "Tema, cores, exibição", - "@settingsAppearanceSubtitle": { - "description": "Appearance settings description" - }, - "settingsDownloadSubtitle": "Serviço, qualidade, formato de nome de arquivo", - "@settingsDownloadSubtitle": { - "description": "Download settings description" - }, - "settingsOptionsSubtitle": "Fallback, letras, arte de capa, atualizações", - "@settingsOptionsSubtitle": { - "description": "Options settings description" - }, - "settingsExtensionsSubtitle": "Gerenciar provedores de download", - "@settingsExtensionsSubtitle": { - "description": "Extensions settings description" - }, - "settingsLogsSubtitle": "Ver logs do app para depuração", - "@settingsLogsSubtitle": { - "description": "Logs settings description" - }, - "loadingSharedLink": "Carregando link compartilhado...", - "@loadingSharedLink": { - "description": "Status when opening shared URL" - }, - "pressBackAgainToExit": "Pressione voltar novamente para sair", - "@pressBackAgainToExit": { - "description": "Exit confirmation message" - }, - "tracksHeader": "Faixas", - "@tracksHeader": { - "description": "Section header for track list" - }, - "downloadAllCount": "Baixar Todos ({count})", - "@downloadAllCount": { - "description": "Download all button with count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "tracksCount": "{count, plural, one {}=1{1 faixa} other{{count} faixas}}", - "@tracksCount": { - "description": "Track count display", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "trackCopyFilePath": "Copiar caminho do arquivo", - "@trackCopyFilePath": { - "description": "Action - copy file path" - }, - "trackRemoveFromDevice": "Remover do dispositivo", - "@trackRemoveFromDevice": { - "description": "Action - delete downloaded file" - }, - "trackLoadLyrics": "Carregar Letras", - "@trackLoadLyrics": { - "description": "Action - fetch lyrics" - }, - "trackMetadata": "Metadados", - "@trackMetadata": { - "description": "Tab title - track metadata" - }, - "trackFileInfo": "Informações do Arquivo", - "@trackFileInfo": { - "description": "Tab title - file information" - }, - "trackLyrics": "Letras", - "@trackLyrics": { - "description": "Tab title - lyrics" - }, - "trackFileNotFound": "Arquivo não encontrado", - "@trackFileNotFound": { - "description": "Error - file doesn't exist" - }, - "trackOpenInDeezer": "Abrir no Deezer", - "@trackOpenInDeezer": { - "description": "Action - open track in Deezer app" - }, - "trackOpenInSpotify": "Abrir no Spotify", - "@trackOpenInSpotify": { - "description": "Action - open track in Spotify app" - }, - "trackTrackName": "Nome da faixa", - "@trackTrackName": { - "description": "Metadata label - track title" - }, - "trackArtist": "Artista", - "@trackArtist": { - "description": "Metadata label - artist name" - }, - "trackAlbumArtist": "Artista do álbum", - "@trackAlbumArtist": { - "description": "Metadata label - album artist" - }, - "trackAlbum": "Álbum", - "@trackAlbum": { - "description": "Metadata label - album name" - }, - "trackTrackNumber": "Número da faixa", - "@trackTrackNumber": { - "description": "Metadata label - track number" - }, - "trackDiscNumber": "Número do disco", - "@trackDiscNumber": { - "description": "Metadata label - disc number" - }, - "trackDuration": "Duração", - "@trackDuration": { - "description": "Metadata label - track length" - }, - "trackAudioQuality": "Qualidade de Áudio", - "@trackAudioQuality": { - "description": "Metadata label - audio quality" - }, - "trackReleaseDate": "Data de lançamento", - "@trackReleaseDate": { - "description": "Metadata label - release date" - }, - "trackGenre": "Género", - "@trackGenre": { - "description": "Metadata label - music genre" - }, - "trackLabel": "Gravadora", - "@trackLabel": { - "description": "Metadata label - record label" - }, - "trackCopyright": "Direitos Autorais", - "@trackCopyright": { - "description": "Metadata label - copyright information" - }, - "trackDownloaded": "Baixado", - "@trackDownloaded": { - "description": "Metadata label - download date" - }, - "trackCopyLyrics": "Copiar letra", - "@trackCopyLyrics": { - "description": "Action - copy lyrics to clipboard" - }, - "trackLyricsNotAvailable": "Letra não disponível para esta faixa", - "@trackLyricsNotAvailable": { - "description": "Message when lyrics not found" - }, - "trackLyricsTimeout": "A solicitação expirou. Tente novamente mais tarde.", - "@trackLyricsTimeout": { - "description": "Message when lyrics request times out" - }, - "trackLyricsLoadFailed": "Falha ao carregar a letra", - "@trackLyricsLoadFailed": { - "description": "Message when lyrics loading fails" - }, - "trackEmbedLyrics": "Incorporar Letras", - "@trackEmbedLyrics": { - "description": "Action - embed lyrics into audio file" - }, - "trackLyricsEmbedded": "Letras incorporadas com sucesso", - "@trackLyricsEmbedded": { - "description": "Snackbar - lyrics saved to file" - }, - "trackInstrumental": "Faixa de instrumentais", - "@trackInstrumental": { - "description": "Message when track is instrumental (no lyrics)" - }, - "trackCopiedToClipboard": "Copiado para a área de transferência", - "@trackCopiedToClipboard": { - "description": "Snackbar - content copied" - }, - "trackDeleteConfirmTitle": "Remover do dispositivo?", - "@trackDeleteConfirmTitle": { - "description": "Delete confirmation title" - }, - "trackDeleteConfirmMessage": "Isto irá excluir o arquivo baixado permanentemente e removê-lo do seu histórico.", - "@trackDeleteConfirmMessage": { - "description": "Delete confirmation message" - }, - "trackCannotOpen": "Não foi possível abrir: {message}", - "@trackCannotOpen": { - "description": "Error opening file", - "placeholders": { - "message": { - "type": "String" - } - } - }, - "dateToday": "Hoje", - "@dateToday": { - "description": "Relative date - today" - }, - "dateYesterday": "Ontem", - "@dateYesterday": { - "description": "Relative date - yesterday" - }, - "dateDaysAgo": "{count} dias atrás", - "@dateDaysAgo": { - "description": "Relative date - days ago", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "dateWeeksAgo": "{count} semanas atrás", - "@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" - } - } - }, - "concurrentSequential": "Sequencial", - "@concurrentSequential": { - "description": "Download mode - one at a time" - }, - "concurrentParallel2": "2 Paralelos", - "@concurrentParallel2": { - "description": "Download mode - 2 simultaneous" - }, - "concurrentParallel3": "3 Paralelos", - "@concurrentParallel3": { - "description": "Download mode - 3 simultaneous" - }, - "tapToSeeError": "Toque para ver os detalhes do erro", - "@tapToSeeError": { - "description": "Tooltip for failed download" - }, - "storeFilterAll": "Tudo", - "@storeFilterAll": { - "description": "Store filter - all extensions" - }, - "storeFilterMetadata": "Metadados", - "@storeFilterMetadata": { - "description": "Store filter - metadata providers" - }, - "storeFilterDownload": "Download", - "@storeFilterDownload": { - "description": "Store filter - download providers" - }, - "storeFilterUtility": "Utilidade", - "@storeFilterUtility": { - "description": "Store filter - utility extensions" - }, - "storeFilterLyrics": "Letras", - "@storeFilterLyrics": { - "description": "Store filter - lyrics providers" - }, - "storeFilterIntegration": "Integração", - "@storeFilterIntegration": { - "description": "Store filter - integrations" - }, - "storeClearFilters": "Limpar filtros", - "@storeClearFilters": { - "description": "Button to clear all filters" - }, - "storeNoResults": "Nenhuma extensão encontrada", - "@storeNoResults": { - "description": "Empty state when no extensions match filters" - }, - "extensionProviderPriority": "Prioridade de Provedor", - "@extensionProviderPriority": { - "description": "Extension capability - provider priority" - }, - "extensionInstallButton": "Instalar Extensão", - "@extensionInstallButton": { - "description": "Button to install extension" - }, - "extensionDefaultProvider": "Padrão (Deezer/Spotify)", - "@extensionDefaultProvider": { - "description": "Default search provider option" - }, - "extensionDefaultProviderSubtitle": "Usar pesquisa integrada", - "@extensionDefaultProviderSubtitle": { - "description": "Subtitle for default provider" - }, - "extensionAuthor": "Autor", - "@extensionAuthor": { - "description": "Extension detail - author" - }, - "extensionId": "ID", - "@extensionId": { - "description": "Extension detail - unique ID" - }, - "extensionError": "Erro", - "@extensionError": { - "description": "Extension detail - error message" - }, - "extensionCapabilities": "Funcionalidades", - "@extensionCapabilities": { - "description": "Section header - extension features" - }, - "extensionMetadataProvider": "Provedor de Metadados", - "@extensionMetadataProvider": { - "description": "Capability - provides metadata" - }, - "extensionDownloadProvider": "Provedor de Download", - "@extensionDownloadProvider": { - "description": "Capability - provides downloads" - }, - "extensionLyricsProvider": "Provedor de Letras", - "@extensionLyricsProvider": { - "description": "Capability - provides lyrics" - }, - "extensionUrlHandler": "Gerenciador de URL", - "@extensionUrlHandler": { - "description": "Capability - handles URLs" - }, - "extensionQualityOptions": "Opções de Qualidade", - "@extensionQualityOptions": { - "description": "Capability - quality selection" - }, - "extensionPostProcessingHooks": "Ganchos de Pós-Processamento", - "@extensionPostProcessingHooks": { - "description": "Capability - post-processing" - }, - "extensionPermissions": "Permissões", - "@extensionPermissions": { - "description": "Section header - required permissions" - }, - "extensionSettings": "Configurações", - "@extensionSettings": { - "description": "Section header - extension settings" - }, - "extensionRemoveButton": "Remover Extensão", - "@extensionRemoveButton": { - "description": "Button to uninstall extension" - }, - "extensionUpdated": "Atualizado", - "@extensionUpdated": { - "description": "Extension detail - last update" - }, - "extensionMinAppVersion": "Versão Mínima do App", - "@extensionMinAppVersion": { - "description": "Extension detail - minimum app version" - }, - "extensionCustomTrackMatching": "Correspondência de Faixa Personalizada", - "@extensionCustomTrackMatching": { - "description": "Capability - custom track matching algorithm" - }, - "extensionPostProcessing": "Pós-Processamento", - "@extensionPostProcessing": { - "description": "Capability - post-download processing" - }, - "extensionHooksAvailable": "{count} gancho(s) disponíveis", - "@extensionHooksAvailable": { - "description": "Post-processing hooks count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "extensionPatternsCount": "{count} padrão(ões)", - "@extensionPatternsCount": { - "description": "URL patterns count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "extensionStrategy": "Estratégia: {strategy}", - "@extensionStrategy": { - "description": "Track matching strategy name", - "placeholders": { - "strategy": { - "type": "String" - } - } - }, - "extensionsProviderPrioritySection": "Prioridade de Provedor", - "@extensionsProviderPrioritySection": { - "description": "Section header - provider priority" - }, - "extensionsInstalledSection": "Extensões Instaladas", - "@extensionsInstalledSection": { - "description": "Section header - installed extensions" - }, - "extensionsNoExtensions": "Nenhuma extensão instalada", - "@extensionsNoExtensions": { - "description": "Empty state - no extensions" - }, - "extensionsNoExtensionsSubtitle": "Instale arquivos .spotiflac-ext para adicionar novos provedores", - "@extensionsNoExtensionsSubtitle": { - "description": "Empty state subtitle" - }, - "extensionsInstallButton": "Instalar Extensão", - "@extensionsInstallButton": { - "description": "Button to install extension from file" - }, - "extensionsInfoTip": "Extensões podem adicionar novos metadados e baixar provedores. Somente instale extensões a partir de fontes confiáveis.", - "@extensionsInfoTip": { - "description": "Security warning about extensions" - }, - "extensionsInstalledSuccess": "Extensão instalada com sucesso", - "@extensionsInstalledSuccess": { - "description": "Success message after install" - }, - "extensionsDownloadPriority": "Prioridade de Download", - "@extensionsDownloadPriority": { - "description": "Setting - download provider order" - }, - "extensionsDownloadPrioritySubtitle": "Definir ordem do serviço de download", - "@extensionsDownloadPrioritySubtitle": { - "description": "Subtitle for download priority" - }, - "extensionsNoDownloadProvider": "Nenhuma extensão com provedor de download", - "@extensionsNoDownloadProvider": { - "description": "Empty state - no download providers" - }, - "extensionsMetadataPriority": "Prioridade de Metadados", - "@extensionsMetadataPriority": { - "description": "Setting - metadata provider order" - }, - "extensionsMetadataPrioritySubtitle": "Definir ordem de origem de pesquisa e metadados", - "@extensionsMetadataPrioritySubtitle": { - "description": "Subtitle for metadata priority" - }, - "extensionsNoMetadataProvider": "Nenhuma extensão com provedor de metadados", - "@extensionsNoMetadataProvider": { - "description": "Empty state - no metadata providers" - }, - "extensionsSearchProvider": "Provedor de Pesquisa", - "@extensionsSearchProvider": { - "description": "Setting - search provider selection" - }, - "extensionsNoCustomSearch": "Nenhuma extensão com pesquisa personalizada", - "@extensionsNoCustomSearch": { - "description": "Empty state - no search providers" - }, - "extensionsSearchProviderDescription": "Escolha qual serviço utilizar para pesquisar faixas", - "@extensionsSearchProviderDescription": { - "description": "Search provider setting description" - }, - "extensionsCustomSearch": "Busca personalizada", - "@extensionsCustomSearch": { - "description": "Label for custom search provider" - }, - "extensionsErrorLoading": "Erro ao carregar extensão", - "@extensionsErrorLoading": { - "description": "Error message when extension fails to load" - }, - "qualityFlacLossless": "FLAC Lossless", - "@qualityFlacLossless": { - "description": "Quality option - CD quality FLAC" - }, - "qualityFlacLosslessSubtitle": "16-bit / 44.1kHz", - "@qualityFlacLosslessSubtitle": { - "description": "Technical spec for lossless" - }, - "qualityHiResFlac": "Hi-Res FLAC", - "@qualityHiResFlac": { - "description": "Quality option - high resolution FLAC" - }, - "qualityHiResFlacSubtitle": "24-bit / até 96kHz", - "@qualityHiResFlacSubtitle": { - "description": "Technical spec for hi-res" - }, - "qualityHiResFlacMax": "Hi-Res FLAC Max", - "@qualityHiResFlacMax": { - "description": "Quality option - maximum resolution FLAC" - }, - "qualityHiResFlacMaxSubtitle": "24-bit / até 192kHz", - "@qualityHiResFlacMaxSubtitle": { - "description": "Technical spec for hi-res max" - }, - "qualityLossy": "Lossy", - "@qualityLossy": { - "description": "Quality option - lossy format (MP3/Opus)" - }, - "qualityLossyMp3Subtitle": "MP3 320kbps (converted from FLAC)", - "@qualityLossyMp3Subtitle": { - "description": "Technical spec for lossy MP3" - }, - "qualityLossyOpusSubtitle": "Opus 128kbps (converted from FLAC)", - "@qualityLossyOpusSubtitle": { - "description": "Technical spec for lossy Opus" - }, - "enableLossyOption": "Enable Lossy Option", - "@enableLossyOption": { - "description": "Setting - enable lossy quality option" - }, - "enableLossyOptionSubtitleOn": "Lossy quality option is available", - "@enableLossyOptionSubtitleOn": { - "description": "Subtitle when lossy is enabled" - }, - "enableLossyOptionSubtitleOff": "Downloads FLAC then converts to lossy format", - "@enableLossyOptionSubtitleOff": { - "description": "Subtitle when lossy is disabled" - }, - "lossyFormat": "Lossy Format", - "@lossyFormat": { - "description": "Setting - choose lossy format" - }, - "lossyFormatDescription": "Choose the lossy format for conversion", - "@lossyFormatDescription": { - "description": "Description for lossy format picker" - }, - "lossyFormatMp3Subtitle": "320kbps, best compatibility", - "@lossyFormatMp3Subtitle": { - "description": "MP3 format description" - }, - "lossyFormatOpusSubtitle": "128kbps, better quality at smaller size", - "@lossyFormatOpusSubtitle": { - "description": "Opus format description" - }, - "qualityNote": "A qualidade real depende da faixa que estiver disponível no serviço", - "@qualityNote": { - "description": "Note about quality availability" - }, - "youtubeQualityNote": "YouTube provides lossy audio only. Not part of lossless fallback.", - "@youtubeQualityNote": { - "description": "Note for YouTube service explaining lossy-only quality" - }, - "downloadAskBeforeDownload": "Perguntar qualidade antes de baixar", - "@downloadAskBeforeDownload": { - "description": "Setting - show quality picker" - }, - "downloadDirectory": "Pasta de Download", - "@downloadDirectory": { - "description": "Setting - download folder" - }, - "downloadSeparateSinglesFolder": "Pasta de Singles Separada", - "@downloadSeparateSinglesFolder": { - "description": "Setting - separate folder for singles" - }, - "downloadAlbumFolderStructure": "Estrutura da Pasta de Álbum", - "@downloadAlbumFolderStructure": { - "description": "Setting - album folder organization" - }, - "downloadUseAlbumArtistForFolders": "Use Album Artist for folders", - "@downloadUseAlbumArtistForFolders": { - "description": "Setting - choose whether artist folders use Album Artist or Track Artist" - }, - "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" - }, - "downloadUsePrimaryArtistOnly": "Primary artist only for folders", - "@downloadUsePrimaryArtistOnly": { - "description": "Setting - strip featured artists from folder name" - }, - "downloadUsePrimaryArtistOnlyEnabled": "Featured artists removed from folder name (e.g. Justin Bieber, Quavo → Justin Bieber)", - "@downloadUsePrimaryArtistOnlyEnabled": { - "description": "Subtitle when primary artist only is enabled" - }, - "downloadUsePrimaryArtistOnlyDisabled": "Full artist string used for folder name", - "@downloadUsePrimaryArtistOnlyDisabled": { - "description": "Subtitle when primary artist only is disabled" - }, - "downloadSaveFormat": "Formato para Salvar", - "@downloadSaveFormat": { - "description": "Setting - output file format" - }, - "downloadSelectService": "Selecionar Serviço", - "@downloadSelectService": { - "description": "Dialog title - choose download service" - }, - "downloadSelectQuality": "Selecionar Qualidade", - "@downloadSelectQuality": { - "description": "Dialog title - choose audio quality" - }, - "downloadFrom": "Baixar De", - "@downloadFrom": { - "description": "Label - download source" - }, - "downloadDefaultQualityLabel": "Qualidade Padrão", - "@downloadDefaultQualityLabel": { - "description": "Label - default quality setting" - }, - "downloadBestAvailable": "Melhor Disponível", - "@downloadBestAvailable": { - "description": "Quality option - highest available" - }, - "folderNone": "Nenhuma", - "@folderNone": { - "description": "Folder option - no organization" - }, - "folderNoneSubtitle": "Salvar todos os arquivos diretamente na pasta de download", - "@folderNoneSubtitle": { - "description": "Subtitle for no folder organization" - }, - "folderArtist": "Artista", - "@folderArtist": { - "description": "Folder option - by artist" - }, - "folderArtistSubtitle": "Nome do Artista/arquivo", - "@folderArtistSubtitle": { - "description": "Folder structure example" - }, - "folderAlbum": "Álbum", - "@folderAlbum": { - "description": "Folder option - by album" - }, - "folderAlbumSubtitle": "Nome do Álbum/arquivo", - "@folderAlbumSubtitle": { - "description": "Folder structure example" - }, - "folderArtistAlbum": "Artista/Álbum", - "@folderArtistAlbum": { - "description": "Folder option - nested" - }, - "folderArtistAlbumSubtitle": "Nome do Artista/Nome do Álbum/arquivo", - "@folderArtistAlbumSubtitle": { - "description": "Folder structure example" - }, - "serviceTidal": "Tidal", - "@serviceTidal": { - "description": "Service name - DO NOT TRANSLATE" - }, - "serviceQobuz": "Qobuz", - "@serviceQobuz": { - "description": "Service name - DO NOT TRANSLATE" - }, - "serviceAmazon": "Amazon", - "@serviceAmazon": { - "description": "Service name - DO NOT TRANSLATE" - }, - "serviceDeezer": "Deezer", - "@serviceDeezer": { - "description": "Service name - DO NOT TRANSLATE" - }, - "serviceSpotify": "Spotify", - "@serviceSpotify": { - "description": "Service name - DO NOT TRANSLATE" - }, - "appearanceAmoledDark": "Escuro AMOLED", - "@appearanceAmoledDark": { - "description": "Theme option - pure black" - }, - "appearanceAmoledDarkSubtitle": "Fundo preto puro", - "@appearanceAmoledDarkSubtitle": { - "description": "Subtitle for AMOLED dark" - }, - "appearanceChooseAccentColor": "Escolha a Cor de Destaque", - "@appearanceChooseAccentColor": { - "description": "Color picker dialog title" - }, - "appearanceChooseTheme": "Modo do Tema", - "@appearanceChooseTheme": { - "description": "Theme picker dialog title" - }, - "queueTitle": "Fila de Download", - "@queueTitle": { - "description": "Queue screen title" - }, - "queueClearAll": "Limpar Tudo", - "@queueClearAll": { - "description": "Button - clear all queue items" - }, - "queueClearAllMessage": "Você tem certeza que deseja limpar todos os downloads?", - "@queueClearAllMessage": { - "description": "Clear queue confirmation" - }, - "queueExportFailed": "Export", - "@queueExportFailed": { - "description": "Button - export failed downloads to TXT" - }, - "queueExportFailedSuccess": "Failed downloads exported to TXT file", - "@queueExportFailedSuccess": { - "description": "Success message after exporting failed downloads" - }, - "queueExportFailedClear": "Clear Failed", - "@queueExportFailedClear": { - "description": "Action to clear failed downloads after export" - }, - "queueExportFailedError": "Failed to export downloads", - "@queueExportFailedError": { - "description": "Error message when export fails" - }, - "settingsAutoExportFailed": "Auto-export failed downloads", - "@settingsAutoExportFailed": { - "description": "Setting toggle for auto-export" - }, - "settingsAutoExportFailedSubtitle": "Save failed downloads to TXT file automatically", - "@settingsAutoExportFailedSubtitle": { - "description": "Subtitle for auto-export setting" - }, - "settingsDownloadNetwork": "Download Network", - "@settingsDownloadNetwork": { - "description": "Setting for network type preference" - }, - "settingsDownloadNetworkAny": "WiFi + Mobile Data", - "@settingsDownloadNetworkAny": { - "description": "Network option - use any connection" - }, - "settingsDownloadNetworkWifiOnly": "WiFi Only", - "@settingsDownloadNetworkWifiOnly": { - "description": "Network option - only use WiFi" - }, - "settingsDownloadNetworkSubtitle": "Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.", - "@settingsDownloadNetworkSubtitle": { - "description": "Subtitle explaining network preference" - }, - "queueEmpty": "Nenhum download na fila", - "@queueEmpty": { - "description": "Empty queue state title" - }, - "queueEmptySubtitle": "Adicione faixas a partir da tela inicial", - "@queueEmptySubtitle": { - "description": "Empty queue state subtitle" - }, - "queueClearCompleted": "Limpar concluídos", - "@queueClearCompleted": { - "description": "Button - clear finished downloads" - }, - "queueDownloadFailed": "Download Falhou", - "@queueDownloadFailed": { - "description": "Error dialog title" - }, - "queueTrackLabel": "Faixa:", - "@queueTrackLabel": { - "description": "Label in error dialog" - }, - "queueArtistLabel": "Artista:", - "@queueArtistLabel": { - "description": "Label in error dialog" - }, - "queueErrorLabel": "Erro:", - "@queueErrorLabel": { - "description": "Label in error dialog" - }, - "queueUnknownError": "Erro desconhecido", - "@queueUnknownError": { - "description": "Fallback error message" - }, - "albumFolderArtistAlbum": "Artista / Álbum", - "@albumFolderArtistAlbum": { - "description": "Album folder option" - }, - "albumFolderArtistAlbumSubtitle": "Álbuns/Nome do Artista/Nome do Álbum/", - "@albumFolderArtistAlbumSubtitle": { - "description": "Folder structure example" - }, - "albumFolderArtistYearAlbum": "Artista / [Ano] Álbum", - "@albumFolderArtistYearAlbum": { - "description": "Album folder option with year" - }, - "albumFolderArtistYearAlbumSubtitle": "Álbuns/Nome do Artista/[2005] Nome do Álbum/", - "@albumFolderArtistYearAlbumSubtitle": { - "description": "Folder structure example" - }, - "albumFolderAlbumOnly": "Somente Álbum", - "@albumFolderAlbumOnly": { - "description": "Album folder option" - }, - "albumFolderAlbumOnlySubtitle": "Albums/Nome do Álbum/", - "@albumFolderAlbumOnlySubtitle": { - "description": "Folder structure example" - }, - "albumFolderYearAlbum": "[Ano] Álbum", - "@albumFolderYearAlbum": { - "description": "Album folder option with year" - }, - "albumFolderYearAlbumSubtitle": "Álbuns/[2005] Nome do Álbum/", - "@albumFolderYearAlbumSubtitle": { - "description": "Folder structure example" - }, - "albumFolderArtistAlbumSingles": "Artista / Álbum + Singles", - "@albumFolderArtistAlbumSingles": { - "description": "Album folder option with singles inside artist" - }, - "albumFolderArtistAlbumSinglesSubtitle": "Artista/Álbum/ e Artista/Singles/", - "@albumFolderArtistAlbumSinglesSubtitle": { - "description": "Folder structure example" - }, - "downloadedAlbumDeleteSelected": "Apagar Selecionados", - "@downloadedAlbumDeleteSelected": { - "description": "Button - delete selected tracks" - }, - "downloadedAlbumDeleteMessage": "Excluir {count} {count, plural, one {}=1{faixa} other{faixas}} deste álbum?\n\nIsso também excluirá os arquivos do armazenamento.", - "@downloadedAlbumDeleteMessage": { - "description": "Delete confirmation with count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "downloadedAlbumTracksHeader": "Faixas", - "@downloadedAlbumTracksHeader": { - "description": "Section header for tracks" - }, - "downloadedAlbumDownloadedCount": "{count} baixado(s)", - "@downloadedAlbumDownloadedCount": { - "description": "Downloaded tracks count badge", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "downloadedAlbumSelectedCount": "{count} selecionado(s)", - "@downloadedAlbumSelectedCount": { - "description": "Selection count indicator", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "downloadedAlbumAllSelected": "Todas as faixas selecionadas", - "@downloadedAlbumAllSelected": { - "description": "Status - all items selected" - }, - "downloadedAlbumTapToSelect": "Toque nas faixas para selecionar", - "@downloadedAlbumTapToSelect": { - "description": "Selection hint" - }, - "downloadedAlbumDeleteCount": "Apagar {count} {count, plural, one {}=1{faixa} other{faixas}}", - "@downloadedAlbumDeleteCount": { - "description": "Delete button text with count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "downloadedAlbumSelectToDelete": "Selecione as faixas para apagar", - "@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" - } - } - }, - "utilityFunctions": "Funções Utilitárias", - "@utilityFunctions": { - "description": "Extension capability - utility functions" - }, - "recentTypeArtist": "Artista", - "@recentTypeArtist": { - "description": "Recent access item type - artist" - }, - "recentTypeAlbum": "Álbum", - "@recentTypeAlbum": { - "description": "Recent access item type - album" - }, - "recentTypeSong": "Música", - "@recentTypeSong": { - "description": "Recent access item type - song/track" - }, - "recentTypePlaylist": "Playlist", - "@recentTypePlaylist": { - "description": "Recent access item type - playlist" - }, - "recentEmpty": "No recent items yet", - "@recentEmpty": { - "description": "Empty state text for recent access list" - }, - "recentShowAllDownloads": "Show All Downloads", - "@recentShowAllDownloads": { - "description": "Button label to unhide hidden downloads in recent access" - }, - "recentPlaylistInfo": "Playlist: {name}", - "@recentPlaylistInfo": { - "description": "Snackbar message when tapping playlist in recent access", - "placeholders": { - "name": { - "type": "String", - "description": "Playlist name" - } - } - }, - "errorGeneric": "Erro: {message}", - "@errorGeneric": { - "description": "Generic error message format", - "placeholders": { - "message": { - "type": "String", - "description": "Error message" - } - } - }, - "discographyDownload": "Baixar Discografia", - "@discographyDownload": { - "description": "Button - download artist discography" - }, - "discographyDownloadAll": "Baixar Tudo", - "@discographyDownloadAll": { - "description": "Option - download entire discography" - }, - "discographyDownloadAllSubtitle": "{count} faixas de {albumCount} lançamentos", - "@discographyDownloadAllSubtitle": { - "description": "Subtitle showing total tracks and albums", - "placeholders": { - "count": { - "type": "int" - }, - "albumCount": { - "type": "int" - } - } - }, - "discographyAlbumsOnly": "Somente Álbuns", - "@discographyAlbumsOnly": { - "description": "Option - download only albums" - }, - "discographyAlbumsOnlySubtitle": "{count} faixas de {albumCount} álbuns", - "@discographyAlbumsOnlySubtitle": { - "description": "Subtitle showing album tracks count", - "placeholders": { - "count": { - "type": "int" - }, - "albumCount": { - "type": "int" - } - } - }, - "discographySinglesOnly": "Somente Singles e EPs", - "@discographySinglesOnly": { - "description": "Option - download only singles" - }, - "discographySinglesOnlySubtitle": "{count} faixas de {albumCount} singles", - "@discographySinglesOnlySubtitle": { - "description": "Subtitle showing singles tracks count", - "placeholders": { - "count": { - "type": "int" - }, - "albumCount": { - "type": "int" - } - } - }, - "discographySelectAlbums": "Selecione Álbuns...", - "@discographySelectAlbums": { - "description": "Option - manually select albums to download" - }, - "discographySelectAlbumsSubtitle": "Escolher álbuns ou singles específicos", - "@discographySelectAlbumsSubtitle": { - "description": "Subtitle for select albums option" - }, - "discographyFetchingTracks": "Buscando faixas...", - "@discographyFetchingTracks": { - "description": "Progress - fetching album tracks" - }, - "discographyFetchingAlbum": "Buscando {current} de {total}...", - "@discographyFetchingAlbum": { - "description": "Progress - fetching specific album", - "placeholders": { - "current": { - "type": "int" - }, - "total": { - "type": "int" - } - } - }, - "discographySelectedCount": "{count} selecionado(s)", - "@discographySelectedCount": { - "description": "Selection count badge", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "discographyDownloadSelected": "Baixar Selecionados", - "@discographyDownloadSelected": { - "description": "Button - download selected albums" - }, - "discographyAddedToQueue": "{count} faixas adicionadas à fila", - "@discographyAddedToQueue": { - "description": "Snackbar - tracks added from discography", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "discographySkippedDownloaded": "{added} adicionada(s), {skipped} já baixada(s)", - "@discographySkippedDownloaded": { - "description": "Snackbar - with skipped tracks count", - "placeholders": { - "added": { - "type": "int" - }, - "skipped": { - "type": "int" - } - } - }, - "discographyNoAlbums": "Nenhum álbum disponível", - "@discographyNoAlbums": { - "description": "Error - no albums found for artist" - }, - "discographyFailedToFetch": "Falha ao obter alguns álbuns", - "@discographyFailedToFetch": { - "description": "Error - some albums failed to load" - }, - "sectionStorageAccess": "Storage Access", - "@sectionStorageAccess": { - "description": "Section header for storage access settings" - }, - "allFilesAccess": "All Files Access", - "@allFilesAccess": { - "description": "Toggle for MANAGE_EXTERNAL_STORAGE permission" - }, - "allFilesAccessEnabledSubtitle": "Can write to any folder", - "@allFilesAccessEnabledSubtitle": { - "description": "Subtitle when all files access is enabled" - }, - "allFilesAccessDisabledSubtitle": "Limited to media folders only", - "@allFilesAccessDisabledSubtitle": { - "description": "Subtitle when all files access is disabled" - }, - "allFilesAccessDescription": "Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.", - "@allFilesAccessDescription": { - "description": "Description explaining when to enable all files access" - }, - "allFilesAccessDeniedMessage": "Permission was denied. Please enable 'All files access' manually in system settings.", - "@allFilesAccessDeniedMessage": { - "description": "Message when permission is permanently denied" - }, - "allFilesAccessDisabledMessage": "All Files Access disabled. The app will use limited storage access.", - "@allFilesAccessDisabledMessage": { - "description": "Snackbar message when user disables all files access" - }, - "settingsLocalLibrary": "Local Library", - "@settingsLocalLibrary": { - "description": "Settings menu item - local library" - }, - "settingsLocalLibrarySubtitle": "Scan music & detect duplicates", - "@settingsLocalLibrarySubtitle": { - "description": "Subtitle for local library settings" - }, - "settingsCache": "Storage & Cache", - "@settingsCache": { - "description": "Settings menu item - cache management" - }, - "settingsCacheSubtitle": "View size and clear cached data", - "@settingsCacheSubtitle": { - "description": "Subtitle for cache management menu" - }, - "libraryTitle": "Local Library", - "@libraryTitle": { - "description": "Library settings page title" - }, - "libraryStatus": "Library Status", - "@libraryStatus": { - "description": "Section header for library status" - }, - "libraryScanSettings": "Scan Settings", - "@libraryScanSettings": { - "description": "Section header for scan settings" - }, - "libraryEnableLocalLibrary": "Enable Local Library", - "@libraryEnableLocalLibrary": { - "description": "Toggle to enable library scanning" - }, - "libraryEnableLocalLibrarySubtitle": "Scan and track your existing music", - "@libraryEnableLocalLibrarySubtitle": { - "description": "Subtitle for enable toggle" - }, - "libraryFolder": "Library Folder", - "@libraryFolder": { - "description": "Folder selection setting" - }, - "libraryFolderHint": "Tap to select folder", - "@libraryFolderHint": { - "description": "Placeholder when no folder selected" - }, - "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" - }, - "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" - }, - "libraryTracksCount": "{count} tracks", - "@libraryTracksCount": { - "description": "Track count in library", - "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" - }, - "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" - }, - "libraryFilterDate": "Date Added", - "@libraryFilterDate": { - "description": "Filter section - date range" - }, - "libraryFilterDateToday": "Today", - "@libraryFilterDateToday": { - "description": "Filter option - today only" - }, - "libraryFilterDateWeek": "This Week", - "@libraryFilterDateWeek": { - "description": "Filter option - this week" - }, - "libraryFilterDateMonth": "This Month", - "@libraryFilterDateMonth": { - "description": "Filter option - this month" - }, - "libraryFilterDateYear": "This Year", - "@libraryFilterDateYear": { - "description": "Filter option - this year" - }, - "libraryFilterSort": "Sort", - "@libraryFilterSort": { - "description": "Filter section - sort order" - }, - "libraryFilterSortLatest": "Latest", - "@libraryFilterSortLatest": { - "description": "Sort option - newest first" - }, - "libraryFilterSortOldest": "Oldest", - "@libraryFilterSortOldest": { - "description": "Sort option - oldest first" - }, - "libraryFilterActive": "{count} filter(s) active", - "@libraryFilterActive": { - "description": "Badge showing number of active filters", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "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" - } - } - }, - "storageSwitchTitle": "Switch Storage Mode", - "@storageSwitchTitle": { - "description": "Dialog title when switching storage mode" - }, - "storageSwitchToSafTitle": "Switch to SAF Storage?", - "@storageSwitchToSafTitle": { - "description": "Dialog title when switching to SAF" - }, - "storageSwitchToAppTitle": "Switch to App Storage?", - "@storageSwitchToAppTitle": { - "description": "Dialog title when switching to app storage" - }, - "storageSwitchToSafMessage": "Your existing downloads will remain in the current location and stay accessible.\n\nNew downloads will be saved to your selected SAF folder.", - "@storageSwitchToSafMessage": { - "description": "Explanation when switching to SAF" - }, - "storageSwitchToAppMessage": "Your existing downloads will remain in the current SAF location and stay accessible.\n\nNew downloads will be saved to Music/SpotiFLAC folder.", - "@storageSwitchToAppMessage": { - "description": "Explanation when switching to app storage" - }, - "storageSwitchExistingDownloads": "Existing Downloads", - "@storageSwitchExistingDownloads": { - "description": "Section header for existing downloads info" - }, - "storageSwitchExistingDownloadsInfo": "{count} tracks in {mode} storage", - "@storageSwitchExistingDownloadsInfo": { - "description": "Info about existing downloads count", - "placeholders": { - "count": { - "type": "int" - }, - "mode": { - "type": "String" - } - } - }, - "storageSwitchNewDownloads": "New Downloads", - "@storageSwitchNewDownloads": { - "description": "Section header for new downloads info" - }, - "storageSwitchNewDownloadsLocation": "Will be saved to: {location}", - "@storageSwitchNewDownloadsLocation": { - "description": "Shows where new downloads will go", - "placeholders": { - "location": { - "type": "String" - } - } - }, - "storageSwitchContinue": "Continue", - "@storageSwitchContinue": { - "description": "Button to proceed with storage switch" - }, - "storageSwitchSelectFolder": "Select SAF Folder", - "@storageSwitchSelectFolder": { - "description": "Button to select SAF folder" - }, - "storageAppStorage": "App Storage", - "@storageAppStorage": { - "description": "Label for app storage mode" - }, - "storageSafStorage": "SAF Storage", - "@storageSafStorage": { - "description": "Label for SAF storage mode" - }, - "storageModeBadge": "Storage: {mode}", - "@storageModeBadge": { - "description": "Badge showing storage mode for a track", - "placeholders": { - "mode": { - "type": "String" - } - } - }, - "storageStatsTitle": "Storage Statistics", - "@storageStatsTitle": { - "description": "Section title for storage stats" - }, - "storageStatsAppCount": "{count} tracks in App Storage", - "@storageStatsAppCount": { - "description": "Count of tracks in app storage", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "storageStatsSafCount": "{count} tracks in SAF Storage", - "@storageStatsSafCount": { - "description": "Count of tracks in SAF storage", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "storageModeInfo": "Your files are stored in multiple locations", - "@storageModeInfo": { - "description": "Info when user has files in both storage modes" - }, - "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 Amazon Music", - "@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" - }, - "tutorialSearchTip1": "Paste a Spotify or Deezer URL directly in the search box", - "@tutorialSearchTip1": { - "description": "Tutorial search tip 1" - }, - "tutorialSearchTip2": "Or type the song name, artist, or album to search", - "@tutorialSearchTip2": { - "description": "Tutorial search tip 2" - }, - "tutorialSearchTip3": "Supports tracks, albums, playlists, and artist pages", - "@tutorialSearchTip3": { - "description": "Tutorial search tip 3" - }, - "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" - }, - "tutorialDownloadTip1": "Tap the download button next to any track to start downloading", - "@tutorialDownloadTip1": { - "description": "Tutorial download tip 1" - }, - "tutorialDownloadTip2": "Choose your preferred quality (FLAC, Hi-Res, or MP3)", - "@tutorialDownloadTip2": { - "description": "Tutorial download tip 2" - }, - "tutorialDownloadTip3": "Download entire albums or playlists with one tap", - "@tutorialDownloadTip3": { - "description": "Tutorial download tip 3" - }, - "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 Store 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" - }, - "tutorialExample": "EXAMPLE", - "@tutorialExample": { - "description": "Example label in tutorial" - }, - "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 Metadata", - "@trackReEnrich": { - "description": "Menu action - re-embed metadata into audio file" - }, - "trackReEnrichSubtitle": "Re-embed metadata without re-downloading", - "@trackReEnrichSubtitle": { - "description": "Subtitle for re-enrich metadata action" - }, - "trackReEnrichOnlineSubtitle": "Search metadata online and embed into file", - "@trackReEnrichOnlineSubtitle": { - "description": "Subtitle for re-enrich metadata action for local items" - }, - "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" - }, - "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 or Opus", - "@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" - } - } - }, - "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" - } -} \ No newline at end of file diff --git a/lib/l10n/arb/app_pt_PT.arb b/lib/l10n/arb/app_pt_PT.arb index 61589aa2..8945597d 100644 --- a/lib/l10n/arb/app_pt_PT.arb +++ b/lib/l10n/arb/app_pt_PT.arb @@ -13,9 +13,13 @@ "@navHome": { "description": "Bottom navigation - Home tab" }, + "navLibrary": "Library", + "@navLibrary": { + "description": "Bottom navigation - Library tab" + }, "navHistory": "Histórico", "@navHistory": { - "description": "Bottom navigation - History tab" + "description": "Bottom navigation - History tab (legacy)" }, "navSettings": "Configurações", "@navSettings": { @@ -85,7 +89,7 @@ "@historyFilterSingles": { "description": "Filter chip - show singles only" }, - "historyTracksCount": "{count, plural, =1{1 faixa} other{{count} faixas}}", + "historyTracksCount": "{count, plural, one {}=1{1 faixa} other{{count} faixas}}", "@historyTracksCount": { "description": "Track count with plural form", "placeholders": { @@ -94,7 +98,7 @@ } } }, - "historyAlbumsCount": "{count, plural, =1{1 álbum} other{{count} álbuns}}", + "historyAlbumsCount": "{count, plural, one {}=1{1 álbum} other{{count} álbuns}}", "@historyAlbumsCount": { "description": "Album count with plural form", "placeholders": { @@ -127,6 +131,10 @@ "@historyNoSinglesSubtitle": { "description": "Empty state subtitle for singles filter" }, + "historySearchHint": "Pesquisar histórico...", + "@historySearchHint": { + "description": "Search bar placeholder in history" + }, "settingsTitle": "Configurações", "@settingsTitle": { "description": "Settings screen title" @@ -422,6 +430,10 @@ "@optionsSpotifyWarning": { "description": "Info about Spotify API requirement" }, + "optionsSpotifyDeprecationWarning": "Spotify search will be deprecated on March 3, 2026 due to Spotify API changes. Please switch to Deezer.", + "@optionsSpotifyDeprecationWarning": { + "description": "Warning about Spotify API deprecation" + }, "extensionsTitle": "Extensões", "@extensionsTitle": { "description": "Extensions page title" @@ -512,6 +524,10 @@ "@aboutLogoArtist": { "description": "Role description for logo artist" }, + "aboutTranslators": "Tradutores", + "@aboutTranslators": { + "description": "Section for translators" + }, "aboutSpecialThanks": "Agradecimentos Especiais", "@aboutSpecialThanks": { "description": "Section for special thanks" @@ -544,6 +560,26 @@ "@aboutFeatureRequestSubtitle": { "description": "Subtitle for feature request" }, + "aboutTelegramChannel": "Canal do Telegram", + "@aboutTelegramChannel": { + "description": "Link to Telegram channel" + }, + "aboutTelegramChannelSubtitle": "Anúncios e atualizações", + "@aboutTelegramChannelSubtitle": { + "description": "Subtitle for Telegram channel" + }, + "aboutTelegramChat": "Comunidade do Telegram", + "@aboutTelegramChat": { + "description": "Link to Telegram chat group" + }, + "aboutTelegramChatSubtitle": "Converse com outros usuários", + "@aboutTelegramChatSubtitle": { + "description": "Subtitle for Telegram chat" + }, + "aboutSocial": "Social", + "@aboutSocial": { + "description": "Section for social links" + }, "aboutSupport": "Apoiar", "@aboutSupport": { "description": "Section for support/donation links" @@ -564,6 +600,10 @@ "@aboutSachinsenalDesc": { "description": "Credit description for sachinsenal0x64" }, + "aboutSjdonadoDesc": "Creator of I Don't Have Spotify (IDHS). The fallback link resolver that saves the day!", + "@aboutSjdonadoDesc": { + "description": "Credit description for sjdonado" + }, "aboutDoubleDouble": "DoubleDouble", "@aboutDoubleDouble": { "description": "Name of Amazon API service - DO NOT TRANSLATE" @@ -580,6 +620,14 @@ "@aboutDabMusicDesc": { "description": "Credit for DAB Music API" }, + "aboutSpotiSaver": "SpotiSaver", + "@aboutSpotiSaver": { + "description": "Name of SpotiSaver API service - DO NOT TRANSLATE" + }, + "aboutSpotiSaverDesc": "Tidal Hi-Res FLAC streaming endpoints. A key piece of the lossless puzzle!", + "@aboutSpotiSaverDesc": { + "description": "Credit for SpotiSaver API" + }, "aboutAppDescription": "Baixe faixas do Spotify em qualidade sem perdas do Tidal, Qobuz e Amazon Music.", "@aboutAppDescription": { "description": "App description in header card" @@ -588,7 +636,7 @@ "@albumTitle": { "description": "Album screen title" }, - "albumTracks": "{count, plural, =1{1 faixa} other{{count} faixas}}", + "albumTracks": "{count, plural, one {}=1{1 faixa} other{{count} faixas}}", "@albumTracks": { "description": "Album track count", "placeholders": { @@ -625,7 +673,7 @@ "@artistCompilations": { "description": "Section header for compilations" }, - "artistReleases": "{count, plural, =1{1 lançamento} other{{count} lançamentos}}", + "artistReleases": "{count, plural, one {}=1{1 lançamento} other{{count} lançamentos}}", "@artistReleases": { "description": "Artist release count", "placeholders": { @@ -827,7 +875,11 @@ "@setupIosEmptyFolderWarning": { "description": "iOS folder selection warning" }, - "setupDownloadInFlac": "Baixe faixas do Spotify em FLAC", + "setupIcloudNotSupported": "iCloud Drive is not supported. Please use the app Documents folder.", + "@setupIcloudNotSupported": { + "description": "Error when user selects iCloud Drive on iOS" + }, + "setupDownloadInFlac": "Baixar faixas do Spotify em FLAC", "@setupDownloadInFlac": { "description": "App tagline in setup" }, @@ -1079,7 +1131,7 @@ "@dialogUninstallExtension": { "description": "Dialog title - uninstall extension" }, - "dialogUninstallExtensionMessage": "Tem certeza de que deseja remover {extensionName}?", + "dialogUninstallExtensionMessage": "Tem certeza que deseja remover {extensionName}?", "@dialogUninstallExtensionMessage": { "description": "Dialog message - uninstall specific extension", "placeholders": { @@ -1092,7 +1144,7 @@ "@dialogClearHistoryTitle": { "description": "Dialog title - clear download history" }, - "dialogClearHistoryMessage": "Tem certeza de que deseja limpar todo o histórico de downloads? Isso não pode ser desfeito.", + "dialogClearHistoryMessage": "Tem certeza que deseja limpar todo o histórico de downloads? Isso não pode ser desfeito.", "@dialogClearHistoryMessage": { "description": "Dialog message - clear history confirmation" }, @@ -1100,7 +1152,7 @@ "@dialogDeleteSelectedTitle": { "description": "Dialog title - delete selected items" }, - "dialogDeleteSelectedMessage": "Apagar {count} {count, plural, =1{faixa} other{faixas}} do histórico?\n\nIsso também apagará os arquivos do armazenamento.", + "dialogDeleteSelectedMessage": "Apagar {count} {count, plural, one {}=1{faixa} other{faixas}} do histórico?\n\nIsso também apagará os arquivos do armazenamento.", "@dialogDeleteSelectedMessage": { "description": "Dialog message - delete selected tracks", "placeholders": { @@ -1113,7 +1165,16 @@ "@dialogImportPlaylistTitle": { "description": "Dialog title - import CSV playlist" }, - "dialogImportPlaylistMessage": "Encontradas {count} faixas no CSV. Adicionar à fila de download?", + "dialogImportPlaylistMessage": "{count} Faixas encontradas em CSV. Adicioná-las à lista de downloads?", + "csvImportTracks": "{count} faixas do CSV", + "@csvImportTracks": { + "description": "Label shown in quality picker for CSV import", + "placeholders": { + "count": { + "type": "int" + } + } + }, "@dialogImportPlaylistMessage": { "description": "Dialog message - import playlist confirmation", "placeholders": { @@ -1149,6 +1210,15 @@ } } }, + "snackbarAlreadyInLibrary": "\"{trackName}\" already exists in your library", + "@snackbarAlreadyInLibrary": { + "description": "Snackbar - track already exists in local library", + "placeholders": { + "trackName": { + "type": "String" + } + } + }, "snackbarHistoryCleared": "Histórico limpo", "@snackbarHistoryCleared": { "description": "Snackbar - history deleted" @@ -1157,11 +1227,11 @@ "@snackbarCredentialsSaved": { "description": "Snackbar - Spotify credentials saved" }, - "snackbarCredentialsCleared": "Credenciais removidas", + "snackbarCredentialsCleared": "Credenciais limpas", "@snackbarCredentialsCleared": { "description": "Snackbar - Spotify credentials removed" }, - "snackbarDeletedTracks": "{count} {count, plural, =1{faixa apagada} other{faixas apagadas}}", + "snackbarDeletedTracks": "{count} {count, plural, one {}=1{faixa apagada} other{faixas apagadas}}", "@snackbarDeletedTracks": { "description": "Snackbar - tracks deleted", "placeholders": { @@ -1196,7 +1266,7 @@ } } }, - "snackbarUrlCopied": "URL do {platform} copiada para a área de transferência", + "snackbarUrlCopied": "URL do {platform} copiado para a área de transferência", "@snackbarUrlCopied": { "description": "Snackbar - URL copied", "placeholders": { @@ -1218,7 +1288,7 @@ "@snackbarProviderPrioritySaved": { "description": "Snackbar - provider order saved" }, - "snackbarMetadataProviderSaved": "Prioridade de provedor de metadados salva", + "snackbarMetadataProviderSaved": "Prioridade do provedor de metadados salva", "@snackbarMetadataProviderSaved": { "description": "Snackbar - metadata provider order saved" }, @@ -1240,15 +1310,15 @@ } } }, - "snackbarFailedToInstall": "Falha ao instalar extensão", + "snackbarFailedToInstall": "Falha ao instalar a extensão", "@snackbarFailedToInstall": { "description": "Snackbar - extension install error" }, - "snackbarFailedToUpdate": "Falha ao atualizar extensão", + "snackbarFailedToUpdate": "Falha ao atualizar a extensão", "@snackbarFailedToUpdate": { "description": "Snackbar - extension update error" }, - "errorRateLimited": "Taxa Limitada", + "errorRateLimited": "Tráfico Limitado (Rate Limited)", "@errorRateLimited": { "description": "Error title - too many requests" }, @@ -1270,7 +1340,7 @@ "@errorNoTracksFound": { "description": "Error - search returned no results" }, - "errorMissingExtensionSource": "Não foi possível carregar {item}: fonte de extensão ausente", + "errorMissingExtensionSource": "Não é possível carregar {item}: faltando a fonte da extensão", "@errorMissingExtensionSource": { "description": "Error - extension source not available", "placeholders": { @@ -1368,7 +1438,7 @@ "@selectionTapToSelect": { "description": "Hint - how to select items" }, - "selectionDeleteTracks": "Apagar {count} {count, plural, =1{faixa} other{faixas}}", + "selectionDeleteTracks": "Apagar {count} {count, plural, one {}=1{faixa} other{faixas}}", "@selectionDeleteTracks": { "description": "Delete button with count", "placeholders": { @@ -1727,7 +1797,7 @@ "@logNetworkErrorDescription": { "description": "Network error explanation" }, - "logNetworkErrorSuggestion": "Verifique a sua conexão com a internet", + "logNetworkErrorSuggestion": "Verifique sua conexão de internet", "@logNetworkErrorSuggestion": { "description": "Network error fix suggestion" }, @@ -1735,7 +1805,7 @@ "@logTrackNotFoundDescription": { "description": "Track not found explanation" }, - "logTrackNotFoundSuggestion": "A faixa pode não estar disponível em qualidade lossless", + "logTrackNotFoundSuggestion": "A faixa pode não estar disponível em qualidade sem perdas", "@logTrackNotFoundSuggestion": { "description": "Track not found explanation" }, @@ -1748,7 +1818,7 @@ } } }, - "logAffected": "Afetados: {domains}", + "logAffected": "Afetado(s): {domains}", "@logAffected": { "description": "Affected domains display", "placeholders": { @@ -1779,7 +1849,7 @@ "@credentialsTitle": { "description": "Credentials dialog title" }, - "credentialsDescription": "Insira o seu Client ID e Secret para usar a sua própria cota de aplicativo do Spotify.", + "credentialsDescription": "Digite a sua Client ID e Secret para usar a sua própria cota de aplicativo do Spotify.", "@credentialsDescription": { "description": "Credentials dialog explanation" }, @@ -1843,6 +1913,42 @@ "@sectionFileSettings": { "description": "Settings section header" }, + "sectionLyrics": "Letras", + "@sectionLyrics": { + "description": "Settings section header" + }, + "lyricsMode": "Modo de Letras", + "@lyricsMode": { + "description": "Setting - how to save lyrics" + }, + "lyricsModeDescription": "Escolha como as letras são salvas com os seus downloads", + "@lyricsModeDescription": { + "description": "Lyrics mode picker description" + }, + "lyricsModeEmbed": "Incorporar no arquivo", + "@lyricsModeEmbed": { + "description": "Lyrics mode option - embed in audio file" + }, + "lyricsModeEmbedSubtitle": "Letra armazenada nos metadados da FLAC", + "@lyricsModeEmbedSubtitle": { + "description": "Subtitle for embed option" + }, + "lyricsModeExternal": "Arquivo .lrc externo", + "@lyricsModeExternal": { + "description": "Lyrics mode option - separate LRC file" + }, + "lyricsModeExternalSubtitle": "Arquivo .lrc separado para reprodutores como o Samsung Music", + "@lyricsModeExternalSubtitle": { + "description": "Subtitle for external option" + }, + "lyricsModeBoth": "Ambos", + "@lyricsModeBoth": { + "description": "Lyrics mode option - embed and external" + }, + "lyricsModeBothSubtitle": "Incorporar e salvar arquivo .lrc", + "@lyricsModeBothSubtitle": { + "description": "Subtitle for both option" + }, "sectionColor": "Cor", "@sectionColor": { "description": "Settings section header" @@ -1908,7 +2014,7 @@ } } }, - "tracksCount": "{count, plural, =1{1 faixa} other{{count} faixas}}", + "tracksCount": "{count, plural, one {}=1{1 faixa} other{{count} faixas}}", "@tracksCount": { "description": "Track count display", "placeholders": { @@ -1989,15 +2095,27 @@ "@trackReleaseDate": { "description": "Metadata label - release date" }, + "trackGenre": "Género", + "@trackGenre": { + "description": "Metadata label - music genre" + }, + "trackLabel": "Gravadora", + "@trackLabel": { + "description": "Metadata label - record label" + }, + "trackCopyright": "Direitos Autorais", + "@trackCopyright": { + "description": "Metadata label - copyright information" + }, "trackDownloaded": "Baixado", "@trackDownloaded": { "description": "Metadata label - download date" }, - "trackCopyLyrics": "Copiar letras", + "trackCopyLyrics": "Copiar letra", "@trackCopyLyrics": { "description": "Action - copy lyrics to clipboard" }, - "trackLyricsNotAvailable": "Letras não disponíveis para esta faixa", + "trackLyricsNotAvailable": "Letra não disponível para esta faixa", "@trackLyricsNotAvailable": { "description": "Message when lyrics not found" }, @@ -2005,10 +2123,22 @@ "@trackLyricsTimeout": { "description": "Message when lyrics request times out" }, - "trackLyricsLoadFailed": "Falha ao carregar letras", + "trackLyricsLoadFailed": "Falha ao carregar a letra", "@trackLyricsLoadFailed": { "description": "Message when lyrics loading fails" }, + "trackEmbedLyrics": "Incorporar Letras", + "@trackEmbedLyrics": { + "description": "Action - embed lyrics into audio file" + }, + "trackLyricsEmbedded": "Letras incorporadas com sucesso", + "@trackLyricsEmbedded": { + "description": "Snackbar - lyrics saved to file" + }, + "trackInstrumental": "Faixa de instrumentais", + "@trackInstrumental": { + "description": "Message when track is instrumental (no lyrics)" + }, "trackCopiedToClipboard": "Copiado para a área de transferência", "@trackCopiedToClipboard": { "description": "Snackbar - content copied" @@ -2017,7 +2147,7 @@ "@trackDeleteConfirmTitle": { "description": "Delete confirmation title" }, - "trackDeleteConfirmMessage": "Isso apagará permanentemente o arquivo baixado e o removerá do seu histórico.", + "trackDeleteConfirmMessage": "Isto irá excluir o arquivo baixado permanentemente e removê-lo do seu histórico.", "@trackDeleteConfirmMessage": { "description": "Delete confirmation message" }, @@ -2038,7 +2168,7 @@ "@dateYesterday": { "description": "Relative date - yesterday" }, - "dateDaysAgo": "Há {count} dias", + "dateDaysAgo": "{count} dias atrás", "@dateDaysAgo": { "description": "Relative date - days ago", "placeholders": { @@ -2047,7 +2177,7 @@ } } }, - "dateWeeksAgo": "Há {count} semanas", + "dateWeeksAgo": "{count} semanas atrás", "@dateWeeksAgo": { "description": "Relative date - weeks ago", "placeholders": { @@ -2056,7 +2186,7 @@ } } }, - "dateMonthsAgo": "Há {count} meses", + "dateMonthsAgo": "{count} meses atrás", "@dateMonthsAgo": { "description": "Relative date - months ago", "placeholders": { @@ -2077,11 +2207,11 @@ "@concurrentParallel3": { "description": "Download mode - 3 simultaneous" }, - "tapToSeeError": "Toque para ver detalhes do erro", + "tapToSeeError": "Toque para ver os detalhes do erro", "@tapToSeeError": { "description": "Tooltip for failed download" }, - "storeFilterAll": "Todos", + "storeFilterAll": "Tudo", "@storeFilterAll": { "description": "Store filter - all extensions" }, @@ -2093,7 +2223,7 @@ "@storeFilterDownload": { "description": "Store filter - download providers" }, - "storeFilterUtility": "Utilitário", + "storeFilterUtility": "Utilidade", "@storeFilterUtility": { "description": "Store filter - utility extensions" }, @@ -2141,7 +2271,7 @@ "@extensionError": { "description": "Extension detail - error message" }, - "extensionCapabilities": "Capacidades", + "extensionCapabilities": "Funcionalidades", "@extensionCapabilities": { "description": "Section header - extension features" }, @@ -2157,7 +2287,7 @@ "@extensionLyricsProvider": { "description": "Capability - provides lyrics" }, - "extensionUrlHandler": "Manipulador de URL", + "extensionUrlHandler": "Gerenciador de URL", "@extensionUrlHandler": { "description": "Capability - handles URLs" }, @@ -2320,10 +2450,54 @@ "@qualityHiResFlacMaxSubtitle": { "description": "Technical spec for hi-res max" }, + "qualityLossy": "Lossy", + "@qualityLossy": { + "description": "Quality option - lossy format (MP3/Opus)" + }, + "qualityLossyMp3Subtitle": "MP3 320kbps (converted from FLAC)", + "@qualityLossyMp3Subtitle": { + "description": "Technical spec for lossy MP3" + }, + "qualityLossyOpusSubtitle": "Opus 128kbps (converted from FLAC)", + "@qualityLossyOpusSubtitle": { + "description": "Technical spec for lossy Opus" + }, + "enableLossyOption": "Enable Lossy Option", + "@enableLossyOption": { + "description": "Setting - enable lossy quality option" + }, + "enableLossyOptionSubtitleOn": "Lossy quality option is available", + "@enableLossyOptionSubtitleOn": { + "description": "Subtitle when lossy is enabled" + }, + "enableLossyOptionSubtitleOff": "Downloads FLAC then converts to lossy format", + "@enableLossyOptionSubtitleOff": { + "description": "Subtitle when lossy is disabled" + }, + "lossyFormat": "Lossy Format", + "@lossyFormat": { + "description": "Setting - choose lossy format" + }, + "lossyFormatDescription": "Choose the lossy format for conversion", + "@lossyFormatDescription": { + "description": "Description for lossy format picker" + }, + "lossyFormatMp3Subtitle": "320kbps, best compatibility", + "@lossyFormatMp3Subtitle": { + "description": "MP3 format description" + }, + "lossyFormatOpusSubtitle": "128kbps, better quality at smaller size", + "@lossyFormatOpusSubtitle": { + "description": "Opus format description" + }, "qualityNote": "A qualidade real depende da faixa que estiver disponível no serviço", "@qualityNote": { "description": "Note about quality availability" }, + "youtubeQualityNote": "YouTube provides lossy audio only. Not part of lossless fallback.", + "@youtubeQualityNote": { + "description": "Note for YouTube service explaining lossy-only quality" + }, "downloadAskBeforeDownload": "Perguntar qualidade antes de baixar", "@downloadAskBeforeDownload": { "description": "Setting - show quality picker" @@ -2340,6 +2514,30 @@ "@downloadAlbumFolderStructure": { "description": "Setting - album folder organization" }, + "downloadUseAlbumArtistForFolders": "Use Album Artist for folders", + "@downloadUseAlbumArtistForFolders": { + "description": "Setting - choose whether artist folders use Album Artist or Track Artist" + }, + "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" + }, + "downloadUsePrimaryArtistOnly": "Primary artist only for folders", + "@downloadUsePrimaryArtistOnly": { + "description": "Setting - strip featured artists from folder name" + }, + "downloadUsePrimaryArtistOnlyEnabled": "Featured artists removed from folder name (e.g. Justin Bieber, Quavo → Justin Bieber)", + "@downloadUsePrimaryArtistOnlyEnabled": { + "description": "Subtitle when primary artist only is enabled" + }, + "downloadUsePrimaryArtistOnlyDisabled": "Full artist string used for folder name", + "@downloadUsePrimaryArtistOnlyDisabled": { + "description": "Subtitle when primary artist only is disabled" + }, "downloadSaveFormat": "Formato para Salvar", "@downloadSaveFormat": { "description": "Setting - output file format" @@ -2364,7 +2562,7 @@ "@downloadBestAvailable": { "description": "Quality option - highest available" }, - "folderNone": "Nenhum", + "folderNone": "Nenhuma", "@folderNone": { "description": "Folder option - no organization" }, @@ -2376,7 +2574,7 @@ "@folderArtist": { "description": "Folder option - by artist" }, - "folderArtistSubtitle": "Nome do Artista/nome do arquivo", + "folderArtistSubtitle": "Nome do Artista/arquivo", "@folderArtistSubtitle": { "description": "Folder structure example" }, @@ -2384,7 +2582,7 @@ "@folderAlbum": { "description": "Folder option - by album" }, - "folderAlbumSubtitle": "Nome do Álbum/nome do arquivo", + "folderAlbumSubtitle": "Nome do Álbum/arquivo", "@folderAlbumSubtitle": { "description": "Folder structure example" }, @@ -2392,7 +2590,7 @@ "@folderArtistAlbum": { "description": "Folder option - nested" }, - "folderArtistAlbumSubtitle": "Nome do Artista/Nome do Álbum/nome do arquivo", + "folderArtistAlbumSubtitle": "Nome do Artista/Nome do Álbum/arquivo", "@folderArtistAlbumSubtitle": { "description": "Folder structure example" }, @@ -2416,7 +2614,7 @@ "@serviceSpotify": { "description": "Service name - DO NOT TRANSLATE" }, - "appearanceAmoledDark": "AMOLED Escuro", + "appearanceAmoledDark": "Escuro AMOLED", "@appearanceAmoledDark": { "description": "Theme option - pure black" }, @@ -2424,11 +2622,11 @@ "@appearanceAmoledDarkSubtitle": { "description": "Subtitle for AMOLED dark" }, - "appearanceChooseAccentColor": "Escolher Cor de Destaque", + "appearanceChooseAccentColor": "Escolha a Cor de Destaque", "@appearanceChooseAccentColor": { "description": "Color picker dialog title" }, - "appearanceChooseTheme": "Modo de Tema", + "appearanceChooseTheme": "Modo do Tema", "@appearanceChooseTheme": { "description": "Theme picker dialog title" }, @@ -2440,10 +2638,50 @@ "@queueClearAll": { "description": "Button - clear all queue items" }, - "queueClearAllMessage": "Tem certeza de que deseja limpar todos os downloads?", + "queueClearAllMessage": "Você tem certeza que deseja limpar todos os downloads?", "@queueClearAllMessage": { "description": "Clear queue confirmation" }, + "queueExportFailed": "Export", + "@queueExportFailed": { + "description": "Button - export failed downloads to TXT" + }, + "queueExportFailedSuccess": "Failed downloads exported to TXT file", + "@queueExportFailedSuccess": { + "description": "Success message after exporting failed downloads" + }, + "queueExportFailedClear": "Clear Failed", + "@queueExportFailedClear": { + "description": "Action to clear failed downloads after export" + }, + "queueExportFailedError": "Failed to export downloads", + "@queueExportFailedError": { + "description": "Error message when export fails" + }, + "settingsAutoExportFailed": "Auto-export failed downloads", + "@settingsAutoExportFailed": { + "description": "Setting toggle for auto-export" + }, + "settingsAutoExportFailedSubtitle": "Save failed downloads to TXT file automatically", + "@settingsAutoExportFailedSubtitle": { + "description": "Subtitle for auto-export setting" + }, + "settingsDownloadNetwork": "Download Network", + "@settingsDownloadNetwork": { + "description": "Setting for network type preference" + }, + "settingsDownloadNetworkAny": "WiFi + Mobile Data", + "@settingsDownloadNetworkAny": { + "description": "Network option - use any connection" + }, + "settingsDownloadNetworkWifiOnly": "WiFi Only", + "@settingsDownloadNetworkWifiOnly": { + "description": "Network option - only use WiFi" + }, + "settingsDownloadNetworkSubtitle": "Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.", + "@settingsDownloadNetworkSubtitle": { + "description": "Subtitle explaining network preference" + }, "queueEmpty": "Nenhum download na fila", "@queueEmpty": { "description": "Empty queue state title" @@ -2492,11 +2730,11 @@ "@albumFolderArtistYearAlbumSubtitle": { "description": "Folder structure example" }, - "albumFolderAlbumOnly": "Apenas Álbum", + "albumFolderAlbumOnly": "Somente Álbum", "@albumFolderAlbumOnly": { "description": "Album folder option" }, - "albumFolderAlbumOnlySubtitle": "Álbuns/Nome do Álbum/", + "albumFolderAlbumOnlySubtitle": "Albums/Nome do Álbum/", "@albumFolderAlbumOnlySubtitle": { "description": "Folder structure example" }, @@ -2508,11 +2746,19 @@ "@albumFolderYearAlbumSubtitle": { "description": "Folder structure example" }, + "albumFolderArtistAlbumSingles": "Artista / Álbum + Singles", + "@albumFolderArtistAlbumSingles": { + "description": "Album folder option with singles inside artist" + }, + "albumFolderArtistAlbumSinglesSubtitle": "Artista/Álbum/ e Artista/Singles/", + "@albumFolderArtistAlbumSinglesSubtitle": { + "description": "Folder structure example" + }, "downloadedAlbumDeleteSelected": "Apagar Selecionados", "@downloadedAlbumDeleteSelected": { "description": "Button - delete selected tracks" }, - "downloadedAlbumDeleteMessage": "Apagar {count} {count, plural, =1{faixa} other{faixas}} deste álbum?\n\nIsso também apagará os arquivos do armazenamento.", + "downloadedAlbumDeleteMessage": "Excluir {count} {count, plural, one {}=1{faixa} other{faixas}} deste álbum?\n\nIsso também excluirá os arquivos do armazenamento.", "@downloadedAlbumDeleteMessage": { "description": "Delete confirmation with count", "placeholders": { @@ -2525,7 +2771,7 @@ "@downloadedAlbumTracksHeader": { "description": "Section header for tracks" }, - "downloadedAlbumDownloadedCount": "{count} baixadas", + "downloadedAlbumDownloadedCount": "{count} baixado(s)", "@downloadedAlbumDownloadedCount": { "description": "Downloaded tracks count badge", "placeholders": { @@ -2534,7 +2780,7 @@ } } }, - "downloadedAlbumSelectedCount": "{count} selecionadas", + "downloadedAlbumSelectedCount": "{count} selecionado(s)", "@downloadedAlbumSelectedCount": { "description": "Selection count indicator", "placeholders": { @@ -2551,7 +2797,7 @@ "@downloadedAlbumTapToSelect": { "description": "Selection hint" }, - "downloadedAlbumDeleteCount": "Apagar {count} {count, plural, =1{faixa} other{faixas}}", + "downloadedAlbumDeleteCount": "Apagar {count} {count, plural, one {}=1{faixa} other{faixas}}", "@downloadedAlbumDeleteCount": { "description": "Delete button text with count", "placeholders": { @@ -2560,10 +2806,20 @@ } } }, - "downloadedAlbumSelectToDelete": "Selecione faixas para apagar", + "downloadedAlbumSelectToDelete": "Selecione as faixas para apagar", "@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" + } + } + }, "utilityFunctions": "Funções Utilitárias", "@utilityFunctions": { "description": "Extension capability - utility functions" @@ -2584,6 +2840,14 @@ "@recentTypePlaylist": { "description": "Recent access item type - playlist" }, + "recentEmpty": "No recent items yet", + "@recentEmpty": { + "description": "Empty state text for recent access list" + }, + "recentShowAllDownloads": "Show All Downloads", + "@recentShowAllDownloads": { + "description": "Button label to unhide hidden downloads in recent access" + }, "recentPlaylistInfo": "Playlist: {name}", "@recentPlaylistInfo": { "description": "Snackbar message when tapping playlist in recent access", @@ -2603,5 +2867,1006 @@ "description": "Error message" } } + }, + "discographyDownload": "Baixar Discografia", + "@discographyDownload": { + "description": "Button - download artist discography" + }, + "discographyDownloadAll": "Baixar Tudo", + "@discographyDownloadAll": { + "description": "Option - download entire discography" + }, + "discographyDownloadAllSubtitle": "{count} faixas de {albumCount} lançamentos", + "@discographyDownloadAllSubtitle": { + "description": "Subtitle showing total tracks and albums", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographyAlbumsOnly": "Somente Álbuns", + "@discographyAlbumsOnly": { + "description": "Option - download only albums" + }, + "discographyAlbumsOnlySubtitle": "{count} faixas de {albumCount} álbuns", + "@discographyAlbumsOnlySubtitle": { + "description": "Subtitle showing album tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySinglesOnly": "Somente Singles e EPs", + "@discographySinglesOnly": { + "description": "Option - download only singles" + }, + "discographySinglesOnlySubtitle": "{count} faixas de {albumCount} singles", + "@discographySinglesOnlySubtitle": { + "description": "Subtitle showing singles tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySelectAlbums": "Selecione Álbuns...", + "@discographySelectAlbums": { + "description": "Option - manually select albums to download" + }, + "discographySelectAlbumsSubtitle": "Escolher álbuns ou singles específicos", + "@discographySelectAlbumsSubtitle": { + "description": "Subtitle for select albums option" + }, + "discographyFetchingTracks": "Buscando faixas...", + "@discographyFetchingTracks": { + "description": "Progress - fetching album tracks" + }, + "discographyFetchingAlbum": "Buscando {current} de {total}...", + "@discographyFetchingAlbum": { + "description": "Progress - fetching specific album", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "discographySelectedCount": "{count} selecionado(s)", + "@discographySelectedCount": { + "description": "Selection count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographyDownloadSelected": "Baixar Selecionados", + "@discographyDownloadSelected": { + "description": "Button - download selected albums" + }, + "discographyAddedToQueue": "{count} faixas adicionadas à fila", + "@discographyAddedToQueue": { + "description": "Snackbar - tracks added from discography", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographySkippedDownloaded": "{added} adicionada(s), {skipped} já baixada(s)", + "@discographySkippedDownloaded": { + "description": "Snackbar - with skipped tracks count", + "placeholders": { + "added": { + "type": "int" + }, + "skipped": { + "type": "int" + } + } + }, + "discographyNoAlbums": "Nenhum álbum disponível", + "@discographyNoAlbums": { + "description": "Error - no albums found for artist" + }, + "discographyFailedToFetch": "Falha ao obter alguns álbuns", + "@discographyFailedToFetch": { + "description": "Error - some albums failed to load" + }, + "sectionStorageAccess": "Storage Access", + "@sectionStorageAccess": { + "description": "Section header for storage access settings" + }, + "allFilesAccess": "All Files Access", + "@allFilesAccess": { + "description": "Toggle for MANAGE_EXTERNAL_STORAGE permission" + }, + "allFilesAccessEnabledSubtitle": "Can write to any folder", + "@allFilesAccessEnabledSubtitle": { + "description": "Subtitle when all files access is enabled" + }, + "allFilesAccessDisabledSubtitle": "Limited to media folders only", + "@allFilesAccessDisabledSubtitle": { + "description": "Subtitle when all files access is disabled" + }, + "allFilesAccessDescription": "Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.", + "@allFilesAccessDescription": { + "description": "Description explaining when to enable all files access" + }, + "allFilesAccessDeniedMessage": "Permission was denied. Please enable 'All files access' manually in system settings.", + "@allFilesAccessDeniedMessage": { + "description": "Message when permission is permanently denied" + }, + "allFilesAccessDisabledMessage": "All Files Access disabled. The app will use limited storage access.", + "@allFilesAccessDisabledMessage": { + "description": "Snackbar message when user disables all files access" + }, + "settingsLocalLibrary": "Local Library", + "@settingsLocalLibrary": { + "description": "Settings menu item - local library" + }, + "settingsLocalLibrarySubtitle": "Scan music & detect duplicates", + "@settingsLocalLibrarySubtitle": { + "description": "Subtitle for local library settings" + }, + "settingsCache": "Storage & Cache", + "@settingsCache": { + "description": "Settings menu item - cache management" + }, + "settingsCacheSubtitle": "View size and clear cached data", + "@settingsCacheSubtitle": { + "description": "Subtitle for cache management menu" + }, + "libraryTitle": "Local Library", + "@libraryTitle": { + "description": "Library settings page title" + }, + "libraryStatus": "Library Status", + "@libraryStatus": { + "description": "Section header for library status" + }, + "libraryScanSettings": "Scan Settings", + "@libraryScanSettings": { + "description": "Section header for scan settings" + }, + "libraryEnableLocalLibrary": "Enable Local Library", + "@libraryEnableLocalLibrary": { + "description": "Toggle to enable library scanning" + }, + "libraryEnableLocalLibrarySubtitle": "Scan and track your existing music", + "@libraryEnableLocalLibrarySubtitle": { + "description": "Subtitle for enable toggle" + }, + "libraryFolder": "Library Folder", + "@libraryFolder": { + "description": "Folder selection setting" + }, + "libraryFolderHint": "Tap to select folder", + "@libraryFolderHint": { + "description": "Placeholder when no folder selected" + }, + "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" + }, + "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" + }, + "libraryTracksCount": "{count} tracks", + "@libraryTracksCount": { + "description": "Track count in library", + "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" + }, + "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" + }, + "libraryFilterDate": "Date Added", + "@libraryFilterDate": { + "description": "Filter section - date range" + }, + "libraryFilterDateToday": "Today", + "@libraryFilterDateToday": { + "description": "Filter option - today only" + }, + "libraryFilterDateWeek": "This Week", + "@libraryFilterDateWeek": { + "description": "Filter option - this week" + }, + "libraryFilterDateMonth": "This Month", + "@libraryFilterDateMonth": { + "description": "Filter option - this month" + }, + "libraryFilterDateYear": "This Year", + "@libraryFilterDateYear": { + "description": "Filter option - this year" + }, + "libraryFilterSort": "Sort", + "@libraryFilterSort": { + "description": "Filter section - sort order" + }, + "libraryFilterSortLatest": "Latest", + "@libraryFilterSortLatest": { + "description": "Sort option - newest first" + }, + "libraryFilterSortOldest": "Oldest", + "@libraryFilterSortOldest": { + "description": "Sort option - oldest first" + }, + "libraryFilterActive": "{count} filter(s) active", + "@libraryFilterActive": { + "description": "Badge showing number of active filters", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "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" + } + } + }, + "storageSwitchTitle": "Switch Storage Mode", + "@storageSwitchTitle": { + "description": "Dialog title when switching storage mode" + }, + "storageSwitchToSafTitle": "Switch to SAF Storage?", + "@storageSwitchToSafTitle": { + "description": "Dialog title when switching to SAF" + }, + "storageSwitchToAppTitle": "Switch to App Storage?", + "@storageSwitchToAppTitle": { + "description": "Dialog title when switching to app storage" + }, + "storageSwitchToSafMessage": "Your existing downloads will remain in the current location and stay accessible.\n\nNew downloads will be saved to your selected SAF folder.", + "@storageSwitchToSafMessage": { + "description": "Explanation when switching to SAF" + }, + "storageSwitchToAppMessage": "Your existing downloads will remain in the current SAF location and stay accessible.\n\nNew downloads will be saved to Music/SpotiFLAC folder.", + "@storageSwitchToAppMessage": { + "description": "Explanation when switching to app storage" + }, + "storageSwitchExistingDownloads": "Existing Downloads", + "@storageSwitchExistingDownloads": { + "description": "Section header for existing downloads info" + }, + "storageSwitchExistingDownloadsInfo": "{count} tracks in {mode} storage", + "@storageSwitchExistingDownloadsInfo": { + "description": "Info about existing downloads count", + "placeholders": { + "count": { + "type": "int" + }, + "mode": { + "type": "String" + } + } + }, + "storageSwitchNewDownloads": "New Downloads", + "@storageSwitchNewDownloads": { + "description": "Section header for new downloads info" + }, + "storageSwitchNewDownloadsLocation": "Will be saved to: {location}", + "@storageSwitchNewDownloadsLocation": { + "description": "Shows where new downloads will go", + "placeholders": { + "location": { + "type": "String" + } + } + }, + "storageSwitchContinue": "Continue", + "@storageSwitchContinue": { + "description": "Button to proceed with storage switch" + }, + "storageSwitchSelectFolder": "Select SAF Folder", + "@storageSwitchSelectFolder": { + "description": "Button to select SAF folder" + }, + "storageAppStorage": "App Storage", + "@storageAppStorage": { + "description": "Label for app storage mode" + }, + "storageSafStorage": "SAF Storage", + "@storageSafStorage": { + "description": "Label for SAF storage mode" + }, + "storageModeBadge": "Storage: {mode}", + "@storageModeBadge": { + "description": "Badge showing storage mode for a track", + "placeholders": { + "mode": { + "type": "String" + } + } + }, + "storageStatsTitle": "Storage Statistics", + "@storageStatsTitle": { + "description": "Section title for storage stats" + }, + "storageStatsAppCount": "{count} tracks in App Storage", + "@storageStatsAppCount": { + "description": "Count of tracks in app storage", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "storageStatsSafCount": "{count} tracks in SAF Storage", + "@storageStatsSafCount": { + "description": "Count of tracks in SAF storage", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "storageModeInfo": "Your files are stored in multiple locations", + "@storageModeInfo": { + "description": "Info when user has files in both storage modes" + }, + "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 Amazon Music", + "@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" + }, + "tutorialSearchTip1": "Paste a Spotify or Deezer URL directly in the search box", + "@tutorialSearchTip1": { + "description": "Tutorial search tip 1" + }, + "tutorialSearchTip2": "Or type the song name, artist, or album to search", + "@tutorialSearchTip2": { + "description": "Tutorial search tip 2" + }, + "tutorialSearchTip3": "Supports tracks, albums, playlists, and artist pages", + "@tutorialSearchTip3": { + "description": "Tutorial search tip 3" + }, + "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" + }, + "tutorialDownloadTip1": "Tap the download button next to any track to start downloading", + "@tutorialDownloadTip1": { + "description": "Tutorial download tip 1" + }, + "tutorialDownloadTip2": "Choose your preferred quality (FLAC, Hi-Res, or MP3)", + "@tutorialDownloadTip2": { + "description": "Tutorial download tip 2" + }, + "tutorialDownloadTip3": "Download entire albums or playlists with one tap", + "@tutorialDownloadTip3": { + "description": "Tutorial download tip 3" + }, + "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 Store 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" + }, + "tutorialExample": "EXAMPLE", + "@tutorialExample": { + "description": "Example label in tutorial" + }, + "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 Metadata", + "@trackReEnrich": { + "description": "Menu action - re-embed metadata into audio file" + }, + "trackReEnrichSubtitle": "Re-embed metadata without re-downloading", + "@trackReEnrichSubtitle": { + "description": "Subtitle for re-enrich metadata action" + }, + "trackReEnrichOnlineSubtitle": "Search metadata online and embed into file", + "@trackReEnrichOnlineSubtitle": { + "description": "Subtitle for re-enrich metadata action for local items" + }, + "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" + }, + "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 or Opus", + "@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" + } + } + }, + "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" } } \ No newline at end of file