SpotiFLAC-Mobile/lib/l10n/arb/app_fr.arb
zarzet 98abaf6635 v3.7.0: roll back from v4, remove internal player — v3 is already complete
Version rolled back from v4.x to v3.7.0. After extensive work on v4's
internal streaming engine, smart queue, DASH pipeline, and media controls,
we realized v3 was already feature-complete. Adding more big features
only made maintenance increasingly difficult and the developer's life
miserable. Stripped back to what works: external player only, cleaner
codebase, sustainable long-term.

- Remove just_audio, audio_service, audio_session and entire internal
  playback engine (smart queue, notification, shuffle/repeat, prefetch)
- Remove PlaybackItem model, MiniPlayerBar widget, notification drawables
- Remove playerMode setting (external-only now)
- Migrate MainActivity from AudioServiceFragmentActivity to
  FlutterFragmentActivity
- Migrate Qobuz to MusicDL API
- Update changelog with v3.7.0 rollback explanation
2026-03-04 02:02:25 +07:00

3883 lines
No EOL
126 KiB
Text

{
"@@locale": "fr",
"@@last_modified": "2026-01-16",
"appName": "SpotiFLAC",
"@appName": {
"description": "App name - DO NOT TRANSLATE"
},
"appDescription": "Téléchargez des pistes Spotify en qualité sans perte de Tidal, Qobuz et Amazon Music.",
"@appDescription": {
"description": "App description shown in about page"
},
"navHome": "Accueil",
"@navHome": {
"description": "Bottom navigation - Home tab"
},
"navLibrary": "Bibliothèques",
"@navLibrary": {
"description": "Bottom navigation - Library tab"
},
"navHistory": "Historique",
"@navHistory": {
"description": "Bottom navigation - History tab (legacy)"
},
"navSettings": "Paramètres",
"@navSettings": {
"description": "Bottom navigation - Settings tab"
},
"navStore": "Magasin",
"@navStore": {
"description": "Bottom navigation - Extension store tab"
},
"homeTitle": "Accueil",
"@homeTitle": {
"description": "Home screen title"
},
"homeSearchHint": "Coller l'URL Spotify ou rechercher...",
"@homeSearchHint": {
"description": "Placeholder text in search box"
},
"homeSearchHintExtension": "Rechercher avec {extensionName}...",
"@homeSearchHintExtension": {
"description": "Placeholder when extension search is active",
"placeholders": {
"extensionName": {
"type": "String",
"description": "Name of the active extension"
}
}
},
"homeSubtitle": "Coller un lien Spotify ou rechercher par nom",
"@homeSubtitle": {
"description": "Subtitle shown below search box"
},
"homeSupports": "Supports: Piste, Album, Playlist, Artiste URLs",
"@homeSupports": {
"description": "Info text about supported URL types"
},
"homeRecent": "Récent",
"@homeRecent": {
"description": "Section header for recent searches"
},
"historyTitle": "Historique",
"@historyTitle": {
"description": "History screen title"
},
"historyDownloading": "Téléchargement ({count})",
"@historyDownloading": {
"description": "Tab showing active downloads count",
"placeholders": {
"count": {
"type": "int",
"description": "Number of active downloads"
}
}
},
"historyDownloaded": "Téléchargé",
"@historyDownloaded": {
"description": "Tab showing completed downloads"
},
"historyFilterAll": "Tous",
"@historyFilterAll": {
"description": "Filter chip - show all items"
},
"historyFilterAlbums": "Albums",
"@historyFilterAlbums": {
"description": "Filter chip - show albums only"
},
"historyFilterSingles": "Titres",
"@historyFilterSingles": {
"description": "Filter chip - show singles only"
},
"historyTracksCount": "{count, plural, =1{1 track} other{{count} tracks}}",
"@historyTracksCount": {
"description": "Track count with plural form",
"placeholders": {
"count": {
"type": "int"
}
}
},
"historyAlbumsCount": "{count, plural, =1{1 album} other{{count} albums}}",
"@historyAlbumsCount": {
"description": "Album count with plural form",
"placeholders": {
"count": {
"type": "int"
}
}
},
"historyNoDownloads": "Pas d'historique de téléchargement",
"@historyNoDownloads": {
"description": "Empty state title"
},
"historyNoDownloadsSubtitle": "Les pistes téléchargées apparaîtront ici",
"@historyNoDownloadsSubtitle": {
"description": "Empty state subtitle"
},
"historyNoAlbums": "Pas de téléchargement d'album",
"@historyNoAlbums": {
"description": "Empty state when filtering albums"
},
"historyNoAlbumsSubtitle": "Téléchargez plusieurs titres d'un album pour les voir ici",
"@historyNoAlbumsSubtitle": {
"description": "Empty state subtitle for albums filter"
},
"historyNoSingles": "Pas de téléchargements uniques",
"@historyNoSingles": {
"description": "Empty state when filtering singles"
},
"historyNoSinglesSubtitle": "Les téléchargements de pistes uniques apparaîtront ici",
"@historyNoSinglesSubtitle": {
"description": "Empty state subtitle for singles filter"
},
"historySearchHint": "Historique de recherche...",
"@historySearchHint": {
"description": "Search bar placeholder in history"
},
"settingsTitle": "Paramètres",
"@settingsTitle": {
"description": "Settings screen title"
},
"settingsDownload": "Télécharger",
"@settingsDownload": {
"description": "Settings section - download options"
},
"settingsAppearance": "Apparence",
"@settingsAppearance": {
"description": "Settings section - visual customization"
},
"settingsOptions": "Options",
"@settingsOptions": {
"description": "Settings section - app options"
},
"settingsExtensions": "Extensions",
"@settingsExtensions": {
"description": "Settings section - extension management"
},
"settingsAbout": "À propos",
"@settingsAbout": {
"description": "Settings section - app info"
},
"downloadTitle": "Télécharger",
"@downloadTitle": {
"description": "Download settings page title"
},
"downloadLocation": "Télécharger Localisation",
"@downloadLocation": {
"description": "Setting for download folder"
},
"downloadLocationSubtitle": "Choisissez où enregistrer des fichiers",
"@downloadLocationSubtitle": {
"description": "Subtitle for download location"
},
"downloadLocationDefault": "Localisation par défaut",
"@downloadLocationDefault": {
"description": "Shown when using default folder"
},
"downloadDefaultService": "Service par défaut",
"@downloadDefaultService": {
"description": "Setting for preferred download service (Tidal/Qobuz/Amazon)"
},
"downloadDefaultServiceSubtitle": "Service utilisé pour les téléchargements",
"@downloadDefaultServiceSubtitle": {
"description": "Subtitle for default service"
},
"downloadDefaultQuality": "Qualité par défaut",
"@downloadDefaultQuality": {
"description": "Setting for audio quality"
},
"downloadAskQuality": "Demandez La Qualité Avant Le Téléchargement",
"@downloadAskQuality": {
"description": "Toggle to show quality picker"
},
"downloadAskQualitySubtitle": "Afficher le sélecteur de qualité pour chaque téléchargement",
"@downloadAskQualitySubtitle": {
"description": "Subtitle for ask quality toggle"
},
"downloadFilenameFormat": "Nom du fichier",
"@downloadFilenameFormat": {
"description": "Setting for output filename pattern"
},
"downloadFolderOrganization": "Organisation du dossier",
"@downloadFolderOrganization": {
"description": "Setting for folder structure"
},
"downloadSeparateSingles": "Titres séparés",
"@downloadSeparateSingles": {
"description": "Toggle to separate single tracks"
},
"downloadSeparateSinglesSubtitle": "Mettre des pistes uniques dans un dossier séparé",
"@downloadSeparateSinglesSubtitle": {
"description": "Subtitle for separate singles toggle"
},
"qualityBest": "Meilleur 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": "Apparence",
"@appearanceTitle": {
"description": "Appearance settings page title"
},
"appearanceTheme": "Thème",
"@appearanceTheme": {
"description": "Theme mode setting"
},
"appearanceThemeSystem": "Système",
"@appearanceThemeSystem": {
"description": "Follow system theme"
},
"appearanceThemeLight": "Clair",
"@appearanceThemeLight": {
"description": "Light theme"
},
"appearanceThemeDark": "Sombre",
"@appearanceThemeDark": {
"description": "Dark theme"
},
"appearanceDynamicColor": "Couleur dynamique",
"@appearanceDynamicColor": {
"description": "Material You dynamic colors"
},
"appearanceDynamicColorSubtitle": "Utilisez les couleurs de votre fond d'écran",
"@appearanceDynamicColorSubtitle": {
"description": "Subtitle for dynamic color"
},
"appearanceAccentColor": "Couleur d'accent",
"@appearanceAccentColor": {
"description": "Custom accent color picker"
},
"appearanceHistoryView": "Historique Vue",
"@appearanceHistoryView": {
"description": "Layout style for history"
},
"appearanceHistoryViewList": "",
"@appearanceHistoryViewList": {
"description": "List layout option"
},
"appearanceHistoryViewGrid": "Grille",
"@appearanceHistoryViewGrid": {
"description": "Grid layout option"
},
"optionsTitle": "Options",
"@optionsTitle": {
"description": "Options settings page title"
},
"optionsSearchSource": "Recherche Source",
"@optionsSearchSource": {
"description": "Section for search provider settings"
},
"optionsPrimaryProvider": "Fournisseur principal",
"@optionsPrimaryProvider": {
"description": "Main search provider setting"
},
"optionsPrimaryProviderSubtitle": "Service utilisé lors de la recherche par nom de piste.",
"@optionsPrimaryProviderSubtitle": {
"description": "Subtitle for primary provider"
},
"optionsUsingExtension": "Utilisation de l'extension: {extensionName}",
"@optionsUsingExtension": {
"description": "Shows active extension name",
"placeholders": {
"extensionName": {
"type": "String"
}
}
},
"optionsSwitchBack": "Appuyez sur Deezer ou Spotify pour revenir à l'extension",
"@optionsSwitchBack": {
"description": "Hint to switch back to built-in providers"
},
"optionsAutoFallback": "Auto Fallback",
"@optionsAutoFallback": {
"description": "Auto-retry with other services"
},
"optionsAutoFallbackSubtitle": "Essayez d'autres services si le téléchargement échoue",
"@optionsAutoFallbackSubtitle": {
"description": "Subtitle for auto fallback"
},
"optionsUseExtensionProviders": "Utiliser des fournisseurs d'extension",
"@optionsUseExtensionProviders": {
"description": "Enable extension download providers"
},
"optionsUseExtensionProvidersOn": "Extensions will be tried first",
"@optionsUseExtensionProvidersOn": {
"description": "Status when extension providers enabled"
},
"optionsUseExtensionProvidersOff": "Using built-in providers only",
"@optionsUseExtensionProvidersOff": {
"description": "Status when extension providers disabled"
},
"optionsEmbedLyrics": "Embed Lyrics",
"@optionsEmbedLyrics": {
"description": "Embed lyrics in audio files"
},
"optionsEmbedLyricsSubtitle": "Embed synced lyrics into FLAC files",
"@optionsEmbedLyricsSubtitle": {
"description": "Subtitle for embed lyrics"
},
"optionsMaxQualityCover": "Max Quality Cover",
"@optionsMaxQualityCover": {
"description": "Download highest quality album art"
},
"optionsMaxQualityCoverSubtitle": "Download highest resolution cover art",
"@optionsMaxQualityCoverSubtitle": {
"description": "Subtitle for max quality cover"
},
"optionsConcurrentDownloads": "Concurrent Downloads",
"@optionsConcurrentDownloads": {
"description": "Number of parallel downloads"
},
"optionsConcurrentSequential": "Sequential (1 at a time)",
"@optionsConcurrentSequential": {
"description": "Download one at a time"
},
"optionsConcurrentParallel": "{count} parallel downloads",
"@optionsConcurrentParallel": {
"description": "Multiple parallel downloads",
"placeholders": {
"count": {
"type": "int"
}
}
},
"optionsConcurrentWarning": "Parallel downloads may trigger rate limiting",
"@optionsConcurrentWarning": {
"description": "Warning about rate limits"
},
"optionsExtensionStore": "Extension Store",
"@optionsExtensionStore": {
"description": "Show/hide store tab"
},
"optionsExtensionStoreSubtitle": "Show Store tab in navigation",
"@optionsExtensionStoreSubtitle": {
"description": "Subtitle for extension store toggle"
},
"optionsCheckUpdates": "Check for Updates",
"@optionsCheckUpdates": {
"description": "Auto update check toggle"
},
"optionsCheckUpdatesSubtitle": "Notify when new version is available",
"@optionsCheckUpdatesSubtitle": {
"description": "Subtitle for update check"
},
"optionsUpdateChannel": "Update Channel",
"@optionsUpdateChannel": {
"description": "Stable vs preview releases"
},
"optionsUpdateChannelStable": "Stable releases only",
"@optionsUpdateChannelStable": {
"description": "Only stable updates"
},
"optionsUpdateChannelPreview": "Get preview releases",
"@optionsUpdateChannelPreview": {
"description": "Include beta/preview updates"
},
"optionsUpdateChannelWarning": "Preview may contain bugs or incomplete features",
"@optionsUpdateChannelWarning": {
"description": "Warning about preview channel"
},
"optionsClearHistory": "Clear Download History",
"@optionsClearHistory": {
"description": "Delete all download history"
},
"optionsClearHistorySubtitle": "Remove all downloaded tracks from history",
"@optionsClearHistorySubtitle": {
"description": "Subtitle for clear history"
},
"optionsDetailedLogging": "Detailed Logging",
"@optionsDetailedLogging": {
"description": "Enable verbose logs for debugging"
},
"optionsDetailedLoggingOn": "Detailed logs are being recorded",
"@optionsDetailedLoggingOn": {
"description": "Status when logging enabled"
},
"optionsDetailedLoggingOff": "Enable for bug reports",
"@optionsDetailedLoggingOff": {
"description": "Status when logging disabled"
},
"optionsSpotifyCredentials": "Spotify Credentials",
"@optionsSpotifyCredentials": {
"description": "Spotify API credentials setting"
},
"optionsSpotifyCredentialsConfigured": "Client ID: {clientId}...",
"@optionsSpotifyCredentialsConfigured": {
"description": "Shows configured client ID preview",
"placeholders": {
"clientId": {
"type": "String"
}
}
},
"optionsSpotifyCredentialsRequired": "Required - tap to configure",
"@optionsSpotifyCredentialsRequired": {
"description": "Prompt to set up credentials"
},
"optionsSpotifyWarning": "Spotify requires your own API credentials. Get them free from 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": "Extensions",
"@extensionsTitle": {
"description": "Extensions page title"
},
"extensionsInstalled": "Installed Extensions",
"@extensionsInstalled": {
"description": "Section header for installed extensions"
},
"extensionsNone": "No extensions installed",
"@extensionsNone": {
"description": "Empty state title"
},
"extensionsNoneSubtitle": "Install extensions from the Store tab",
"@extensionsNoneSubtitle": {
"description": "Empty state subtitle"
},
"extensionsEnabled": "Enabled",
"@extensionsEnabled": {
"description": "Extension status - active"
},
"extensionsDisabled": "Disabled",
"@extensionsDisabled": {
"description": "Extension status - inactive"
},
"extensionsVersion": "Version {version}",
"@extensionsVersion": {
"description": "Extension version display",
"placeholders": {
"version": {
"type": "String"
}
}
},
"extensionsAuthor": "by {author}",
"@extensionsAuthor": {
"description": "Extension author credit",
"placeholders": {
"author": {
"type": "String"
}
}
},
"extensionsUninstall": "Désinstaller",
"@extensionsUninstall": {
"description": "Uninstall extension button"
},
"extensionsSetAsSearch": "Défini comme fournisseur de recherche",
"@extensionsSetAsSearch": {
"description": "Use extension for search"
},
"storeTitle": "Magasin d'extension",
"@storeTitle": {
"description": "Store screen title"
},
"storeSearch": "Recherche d'extensions...",
"@storeSearch": {
"description": "Store search placeholder"
},
"storeInstall": "Install",
"@storeInstall": {
"description": "Install extension button"
},
"storeInstalled": "Installed",
"@storeInstalled": {
"description": "Already installed badge"
},
"storeUpdate": "Update",
"@storeUpdate": {
"description": "Update available button"
},
"aboutTitle": "About",
"@aboutTitle": {
"description": "About page title"
},
"aboutContributors": "Contributors",
"@aboutContributors": {
"description": "Section for contributors"
},
"aboutMobileDeveloper": "Mobile version developer",
"@aboutMobileDeveloper": {
"description": "Role description for mobile dev"
},
"aboutOriginalCreator": "Creator of the original SpotiFLAC",
"@aboutOriginalCreator": {
"description": "Role description for original creator"
},
"aboutLogoArtist": "The talented artist who created our beautiful app logo!",
"@aboutLogoArtist": {
"description": "Role description for logo artist"
},
"aboutTranslators": "Translators",
"@aboutTranslators": {
"description": "Section for translators"
},
"aboutSpecialThanks": "Special Thanks",
"@aboutSpecialThanks": {
"description": "Section for special thanks"
},
"aboutLinks": "Links",
"@aboutLinks": {
"description": "Section for external links"
},
"aboutMobileSource": "Mobile source code",
"@aboutMobileSource": {
"description": "Link to mobile GitHub repo"
},
"aboutPCSource": "PC source code",
"@aboutPCSource": {
"description": "Link to PC GitHub repo"
},
"aboutReportIssue": "Report an issue",
"@aboutReportIssue": {
"description": "Link to report bugs"
},
"aboutReportIssueSubtitle": "Report any problems you encounter",
"@aboutReportIssueSubtitle": {
"description": "Subtitle for report issue"
},
"aboutFeatureRequest": "Feature request",
"@aboutFeatureRequest": {
"description": "Link to suggest features"
},
"aboutFeatureRequestSubtitle": "Suggest new features for the app",
"@aboutFeatureRequestSubtitle": {
"description": "Subtitle for feature request"
},
"aboutTelegramChannel": "Telegram Channel",
"@aboutTelegramChannel": {
"description": "Link to Telegram channel"
},
"aboutTelegramChannelSubtitle": "Announcements and updates",
"@aboutTelegramChannelSubtitle": {
"description": "Subtitle for Telegram channel"
},
"aboutTelegramChat": "Telegram Community",
"@aboutTelegramChat": {
"description": "Link to Telegram chat group"
},
"aboutTelegramChatSubtitle": "Chat with other users",
"@aboutTelegramChatSubtitle": {
"description": "Subtitle for Telegram chat"
},
"aboutSocial": "Social",
"@aboutSocial": {
"description": "Section for social links"
},
"aboutSupport": "Support",
"@aboutSupport": {
"description": "Section for support/donation links"
},
"aboutApp": "App",
"@aboutApp": {
"description": "Section for app info"
},
"aboutVersion": "Version",
"@aboutVersion": {
"description": "Version info label"
},
"aboutBinimumDesc": "The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn't exist!",
"@aboutBinimumDesc": {
"description": "Credit description for binimum"
},
"aboutSachinsenalDesc": "The original HiFi project creator. The foundation of Tidal integration!",
"@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": "Amazing API for Amazon Music downloads. Thank you for making it free!",
"@aboutDoubleDoubleDesc": {
"description": "Credit for DoubleDouble API"
},
"aboutDabMusic": "DAB Music",
"@aboutDabMusic": {
"description": "Name of Qobuz API service - DO NOT TRANSLATE"
},
"aboutDabMusicDesc": "The best Qobuz streaming API. Hi-Res downloads wouldn't be possible without this!",
"@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": "Download Spotify tracks in lossless quality from Tidal, Qobuz, and Amazon Music.",
"@aboutAppDescription": {
"description": "App description in header card"
},
"albumTitle": "Album",
"@albumTitle": {
"description": "Album screen title"
},
"albumTracks": "{count, plural, =1{1 track} other{{count} tracks}}",
"@albumTracks": {
"description": "Album track count",
"placeholders": {
"count": {
"type": "int"
}
}
},
"albumDownloadAll": "Download All",
"@albumDownloadAll": {
"description": "Button to download all tracks"
},
"albumDownloadRemaining": "Download Remaining",
"@albumDownloadRemaining": {
"description": "Button to download remaining tracks"
},
"playlistTitle": "Playlist",
"@playlistTitle": {
"description": "Playlist screen title"
},
"artistTitle": "Artist",
"@artistTitle": {
"description": "Artist screen title"
},
"artistAlbums": "Albums",
"@artistAlbums": {
"description": "Section header for artist albums"
},
"artistSingles": "Singles & EPs",
"@artistSingles": {
"description": "Section header for singles/EPs"
},
"artistCompilations": "Compilations",
"@artistCompilations": {
"description": "Section header for compilations"
},
"artistReleases": "{count, plural, =1{1 release} other{{count} releases}}",
"@artistReleases": {
"description": "Artist release count",
"placeholders": {
"count": {
"type": "int"
}
}
},
"artistPopular": "Popular",
"@artistPopular": {
"description": "Section header for popular/top tracks"
},
"artistMonthlyListeners": "{count} monthly listeners",
"@artistMonthlyListeners": {
"description": "Monthly listener count display",
"placeholders": {
"count": {
"type": "String",
"description": "Formatted listener count"
}
}
},
"trackMetadataTitle": "Track Info",
"@trackMetadataTitle": {
"description": "Track metadata screen title"
},
"trackMetadataArtist": "Artist",
"@trackMetadataArtist": {
"description": "Metadata field - artist name"
},
"trackMetadataAlbum": "Album",
"@trackMetadataAlbum": {
"description": "Metadata field - album name"
},
"trackMetadataDuration": "Duration",
"@trackMetadataDuration": {
"description": "Metadata field - track length"
},
"trackMetadataQuality": "",
"@trackMetadataQuality": {
"description": "Metadata field - audio quality"
},
"trackMetadataPath": "File Path",
"@trackMetadataPath": {
"description": "Metadata field - file location"
},
"trackMetadataDownloadedAt": "Downloaded",
"@trackMetadataDownloadedAt": {
"description": "Metadata field - download date"
},
"trackMetadataService": "Service",
"@trackMetadataService": {
"description": "Metadata field - download service used"
},
"trackMetadataPlay": "Jouer",
"@trackMetadataPlay": {
"description": "Action button - play track"
},
"trackMetadataShare": "Partager",
"@trackMetadataShare": {
"description": "Action button - share track"
},
"trackMetadataDelete": "Supprimer",
"@trackMetadataDelete": {
"description": "Action button - delete track"
},
"trackMetadataRedownload": "Re-télécharger",
"@trackMetadataRedownload": {
"description": "Action button - download again"
},
"trackMetadataOpenFolder": "Dossier ouvert",
"@trackMetadataOpenFolder": {
"description": "Action button - open containing folder"
},
"setupTitle": "Bienvenue chez SpotiFLAC",
"@setupTitle": {
"description": "Setup wizard title"
},
"setupSubtitle": "On va commencer",
"@setupSubtitle": {
"description": "Setup wizard subtitle"
},
"setupStoragePermission": "Permission de stockage",
"@setupStoragePermission": {
"description": "Storage permission step title"
},
"setupStoragePermissionSubtitle": "Requis pour enregistrer les fichiers téléchargés",
"@setupStoragePermissionSubtitle": {
"description": "Explanation for storage permission"
},
"setupStoragePermissionGranted": "Permission accordée",
"@setupStoragePermissionGranted": {
"description": "Status when permission granted"
},
"setupStoragePermissionDenied": "Permission refusée",
"@setupStoragePermissionDenied": {
"description": "Status when permission denied"
},
"setupGrantPermission": "Grant Permission",
"@setupGrantPermission": {
"description": "Button to request permission"
},
"setupDownloadLocation": "Download Location",
"@setupDownloadLocation": {
"description": "Download folder step title"
},
"setupChooseFolder": "Choose Folder",
"@setupChooseFolder": {
"description": "Button to pick folder"
},
"setupContinue": "Continue",
"@setupContinue": {
"description": "Continue to next step button"
},
"setupSkip": "Skip for now",
"@setupSkip": {
"description": "Skip current step button"
},
"setupStorageAccessRequired": "Storage Access Required",
"@setupStorageAccessRequired": {
"description": "Title when storage access needed"
},
"setupStorageAccessMessage": "SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.",
"@setupStorageAccessMessage": {
"description": "Explanation for storage access"
},
"setupStorageAccessMessageAndroid11": "Android 11+ requires \"All files access\" permission to save files to your chosen download folder.",
"@setupStorageAccessMessageAndroid11": {
"description": "Android 11+ specific explanation"
},
"setupOpenSettings": "Open Settings",
"@setupOpenSettings": {
"description": "Button to open system settings"
},
"setupPermissionDeniedMessage": "Permission denied. Please grant all permissions to continue.",
"@setupPermissionDeniedMessage": {
"description": "Error when permission denied"
},
"setupPermissionRequired": "{permissionType} Permission Required",
"@setupPermissionRequired": {
"description": "Generic permission required title",
"placeholders": {
"permissionType": {
"type": "String",
"description": "Type of permission (Storage/Notification)"
}
}
},
"setupPermissionRequiredMessage": "{permissionType} permission is required for the best experience. You can change this later in Settings.",
"@setupPermissionRequiredMessage": {
"description": "Generic permission required message",
"placeholders": {
"permissionType": {
"type": "String"
}
}
},
"setupSelectDownloadFolder": "Select Download Folder",
"@setupSelectDownloadFolder": {
"description": "Folder selection step title"
},
"setupUseDefaultFolder": "Use Default Folder?",
"@setupUseDefaultFolder": {
"description": "Dialog title for default folder"
},
"setupNoFolderSelected": "No folder selected. Would you like to use the default Music folder?",
"@setupNoFolderSelected": {
"description": "Prompt when no folder selected"
},
"setupUseDefault": "Use Default",
"@setupUseDefault": {
"description": "Button to use default folder"
},
"setupDownloadLocationTitle": "Download Location",
"@setupDownloadLocationTitle": {
"description": "Download location dialog title"
},
"setupDownloadLocationIosMessage": "On iOS, downloads are saved to the app's Documents folder. You can access them via the Files app.",
"@setupDownloadLocationIosMessage": {
"description": "iOS-specific folder info"
},
"setupAppDocumentsFolder": "App Documents Folder",
"@setupAppDocumentsFolder": {
"description": "iOS documents folder option"
},
"setupAppDocumentsFolderSubtitle": "Recommended - accessible via Files app",
"@setupAppDocumentsFolderSubtitle": {
"description": "Subtitle for documents folder"
},
"setupChooseFromFiles": "Choose from Files",
"@setupChooseFromFiles": {
"description": "iOS file picker option"
},
"setupChooseFromFilesSubtitle": "Select iCloud or other location",
"@setupChooseFromFilesSubtitle": {
"description": "Subtitle for file picker"
},
"setupIosEmptyFolderWarning": "iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.",
"@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": "Download Spotify tracks in FLAC",
"@setupDownloadInFlac": {
"description": "App tagline in setup"
},
"setupStepStorage": "Storage",
"@setupStepStorage": {
"description": "Setup step indicator - storage"
},
"setupStepNotification": "Notification",
"@setupStepNotification": {
"description": "Setup step indicator - notification"
},
"setupStepFolder": "Folder",
"@setupStepFolder": {
"description": "Setup step indicator - folder"
},
"setupStepSpotify": "Spotify",
"@setupStepSpotify": {
"description": "Setup step indicator - Spotify API"
},
"setupStepPermission": "Permission",
"@setupStepPermission": {
"description": "Setup step indicator - permission"
},
"setupStorageGranted": "Storage Permission Granted!",
"@setupStorageGranted": {
"description": "Success message for storage permission"
},
"setupStorageRequired": "Storage Permission Required",
"@setupStorageRequired": {
"description": "Title when storage permission needed"
},
"setupStorageDescription": "SpotiFLAC needs storage permission to save your downloaded music files.",
"@setupStorageDescription": {
"description": "Explanation for storage permission"
},
"setupNotificationGranted": "Notification Permission Granted!",
"@setupNotificationGranted": {
"description": "Success message for notification permission"
},
"setupNotificationEnable": "Enable Notifications",
"@setupNotificationEnable": {
"description": "Button to enable notifications"
},
"setupNotificationDescription": "Get notified when downloads complete or require attention.",
"@setupNotificationDescription": {
"description": "Explanation for notifications"
},
"setupFolderSelected": "Dossier de téléchargement sélectionné!",
"@setupFolderSelected": {
"description": "Success message for folder selection"
},
"setupFolderChoose": "Choisissez le dossier pour télécharger",
"@setupFolderChoose": {
"description": "Button to choose folder"
},
"setupFolderDescription": "Sélectionnez un dossier dans lequel votre musique téléchargée sera enregistrée.",
"@setupFolderDescription": {
"description": "Explanation for folder selection"
},
"setupChangeFolder": "Change Folder",
"@setupChangeFolder": {
"description": "Button to change selected folder"
},
"setupSelectFolder": "Select Folder",
"@setupSelectFolder": {
"description": "Button to select folder"
},
"setupSpotifyApiOptional": "Spotify API (Optional)",
"@setupSpotifyApiOptional": {
"description": "Spotify API step title"
},
"setupSpotifyApiDescription": "Add your Spotify API credentials for better search results and access to Spotify-exclusive content.",
"@setupSpotifyApiDescription": {
"description": "Explanation for Spotify API"
},
"setupUseSpotifyApi": "Use Spotify API",
"@setupUseSpotifyApi": {
"description": "Toggle to enable Spotify API"
},
"setupEnterCredentialsBelow": "Enter your credentials below",
"@setupEnterCredentialsBelow": {
"description": "Prompt to enter credentials"
},
"setupUsingDeezer": "Using Deezer (no account needed)",
"@setupUsingDeezer": {
"description": "Status when using Deezer"
},
"setupEnterClientId": "Enter Spotify Client ID",
"@setupEnterClientId": {
"description": "Placeholder for client ID field"
},
"setupEnterClientSecret": "Enter Spotify Client Secret",
"@setupEnterClientSecret": {
"description": "Placeholder for client secret field"
},
"setupGetFreeCredentials": "Get your free API credentials from the Spotify Developer Dashboard.",
"@setupGetFreeCredentials": {
"description": "Info about getting Spotify credentials"
},
"setupEnableNotifications": "Enable Notifications",
"@setupEnableNotifications": {
"description": "Button to enable notifications"
},
"setupProceedToNextStep": "You can now proceed to the next step.",
"@setupProceedToNextStep": {
"description": "Message after completing a step"
},
"setupNotificationProgressDescription": "You will receive download progress notifications.",
"@setupNotificationProgressDescription": {
"description": "Info about notification usage"
},
"setupNotificationBackgroundDescription": "Get notified about download progress and completion. This helps you track downloads when the app is in background.",
"@setupNotificationBackgroundDescription": {
"description": "Detailed notification explanation"
},
"setupSkipForNow": "Skip for now",
"@setupSkipForNow": {
"description": "Skip button text"
},
"setupBack": "Back",
"@setupBack": {
"description": "Back button text"
},
"setupNext": "Next",
"@setupNext": {
"description": "Next button text"
},
"setupGetStarted": "Get Started",
"@setupGetStarted": {
"description": "Final setup button"
},
"setupSkipAndStart": "Skip & Start",
"@setupSkipAndStart": {
"description": "Skip setup and start app"
},
"setupAllowAccessToManageFiles": "Please enable \"Allow access to manage all files\" in the next screen.",
"@setupAllowAccessToManageFiles": {
"description": "Instruction for file access permission"
},
"setupGetCredentialsFromSpotify": "Get credentials from developer.spotify.com",
"@setupGetCredentialsFromSpotify": {
"description": "Link text for Spotify developer portal"
},
"dialogCancel": "Cancel",
"@dialogCancel": {
"description": "Dialog button - cancel action"
},
"dialogOk": "OK",
"@dialogOk": {
"description": "Dialog button - confirm/acknowledge"
},
"dialogSave": "Save",
"@dialogSave": {
"description": "Dialog button - save changes"
},
"dialogDelete": "Delete",
"@dialogDelete": {
"description": "Dialog button - delete item"
},
"dialogRetry": "Retry",
"@dialogRetry": {
"description": "Dialog button - retry action"
},
"dialogClose": "Close",
"@dialogClose": {
"description": "Dialog button - close dialog"
},
"dialogYes": "Yes",
"@dialogYes": {
"description": "Dialog button - confirm yes"
},
"dialogNo": "No",
"@dialogNo": {
"description": "Dialog button - confirm no"
},
"dialogClear": "Clear",
"@dialogClear": {
"description": "Dialog button - clear items"
},
"dialogConfirm": "Confirm",
"@dialogConfirm": {
"description": "Dialog button - confirm action"
},
"dialogDone": "Done",
"@dialogDone": {
"description": "Dialog button - action completed"
},
"dialogImport": "Import",
"@dialogImport": {
"description": "Dialog button - import data"
},
"dialogDiscard": "Discard",
"@dialogDiscard": {
"description": "Dialog button - discard changes"
},
"dialogRemove": "Remove",
"@dialogRemove": {
"description": "Dialog button - remove item"
},
"dialogUninstall": "Uninstall",
"@dialogUninstall": {
"description": "Dialog button - uninstall extension"
},
"dialogDiscardChanges": "Discard Changes?",
"@dialogDiscardChanges": {
"description": "Dialog title - unsaved changes warning"
},
"dialogUnsavedChanges": "You have unsaved changes. Do you want to discard them?",
"@dialogUnsavedChanges": {
"description": "Dialog message - unsaved changes"
},
"dialogDownloadFailed": "Download Failed",
"@dialogDownloadFailed": {
"description": "Dialog title - download error"
},
"dialogTrackLabel": "Track:",
"@dialogTrackLabel": {
"description": "Label for track name in error dialog"
},
"dialogArtistLabel": "Artist:",
"@dialogArtistLabel": {
"description": "Label for artist name in error dialog"
},
"dialogErrorLabel": "Error:",
"@dialogErrorLabel": {
"description": "Label for error message"
},
"dialogClearAll": "Clear All",
"@dialogClearAll": {
"description": "Dialog title - clear all items"
},
"dialogClearAllDownloads": "Are you sure you want to clear all downloads?",
"@dialogClearAllDownloads": {
"description": "Dialog message - clear downloads confirmation"
},
"dialogRemoveFromDevice": "Remove from device?",
"@dialogRemoveFromDevice": {
"description": "Dialog title - delete file confirmation"
},
"dialogRemoveExtension": "Remove Extension",
"@dialogRemoveExtension": {
"description": "Dialog title - uninstall extension"
},
"dialogRemoveExtensionMessage": "Are you sure you want to remove this extension? This cannot be undone.",
"@dialogRemoveExtensionMessage": {
"description": "Dialog message - uninstall confirmation"
},
"dialogUninstallExtension": "Uninstall Extension?",
"@dialogUninstallExtension": {
"description": "Dialog title - uninstall extension"
},
"dialogUninstallExtensionMessage": "Are you sure you want to remove {extensionName}?",
"@dialogUninstallExtensionMessage": {
"description": "Dialog message - uninstall specific extension",
"placeholders": {
"extensionName": {
"type": "String"
}
}
},
"dialogClearHistoryTitle": "Clear History",
"@dialogClearHistoryTitle": {
"description": "Dialog title - clear download history"
},
"dialogClearHistoryMessage": "Are you sure you want to clear all download history? This cannot be undone.",
"@dialogClearHistoryMessage": {
"description": "Dialog message - clear history confirmation"
},
"dialogDeleteSelectedTitle": "Delete Selected",
"@dialogDeleteSelectedTitle": {
"description": "Dialog title - delete selected items"
},
"dialogDeleteSelectedMessage": "Delete {count} {count, plural, =1{track} other{tracks}} from history?\n\nThis will also delete the files from storage.",
"@dialogDeleteSelectedMessage": {
"description": "Dialog message - delete selected tracks",
"placeholders": {
"count": {
"type": "int"
}
}
},
"dialogImportPlaylistTitle": "Import Playlist",
"@dialogImportPlaylistTitle": {
"description": "Dialog title - import CSV playlist"
},
"dialogImportPlaylistMessage": "Found {count} tracks in CSV. Add them to download queue?",
"csvImportTracks": "{count} tracks from 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": "Added \"{trackName}\" to queue",
"@snackbarAddedToQueue": {
"description": "Snackbar - track added to download queue",
"placeholders": {
"trackName": {
"type": "String"
}
}
},
"snackbarAddedTracksToQueue": "Added {count} tracks to queue",
"@snackbarAddedTracksToQueue": {
"description": "Snackbar - multiple tracks added to queue",
"placeholders": {
"count": {
"type": "int"
}
}
},
"snackbarAlreadyDownloaded": "\"{trackName}\" already downloaded",
"@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": "History cleared",
"@snackbarHistoryCleared": {
"description": "Snackbar - history deleted"
},
"snackbarCredentialsSaved": "Credentials saved",
"@snackbarCredentialsSaved": {
"description": "Snackbar - Spotify credentials saved"
},
"snackbarCredentialsCleared": "Credentials cleared",
"@snackbarCredentialsCleared": {
"description": "Snackbar - Spotify credentials removed"
},
"snackbarDeletedTracks": "Deleted {count} {count, plural, =1{track} other{tracks}}",
"@snackbarDeletedTracks": {
"description": "Snackbar - tracks deleted",
"placeholders": {
"count": {
"type": "int"
}
}
},
"snackbarCannotOpenFile": "Cannot open file: {error}",
"@snackbarCannotOpenFile": {
"description": "Snackbar - file open error",
"placeholders": {
"error": {
"type": "String"
}
}
},
"snackbarFillAllFields": "Please fill all fields",
"@snackbarFillAllFields": {
"description": "Snackbar - validation error"
},
"snackbarViewQueue": "View Queue",
"@snackbarViewQueue": {
"description": "Snackbar action - view download queue"
},
"snackbarFailedToLoad": "Failed to load: {error}",
"@snackbarFailedToLoad": {
"description": "Snackbar - loading error",
"placeholders": {
"error": {
"type": "String"
}
}
},
"snackbarUrlCopied": "{platform} URL copied to clipboard",
"@snackbarUrlCopied": {
"description": "Snackbar - URL copied",
"placeholders": {
"platform": {
"type": "String",
"description": "Platform name (Spotify/Deezer)"
}
}
},
"snackbarFileNotFound": "File not found",
"@snackbarFileNotFound": {
"description": "Snackbar - file doesn't exist"
},
"snackbarSelectExtFile": "Please select a .spotiflac-ext file",
"@snackbarSelectExtFile": {
"description": "Snackbar - wrong file type selected"
},
"snackbarProviderPrioritySaved": "Provider priority saved",
"@snackbarProviderPrioritySaved": {
"description": "Snackbar - provider order saved"
},
"snackbarMetadataProviderSaved": "Metadata provider priority saved",
"@snackbarMetadataProviderSaved": {
"description": "Snackbar - metadata provider order saved"
},
"snackbarExtensionInstalled": "{extensionName} installed.",
"@snackbarExtensionInstalled": {
"description": "Snackbar - extension installed successfully",
"placeholders": {
"extensionName": {
"type": "String"
}
}
},
"snackbarExtensionUpdated": "{extensionName} updated.",
"@snackbarExtensionUpdated": {
"description": "Snackbar - extension updated successfully",
"placeholders": {
"extensionName": {
"type": "String"
}
}
},
"snackbarFailedToInstall": "Failed to install extension",
"@snackbarFailedToInstall": {
"description": "Snackbar - extension install error"
},
"snackbarFailedToUpdate": "Failed to update extension",
"@snackbarFailedToUpdate": {
"description": "Snackbar - extension update error"
},
"errorRateLimited": "Rate Limited",
"@errorRateLimited": {
"description": "Error title - too many requests"
},
"errorRateLimitedMessage": "Too many requests. Please wait a moment before searching again.",
"@errorRateLimitedMessage": {
"description": "Error message - rate limit explanation"
},
"errorFailedToLoad": "Failed to load {item}",
"@errorFailedToLoad": {
"description": "Error message - loading failed",
"placeholders": {
"item": {
"type": "String",
"description": "Item that failed to load (album/playlist/etc)"
}
}
},
"errorNoTracksFound": "No tracks found",
"@errorNoTracksFound": {
"description": "Error - search returned no results"
},
"errorMissingExtensionSource": "Cannot load {item}: missing extension source",
"@errorMissingExtensionSource": {
"description": "Error - extension source not available",
"placeholders": {
"item": {
"type": "String"
}
}
},
"statusQueued": "Queued",
"@statusQueued": {
"description": "Download status - waiting in queue"
},
"statusDownloading": "Downloading",
"@statusDownloading": {
"description": "Download status - in progress"
},
"statusFinalizing": "Finalizing",
"@statusFinalizing": {
"description": "Download status - writing metadata"
},
"statusCompleted": "Completed",
"@statusCompleted": {
"description": "Download status - finished"
},
"statusFailed": "Failed",
"@statusFailed": {
"description": "Download status - error occurred"
},
"statusSkipped": "Skipped",
"@statusSkipped": {
"description": "Download status - already exists"
},
"statusPaused": "Paused",
"@statusPaused": {
"description": "Download status - paused"
},
"actionPause": "Pause",
"@actionPause": {
"description": "Action button - pause download"
},
"actionResume": "Resume",
"@actionResume": {
"description": "Action button - resume download"
},
"actionCancel": "Cancel",
"@actionCancel": {
"description": "Action button - cancel operation"
},
"actionStop": "Stop",
"@actionStop": {
"description": "Action button - stop operation"
},
"actionSelect": "Select",
"@actionSelect": {
"description": "Action button - enter selection mode"
},
"actionSelectAll": "Select All",
"@actionSelectAll": {
"description": "Action button - select all items"
},
"actionDeselect": "Deselect",
"@actionDeselect": {
"description": "Action button - deselect all"
},
"actionPaste": "Paste",
"@actionPaste": {
"description": "Action button - paste from clipboard"
},
"actionImportCsv": "Import CSV",
"@actionImportCsv": {
"description": "Action button - import CSV file"
},
"actionRemoveCredentials": "Remove Credentials",
"@actionRemoveCredentials": {
"description": "Action button - delete Spotify credentials"
},
"actionSaveCredentials": "Save Credentials",
"@actionSaveCredentials": {
"description": "Action button - save Spotify credentials"
},
"selectionSelected": "{count} selected",
"@selectionSelected": {
"description": "Selection count indicator",
"placeholders": {
"count": {
"type": "int"
}
}
},
"selectionAllSelected": "All tracks selected",
"@selectionAllSelected": {
"description": "Status - all items selected"
},
"selectionTapToSelect": "Tap tracks to select",
"@selectionTapToSelect": {
"description": "Hint - how to select items"
},
"selectionDeleteTracks": "Delete {count} {count, plural, =1{track} other{tracks}}",
"@selectionDeleteTracks": {
"description": "Delete button with count",
"placeholders": {
"count": {
"type": "int"
}
}
},
"selectionSelectToDelete": "Select tracks to delete",
"@selectionSelectToDelete": {
"description": "Placeholder when nothing selected"
},
"progressFetchingMetadata": "Fetching metadata... {current}/{total}",
"@progressFetchingMetadata": {
"description": "Progress indicator - loading track info",
"placeholders": {
"current": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"progressReadingCsv": "Reading CSV...",
"@progressReadingCsv": {
"description": "Progress indicator - parsing CSV file"
},
"searchSongs": "Songs",
"@searchSongs": {
"description": "Search result category - songs"
},
"searchArtists": "Artists",
"@searchArtists": {
"description": "Search result category - artists"
},
"searchAlbums": "Albums",
"@searchAlbums": {
"description": "Search result category - albums"
},
"searchPlaylists": "Playlists",
"@searchPlaylists": {
"description": "Search result category - playlists"
},
"tooltipPlay": "Play",
"@tooltipPlay": {
"description": "Tooltip - play button"
},
"tooltipCancel": "Cancel",
"@tooltipCancel": {
"description": "Tooltip - cancel button"
},
"tooltipStop": "Stop",
"@tooltipStop": {
"description": "Tooltip - stop button"
},
"tooltipRetry": "Retry",
"@tooltipRetry": {
"description": "Tooltip - retry button"
},
"tooltipRemove": "Remove",
"@tooltipRemove": {
"description": "Tooltip - remove button"
},
"tooltipClear": "Clear",
"@tooltipClear": {
"description": "Tooltip - clear button"
},
"tooltipPaste": "Paste",
"@tooltipPaste": {
"description": "Tooltip - paste button"
},
"filenameFormat": "Filename Format",
"@filenameFormat": {
"description": "Setting title - filename pattern"
},
"filenameFormatPreview": "Preview: {preview}",
"@filenameFormatPreview": {
"description": "Preview of filename pattern",
"placeholders": {
"preview": {
"type": "String"
}
}
},
"filenameAvailablePlaceholders": "Available placeholders:",
"@filenameAvailablePlaceholders": {
"description": "Label for placeholder list"
},
"filenameHint": "{artist} - {title}",
"@filenameHint": {
"description": "Default filename format hint"
},
"folderOrganization": "Folder Organization",
"@folderOrganization": {
"description": "Setting title - folder structure"
},
"folderOrganizationNone": "No organization",
"@folderOrganizationNone": {
"description": "Folder option - flat structure"
},
"folderOrganizationByArtist": "By Artist",
"@folderOrganizationByArtist": {
"description": "Folder option - artist folders"
},
"folderOrganizationByAlbum": "By Album",
"@folderOrganizationByAlbum": {
"description": "Folder option - album folders"
},
"folderOrganizationByArtistAlbum": "Artist/Album",
"@folderOrganizationByArtistAlbum": {
"description": "Folder option - nested folders"
},
"folderOrganizationDescription": "Organize downloaded files into folders",
"@folderOrganizationDescription": {
"description": "Folder organization sheet description"
},
"folderOrganizationNoneSubtitle": "All files in download folder",
"@folderOrganizationNoneSubtitle": {
"description": "Subtitle for no organization option"
},
"folderOrganizationByArtistSubtitle": "Separate folder for each artist",
"@folderOrganizationByArtistSubtitle": {
"description": "Subtitle for artist folder option"
},
"folderOrganizationByAlbumSubtitle": "Separate folder for each album",
"@folderOrganizationByAlbumSubtitle": {
"description": "Subtitle for album folder option"
},
"folderOrganizationByArtistAlbumSubtitle": "Nested folders for artist and album",
"@folderOrganizationByArtistAlbumSubtitle": {
"description": "Subtitle for nested folder option"
},
"updateAvailable": "Update Available",
"@updateAvailable": {
"description": "Update dialog title"
},
"updateNewVersion": "Version {version} is available",
"@updateNewVersion": {
"description": "Update available message",
"placeholders": {
"version": {
"type": "String"
}
}
},
"updateDownload": "Download",
"@updateDownload": {
"description": "Update button - download update"
},
"updateLater": "Later",
"@updateLater": {
"description": "Update button - dismiss"
},
"updateChangelog": "Changelog",
"@updateChangelog": {
"description": "Link to changelog"
},
"updateStartingDownload": "Starting download...",
"@updateStartingDownload": {
"description": "Update status - initializing"
},
"updateDownloadFailed": "Download failed",
"@updateDownloadFailed": {
"description": "Update error title"
},
"updateFailedMessage": "Failed to download update",
"@updateFailedMessage": {
"description": "Update error message"
},
"updateNewVersionReady": "A new version is ready",
"@updateNewVersionReady": {
"description": "Update subtitle"
},
"updateCurrent": "Current",
"@updateCurrent": {
"description": "Label for current version"
},
"updateNew": "New",
"@updateNew": {
"description": "Label for new version"
},
"updateDownloading": "Downloading...",
"@updateDownloading": {
"description": "Update status - downloading"
},
"updateWhatsNew": "What's New",
"@updateWhatsNew": {
"description": "Changelog section title"
},
"updateDownloadInstall": "Download & Install",
"@updateDownloadInstall": {
"description": "Update button - download and install"
},
"updateDontRemind": "Don't remind",
"@updateDontRemind": {
"description": "Update button - skip this version"
},
"providerPriority": "Provider Priority",
"@providerPriority": {
"description": "Setting title - download provider order"
},
"providerPrioritySubtitle": "Drag to reorder download providers",
"@providerPrioritySubtitle": {
"description": "Subtitle for provider priority"
},
"providerPriorityTitle": "Provider Priority",
"@providerPriorityTitle": {
"description": "Provider priority page title"
},
"providerPriorityDescription": "Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.",
"@providerPriorityDescription": {
"description": "Provider priority page description"
},
"providerPriorityInfo": "If a track is not available on the first provider, the app will automatically try the next one.",
"@providerPriorityInfo": {
"description": "Info tip about fallback behavior"
},
"providerBuiltIn": "Built-in",
"@providerBuiltIn": {
"description": "Label for built-in providers (Tidal/Qobuz/Amazon)"
},
"providerExtension": "Extension",
"@providerExtension": {
"description": "Label for extension-provided providers"
},
"metadataProviderPriority": "Metadata Provider Priority",
"@metadataProviderPriority": {
"description": "Setting title - metadata provider order"
},
"metadataProviderPrioritySubtitle": "Order used when fetching track metadata",
"@metadataProviderPrioritySubtitle": {
"description": "Subtitle for metadata priority"
},
"metadataProviderPriorityTitle": "Metadata Priority",
"@metadataProviderPriorityTitle": {
"description": "Metadata priority page title"
},
"metadataProviderPriorityDescription": "Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.",
"@metadataProviderPriorityDescription": {
"description": "Metadata priority page description"
},
"metadataProviderPriorityInfo": "Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.",
"@metadataProviderPriorityInfo": {
"description": "Info tip about rate limits"
},
"metadataNoRateLimits": "No rate limits",
"@metadataNoRateLimits": {
"description": "Deezer provider description"
},
"metadataMayRateLimit": "May rate limit",
"@metadataMayRateLimit": {
"description": "Spotify provider description"
},
"logTitle": "Logs",
"@logTitle": {
"description": "Logs screen title"
},
"logCopy": "Copy Logs",
"@logCopy": {
"description": "Action - copy logs to clipboard"
},
"logClear": "Clear Logs",
"@logClear": {
"description": "Action - delete all logs"
},
"logShare": "Share Logs",
"@logShare": {
"description": "Action - share logs file"
},
"logEmpty": "No logs yet",
"@logEmpty": {
"description": "Empty state title"
},
"logCopied": "Logs copied to clipboard",
"@logCopied": {
"description": "Snackbar - logs copied"
},
"logSearchHint": "Search logs...",
"@logSearchHint": {
"description": "Log search placeholder"
},
"logFilterLevel": "Level",
"@logFilterLevel": {
"description": "Filter by log level"
},
"logFilterSection": "Filter",
"@logFilterSection": {
"description": "Filter section title"
},
"logShareLogs": "Share logs",
"@logShareLogs": {
"description": "Share button tooltip"
},
"logClearLogs": "Clear logs",
"@logClearLogs": {
"description": "Clear button tooltip"
},
"logClearLogsTitle": "Clear Logs",
"@logClearLogsTitle": {
"description": "Clear logs dialog title"
},
"logClearLogsMessage": "Are you sure you want to clear all logs?",
"@logClearLogsMessage": {
"description": "Clear logs confirmation message"
},
"logIspBlocking": "ISP BLOCKING DETECTED",
"@logIspBlocking": {
"description": "Error category - ISP blocking"
},
"logRateLimited": "RATE LIMITED",
"@logRateLimited": {
"description": "Error category - rate limiting"
},
"logNetworkError": "NETWORK ERROR",
"@logNetworkError": {
"description": "Error category - network issues"
},
"logTrackNotFound": "TRACK NOT FOUND",
"@logTrackNotFound": {
"description": "Error category - missing tracks"
},
"logFilterBySeverity": "Filter logs by severity",
"@logFilterBySeverity": {
"description": "Filter dialog title"
},
"logNoLogsYet": "No logs yet",
"@logNoLogsYet": {
"description": "Empty state title"
},
"logNoLogsYetSubtitle": "Logs will appear here as you use the app",
"@logNoLogsYetSubtitle": {
"description": "Empty state subtitle"
},
"logIssueSummary": "Issue Summary",
"@logIssueSummary": {
"description": "Section header for error summary"
},
"logIspBlockingDescription": "Your ISP may be blocking access to download services",
"@logIspBlockingDescription": {
"description": "ISP blocking explanation"
},
"logIspBlockingSuggestion": "Try using a VPN or change DNS to 1.1.1.1 or 8.8.8.8",
"@logIspBlockingSuggestion": {
"description": "ISP blocking fix suggestion"
},
"logRateLimitedDescription": "Too many requests to the service",
"@logRateLimitedDescription": {
"description": "Rate limit explanation"
},
"logRateLimitedSuggestion": "Wait a few minutes before trying again",
"@logRateLimitedSuggestion": {
"description": "Rate limit fix suggestion"
},
"logNetworkErrorDescription": "Connection issues detected",
"@logNetworkErrorDescription": {
"description": "Network error explanation"
},
"logNetworkErrorSuggestion": "Check your internet connection",
"@logNetworkErrorSuggestion": {
"description": "Network error fix suggestion"
},
"logTrackNotFoundDescription": "Some tracks could not be found on download services",
"@logTrackNotFoundDescription": {
"description": "Track not found explanation"
},
"logTrackNotFoundSuggestion": "The track may not be available in lossless quality",
"@logTrackNotFoundSuggestion": {
"description": "Track not found explanation"
},
"logTotalErrors": "Total errors: {count}",
"@logTotalErrors": {
"description": "Error count display",
"placeholders": {
"count": {
"type": "int"
}
}
},
"logAffected": "Affected: {domains}",
"@logAffected": {
"description": "Affected domains display",
"placeholders": {
"domains": {
"type": "String"
}
}
},
"logEntriesFiltered": "Entries ({count} filtered)",
"@logEntriesFiltered": {
"description": "Log count with filter active",
"placeholders": {
"count": {
"type": "int"
}
}
},
"logEntries": "Entries ({count})",
"@logEntries": {
"description": "Total log count",
"placeholders": {
"count": {
"type": "int"
}
}
},
"credentialsTitle": "Spotify Credentials",
"@credentialsTitle": {
"description": "Credentials dialog title"
},
"credentialsDescription": "Enter your Client ID and Secret to use your own Spotify application quota.",
"@credentialsDescription": {
"description": "Credentials dialog explanation"
},
"credentialsClientId": "Client ID",
"@credentialsClientId": {
"description": "Client ID field label - DO NOT TRANSLATE"
},
"credentialsClientIdHint": "Paste Client ID",
"@credentialsClientIdHint": {
"description": "Client ID placeholder"
},
"credentialsClientSecret": "Client Secret",
"@credentialsClientSecret": {
"description": "Client Secret field label - DO NOT TRANSLATE"
},
"credentialsClientSecretHint": "Paste Client Secret",
"@credentialsClientSecretHint": {
"description": "Client Secret placeholder"
},
"channelStable": "Stable",
"@channelStable": {
"description": "Update channel - stable releases"
},
"channelPreview": "Preview",
"@channelPreview": {
"description": "Update channel - beta/preview releases"
},
"sectionSearchSource": "Search Source",
"@sectionSearchSource": {
"description": "Settings section header"
},
"sectionDownload": "Download",
"@sectionDownload": {
"description": "Settings section header"
},
"sectionPerformance": "Performance",
"@sectionPerformance": {
"description": "Settings section header"
},
"sectionApp": "App",
"@sectionApp": {
"description": "Settings section header"
},
"sectionData": "Data",
"@sectionData": {
"description": "Settings section header"
},
"sectionDebug": "Debug",
"@sectionDebug": {
"description": "Settings section header"
},
"sectionService": "Service",
"@sectionService": {
"description": "Settings section header"
},
"sectionAudioQuality": "Audio Quality",
"@sectionAudioQuality": {
"description": "Settings section header"
},
"sectionFileSettings": "File Settings",
"@sectionFileSettings": {
"description": "Settings section header"
},
"sectionLyrics": "Lyrics",
"@sectionLyrics": {
"description": "Settings section header"
},
"lyricsMode": "Lyrics Mode",
"@lyricsMode": {
"description": "Setting - how to save lyrics"
},
"lyricsModeDescription": "Choose how lyrics are saved with your downloads",
"@lyricsModeDescription": {
"description": "Lyrics mode picker description"
},
"lyricsModeEmbed": "Embed in file",
"@lyricsModeEmbed": {
"description": "Lyrics mode option - embed in audio file"
},
"lyricsModeEmbedSubtitle": "Lyrics stored inside FLAC metadata",
"@lyricsModeEmbedSubtitle": {
"description": "Subtitle for embed option"
},
"lyricsModeExternal": "External .lrc file",
"@lyricsModeExternal": {
"description": "Lyrics mode option - separate LRC file"
},
"lyricsModeExternalSubtitle": "Separate .lrc file for players like Samsung Music",
"@lyricsModeExternalSubtitle": {
"description": "Subtitle for external option"
},
"lyricsModeBoth": "Both",
"@lyricsModeBoth": {
"description": "Lyrics mode option - embed and external"
},
"lyricsModeBothSubtitle": "Embed and save .lrc file",
"@lyricsModeBothSubtitle": {
"description": "Subtitle for both option"
},
"sectionColor": "Color",
"@sectionColor": {
"description": "Settings section header"
},
"sectionTheme": "Theme",
"@sectionTheme": {
"description": "Settings section header"
},
"sectionLayout": "Layout",
"@sectionLayout": {
"description": "Settings section header"
},
"sectionLanguage": "Language",
"@sectionLanguage": {
"description": "Settings section header for language"
},
"appearanceLanguage": "App Language",
"@appearanceLanguage": {
"description": "Language setting title"
},
"appearanceLanguageSubtitle": "Choose your preferred language",
"@appearanceLanguageSubtitle": {
"description": "Language setting subtitle"
},
"settingsAppearanceSubtitle": "Theme, colors, display",
"@settingsAppearanceSubtitle": {
"description": "Appearance settings description"
},
"settingsDownloadSubtitle": "Service, quality, filename format",
"@settingsDownloadSubtitle": {
"description": "Download settings description"
},
"settingsOptionsSubtitle": "Fallback, lyrics, cover art, updates",
"@settingsOptionsSubtitle": {
"description": "Options settings description"
},
"settingsExtensionsSubtitle": "Manage download providers",
"@settingsExtensionsSubtitle": {
"description": "Extensions settings description"
},
"settingsLogsSubtitle": "View app logs for debugging",
"@settingsLogsSubtitle": {
"description": "Logs settings description"
},
"loadingSharedLink": "Loading shared link...",
"@loadingSharedLink": {
"description": "Status when opening shared URL"
},
"pressBackAgainToExit": "Press back again to exit",
"@pressBackAgainToExit": {
"description": "Exit confirmation message"
},
"tracksHeader": "Tracks",
"@tracksHeader": {
"description": "Section header for track list"
},
"downloadAllCount": "Download All ({count})",
"@downloadAllCount": {
"description": "Download all button with count",
"placeholders": {
"count": {
"type": "int"
}
}
},
"tracksCount": "{count, plural, =1{1 track} other{{count} tracks}}",
"@tracksCount": {
"description": "Track count display",
"placeholders": {
"count": {
"type": "int"
}
}
},
"trackCopyFilePath": "Copy file path",
"@trackCopyFilePath": {
"description": "Action - copy file path"
},
"trackRemoveFromDevice": "Remove from device",
"@trackRemoveFromDevice": {
"description": "Action - delete downloaded file"
},
"trackLoadLyrics": "Load Lyrics",
"@trackLoadLyrics": {
"description": "Action - fetch lyrics"
},
"trackMetadata": "Metadata",
"@trackMetadata": {
"description": "Tab title - track metadata"
},
"trackFileInfo": "File Info",
"@trackFileInfo": {
"description": "Tab title - file information"
},
"trackLyrics": "Lyrics",
"@trackLyrics": {
"description": "Tab title - lyrics"
},
"trackFileNotFound": "File not found",
"@trackFileNotFound": {
"description": "Error - file doesn't exist"
},
"trackOpenInDeezer": "Open in Deezer",
"@trackOpenInDeezer": {
"description": "Action - open track in Deezer app"
},
"trackOpenInSpotify": "Open in Spotify",
"@trackOpenInSpotify": {
"description": "Action - open track in Spotify app"
},
"trackTrackName": "Track name",
"@trackTrackName": {
"description": "Metadata label - track title"
},
"trackArtist": "Artist",
"@trackArtist": {
"description": "Metadata label - artist name"
},
"trackAlbumArtist": "Album artist",
"@trackAlbumArtist": {
"description": "Metadata label - album artist"
},
"trackAlbum": "Album",
"@trackAlbum": {
"description": "Metadata label - album name"
},
"trackTrackNumber": "Track number",
"@trackTrackNumber": {
"description": "Metadata label - track number"
},
"trackDiscNumber": "Disc number",
"@trackDiscNumber": {
"description": "Metadata label - disc number"
},
"trackDuration": "Duration",
"@trackDuration": {
"description": "Metadata label - track length"
},
"trackAudioQuality": "Audio quality",
"@trackAudioQuality": {
"description": "Metadata label - audio quality"
},
"trackReleaseDate": "Release date",
"@trackReleaseDate": {
"description": "Metadata label - release date"
},
"trackGenre": "Genre",
"@trackGenre": {
"description": "Metadata label - music genre"
},
"trackLabel": "Label",
"@trackLabel": {
"description": "Metadata label - record label"
},
"trackCopyright": "Copyright",
"@trackCopyright": {
"description": "Metadata label - copyright information"
},
"trackDownloaded": "Downloaded",
"@trackDownloaded": {
"description": "Metadata label - download date"
},
"trackCopyLyrics": "Copy lyrics",
"@trackCopyLyrics": {
"description": "Action - copy lyrics to clipboard"
},
"trackLyricsNotAvailable": "Lyrics not available for this track",
"@trackLyricsNotAvailable": {
"description": "Message when lyrics not found"
},
"trackLyricsTimeout": "Request timed out. Try again later.",
"@trackLyricsTimeout": {
"description": "Message when lyrics request times out"
},
"trackLyricsLoadFailed": "Failed to load lyrics",
"@trackLyricsLoadFailed": {
"description": "Message when lyrics loading fails"
},
"trackEmbedLyrics": "Embed Lyrics",
"@trackEmbedLyrics": {
"description": "Action - embed lyrics into audio file"
},
"trackLyricsEmbedded": "Lyrics embedded successfully",
"@trackLyricsEmbedded": {
"description": "Snackbar - lyrics saved to file"
},
"trackInstrumental": "Instrumental track",
"@trackInstrumental": {
"description": "Message when track is instrumental (no lyrics)"
},
"trackCopiedToClipboard": "Copied to clipboard",
"@trackCopiedToClipboard": {
"description": "Snackbar - content copied"
},
"trackDeleteConfirmTitle": "Remove from device?",
"@trackDeleteConfirmTitle": {
"description": "Delete confirmation title"
},
"trackDeleteConfirmMessage": "This will permanently delete the downloaded file and remove it from your history.",
"@trackDeleteConfirmMessage": {
"description": "Delete confirmation message"
},
"trackCannotOpen": "Cannot open: {message}",
"@trackCannotOpen": {
"description": "Error opening file",
"placeholders": {
"message": {
"type": "String"
}
}
},
"dateToday": "Today",
"@dateToday": {
"description": "Relative date - today"
},
"dateYesterday": "Yesterday",
"@dateYesterday": {
"description": "Relative date - yesterday"
},
"dateDaysAgo": "{count} days ago",
"@dateDaysAgo": {
"description": "Relative date - days ago",
"placeholders": {
"count": {
"type": "int"
}
}
},
"dateWeeksAgo": "{count} weeks ago",
"@dateWeeksAgo": {
"description": "Relative date - weeks ago",
"placeholders": {
"count": {
"type": "int"
}
}
},
"dateMonthsAgo": "{count} months ago",
"@dateMonthsAgo": {
"description": "Relative date - months ago",
"placeholders": {
"count": {
"type": "int"
}
}
},
"concurrentSequential": "Sequential",
"@concurrentSequential": {
"description": "Download mode - one at a time"
},
"concurrentParallel2": "2 Parallel",
"@concurrentParallel2": {
"description": "Download mode - 2 simultaneous"
},
"concurrentParallel3": "3 Parallel",
"@concurrentParallel3": {
"description": "Download mode - 3 simultaneous"
},
"tapToSeeError": "Tap to see error details",
"@tapToSeeError": {
"description": "Tooltip for failed download"
},
"storeFilterAll": "All",
"@storeFilterAll": {
"description": "Store filter - all extensions"
},
"storeFilterMetadata": "Metadata",
"@storeFilterMetadata": {
"description": "Store filter - metadata providers"
},
"storeFilterDownload": "Download",
"@storeFilterDownload": {
"description": "Store filter - download providers"
},
"storeFilterUtility": "Utility",
"@storeFilterUtility": {
"description": "Store filter - utility extensions"
},
"storeFilterLyrics": "Lyrics",
"@storeFilterLyrics": {
"description": "Store filter - lyrics providers"
},
"storeFilterIntegration": "Integration",
"@storeFilterIntegration": {
"description": "Store filter - integrations"
},
"storeClearFilters": "Clear filters",
"@storeClearFilters": {
"description": "Button to clear all filters"
},
"storeNoResults": "No extensions found",
"@storeNoResults": {
"description": "Empty state when no extensions match filters"
},
"extensionProviderPriority": "Provider Priority",
"@extensionProviderPriority": {
"description": "Extension capability - provider priority"
},
"extensionInstallButton": "Install Extension",
"@extensionInstallButton": {
"description": "Button to install extension"
},
"extensionDefaultProvider": "Default (Deezer/Spotify)",
"@extensionDefaultProvider": {
"description": "Default search provider option"
},
"extensionDefaultProviderSubtitle": "Use built-in search",
"@extensionDefaultProviderSubtitle": {
"description": "Subtitle for default provider"
},
"extensionAuthor": "Author",
"@extensionAuthor": {
"description": "Extension detail - author"
},
"extensionId": "ID",
"@extensionId": {
"description": "Extension detail - unique ID"
},
"extensionError": "Error",
"@extensionError": {
"description": "Extension detail - error message"
},
"extensionCapabilities": "Capabilities",
"@extensionCapabilities": {
"description": "Section header - extension features"
},
"extensionMetadataProvider": "Metadata Provider",
"@extensionMetadataProvider": {
"description": "Capability - provides metadata"
},
"extensionDownloadProvider": "Download Provider",
"@extensionDownloadProvider": {
"description": "Capability - provides downloads"
},
"extensionLyricsProvider": "Lyrics Provider",
"@extensionLyricsProvider": {
"description": "Capability - provides lyrics"
},
"extensionUrlHandler": "URL Handler",
"@extensionUrlHandler": {
"description": "Capability - handles URLs"
},
"extensionQualityOptions": "Quality Options",
"@extensionQualityOptions": {
"description": "Capability - quality selection"
},
"extensionPostProcessingHooks": "Post-Processing Hooks",
"@extensionPostProcessingHooks": {
"description": "Capability - post-processing"
},
"extensionPermissions": "Permissions",
"@extensionPermissions": {
"description": "Section header - required permissions"
},
"extensionSettings": "Settings",
"@extensionSettings": {
"description": "Section header - extension settings"
},
"extensionRemoveButton": "Remove Extension",
"@extensionRemoveButton": {
"description": "Button to uninstall extension"
},
"extensionUpdated": "Updated",
"@extensionUpdated": {
"description": "Extension detail - last update"
},
"extensionMinAppVersion": "Min App Version",
"@extensionMinAppVersion": {
"description": "Extension detail - minimum app version"
},
"extensionCustomTrackMatching": "Custom Track Matching",
"@extensionCustomTrackMatching": {
"description": "Capability - custom track matching algorithm"
},
"extensionPostProcessing": "Post-Processing",
"@extensionPostProcessing": {
"description": "Capability - post-download processing"
},
"extensionHooksAvailable": "{count} hook(s) available",
"@extensionHooksAvailable": {
"description": "Post-processing hooks count",
"placeholders": {
"count": {
"type": "int"
}
}
},
"extensionPatternsCount": "{count} pattern(s)",
"@extensionPatternsCount": {
"description": "URL patterns count",
"placeholders": {
"count": {
"type": "int"
}
}
},
"extensionStrategy": "Strategy: {strategy}",
"@extensionStrategy": {
"description": "Track matching strategy name",
"placeholders": {
"strategy": {
"type": "String"
}
}
},
"extensionsProviderPrioritySection": "Provider Priority",
"@extensionsProviderPrioritySection": {
"description": "Section header - provider priority"
},
"extensionsInstalledSection": "Installed Extensions",
"@extensionsInstalledSection": {
"description": "Section header - installed extensions"
},
"extensionsNoExtensions": "No extensions installed",
"@extensionsNoExtensions": {
"description": "Empty state - no extensions"
},
"extensionsNoExtensionsSubtitle": "Install .spotiflac-ext files to add new providers",
"@extensionsNoExtensionsSubtitle": {
"description": "Empty state subtitle"
},
"extensionsInstallButton": "Install Extension",
"@extensionsInstallButton": {
"description": "Button to install extension from file"
},
"extensionsInfoTip": "Extensions can add new metadata and download providers. Only install extensions from trusted sources.",
"@extensionsInfoTip": {
"description": "Security warning about extensions"
},
"extensionsInstalledSuccess": "Extension installed successfully",
"@extensionsInstalledSuccess": {
"description": "Success message after install"
},
"extensionsDownloadPriority": "Download Priority",
"@extensionsDownloadPriority": {
"description": "Setting - download provider order"
},
"extensionsDownloadPrioritySubtitle": "Set download service order",
"@extensionsDownloadPrioritySubtitle": {
"description": "Subtitle for download priority"
},
"extensionsNoDownloadProvider": "No extensions with download provider",
"@extensionsNoDownloadProvider": {
"description": "Empty state - no download providers"
},
"extensionsMetadataPriority": "Metadata Priority",
"@extensionsMetadataPriority": {
"description": "Setting - metadata provider order"
},
"extensionsMetadataPrioritySubtitle": "Set search & metadata source order",
"@extensionsMetadataPrioritySubtitle": {
"description": "Subtitle for metadata priority"
},
"extensionsNoMetadataProvider": "No extensions with metadata provider",
"@extensionsNoMetadataProvider": {
"description": "Empty state - no metadata providers"
},
"extensionsSearchProvider": "Search Provider",
"@extensionsSearchProvider": {
"description": "Setting - search provider selection"
},
"extensionsNoCustomSearch": "No extensions with custom search",
"@extensionsNoCustomSearch": {
"description": "Empty state - no search providers"
},
"extensionsSearchProviderDescription": "Choose which service to use for searching tracks",
"@extensionsSearchProviderDescription": {
"description": "Search provider setting description"
},
"extensionsCustomSearch": "Custom search",
"@extensionsCustomSearch": {
"description": "Label for custom search provider"
},
"extensionsErrorLoading": "Error loading extension",
"@extensionsErrorLoading": {
"description": "Error message when extension fails to load"
},
"qualityFlacLossless": "FLAC Lossless",
"@qualityFlacLossless": {
"description": "Quality option - CD quality FLAC"
},
"qualityFlacLosslessSubtitle": "16-bit / 44.1kHz",
"@qualityFlacLosslessSubtitle": {
"description": "Technical spec for lossless"
},
"qualityHiResFlac": "Hi-Res FLAC",
"@qualityHiResFlac": {
"description": "Quality option - high resolution FLAC"
},
"qualityHiResFlacSubtitle": "24-bit / up to 96kHz",
"@qualityHiResFlacSubtitle": {
"description": "Technical spec for hi-res"
},
"qualityHiResFlacMax": "Hi-Res FLAC Max",
"@qualityHiResFlacMax": {
"description": "Quality option - maximum resolution FLAC"
},
"qualityHiResFlacMaxSubtitle": "24-bit / up to 192kHz",
"@qualityHiResFlacMaxSubtitle": {
"description": "Technical spec for hi-res max"
},
"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": "Actual quality depends on track availability from the service",
"@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": "Ask Before Download",
"@downloadAskBeforeDownload": {
"description": "Setting - show quality picker"
},
"downloadDirectory": "Download Directory",
"@downloadDirectory": {
"description": "Setting - download folder"
},
"downloadSeparateSinglesFolder": "Separate Singles Folder",
"@downloadSeparateSinglesFolder": {
"description": "Setting - separate folder for singles"
},
"downloadAlbumFolderStructure": "Album Folder Structure",
"@downloadAlbumFolderStructure": {
"description": "Setting - album folder organization"
},
"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": "Save Format",
"@downloadSaveFormat": {
"description": "Setting - output file format"
},
"downloadSelectService": "Select Service",
"@downloadSelectService": {
"description": "Dialog title - choose download service"
},
"downloadSelectQuality": "Select Quality",
"@downloadSelectQuality": {
"description": "Dialog title - choose audio quality"
},
"downloadFrom": "Download From",
"@downloadFrom": {
"description": "Label - download source"
},
"downloadDefaultQualityLabel": "Default Quality",
"@downloadDefaultQualityLabel": {
"description": "Label - default quality setting"
},
"downloadBestAvailable": "Best available",
"@downloadBestAvailable": {
"description": "Quality option - highest available"
},
"folderNone": "None",
"@folderNone": {
"description": "Folder option - no organization"
},
"folderNoneSubtitle": "Save all files directly to download folder",
"@folderNoneSubtitle": {
"description": "Subtitle for no folder organization"
},
"folderArtist": "Artist",
"@folderArtist": {
"description": "Folder option - by artist"
},
"folderArtistSubtitle": "Artist Name/filename",
"@folderArtistSubtitle": {
"description": "Folder structure example"
},
"folderAlbum": "Album",
"@folderAlbum": {
"description": "Folder option - by album"
},
"folderAlbumSubtitle": "Album Name/filename",
"@folderAlbumSubtitle": {
"description": "Folder structure example"
},
"folderArtistAlbum": "Artist/Album",
"@folderArtistAlbum": {
"description": "Folder option - nested"
},
"folderArtistAlbumSubtitle": "Artist Name/Album Name/filename",
"@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 Dark",
"@appearanceAmoledDark": {
"description": "Theme option - pure black"
},
"appearanceAmoledDarkSubtitle": "Pure black background",
"@appearanceAmoledDarkSubtitle": {
"description": "Subtitle for AMOLED dark"
},
"appearanceChooseAccentColor": "Choose Accent Color",
"@appearanceChooseAccentColor": {
"description": "Color picker dialog title"
},
"appearanceChooseTheme": "Theme Mode",
"@appearanceChooseTheme": {
"description": "Theme picker dialog title"
},
"queueTitle": "Download Queue",
"@queueTitle": {
"description": "Queue screen title"
},
"queueClearAll": "Clear All",
"@queueClearAll": {
"description": "Button - clear all queue items"
},
"queueClearAllMessage": "Are you sure you want to clear all downloads?",
"@queueClearAllMessage": {
"description": "Clear queue confirmation"
},
"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": "No downloads in queue",
"@queueEmpty": {
"description": "Empty queue state title"
},
"queueEmptySubtitle": "Add tracks from the home screen",
"@queueEmptySubtitle": {
"description": "Empty queue state subtitle"
},
"queueClearCompleted": "Clear completed",
"@queueClearCompleted": {
"description": "Button - clear finished downloads"
},
"queueDownloadFailed": "Download Failed",
"@queueDownloadFailed": {
"description": "Error dialog title"
},
"queueTrackLabel": "Track:",
"@queueTrackLabel": {
"description": "Label in error dialog"
},
"queueArtistLabel": "Artist:",
"@queueArtistLabel": {
"description": "Label in error dialog"
},
"queueErrorLabel": "Error:",
"@queueErrorLabel": {
"description": "Label in error dialog"
},
"queueUnknownError": "Unknown error",
"@queueUnknownError": {
"description": "Fallback error message"
},
"albumFolderArtistAlbum": "Artist / Album",
"@albumFolderArtistAlbum": {
"description": "Album folder option"
},
"albumFolderArtistAlbumSubtitle": "Albums/Artist Name/Album Name/",
"@albumFolderArtistAlbumSubtitle": {
"description": "Folder structure example"
},
"albumFolderArtistYearAlbum": "Artist / [Year] Album",
"@albumFolderArtistYearAlbum": {
"description": "Album folder option with year"
},
"albumFolderArtistYearAlbumSubtitle": "Albums/Artist Name/[2005] Album Name/",
"@albumFolderArtistYearAlbumSubtitle": {
"description": "Folder structure example"
},
"albumFolderAlbumOnly": "Album Only",
"@albumFolderAlbumOnly": {
"description": "Album folder option"
},
"albumFolderAlbumOnlySubtitle": "Albums/Album Name/",
"@albumFolderAlbumOnlySubtitle": {
"description": "Folder structure example"
},
"albumFolderYearAlbum": "[Year] Album",
"@albumFolderYearAlbum": {
"description": "Album folder option with year"
},
"albumFolderYearAlbumSubtitle": "Albums/[2005] Album Name/",
"@albumFolderYearAlbumSubtitle": {
"description": "Folder structure example"
},
"albumFolderArtistAlbumSingles": "Artist / Album + Singles",
"@albumFolderArtistAlbumSingles": {
"description": "Album folder option with singles inside artist"
},
"albumFolderArtistAlbumSinglesSubtitle": "Artist/Album/ and Artist/Singles/",
"@albumFolderArtistAlbumSinglesSubtitle": {
"description": "Folder structure example"
},
"downloadedAlbumDeleteSelected": "Delete Selected",
"@downloadedAlbumDeleteSelected": {
"description": "Button - delete selected tracks"
},
"downloadedAlbumDeleteMessage": "Delete {count} {count, plural, =1{track} other{tracks}} from this album?\n\nThis will also delete the files from storage.",
"@downloadedAlbumDeleteMessage": {
"description": "Delete confirmation with count",
"placeholders": {
"count": {
"type": "int"
}
}
},
"downloadedAlbumTracksHeader": "Tracks",
"@downloadedAlbumTracksHeader": {
"description": "Section header for tracks"
},
"downloadedAlbumDownloadedCount": "{count} downloaded",
"@downloadedAlbumDownloadedCount": {
"description": "Downloaded tracks count badge",
"placeholders": {
"count": {
"type": "int"
}
}
},
"downloadedAlbumSelectedCount": "{count} selected",
"@downloadedAlbumSelectedCount": {
"description": "Selection count indicator",
"placeholders": {
"count": {
"type": "int"
}
}
},
"downloadedAlbumAllSelected": "All tracks selected",
"@downloadedAlbumAllSelected": {
"description": "Status - all items selected"
},
"downloadedAlbumTapToSelect": "Tap tracks to select",
"@downloadedAlbumTapToSelect": {
"description": "Selection hint"
},
"downloadedAlbumDeleteCount": "Delete {count} {count, plural, =1{track} other{tracks}}",
"@downloadedAlbumDeleteCount": {
"description": "Delete button text with count",
"placeholders": {
"count": {
"type": "int"
}
}
},
"downloadedAlbumSelectToDelete": "Select tracks to delete",
"@downloadedAlbumSelectToDelete": {
"description": "Placeholder when nothing selected"
},
"downloadedAlbumDiscHeader": "Disc {discNumber}",
"@downloadedAlbumDiscHeader": {
"description": "Header for disc separator in multi-disc albums",
"placeholders": {
"discNumber": {
"type": "int",
"example": "1"
}
}
},
"utilityFunctions": "Utility Functions",
"@utilityFunctions": {
"description": "Extension capability - utility functions"
},
"recentTypeArtist": "Artist",
"@recentTypeArtist": {
"description": "Recent access item type - artist"
},
"recentTypeAlbum": "Album",
"@recentTypeAlbum": {
"description": "Recent access item type - album"
},
"recentTypeSong": "Song",
"@recentTypeSong": {
"description": "Recent access item type - song/track"
},
"recentTypePlaylist": "Playlist",
"@recentTypePlaylist": {
"description": "Recent access item type - playlist"
},
"recentEmpty": "No recent items yet",
"@recentEmpty": {
"description": "Empty state text for recent access list"
},
"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": "Error: {message}",
"@errorGeneric": {
"description": "Generic error message format",
"placeholders": {
"message": {
"type": "String",
"description": "Error message"
}
}
},
"discographyDownload": "Download Discography",
"@discographyDownload": {
"description": "Button - download artist discography"
},
"discographyDownloadAll": "Download All",
"@discographyDownloadAll": {
"description": "Option - download entire discography"
},
"discographyDownloadAllSubtitle": "{count} tracks from {albumCount} releases",
"@discographyDownloadAllSubtitle": {
"description": "Subtitle showing total tracks and albums",
"placeholders": {
"count": {
"type": "int"
},
"albumCount": {
"type": "int"
}
}
},
"discographyAlbumsOnly": "Albums Only",
"@discographyAlbumsOnly": {
"description": "Option - download only albums"
},
"discographyAlbumsOnlySubtitle": "{count} tracks from {albumCount} albums",
"@discographyAlbumsOnlySubtitle": {
"description": "Subtitle showing album tracks count",
"placeholders": {
"count": {
"type": "int"
},
"albumCount": {
"type": "int"
}
}
},
"discographySinglesOnly": "Singles & EPs Only",
"@discographySinglesOnly": {
"description": "Option - download only singles"
},
"discographySinglesOnlySubtitle": "{count} tracks from {albumCount} singles",
"@discographySinglesOnlySubtitle": {
"description": "Subtitle showing singles tracks count",
"placeholders": {
"count": {
"type": "int"
},
"albumCount": {
"type": "int"
}
}
},
"discographySelectAlbums": "Select Albums...",
"@discographySelectAlbums": {
"description": "Option - manually select albums to download"
},
"discographySelectAlbumsSubtitle": "Choose specific albums or singles",
"@discographySelectAlbumsSubtitle": {
"description": "Subtitle for select albums option"
},
"discographyFetchingTracks": "Fetching tracks...",
"@discographyFetchingTracks": {
"description": "Progress - fetching album tracks"
},
"discographyFetchingAlbum": "Fetching {current} of {total}...",
"@discographyFetchingAlbum": {
"description": "Progress - fetching specific album",
"placeholders": {
"current": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"discographySelectedCount": "{count} selected",
"@discographySelectedCount": {
"description": "Selection count badge",
"placeholders": {
"count": {
"type": "int"
}
}
},
"discographyDownloadSelected": "Download Selected",
"@discographyDownloadSelected": {
"description": "Button - download selected albums"
},
"discographyAddedToQueue": "Added {count} tracks to queue",
"@discographyAddedToQueue": {
"description": "Snackbar - tracks added from discography",
"placeholders": {
"count": {
"type": "int"
}
}
},
"discographySkippedDownloaded": "{added} added, {skipped} already downloaded",
"@discographySkippedDownloaded": {
"description": "Snackbar - with skipped tracks count",
"placeholders": {
"added": {
"type": "int"
},
"skipped": {
"type": "int"
}
}
},
"discographyNoAlbums": "No albums available",
"@discographyNoAlbums": {
"description": "Error - no albums found for artist"
},
"discographyFailedToFetch": "Failed to fetch some albums",
"@discographyFailedToFetch": {
"description": "Error - some albums failed to load"
},
"sectionStorageAccess": "Storage Access",
"@sectionStorageAccess": {
"description": "Section header for storage access settings"
},
"allFilesAccess": "All Files Access",
"@allFilesAccess": {
"description": "Toggle for MANAGE_EXTERNAL_STORAGE permission"
},
"allFilesAccessEnabledSubtitle": "Can write to any folder",
"@allFilesAccessEnabledSubtitle": {
"description": "Subtitle when all files access is enabled"
},
"allFilesAccessDisabledSubtitle": "Limited to media folders only",
"@allFilesAccessDisabledSubtitle": {
"description": "Subtitle when all files access is disabled"
},
"allFilesAccessDescription": "Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.",
"@allFilesAccessDescription": {
"description": "Description explaining when to enable all files access"
},
"allFilesAccessDeniedMessage": "Permission was denied. Please enable 'All files access' manually in system settings.",
"@allFilesAccessDeniedMessage": {
"description": "Message when permission is permanently denied"
},
"allFilesAccessDisabledMessage": "All Files Access disabled. The app will use limited storage access.",
"@allFilesAccessDisabledMessage": {
"description": "Snackbar message when user disables all files access"
},
"settingsLocalLibrary": "Local Library",
"@settingsLocalLibrary": {
"description": "Settings menu item - local library"
},
"settingsLocalLibrarySubtitle": "Scan music & detect duplicates",
"@settingsLocalLibrarySubtitle": {
"description": "Subtitle for local library settings"
},
"settingsCache": "Storage & Cache",
"@settingsCache": {
"description": "Settings menu item - cache management"
},
"settingsCacheSubtitle": "View size and clear cached data",
"@settingsCacheSubtitle": {
"description": "Subtitle for cache management menu"
},
"libraryTitle": "Local Library",
"@libraryTitle": {
"description": "Library settings page title"
},
"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",
"@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"
},
"setupModeSelectionTitle": "Choisissez votre mode",
"setupModeSelectionDescription": "Comment souhaitez-vous utiliser SpotiFLAC ? Vous pouvez toujours changer cela plus tard dans les Paramètres.",
"setupModeDownloaderTitle": "Téléchargeur",
"setupModeDownloaderFeature1": "Téléchargez des pistes en qualité FLAC sans perte",
"setupModeDownloaderFeature2": "Enregistrez de la musique sur votre appareil pour une écoute hors ligne",
"setupModeDownloaderFeature3": "Gérez votre bibliothèque musicale locale",
"setupModeStreamingTitle": "Streaming",
"setupModeStreamingFeature1": "Diffusez des pistes instantanément sans télécharger",
"setupModeStreamingFeature2": "Smart Queue découvre automatiquement de nouvelle musique pour vous",
"setupModeStreamingFeature3": "Écoutez n'importe quelle piste à la demande avec les contrôles de lecture",
"setupModeChangeableLater": "Vous pouvez changer de mode à tout moment dans les Paramètres."
}