From 354fc02cd87d0ef0d6f2362e05a8a823553994ff Mon Sep 17 00:00:00 2001 From: Zarz Eleutherius <42882290+zarzet@users.noreply.github.com> Date: Tue, 1 Sep 2026 15:23:35 +0700 Subject: [PATCH] New translations app_en.arb (French) [ci skip] --- lib/l10n/arb/app_fr.arb | 11598 ++++++++++++++++++++------------------ 1 file changed, 6022 insertions(+), 5576 deletions(-) diff --git a/lib/l10n/arb/app_fr.arb b/lib/l10n/arb/app_fr.arb index 6a5319dc..64de4f15 100644 --- a/lib/l10n/arb/app_fr.arb +++ b/lib/l10n/arb/app_fr.arb @@ -1,78 +1,229 @@ { "@@locale": "fr", "@@last_modified": "2026-04-28", - "libraryEnableLocalLibrarySubtitle": "Analysez et gérez votre bibliothèque musicale", - "@libraryEnableLocalLibrarySubtitle": { - "description": "Subtitle for enable toggle" + "appName": "SpotiFLAC Mobile", + "@appName": { + "description": "App name - DO NOT TRANSLATE" }, - "@audioAnalysisCodec": { - "description": "Audio codec metric label" + "navHome": "Accueil", + "@navHome": { + "description": "Bottom navigation - Home tab" }, - "extensionUtilityFunctions": "Fonctions utilitaires", - "@extensionUtilityFunctions": { - "description": "Capability label for utility-only extensions" + "navLibrary": "Bibliothèque", + "@navLibrary": { + "description": "Bottom navigation - Library tab" }, - "logClearLogsMessage": "Êtes-vous sûr de vouloir effacer tous les journaux ?", - "@logClearLogsMessage": { - "description": "Clear logs confirmation message" + "navSettings": "Paramètres", + "@navSettings": { + "description": "Bottom navigation - Settings tab" }, - "@storeClearFilters": { - "description": "Button to clear all filters" + "navStore": "Dépôt", + "@navStore": { + "description": "Bottom navigation - Extension repo tab" }, - "cacheCleanupUnused": "Nettoyer les données inutilisées", - "@cacheCleanupUnused": { - "description": "Action title for cleaning unused entries" + "homeTitle": "Accueil", + "@homeTitle": { + "description": "Home screen title" }, - "trackConvertDitherNone": "Aucun", - "@trackConvertDitherNone": { - "description": "Lossless conversion dither option with no dithering applied" + "homeSubtitle": "Collez une URL prise en charge ou effectuez une recherche par nom", + "@homeSubtitle": { + "description": "Subtitle shown below search box" }, - "libraryTracksUnit": "{count, plural, =1{piste} other{pistes}}", - "@libraryTracksUnit": { - "description": "Unit label for tracks count (without the number itself)", + "homeEmptyTitle": "Aucun moteur de recherche pour le moment", + "@homeEmptyTitle": { + "description": "Title shown on home when no providers are available yet" + }, + "homeEmptySubtitle": "Installez une extension pour continuer.", + "@homeEmptySubtitle": { + "description": "Subtitle shown on home when no providers are available yet" + }, + "homeSupports": "Prise en charge : URL de titres, d’albums, de playlists et d’artistes", + "@homeSupports": { + "description": "Info text about supported URL types" + }, + "homeRecent": "Récent", + "@homeRecent": { + "description": "Section header for recent searches" + }, + "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" + }, + "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" + }, + "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" + }, + "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" + }, + "downloadSingleFilenameFormat": "Format de nom de fichier unique", + "@downloadSingleFilenameFormat": { + "description": "Setting for output filename pattern for singles/EPs" + }, + "downloadSingleFilenameFormatDescription": "Modèle de nom de fichier pour les singles et les EP. Utilise les mêmes balises que le format album.", + "@downloadSingleFilenameFormatDescription": { + "description": "Subtitle description for single filename format setting" + }, + "downloadFolderOrganization": "Organisation du dossier", + "@downloadFolderOrganization": { + "description": "Title of the folder organization picker bottom sheet" + }, + "appearanceTitle": "Apparence", + "@appearanceTitle": { + "description": "Appearance settings page title" + }, + "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" + }, + "appearanceHistoryView": "Historique", + "@appearanceHistoryView": { + "description": "Layout style for history" + }, + "appearanceHistoryViewList": "Liste", + "@appearanceHistoryViewList": { + "description": "List layout option" + }, + "appearanceHistoryViewGrid": "Grille", + "@appearanceHistoryViewGrid": { + "description": "Grid layout option" + }, + "optionsPrimaryProvider": "Fournisseur principal", + "@optionsPrimaryProvider": { + "description": "Main search provider setting" + }, + "optionsPrimaryProviderSubtitle": "Service permettant d'effectuer une recherche par titre de morceau ou d'album", + "@optionsPrimaryProviderSubtitle": { + "description": "Subtitle for primary provider" + }, + "optionsUsingExtension": "Utilisation de l'extension : {extensionName}", + "@optionsUsingExtension": { + "description": "Shows active extension name", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "optionsDefaultSearchTab": "Onglet de recherche par défaut", + "@optionsDefaultSearchTab": { + "description": "Title for the preferred default search tab setting" + }, + "optionsDefaultSearchTabSubtitle": "Choisissez l'onglet qui s'ouvre en premier pour les nouveaux résultats de recherche.", + "@optionsDefaultSearchTabSubtitle": { + "description": "Subtitle for the preferred default search tab setting" + }, + "optionsAutoFallback": "Récupération automatique", + "@optionsAutoFallback": { + "description": "Auto-retry with other services" + }, + "optionsAutoFallbackSubtitle": "Essayez d'autres services si le téléchargement échoue", + "@optionsAutoFallbackSubtitle": { + "description": "Subtitle for auto fallback" + }, + "optionsEmbedLyrics": "Intégrer les paroles", + "@optionsEmbedLyrics": { + "description": "Embed lyrics in audio files" + }, + "optionsEmbedLyricsSubtitle": "Enregistrez les paroles synchronisées avec vos morceaux téléchargés", + "@optionsEmbedLyricsSubtitle": { + "description": "Subtitle for embed lyrics" + }, + "optionsReplayGain": "ReplayGain", + "@optionsReplayGain": { + "description": "Title for ReplayGain setting toggle" + }, + "optionsReplayGainSubtitleOn": "Analyser le niveau sonore et intégrer des balises ReplayGain (EBU R128)", + "@optionsReplayGainSubtitleOn": { + "description": "Subtitle when ReplayGain is enabled" + }, + "optionsReplayGainSubtitleOff": "Désactivé : aucune balise de normalisation du volume", + "@optionsReplayGainSubtitleOff": { + "description": "Subtitle when ReplayGain is disabled" + }, + "trackReplayGain": "Réanalyser ReplayGain", + "@trackReplayGain": { + "description": "Three-dot menu option to scan loudness and write ReplayGain tags" + }, + "trackReplayGainScanning": "Analyse du volume sonore...", + "@trackReplayGainScanning": { + "description": "Snackbar/progress message while scanning ReplayGain for a single track" + }, + "trackReplayGainSuccess": "Ajout des balises ReplayGain", + "@trackReplayGainSuccess": { + "description": "Snackbar message after ReplayGain tags written for a single track" + }, + "trackReplayGainFailed": "Impossible d'ajouter les balises ReplayGain", + "@trackReplayGainFailed": { + "description": "Snackbar message when ReplayGain scan/write fails" + }, + "selectionReplayGainCount": "ReplayGain ({count})", + "@selectionReplayGainCount": { + "description": "Batch selection action button label for ReplayGain", "placeholders": { "count": { "type": "int" } } }, - "folderOrganizationNone": "Aucune organisation", - "@folderOrganizationNone": { - "description": "Folder option - flat structure" - }, - "@storeRepoUrlHint": { - "description": "Hint/placeholder for the repository URL input field" - }, - "@trackConvertConfirmTitle": { - "description": "Confirmation dialog title" - }, - "@extensionPatternsCount": { - "description": "URL patterns count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "audioAnalysisContainer": "Conteneur", - "@audioAnalysisContainer": { - "description": "Audio container metric label" - }, - "libraryAutoScanOff": "Désactivée", - "@libraryAutoScanOff": { - "description": "Auto scan disabled" - }, - "shareSheetLinkCopied": "Lien {service} copié", - "@shareSheetLinkCopied": { - "description": "Snackbar after copying a cross-service link", - "placeholders": { - "service": {} - } - }, - "providerPriorityFallbackExtensionsDescription": "Sélectionnez les extensions de téléchargement installées qui peuvent être utilisées lors du basculement automatique.", - "@providerPriorityFallbackExtensionsDescription": { - "description": "Section description for extension fallback selection" + "replayGainBatchConfirmTitle": "Ajouter ReplayGain", + "@replayGainBatchConfirmTitle": { + "description": "Title of the batch ReplayGain confirmation dialog" }, + "replayGainBatchConfirmMessage": "Analyser le niveau sonore et ajouter des balises ReplayGain à {count} piste(s) ?", "@replayGainBatchConfirmMessage": { "description": "Message of the batch ReplayGain confirmation dialog", "placeholders": { @@ -81,73 +232,9 @@ } } }, - "@extensionsHomeFeedUse": { - "description": "Extensions page - subtitle for a specific extension home feed option", - "placeholders": { - "extensionName": { - "type": "String" - } - } - }, - "selectionShareCount": "Partager {count} {count, plural, =1{titre} other{titres}}", - "@selectionShareCount": { - "description": "Share button text with count in selection mode", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@storeExtensionsCount": { - "description": "Store extension result count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@logSearchHint": { - "description": "Log search placeholder" - }, - "@audioAnalysisSamples": { - "description": "Total samples metric label" - }, - "trackCoverReplace": "Remplacer la pochette", - "@trackCoverReplace": { - "description": "Button label for replacing selected cover art" - }, - "@discographyAddedToQueue": { - "description": "Snackbar - tracks added from discography", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "downloadAppleElrcWordSyncEnabled": "Conservation des horodatages bruts mot à mot", - "@downloadAppleElrcWordSyncEnabled": { - "description": "Subtitle when Apple Music eLRC word sync is enabled" - }, - "@nowPlayingDetails": { - "description": "Menu item and section title for track metadata details" - }, - "@trackGenre": { - "description": "Metadata label - music genre" - }, - "recentTypeSong": "Titre", - "@recentTypeSong": { - "description": "Recent access item type - song/track" - }, - "logShareLogs": "Partager les journaux", - "@logShareLogs": { - "description": "Share button tooltip" - }, - "@storeFilterLyrics": { - "description": "Repo filter - lyrics providers" - }, - "extensionsInstallButton": "Installer l'extension", - "@extensionsInstallButton": { - "description": "Button to install extension from file" + "replayGainBatchAnalyzing": "Analyse de ReplayGain...", + "@replayGainBatchAnalyzing": { + "description": "Progress dialog title while batch scanning ReplayGain" }, "replayGainBatchSuccess": "ReplayGain ajouté à {success} de {total} pistes", "@replayGainBatchSuccess": { @@ -161,548 +248,536 @@ } } }, - "nowPlayingMinimize": "Réduire", - "@nowPlayingMinimize": { - "description": "Tooltip for minimizing the now playing screen" + "optionsArtistTagMode": "Mode « Artiste »", + "@optionsArtistTagMode": { + "description": "Setting title for how artist metadata is written into files" }, - "logIssueNetworkErrorSuggestion": "Vérifiez votre connexion Internet", - "@logIssueNetworkErrorSuggestion": { - "description": "Diagnostic badge suggestion for generic network errors" + "optionsArtistTagModeDescription": "Choisissez comment les noms de plusieurs artistes doivent apparaître dans les balises intégrées.", + "@optionsArtistTagModeDescription": { + "description": "Bottom-sheet description for artist tag mode setting" }, - "extensionsNoExtensions": "Aucune extension installée", - "@extensionsNoExtensions": { - "description": "Empty state - no extensions" + "optionsArtistTagModeJoined": "Valeur unique combinée", + "@optionsArtistTagModeJoined": { + "description": "Artist tag mode option that joins multiple artists into one value" }, - "@cacheRefresh": { - "description": "Tooltip for refresh button on cache management page" + "optionsArtistTagModeJoinedSubtitle": "Indiquez une seule valeur ARTIST, par exemple « Artiste A, Artiste B », pour garantir une compatibilité maximale avec les lecteurs.", + "@optionsArtistTagModeJoinedSubtitle": { + "description": "Subtitle for joined artist tag mode" }, - "@snackbarHistoryCleared": { - "description": "Snackbar - history deleted" + "optionsArtistTagModeSplitVorbis": "Diviser les balises pour FLAC/Opus", + "@optionsArtistTagModeSplitVorbis": { + "description": "Artist tag mode option that writes repeated ARTIST tags for Vorbis formats" }, - "cueSplitFailed": "Échec de la division CUE", - "@cueSplitFailed": { - "description": "Snackbar when CUE split fails" - }, - "trackConvertLosslessSuffix": "Sans perte", - "@trackConvertLosslessSuffix": { - "description": "Suffix used in converted lossless quality labels" - }, - "homeSubtitle": "Collez une URL prise en charge ou effectuez une recherche par nom", - "@homeSubtitle": { - "description": "Subtitle shown below search box" - }, - "selectionBatchConvertConfirmMessageLossless": "Convertir {count} {count, plural, =1{titre} other{titres}} au format {format} ? (Sans perte — aucune perte de qualité)\n\nLes fichiers d'origine seront supprimés après la conversion.", - "@selectionBatchConvertConfirmMessageLossless": { - "description": "Confirmation dialog message for lossless batch conversion", - "placeholders": { - "count": { - "type": "int" - }, - "format": { - "type": "String" - } - } - }, - "@extensionVerificationHelpMessageManual": { - "description": "Dialog message when automatic browser launch for verification fails" - }, - "queueRateLimitMessage": "Ce titre est peut-être encore disponible. Patientez quelques minutes, réduisez le nombre de téléchargements simultanés, puis réessayez.", - "@queueRateLimitMessage": { - "description": "Explanation shown on a failed queue item when the download service rate limits requests" - }, - "searchSortDateOldest": "Date de sortie (la plus ancienne)", - "@searchSortDateOldest": { - "description": "Sort option - oldest release first" - }, - "nowPlayingShuffleOn": "Lecture aléatoire activée", - "@nowPlayingShuffleOn": { - "description": "Tooltip when shuffle mode is enabled" - }, - "sectionColor": "Couleur", - "@sectionColor": { - "description": "Settings section header" - }, - "@providerPriorityFallbackExtensionsHint": { - "description": "Hint below the extension fallback selection list" - }, - "cacheCoverImage": "Cache des images de couverture", - "@cacheCoverImage": { - "description": "Cache item title for persistent cover images" - }, - "@navSettings": { - "description": "Bottom navigation - Settings tab" - }, - "@trackCoverReplaceNotice": { - "description": "Notice shown when a new cover has been selected but not saved yet" - }, - "cueSplitConfirmTitle": "Album CUE fractionné", - "@cueSplitConfirmTitle": { - "description": "CUE split confirmation dialog title" - }, - "@trackDeleteConfirmMessage": { - "description": "Delete confirmation message" - }, - "cacheClearSuccess": "Effacé : {target}", - "@cacheClearSuccess": { - "description": "Snackbar after clearing selected cache", - "placeholders": { - "target": { - "type": "String" - } - } - }, - "editMetadataFieldCover": "Illustration de couverture", - "@editMetadataFieldCover": { - "description": "Chip label for cover art field in auto-fill selector" - }, - "snackbarSelectExtFile": "Veuillez sélectionner un fichier .spotiflac-ext", - "@snackbarSelectExtFile": { - "description": "Snackbar - wrong file type selected" - }, - "libraryFilterFormat": "Format", - "@libraryFilterFormat": { - "description": "Filter section - file format" - }, - "@downloadLossyAac": { - "description": "Lossy format option - AAC in M4A container at 320kbps" - }, - "@setupNext": { - "description": "Next button text" - }, - "@releaseTypeSingle": { - "description": "Badge label for single releases" - }, - "@optionsDefaultSearchTab": { - "description": "Title for the preferred default search tab setting" - }, - "trackConvertLosslessOutputWithCap": "Sortie sans perte avec une limite de {quality}", - "@trackConvertLosslessOutputWithCap": { - "description": "Hint shown when lossless conversion will cap bit depth or sample rate", - "placeholders": { - "quality": { - "type": "String" - } - } - }, - "bulkDownloadSelectPlaylists": "Sélectionnez les playlists à télécharger", - "@bulkDownloadSelectPlaylists": { - "description": "Button label when no playlists are selected for download" - }, - "artistOptionAddToFavorites": "Ajouter aux Artistes Favoris", - "@artistOptionAddToFavorites": { - "description": "Action label - add artist to favorite artists" - }, - "@timeJustNow": { - "description": "Relative time - less than a minute ago" - }, - "downloadLossyOpus256": "Opus 256 kbps", - "@downloadLossyOpus256": { - "description": "Lossy format option - Opus 256kbps" - }, - "discographySinglesOnlySubtitle": "{count} titres issus de {albumCount} singles", - "@discographySinglesOnlySubtitle": { - "description": "Subtitle showing singles tracks count", - "placeholders": { - "count": { - "type": "int" - }, - "albumCount": { - "type": "int" - } - } + "optionsArtistTagModeSplitVorbisSubtitle": "Créez une balise « artiste » par artiste pour les fichiers FLAC et Opus ; les fichiers MP3 et M4A restent regroupés.", + "@optionsArtistTagModeSplitVorbisSubtitle": { + "description": "Subtitle for split Vorbis artist tag mode" }, "optionsExtensionStore": "Référentiel d'extensions", "@optionsExtensionStore": { "description": "Show/hide repo tab" }, - "libraryDownloadsHistoryExcluded": "{count} dans l'historique des téléchargements (exclu de la liste)", - "@libraryDownloadsHistoryExcluded": { - "description": "Library count note for downloaded history items excluded from the local list", - "placeholders": { - "count": { - "type": "int" - } - } + "optionsExtensionStoreSubtitle": "Afficher l'onglet « Dépôt » dans le menu de navigation", + "@optionsExtensionStoreSubtitle": { + "description": "Subtitle for extension repo toggle" }, - "@errorUrlFetchFailed": { - "description": "Error message - generic URL fetch failure" + "optionsCheckUpdates": "Vérifier les mises à jour", + "@optionsCheckUpdates": { + "description": "Auto update check toggle" }, - "@trackOptionAddToWishlist": { - "description": "Bottom sheet action label - add track to wishlist" + "optionsCheckUpdatesSubtitle": "M'avertir lorsqu'une nouvelle version est disponible", + "@optionsCheckUpdatesSubtitle": { + "description": "Subtitle for update check" }, - "discographySinglesOnly": "Uniquement les singles et les EP", - "@discographySinglesOnly": { - "description": "Option - download only singles" + "optionsUpdateChannel": "Chaîne de mise à jour", + "@optionsUpdateChannel": { + "description": "Stable vs preview releases" }, - "@downloadSongLinkRegionDesc": { - "description": "Description in SongLink region picker" + "optionsUpdateChannelStable": "Uniquement les versions stables", + "@optionsUpdateChannelStable": { + "description": "Only stable updates" }, - "notifEmbeddingMetadata": "Intégration des métadonnées...", - "@notifEmbeddingMetadata": { - "description": "Notification body while embedding metadata into a downloaded track" + "optionsUpdateChannelPreview": "Accédez aux versions préliminaires", + "@optionsUpdateChannelPreview": { + "description": "Include beta/preview updates" }, - "@settingsLocalLibrarySubtitle": { - "description": "Subtitle for local library settings" + "optionsUpdateChannelWarning": "La version préliminaire peut contenir des bogues ou des fonctionnalités incomplètes", + "@optionsUpdateChannelWarning": { + "description": "Warning about preview channel" }, - "@downloadLocationSubtitle": { - "description": "Subtitle shown in the download location picker sheet" + "optionsClearHistory": "Effacer l'historique des téléchargements", + "@optionsClearHistory": { + "description": "Delete all download history" }, - "trackConvertOriginalQuality": "Qualité d'origine", - "@trackConvertOriginalQuality": { - "description": "Label when no bit depth or sample rate cap is applied during lossless conversion" + "optionsClearHistorySubtitle": "Supprimez tous les morceaux téléchargés de l'historique", + "@optionsClearHistorySubtitle": { + "description": "Subtitle for clear history" }, - "nowPlayingTabLyrics": "Paroles", - "@nowPlayingTabLyrics": { - "description": "Tab label for the lyrics view" + "optionsDetailedLogging": "Journalisation détaillée", + "@optionsDetailedLogging": { + "description": "Enable verbose logs for debugging" }, - "selectionConvertCount": "Convertir {count} {count, plural, =1{titre} other{titres}}", - "@selectionConvertCount": { - "description": "Convert button text with count in selection mode", - "placeholders": { - "count": { - "type": "int" - } - } + "optionsDetailedLoggingOn": "Des journaux détaillés sont enregistrés", + "@optionsDetailedLoggingOn": { + "description": "Status when logging enabled" }, - "@extensionsInstalledSection": { - "description": "Section header - installed extensions" + "optionsDetailedLoggingOff": "Activer pour les rapports de bogues", + "@optionsDetailedLoggingOff": { + "description": "Status when logging disabled" }, - "@downloadNetworkCompatibilityModeDisabled": { - "description": "Subtitle when network compatibility mode is off" + "extensionsTitle": "Extensions", + "@extensionsTitle": { + "description": "Extensions page title" }, - "nowPlayingShuffleLibrary": "Lecture aléatoire de la bibliothèque", - "@nowPlayingShuffleLibrary": { - "description": "Button label to shuffle and play the entire local library" + "extensionsDisabled": "Désactivée", + "@extensionsDisabled": { + "description": "Extension status - inactive" }, - "trackReEnrichFieldCover": "Illustration de couverture", - "@trackReEnrichFieldCover": { - "description": "Checkbox label for cover art field in re-enrich" - }, - "tutorialExtensionsTip3": "Connect accounts when required and keep extensions up to date", - "@tutorialExtensionsTip3": { - "description": "Tutorial extensions tip 3" - }, - "@cacheCleanupUnusedDesc": { - "description": "Description of what cleanup unused data does" - }, - "a11yOpenAlbum": "Ouvrir l'album {albumName}", - "@a11yOpenAlbum": { - "description": "Accessibility label for opening an album", - "placeholders": { - "albumName": { - "type": "String" - } - } - }, - "@settingsLyrics": { - "description": "Settings menu item - lyrics settings" - }, - "nowPlayingQueueEmpty": "La file d'attente est vide", - "@nowPlayingQueueEmpty": { - "description": "Empty state when the playback queue has no items" - }, - "@settingsDownload": { - "description": "Settings section - download options" - }, - "notifTracksDownloadedSuccess": "{count, plural, =1{1 piste téléchargée avec succès} other{{count} pistes téléchargées avec succès}}", - "@notifTracksDownloadedSuccess": { - "description": "Notification body for queue complete - how many tracks were downloaded", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "storeCategoryDownload": "Télécharger", - "@storeCategoryDownload": { - "description": "Store extension category - download" - }, - "aboutTelegramChannel": "Chaîne Telegram", - "@aboutTelegramChannel": { - "description": "Link to Telegram channel" - }, - "@downloadedAlbumDiscHeader": { - "description": "Header for disc separator in multi-disc albums", - "placeholders": { - "discNumber": { - "type": "int", - "example": "1" - } - } - }, - "@recentEmpty": { - "description": "Empty state text for recent access list" - }, - "@backupRestoreConfirmMessage": { - "description": "Confirmation dialog message before restoring a backup" - }, - "@shareSheetCopyLink": { - "description": "Tooltip for copying a cross-service link" - }, - "regionCountryID": "Indonésie", - "@regionCountryID": { - "description": "Country name for SongLink region picker" - }, - "@libraryInLibrary": { - "description": "Badge shown on tracks that exist in local library" - }, - "extensionPostProcessingHooks": "Crochets de post-traitement", - "@extensionPostProcessingHooks": { - "description": "Capability - post-processing" - }, - "@setupGrantPermission": { - "description": "Button to request permission" - }, - "storeFilterDownload": "Télécharger", - "@storeFilterDownload": { - "description": "Repo filter - download providers" - }, - "@collectionAddToPlaylist": { - "description": "Action to add a track to user playlist" - }, - "@discographyFailedToFetch": { - "description": "Error - some albums failed to load" - }, - "@updateWhatsNew": { - "description": "Changelog section title" - }, - "@setupLanguageDescription": { - "description": "Description for the language selection step in setup" - }, - "dialogDeleteSelectedTitle": "Supprimer la sélection", - "@dialogDeleteSelectedTitle": { - "description": "Dialog title - delete selected items" - }, - "trackCoverPick": "Choisir une pochette", - "@trackCoverPick": { - "description": "Button label for selecting cover art" - }, - "@collectionCreatePlaylist": { - "description": "Action to create a new playlist" - }, - "selectionBatchConvertSuccess": "{success} pistes sur {total} ont été converties au format {format}", - "@selectionBatchConvertSuccess": { - "description": "Snackbar after batch conversion completes", - "placeholders": { - "success": { - "type": "int" - }, - "total": { - "type": "int" - }, - "format": { - "type": "String" - } - } - }, - "qualityHiResFlacMax": "FLAC haute résolution Max", - "@qualityHiResFlacMax": { - "description": "Quality option - maximum resolution FLAC" - }, - "audioAnalysisStereo": "Stéréo", - "@audioAnalysisStereo": { - "description": "Audio channel layout label - stereo" - }, - "backupExportButton": "Créer un fichier de sauvegarde", - "@backupExportButton": { - "description": "Button to create and share a backup file" - }, - "settingsApp": "Application", - "@settingsApp": { - "description": "Settings menu item - app settings" - }, - "clickableInformationUnavailable": "Informations sur {type} non disponibles", - "@clickableInformationUnavailable": { - "description": "Snackbar shown when clickable metadata cannot open a destination", - "placeholders": { - "type": { - "type": "String" - } - } - }, - "@logFilterLevel": { - "description": "Filter by log level" - }, - "sectionTheme": "Thème", - "@sectionTheme": { - "description": "Settings section header" - }, - "@extensionActionFailed": { - "description": "Fallback error when an extension action fails without details" - }, - "@downloadAppleElrcWordSync": { - "description": "Setting for preserving Apple Music word-by-word eLRC timestamps" - }, - "@extensionsNoCustomSearch": { - "description": "Empty state - no search providers" - }, - "@collectionPlaylistRemoveCover": { - "description": "Bottom sheet action to remove custom cover image from a playlist" - }, - "@tutorialWelcomeDesc": { - "description": "Tutorial welcome page description" - }, - "@tutorialSearchDesc": { - "description": "Tutorial search page description" - }, - "collectionAddedToWishlist": "« {trackName} » a été ajouté à la liste de souhaits", - "@collectionAddedToWishlist": { - "description": "Snackbar after adding track to wishlist", - "placeholders": { - "trackName": { - "type": "String" - } - } - }, - "logAffectedDomains": "Concerne : {domains}", - "@logAffectedDomains": { - "description": "Affected domains in log issue analysis", - "placeholders": { - "domains": { - "type": "String" - } - } - }, - "@folderOrganizationByArtistSubtitle": { - "description": "Subtitle for artist folder option" - }, - "errorNoTracksFound": "Aucun titre trouvé", - "@errorNoTracksFound": { - "description": "Error - search returned no results" - }, - "providerPriorityTitle": "Priorité accordée aux prestataires", - "@providerPriorityTitle": { - "description": "Provider priority page title" - }, - "@notifUpdateReadyBody": { - "description": "Notification body when app update is ready to install", + "extensionsVersion": "Version {version}", + "@extensionsVersion": { + "description": "Extension version display", "placeholders": { "version": { "type": "String" } } }, - "@settingsExtensions": { - "description": "Settings section - extension management" + "extensionsUninstall": "Désinstaller", + "@extensionsUninstall": { + "description": "Uninstall extension button" }, - "trackDeleteConfirmTitle": "Supprimer de l'appareil ?", - "@trackDeleteConfirmTitle": { - "description": "Delete confirmation title" + "storeTitle": "Répertoire des extensions", + "@storeTitle": { + "description": "Repo screen title" }, - "@settingsDownloadNetwork": { - "description": "Setting for network type preference" + "storeSearch": "Recherche d'extensions...", + "@storeSearch": { + "description": "Repo search placeholder" }, - "downloadProvidersNoneEnabled": "Aucun fournisseur n'est activé", - "@downloadProvidersNoneEnabled": { - "description": "Shown when no lyrics providers are active" + "storeInstall": "Installer", + "@storeInstall": { + "description": "Install extension button" }, - "@homeEmptySubtitle": { - "description": "Subtitle shown on home when no providers are available yet" + "storeInstalled": "Installé", + "@storeInstalled": { + "description": "Already installed badge" }, - "trackReEnrichFieldBasicTags": "Album, Album Artiste", - "@trackReEnrichFieldBasicTags": { - "description": "Checkbox label for basic tags in re-enrich (title/artist are never overwritten)" + "storeUpdate": "Mettre à jour", + "@storeUpdate": { + "description": "Update available button" }, - "@audioAnalysisSpectralCutoff": { - "description": "Estimated spectral cutoff metric label" + "aboutTitle": "À propos", + "@aboutTitle": { + "description": "About page title" }, - "@logClearLogsTitle": { - "description": "Clear logs dialog title" + "aboutContributors": "Contributeurs", + "@aboutContributors": { + "description": "Section for contributors" }, - "storageModeSafSubtitle": "Choisissez n'importe quel dossier, y compris la carte SD", - "@storageModeSafSubtitle": { - "description": "Subtitle for SAF storage mode" + "aboutMobileDeveloper": "Développeur de la version mobile", + "@aboutMobileDeveloper": { + "description": "Role description for mobile dev" }, - "@notifUpdateProgress": { - "description": "Notification body showing update download progress", + "aboutOriginalCreator": "Créateur de la version originale de SpotiFLAC", + "@aboutOriginalCreator": { + "description": "Role description for original creator" + }, + "aboutLogoArtist": "Le talentueux artiste qui a créé le magnifique logo de notre application !", + "@aboutLogoArtist": { + "description": "Role description for logo artist" + }, + "aboutTranslators": "Traducteurs", + "@aboutTranslators": { + "description": "Section for translators" + }, + "aboutSpecialThanks": "Remerciements particuliers", + "@aboutSpecialThanks": { + "description": "Section for special thanks" + }, + "aboutLinks": "Liens", + "@aboutLinks": { + "description": "Section for external links" + }, + "aboutMobileSource": "Code source pour mobile", + "@aboutMobileSource": { + "description": "Link to mobile GitHub repo" + }, + "aboutPCSource": "Code source pour PC", + "@aboutPCSource": { + "description": "Link to PC GitHub repo" + }, + "aboutKeepAndroidOpen": "Garder Android ouvert", + "@aboutKeepAndroidOpen": { + "description": "Link to Keep Android Open campaign website" + }, + "aboutReportIssue": "Signaler un problème", + "@aboutReportIssue": { + "description": "Link to report bugs" + }, + "aboutReportIssueSubtitle": "Signalez tout problème que vous rencontrez", + "@aboutReportIssueSubtitle": { + "description": "Subtitle for report issue" + }, + "aboutFeatureRequest": "Demande de fonctionnalité", + "@aboutFeatureRequest": { + "description": "Link to suggest features" + }, + "aboutFeatureRequestSubtitle": "Proposez de nouvelles fonctionnalités pour l'application", + "@aboutFeatureRequestSubtitle": { + "description": "Subtitle for feature request" + }, + "aboutTelegramChannel": "Chaîne Telegram", + "@aboutTelegramChannel": { + "description": "Link to Telegram channel" + }, + "aboutTelegramChannelSubtitle": "Annonces et mises à jour", + "@aboutTelegramChannelSubtitle": { + "description": "Subtitle for Telegram channel" + }, + "aboutTelegramChat": "Communauté Telegram", + "@aboutTelegramChat": { + "description": "Link to Telegram chat group" + }, + "aboutTelegramChatSubtitle": "Discutez avec d'autres utilisateurs", + "@aboutTelegramChatSubtitle": { + "description": "Subtitle for Telegram chat" + }, + "aboutSocial": "Réseaux sociaux", + "@aboutSocial": { + "description": "Section for social links" + }, + "aboutApp": "Application", + "@aboutApp": { + "description": "Section for app info" + }, + "aboutVersion": "Version", + "@aboutVersion": { + "description": "Version info label" + }, + "aboutBinimumDesc": "Créateur de QQDL et de l'API HiFi. Ce projet a contribué à mettre en place la prise en charge des téléchargements sans perte.", + "@aboutBinimumDesc": { + "description": "Credit description for binimum" + }, + "aboutSachinsenalDesc": "Le créateur du projet HiFi original. Une base pour l'intégration de sources sans perte.", + "@aboutSachinsenalDesc": { + "description": "Credit description for sachinsenal0x64" + }, + "aboutUnituneDesc": "Open-source music link resolver by Flaze, used for cross-platform fallback matching.", + "@aboutUnituneDesc": { + "description": "Credit for the UniTune resolver" + }, + "aboutMusicBrainzDesc": "Open music database maintained by MetaBrainz and its community, used for recording cross-references.", + "@aboutMusicBrainzDesc": { + "description": "Credit for the MusicBrainz database" + }, + "aboutSquiglyDesc": "Universal music link service by Liam Macmillan, used as a final cross-platform resolver fallback.", + "@aboutSquiglyDesc": { + "description": "Credit for the Squigly resolver" + }, + "aboutAppDescription": "Recherchez des métadonnées musicales, gérez les extensions et organisez votre bibliothèque.", + "@aboutAppDescription": { + "description": "App description in header card" + }, + "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" + }, + "artistPopular": "Populaire", + "@artistPopular": { + "description": "Section header for popular/top tracks" + }, + "artistMonthlyListeners": "{count} auditeurs mensuels", + "@artistMonthlyListeners": { + "description": "Monthly listener count display", "placeholders": { - "received": { - "type": "String" - }, - "total": { - "type": "String" - }, - "percentage": { - "type": "int" + "count": { + "type": "String", + "description": "Formatted listener count" } } }, - "downloadUsePrimaryArtistOnlyEnabled": "Les noms des artistes mis en avant ont été supprimés du nom du dossier (par exemple : Justin Bieber, Quavo → Justin Bieber)", - "@downloadUsePrimaryArtistOnlyEnabled": { - "description": "Subtitle when primary artist only is enabled" + "trackMetadataService": "Service", + "@trackMetadataService": { + "description": "Metadata field - download service used" }, - "notifScanningLibrary": "Numérisation de la bibliothèque locale", - "@notifScanningLibrary": { - "description": "Notification title while scanning local library" + "trackMetadataPlay": "Lire", + "@trackMetadataPlay": { + "description": "Action button - play track" }, - "@metadataProvidersSubtitle": { - "description": "Subtitle for metadata provider priority item" + "trackMetadataShare": "Partager", + "@trackMetadataShare": { + "description": "Action button - share track" + }, + "trackMetadataDelete": "Supprimer", + "@trackMetadataDelete": { + "description": "Action button - delete track" + }, + "setupGrantPermission": "Accorder l'autorisation", + "@setupGrantPermission": { + "description": "Button to request permission" + }, + "setupSkip": "Ignorer pour le moment", + "@setupSkip": { + "description": "Skip current step button" + }, + "setupStorageAccessRequired": "Accès au stockage requis", + "@setupStorageAccessRequired": { + "description": "Title when storage access needed" + }, + "setupStorageAccessMessageAndroid11": "Depuis Android 11, l'autorisation « Accès à tous les fichiers » est requise pour enregistrer des fichiers dans le dossier de téléchargement de votre choix.", + "@setupStorageAccessMessageAndroid11": { + "description": "Android 11+ specific explanation" + }, + "setupOpenSettings": "Ouvrir les paramètres", + "@setupOpenSettings": { + "description": "Button to open system settings" + }, + "setupPermissionDeniedMessage": "Autorisation refusée. Veuillez accorder toutes les autorisations pour continuer.", + "@setupPermissionDeniedMessage": { + "description": "Error when permission denied" + }, + "setupPermissionRequired": "Autorisation {permissionType} requise", + "@setupPermissionRequired": { + "description": "Generic permission required title", + "placeholders": { + "permissionType": { + "type": "String", + "description": "Type of permission (Storage/Notification)" + } + } + }, + "setupPermissionRequiredMessage": "L'autorisation {permissionType} est requise pour profiter pleinement de l'application. Vous pourrez modifier ce paramètre ultérieurement dans les Paramètres.", + "@setupPermissionRequiredMessage": { + "description": "Generic permission required message", + "placeholders": { + "permissionType": { + "type": "String" + } + } + }, + "setupUseDefaultFolder": "Utiliser le dossier par défaut ?", + "@setupUseDefaultFolder": { + "description": "Dialog title for default folder" + }, + "setupNoFolderSelected": "Aucun dossier n'est sélectionné. Souhaitez-vous utiliser le dossier Musique par défaut ?", + "@setupNoFolderSelected": { + "description": "Prompt when no folder selected" + }, + "setupUseDefault": "Utiliser les paramètres par défaut", + "@setupUseDefault": { + "description": "Button to use default folder" + }, + "setupDownloadLocationTitle": "Emplacement de téléchargement", + "@setupDownloadLocationTitle": { + "description": "Download location dialog title" + }, + "setupDownloadLocationIosMessage": "Sous iOS, les fichiers téléchargés sont enregistrés dans le dossier « Documents » de l'application. Vous pouvez y accéder via l'application Fichiers.", + "@setupDownloadLocationIosMessage": { + "description": "iOS-specific folder info" + }, + "setupAppDocumentsFolder": "Dossier « Documents » de l'application", + "@setupAppDocumentsFolder": { + "description": "iOS documents folder option" + }, + "setupAppDocumentsFolderSubtitle": "Recommandé - accessible via l'application Fichiers", + "@setupAppDocumentsFolderSubtitle": { + "description": "Subtitle for documents folder" + }, + "setupChooseFromFiles": "Sélectionnez un fichier", + "@setupChooseFromFiles": { + "description": "iOS file picker option" + }, + "setupChooseFromFilesSubtitle": "Sélectionnez iCloud ou un autre emplacement", + "@setupChooseFromFilesSubtitle": { + "description": "Subtitle for file picker" + }, + "setupIosEmptyFolderWarning": "Limitation iOS : les dossiers vides ne peuvent pas être sélectionnés. Choisissez un dossier contenant au moins un fichier.", + "@setupIosEmptyFolderWarning": { + "description": "iOS folder selection warning" + }, + "setupIcloudNotSupported": "iCloud Drive n'est pas pris en charge. Veuillez utiliser le dossier « Documents » de l'application.", + "@setupIcloudNotSupported": { + "description": "Error when user selects iCloud Drive on iOS" + }, + "setupDownloadInFlac": "Download music in lossless and Hi-Res quality", + "@setupDownloadInFlac": { + "description": "App tagline in setup" + }, + "setupStorageGranted": "Autorisation de stockage accordée !", + "@setupStorageGranted": { + "description": "Success message for storage permission" + }, + "setupStorageRequired": "Autorisation de stockage requise", + "@setupStorageRequired": { + "description": "Title when storage permission needed" + }, + "setupStorageDescription": "SpotiFLAC a besoin d'une autorisation d'accès au stockage pour enregistrer vos fichiers musicaux téléchargés.", + "@setupStorageDescription": { + "description": "Explanation for storage permission" + }, + "setupNotificationGranted": "Autorisation de notification accordée !", + "@setupNotificationGranted": { + "description": "Success message for notification permission" + }, + "setupNotificationEnable": "Activer les notifications", + "@setupNotificationEnable": { + "description": "Button to enable notifications" + }, + "setupFolderChoose": "Choisissez le dossier de téléchargement", + "@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" + }, + "setupSelectFolder": "Sélectionner un dossier", + "@setupSelectFolder": { + "description": "Button to select folder" + }, + "setupEnableNotifications": "Activer les notifications", + "@setupEnableNotifications": { + "description": "Button to enable notifications" + }, + "setupNotificationBackgroundDescription": "Recevez des notifications sur la progression et la fin du téléchargement. Cela vous permet de suivre les téléchargements lorsque l'application est en arrière-plan.", + "@setupNotificationBackgroundDescription": { + "description": "Detailed notification explanation" + }, + "setupSkipForNow": "Ignorer pour le moment", + "@setupSkipForNow": { + "description": "Skip button text" + }, + "setupNext": "Suivant", + "@setupNext": { + "description": "Next button text" }, "setupGetStarted": "Démarrer", "@setupGetStarted": { "description": "Final setup button" }, - "libraryFilterQualityCD": "CD (16 bits)", - "@libraryFilterQualityCD": { - "description": "Filter option - CD quality audio" + "setupAllowAccessToManageFiles": "Veuillez cocher la case « Autoriser l'accès pour gérer tous les fichiers » sur l'écran suivant.", + "@setupAllowAccessToManageFiles": { + "description": "Instruction for file access permission" }, - "sectionLayout": "Mise en page", - "@sectionLayout": { - "description": "Settings section header" + "setupLanguageTitle": "Choisir la langue", + "@setupLanguageTitle": { + "description": "Title for the language selection step in setup" }, - "@tooltipLoveAll": { - "description": "Tooltip for the Love All button on album/playlist screens" + "setupLanguageDescription": "Sélectionnez la langue de votre choix pour l'application. Vous pourrez la modifier ultérieurement dans les Paramètres.", + "@setupLanguageDescription": { + "description": "Description for the language selection step in setup" }, - "queueFinalizingDownload": "Téléchargement en cours", - "@queueFinalizingDownload": { - "description": "Accessibility label for a queue item that is finalizing" + "setupLanguageSystemDefault": "Paramètres par défaut du système", + "@setupLanguageSystemDefault": { + "description": "Option to use the system language" }, - "trackConvertActionLabelLossy": "{sourceFormat} → {targetFormat} @ {bitrate}", - "@trackConvertActionLabelLossy": { - "description": "Convert button label for lossy conversion", + "dialogCancel": "Annuler", + "@dialogCancel": { + "description": "Dialog button - cancel action" + }, + "dialogSave": "Sauvegarder", + "@dialogSave": { + "description": "Dialog button - save changes" + }, + "dialogDelete": "Supprimer", + "@dialogDelete": { + "description": "Dialog button - delete item" + }, + "dialogRetry": "Réessayer", + "@dialogRetry": { + "description": "Dialog button - retry action" + }, + "dialogClear": "Effacer", + "@dialogClear": { + "description": "Dialog button - clear items" + }, + "dialogDone": "C'est fait", + "@dialogDone": { + "description": "Dialog button - action completed" + }, + "dialogImport": "Importer", + "@dialogImport": { + "description": "Dialog button - import data" + }, + "dialogDownload": "Télécharger", + "@dialogDownload": { + "description": "Confirm button in Download All dialog" + }, + "previewPlay": "Écouter un aperçu", + "@previewPlay": { + "description": "Tooltip for the button that plays a short track preview snippet" + }, + "previewStop": "Arrêter l'aperçu", + "@previewStop": { + "description": "Tooltip for the button that stops the playing track preview snippet" + }, + "previewUnavailable": "Aperçu indisponible", + "@previewUnavailable": { + "description": "Snackbar shown when a track preview snippet cannot be played" + }, + "dialogDiscard": "Ignorer", + "@dialogDiscard": { + "description": "Dialog button - discard changes" + }, + "dialogRemove": "Supprimer", + "@dialogRemove": { + "description": "Dialog button - remove item" + }, + "dialogUninstall": "Désinstaller", + "@dialogUninstall": { + "description": "Dialog button - uninstall extension" + }, + "dialogDiscardChanges": "Ignorer les modifications ?", + "@dialogDiscardChanges": { + "description": "Dialog title - unsaved changes warning" + }, + "dialogUnsavedChanges": "Vous avez des modifications non enregistrées. Voulez-vous les ignorer ?", + "@dialogUnsavedChanges": { + "description": "Dialog message - unsaved changes" + }, + "dialogClearAll": "Tout effacer", + "@dialogClearAll": { + "description": "Dialog title - clear all items" + }, + "dialogRemoveExtension": "Supprimer l'extension", + "@dialogRemoveExtension": { + "description": "Dialog title - uninstall extension" + }, + "dialogRemoveExtensionMessage": "Êtes-vous sûr de vouloir supprimer cette extension ? Cette action ne peut pas être annulée.", + "@dialogRemoveExtensionMessage": { + "description": "Dialog message - uninstall confirmation" + }, + "dialogUninstallExtension": "Supprimer l'extension ?", + "@dialogUninstallExtension": { + "description": "Dialog title - uninstall extension" + }, + "dialogUninstallExtensionMessage": "Êtes-vous sûr de vouloir supprimer {extensionName} ?", + "@dialogUninstallExtensionMessage": { + "description": "Dialog message - uninstall specific extension", "placeholders": { - "sourceFormat": { - "type": "String" - }, - "targetFormat": { - "type": "String" - }, - "bitrate": { + "extensionName": { "type": "String" } } }, - "extensionsMetadataPriority": "Priorité des métadonnées", - "@extensionsMetadataPriority": { - "description": "Setting - metadata provider order" + "dialogClearHistoryTitle": "Effacer l'historique", + "@dialogClearHistoryTitle": { + "description": "Dialog title - clear download history" }, - "updateCurrent": "Actuel", - "@updateCurrent": { - "description": "Label for current version" + "dialogClearHistoryMessage": "Êtes-vous sûr de vouloir effacer tout l'historique des téléchargements ? Cette action ne peut pas être annulée.", + "@dialogClearHistoryMessage": { + "description": "Dialog message - clear history confirmation" }, - "@aboutFeatureRequest": { - "description": "Link to suggest features" - }, - "@safMigrationSuccess": { - "description": "Snackbar after successfully migrating to SAF" - }, - "backupRestoreConfirmMessage": "Cette opération remplacera vos paramètres actuels, votre historique de téléchargements, vos titres favoris, votre liste de souhaits et vos listes de lecture par le contenu de la sauvegarde. Cette opération est irréversible.", - "@cleanupOrphanedDownloadsNone": { - "description": "Snackbar when no orphans found" - }, - "lyricsProviderNeteaseDesc": "NetEase Cloud Music (idéal pour les titres asiatiques)", - "@lyricsProviderNeteaseDesc": { - "description": "Description for Netease provider" - }, - "libraryScanCancelledSubtitle": "Vous pouvez relancer l'analyse dès que vous êtes prêt.", - "@libraryScanCancelledSubtitle": { - "description": "Library scan status subtitle after cancellation" - }, - "@collectionFavoriteArtists": { - "description": "Custom folder for favorite artists" - }, - "@trackAlbum": { - "description": "Metadata label - album name" + "dialogDeleteSelectedTitle": "Supprimer la sélection", + "@dialogDeleteSelectedTitle": { + "description": "Dialog title - delete selected items" }, "dialogDeleteSelectedMessage": "Supprimer {count} {count, plural, =1{titre} other{titres}} de l'historique ?\n\nCela supprimera également les fichiers du stockage.", "@dialogDeleteSelectedMessage": { @@ -713,811 +788,29 @@ } } }, - "trackReEnrich": "Réenrichir", - "@trackReEnrich": { - "description": "Menu action - re-embed metadata into audio file" - }, - "@lyricsProvidersSaved": { - "description": "Snackbar after saving lyrics provider priority" - }, - "@storageModeSaf": { - "description": "Storage mode option - Storage Access Framework" - }, - "libraryStorageAccessRequired": "Accès au stockage requis", - "@libraryStorageAccessRequired": { - "description": "Dialog title for storage permission" - }, - "@cacheClearAllConfirmTitle": { - "description": "Dialog title before clearing all caches" - }, - "@unknownArtist": { - "description": "Fallback artist name when metadata is missing" - }, - "downloadCreatePlaylistSourceFolderEnabled": "Un sous-dossier est créé pour chaque playlist", - "@downloadCreatePlaylistSourceFolderEnabled": { - "description": "Subtitle when playlist folder is enabled" - }, - "dialogClearHistoryMessage": "Êtes-vous sûr de vouloir effacer tout l'historique des téléchargements ? Cette action ne peut pas être annulée.", - "@dialogClearHistoryMessage": { - "description": "Dialog message - clear history confirmation" - }, - "@sectionData": { - "description": "Settings section header" - }, - "audioAnalysisRms": "RMS", - "@audioAnalysisRms": { - "description": "RMS level metric label" - }, - "downloadFilterContributingEnabled": "Les artistes ayant contribué à l'album ont été supprimés du nom du dossier « Artiste de l'album »", - "@downloadFilterContributingEnabled": { - "description": "Subtitle when contributing artist filter is on" - }, - "timeJustNow": "Il y a quelques instants", - "@extensionCustomUrlHandlingShareHint": { - "description": "Extension detail hint explaining share-to-app URL handling" - }, - "cleanupOrphanedDownloads": "Nettoyage des téléchargements orphelins", - "@cleanupOrphanedDownloads": { - "description": "Button to remove history entries for deleted files" - }, - "@audioAnalysisNoClipping": { - "description": "Displayed when no clipped samples were detected" - }, - "@tutorialWelcomeTitle": { - "description": "Tutorial welcome page title" - }, - "collectionFavoriteArtists": "Artistes Favoris", - "audioAnalysisRescanning": "Réanalyse du fichier audio...", - "@audioAnalysisRescanning": { - "description": "Loading text while audio is being re-analyzed after an explicit refresh" - }, - "logTitle": "Journaux", - "@logTitle": { - "description": "Logs screen title" - }, - "@regionCountryGB": { - "description": "Country name for SongLink region picker" - }, - "@progressFetchingMetadata": { - "description": "Progress indicator - loading track info", - "placeholders": { - "current": { - "type": "int" - }, - "total": { - "type": "int" - } - } - }, - "aboutLogoArtist": "Le talentueux artiste qui a créé le magnifique logo de notre application !", - "@aboutLogoArtist": { - "description": "Role description for logo artist" - }, - "channelPreview": "Aperçu", - "@channelPreview": { - "description": "Update channel - beta/preview releases" - }, - "collectionPlaylistsDeleted": "{count} {count, plural, =1{playlist} other{playlists}} supprimées", - "@collectionPlaylistsDeleted": { - "description": "Snackbar after deleting selected playlists", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@libraryFilterMetadataMissingGenre": { - "description": "Filter option - items missing genre" - }, - "homeTitle": "Accueil", - "@homeTitle": { - "description": "Home screen title" - }, - "extensionMinAppVersion": "Version minimale de l'application", - "@extensionMinAppVersion": { - "description": "Extension detail - minimum app version" - }, - "backupContentsLiked": "{count} favoris {count, plural, =1{titre} other{titres}}", - "@backupContentsLiked": { - "description": "Backup contents row for liked tracks count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "audioAnalysisTruePeak": "True Peak", - "@audioAnalysisTruePeak": { - "description": "True peak metric label" - }, - "notifDownloadsCanceledBody": "{count, plural, =1{1 téléchargement annulé par l'utilisateur} other{{count} téléchargements annulés par l'utilisateur}}", - "@notifDownloadsCanceledBody": { - "description": "Notification body when downloads are canceled by the user", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@dialogRetry": { - "description": "Dialog button - retry action" - }, - "@homeChangeSearchProviderTooltip": { - "description": "Tooltip for the Home search provider picker" - }, - "@sectionLyricsProviderOptions": { - "description": "Settings section header for per-provider lyrics options" - }, - "@trackReEnrichSuccessWithFailures": { - "description": "Snackbar summary after batch metadata re-enrichment finishes with failures", - "placeholders": { - "successCount": { - "type": "int" - }, - "total": { - "type": "int" - }, - "failedCount": { - "type": "int" - } - } - }, - "previewUnavailable": "Aperçu indisponible", - "@previewUnavailable": { - "description": "Snackbar shown when a track preview snippet cannot be played" - }, - "nowPlayingTabPlayer": "Lecteur", - "@nowPlayingTabPlayer": { - "description": "Tab label for the player view" - }, - "backupContentsPlaylists": "{count, plural, =1{1 playlist} other{{count} playlists}}", - "@backupContentsPlaylists": { - "description": "Backup contents row for playlist count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "libraryLastScannedNever": "Jamais", - "@libraryLastScannedNever": { - "description": "Shown when library has never been scanned" - }, - "trackTrackNumber": "Numéro de piste", - "@trackTrackNumber": { - "description": "Metadata label - track number" - }, - "trackReplayGainScanning": "Analyse du volume sonore...", - "@trackReplayGainScanning": { - "description": "Snackbar/progress message while scanning ReplayGain for a single track" - }, - "downloadLossyMp3": "MP3 320 kbps", - "@downloadLossyMp3": { - "description": "Lossy format option - MP3 320kbps" - }, - "@albumFolderArtistAlbumSingles": { - "description": "Album folder option with singles inside artist" - }, - "@extensionHealthNotConfigured": { - "description": "Extension service health status - not configured" - }, - "@downloadSeparateSinglesDisabled": { - "description": "Subtitle when separate singles folder is off" - }, - "downloadCreatePlaylistSourceFolder": "Dossier source de la playlist", - "@downloadCreatePlaylistSourceFolder": { - "description": "Setting to create a subfolder per playlist source" - }, - "@trackReleaseDate": { - "description": "Metadata label - release date" - }, - "aboutContributors": "Contributeurs", - "@aboutContributors": { - "description": "Section for contributors" - }, - "@audioAnalysisMono": { - "description": "Audio channel layout label - mono" - }, - "@audioAnalysisNyquist": { - "description": "Nyquist frequency metric label" - }, - "permissionStorage": "Stockage", - "@permissionStorage": { - "description": "Storage permission type label" - }, - "permissionAudio": "Audio", - "@permissionAudio": { - "description": "Audio permission type label" - }, - "@libraryScanSubtitle": { - "description": "Subtitle for scan button" - }, - "@snackbarUnsupportedAudioFormat": { - "description": "Snackbar when the audio format is not supported for the requested operation" - }, - "@notifLibraryScanStopped": { - "description": "Notification body when library scan is cancelled" - }, - "@downloadMusixmatchAuto": { - "description": "Button to clear Musixmatch language (use auto)" - }, - "@trackLyricsTimeout": { - "description": "Message when lyrics request times out" - }, - "@trackReEnrichFieldReleaseInfo": { - "description": "Checkbox label for release info in re-enrich" - }, - "@regionCountryXK": { - "description": "Country name for SongLink region picker" - }, - "aboutTelegramChatSubtitle": "Discutez avec d'autres utilisateurs", - "@aboutTelegramChatSubtitle": { - "description": "Subtitle for Telegram chat" - }, - "selectionAllPlaylistsSelected": "Toutes les playlists sélectionnées", - "@selectionAllPlaylistsSelected": { - "description": "Shown when all playlists are selected in selection mode" - }, - "cacheTrackLookupDesc": "Recherche d'identifiant de titre sur Spotify/Deezer. La suppression des données peut ralentir les prochaines recherches.", - "@cacheTrackLookupDesc": { - "description": "Description of what track lookup cache contains" - }, - "@unknownAlbum": { - "description": "Fallback album name when metadata is missing" - }, - "@extensionsErrorLoading": { - "description": "Error message when extension fails to load" - }, - "@cacheTitle": { - "description": "Cache management page title" - }, - "@downloadFilenameFormat": { - "description": "Setting for output filename pattern" - }, - "errorUrlNotRecognized": "Lien non reconnu", - "@errorUrlNotRecognized": { - "description": "Error title - URL not handled by any extension or service" - }, - "downloadAppleElrcWordSync": "Synchronisation des paroles Apple Music eLRC", - "@downloadUseAlbumArtistForFoldersAlbumSubtitle": { - "description": "Subtitle when album artist is used for folder names" - }, - "@qualityFlacLossless": { - "description": "Quality option - CD quality FLAC" - }, - "downloadNeteaseIncludeTranslationEnabled": "Lignes de traduction en chinois incluses", - "@downloadNeteaseIncludeTranslationEnabled": { - "description": "Subtitle when Netease translation is on" - }, - "collectionLovedEmptySubtitle": "Appuyez sur les morceaux que vous aimez pour les ajouter à vos favoris", - "@collectionLovedEmptySubtitle": { - "description": "Loved empty state subtitle" - }, - "@libraryBuiltInPlayerInfo": { - "description": "Info note explaining the built-in player is for previews only" - }, - "@notifLibraryScanProgressNoTotal": { - "description": "Notification body for library scan progress when total is unknown", - "placeholders": { - "scanned": { - "type": "int" - }, - "percentage": { - "type": "int" - } - } - }, - "@tutorialSearchTitle": { - "description": "Tutorial search page title" - }, - "trackReEnrichSuccessWithFailures": "Les métadonnées ont été réenrichies avec succès ({successCount}/{total}) - Échec : {failedCount}", - "@a11yTrackByArtist": { - "description": "Accessibility label for a queue or list track item", - "placeholders": { - "trackName": { - "type": "String" - }, - "artistName": { - "type": "String" - } - } - }, - "libraryFilterMetadataMissingLabel": "Label manquant", - "@libraryFilterMetadataMissingLabel": { - "description": "Filter option - items missing record label" - }, - "@audioAnalysisLufs": { - "description": "Integrated loudness metric label" - }, - "trackMetadata": "Métadonnées", - "@trackMetadata": { - "description": "Tab title - track metadata" - }, - "trackOptionRemoveFromLoved": "Supprimer des Favoris", - "@trackOptionRemoveFromLoved": { - "description": "Bottom sheet action label - remove track from loved folder" - }, - "@aboutTelegramChat": { - "description": "Link to Telegram chat group" - }, - "@trackCopiedToClipboard": { - "description": "Snackbar - content copied" - }, - "aboutKeepAndroidOpen": "Garder Android ouvert", - "@aboutKeepAndroidOpen": { - "description": "Link to Keep Android Open campaign website" - }, - "@lyricsProvidersDisabledSection": { - "description": "Section header for disabled providers", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@downloadAllowLocalNetwork": { - "description": "Setting title for allowing requests to private/local network targets" - }, - "@openInOtherServices": { - "description": "Title and tooltip for finding the current collection in other services" - }, - "@extensionVerificationBrowserInApp": { - "description": "Chip label for in-app browser verification mode" - }, - "sectionSearchSource": "Rechercher dans la source", - "@sectionSearchSource": { - "description": "Settings section header" - }, - "allFilesAccess": "Accès à tous les fichiers", - "@allFilesAccess": { - "description": "Toggle for MANAGE_EXTERNAL_STORAGE permission" - }, - "extensionsInstalledCount": "{count} extensions ont été installées avec succès", - "@extensionsInstalledCount": { - "description": "Success message after installing multiple extensions", - "placeholders": { - "count": { - "type": "int", - "description": "Number of installed extensions" - } - } - }, - "snackbarFailedToEmbedLyrics": "Impossible d'intégrer les paroles", - "@snackbarFailedToEmbedLyrics": { - "description": "Snackbar when lyrics embedding fails" - }, - "@lyricsProviderMusixmatchDesc": { - "description": "Description for Musixmatch provider" - }, - "queueRateLimitTitle": "Débit limité", - "@queueRateLimitTitle": { - "description": "Title shown on a failed queue item when the download service rate limits requests" - }, - "@notifDownloadComplete": { - "description": "Notification title when a single download is complete" - }, - "@homeSupports": { - "description": "Info text about supported URL types" - }, - "notifDownloadsCanceledTitle": "Téléchargements annulés", - "@notifDownloadsCanceledTitle": { - "description": "Notification title when downloads are canceled by the user" - }, - "@lyricsModeEmbedSubtitle": { - "description": "Subtitle for embed option" - }, - "optionsReplayGain": "ReplayGain", - "@optionsReplayGain": { - "description": "Title for ReplayGain setting toggle" - }, - "@storeLoadError": { - "description": "Error heading when the store cannot be loaded" - }, - "@trackArtist": { - "description": "Metadata label - artist name" - }, - "cacheCoverImageDesc": "J'ai téléchargé les pochettes de l'album et des titres. Je les téléchargerai à nouveau lors de leur consultation.", - "@cacheCoverImageDesc": { - "description": "Description of what cover image cache contains" - }, - "queueClearAll": "Tout effacer", - "@queueClearAll": { - "description": "Button - clear all queue items" - }, - "downloadUsePrimaryArtistOnlyDisabled": "Nom complet de l'artiste utilisé pour le nom du dossier", - "@downloadUsePrimaryArtistOnlyDisabled": { - "description": "Subtitle when primary artist only is disabled" - }, - "backupImportSectionTitle": "Restaurer la sauvegarde", - "@backupImportSectionTitle": { - "description": "Section title for the import/restore card" - }, - "@downloadMusixmatchLanguageHint": { - "description": "Placeholder for Musixmatch language input" - }, - "collectionRemoveFromFolder": "Supprimer du dossier", - "@collectionRemoveFromFolder": { - "description": "Tooltip for removing track from wishlist/loved folder" - }, - "storeFilterMetadata": "Métadonnées", - "@storeFilterMetadata": { - "description": "Repo filter - metadata providers" - }, - "shareSheetCopyLink": "Copier le lien", - "errorRateLimitedMessage": "Trop de requêtes. Veuillez patienter quelques instants avant de relancer la recherche.", - "@errorRateLimitedMessage": { - "description": "Error message - rate limit explanation" - }, - "libraryFilterSortGenreDesc": "Genre (Z-A)", - "@libraryFilterSortGenreDesc": { - "description": "Sort option - genre descending" - }, - "trackFileNotFound": "Fichier introuvable", - "@trackFileNotFound": { - "description": "Error - file doesn't exist" - }, - "@queueEmptySinglesSubtitle": { - "description": "Empty state subtitle for single track downloads" - }, - "@queueDownloadStarting": { - "description": "Queue status before download progress is available" - }, - "metadataProviderPriorityInfo": "Deezer n'impose aucune limite de débit et est recommandé comme service principal. Spotify peut limiter le débit après un certain nombre de requêtes.", - "@metadataProviderPriorityInfo": { - "description": "Info tip about rate limits" - }, - "aboutPCSource": "Code source pour PC", - "@aboutPCSource": { - "description": "Link to PC GitHub repo" - }, - "editMetadataAutoFill": "Remplissage automatique en ligne", - "@editMetadataAutoFill": { - "description": "Section title for selective online metadata auto-fill in the edit metadata sheet" - }, - "snackbarDeletedTracks": "Supprimé {count} {count, plural, =1{titre} other{titres}}", - "@snackbarDeletedTracks": { - "description": "Snackbar - tracks deleted", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@extensionHealthServiceDegraded": { - "description": "Tooltip for degraded extension service" - }, - "lyricsProviderLrclibDesc": "Base de données open source de paroles synchronisées", - "@lyricsProviderLrclibDesc": { - "description": "Description for LRCLIB provider" - }, - "downloadMusixmatchLanguageDesc": "Saisissez un code de langue BCP-47 (par exemple : en, de, ja) pour demander les paroles traduites à Musixmatch.", - "@downloadMusixmatchLanguageDesc": { - "description": "Description in Musixmatch language picker" - }, - "@optionsEmbedMetadataSubtitleOn": { - "description": "Subtitle when metadata embedding is enabled" - }, - "@setupSkipForNow": { - "description": "Skip button text" - }, - "@a11ySelectTrack": { - "description": "Accessibility label for selecting a track" - }, - "@folderOrganizationByAlbumSubtitle": { - "description": "Subtitle for album folder option" - }, - "downloadLossyAac": "AAC/M4A 320 kbps", - "@extensionVerificationBrowserTitle": { - "description": "Settings option title for extension verification browser preference" - }, - "@backupContentsExtensions": { - "description": "Backup contents row for installed extensions count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "snackbarUrlCopied": "L'URL de {platform} a été copiée dans le presse-papiers", - "@snackbarUrlCopied": { - "description": "Snackbar - URL copied", - "placeholders": { - "platform": { - "type": "String", - "description": "Platform name (Spotify/Deezer)" - } - } - }, - "aboutBinimumDesc": "Créateur de QQDL et de l'API HiFi. Ce projet a contribué à mettre en place la prise en charge des téléchargements sans perte.", - "@aboutBinimumDesc": { - "description": "Credit description for binimum" - }, - "discographyFetchingAlbum": "Récupération de {current} sur {total}...", - "@discographyFetchingAlbum": { - "description": "Progress - fetching specific album", - "placeholders": { - "current": { - "type": "int" - }, - "total": { - "type": "int" - } - } - }, - "logAutoScrollOn": "Défilement automatique activé", - "@logAutoScrollOn": { - "description": "Tooltip when auto-scroll is enabled on the log screen" - }, - "@settingsMetadataSubtitle": { - "description": "Subtitle for metadata settings" - }, - "@regionCountryBR": { - "description": "Country name for SongLink region picker" - }, - "@lyricsProvidersTitle": { - "description": "Settings item title for lyrics provider order" - }, - "trackMetadataService": "Service", - "@trackMetadataService": { - "description": "Metadata field - download service used" - }, - "discographyAddedToQueue": "{count} titres ont été ajoutés à la file d'attente", - "cueSplitTrackCount": "{count} titres", - "@cueSplitTrackCount": { - "description": "Number of tracks in CUE sheet", - "placeholders": { - "count": { - "type": "int" - } - } - }, "dialogImportPlaylistTitle": "Importer une playlist", "@dialogImportPlaylistTitle": { "description": "Dialog title - import CSV playlist" }, - "@cleanupOrphanedDownloadsSubtitle": { - "description": "Subtitle for orphaned cleanup button" - }, - "settingsLocalLibrary": "Bibliothèque locale", - "@settingsLocalLibrary": { - "description": "Settings menu item - local library" - }, - "@metadataSaveFailedStorage": { - "description": "Snackbar error when writing metadata file back to storage fails" - }, - "logCopyLogs": "Copier les journaux", - "@logCopyLogs": { - "description": "Tooltip for copying logs" - }, - "downloadNetworkWifiOnlySubtitle": "Les téléchargements sont mis en pause lors de l'utilisation des données mobiles", - "@downloadNetworkWifiOnlySubtitle": { - "description": "Subtitle for WiFi-only option in picker" - }, - "@lyricsModeBothSubtitle": { - "description": "Subtitle for both option" - }, - "@collectionAlreadyInPlaylist": { - "description": "Snackbar when track already exists in playlist", - "placeholders": { - "playlistName": { - "type": "String" - } - } - }, - "@collectionFoldersTitle": { - "description": "Library section title for custom folders" - }, - "searchSortDateNewest": "Date de sortie (la plus récente)", - "@searchSortDateNewest": { - "description": "Sort option - newest release first" - }, - "downloadDeduplicationDisabled": "Tous les morceaux seront téléchargés, quel que soit l'historique", - "@downloadDeduplicationDisabled": { - "description": "Subtitle when deduplication is off" - }, - "@recentTypeAlbum": { - "description": "Recent access item type - album" - }, - "nowPlayingPlayInOrder": "Lire dans l'ordre", - "@nowPlayingPlayInOrder": { - "description": "Tooltip when shuffle mode is disabled" - }, - "@cueSplitConfirmMessage": { - "description": "CUE split confirmation dialog message", - "placeholders": { - "album": { - "type": "String" - }, - "count": { - "type": "int" - } - } - }, - "@audioAnalysisFileSize": { - "description": "File size metric label" - }, - "artistSingles": "Singles & EPs", - "@artistSingles": { - "description": "Section header for singles/EPs" - }, - "@snackbarProviderPrioritySaved": { - "description": "Snackbar - provider order saved" - }, - "@recentPlaylistInfo": { - "description": "Snackbar message when tapping playlist in recent access", - "placeholders": { - "name": { - "type": "String", - "description": "Playlist name" - } - } - }, - "@lyricsProviderLyricsPlusDesc": { - "description": "Description for LyricsPlus provider" - }, - "@libraryFilterDownloaded": { - "description": "Filter chip - show only downloaded items" - }, - "recentPlaylistInfo": "Playlist : {name}", - "@optionsReplayGainSubtitleOn": { - "description": "Subtitle when ReplayGain is enabled" - }, - "@actionCreate": { - "description": "Generic action button - create" - }, - "@downloadSelectQuality": { - "description": "Dialog title - choose audio quality" - }, - "cueSplitAlbum": "Album : {album}", - "@cueSplitAlbum": { - "description": "Album name in CUE split sheet", - "placeholders": { - "album": { - "type": "String" - } - } - }, - "@trackCoverNoSource": { - "description": "Snackbar when no cover art URL or embedded cover" - }, - "@storeRepoUrlLabel": { - "description": "Label for the repository URL input field" - }, - "@notifLibraryScanCompleteBody": { - "description": "Notification body for library scan complete - number of indexed tracks", + "dialogImportPlaylistMessage": "{count} titres ont été trouvés dans le fichier de la playlist. Voulez-vous les ajouter à la file d'attente de téléchargement ?", + "csvImportTracks": "{count} pistes issues d'un fichier CSV", + "@csvImportTracks": { + "description": "Label shown in quality picker for CSV import", "placeholders": { "count": { "type": "int" } } }, - "optionsDetailedLogging": "Journalisation détaillée", - "@optionsDetailedLogging": { - "description": "Enable verbose logs for debugging" + "collectionExportM3u": "Exporter au format M3U8", + "@collectionExportM3u": { + "description": "Tooltip on the collection screen action that exports the track list as an M3U8 playlist file" }, - "@lyricsProvidersDiscardContent": { - "description": "Body text of the discard-changes dialog on lyrics provider page" - }, - "@dialogDisableHistoryTitle": { - "description": "Confirmation dialog title shown before disabling download history" - }, - "downloadLossyOpus128Subtitle": "Taille minimale : environ 4 Mo par piste", - "@downloadLossyOpus128Subtitle": { - "description": "Subtitle for Opus 128kbps lossy option" - }, - "@appName": { - "description": "App name - DO NOT TRANSLATE" - }, - "libraryActions": "Actions", - "@libraryActions": { - "description": "Section header for library actions" - }, - "setupNoFolderSelected": "Aucun dossier n'est sélectionné. Souhaitez-vous utiliser le dossier Musique par défaut ?", - "@setupNoFolderSelected": { - "description": "Prompt when no folder selected" - }, - "downloadMusixmatchLanguageHint": "par exemple : en, de, ja", - "trackSaveFailed": "Échec : {error}", - "@trackSaveFailed": { - "description": "Snackbar when save operation fails", + "collectionExportM3uDone": "{exported} titres exportés sur {total}", + "@collectionExportM3uDone": { + "description": "Snackbar after M3U8 export; tracks without a local file are not exported", "placeholders": { - "error": { - "type": "String" - } - } - }, - "replayGainBatchConfirmTitle": "Ajouter ReplayGain", - "@replayGainBatchConfirmTitle": { - "description": "Title of the batch ReplayGain confirmation dialog" - }, - "tutorialExtensionsTip1": "Consultez l'onglet « Dépôt » pour découvrir des extensions utiles", - "@tutorialExtensionsTip1": { - "description": "Tutorial extensions tip 1" - }, - "@trackAddToQueue": { - "description": "Menu action to add a track to the playback queue" - }, - "@cacheTrackLookup": { - "description": "Cache item title for track ID lookup cache" - }, - "@discographyNoAlbums": { - "description": "Error - no albums found for artist" - }, - "@updateLater": { - "description": "Update button - dismiss" - }, - "@snackbarFailedToInstall": { - "description": "Snackbar - extension install error" - }, - "@albumFolderArtistAlbumFlatSubtitle": { - "description": "Folder structure example for flat singles" - }, - "@errorMissingExtensionSource": { - "description": "Error - extension source not available", - "placeholders": { - "item": { - "type": "String" - } - } - }, - "libraryFilterSortAlbumAsc": "Album (A-Z)", - "@libraryFilterSortAlbumAsc": { - "description": "Sort option - album ascending" - }, - "@queueTrackCount": { - "description": "Track count label with plural support", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "audioAnalysisMono": "Mono", - "@trackLyricsSource": { - "description": "Label showing the lyrics source/provider", - "placeholders": { - "source": { - "type": "String" - } - } - }, - "@lyricsModeEmbed": { - "description": "Lyrics mode option - embed in audio file" - }, - "@storeRepoDialogCurrent": { - "description": "Label shown above the current repository URL in the dialog" - }, - "@cacheRefreshStats": { - "description": "Button label to refresh cache statistics" - }, - "lyricsProviderAppleMusicDesc": "Paroles synchronisées mot à mot (via un proxy)", - "@lyricsProviderAppleMusicDesc": { - "description": "Description for Apple Music provider" - }, - "@downloadDeduplication": { - "description": "Setting - skip tracks already in download history" - }, - "updateFailedMessage": "Échec du téléchargement de la mise à jour", - "@updateFailedMessage": { - "description": "Update error message" - }, - "cacheEstimatedTotal": "Utilisation estimée du cache : {size}", - "@cacheEstimatedTotal": { - "description": "Total cache size shown in summary", - "placeholders": { - "size": { - "type": "String" - } - } - }, - "@aboutVersion": { - "description": "Version info label" - }, - "dialogRetry": "Réessayer", - "@cueSplitSplitting": { - "description": "Snackbar while splitting CUE", - "placeholders": { - "current": { + "exported": { "type": "int" }, "total": { @@ -1525,769 +818,65 @@ } } }, - "@searchSortTitleZA": { - "description": "Sort option - title descending" + "collectionExportM3uNone": "Aucun fichier téléchargé à exporter", + "@collectionExportM3uNone": { + "description": "Snackbar when an M3U8 export finds no local files" }, - "tutorialLibraryTip2": "Tap a track to play it with the built-in player", - "@tutorialLibraryTip2": { - "description": "Tutorial library tip 2" + "collectionExportM3uFailed": "L'exportation a échoué", + "@collectionExportM3uFailed": { + "description": "Snackbar when writing or sharing the M3U8 export fails" }, - "extensionHealthServiceOffline": "Service hors ligne", - "@extensionHealthServiceOffline": { - "description": "Tooltip for offline extension service" + "trackOpenOn": "Ouvrir sur...", + "@trackOpenOn": { + "description": "Track option and sheet title listing streaming platforms where the track can be opened" }, - "actionDeselect": "Désélectionner", - "@actionDeselect": { - "description": "Action button - deselect all" + "trackOpenOnNoLinks": "Aucun lien vers une plateforme n'a été trouvé pour ce titre.", + "@trackOpenOnNoLinks": { + "description": "Shown in the Open on sheet when song.link returns no links" }, - "@trackConvertOriginal": { - "description": "Label for keeping original bit depth or sample rate during conversion" + "libraryReviewDuplicates": "Vérifier les doublons", + "@libraryReviewDuplicates": { + "description": "Library settings row opening the duplicate review sheet" }, - "@libraryClearConfirmTitle": { - "description": "Dialog title for clear confirmation" + "libraryReviewDuplicatesSubtitle": "Rechercher les titres enregistrés plusieurs fois", + "@libraryReviewDuplicatesSubtitle": { + "description": "Subtitle for the duplicate review settings row" }, - "@dialogDownloadAllMessage": { - "description": "Body of the Download All confirmation dialog", - "placeholders": { - "count": { - "type": "int" - } - } + "duplicatesTitle": "Doublons", + "@duplicatesTitle": { + "description": "Title of the duplicate review sheet" }, - "homeSupports": "Prise en charge : URL de titres, d’albums, de playlists et d’artistes", - "@downloadedAlbumDeleteSelected": { - "description": "Button - delete selected tracks" + "duplicatesEmpty": "Aucun titre en double n'a été détecté.", + "@duplicatesEmpty": { + "description": "Shown when the duplicate review sheet finds nothing" }, - "@recentShowAllDownloads": { - "description": "Button label to unhide hidden downloads in recent access" + "duplicatesKeepBest": "Garder le meilleur", + "@duplicatesKeepBest": { + "description": "Button that deletes all but the highest-quality copy in a duplicate group" }, - "artistOptionRemoveFromFavorites": "Supprimer des Artistes Favoris", - "@artistOptionRemoveFromFavorites": { - "description": "Action label - remove artist from favorite artists" - }, - "collectionPlaylistEmptyTitle": "La playlist est vide", - "@collectionPlaylistEmptyTitle": { - "description": "Playlist empty state title" - }, - "libraryFilterSortLatest": "Le plus récent", - "@libraryFilterSortLatest": { - "description": "Sort option - newest first" - }, - "@libraryFilterMetadataMissingYear": { - "description": "Filter option - items missing release year/date" - }, - "@selectionSelected": { - "description": "Selection count indicator", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@tracksCount": { - "description": "Track count display", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@optionsCheckUpdates": { - "description": "Auto update check toggle" - }, - "@qualityHiResFlacMaxSubtitle": { - "description": "Technical spec for hi-res max" - }, - "actionStop": "Arrêter", - "@actionStop": { - "description": "Generic action - stop" - }, - "@selectionSelectToDelete": { - "description": "Placeholder when nothing selected" - }, - "folderOrganizationNoneSubtitle": "Tous les fichiers du dossier « Téléchargements »", - "@folderOrganizationNoneSubtitle": { - "description": "Subtitle for no organization option" - }, - "@updateDownloading": { - "description": "Update status - downloading" - }, - "artistAlbums": "Albums", - "@artistAlbums": { - "description": "Section header for artist albums" - }, - "trackConvertDitherTriangular": "TPDF", - "@trackConvertDitherTriangular": { - "description": "Lossless conversion triangular probability density function dither option" - }, - "nowPlayingShuffleLibraryFailed": "Impossible de lire aléatoirement la bibliothèque : {error}", - "@nowPlayingShuffleLibraryFailed": { - "description": "Snackbar when shuffling the library fails", - "placeholders": { - "error": { - "type": "String" - } - } - }, - "@setupIcloudNotSupported": { - "description": "Error when user selects iCloud Drive on iOS" - }, - "@optionsArtistTagModeSplitVorbis": { - "description": "Artist tag mode option that writes repeated ARTIST tags for Vorbis formats" - }, - "@extensionsProviderPrioritySection": { - "description": "Section header - provider priority" - }, - "@libraryShowDuplicateIndicatorSubtitle": { - "description": "Subtitle for duplicate indicator toggle" - }, - "sectionDuplicates": "Doublons", - "@sectionDuplicates": { - "description": "Settings section header for deduplication" - }, - "@backupTitle": { - "description": "App bar title for the backup and restore page" - }, - "trackCoverReplaceNotice": "La pochette sélectionnée remplacera la pochette actuellement intégrée lorsque vous appuierez sur « Enregistrer ».", - "cacheSectionMaintenance": "Entretien", - "@cacheSectionMaintenance": { - "description": "Section header for cleanup actions" - }, - "@editMetadataFieldGenre": { - "description": "Chip label for genre field in auto-fill selector" - }, - "@extensionsFallbackSubtitle": { - "description": "Subtitle for download fallback extensions menu" - }, - "selectionBatchConvertConfirmMessage": "Convertir {count} {count, plural, =1{titre} other{titres}} au format {format} avec un débit binaire de {bitrate} ?\n\nLes fichiers d'origine seront supprimés après la conversion.", - "@selectionBatchConvertConfirmMessage": { - "description": "Confirmation dialog message for batch conversion", + "duplicatesKeepBestMessage": "Supprimer {count} copies de moindre qualité de « {trackName} » ?", + "@duplicatesKeepBestMessage": { + "description": "Confirmation message for the keep-best action", "placeholders": { "count": { "type": "int" }, - "format": { - "type": "String" - }, - "bitrate": { + "trackName": { "type": "String" } } }, - "@selectionTapPlaylistsToSelect": { - "description": "Hint shown in playlist selection mode" - }, - "qualityHiResFlacMaxSubtitle": "24 bits / jusqu'à 192 kHz", - "snackbarRemovedTracksFromLoved": "{count} titres supprimés des Favoris", - "@snackbarRemovedTracksFromLoved": { - "description": "Snackbar after removing multiple tracks from Loved folder", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "folderOrganizationByArtistAlbum": "Artiste/Album", - "@folderOrganizationByArtistAlbum": { - "description": "Folder option - nested folders" - }, - "snackbarCannotOpenFile": "Impossible d'ouvrir le fichier : {error}", - "@snackbarCannotOpenFile": { - "description": "Snackbar - file open error", - "placeholders": { - "error": { - "type": "String" - } - } - }, - "@optionsDetailedLoggingOff": { - "description": "Status when logging disabled" - }, - "@setupStorageDescription": { - "description": "Explanation for storage permission" - }, - "audioAnalysisCodec": "Codec", - "@regionCountryFR": { - "description": "Country name for SongLink region picker" - }, - "@optionsArtistTagMode": { - "description": "Setting title for how artist metadata is written into files" - }, - "@libraryClearConfirmMessage": { - "description": "Dialog message for clear confirmation" - }, - "trackLyricsNotAvailable": "Les paroles de ce morceau ne sont pas disponibles", - "@trackLyricsNotAvailable": { - "description": "Message when lyrics not found" - }, - "storeFilterUtility": "Utilitaire", - "@storeFilterUtility": { - "description": "Repo filter - utility extensions" - }, - "collectionAddedToPlaylist": "Ajouté à « {playlistName} »", - "@collectionAddedToPlaylist": { - "description": "Snackbar after adding track to playlist", - "placeholders": { - "playlistName": { - "type": "String" - } - } - }, - "cacheClearConfirmTitle": "Vider le cache ?", - "@cacheClearConfirmTitle": { - "description": "Dialog title before clearing one cache category" - }, - "@downloadAppleElrcWordSyncDisabled": { - "description": "Subtitle when Apple Music eLRC word sync is disabled" - }, - "@aboutMobileDeveloper": { - "description": "Role description for mobile dev" - }, - "albumFolderYearAlbum": "[Année] Album", - "@albumFolderYearAlbum": { - "description": "Album folder option with year" - }, - "cacheTitle": "Stockage & Cache", - "@extensionPostProcessing": { - "description": "Capability - post-download processing" - }, - "extensionsNoMetadataProvider": "Aucune extension avec fournisseur de métadonnées", - "@extensionsNoMetadataProvider": { - "description": "Empty state - no metadata providers" - }, - "searchSortTitleZA": "Titre (Z-A)", - "@queueClearAllMessage": { - "description": "Clear queue confirmation" - }, - "audioAnalysisTitle": "Analyse de la qualité audio", - "@audioAnalysisTitle": { - "description": "Title for audio analysis section" - }, - "@aboutReportIssueSubtitle": { - "description": "Subtitle for report issue" - }, - "@audioAnalysisSampleRate": { - "description": "Sample rate metric label" - }, - "@discographySelectedCount": { - "description": "Selection count badge", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "qualityFlacLosslessSubtitle": "16 bits / 44,1 kHz", - "@qualityFlacLosslessSubtitle": { - "description": "Technical spec for lossless" - }, - "libraryScanFinalizing": "Finalisation de la bibliothèque...", - "@libraryScanFinalizing": { - "description": "Status shown after file scanning finishes but library persistence is still running" - }, - "@trackEditMetadata": { - "description": "Menu action - edit embedded metadata" - }, - "@downloadNeteaseIncludeRomanization": { - "description": "Setting to include romanized lyrics from Netease" - }, - "@optionsArtistTagModeJoinedSubtitle": { - "description": "Subtitle for joined artist tag mode" - }, - "regionCountryDE": "Allemagne", - "@regionCountryDE": { - "description": "Country name for SongLink region picker" - }, - "optionsAutoFallback": "Récupération automatique", - "@optionsAutoFallback": { - "description": "Auto-retry with other services" - }, - "@trackMetadataPlay": { - "description": "Action button - play track" - }, - "settingsFiles": "Fichiers & Dossiers", - "@settingsFiles": { - "description": "Settings menu item - file and folder settings" - }, - "aboutMobileDeveloper": "Développeur de la version mobile", - "@trackDownloaded": { - "description": "Metadata label - download date" - }, - "homeSkipAlreadyDownloaded": "Ignorer les morceaux déjà téléchargés", - "@homeSkipAlreadyDownloaded": { - "description": "Checkbox label in import dialog to skip already-downloaded songs" - }, - "dialogUninstall": "Désinstaller", - "@dialogUninstall": { - "description": "Dialog button - uninstall extension" - }, - "collectionDeletePlaylist": "Supprimer la playlist", - "@collectionDeletePlaylist": { - "description": "Action to delete playlist" - }, - "trackCoverOnline": "Pochette en ligne", - "@trackCoverOnline": { - "description": "Label shown when metadata autofill downloaded cover art from the internet" - }, - "downloadTitle": "Télécharger", - "@downloadTitle": { - "description": "Download settings page title" - }, - "searchArtists": "Artistes", - "@searchArtists": { - "description": "Search result category - artists" - }, - "extensionUrlHandler": "Gestionnaire d'URL", - "@extensionUrlHandler": { - "description": "Capability - handles URLs" - }, - "@timeHoursAgo": { - "description": "Relative time - hours ago", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "editMetadataAdvanced": "Avancé", - "@editMetadataAdvanced": { - "description": "Expandable section label for advanced metadata fields" - }, - "@actionSelectAll": { - "description": "Action button - select all items" - }, - "timeMinutesAgo": "{count, plural, =1{il y a 1 minute} other{il y a {count} minutes}}", - "@timeMinutesAgo": { - "description": "Relative time - minutes ago", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "regionCountryXK": "Kosovo", - "@downloadAskQualitySubtitle": { - "description": "Subtitle for ask quality toggle" - }, - "setupLanguageSystemDefault": "Paramètres par défaut du système", - "@setupLanguageSystemDefault": { - "description": "Option to use the system language" - }, - "@updateAvailable": { - "description": "Update dialog title" - }, - "cacheEntries": "{count} entrées", - "@cacheEntries": { - "description": "Track cache entry count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@notifLibraryScanExcluded": { - "description": "Library scan complete suffix - excluded track count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "extensionsMetadataPrioritySubtitle": "Définissez l'ordre des sources de recherche et de métadonnées", - "@extensionsMetadataPrioritySubtitle": { - "description": "Subtitle for metadata priority" - }, - "downloadedAlbumSelectToDelete": "Sélectionnez les pistes à supprimer", - "@downloadedAlbumSelectToDelete": { - "description": "Placeholder when nothing selected" - }, - "@dialogClearHistoryTitle": { - "description": "Dialog title - clear download history" - }, - "tutorialSettingsTip1": "Modifier l'emplacement de téléchargement et l'organisation des dossiers", - "@tutorialSettingsTip1": { - "description": "Tutorial settings tip 1" - }, - "@extensionsInstalledSuccess": { - "description": "Success message after install" - }, - "allFilesAccessDisabledSubtitle": "Réservé aux dossiers multimédias uniquement", - "@allFilesAccessDisabledSubtitle": { - "description": "Subtitle when all files access is disabled" - }, - "@appearanceHistoryViewList": { - "description": "List layout option" - }, - "@notifAlreadyInLibraryCount": { - "description": "Notification title when track is already in library, with count", - "placeholders": { - "completed": { - "type": "int" - }, - "total": { - "type": "int" - } - } - }, - "@libraryFilterAll": { - "description": "Filter chip - show all library items" - }, - "settingsDownload": "Télécharger", - "settingsFilesSubtitle": "Emplacement de téléchargement, nom de fichier, structure des dossiers", - "@settingsFilesSubtitle": { - "description": "Subtitle for files & folders settings" - }, - "@libraryFilterSort": { - "description": "Filter section - sort order" - }, - "metadataProvidersSubtitle": "Faites glisser pour définir l'ordre des sources de recherche et de métadonnées", - "@extensionPermissions": { - "description": "Section header - required permissions" - }, - "selectionSelectToDelete": "Sélectionnez les titres à supprimer", - "@libraryExternalPlayerSubtitle": { - "description": "Subtitle for external player option" - }, - "extensionVerificationOpenBrowser": "Ouvrir le navigateur", - "@extensionVerificationOpenBrowser": { - "description": "Button to open the extension verification URL in a browser" - }, - "@trackConvertConfirmMessageLossless": { - "description": "Confirmation dialog message for lossless-to-lossless conversion", - "placeholders": { - "sourceFormat": { - "type": "String" - }, - "targetFormat": { - "type": "String" - } - } - }, - "@snackbarAddedTracksToQueue": { - "description": "Snackbar - multiple tracks added to queue", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@backupContentsWishlist": { - "description": "Backup contents row for wishlist tracks count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@cacheCleanupUnusedSubtitle": { - "description": "Subtitle for cleanup unused data action" - }, - "trackLabel": "Label", - "@trackLabel": { - "description": "Metadata label - record label" - }, - "@collectionAddedToLoved": { - "description": "Snackbar after adding track to loved folder", + "duplicatesDeleteCopyMessage": "Souhaitez-vous supprimer cette copie de « {trackName} » ?", + "@duplicatesDeleteCopyMessage": { + "description": "Confirmation message for deleting one duplicate copy", "placeholders": { "trackName": { "type": "String" } } }, - "regionCountryGB": "Royaume-Uni", - "dialogCancel": "Annuler", - "@dialogCancel": { - "description": "Dialog button - cancel action" - }, - "@folderOrganizationByArtistAlbumSubtitle": { - "description": "Subtitle for nested folder option" - }, - "@notifAllDownloadsComplete": { - "description": "Notification title when all downloads finish successfully" - }, - "setupEnableNotifications": "Activer les notifications", - "@setupEnableNotifications": { - "description": "Button to enable notifications" - }, - "@notifFinalizingTrack": { - "description": "Notification title while finalizing (embedding metadata) a track", - "placeholders": { - "trackName": { - "type": "String" - } - } - }, - "@downloadLossy320FormatDesc": { - "description": "Description in the lossy format picker" - }, - "filenameFormat": "Format des noms de fichiers", - "@filenameFormat": { - "description": "Setting title - filename pattern" - }, - "historySearchHint": "Historique de recherche...", - "@historySearchHint": { - "description": "Search bar placeholder in history" - }, - "@tutorialReadyMessage": { - "description": "Tutorial completion message" - }, - "cacheTempDirectoryDesc": "Fichiers temporaires liés aux téléchargements et à la conversion audio.", - "@cacheTempDirectoryDesc": { - "description": "Description of what temporary directory contains" - }, - "@trackSaveLyrics": { - "description": "Menu action - save lyrics as .lrc file" - }, - "@notifDownloadsFinished": { - "description": "Notification title when queue finishes with some failures", - "placeholders": { - "completed": { - "type": "int" - }, - "failed": { - "type": "int" - } - } - }, - "@historyFilterAlbums": { - "description": "Filter chip - show albums only" - }, - "trackEmbedLyrics": "Intégrer les paroles", - "@trackEmbedLyrics": { - "description": "Action - embed lyrics into audio file" - }, - "@downloadPrimaryArtistOnlyOff": { - "description": "Status label when primary-artist-only folder naming is disabled" - }, - "@trackReEnrichFieldTrackInfo": { - "description": "Checkbox label for track info in re-enrich" - }, - "snackbarHistoryCleared": "Historique effacé", - "downloadNetworkCompatibilityModeDisabled": "Utilisation des paramètres réseau par défaut", - "@artistPopular": { - "description": "Section header for popular/top tracks" - }, - "@trackFetchOnlineLyrics": { - "description": "Action - fetch lyrics from online providers" - }, - "extensionLyricsProvider": "Fournisseur de paroles", - "@extensionLyricsProvider": { - "description": "Capability - provides lyrics" - }, - "historyFilterAll": "Tous", - "@historyFilterAll": { - "description": "Filter chip - show all items" - }, - "tutorialSearchTitle": "Trouver de la musique", - "@lyricsModeExternal": { - "description": "Lyrics mode option - separate LRC file" - }, - "@actionDismiss": { - "description": "Generic action - dismiss" - }, - "trackOpenInSpotify": "Ouvrir dans Spotify", - "@trackOpenInSpotify": { - "description": "Action - open track in Spotify app" - }, - "@libraryClear": { - "description": "Button to clear all library entries" - }, - "discographyFailedToFetch": "Impossible de récupérer certains albums", - "@filenameShowAdvancedTagsDescription": { - "description": "Description for advanced filename tag toggle" - }, - "@storeUpdate": { - "description": "Update available button" - }, - "collectionPlaylistTracks": "{count, plural, =1{1 titre} other{{count} titres}}", - "@collectionPlaylistTracks": { - "description": "Track count label for custom playlists", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "optionsPrimaryProviderSubtitle": "Service permettant d'effectuer une recherche par titre de morceau ou d'album", - "@optionsPrimaryProviderSubtitle": { - "description": "Subtitle for primary provider" - }, - "@downloadEmbedLyricsDisabled": { - "description": "Subtitle when lyrics embedding is blocked by metadata toggle" - }, - "@librarySourceLocal": { - "description": "Badge for tracks from local library scan" - }, - "@searchSortDurationLong": { - "description": "Sort option - longest duration first" - }, - "@downloadFilterContributingDisabled": { - "description": "Subtitle when contributing artist filter is off" - }, - "queueDownloadingCount": "Téléchargement ({count})", - "@queueDownloadingCount": { - "description": "Header for active downloads section with count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "extensionVerificationBrowserInApp": "Dans l'application", - "trackAudioQuality": "Qualité audio", - "@trackAudioQuality": { - "description": "Metadata label - audio quality" - }, - "libraryRemovedMissingFiles": "{count} fichiers manquants ont été supprimés de la bibliothèque", - "@libraryRemovedMissingFiles": { - "description": "Snackbar after cleanup", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "collectionFavoriteArtistsEmptyTitle": "Pas encore d'artistes préférés", - "@collectionFavoriteArtistsEmptyTitle": { - "description": "Favorite artists empty state title" - }, - "@errorInvalidFolderSelected": { - "description": "Error when the selected folder is invalid" - }, - "@searchSortArtistZA": { - "description": "Sort option - artist descending" - }, - "snackbarAddedTracksToLoved": "{count} titres ajoutés aux Favoris", - "@snackbarAddedTracksToLoved": { - "description": "Snackbar after adding multiple tracks to Loved folder", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "cancelDownloadContent": "Cela annulera le téléchargement en cours de « {trackName} ».", - "@cancelDownloadContent": { - "description": "Dialog body when confirming cancellation of an active download", - "placeholders": { - "trackName": { - "type": "String" - } - } - }, - "settingsCacheSubtitle": "Afficher la taille et vider le cache", - "@settingsCacheSubtitle": { - "description": "Subtitle for cache management menu" - }, - "notifLibraryScanCompleteBody": "{count} titres indexés", - "@cacheSizeWithFiles": { - "description": "Cache size and file count", - "placeholders": { - "size": { - "type": "String" - }, - "count": { - "type": "int" - } - } - }, - "@downloadAskBeforeDownload": { - "description": "Setting - show quality picker" - }, - "@extensionHealthDegraded": { - "description": "Extension service health status - degraded" - }, - "@sectionPerformance": { - "description": "Settings section header" - }, - "@trackCoverCurrent": { - "description": "Label for the currently embedded cover preview" - }, - "discographySelectAlbums": "Sélectionner des albums...", - "@discographySelectAlbums": { - "description": "Option - manually select albums to download" - }, - "aboutAppDescription": "Recherchez des métadonnées musicales, gérez les extensions et organisez votre bibliothèque.", - "@aboutAppDescription": { - "description": "App description in header card" - }, - "extensionCustomTrackMatching": "Correspondance personnalisée des pistes", - "@extensionCustomTrackMatching": { - "description": "Capability - custom track matching algorithm" - }, - "@editMetadataSelectNone": { - "description": "Button to clear selected fields for auto-fill" - }, - "@trackPlayNext": { - "description": "Menu action to play a track as the next queue item" - }, - "extensionCapabilities": "Fonctionnalités", - "@extensionCapabilities": { - "description": "Section header - extension features" - }, - "@downloadSelectServiceToEnable": { - "description": "Subtitle when quality picker is disabled due to extension service" - }, - "logIssueRateLimitedDescription": "Trop de requêtes adressées au service", - "@logIssueRateLimitedDescription": { - "description": "Diagnostic badge description for rate limiting" - }, - "@actionResume": { - "description": "Action button - resume download" - }, - "@updateDownloadInstall": { - "description": "Update button - download and install" - }, - "downloadLossy320Format": "Format avec perte à 320 kbps", - "@downloadLossy320Format": { - "description": "Title of the lossy format picker bottom sheet" - }, - "settingsMetadataSubtitle": "Pochettes, balises, ReplayGain, fournisseurs", - "@trackCopyright": { - "description": "Metadata label - copyright information" - }, - "@snackbarExtensionInstalled": { - "description": "Snackbar - extension installed successfully", - "placeholders": { - "extensionName": { - "type": "String" - } - } - }, - "@regionCountryJP": { - "description": "Country name for SongLink region picker" - }, - "trackReEnrichOnlineSubtitle": "Rechercher des métadonnées en ligne et les intégrer dans un fichier", - "@trackReEnrichOnlineSubtitle": { - "description": "Subtitle for re-enrich metadata action for local items" - }, - "nowPlayingNothingPlaying": "Il n'y a rien à l'écran", - "@nowPlayingNothingPlaying": { - "description": "Empty state when no track is currently playing" - }, - "tutorialDownloadDesc": "Pick an available quality, start the download, and follow its progress in the queue.", - "@tutorialDownloadDesc": { - "description": "Tutorial download page description" - }, - "@appearanceTitle": { - "description": "Appearance settings page title" - }, - "@backupExportSectionDescription": { - "description": "Description of what a backup contains" - }, - "@downloadLossyOpus128": { - "description": "Lossy format option - Opus 128kbps" - }, - "@logFilterSection": { - "description": "Filter section title" - }, - "trackReEnrichSuccess": "Métadonnées réenrichies avec succès", - "@trackReEnrichSuccess": { - "description": "Snackbar after successful re-enrichment" - }, - "backupContentsHistory": "{count} historique {count, plural, =1{élément} other{éléments}}", - "@backupContentsHistory": { - "description": "Backup contents row for history count", + "@dialogImportPlaylistMessage": { + "description": "Dialog message - import playlist confirmation", "placeholders": { "count": { "type": "int" @@ -2303,692 +892,93 @@ } } }, - "libraryAutoScanOnOpen": "À chaque ouverture de l'application", - "@libraryAutoScanOnOpen": { - "description": "Auto scan when app opens" + "snackbarAddedTracksToQueue": "{count} titres ont été ajoutés à la file d'attente", + "@snackbarAddedTracksToQueue": { + "description": "Snackbar - multiple tracks added to queue", + "placeholders": { + "count": { + "type": "int" + } + } }, - "audioAnalysisChannels": "Chaînes", - "@audioAnalysisChannels": { - "description": "Channels metric label" - }, - "appearanceHistoryViewList": "Liste", - "updateDownloadInstall": "Télécharger & Installer", - "@libraryShowDuplicateIndicator": { - "description": "Toggle for duplicate indicator in search" - }, - "extensionsHomeFeedOff": "Désactivé", - "@extensionsHomeFeedOff": { - "description": "Extensions page - home feed provider option: off" - }, - "searchSortTitleAZ": "Titre (A-Z)", - "@searchSortTitleAZ": { - "description": "Sort option - title ascending" - }, - "collectionRemovedFromLoved": "\"{trackName}\" supprimé des Favoris", - "@collectionRemovedFromLoved": { - "description": "Snackbar after removing track from loved folder", + "snackbarAlreadyDownloaded": "« {trackName} » a déjà été téléchargé", + "@snackbarAlreadyDownloaded": { + "description": "Snackbar - track already exists", "placeholders": { "trackName": { "type": "String" } } }, - "sectionAudioQuality": "Qualité audio", - "@sectionAudioQuality": { - "description": "Settings section header" - }, - "trackConvertSuccess": "Conversion vers {format} réussie", - "@trackConvertSuccess": { - "description": "Snackbar after successful conversion", - "placeholders": { - "format": { - "type": "String" - } - } - }, - "dialogUninstallExtensionMessage": "Êtes-vous sûr de vouloir supprimer {extensionName} ?", - "@dialogUninstallExtensionMessage": { - "description": "Dialog message - uninstall specific extension", - "placeholders": { - "extensionName": { - "type": "String" - } - } - }, - "downloadNativeWorkerSubtitle": "Service Android en arrière-plan pour les téléchargements d'extensions", - "@downloadNativeWorkerSubtitle": { - "description": "Setting subtitle for Android native download worker" - }, - "storeUpdate": "Mettre à jour", - "libraryFilterMetadataMissingAny": "Métadonnées manquantes", - "@libraryFilterMetadataMissingAny": { - "description": "Filter option - items missing any tracked metadata field" - }, - "@selectionBatchConvertConfirmMessageLosslessCapped": { - "description": "Confirmation dialog message for capped lossless batch conversion", - "placeholders": { - "count": { - "type": "int" - }, - "format": { - "type": "String" - }, - "quality": { - "type": "String" - } - } - }, - "editMetadataAutoFillDesc": "Choisissez une extension de métadonnées, sélectionnez les champs, puis vérifiez les données avant de l'appliquer", - "@editMetadataAutoFillDesc": { - "description": "Description for the auto-fill section" - }, - "@lyricsProviderExtensionDesc": { - "description": "Generic description for extension-based lyrics providers" - }, - "downloadSongLinkRegion": "Région SongLink", - "@downloadSongLinkRegion": { - "description": "Setting for SongLink region used during fallback resolution" - }, - "shareSheetNoExtensions": "Aucun autre service compatible", - "@shareSheetNoExtensions": { - "description": "Empty state when no extensions can be searched for cross-service links" - }, - "queueFlacConfirmMessage": "Recherchez en ligne les correspondances pour les morceaux sélectionnés et ajoutez les téléchargements FLAC à la file d'attente.\n\nLes fichiers existants ne seront ni modifiés ni supprimés.\n\nSeules les correspondances hautement fiables sont automatiquement ajoutées à la file d'attente.\n\n{count} sélectionnés", - "@queueFlacConfirmMessage": { - "description": "Confirmation dialog body before queueing FLAC redownloads for local tracks", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "tooltipAddToPlaylist": "Ajouter à la playlist", - "@tooltipAddToPlaylist": { - "description": "Tooltip for the Add to Playlist button" - }, - "@snackbarAddedToQueueGeneric": { - "description": "Snackbar when a track is added to the playback queue without naming it" - }, - "@tutorialSettingsTip2": { - "description": "Tutorial settings tip 2" - }, - "extensionPermissions": "Autorisations", - "releaseTypeSingle": "Single", - "aboutTelegramChannelSubtitle": "Annonces et mises à jour", - "@aboutTelegramChannelSubtitle": { - "description": "Subtitle for Telegram channel" - }, - "@dialogDisableAndClear": { - "description": "Confirmation action to disable download history and clear existing entries" - }, - "@homeSearchHintProvider": { - "description": "Placeholder for the main search field when a provider is selected", - "placeholders": { - "providerName": { - "type": "String" - } - } - }, - "metadataProvidersTitle": "Priorité des fournisseurs de métadonnées", - "@metadataProvidersTitle": { - "description": "Settings item title for metadata provider order" - }, - "trackAddToQueue": "Ajouter à la file d'attente", - "audioAnalysisDecodedFormat": "Format décodé", - "@audioAnalysisDecodedFormat": { - "description": "Decoded sample format metric label" - }, - "@editMetadataSelectEmpty": { - "description": "Button to select only fields that are currently empty" - }, - "collectionAlreadyInPlaylist": "Déjà présent dans « {playlistName} »", - "discographyAlbumsOnlySubtitle": "{count} titres issus de {albumCount} albums", - "@discographyAlbumsOnlySubtitle": { - "description": "Subtitle showing album tracks count", - "placeholders": { - "count": { - "type": "int" - }, - "albumCount": { - "type": "int" - } - } - }, - "setupNotificationEnable": "Activer les notifications", - "@setupNotificationEnable": { - "description": "Button to enable notifications" - }, - "settingsAppearanceSubtitle": "Thème, couleurs, affichage", - "@settingsAppearanceSubtitle": { - "description": "Appearance settings description" - }, - "@notifUpdateFailedBody": { - "description": "Notification body when app update download fails" - }, - "@aboutOriginalCreator": { - "description": "Role description for original creator" - }, - "libraryBuiltInPreviewPlayer": "Lecteur de prévisualisation intégré", - "@libraryBuiltInPreviewPlayer": { - "description": "Setting option to use the built-in preview player" - }, - "tooltipPlay": "Lecture", - "@tooltipPlay": { - "description": "Tooltip - play button" - }, - "@safMigrationMessage2": { - "description": "Second paragraph of SAF migration dialog" - }, - "@extensionsSearchProvider": { - "description": "Setting - search provider selection" - }, - "libraryAboutDescription": "Analyse votre bibliothèque musicale existante pour détecter les doublons lors du téléchargement. Prend en charge les formats FLAC, M4A, MP3, Opus et OGG. Les métadonnées sont extraites des balises des fichiers lorsqu'elles sont disponibles.", - "@libraryAboutDescription": { - "description": "Description of local library feature" - }, - "downloadAskBeforeDownload": "Demander avant de télécharger", - "nowPlayingNoMetadata": "Aucune métadonnée disponible", - "@nowPlayingNoMetadata": { - "description": "Empty state when track metadata cannot be loaded" - }, - "trackInstrumental": "Morceau instrumental", - "@trackInstrumental": { - "description": "Message when track is instrumental (no lyrics)" - }, - "@collectionWishlistEmptyTitle": { - "description": "Wishlist empty state title" - }, - "selectionBatchConvertConfirmMessageLosslessCapped": "Convertir {count} {count, plural, =1{titre} other{titres}} en {format} ({quality}) ?\n\nLe fichier de sortie conservera un codec sans perte, mais la profondeur de bits et la fréquence d'échantillonnage seront limitées. Les fichiers d'origine seront supprimés après la conversion.", - "downloadDeduplication": "Éviter les téléchargements en double", - "libraryFilterSortOldest": "Le plus ancien", - "@libraryFilterSortOldest": { - "description": "Sort option - oldest first" - }, - "setupSkip": "Ignorer pour le moment", - "@setupSkip": { - "description": "Skip current step button" - }, - "@setupFolderDescription": { - "description": "Explanation for folder selection" - }, - "@settingsLogsSubtitle": { - "description": "Logs settings description" - }, - "storeNewRepoUrlLabel": "Nouvelle URL du dépôt", - "@storeNewRepoUrlLabel": { - "description": "Label for the new repository URL field inside the dialog" - }, - "cacheClearConfirmMessage": "Cette opération effacera les données mises en cache pour {target}. Les fichiers musicaux téléchargés ne seront pas supprimés.", - "@cacheClearConfirmMessage": { - "description": "Dialog message before clearing selected cache", - "placeholders": { - "target": { - "type": "String" - } - } - }, - "trackMetadataPlay": "Lire", - "@libraryEnableLocalLibrary": { - "description": "Toggle to enable library scanning" - }, - "optionsUpdateChannel": "Chaîne de mise à jour", - "@optionsUpdateChannel": { - "description": "Stable vs preview releases" - }, - "@downloadCreatePlaylistSourceFolderDisabled": { - "description": "Subtitle when playlist folder is disabled" - }, - "@extensionRefreshStatus": { - "description": "Tooltip for refreshing extension service health status" - }, - "backupRestoreRestartHint": "Redémarrez l'application pour vous assurer que toutes les modifications ont bien été prises en compte.", - "@backupRestoreRestartHint": { - "description": "Hint shown after restoring that an app restart is recommended" - }, - "@snackbarExtensionInstalledEnable": { - "description": "Snackbar after installing an extension from the repo tab", - "placeholders": { - "extensionName": { - "type": "String" - } - } - }, - "settingsAutoExportFailedSubtitle": "Enregistrez automatiquement les téléchargements ayant échoué dans un fichier TXT", - "@settingsAutoExportFailedSubtitle": { - "description": "Subtitle for auto-export setting" - }, - "searchSortArtistAZ": "Artiste (A-Z)", - "@searchSortArtistAZ": { - "description": "Sort option - artist ascending" - }, - "editMetadataFieldAlbumArtist": "Artiste de l'album", - "@editMetadataFieldAlbumArtist": { - "description": "Chip label for album artist field in auto-fill selector" - }, - "@queueEmptyHistory": { - "description": "Empty state title when download history is empty" - }, - "@dialogDisableHistoryMessage": { - "description": "Confirmation dialog message shown before disabling download history" - }, - "queueFlacNoReliableMatches": "Aucun résultat pertinent n'a été trouvé en ligne pour cette sélection", - "@queueFlacNoReliableMatches": { - "description": "Snackbar when no safe FLAC redownload matches were found" - }, - "trackOpenInDeezer": "Ouvrir dans Deezer", - "@trackOpenInDeezer": { - "description": "Action - open track in Deezer app" - }, - "setupChooseFromFilesSubtitle": "Sélectionnez iCloud ou un autre emplacement", - "@setupChooseFromFilesSubtitle": { - "description": "Subtitle for file picker" - }, - "artistMonthlyListeners": "{count} auditeurs mensuels", - "@artistMonthlyListeners": { - "description": "Monthly listener count display", - "placeholders": { - "count": { - "type": "String", - "description": "Formatted listener count" - } - } - }, - "@downloadLossyAacSubtitle": { - "description": "Subtitle for AAC/M4A 320kbps lossy option" - }, - "cacheSectionStorage": "Données mises en cache", - "@cacheSectionStorage": { - "description": "Section header for cache entries" - }, - "@libraryAutoScanWeekly": { - "description": "Auto scan once per week" - }, - "tutorialDownloadCompletedSemantics": "Téléchargement terminé", - "@tutorialDownloadCompletedSemantics": { - "description": "Accessibility label for completed download state in tutorial demo" - }, - "@logNoLogsYet": { - "description": "Empty state title" - }, - "@selectionDeletePlaylistsCount": { - "description": "Button label for deleting multiple selected playlists", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "downloadSeparateSinglesEnabled": "Les singles et les EP sont enregistrés dans un dossier séparé", - "@downloadSeparateSinglesEnabled": { - "description": "Subtitle when separate singles folder is on" - }, - "setupAppDocumentsFolder": "Dossier « Documents » de l'application", - "@setupAppDocumentsFolder": { - "description": "iOS documents folder option" - }, - "storeLoadError": "Échec du chargement du dépôt", - "settingsDownloadNetwork": "Réseau de téléchargement", - "metadataSaveFailedStorage": "Échec de la réécriture des métadonnées sur le support de stockage", - "@logAutoScrollOff": { - "description": "Tooltip when auto-scroll is disabled on the log screen" - }, - "@trackConvertFormat": { - "description": "Menu item - convert audio format" - }, - "optionsArtistTagModeJoined": "Valeur unique combinée", - "@optionsArtistTagModeJoined": { - "description": "Artist tag mode option that joins multiple artists into one value" - }, - "@dateYesterday": { - "description": "Relative date - yesterday" - }, - "@settingsExtensionsSubtitle": { - "description": "Extensions settings description" - }, - "searchSortArtistZA": "Artiste (Z-A)", - "@extensionSettings": { - "description": "Section header - extension settings" - }, - "@extensionOauthConnectHint": { - "description": "Hint for an OAuth login link field before connecting Spotify" - }, - "@notifUpdateReady": { - "description": "Notification title when app update download is complete" - }, - "@regionCountryMX": { - "description": "Country name for SongLink region picker" - }, - "@nowPlayingOpenInExternalPlayer": { - "description": "Menu item to open the current track in an external player" - }, - "trackConvertDithering": "Hésitation", - "@trackConvertDithering": { - "description": "Section label for lossless conversion dithering options" - }, - "settingsDownloadSubtitle": "Service, qualité, solution de secours", - "@settingsDownloadSubtitle": { - "description": "Download settings description" - }, - "libraryLastScanned": "Dernière analyse : {time}", - "@libraryLastScanned": { - "description": "Last scan time display", - "placeholders": { - "time": { - "type": "String" - } - } - }, - "setupIosEmptyFolderWarning": "Limitation iOS : les dossiers vides ne peuvent pas être sélectionnés. Choisissez un dossier contenant au moins un fichier.", - "@setupIosEmptyFolderWarning": { - "description": "iOS folder selection warning" - }, - "@storeAddRepoDescription": { - "description": "Store setup screen - explanatory text" - }, - "@snackbarFailedToInstallNamed": { - "description": "Snackbar when extension install fails in the repo tab", - "placeholders": { - "extensionName": { - "type": "String" - } - } - }, - "@collectionAddedTracksToPlaylist": { - "description": "Snackbar after adding multiple tracks to a playlist", - "placeholders": { - "count": { - "type": "int" - }, - "playlistName": { - "type": "String" - } - } - }, - "updateNew": "Nouveau", - "@updateNew": { - "description": "Label for new version" - }, - "settingsExtensionsSubtitle": "Gérez les fournisseurs de téléchargement", - "@albumFolderArtistAlbumSinglesSubtitle": { - "description": "Folder structure example" - }, - "trackReEnrichSelectAll": "Tout sélectionner", - "@trackReEnrichSelectAll": { - "description": "Select all fields checkbox in re-enrich" - }, - "@extensionsUninstall": { - "description": "Uninstall extension button" - }, - "@downloadUseAlbumArtistForFoldersTrackSubtitle": { - "description": "Subtitle when track artist is used for folder names" - }, - "@logIssueNetworkErrorLabel": { - "description": "Diagnostic badge label for generic network errors" - }, - "albumFolderArtistYearAlbumSubtitle": "Albums/Nom de l'artiste/[2005] Nom de l'album/", - "@albumFolderArtistYearAlbumSubtitle": { - "description": "Folder structure example" - }, - "itemCount": "{count} {count, plural, =1{élément} other{éléments}}", - "@itemCount": { - "description": "Generic item count label", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "discographyFetchingTracks": "Chargement des pistes...", - "@discographyFetchingTracks": { - "description": "Progress - fetching album tracks" - }, - "@libraryFolder": { - "description": "Folder selection setting" - }, - "queueEmptyAlbums": "Aucun album téléchargé", - "@queueEmptyAlbums": { - "description": "Empty state title when no album downloads exist" - }, - "@metadataProviderPriorityDescription": { - "description": "Metadata priority page description" - }, - "@extensionVerificationHelpTitleManual": { - "description": "Dialog title when automatic browser launch for verification fails" - }, - "extensionError": "Erreur", - "@extensionError": { - "description": "Extension detail - error message" - }, - "@trackLyricsLoadFailed": { - "description": "Message when lyrics loading fails" - }, - "@downloadedAlbumDeleteCount": { - "description": "Delete button text with count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@extensionsNoHomeFeedExtensions": { - "description": "Extensions page - shown when no installed extension has home feed" - }, - "@collectionArtistCount": { - "description": "Artist count label for favorite artists", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "backupContentsArtists": "{count, plural, =1{1 artiste préféré} other{{count} artistes préférés}}", - "@backupContentsArtists": { - "description": "Backup contents row for favorite artists count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@trackRemoveFromDevice": { - "description": "Action - delete downloaded file" - }, - "lyricsProvidersEnabledSection": "Activé ({count})", - "@lyricsProvidersEnabledSection": { - "description": "Section header for enabled providers", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@cueSplitTitle": { - "description": "Title for CUE split bottom sheet" - }, - "@downloadedAlbumSelectedCount": { - "description": "Selection count indicator", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@trackOptionRemoveFromWishlist": { - "description": "Bottom sheet action label - remove track from wishlist" - }, - "notifDownloadingTrack": "Téléchargement de {trackName}", - "@notifDownloadingTrack": { - "description": "Notification title while downloading a track", + "snackbarAlreadyInLibrary": "« {trackName} » existe déjà dans votre bibliothèque", + "@snackbarAlreadyInLibrary": { + "description": "Snackbar - track already exists in local library", "placeholders": { "trackName": { "type": "String" } } }, - "@discographySkippedDownloaded": { - "description": "Snackbar - with skipped tracks count", + "snackbarHistoryCleared": "Historique effacé", + "@snackbarHistoryCleared": { + "description": "Snackbar - history deleted" + }, + "snackbarDeletedTracks": "Supprimé {count} {count, plural, =1{titre} other{titres}}", + "@snackbarDeletedTracks": { + "description": "Snackbar - tracks deleted", "placeholders": { - "added": { - "type": "int" - }, - "skipped": { + "count": { "type": "int" } } }, - "@tutorialSettingsTip3": { - "description": "Tutorial settings tip 3" - }, - "@announcementUnableToOpenLink": { - "description": "Snackbar shown when an announcement CTA link cannot be opened" - }, - "trackReleaseDate": "Date de sortie", - "discographySelectedCount": "{count} sélectionnés", - "collectionArtistCount": "{count, plural, =1{1 artiste} other{{count} artistes}}", - "logIssueNetworkErrorLabel": "ERREUR DE RÉSEAU", - "updateStartingDownload": "Début du téléchargement...", - "@updateStartingDownload": { - "description": "Update status - initializing" - }, - "trackDiscNumber": "Numéro de disque", - "@trackDiscNumber": { - "description": "Metadata label - disc number" - }, - "optionsUsingExtension": "Utilisation de l'extension : {extensionName}", - "@optionsUsingExtension": { - "description": "Shows active extension name", - "placeholders": { - "extensionName": { - "type": "String" - } - } - }, - "dialogDisableHistoryTitle": "Désactiver l'historique des téléchargements ?", - "tutorialWelcomeTip3": "Embed metadata, cover art, lyrics, and release information automatically", - "@tutorialWelcomeTip3": { - "description": "Tutorial welcome tip 3" - }, - "@collectionPlaylistEmptySubtitle": { - "description": "Playlist empty state subtitle" - }, - "@tutorialSearchHint": { - "description": "Placeholder shown in the tutorial search demo" - }, - "cleanupOrphanedDownloadsNone": "Aucune entrée orpheline n'a été trouvée", - "discographySkippedDownloaded": "{added} ajouté, {skipped} déjà téléchargé", - "@updateDontRemind": { - "description": "Update button - skip this version" - }, - "@snackbarLoadingCueSheet": { - "description": "Snackbar while loading a CUE sheet file" - }, - "@dialogUninstallExtension": { - "description": "Dialog title - uninstall extension" - }, - "lyricsProvidersTitle": "Priorité au fournisseur de paroles", - "@dialogRemove": { - "description": "Dialog button - remove item" - }, - "snackbarError": "Erreur : {error}", - "@snackbarError": { - "description": "Generic error snackbar with error detail", + "snackbarCannotOpenFile": "Impossible d'ouvrir le fichier : {error}", + "@snackbarCannotOpenFile": { + "description": "Snackbar - file open error", "placeholders": { "error": { "type": "String" } } }, - "@sectionApp": { - "description": "Settings section header" + "snackbarViewQueue": "Afficher la file d'attente", + "@snackbarViewQueue": { + "description": "Snackbar action - view download queue" }, - "@libraryPlayback": { - "description": "Section header for playback settings in library settings" + "snackbarUrlCopied": "L'URL de {platform} a été copiée dans le presse-papiers", + "@snackbarUrlCopied": { + "description": "Snackbar - URL copied", + "placeholders": { + "platform": { + "type": "String", + "description": "Platform name (Spotify/Deezer)" + } + } }, - "@downloadPrimaryArtistOnlyOn": { - "description": "Status label when primary-artist-only folder naming is enabled" + "snackbarFileNotFound": "Fichier introuvable", + "@snackbarFileNotFound": { + "description": "Snackbar - file doesn't exist" }, - "lyricsProvidersDiscardContent": "Vous avez des modifications non enregistrées qui seront perdues.", - "previewStop": "Arrêter l'aperçu", - "@previewStop": { - "description": "Tooltip for the button that stops the playing track preview snippet" + "snackbarSelectExtFile": "Veuillez sélectionner un fichier .spotiflac-ext", + "@snackbarSelectExtFile": { + "description": "Snackbar - wrong file type selected" }, - "trackConvertConfirmMessageLossless": "Convertir de {sourceFormat} vers {targetFormat} ? (Sans perte — aucune perte de qualité)\n\nLe fichier d'origine sera supprimé après la conversion.", - "discographyAlbumsOnly": "Albums uniquement", - "@discographyAlbumsOnly": { - "description": "Option - download only albums" + "snackbarProviderPrioritySaved": "Priorité du fournisseur enregistrée", + "@snackbarProviderPrioritySaved": { + "description": "Snackbar - provider order saved" }, - "@editMetadataFieldCopyright": { - "description": "Chip label for copyright field in auto-fill selector" + "snackbarMetadataProviderSaved": "Priorité du fournisseur de métadonnées enregistrée", + "@snackbarMetadataProviderSaved": { + "description": "Snackbar - metadata provider order saved" }, - "extensionsFallbackSubtitle": "Choisissez les extensions de téléchargement installées qui peuvent servir de solution de secours", - "aboutSocial": "Réseaux sociaux", - "@aboutSocial": { - "description": "Section for social links" - }, - "audioAnalysisNyquist": "Nyquist", - "trackCoverSelected": "Pochette choisie", - "@trackCoverSelected": { - "description": "Label for the newly selected cover preview" - }, - "downloadDeduplicationEnabled": "Les morceaux déjà téléchargés seront ignorés", - "@downloadDeduplicationEnabled": { - "description": "Subtitle when deduplication is on" - }, - "homeEmptyTitle": "Aucun moteur de recherche pour le moment", - "@homeEmptyTitle": { - "description": "Title shown on home when no providers are available yet" - }, - "@extensionHealthUnknown": { - "description": "Extension service health status - unknown" - }, - "storeInstalled": "Installé", - "@storeInstalled": { - "description": "Already installed badge" - }, - "trackReplayGainSuccess": "Ajout des balises ReplayGain", - "@trackReplayGainSuccess": { - "description": "Snackbar message after ReplayGain tags written for a single track" - }, - "libraryShowDuplicateIndicatorSubtitle": "Afficher lors de la recherche de pistes existantes", - "@collectionPlaylistRenamed": { - "description": "Snackbar after renaming playlist" - }, - "@trackConvertResamplerSoxr": { - "description": "Lossless conversion SoX resampler option" - }, - "@dialogUnsavedChanges": { - "description": "Dialog message - unsaved changes" - }, - "dialogDownload": "Télécharger", - "@dialogDownload": { - "description": "Confirm button in Download All dialog" - }, - "trackLyricsLoadFailed": "Impossible de charger les paroles", - "@backupContentsTitle": { - "description": "Header above the list summarizing what the backup contains" - }, - "@safMigrationTitle": { - "description": "Title of SAF migration dialog" - }, - "@trackReEnrichFieldLyrics": { - "description": "Checkbox label for lyrics field in re-enrich" - }, - "setupPermissionDeniedMessage": "Autorisation refusée. Veuillez accorder toutes les autorisations pour continuer.", - "@setupPermissionDeniedMessage": { - "description": "Error when permission denied" - }, - "settingsDownloadNetworkWifiOnly": "Wi-Fi uniquement", - "@settingsDownloadNetworkWifiOnly": { - "description": "Network option - only use WiFi" - }, - "@backupIncludeSecrets": { - "description": "Toggle to include secret extension settings (tokens, API keys) in the backup" - }, - "@libraryFilterMetadataMissingAlbumArtist": { - "description": "Filter option - items missing album artist" - }, - "@extensionHealthServiceUnknown": { - "description": "Tooltip for unknown extension service health" + "snackbarExtensionInstalled": "{extensionName} est installée.", + "@snackbarExtensionInstalled": { + "description": "Snackbar - extension installed successfully", + "placeholders": { + "extensionName": { + "type": "String" + } + } }, "snackbarExtensionUpdated": "{extensionName} a été mis à jour.", "@snackbarExtensionUpdated": { @@ -2999,114 +989,365 @@ } } }, - "homeEmptySubtitle": "Installez une extension pour continuer.", - "@settingsTitle": { - "description": "Settings screen title" + "snackbarFailedToInstall": "Échec de l'installation de l'extension", + "@snackbarFailedToInstall": { + "description": "Snackbar - extension install error" }, - "@libraryFilterMetadataIncorrectIsrcFormat": { - "description": "Filter option - items with an invalid ISRC format" + "snackbarFailedToUpdate": "Échec de la mise à jour de l'extension", + "@snackbarFailedToUpdate": { + "description": "Snackbar - extension update error" }, - "@notifLibraryScanComplete": { - "description": "Notification title when library scan finishes" + "errorRateLimited": "Débit limité", + "@errorRateLimited": { + "description": "Error title - too many requests" }, - "@logIssueIspBlockingLabel": { - "description": "Diagnostic badge label when ISP blocking is detected" + "errorRateLimitedMessage": "Trop de requêtes. Veuillez patienter quelques instants avant de relancer la recherche.", + "@errorRateLimitedMessage": { + "description": "Error message - rate limit explanation" }, - "tutorialDownloadTitle": "Télécharger de la musique", - "@tutorialDownloadTitle": { - "description": "Tutorial download page title" + "errorNoTracksFound": "Aucun titre trouvé", + "@errorNoTracksFound": { + "description": "Error - search returned no results" }, - "unknownTitle": "Titre inconnu", - "@unknownTitle": { - "description": "Fallback track title when metadata is missing" + "searchEmptyResultSubtitle": "Essayez un autre mot-clé", + "@searchEmptyResultSubtitle": { + "description": "Subtitle shown under the empty search result state on the home screen" }, - "navLibrary": "Bibliothèque", - "@navLibrary": { - "description": "Bottom navigation - Library tab" + "errorUrlNotRecognized": "Lien non reconnu", + "@errorUrlNotRecognized": { + "description": "Error title - URL not handled by any extension or service" }, - "@snackbarAlreadyDownloaded": { - "description": "Snackbar - track already exists", + "errorUrlNotRecognizedMessage": "Ce lien n'est pas pris en charge. Vérifiez que l'URL est correcte et qu'une extension compatible est installée.", + "@errorUrlNotRecognizedMessage": { + "description": "Error message - URL not recognized explanation" + }, + "errorUrlFetchFailed": "Impossible de charger le contenu de ce lien. Veuillez réessayer.", + "@errorUrlFetchFailed": { + "description": "Error message - generic URL fetch failure" + }, + "errorMissingExtensionSource": "Impossible de charger {item} : source de l'extension manquante", + "@errorMissingExtensionSource": { + "description": "Error - extension source not available", "placeholders": { - "trackName": { + "item": { "type": "String" } } }, - "editMetadataSelectAll": "Tout", - "@editMetadataSelectAll": { - "description": "Button to select all fields for auto-fill" + "actionPause": "Pause", + "@actionPause": { + "description": "Action button - pause download" }, - "storeEmptyNoExtensions": "Aucune extension disponible", - "@storeEmptyNoExtensions": { - "description": "Message when store has no extensions" + "actionResume": "Resumer", + "@actionResume": { + "description": "Action button - resume download" }, - "optionsUpdateChannelWarning": "La version préliminaire peut contenir des bogues ou des fonctionnalités incomplètes", - "@optionsUpdateChannelWarning": { - "description": "Warning about preview channel" + "actionCancel": "Annuler", + "@actionCancel": { + "description": "Action button - cancel operation" }, - "@collectionPlaylistNameHint": { - "description": "Hint text for playlist name input" + "actionSelectAll": "Tout sélectionner", + "@actionSelectAll": { + "description": "Action button - select all items" }, - "notifLibraryScanComplete": "Analyse de la bibliothèque terminée", - "editMetadataFieldIsrc": "ISRC", - "@editMetadataFieldIsrc": { - "description": "Chip label for ISRC field in auto-fill selector" + "actionDeselect": "Désélectionner", + "@actionDeselect": { + "description": "Action button - deselect all" }, - "@libraryFolderHint": { - "description": "Placeholder when no folder selected" - }, - "homeSearchHintDefault": "Collez une URL valide ou effectuez une recherche...", - "@homeSearchHintDefault": { - "description": "Default placeholder for the main search field on Home" - }, - "extensionsNoExtensionsSubtitle": "Installez les fichiers .spotiflac-ext pour ajouter de nouveaux fournisseurs", - "@extensionsNoExtensionsSubtitle": { - "description": "Empty state subtitle" - }, - "@extensionEnterValue": { - "description": "Hint for editing an extension setting value" - }, - "backupRestoreConfirmTitle": "Restaurer cette sauvegarde ?", - "@backupRestoreConfirmTitle": { - "description": "Confirmation dialog title before restoring a backup" - }, - "@libraryScanSelectFolderFirst": { - "description": "Message when trying to scan without folder" - }, - "@qualityHiResFlac": { - "description": "Quality option - high resolution FLAC" - }, - "aboutSpecialThanks": "Remerciements particuliers", - "@aboutSpecialThanks": { - "description": "Section for special thanks" - }, - "storeInstall": "Installer", - "@storeInstall": { - "description": "Install extension button" - }, - "@collectionWishlistEmptySubtitle": { - "description": "Wishlist empty state subtitle" - }, - "historyFilterAlbums": "Albums", - "extensionCustomUrlHandlingSubtitle": "Cette extension prend en charge les liens provenant de ces sites", - "@extensionCustomUrlHandlingSubtitle": { - "description": "Extension detail subtitle for custom URL handling" - }, - "filenameShowAdvancedTagsDescription": "Activer les balises de formatage pour le remplissage des pistes et les formats de date", - "@aboutReportIssue": { - "description": "Link to report bugs" - }, - "@folderOrganizationByPlaylist": { - "description": "Folder option - playlist folders" - }, - "@dateWeeksAgo": { - "description": "Relative date - weeks ago", + "selectionSelected": "{count} sélectionnés", + "@selectionSelected": { + "description": "Selection count indicator", "placeholders": { "count": { "type": "int" } } }, + "selectionAllSelected": "Toutes les pistes sélectionnées", + "@selectionAllSelected": { + "description": "Status - all items selected" + }, + "selectionSelectToDelete": "Sélectionnez les titres à supprimer", + "@selectionSelectToDelete": { + "description": "Placeholder when nothing selected" + }, + "progressFetchingMetadata": "Récupération des métadonnées... {current}/{total}", + "@progressFetchingMetadata": { + "description": "Progress indicator - loading track info", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "progressReadingCsv": "Lecture du fichier CSV...", + "@progressReadingCsv": { + "description": "Progress indicator - parsing CSV file" + }, + "searchSongs": "Titres", + "@searchSongs": { + "description": "Search result category - songs" + }, + "searchArtists": "Artistes", + "@searchArtists": { + "description": "Search result category - artists" + }, + "searchAlbums": "Albums", + "@searchAlbums": { + "description": "Search result category - albums" + }, + "searchPlaylists": "Playlists", + "@searchPlaylists": { + "description": "Search result category - playlists" + }, + "searchSortTitle": "Trier les résultats", + "@searchSortTitle": { + "description": "Bottom sheet title for search sort options" + }, + "searchSortDefault": "Par défaut", + "@searchSortDefault": { + "description": "Sort option - default API order" + }, + "searchSortTitleAZ": "Titre (A-Z)", + "@searchSortTitleAZ": { + "description": "Sort option - title ascending" + }, + "searchSortTitleZA": "Titre (Z-A)", + "@searchSortTitleZA": { + "description": "Sort option - title descending" + }, + "searchSortArtistAZ": "Artiste (A-Z)", + "@searchSortArtistAZ": { + "description": "Sort option - artist ascending" + }, + "searchSortArtistZA": "Artiste (Z-A)", + "@searchSortArtistZA": { + "description": "Sort option - artist descending" + }, + "searchSortDurationShort": "Durée (la plus courte)", + "@searchSortDurationShort": { + "description": "Sort option - shortest duration first" + }, + "searchSortDurationLong": "Durée (la plus longue)", + "@searchSortDurationLong": { + "description": "Sort option - longest duration first" + }, + "searchSortDateOldest": "Date de sortie (la plus ancienne)", + "@searchSortDateOldest": { + "description": "Sort option - oldest release first" + }, + "searchSortDateNewest": "Date de sortie (la plus récente)", + "@searchSortDateNewest": { + "description": "Sort option - newest release first" + }, + "tooltipPlay": "Lecture", + "@tooltipPlay": { + "description": "Tooltip - play button" + }, + "filenameFormat": "Format des noms de fichiers", + "@filenameFormat": { + "description": "Setting title - filename pattern" + }, + "filenameShowAdvancedTags": "Afficher les balises avancées", + "@filenameShowAdvancedTags": { + "description": "Toggle label for showing advanced filename tags" + }, + "filenameShowAdvancedTagsDescription": "Activer les balises de formatage pour le remplissage des pistes et les formats de date", + "@filenameShowAdvancedTagsDescription": { + "description": "Description for advanced filename tag toggle" + }, + "folderOrganizationNone": "Aucune organisation", + "@folderOrganizationNone": { + "description": "Folder option - flat structure" + }, + "folderOrganizationByPlaylist": "Par playlist", + "@folderOrganizationByPlaylist": { + "description": "Folder option - playlist folders" + }, + "folderOrganizationByPlaylistSubtitle": "Un dossier distinct pour chaque playlist", + "@folderOrganizationByPlaylistSubtitle": { + "description": "Subtitle for playlist folder option" + }, + "folderOrganizationByArtist": "Par artiste", + "@folderOrganizationByArtist": { + "description": "Folder option - artist folders" + }, + "folderOrganizationByAlbum": "Par album", + "@folderOrganizationByAlbum": { + "description": "Folder option - album folders" + }, + "folderOrganizationByArtistAlbum": "Artiste/Album", + "@folderOrganizationByArtistAlbum": { + "description": "Folder option - nested folders" + }, + "folderOrganizationDescription": "Classer les fichiers téléchargés dans des dossiers", + "@folderOrganizationDescription": { + "description": "Folder organization sheet description" + }, + "folderOrganizationNoneSubtitle": "Tous les fichiers du dossier « Téléchargements »", + "@folderOrganizationNoneSubtitle": { + "description": "Subtitle for no organization option" + }, + "folderOrganizationByArtistSubtitle": "Un dossier distinct pour chaque artiste", + "@folderOrganizationByArtistSubtitle": { + "description": "Subtitle for artist folder option" + }, + "folderOrganizationByAlbumSubtitle": "Un dossier distinct pour chaque album", + "@folderOrganizationByAlbumSubtitle": { + "description": "Subtitle for album folder option" + }, + "folderOrganizationByArtistAlbumSubtitle": "Dossiers imbriqués pour les artistes et les albums", + "@folderOrganizationByArtistAlbumSubtitle": { + "description": "Subtitle for nested folder option" + }, + "updateAvailable": "Mise à jour disponible", + "@updateAvailable": { + "description": "Update dialog title" + }, + "updateLater": "Plus tard", + "@updateLater": { + "description": "Update button - dismiss" + }, + "updateStartingDownload": "Début du téléchargement...", + "@updateStartingDownload": { + "description": "Update status - initializing" + }, + "updateDownloadFailed": "Échec du téléchargement", + "@updateDownloadFailed": { + "description": "Update error title" + }, + "updateFailedMessage": "Échec du téléchargement de la mise à jour", + "@updateFailedMessage": { + "description": "Update error message" + }, + "updateNewVersionReady": "Une nouvelle version est disponible", + "@updateNewVersionReady": { + "description": "Update subtitle" + }, + "updateRequiredTitle": "Mise à jour requise", + "@updateRequiredTitle": { + "description": "Title of the mandatory update dialog shown when the installed version is too old" + }, + "updateRequiredNotice": "Cette version a {count} versions de retard et n'est plus prise en charge. Effectuez la mise à jour pour continuer à utiliser l'application.", + "@updateRequiredNotice": { + "description": "Subtitle of the mandatory update dialog; explains why the dialog cannot be dismissed", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "updateCurrent": "Actuel", + "@updateCurrent": { + "description": "Label for current version" + }, + "updateNew": "Nouveau", + "@updateNew": { + "description": "Label for new version" + }, + "updateDownloading": "Téléchargement en cours...", + "@updateDownloading": { + "description": "Update status - downloading" + }, + "updateWhatsNew": "Quoi de neuf ?", + "@updateWhatsNew": { + "description": "Changelog section title" + }, + "updateDownloadInstall": "Télécharger & Installer", + "@updateDownloadInstall": { + "description": "Update button - download and install" + }, + "updateDontRemind": "Ne plus me le rappeler", + "@updateDontRemind": { + "description": "Update button - skip this version" + }, + "providerPriorityTitle": "Priorité accordée aux prestataires", + "@providerPriorityTitle": { + "description": "Provider priority page title" + }, + "providerPriorityDescription": "Faites glisser pour réorganiser les fournisseurs de téléchargement. L'application testera les fournisseurs dans l'ordre indiqué, de haut en bas, lors du téléchargement des morceaux.", + "@providerPriorityDescription": { + "description": "Provider priority page description" + }, + "providerPriorityInfo": "Si un morceau n'est pas disponible chez le premier fournisseur, l'application essaiera automatiquement le suivant.", + "@providerPriorityInfo": { + "description": "Info tip about fallback behavior" + }, + "providerPriorityFallbackExtensionsDescription": "Sélectionnez les extensions de téléchargement installées qui peuvent être utilisées lors du basculement automatique.", + "@providerPriorityFallbackExtensionsDescription": { + "description": "Section description for extension fallback selection" + }, + "providerPriorityFallbackExtensionsHint": "Seules les extensions activées disposant de la fonctionnalité « fournisseur de téléchargement » sont répertoriées ici.", + "@providerPriorityFallbackExtensionsHint": { + "description": "Hint below the extension fallback selection list" + }, + "providerExtension": "Extension", + "@providerExtension": { + "description": "Label for extension-provided providers" + }, + "metadataProviderPriorityTitle": "Priorité des métadonnées", + "@metadataProviderPriorityTitle": { + "description": "Metadata priority page title" + }, + "metadataProviderPriorityDescription": "Faites glisser pour réorganiser les fournisseurs de métadonnées. L'application testera les fournisseurs dans l'ordre de haut en bas lors de la recherche de morceaux et de la récupération des métadonnées.", + "@metadataProviderPriorityDescription": { + "description": "Metadata priority page description" + }, + "metadataProviderPriorityInfo": "Deezer n'impose aucune limite de débit et est recommandé comme service principal. Spotify peut limiter le débit après un certain nombre de requêtes.", + "@metadataProviderPriorityInfo": { + "description": "Info tip about rate limits" + }, + "logTitle": "Journaux", + "@logTitle": { + "description": "Logs screen title" + }, + "logCopied": "Journaux copiés dans le presse-papiers", + "@logCopied": { + "description": "Snackbar - logs copied" + }, + "logSearchHint": "Recherche dans les journaux...", + "@logSearchHint": { + "description": "Log search placeholder" + }, + "logFilterLevel": "Niveau", + "@logFilterLevel": { + "description": "Filter by log level" + }, + "logFilterSection": "Filtre", + "@logFilterSection": { + "description": "Filter section title" + }, + "logShareLogs": "Partager les journaux", + "@logShareLogs": { + "description": "Share button tooltip" + }, + "logClearLogs": "Effacer les journaux", + "@logClearLogs": { + "description": "Clear button tooltip" + }, + "logClearLogsTitle": "Effacer les journaux", + "@logClearLogsTitle": { + "description": "Clear logs dialog title" + }, + "logClearLogsMessage": "Êtes-vous sûr de vouloir effacer tous les journaux ?", + "@logClearLogsMessage": { + "description": "Clear logs confirmation message" + }, + "logFilterBySeverity": "Filtrer les journaux par niveau de gravité", + "@logFilterBySeverity": { + "description": "Filter dialog title" + }, + "logNoLogsYet": "Pas encore de journal", + "@logNoLogsYet": { + "description": "Empty state title" + }, + "logNoLogsYetSubtitle": "Les journaux s'afficheront ici au fur et à mesure que vous utiliserez l'application", + "@logNoLogsYetSubtitle": { + "description": "Empty state subtitle" + }, "logEntriesFiltered": "Entrées ({count} résultats filtrés)", "@logEntriesFiltered": { "description": "Log count with filter active", @@ -3116,173 +1357,6 @@ } } }, - "@lyricsModeDescription": { - "description": "Lyrics mode picker description" - }, - "@setupAppDocumentsFolderSubtitle": { - "description": "Subtitle for documents folder" - }, - "storeAddRepoButton": "Ajouter un dépôt", - "@storeAddRepoButton": { - "description": "Button to submit a new repository URL" - }, - "@collectionLovedEmptyTitle": { - "description": "Loved empty state title" - }, - "aboutReportIssue": "Signaler un problème", - "snackbarFailedToWriteStorage": "Échec de l'écriture sur le support de stockage", - "@snackbarFailedToWriteStorage": { - "description": "Snackbar when writing metadata back to file fails" - }, - "errorInvalidFolderSelected": "Dossier non valide sélectionné", - "allFilesAccessDisabledMessage": "L'accès à tous les fichiers est désactivé. L'application disposera d'un accès limité au stockage.", - "@allFilesAccessDisabledMessage": { - "description": "Snackbar message when user disables all files access" - }, - "downloadMusixmatchLanguageCode": "Code de langue", - "@downloadMusixmatchLanguageCode": { - "description": "Label for Musixmatch language input field" - }, - "dialogUnsavedChanges": "Vous avez des modifications non enregistrées. Voulez-vous les ignorer ?", - "setupChooseFromFiles": "Sélectionnez un fichier", - "@setupChooseFromFiles": { - "description": "iOS file picker option" - }, - "@collectionFavoriteArtistsEmptySubtitle": { - "description": "Favorite artists empty state subtitle" - }, - "downloadLossy320FormatDesc": "Choisissez le format de sortie pour les téléchargements avec perte à 320 kbps. Le flux d'origine sera converti au format que vous aurez sélectionné lorsque cela sera nécessaire.", - "@backupRestoreConfirmButton": { - "description": "Confirm button to proceed with restore" - }, - "@queueEmptyAlbumsSubtitle": { - "description": "Empty state subtitle for album downloads" - }, - "collectionRemovedFromWishlist": "« {trackName} » a été supprimé de la liste de souhaits", - "@collectionRemovedFromWishlist": { - "description": "Snackbar after removing track from wishlist", - "placeholders": { - "trackName": { - "type": "String" - } - } - }, - "extensionsInstalledSuccess": "L'extension a été installée avec succès", - "progressReadingCsv": "Lecture du fichier CSV...", - "@progressReadingCsv": { - "description": "Progress indicator - parsing CSV file" - }, - "artistReleases": "Sorties", - "@artistReleases": { - "description": "Section header for all artist releases" - }, - "extensionVerificationBrowserTitle": "Navigateur de vérification", - "@optionsDefaultSearchTabSubtitle": { - "description": "Subtitle for the preferred default search tab setting" - }, - "optionsArtistTagModeJoinedSubtitle": "Indiquez une seule valeur ARTIST, par exemple « Artiste A, Artiste B », pour garantir une compatibilité maximale avec les lecteurs.", - "downloadLossy320": "Compression avec perte à 320 kbps", - "@downloadLossy320": { - "description": "Quality option label for lossy 320kbps" - }, - "queueFlacAction": "File d'attente FLAC", - "@queueFlacAction": { - "description": "Action/button label for queueing FLAC redownloads for local tracks" - }, - "@setupDownloadLocationIosMessage": { - "description": "iOS-specific folder info" - }, - "trackConvertOriginal": "Original", - "sectionLyricsProviderOptions": "Options du fournisseur", - "nowPlayingTitle": "En cours de lecture", - "@nowPlayingTitle": { - "description": "Title for the now playing screen" - }, - "@extensionHealthChecksConfigured": { - "description": "Extension service health check count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@cacheClearAll": { - "description": "Button label to clear all caches" - }, - "a11yDeselectTrack": "Désélectionner la piste", - "@a11yDeselectTrack": { - "description": "Accessibility label for deselecting a track" - }, - "@lyricsProvidersInfoText": { - "description": "Info tip on lyrics provider priority page" - }, - "queueEmptyHistory": "Aucun historique de téléchargement", - "dialogClear": "Effacer", - "@dialogClear": { - "description": "Dialog button - clear items" - }, - "allFilesAccessDescription": "Activez cette option si vous rencontrez des erreurs d'écriture lors de l'enregistrement dans des dossiers personnalisés. À partir d'Android 13, l'accès à certains répertoires est restreint par défaut.", - "@allFilesAccessDescription": { - "description": "Description explaining when to enable all files access" - }, - "trackConvertConfirmTitle": "Confirmer la conversion", - "storeCategoryLyrics": "Paroles", - "@storeCategoryLyrics": { - "description": "Store extension category - lyrics" - }, - "@lyricsProvidersDescription": { - "description": "Description on the lyrics provider priority page" - }, - "tooltipLoveAll": "Tout aimer", - "downloadDirectory": "Répertoire de téléchargement", - "@downloadDirectory": { - "description": "Setting - download folder" - }, - "@tutorialExtensionsTip2": { - "description": "Tutorial extensions tip 2" - }, - "libraryFolder": "Dossier de bibliothèque", - "@metadataProviderPriorityTitle": { - "description": "Metadata priority page title" - }, - "@cleanupOrphanedDownloadsResult": { - "description": "Snackbar after orphan cleanup", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "cacheExploreFeedDesc": "Contenu de l'onglet « Explorer » (nouvelles sorties, tendances). Se mettra à jour lors de votre prochaine visite.", - "@cacheExploreFeedDesc": { - "description": "Description of what explore feed cache contains" - }, - "a11yOpenTrackByArtist": "Écouter le morceau {trackName} de {artistName}", - "@a11yOpenTrackByArtist": { - "description": "Accessibility label for opening a track item", - "placeholders": { - "trackName": { - "type": "String" - }, - "artistName": { - "type": "String" - } - } - }, - "announcementUnableToOpenLink": "Impossible d'ouvrir le lien. Veuillez réessayer.", - "libraryFilterSortAlbumDesc": "Album (Z-A)", - "@libraryFilterSortAlbumDesc": { - "description": "Sort option - album descending" - }, - "trackConvertBitrate": "Débit binaire", - "@trackConvertBitrate": { - "description": "Label for bitrate selection" - }, - "audioAnalysisFileSize": "Taille", - "extensionHealthServiceOnline": "Service en ligne", - "@extensionHealthServiceOnline": { - "description": "Tooltip for online extension service" - }, "logEntries": "Entrées ({count})", "@logEntries": { "description": "Total log count", @@ -3292,846 +1366,536 @@ } } }, - "trackConvertConfirmMessage": "Convertir du format {sourceFormat} au format {targetFormat} avec un débit binaire de {bitrate} ?\n\nLe fichier d'origine sera supprimé après la conversion.", - "@trackConvertConfirmMessage": { - "description": "Confirmation dialog message", - "placeholders": { - "sourceFormat": { - "type": "String" - }, - "targetFormat": { - "type": "String" - }, - "bitrate": { - "type": "String" - } - } + "channelStable": "Stable", + "@channelStable": { + "description": "Update channel - stable releases" }, - "@optionsArtistTagModeSplitVorbisSubtitle": { - "description": "Subtitle for split Vorbis artist tag mode" + "channelPreview": "Aperçu", + "@channelPreview": { + "description": "Update channel - beta/preview releases" }, - "folderOrganizationByAlbum": "Par album", - "@folderOrganizationByAlbum": { - "description": "Folder option - album folders" + "sectionSearchSource": "Rechercher dans la source", + "@sectionSearchSource": { + "description": "Settings section header" }, - "libraryPlayback": "Lecture", - "@storeFilterAll": { - "description": "Repo filter - all extensions" + "sectionDownload": "Télécharger", + "@sectionDownload": { + "description": "Settings section header" }, - "aboutApp": "Application", - "@aboutApp": { - "description": "Section for app info" + "sectionPerformance": "Performances", + "@sectionPerformance": { + "description": "Settings section header" }, - "optionsReplayGainSubtitleOff": "Désactivé : aucune balise de normalisation du volume", - "@optionsReplayGainSubtitleOff": { - "description": "Subtitle when ReplayGain is disabled" + "sectionApp": "Application", + "@sectionApp": { + "description": "Settings section header" }, - "@storeRepoDialogTitle": { - "description": "Title of the change/remove repository dialog" + "sectionData": "Données", + "@sectionData": { + "description": "Settings section header" }, - "settingsLyricsSubtitle": "Intégration, mode, fournisseurs, options linguistiques", - "@settingsLyricsSubtitle": { - "description": "Subtitle for lyrics settings" + "sectionDebug": "Débogage", + "@sectionDebug": { + "description": "Settings section header" }, - "logIssueIspBlockingLabel": "BLOCAGE PAR LE FAI DÉTECTÉ", - "storeFilterIntegration": "Intégration", - "@storeFilterIntegration": { - "description": "Repo filter - integrations" + "sectionService": "Service", + "@sectionService": { + "description": "Settings section header" }, - "@lyricsProvidersAtLeastOne": { - "description": "Snackbar when user tries to disable the last enabled provider" - }, - "@appearanceHistoryViewGrid": { - "description": "Grid layout option" - }, - "trackDownloaded": "Téléchargé", - "extensionVerificationHelpMessageManual": "SpotiFLAC Mobile n'a pas pu ouvrir automatiquement le navigateur. Ouvrez ce lien dans votre navigateur ou copiez-le manuellement.", - "setupDownloadLocationIosMessage": "Sous iOS, les fichiers téléchargés sont enregistrés dans le dossier « Documents » de l'application. Vous pouvez y accéder via l'application Fichiers.", - "optionsArtistTagModeDescription": "Choisissez comment les noms de plusieurs artistes doivent apparaître dans les balises intégrées.", - "@optionsArtistTagModeDescription": { - "description": "Bottom-sheet description for artist tag mode setting" - }, - "@queueRetryAllFailed": { - "description": "Button to retry every failed download in the queue", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@trackConvertDitherTriangularHp": { - "description": "Lossless conversion high-pass triangular dither option" - }, - "@extensionVerificationCopyLink": { - "description": "Button to copy the extension verification URL" - }, - "searchSongs": "Titres", - "@searchSongs": { - "description": "Search result category - songs" - }, - "@appearanceHistoryView": { - "description": "Layout style for history" + "sectionAudioQuality": "Qualité audio", + "@sectionAudioQuality": { + "description": "Settings section header" }, "sectionFileSettings": "Paramètres du fichier", "@sectionFileSettings": { "description": "Settings section header" }, - "@cancelDownloadTitle": { - "description": "Dialog title when confirming cancellation of an active download" + "sectionLyrics": "Paroles", + "@sectionLyrics": { + "description": "Settings section header" }, - "@cacheLibraryCover": { - "description": "Cache item title for local library cover art images" + "lyricsMode": "Mode Paroles", + "@lyricsMode": { + "description": "Setting - how to save lyrics" }, - "audioAnalysisSpectralCutoff": "Limite spectrale", - "dialogDelete": "Supprimer", - "@dialogDelete": { - "description": "Dialog button - delete item" + "lyricsModeDescription": "Choisissez comment les paroles sont enregistrées avec vos téléchargements", + "@lyricsModeDescription": { + "description": "Lyrics mode picker description" }, - "tutorialLibraryDesc": "Downloaded and locally scanned music is organized in your Library.", - "@tutorialLibraryDesc": { - "description": "Tutorial library page description" + "lyricsModeEmbed": "Intégrer dans un fichier", + "@lyricsModeEmbed": { + "description": "Lyrics mode option - embed in audio file" }, - "@queueDownloadSpeedStatus": { - "description": "Queue status while downloading with speed", - "placeholders": { - "speed": { - "type": "String" - } - } + "lyricsModeEmbedSubtitle": "Paroles enregistrées dans les métadonnées FLAC", + "@lyricsModeEmbedSubtitle": { + "description": "Subtitle for embed option" }, - "@extensionsHomeFeedOffSubtitle": { - "description": "Extensions page - subtitle for off home feed option" - }, - "cacheCleanupResult": "Nettoyage terminé : {downloadCount} téléchargements orphelins, {libraryCount} entrées de bibliothèque manquantes", - "@cacheCleanupResult": { - "description": "Snackbar after unused data cleanup", - "placeholders": { - "downloadCount": { - "type": "int" - }, - "libraryCount": { - "type": "int" - } - } - }, - "trackConvertLosslessHint": "Conversion sans perte — aucune perte de qualité", - "@trackConvertLosslessHint": { - "description": "Hint shown when converting between lossless formats" - }, - "collectionRenamePlaylist": "Renommer la playlist", - "@collectionRenamePlaylist": { - "description": "Action to rename playlist" - }, - "@libraryFilterTitle": { - "description": "Filter bottom sheet title" - }, - "@storageModeAppFolder": { - "description": "Storage mode option - app-managed folder" - }, - "logTotalErrors": "Nombre total d'erreurs : {count}", - "@logTotalErrors": { - "description": "Total error count in log issue analysis", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@setupStorageRequired": { - "description": "Title when storage permission needed" - }, - "@snackbarMetadataProviderSaved": { - "description": "Snackbar - metadata provider order saved" - }, - "@selectionBatchConvertConfirmTitle": { - "description": "Confirmation dialog title for batch conversion" - }, - "extensionsHomeFeedAutoSubtitle": "Sélectionnez automatiquement la meilleure option disponible", - "@extensionsHomeFeedAutoSubtitle": { - "description": "Extensions page - subtitle for auto home feed option" - }, - "setupLanguageDescription": "Sélectionnez la langue de votre choix pour l'application. Vous pourrez la modifier ultérieurement dans les Paramètres.", - "settingsBackupSubtitle": "Transférer votre bibliothèque, votre historique et vos paramètres vers un nouvel appareil", - "@settingsBackupSubtitle": { - "description": "Subtitle for backup and restore settings item" - }, - "recentTypeArtist": "Artiste", - "@recentTypeArtist": { - "description": "Recent access item type - artist" - }, - "collectionPlaylistEmptySubtitle": "Appuyez longuement sur le bouton « + » sur n'importe quel morceau pour l'ajouter ici", - "artistCompilations": "Compilations", - "@artistCompilations": { - "description": "Section header for compilations" - }, - "snackbarFolderPickerFailed": "Impossible d'ouvrir le sélecteur de dossiers : {error}", - "@snackbarFolderPickerFailed": { - "description": "Snackbar shown when folder picker fails to open", - "placeholders": { - "error": { - "type": "String" - } - } - }, - "@optionsDetailedLoggingOn": { - "description": "Status when logging enabled" - }, - "settingsSaveDownloadHistory": "Enregistrer l'historique des téléchargements", - "@settingsSaveDownloadHistory": { - "description": "Settings switch title for storing completed downloads in history" - }, - "@storeCategoryIntegration": { - "description": "Store extension category - integration" - }, - "a11yOpenItemCount": "Ouvrir {title}, {count} {count, plural, =1{item} other{éléments}}", - "@a11yOpenItemCount": { - "description": "Accessibility label for opening a grouped item with count", - "placeholders": { - "title": { - "type": "String" - }, - "count": { - "type": "int" - } - } - }, - "trackFileInfo": "Informations sur le fichier", - "@trackFileInfo": { - "description": "Tab title - file information" - }, - "libraryFilterMetadataMissingAlbumArtist": "Artiste d'album manquant", - "audioAnalysisNoClipping": "Pas de coupure", - "tutorialSettingsDesc": "Fine-tune downloads, playback, Library behavior, appearance, and storage.", - "@tutorialSettingsDesc": { - "description": "Tutorial settings page description" + "lyricsModeExternal": "Fichier .lrc externe", + "@lyricsModeExternal": { + "description": "Lyrics mode option - separate LRC file" }, "lyricsModeExternalSubtitle": "Fichier .lrc distinct pour les lecteurs tels que Samsung Music", "@lyricsModeExternalSubtitle": { "description": "Subtitle for external option" }, - "trackLoadLyrics": "Charger les paroles", - "@trackLoadLyrics": { - "description": "Action - fetch lyrics" + "lyricsModeBoth": "Les deux", + "@lyricsModeBoth": { + "description": "Lyrics mode option - embed and external" }, - "extensionVerificationHelpTitleWaiting": "La vérification est toujours en attente", - "@extensionVerificationHelpTitleWaiting": { - "description": "Dialog title when verification is taking longer than expected" + "lyricsModeBothSubtitle": "Intégrer et enregistrer le fichier .lrc", + "@lyricsModeBothSubtitle": { + "description": "Subtitle for both option" }, - "libraryFilterReset": "Réinitialiser", - "@libraryFilterReset": { - "description": "Reset all filters button" - }, - "@downloadAlbumArtistMetadataFull": { - "description": "Status label when album-artist folder filtering uses full metadata" - }, - "storeTitle": "Répertoire des extensions", - "@storeTitle": { - "description": "Repo screen title" - }, - "libraryCleared": "Bibliothèque vidée", - "@libraryCleared": { - "description": "Snackbar after clearing library" - }, - "queueDownloadCompleted": "Téléchargement terminé", - "@queueDownloadCompleted": { - "description": "Accessibility label for completed download state in queue" - }, - "libraryTitle": "Bibliothèque locale", - "@libraryTitle": { - "description": "Library settings page title" - }, - "queueAlbumCount": "{count, plural, =1{1 album} other{{count} albums}}", - "@queueAlbumCount": { - "description": "Album count label with plural support", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "libraryClearConfirmTitle": "Vider la bibliothèque", - "@backupExportSectionTitle": { - "description": "Section title for the export/backup card" - }, - "dialogClearAll": "Tout effacer", - "@dialogClearAll": { - "description": "Dialog title - clear all items" - }, - "tutorialExtensionsDesc": "Extensions add search, download, metadata, lyrics, and other integrations.", - "@tutorialExtensionsDesc": { - "description": "Tutorial extensions page description" - }, - "libraryExternalPlayer": "Lecteur externe", - "@libraryExternalPlayer": { - "description": "Setting option to use an external music player" - }, - "editMetadataFieldGenre": "Genre", - "@tutorialLibraryTitle": { - "description": "Tutorial library page title" - }, - "folderOrganizationByPlaylist": "Par playlist", - "queueTrackCount": "{count, plural, =1{1 titre} other{{count} titres}}", - "@searchSortTitle": { - "description": "Bottom sheet title for search sort options" - }, - "editMetadataSelectNone": "Aucun", - "@historyFilterSingles": { - "description": "Filter chip - show singles only" - }, - "@setupLanguageTitle": { - "description": "Title for the language selection step in setup" - }, - "trackSaveCoverArt": "Enregistrer la pochette", - "@trackSaveCoverArt": { - "description": "Menu action - save album cover art as file" - }, - "@downloadAlbumFolderStructure": { - "description": "Setting - album folder organization" - }, - "lyricsProvidersAtLeastOne": "Au moins un fournisseur doit rester activé", - "@notifDownloadCompleteCount": { - "description": "Notification title when download is complete, with count", - "placeholders": { - "completed": { - "type": "int" - }, - "total": { - "type": "int" - } - } - }, - "setupUseDefault": "Utiliser les paramètres par défaut", - "@setupUseDefault": { - "description": "Button to use default folder" - }, - "logNoLogsYetSubtitle": "Les journaux s'afficheront ici au fur et à mesure que vous utiliserez l'application", - "@logNoLogsYetSubtitle": { - "description": "Empty state subtitle" - }, - "@dateToday": { - "description": "Relative date - today" - }, - "trackSaveLyricsProgress": "Enregistrement des paroles...", - "@trackSaveLyricsProgress": { - "description": "Snackbar while saving lyrics to file" - }, - "trackCoverSaved": "La pochette a été enregistrée sous le nom {fileName}", - "@trackCoverSaved": { - "description": "Snackbar after cover art saved", - "placeholders": { - "fileName": { - "type": "String" - } - } - }, - "trackReEnrichFieldLyrics": "Paroles", - "@audioAnalysisRescan": { - "description": "Tooltip/label for the button that re-runs the audio analysis, discarding cached results" - }, - "@downloadNeteaseIncludeRomanizationEnabled": { - "description": "Subtitle when Netease romanization is on" - }, - "dialogDisableAndClear": "Désactiver et effacer", - "extensionHealthChecksConfigured": "{count} {count, plural, =1{vérification} other{vérifications}} configurées", - "cleanupOrphanedDownloadsSubtitle": "Supprimez les entrées de l'historique correspondant aux fichiers qui n'existent plus", - "@notifLibraryScanProgressWithTotal": { - "description": "Notification body for library scan progress when total is known", - "placeholders": { - "scanned": { - "type": "int" - }, - "total": { - "type": "int" - }, - "percentage": { - "type": "int" - } - } - }, - "@extensionDetailsTags": { - "description": "Section title for extension tags" - }, - "@albumFolderAlbumOnlySubtitle": { - "description": "Folder structure example" - }, - "@audioAnalysisAnalyzing": { - "description": "Loading text while analyzing audio" - }, - "@settingsDonate": { - "description": "Settings menu item - donate page" - }, - "@collectionPlaylistNameRequired": { - "description": "Validation error for empty playlist name" - }, - "@backupImportSectionDescription": { - "description": "Description for the restore action" - }, - "storeFilterLyrics": "Paroles", - "libraryAutoScan": "Analyse automatique", - "@libraryAutoScan": { - "description": "Setting for automatic library scanning" - }, - "safMigrationMessage1": "SpotiFLAC utilise désormais le framework d'accès au stockage Android (SAF) pour les téléchargements. Cela permet de résoudre les erreurs « autorisation refusée » sur Android 10 et versions ultérieures.", - "@safMigrationMessage1": { - "description": "First paragraph of SAF migration dialog" - }, - "setupStorageRequired": "Autorisation de stockage requise", - "@notifLibraryScanErrors": { - "description": "Library scan complete suffix - error count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "appearanceHistoryViewGrid": "Grille", - "trackConvertConverting": "Conversion audio en cours...", - "@trackConvertConverting": { - "description": "Snackbar while converting" - }, - "@setupUseDefaultFolder": { - "description": "Dialog title for default folder" - }, - "optionsArtistTagModeSplitVorbisSubtitle": "Créez une balise « artiste » par artiste pour les fichiers FLAC et Opus ; les fichiers MP3 et M4A restent regroupés.", - "snackbarPlayingNext": "Prochainement", - "@snackbarPlayingNext": { - "description": "Snackbar when a track is inserted as the next queue item" - }, - "optionsDefaultSearchTabSubtitle": "Choisissez l'onglet qui s'ouvre en premier pour les nouveaux résultats de recherche.", - "@editMetadataAutoFillFetch": { - "description": "Button label to fetch online metadata and fill selected fields" - }, - "tutorialSearchDesc": "Search with your selected extension or paste a supported music link.", - "@sectionService": { + "sectionColor": "Couleur", + "@sectionColor": { "description": "Settings section header" }, - "notifUpdateProgress": "{received} / {total} Mo • {percentage}%", - "@discographyDownloadSelected": { - "description": "Button - download selected albums" + "sectionTheme": "Thème", + "@sectionTheme": { + "description": "Settings section header" }, - "cacheClearAllConfirmMessage": "Cette opération effacera toutes les catégories mises en cache sur cette page. Les fichiers musicaux téléchargés ne seront pas supprimés.", - "@cacheClearAllConfirmMessage": { - "description": "Dialog message before clearing all caches" + "sectionLayout": "Mise en page", + "@sectionLayout": { + "description": "Settings section header" }, - "extensionsHomeFeedProvider": "Fournisseur de flux RSS", - "@extensionsHomeFeedProvider": { - "description": "Extensions page - label for home feed provider selector" + "sectionLanguage": "Langue", + "@sectionLanguage": { + "description": "Settings section header for language" }, - "@cacheExploreFeed": { - "description": "Cache item title for explore home feed cache" + "appearanceLanguage": "Langue de l'application", + "@appearanceLanguage": { + "description": "Language setting title" }, - "@audioAnalysisDynamicRange": { - "description": "Dynamic range metric label" + "settingsAppearanceSubtitle": "Thème, couleurs, affichage", + "@settingsAppearanceSubtitle": { + "description": "Appearance settings description" }, - "unknownAlbum": "Album inconnu", - "trackCoverCurrent": "Pochette actuelle", - "downloadSongLinkRegionDesc": "Région utilisée lors de la résolution des liens vers les morceaux via SongLink. Sélectionnez le pays dans lequel vos services de streaming sont disponibles.", - "downloadPrimaryArtistOnlyOff": "Primaire uniquement : Désactivé", - "dialogDone": "C'est fait", - "@dialogDone": { - "description": "Dialog button - action completed" + "settingsDownloadSubtitle": "Service, qualité, solution de secours", + "@settingsDownloadSubtitle": { + "description": "Download settings description" }, - "storeRepoUrlLabel": "URL du dépôt", - "downloadSelectServiceToEnable": "Choisissez un fournisseur proposant des options de qualité pour activer cette fonctionnalité", - "@logIssueRateLimitedSuggestion": { - "description": "Diagnostic badge suggestion for rate limiting" + "settingsExtensionsSubtitle": "Gérez les fournisseurs de téléchargement", + "@settingsExtensionsSubtitle": { + "description": "Extensions settings description" }, - "libraryScanProgress": "{progress} % des {total} fichiers", - "@libraryScanProgress": { - "description": "Scan progress display", + "settingsLogsSubtitle": "Consulter les journaux de l'application pour le débogage", + "@settingsLogsSubtitle": { + "description": "Logs settings description" + }, + "loadingSharedLink": "Chargement du lien partagé...", + "@loadingSharedLink": { + "description": "Status when opening shared URL" + }, + "pressBackAgainToExit": "Appuyez de nouveau sur retour pour quitter", + "@pressBackAgainToExit": { + "description": "Exit confirmation message" + }, + "downloadAllCount": "Tout télécharger ({count})", + "@downloadAllCount": { + "description": "Download all button with count", "placeholders": { - "progress": { - "type": "String" - }, - "total": { + "count": { "type": "int" } } }, - "collectionLovedEmptyTitle": "Le dossier « Favoris » est vide", - "tutorialExtensionsTitle": "Extensions", - "@tutorialExtensionsTitle": { - "description": "Tutorial extensions page title" - }, - "searchSortDurationShort": "Durée (la plus courte)", - "@searchSortDurationShort": { - "description": "Sort option - shortest duration first" + "tracksCount": "{count, plural, =1{1 titre} other{{count} titres}}", + "@tracksCount": { + "description": "Track count display", + "placeholders": { + "count": { + "type": "int" + } + } }, "trackCopyFilePath": "Copier le chemin d'accès au fichier", "@trackCopyFilePath": { "description": "Action - copy file path" }, - "albumFolderArtistAlbumFlatSubtitle": "Artiste/Album/ et Artiste/titre.flac", - "@trackConvertResampler": { - "description": "Section label for lossless conversion resampler options" + "trackRemoveFromDevice": "Supprimer de l'appareil", + "@trackRemoveFromDevice": { + "description": "Action - delete downloaded file" }, - "editMetadataFieldTrackNum": "Piste n°", - "@editMetadataFieldTrackNum": { - "description": "Chip label for track number field in auto-fill selector" + "trackLoadLyrics": "Charger les paroles", + "@trackLoadLyrics": { + "description": "Action - fetch lyrics" }, - "snackbarFailedToUpdate": "Échec de la mise à jour de l'extension", - "@snackbarFailedToUpdate": { - "description": "Snackbar - extension update error" + "trackMetadata": "Métadonnées", + "@trackMetadata": { + "description": "Tab title - track metadata" }, - "notifAlreadyInLibrary": "Déjà dans la bibliothèque", - "@notifAlreadyInLibrary": { - "description": "Notification title when track is already in library" + "trackFileInfo": "Informations sur le fichier", + "@trackFileInfo": { + "description": "Tab title - file information" }, - "collectionPlaylistNameHint": "Nom de la playlist", - "extensionVerificationCopyLink": "Copier le lien", - "@replayGainBatchAnalyzing": { - "description": "Progress dialog title while batch scanning ReplayGain" + "trackLyrics": "Paroles", + "@trackLyrics": { + "description": "Tab title - lyrics" + }, + "trackFileNotFound": "Fichier introuvable", + "@trackFileNotFound": { + "description": "Error - file doesn't exist" + }, + "trackOpenInDeezer": "Ouvrir dans Deezer", + "@trackOpenInDeezer": { + "description": "Action - open track in Deezer app" + }, + "trackOpenInSpotify": "Ouvrir dans Spotify", + "@trackOpenInSpotify": { + "description": "Action - open track in Spotify app" + }, + "trackTrackName": "Nom de la piste", + "@trackTrackName": { + "description": "Metadata label - track title" + }, + "trackArtist": "Artiste", + "@trackArtist": { + "description": "Metadata label - artist name" + }, + "trackAlbumArtist": "Artiste de l'album", + "@trackAlbumArtist": { + "description": "Metadata label - album artist" + }, + "trackAlbum": "Album", + "@trackAlbum": { + "description": "Metadata label - album name" + }, + "trackTrackNumber": "Numéro de piste", + "@trackTrackNumber": { + "description": "Metadata label - track number" + }, + "trackDiscNumber": "Numéro de disque", + "@trackDiscNumber": { + "description": "Metadata label - disc number" + }, + "trackDuration": "Durée", + "@trackDuration": { + "description": "Metadata label - track length" + }, + "trackAudioQuality": "Qualité audio", + "@trackAudioQuality": { + "description": "Metadata label - audio quality" + }, + "libraryQualityLabelFileFormat": "File format", + "@libraryQualityLabelFileFormat": { + "description": "Library audio quality label mode that shows the detected file format" + }, + "trackReleaseDate": "Date de sortie", + "@trackReleaseDate": { + "description": "Metadata label - release date" + }, + "trackGenre": "Genre", + "@trackGenre": { + "description": "Metadata label - music genre" + }, + "trackLabel": "Label", + "@trackLabel": { + "description": "Metadata label - record label" + }, + "trackCopyright": "Droits d'auteur", + "@trackCopyright": { + "description": "Metadata label - copyright information" + }, + "trackDownloaded": "Téléchargé", + "@trackDownloaded": { + "description": "Metadata label - download date" + }, + "trackCopyLyrics": "Copier les paroles", + "@trackCopyLyrics": { + "description": "Action - copy lyrics to clipboard" + }, + "trackLyricsSource": "Source : {source}", + "@trackLyricsSource": { + "description": "Label showing the lyrics source/provider", + "placeholders": { + "source": { + "type": "String" + } + } + }, + "trackLyricsNotAvailable": "Les paroles de ce morceau ne sont pas disponibles", + "@trackLyricsNotAvailable": { + "description": "Message when lyrics not found" + }, + "trackLyricsNotInFile": "Aucune parole n'a été trouvée dans ce fichier", + "@trackLyricsNotInFile": { + "description": "Message when no embedded lyrics in audio file" + }, + "trackFetchOnlineLyrics": "Télécharger depuis Internet", + "@trackFetchOnlineLyrics": { + "description": "Action - fetch lyrics from online providers" + }, + "trackLyricsTimeout": "La requête a expiré. Veuillez réessayer plus tard.", + "@trackLyricsTimeout": { + "description": "Message when lyrics request times out" + }, + "trackLyricsLoadFailed": "Impossible de charger les paroles", + "@trackLyricsLoadFailed": { + "description": "Message when lyrics loading fails" + }, + "trackEmbedLyrics": "Intégrer les paroles", + "@trackEmbedLyrics": { + "description": "Action - embed lyrics into audio file" + }, + "trackLyricsEmbedded": "Les paroles ont été intégrées avec succès", + "@trackLyricsEmbedded": { + "description": "Snackbar - lyrics saved to file" + }, + "trackInstrumental": "Morceau instrumental", + "@trackInstrumental": { + "description": "Message when track is instrumental (no lyrics)" + }, + "trackCopiedToClipboard": "Copié dans le presse-papiers", + "@trackCopiedToClipboard": { + "description": "Snackbar - content copied" + }, + "trackDeleteConfirmTitle": "Supprimer de l'appareil ?", + "@trackDeleteConfirmTitle": { + "description": "Delete confirmation title" + }, + "trackDeleteConfirmMessage": "Cela supprimera définitivement le fichier téléchargé et l'effacera de votre historique.", + "@trackDeleteConfirmMessage": { + "description": "Delete confirmation message" + }, + "dateToday": "Aujourd'hui", + "@dateToday": { + "description": "Relative date - today" + }, + "dateYesterday": "Hier", + "@dateYesterday": { + "description": "Relative date - yesterday" + }, + "dateDaysAgo": "Il y a {count} jours", + "@dateDaysAgo": { + "description": "Relative date - days ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dateWeeksAgo": "Il y a {count} semaines", + "@dateWeeksAgo": { + "description": "Relative date - weeks ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dateMonthsAgo": "Il y a {count} mois", + "@dateMonthsAgo": { + "description": "Relative date - months ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "storeFilterAll": "Tout", + "@storeFilterAll": { + "description": "Repo filter - all extensions" + }, + "storeFilterMetadata": "Métadonnées", + "@storeFilterMetadata": { + "description": "Repo filter - metadata providers" + }, + "storeFilterDownload": "Télécharger", + "@storeFilterDownload": { + "description": "Repo filter - download providers" + }, + "storeFilterUtility": "Utilitaire", + "@storeFilterUtility": { + "description": "Repo filter - utility extensions" + }, + "storeFilterLyrics": "Paroles", + "@storeFilterLyrics": { + "description": "Repo filter - lyrics providers" + }, + "storeFilterIntegration": "Intégration", + "@storeFilterIntegration": { + "description": "Repo filter - integrations" + }, + "storeClearFilters": "Effacer les filtres", + "@storeClearFilters": { + "description": "Button to clear all filters" + }, + "storeAddRepoTitle": "Ajouter un dépôt d'extensions", + "@storeAddRepoTitle": { + "description": "Store setup screen - heading when no repo is configured" + }, + "storeAddRepoDescription": "Saisissez l'URL d'un dépôt GitHub contenant un fichier registry.json pour parcourir et installer des extensions.", + "@storeAddRepoDescription": { + "description": "Store setup screen - explanatory text" + }, + "storeRepoUrlLabel": "URL du dépôt", + "@storeRepoUrlLabel": { + "description": "Label for the repository URL input field" + }, + "storeRepoUrlHint": "https://github.com/user/repo", + "@storeRepoUrlHint": { + "description": "Hint/placeholder for the repository URL input field" + }, + "storeAddRepoButton": "Ajouter un dépôt", + "@storeAddRepoButton": { + "description": "Button to submit a new repository URL" + }, + "storeChangeRepoTooltip": "Changer de dépôt", + "@storeChangeRepoTooltip": { + "description": "Tooltip for the change-repository icon button in the app bar" + }, + "storeRepoDialogTitle": "Répertoire des extensions", + "@storeRepoDialogTitle": { + "description": "Title of the change/remove repository dialog" + }, + "storeRepoDialogCurrent": "Dépôt actuel :", + "@storeRepoDialogCurrent": { + "description": "Label shown above the current repository URL in the dialog" + }, + "storeNewRepoUrlLabel": "Nouvelle URL du dépôt", + "@storeNewRepoUrlLabel": { + "description": "Label for the new repository URL field inside the dialog" + }, + "storeLoadError": "Échec du chargement du dépôt", + "@storeLoadError": { + "description": "Error heading when the store cannot be loaded" + }, + "storeEmptyNoExtensions": "Aucune extension disponible", + "@storeEmptyNoExtensions": { + "description": "Message when store has no extensions" + }, + "storeEmptyNoResults": "Aucune extension trouvée", + "@storeEmptyNoResults": { + "description": "Message when search/filter returns no results" }, - "setupLanguageTitle": "Choisir la langue", "extensionId": "Identifiant", "@extensionId": { "description": "Extension detail - unique ID" }, - "regionCountryBR": "Brésil", - "@updateNewVersionReady": { - "description": "Update subtitle" + "extensionError": "Erreur", + "@extensionError": { + "description": "Extension detail - error message" }, - "@queueDownloadedFileMissing": { - "description": "Accessibility label when a downloaded file is missing from disk" - }, - "@lyricsMode": { - "description": "Setting - how to save lyrics" - }, - "@settingsAppearance": { - "description": "Settings section - visual customization" - }, - "@setupStorageAccessMessageAndroid11": { - "description": "Android 11+ specific explanation" - }, - "@tutorialLibraryTip3": { - "description": "Tutorial library tip 3" - }, - "@downloadAppleQqMultiPersonDisabled": { - "description": "Subtitle when multi-person lyrics is off" - }, - "libraryStorageAccessMessage": "SpotiFLAC a besoin d'un accès au stockage pour analyser votre bibliothèque musicale. Veuillez lui accorder l'autorisation dans les paramètres.", - "@libraryStorageAccessMessage": { - "description": "Dialog message for storage permission" - }, - "@tutorialLibraryTip1": { - "description": "Tutorial library tip 1" - }, - "dialogRemoveExtensionMessage": "Êtes-vous sûr de vouloir supprimer cette extension ? Cette action ne peut pas être annulée.", - "@dialogRemoveExtensionMessage": { - "description": "Dialog message - uninstall confirmation" - }, - "setupDownloadLocationTitle": "Emplacement de téléchargement", - "@setupDownloadLocationTitle": { - "description": "Download location dialog title" - }, - "downloadNetworkCompatibilityModeEnabled": "Points de terminaison HTTP hérités autorisés ; la vérification TLS reste active", - "@downloadNetworkCompatibilityModeEnabled": { - "description": "Subtitle when network compatibility mode is on" - }, - "@audioAnalysisBitDepth": { - "description": "Bit depth metric label" - }, - "trackOptionAddToLoved": "Ajouter aux Favoris", - "@trackOptionAddToLoved": { - "description": "Bottom sheet action label - add track to loved folder" - }, - "cacheAppDirectory": "Répertoire de cache de l'application", - "@cacheAppDirectory": { - "description": "Cache item title for app cache directory" - }, - "lyricsProviderMusixmatchDesc": "La plus grande base de données de paroles (multilingue)", - "@navStore": { - "description": "Bottom navigation - Extension repo tab" - }, - "extensionPostProcessing": "Post-traitement", - "@searchTracks": { - "description": "Search filter label - tracks" - }, - "logCopied": "Journaux copiés dans le presse-papiers", - "@logCopied": { - "description": "Snackbar - logs copied" - }, - "@extensionHealthRequired": { - "description": "Label for a required extension service health check" - }, - "@previewPlay": { - "description": "Tooltip for the button that plays a short track preview snippet" - }, - "clickableLookingUpArtist": "Recherche d'artiste...", - "@clickableLookingUpArtist": { - "description": "Snackbar shown while clickable artist metadata is being resolved" - }, - "@extensionVerificationBrowserSubtitleInApp": { - "description": "Subtitle when in-app browser is preferred for extension verification" - }, - "setupUseDefaultFolder": "Utiliser le dossier par défaut ?", - "tutorialSearchHint": "Collez ou effectuez une recherche...", - "@logIssueTrackNotFoundLabel": { - "description": "Diagnostic badge label when a track is unavailable" - }, - "@storageModeAppFolderSubtitle": { - "description": "Subtitle for app folder storage mode" - }, - "downloadMusixmatchLanguage": "Langue Musixmatch", - "@downloadMusixmatchLanguage": { - "description": "Setting for Musixmatch lyrics translation language" - }, - "lyricsModeExternal": "Fichier .lrc externe", - "@setupSelectFolder": { - "description": "Button to select folder" - }, - "logSearchHint": "Recherche dans les journaux...", - "@backupCreateFailed": { - "description": "Snackbar when backup creation fails" - }, - "@settingsSaveDownloadHistorySubtitle": { - "description": "Settings switch subtitle for storing completed downloads in history" - }, - "@albumFolderArtistAlbumFlat": { - "description": "Album folder option with singles directly in artist folder" - }, - "extensionHealthRequired": "requis", - "actionCancel": "Annuler", - "@actionCancel": { - "description": "Action button - cancel operation" - }, - "optionsEmbedMetadataSubtitleOff": "Désactivé (avancé) : ignorer l'intégration de toutes les métadonnées", - "@optionsEmbedMetadataSubtitleOff": { - "description": "Subtitle when metadata embedding is disabled" - }, - "downloadAllowLocalNetworkDisabled": "Les adresses locales/privées sont bloquées pour des raisons de sécurité", - "@downloadAllowLocalNetworkDisabled": { - "description": "Subtitle when allow local network access is off" - }, - "@extensionsDownloadPrioritySubtitle": { - "description": "Subtitle for download priority" - }, - "downloadSingleFilenameFormat": "Format de nom de fichier unique", - "@downloadSingleFilenameFormat": { - "description": "Setting for output filename pattern for singles/EPs" - }, - "cacheSummarySubtitle": "La suppression du cache n'entraînera pas la suppression des fichiers musicaux téléchargés.", - "@cacheSummarySubtitle": { - "description": "Helper text for cache summary card" - }, - "libraryFilterMetadataIncorrectIsrcFormat": "Format ISRC incorrect", - "libraryFilterMetadataMissingTrackNumber": "Numéro de piste manquant", - "@libraryFilterMetadataMissingTrackNumber": { - "description": "Filter option - items missing track number" - }, - "backupIncludeSecretsDescription": "Les jetons et les clés API des extensions seront enregistrés dans le fichier de sauvegarde. Veillez à ne pas divulguer ce fichier. Si l'extension est désactivée, vous devrez les saisir à nouveau après la restauration.", - "@backupIncludeSecretsDescription": { - "description": "Explanation for the include-credentials toggle" - }, - "audioAnalysisChannelStats": "Statistiques par chaîne", - "@audioAnalysisChannelStats": { - "description": "Per-channel audio analysis section label" - }, - "@extensionServiceStatus": { - "description": "Extension detail section header for service status" - }, - "queueEmptySingles": "Pas de téléchargement individuel", - "@queueEmptySingles": { - "description": "Empty state title when no single track downloads exist" - }, - "@snackbarSelectedPlaylistsEmpty": { - "description": "Snackbar when selected playlists contain no tracks" - }, - "@errorRateLimited": { - "description": "Error title - too many requests" - }, - "setupDownloadInFlac": "Download music in lossless and Hi-Res quality", - "@setupDownloadInFlac": { - "description": "App tagline in setup" - }, - "trackRemoveFromDevice": "Supprimer de l'appareil", - "@extensionsNoDownloadProvider": { - "description": "Empty state - no download providers" - }, - "@backupCreated": { - "description": "Snackbar after a backup file is created" - }, - "cacheSummaryTitle": "Présentation du cache", - "@cacheSummaryTitle": { - "description": "Heading for cache summary card" - }, - "selectionReplayGainCount": "ReplayGain ({count})", - "@selectionReplayGainCount": { - "description": "Batch selection action button label for ReplayGain", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@setupNotificationBackgroundDescription": { - "description": "Detailed notification explanation" - }, - "safMigrationTitle": "Mise à jour du stockage requise", - "snackbarMetadataSaved": "Les métadonnées ont été enregistrées avec succès", - "@snackbarMetadataSaved": { - "description": "Snackbar after successfully saving track metadata" - }, - "@backupContentsSettings": { - "description": "Backup contents row label for settings" - }, - "logClearLogsTitle": "Effacer les journaux", - "extensionsCustomSearch": "Recherche personnalisée", - "@extensionsCustomSearch": { - "description": "Label for custom search provider" - }, - "@downloadFrom": { - "description": "Label - download source" - }, - "cacheSizeWithFiles": "{size} dans {count} fichiers", - "selectionShareNoFiles": "Aucun fichier partageable n'a été trouvé", - "@selectionShareNoFiles": { - "description": "Snackbar when no selected files exist on disk" - }, - "snackbarAddedTracksToQueue": "{count} titres ont été ajoutés à la file d'attente", - "downloadFilenameInsertTag": "Appuyez pour insérer une balise :", - "@downloadFilenameInsertTag": { - "description": "Label above filename tag chips" - }, - "collectionRemovedFromFavoriteArtists": "« {artistName} » a été supprimé de vos artistes favoris", - "@collectionRemovedFromFavoriteArtists": { - "description": "Snackbar after removing artist from favorite artists", - "placeholders": { - "artistName": { - "type": "String" - } - } - }, - "queueDownloadSpeedStatus": "Téléchargement - {speed} Mo/s", - "backupRestoreConfirmButton": "Restaurer", - "@libraryCleanupMissingFiles": { - "description": "Button to remove entries for missing files" - }, - "backupCreateFailed": "Échec de la création de la sauvegarde", - "notifLibraryScanFailed": "Échec de l'analyse de la bibliothèque", - "@notifLibraryScanFailed": { - "description": "Notification title when library scan fails" - }, - "audioAnalysisRescan": "Réanalyser", - "@trackTrackName": { - "description": "Metadata label - track title" - }, - "@setupPermissionRequired": { - "description": "Generic permission required title", - "placeholders": { - "permissionType": { - "type": "String", - "description": "Type of permission (Storage/Notification)" - } - } - }, - "@nowPlayingNoLyrics": { - "description": "Empty state when the playing file has no embedded lyrics" - }, - "libraryFilesUnit": "{count, plural, =1{fichier} other{fichiers}}", - "@libraryFilesUnit": { - "description": "Unit label for files count during library scanning", - "placeholders": { - "count": { - "type": "int" - } - } + "extensionCapabilities": "Fonctionnalités", + "@extensionCapabilities": { + "description": "Section header - extension features" }, + "extensionMetadataProvider": "Fournisseur de métadonnées", "@extensionMetadataProvider": { "description": "Capability - provides metadata" }, - "@downloadFilterContributing": { - "description": "Setting to strip contributing artists from Album Artist folder name" + "extensionDownloadProvider": "Fournisseur de téléchargement", + "@extensionDownloadProvider": { + "description": "Capability - provides downloads" }, - "libraryScanSelectFolderFirst": "Sélectionnez d'abord un dossier", - "@sectionDownload": { - "description": "Settings section header" + "extensionLyricsProvider": "Fournisseur de paroles", + "@extensionLyricsProvider": { + "description": "Capability - provides lyrics" }, - "extensionHealthNotConfigured": "Non configuré", - "queueRetryAllFailed": "{count} tentatives ont échoué", - "folderOrganizationByPlaylistSubtitle": "Un dossier distinct pour chaque playlist", - "@folderOrganizationByPlaylistSubtitle": { - "description": "Subtitle for playlist folder option" + "extensionUrlHandler": "Gestionnaire d'URL", + "@extensionUrlHandler": { + "description": "Capability - handles URLs" }, - "lyricsProviderExtensionDesc": "Fournisseur d'extensions", - "@libraryFilterQualityHiRes": { - "description": "Filter option - high resolution audio" + "extensionQualityOptions": "Options de qualité", + "@extensionQualityOptions": { + "description": "Capability - quality selection" }, - "trackConvertTitle": "Convertir un fichier audio", - "@trackConvertTitle": { - "description": "Title of convert bottom sheet" + "extensionPostProcessingHooks": "Crochets de post-traitement", + "@extensionPostProcessingHooks": { + "description": "Capability - post-processing" }, - "setupSkipForNow": "Ignorer pour le moment", - "sectionDownload": "Télécharger", - "downloadLossyOpus256Subtitle": "Opus en qualité optimale, environ 8 Mo par piste", - "@downloadLossyOpus256Subtitle": { - "description": "Subtitle for Opus 256kbps lossy option" + "extensionPermissions": "Autorisations", + "@extensionPermissions": { + "description": "Section header - required permissions" }, - "@trackConvertActionLabelLossless": { - "description": "Convert button label for lossless conversion with quality cap", + "extensionSettings": "Paramètres", + "@extensionSettings": { + "description": "Section header - extension settings" + }, + "extensionRemoveButton": "Supprimer l'extension", + "@extensionRemoveButton": { + "description": "Button to uninstall extension" + }, + "extensionUpdated": "Mis à jour", + "@extensionUpdated": { + "description": "Extension detail - last update" + }, + "extensionMinAppVersion": "Version minimale de l'application", + "@extensionMinAppVersion": { + "description": "Extension detail - minimum app version" + }, + "extensionCustomTrackMatching": "Correspondance personnalisée des pistes", + "@extensionCustomTrackMatching": { + "description": "Capability - custom track matching algorithm" + }, + "extensionPostProcessing": "Post-traitement", + "@extensionPostProcessing": { + "description": "Capability - post-download processing" + }, + "extensionHooksAvailable": "{count} crochet(s) disponibles", + "@extensionHooksAvailable": { + "description": "Post-processing hooks count", "placeholders": { - "sourceFormat": { - "type": "String" - }, - "targetFormat": { - "type": "String" - }, - "quality": { + "count": { + "type": "int" + } + } + }, + "extensionPatternsCount": "{count} motif(s)", + "@extensionPatternsCount": { + "description": "URL patterns count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "extensionStrategy": "Stratégie : {strategy}", + "@extensionStrategy": { + "description": "Track matching strategy name", + "placeholders": { + "strategy": { "type": "String" } } }, - "storeRequiresVersion": "Nécessite la version v{version}+", - "@storeRequiresVersion": { - "description": "Store compatibility badge for minimum app version", - "placeholders": { - "version": { - "type": "String" - } - } + "extensionsProviderPrioritySection": "Priorité accordée aux prestataires", + "@extensionsProviderPrioritySection": { + "description": "Section header - provider priority" }, - "metadataProviderPriorityDescription": "Faites glisser pour réorganiser les fournisseurs de métadonnées. L'application testera les fournisseurs dans l'ordre de haut en bas lors de la recherche de morceaux et de la récupération des métadonnées.", - "@notifUpdateFailed": { - "description": "Notification title when app update download fails" + "extensionsInstalledSection": "Extensions installées", + "@extensionsInstalledSection": { + "description": "Section header - installed extensions" + }, + "extensionsNoExtensions": "Aucune extension installée", + "@extensionsNoExtensions": { + "description": "Empty state - no extensions" + }, + "extensionsNoExtensionsSubtitle": "Installez les fichiers .spotiflac-ext pour ajouter de nouveaux fournisseurs", + "@extensionsNoExtensionsSubtitle": { + "description": "Empty state subtitle" + }, + "extensionsInstallButton": "Installer l'extension", + "@extensionsInstallButton": { + "description": "Button to install extension from file" }, "extensionsInfoTip": "Les extensions permettent d'ajouter de nouvelles métadonnées et de nouveaux fournisseurs de téléchargement. N'installez que des extensions provenant de sources fiables.", "@extensionsInfoTip": { "description": "Security warning about extensions" }, - "@downloadAppleQqMultiPersonEnabled": { - "description": "Subtitle when multi-person lyrics is on" + "extensionsInstalledSuccess": "L'extension a été installée avec succès", + "@extensionsInstalledSuccess": { + "description": "Success message after install" }, - "libraryFilterMetadataMissingYear": "Année manquante", - "extensionsDownloadPriority": "Priorité de téléchargement", - "@extensionsDownloadPriority": { - "description": "Setting - download provider order" - }, - "@downloadAllowLocalNetworkEnabled": { - "description": "Subtitle when allow local network access is on" - }, - "libraryScan": "Analyse de la bibliothèque", - "@libraryScan": { - "description": "Button to start library scan" - }, - "editMetadataFieldLabel": "Label", - "@editMetadataFieldLabel": { - "description": "Chip label for label field in auto-fill selector" - }, - "updateDownloadFailed": "Échec du téléchargement", - "@updateDownloadFailed": { - "description": "Update error title" - }, - "appearanceAmoledDarkSubtitle": "Fond noir pur", - "@appearanceAmoledDarkSubtitle": { - "description": "Subtitle for AMOLED dark" - }, - "setupIcloudNotSupported": "iCloud Drive n'est pas pris en charge. Veuillez utiliser le dossier « Documents » de l'application.", - "trackLyricsEmbeddedSource": "Intégré", - "@trackLyricsEmbeddedSource": { - "description": "Lyrics source label for embedded lyrics" - }, - "@trackAlbumArtist": { - "description": "Metadata label - album artist" + "extensionsInstalledCount": "{count} extensions ont été installées avec succès", + "@extensionsInstalledCount": { + "description": "Success message after installing multiple extensions", + "placeholders": { + "count": { + "type": "int", + "description": "Number of installed extensions" + } + } }, "extensionsInstallPartialSuccess": "{installed} extensions sur {attempted}", "@extensionsInstallPartialSuccess": { @@ -4147,1741 +1911,217 @@ } } }, - "@extensionSettingsCount": { - "description": "Count of settings exposed by an extension quality option", - "placeholders": { - "count": { - "type": "int" - } - } + "extensionsDownloadPriority": "Priorité de téléchargement", + "@extensionsDownloadPriority": { + "description": "Setting - download provider order" }, - "notifLibraryScanCancelled": "Annulation de la numérisation de la bibliothèque", - "@notifLibraryScanCancelled": { - "description": "Notification title when library scan is cancelled by the user" + "extensionsDownloadPrioritySubtitle": "Définissez l'ordre des services de téléchargement", + "@extensionsDownloadPrioritySubtitle": { + "description": "Subtitle for download priority" }, - "collectionPlaylistNameRequired": "Le nom de la playlist est requis", - "libraryCleanupMissingFiles": "Nettoyage des fichiers manquants", - "storeCategoryUtility": "Utilitaire", - "@storeCategoryUtility": { - "description": "Store extension category - utility" + "extensionsFallbackTitle": "Extensions de secours", + "@extensionsFallbackTitle": { + "description": "Setting and page title for choosing which download extensions can be used during fallback" }, - "searchSortTitle": "Trier les résultats", - "@extensionVerificationBrowserExternal": { - "description": "Chip label for external browser verification mode" + "extensionsFallbackSubtitle": "Choisissez les extensions de téléchargement installées qui peuvent servir de solution de secours", + "@extensionsFallbackSubtitle": { + "description": "Subtitle for download fallback extensions menu" }, - "audioAnalysisLufs": "LUFS", - "@setupAllowAccessToManageFiles": { - "description": "Instruction for file access permission" + "extensionsNoDownloadProvider": "Aucune extension avec le fournisseur de téléchargement", + "@extensionsNoDownloadProvider": { + "description": "Empty state - no download providers" + }, + "extensionsMetadataPriority": "Priorité des métadonnées", + "@extensionsMetadataPriority": { + "description": "Setting - metadata provider order" + }, + "extensionsMetadataPrioritySubtitle": "Définissez l'ordre des sources de recherche et de métadonnées", + "@extensionsMetadataPrioritySubtitle": { + "description": "Subtitle for metadata priority" + }, + "extensionsNoMetadataProvider": "Aucune extension avec fournisseur de métadonnées", + "@extensionsNoMetadataProvider": { + "description": "Empty state - no metadata providers" + }, + "extensionsSearchProvider": "Moteur de recherche", + "@extensionsSearchProvider": { + "description": "Setting - search provider selection" + }, + "extensionsNoCustomSearch": "Aucune extension avec recherche personnalisée", + "@extensionsNoCustomSearch": { + "description": "Empty state - no search providers" + }, + "extensionsSearchProviderDescription": "Choisissez le service que vous souhaitez utiliser pour rechercher des morceaux", + "@extensionsSearchProviderDescription": { + "description": "Search provider setting description" + }, + "extensionsCustomSearch": "Recherche personnalisée", + "@extensionsCustomSearch": { + "description": "Label for custom search provider" }, "extensionsErrorLoading": "Erreur lors du chargement de l'extension", - "@actionPaste": { - "description": "Generic action - paste from clipboard" + "@extensionsErrorLoading": { + "description": "Error message when extension fails to load" }, - "aboutFeatureRequestSubtitle": "Proposez de nouvelles fonctionnalités pour l'application", - "@aboutFeatureRequestSubtitle": { - "description": "Subtitle for feature request" + "qualityFlacLossless": "FLAC sans perte", + "@qualityFlacLossless": { + "description": "Quality option - CD quality FLAC" }, - "@aboutTitle": { - "description": "About page title" + "qualityFlacLosslessSubtitle": "16 bits / 44,1 kHz", + "@qualityFlacLosslessSubtitle": { + "description": "Technical spec for lossless" }, - "@downloadNeteaseIncludeTranslation": { - "description": "Setting to include translated lyrics from Netease" + "qualityHiResFlac": "FLAC haute résolution", + "@qualityHiResFlac": { + "description": "Quality option - high resolution FLAC" }, - "@actionGo": { - "description": "Generic action button label" + "qualityHiResFlacSubtitle": "24 bits / jusqu'à 96 kHz", + "@qualityHiResFlacSubtitle": { + "description": "Technical spec for hi-res" }, - "regionCountryFR": "France", - "trackConvertResamplerSoxr": "SoXr", - "extensionUpdated": "Mis à jour", - "@extensionUpdated": { - "description": "Extension detail - last update" + "qualityHiResFlacMax": "FLAC haute résolution Max", + "@qualityHiResFlacMax": { + "description": "Quality option - maximum resolution FLAC" + }, + "qualityHiResFlacMaxSubtitle": "24 bits / jusqu'à 192 kHz", + "@qualityHiResFlacMaxSubtitle": { + "description": "Technical spec for hi-res max" + }, + "downloadLossy320": "Compression avec perte à 320 kbps", + "@downloadLossy320": { + "description": "Quality option label for lossy 320kbps" }, "downloadLossyFormat": "Format avec perte", "@downloadLossyFormat": { "description": "Setting title to pick output format for lossy downloads" }, - "snackbarAlreadyInLibrary": "« {trackName} » existe déjà dans votre bibliothèque", - "@snackbarAlreadyInLibrary": { - "description": "Snackbar - track already exists in local library", - "placeholders": { - "trackName": { - "type": "String" - } - } + "downloadAutoConvert": "Auto-convert after download", + "@downloadAutoConvert": { + "description": "Toggle for automatic post-download audio conversion" }, - "libraryExternalPlayerSubtitle": "Recommandé pour l'écoute, la meilleure qualité, la lecture en continu, l'égaliseur et la prise en charge d'un plus grand nombre de formats", - "extensionCustomUrlHandlingShareHint": "Partagez des liens provenant de ces sites vers SpotiFLAC Mobile et cette extension s'en chargera.", - "libraryFilterQuality": "Qualité", - "@libraryFilterQuality": { - "description": "Filter section - audio quality" + "downloadAutoConvertSubtitle": "Convert completed downloads to a smaller lossy format. The original is replaced only after conversion succeeds.", + "@downloadAutoConvertSubtitle": { + "description": "Explanation of safe automatic post-download conversion" }, - "editMetadataAutoFillDone": "{count} {count, plural, =1{champ} other{champs}} renseignés à partir des métadonnées en ligne", - "@editMetadataAutoFillDone": { - "description": "Snackbar confirming how many fields were auto-filled", - "placeholders": { - "count": { - "type": "int" - } - } + "downloadAutoConvertFormat": "Output format", + "@downloadAutoConvertFormat": { + "description": "Automatic conversion output format setting" }, - "@discographyDownload": { - "description": "Button - download artist discography" + "downloadAutoConvertFormatSubtitle": "Choose the lossy format used for newly completed downloads.", + "@downloadAutoConvertFormatSubtitle": { + "description": "Automatic conversion format picker explanation" }, - "aboutFeatureRequest": "Demande de fonctionnalité", - "downloadSingleFilenameFormatDescription": "Modèle de nom de fichier pour les singles et les EP. Utilise les mêmes balises que le format album.", - "@downloadSingleFilenameFormatDescription": { - "description": "Subtitle description for single filename format setting" + "downloadAutoConvertBitrate": "Output quality", + "@downloadAutoConvertBitrate": { + "description": "Automatic conversion bitrate setting" }, - "queueClearAllMessage": "Êtes-vous sûr de vouloir supprimer tous les fichiers téléchargés ?", - "dialogDisableHistoryMessage": "L'historique actuel sera effacé. Les fichiers téléchargés ne seront pas supprimés.", - "extensionLastChecked": "Dernière vérification à {time}", - "@extensionLastChecked": { - "description": "Timestamp for the latest extension service health check", - "placeholders": { - "time": { - "type": "String" - } - } + "downloadAutoConvertBitrateSubtitle": "Higher bitrates preserve more detail but create larger files.", + "@downloadAutoConvertBitrateSubtitle": { + "description": "Automatic conversion bitrate picker explanation" }, - "homeImportCsvTooltip": "Importer une playlist (CSV, M3U)", - "@homeImportCsvTooltip": { - "description": "Tooltip for importing a CSV file into Home search" + "downloadAutoConvertMp3Subtitle": "Best compatibility across players and devices", + "@downloadAutoConvertMp3Subtitle": { + "description": "MP3 automatic conversion option description" }, - "trackConvertResamplerSwr": "SWR", - "@trackConvertResamplerSwr": { - "description": "Lossless conversion default FFmpeg swresample resampler option" + "downloadAutoConvertM4aSubtitle": "Efficient AAC audio in an M4A container", + "@downloadAutoConvertM4aSubtitle": { + "description": "M4A AAC automatic conversion option description" }, - "@downloadFolderOrganization": { - "description": "Title of the folder organization picker bottom sheet" + "downloadAutoConvertOpusSubtitle": "Best efficiency for modern players", + "@downloadAutoConvertOpusSubtitle": { + "description": "Opus automatic conversion option description" }, - "dialogClearHistoryTitle": "Effacer l'historique", - "@logClearSearch": { - "description": "Tooltip for clearing the log search field" + "downloadLossy320Format": "Format avec perte à 320 kbps", + "@downloadLossy320Format": { + "description": "Title of the lossy format picker bottom sheet" }, - "dialogImport": "Importer", - "@dialogImport": { - "description": "Dialog button - import data" + "downloadLossy320FormatDesc": "Choisissez le format de sortie pour les téléchargements avec perte à 320 kbps. Le flux d'origine sera converti au format que vous aurez sélectionné lorsque cela sera nécessaire.", + "@downloadLossy320FormatDesc": { + "description": "Description in the lossy format picker" }, - "@setupChangeFolderTooltip": { - "description": "Tooltip for editing the selected download folder" + "downloadLossyMp3": "MP3 320 kbps", + "@downloadLossyMp3": { + "description": "Lossy format option - MP3 320kbps" }, - "notifLibraryScanErrors": "{count} erreurs", - "@downloadNetworkCompatibilityMode": { - "description": "Setting for legacy TLS/network handling" + "downloadLossyMp3Subtitle": "Compatibilité optimale, environ 10 Mo par piste", + "@downloadLossyMp3Subtitle": { + "description": "Subtitle for MP3 320kbps lossy option" }, - "@metadataSaveFailedFfmpeg": { - "description": "Snackbar error when FFmpeg fails to write metadata" + "downloadLossyAac": "AAC/M4A 320 kbps", + "@downloadLossyAac": { + "description": "Lossy format option - AAC in M4A container at 320kbps" }, - "dialogUninstallExtension": "Supprimer l'extension ?", - "recentTypePlaylist": "Playlist", - "@recentTypePlaylist": { - "description": "Recent access item type - playlist" + "downloadLossyAacSubtitle": "Compatibilité optimale avec les appareils mobiles, format M4A", + "@downloadLossyAacSubtitle": { + "description": "Subtitle for AAC/M4A 320kbps lossy option" }, - "trackDeleteConfirmMessage": "Cela supprimera définitivement le fichier téléchargé et l'effacera de votre historique.", - "@logIssueNetworkErrorDescription": { - "description": "Diagnostic badge description for generic network errors" + "downloadLossyOpus256": "Opus 256 kbps", + "@downloadLossyOpus256": { + "description": "Lossy format option - Opus 256kbps" }, - "appearanceThemeSystem": "Système", - "@appearanceThemeSystem": { - "description": "Follow system theme" + "downloadLossyOpus256Subtitle": "Opus en qualité optimale, environ 8 Mo par piste", + "@downloadLossyOpus256Subtitle": { + "description": "Subtitle for Opus 256kbps lossy option" }, - "albumFolderArtistAlbumSingles": "Artiste / Album + Singles", - "@aboutTranslators": { - "description": "Section for translators" - }, - "shareSheetNotFound": "Introuvable", - "@shareSheetNotFound": { - "description": "Cross-service share sheet row subtitle when a service has no match" - }, - "@tutorialDownloadInProgressSemantics": { - "description": "Accessibility label for active download state in tutorial demo" - }, - "editMetadataAutoFillNoneSelected": "Sélectionnez au moins un champ pour le remplir automatiquement", - "@editMetadataAutoFillNoneSelected": { - "description": "Snackbar when user taps Fetch without selecting any fields" - }, - "@snackbarViewQueue": { - "description": "Snackbar action - view download queue" - }, - "@optionsUpdateChannelPreview": { - "description": "Include beta/preview updates" - }, - "editMetadataFieldComposer": "Compositeur", - "@editMetadataFieldComposer": { - "description": "Label for composer field in the edit metadata sheet" - }, - "aboutSachinsenalDesc": "Le créateur du projet HiFi original. Une base pour l'intégration de sources sans perte.", - "@aboutSachinsenalDesc": { - "description": "Credit description for sachinsenal0x64" - }, - "backupTitle": "Sauvegarde & Restauration", - "@libraryFilterMetadata": { - "description": "Filter section - metadata completeness" - }, - "setupStorageAccessRequired": "Accès au stockage requis", - "@setupStorageAccessRequired": { - "description": "Title when storage access needed" - }, - "trackMetadataDelete": "Supprimer", - "@trackMetadataDelete": { - "description": "Action button - delete track" - }, - "libraryFilterMetadataMissingDiscNumber": "Numéro de disque manquant", - "@libraryFilterMetadataMissingDiscNumber": { - "description": "Filter option - items missing disc number" - }, - "snackbarMetadataProviderSaved": "Priorité du fournisseur de métadonnées enregistrée", - "setupPermissionRequired": "Autorisation {permissionType} requise", - "@selectionConvertNoConvertible": { - "description": "Snackbar when no selected tracks support conversion" - }, - "extensionHealthDegraded": "Dégradé", - "regionCountryKR": "Corée du Sud", - "@regionCountryKR": { - "description": "Country name for SongLink region picker" - }, - "trackLyricsNotInFile": "Aucune parole n'a été trouvée dans ce fichier", - "@trackLyricsNotInFile": { - "description": "Message when no embedded lyrics in audio file" - }, - "@downloadedAlbumTapToSelect": { - "description": "Selection hint" - }, - "downloadArtistNameFilters": "Filtres par nom d'artiste", - "@downloadArtistNameFilters": { - "description": "Setting title for artist folder filter options" - }, - "@libraryFilterMetadataMissingArtist": { - "description": "Filter option - items missing artist" - }, - "recentShowAllDownloads": "Afficher tous les téléchargements", - "@appearanceThemeLight": { - "description": "Light theme" - }, - "trackReEnrichFieldTrackInfo": "Numéro de piste & de disque", - "@appearanceThemeDark": { - "description": "Dark theme" - }, - "extensionVerificationLinkCopied": "Lien de vérification copié", - "@extensionVerificationLinkCopied": { - "description": "Snackbar after copying the extension verification URL" - }, - "@extensionsHomeFeedDescription": { - "description": "Extensions page - description for home feed provider picker" - }, - "downloadAlbumArtistMetadataPrimaryOnly": "Métadonnées « Album » et « Artiste » : uniquement les données principales", - "@downloadAlbumArtistMetadataPrimaryOnly": { - "description": "Status label when album-artist folder filtering uses primary artist only" - }, - "extensionOauthConnectHint": "Appuyez sur « Se connecter à Spotify » pour remplir ce champ.", - "setupNext": "Suivant", - "extensionVerificationBrowserSubtitleInApp": "Ouvrez d'abord les défis dans le navigateur intégré à l'application", - "libraryAutoScanDaily": "Tous les jours", - "@libraryAutoScanDaily": { - "description": "Auto scan once per day" - }, - "@audioAnalysisDescription": { - "description": "Description for audio analysis tap-to-analyze prompt" - }, - "nowPlayingUpNext": "À suivre", - "@nowPlayingUpNext": { - "description": "Title for the playback queue sheet" - }, - "nowPlayingPreviousTrack": "Previous track", - "nowPlayingNextTrack": "Next track", - "logAutoScrollOff": "Défilement automatique désactivé", - "trackConvertFailed": "Échec de la conversion", - "@trackConvertFailed": { - "description": "Snackbar when conversion fails" - }, - "extensionsUninstall": "Désinstaller", - "safMigrationSuccess": "Le dossier de téléchargement a été mis à jour en mode SAF", - "optionsClearHistorySubtitle": "Supprimez tous les morceaux téléchargés de l'historique", - "@optionsClearHistorySubtitle": { - "description": "Subtitle for clear history" - }, - "trackPlayNext": "Suivant", - "extensionsNoHomeFeedExtensions": "Aucune extension avec le flux principal", - "optionsUpdateChannelStable": "Uniquement les versions stables", - "@optionsUpdateChannelStable": { - "description": "Only stable updates" - }, - "@discographyDownloadAllSubtitle": { - "description": "Subtitle showing total tracks and albums", - "placeholders": { - "count": { - "type": "int" - }, - "albumCount": { - "type": "int" - } - } - }, - "searchPlaylists": "Playlists", - "@searchPlaylists": { - "description": "Search result category - playlists" - }, - "downloadNetworkCompatibilityMode": "Mode de compatibilité réseau", - "settingsAppearance": "Apparence", - "logIssueRateLimitedLabel": "NOMBRE LIMITÉ", - "@logIssueRateLimitedLabel": { - "description": "Diagnostic badge label when the service rate limits requests" - }, - "logIssueSummary": "Résumé du problème", - "@logIssueSummary": { - "description": "Header for log issue analysis summary" - }, - "appName": "SpotiFLAC Mobile", - "storeRepoDialogCurrent": "Dépôt actuel :", - "@optionsExtensionStoreSubtitle": { - "description": "Subtitle for extension repo toggle" - }, - "@trackLyrics": { - "description": "Tab title - lyrics" - }, - "@backupImportButton": { - "description": "Button to pick a backup file to restore" - }, - "@setupFolderChoose": { - "description": "Button to choose folder" - }, - "storageModeAppFolderSubtitle": "Enregistrement par défaut dans le dossier « Musique/SpotiFLAC »", - "@extensionsDisabled": { - "description": "Extension status - inactive" - }, - "@regionCountryAU": { - "description": "Country name for SongLink region picker" - }, - "@storeCategoryMetadata": { - "description": "Store extension category - metadata" - }, - "libraryFilterApply": "Appliquer", - "@libraryFilterApply": { - "description": "Apply filters button" - }, - "@libraryFilterSortGenreAsc": { - "description": "Sort option - genre ascending" - }, - "setupAllowAccessToManageFiles": "Veuillez cocher la case « Autoriser l'accès pour gérer tous les fichiers » sur l'écran suivant.", - "@dialogSave": { - "description": "Dialog button - save changes" - }, - "trackLyrics": "Paroles", - "extensionSettingNotSet": "Non défini", - "@extensionSettingNotSet": { - "description": "Value shown when an extension setting has no value" - }, - "@audioAnalysisClipping": { - "description": "Clipping metric label" - }, - "downloadNeteaseIncludeTranslation": "Netease : inclure la traduction", - "@albumFolderArtistAlbumSubtitle": { - "description": "Folder structure example" - }, - "@settingsDonateSubtitle": { - "description": "Subtitle for donate menu item" - }, - "cueSplitSuccess": "Le fichier a été divisé en {count} pistes avec succès", - "@cueSplitSuccess": { - "description": "Snackbar after successful CUE split", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "cueSplitArtist": "Artiste : {artist}", - "@cueSplitArtist": { - "description": "Artist name in CUE split sheet", - "placeholders": { - "artist": { - "type": "String" - } - } - }, - "updateSeeReleaseNotes": "Pour plus de détails, consultez les notes de mise à jour.", - "@updateSeeReleaseNotes": { - "description": "Fallback changelog text when release notes cannot be parsed" - }, - "@trackReEnrichFfmpegFailed": { - "description": "Snackbar when FFmpeg embed fails for MP3/Opus" - }, - "collectionWishlist": "Liste de souhaits", - "@collectionWishlist": { - "description": "Custom folder for saved tracks to download later" - }, - "editMetadataAutoFillFetch": "Récupérer & remplir", - "@extensionsHomeFeedAuto": { - "description": "Label for auto-selected search provider" - }, - "providerPriorityDescription": "Faites glisser pour réorganiser les fournisseurs de téléchargement. L'application testera les fournisseurs dans l'ordre indiqué, de haut en bas, lors du téléchargement des morceaux.", - "@providerPriorityDescription": { - "description": "Provider priority page description" - }, - "queueEmptySinglesSubtitle": "Les téléchargements de titres individuels apparaîtront ici", "downloadLossyOpus128": "Opus 128 kbps", - "downloadUseAlbumArtistForFolders": "Utilisez l'artiste de l'album pour les dossiers", - "@downloadUseAlbumArtistForFolders": { - "description": "Setting - choose whether artist folders use Album Artist or Track Artist" + "@downloadLossyOpus128": { + "description": "Lossy format option - Opus 128kbps" }, - "@aboutLinks": { - "description": "Section for external links" + "downloadLossyOpus128Subtitle": "Taille minimale : environ 4 Mo par piste", + "@downloadLossyOpus128Subtitle": { + "description": "Subtitle for Opus 128kbps lossy option" }, - "downloadedAlbumDeleteCount": "Supprimer {count} {count, plural, =1{piste} other{pistes}}", - "updateLater": "Plus tard", - "@logIssueIspBlockingSuggestion": { - "description": "Diagnostic badge suggestion for ISP blocking" + "downloadAskBeforeDownload": "Demander avant de télécharger", + "@downloadAskBeforeDownload": { + "description": "Setting - show quality picker" }, - "actionResume": "Resumer", - "optionsDetailedLoggingOff": "Activer pour les rapports de bogues", - "@searchSortDefault": { - "description": "Sort option - default API order" + "downloadDirectory": "Répertoire de téléchargement", + "@downloadDirectory": { + "description": "Setting - download folder" }, - "@regionCountryCA": { - "description": "Country name for SongLink region picker" + "downloadSeparateSinglesFolder": "Dossier dédié aux titres individuels", + "@downloadSeparateSinglesFolder": { + "description": "Setting - separate folder for singles" }, - "@sectionStorageAccess": { - "description": "Section header for storage access settings" - }, - "downloadFilterContributing": "Filtrer les artistes participants", - "downloadUseAlbumArtistForFoldersTrackSubtitle": "Dossier nommé d'après la balise « Artiste » de la piste", - "storeSearch": "Recherche d'extensions...", - "@storeSearch": { - "description": "Repo search placeholder" - }, - "aboutTelegramChat": "Communauté Telegram", - "lyricsModeBoth": "Les deux", - "@lyricsModeBoth": { - "description": "Lyrics mode option - embed and external" - }, - "@permissionNotification": { - "description": "Notification permission type label" - }, - "libraryAutoScanSubtitle": "Analysez automatiquement votre bibliothèque à la recherche de nouveaux fichiers", - "@libraryAutoScanSubtitle": { - "description": "Subtitle for auto scan setting" - }, - "libraryEnableLocalLibrary": "Activer la bibliothèque locale", - "trackConvertTargetFormat": "Format cible", - "@trackConvertTargetFormat": { - "description": "Label for format selection" - }, - "extensionSettings": "Paramètres", - "@editMetadataAutoFillSearching": { - "description": "Snackbar shown while searching for online metadata" - }, - "trackLyricsTimeout": "La requête a expiré. Veuillez réessayer plus tard.", - "settingsExtensions": "Extensions", - "@settingsBackup": { - "description": "Settings menu item - backup and restore page" - }, - "librarySourceDownloaded": "Téléchargé", - "@librarySourceDownloaded": { - "description": "Badge for tracks downloaded via SpotiFLAC" - }, - "appearanceDynamicColor": "Couleur dynamique", - "@appearanceDynamicColor": { - "description": "Material You dynamic colors" - }, - "backupImportButton": "Choisissez un fichier de sauvegarde", - "downloadAppleElrcWordSyncDisabled": "Paroles d'Apple Music, ligne par ligne, en toute sécurité", - "@optionsEmbedMetadata": { - "description": "Settings toggle title for writing metadata into downloaded files" - }, - "appearanceTitle": "Apparence", - "downloadNeteaseIncludeRomanizationDisabled": "Pas de romanisation", - "@downloadNeteaseIncludeRomanizationDisabled": { - "description": "Subtitle when Netease romanization is off" - }, - "@libraryScanCancelled": { - "description": "Library scan status when a scan was cancelled" - }, - "tracksCount": "{count, plural, =1{1 titre} other{{count} titres}}", - "@snackbarFailedToUpdateNamed": { - "description": "Snackbar when extension update fails in the repo tab", - "placeholders": { - "extensionName": { - "type": "String" - } - } - }, - "@extensionQualityOptions": { - "description": "Capability - quality selection" - }, - "logClearSearch": "Effacer la recherche", - "trackSaveLyrics": "Enregistrer les paroles (.lrc)", - "@trackReEnrichSearching": { - "description": "Snackbar while searching metadata from internet for local items" - }, - "@editMetadataAutoFillNoResults": { - "description": "Snackbar when online metadata search returns no results" - }, - "notifDownloadComplete": "Télécharger l'intégralité", - "snackbarAlreadyDownloaded": "« {trackName} » a déjà été téléchargé", - "folderOrganizationByAlbumSubtitle": "Un dossier distinct pour chaque album", - "storeRepoUrlHint": "https://github.com/user/repo", - "trackConvertDitherTriangularHp": "HP triangulaire", - "lyricsModeBothSubtitle": "Intégrer et enregistrer le fichier .lrc", - "trackReEnrichFieldExtra": "Genre, Label, Droits d'auteur", - "@trackReEnrichFieldExtra": { - "description": "Checkbox label for extra metadata in re-enrich" - }, - "sectionLyrics": "Paroles", - "@sectionLyrics": { - "description": "Settings section header" - }, - "extensionStrategy": "Stratégie : {strategy}", - "@extensionStrategy": { - "description": "Track matching strategy name", - "placeholders": { - "strategy": { - "type": "String" - } - } - }, - "@downloadNativeWorker": { - "description": "Setting title for Android native download worker" - }, - "optionsArtistTagModeSplitVorbis": "Diviser les balises pour FLAC/Opus", - "extensionsHomeFeedUse": "Utiliser le fil d'actualité de {extensionName}", - "@cacheAppDirectoryDesc": { - "description": "Description of what app cache directory contains" - }, - "cancelDownloadTitle": "Annuler le téléchargement ?", - "updateWhatsNew": "Quoi de neuf ?", - "updateNewVersionReady": "Une nouvelle version est disponible", - "@extensionVerificationClose": { - "description": "Button to dismiss the extension verification help dialog" - }, - "a11ySelectTrack": "Sélectionner une piste", - "libraryClearSubtitle": "Supprimez tous les titres numérisés", - "@libraryClearSubtitle": { - "description": "Subtitle for clear button" - }, - "@settingsDownloadNetworkSubtitle": { - "description": "Subtitle explaining network preference" - }, - "storeAnyVersion": "N'importe lequel", - "@storeAnyVersion": { - "description": "Store detail value when any app version is accepted" - }, - "navStore": "Dépôt", - "backupExportSectionDescription": "Enregistrez vos paramètres, votre historique de téléchargement, les titres que vous avez aimés, votre liste de souhaits, vos artistes préférés et vos playlists dans un seul fichier que vous pourrez conserver ou transférer vers un autre téléphone.", - "libraryScanSettings": "Paramètres de numérisation", - "@libraryScanSettings": { - "description": "Section header for scan settings" - }, - "trackDuration": "Durée", - "@trackDuration": { - "description": "Metadata label - track length" - }, - "extensionHealthOffline": "Hors ligne", - "@extensionHealthOffline": { - "description": "Extension service health status - offline" - }, - "editMetadataFieldArtist": "Artiste", - "@editMetadataFieldArtist": { - "description": "Chip label for artist field in auto-fill selector" - }, - "libraryInLibrary": "Dans la bibliothèque", - "pressBackAgainToExit": "Appuyez de nouveau sur retour pour quitter", - "@pressBackAgainToExit": { - "description": "Exit confirmation message" - }, - "setupNotificationGranted": "Autorisation de notification accordée !", - "@setupNotificationGranted": { - "description": "Success message for notification permission" - }, - "settingsDonate": "Soutien au développement", - "snackbarFailedToUpdateNamed": "Échec de la mise à jour de {extensionName}", - "backupContentsTitle": "Contenu de la sauvegarde", - "updateDontRemind": "Ne plus me le rappeler", - "@dialogDiscard": { - "description": "Dialog button - discard changes" - }, - "editMetadataAutoFillSearching": "Recherche en ligne...", - "discographyDownloadSelected": "Télécharger la sélection", - "trackConvertResampler": "Rééchantillonneur", - "queueFilteringIndicator": "Filtrage...", - "@queueFilteringIndicator": { - "description": "Shown while filter results are being computed" - }, - "@dialogDownloadAllTitle": { - "description": "Dialog title for bulk download confirmation" - }, - "cueSplitConfirmMessage": "Diviser « {album} » en {count} fichiers FLAC individuels ?\n\nLes fichiers seront enregistrés dans le même répertoire.", - "@downloadCreatePlaylistSourceFolderRedundant": { - "description": "Subtitle when folder organization is already set to playlist" - }, - "regionCountryCA": "Canada", - "cacheTempDirectory": "Répertoire temporaire", - "@cacheTempDirectory": { - "description": "Cache item title for temporary files directory" - }, - "libraryShowDuplicateIndicator": "Afficher l'indicateur de doublons", - "@logFilterBySeverity": { - "description": "Filter dialog title" - }, - "homeSearchHintProvider": "Rechercher avec {providerName}...", - "@downloadNeteaseIncludeTranslationDisabled": { - "description": "Subtitle when Netease translation is off" - }, - "optionsCheckUpdates": "Vérifier les mises à jour", - "replayGainBatchAnalyzing": "Analyse de ReplayGain...", - "recentTypeAlbum": "Album", - "providerExtension": "Extension", - "@providerExtension": { - "description": "Label for extension-provided providers" - }, - "trackCoverNoSource": "Aucune source d'illustration de couverture disponible", - "libraryFilterMetadata": "Métadonnées", - "albumFolderArtistYearAlbum": "Artiste / [Année] Album", - "@albumFolderArtistYearAlbum": { - "description": "Album folder option with year" - }, - "audioAnalysisClipping": "Coupure", - "@a11yOpenAlbumByArtistTrackCount": { - "description": "Accessibility label for opening an album item with track count", - "placeholders": { - "albumName": { - "type": "String" - }, - "artistName": { - "type": "String" - }, - "trackCount": { - "type": "int" - } - } - }, - "backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} n'ont pas pu être réinstallées. Installez-les manuellement depuis le dépôt.", - "@backupExtensionsRestoreFailed": { - "description": "Snackbar/hint when some extensions failed to reinstall during restore", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "channelStable": "Stable", - "@channelStable": { - "description": "Update channel - stable releases" - }, - "tutorialSettingsTip3": "Personnaliser le thème et l'apparence de l'application", - "setupAppDocumentsFolderSubtitle": "Recommandé - accessible via l'application Fichiers", - "a11yPlayTrackByArtist": "Écouter {trackName} de {artistName}", - "@a11yPlayTrackByArtist": { - "description": "Accessibility label for playing a local library track", - "placeholders": { - "trackName": { - "type": "String" - }, - "artistName": { - "type": "String" - } - } - }, - "dialogRemove": "Supprimer", - "extensionVerificationClose": "Fermer", - "bulkDownloadPlaylistsButton": "Télécharger {count} {count, plural, =1{playlist} other{playlists}}", - "@bulkDownloadPlaylistsButton": { - "description": "Button label for bulk downloading selected playlists", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "optionsAutoFallbackSubtitle": "Essayez d'autres services si le téléchargement échoue", - "@optionsAutoFallbackSubtitle": { - "description": "Subtitle for auto fallback" - }, - "extensionPatternsCount": "{count} motif(s)", - "@libraryFilterLocal": { - "description": "Filter chip - show only local library items" - }, - "errorUrlNotRecognizedMessage": "Ce lien n'est pas pris en charge. Vérifiez que l'URL est correcte et qu'une extension compatible est installée.", - "@errorUrlNotRecognizedMessage": { - "description": "Error message - URL not recognized explanation" - }, - "@extensionVerificationBrowserSubtitleExternal": { - "description": "Subtitle when external browser is preferred for extension verification" - }, - "optionsArtistTagMode": "Mode « Artiste »", - "libraryFilterMetadataComplete": "Métadonnées complètes", - "@libraryFilterMetadataComplete": { - "description": "Filter option - items with complete metadata" - }, - "@extensionsVersion": { - "description": "Extension version display", - "placeholders": { - "version": { - "type": "String" - } - } - }, - "@downloadNetworkAnySubtitle": { - "description": "Subtitle for any-network option in picker" - }, - "optionsReplayGainSubtitleOn": "Analyser le niveau sonore et intégrer des balises ReplayGain (EBU R128)", - "libraryScanning": "En cours d'analyse...", - "@libraryScanning": { - "description": "Status during scan" - }, - "cacheRefresh": "Actualiser", - "@actionShuffle": { - "description": "Tooltip for shuffle playback action" - }, - "optionsEmbedLyricsSubtitle": "Enregistrez les paroles synchronisées avec vos morceaux téléchargés", - "@optionsEmbedLyricsSubtitle": { - "description": "Subtitle for embed lyrics" - }, - "queueEmptyAlbumsSubtitle": "Téléchargez plusieurs titres d'un album pour les écouter ici", - "extensionEnterValue": "Saisir une valeur", - "@settingsDownloadNetworkAny": { - "description": "Network option - use any connection" - }, - "collectionLoved": "Favoris", - "@collectionLoved": { - "description": "Custom folder for favorite tracks" - }, - "storeAddRepoTitle": "Ajouter un dépôt d'extensions", - "@storeAddRepoTitle": { - "description": "Store setup screen - heading when no repo is configured" - }, - "collectionNoPlaylistsYet": "Aucune playlist pour le moment", - "@collectionNoPlaylistsYet": { - "description": "Empty state title when user has no playlists" - }, - "libraryCleanupMissingFilesSubtitle": "Supprimez les entrées correspondant aux fichiers qui n'existent plus", - "@libraryCleanupMissingFilesSubtitle": { - "description": "Subtitle for cleanup button" - }, - "folderOrganizationByArtist": "Par artiste", - "@folderOrganizationByArtist": { - "description": "Folder option - artist folders" - }, - "aboutTranslators": "Traducteurs", - "notifAlreadyInLibraryCount": "Déjà dans la bibliothèque ({completed}/{total})", - "editMetadataFieldTitle": "Titre", - "@editMetadataFieldTitle": { - "description": "Chip label for title field in auto-fill selector" - }, - "downloadFilenameDescription": "Utilisez {artist}, {title}, {album}, {track}, {year}, {date} et {disc} comme variables de remplacement.", - "@downloadFilenameDescription": { - "description": "Description shown in filename format editor" - }, - "@notifDownloadsFinishedBody": { - "description": "Notification body when queue finishes with failures", - "placeholders": { - "completed": { - "type": "int" - }, - "failed": { - "type": "int" - } - } - }, - "@libraryFolderNotExist": { - "description": "Error when folder doesn't exist" - }, - "@playlistsCount": { - "description": "Playlist count display", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@loadingSharedLink": { - "description": "Status when opening shared URL" - }, - "extensionServiceHealth": "Santé du service", - "@extensionServiceHealth": { - "description": "Extension capability label for service health checks" - }, - "@collectionDeletePlaylistsMessage": { - "description": "Confirmation message for deleting selected playlists", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "setupStorageDescription": "SpotiFLAC a besoin d'une autorisation d'accès au stockage pour enregistrer vos fichiers musicaux téléchargés.", - "tutorialReadyMessage": "You're ready. Select your extensions, then search or paste a supported link.", - "tutorialLibraryTip3": "Browse tracks, albums, and playlists in list or grid views", - "selectionDeletePlaylistsCount": "Supprimer {count} {count, plural, =1{playlist} other{playlists}}", - "appearanceThemeLight": "Clair", - "queueEmptyHistorySubtitle": "Les morceaux téléchargés apparaîtront ici", - "@queueEmptyHistorySubtitle": { - "description": "Empty state subtitle for download history" - }, - "backupRestoreFailed": "Échec de la restauration de la sauvegarde", - "@backupRestoreFailed": { - "description": "Snackbar when restore fails" - }, - "queueFlacQueuedWithSkipped": "{addedCount} titres ajoutés à la file d'attente, {skippedCount} titres ignorés", - "@queueFlacQueuedWithSkipped": { - "description": "Snackbar when some selected local tracks were queued for FLAC redownload and some were skipped", - "placeholders": { - "addedCount": { - "type": "int" - }, - "skippedCount": { - "type": "int" - } - } - }, - "@trackReplayGain": { - "description": "Three-dot menu option to scan loudness and write ReplayGain tags" - }, - "@downloadedAlbumDownloadedCount": { - "description": "Downloaded tracks count badge", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "setupFolderChoose": "Choisissez le dossier de téléchargement", - "dialogDownloadAllTitle": "Tout télécharger", - "providerPriorityInfo": "Si un morceau n'est pas disponible chez le premier fournisseur, l'application essaiera automatiquement le suivant.", - "@providerPriorityInfo": { - "description": "Info tip about fallback behavior" - }, - "@dialogDiscardChanges": { - "description": "Dialog title - unsaved changes warning" - }, - "discographyNoAlbums": "Aucun album disponible", - "downloadAppleQqMultiPersonDisabled": "Paroles standard sans indication du haut-parleur", - "cacheNoData": "Aucune donnée mise en cache", - "@cacheNoData": { - "description": "Label when cache category has no data" - }, - "tutorialStartDownloadSemantics": "Lancer le téléchargement", - "@tutorialStartDownloadSemantics": { - "description": "Accessibility label for idle download button in tutorial demo" - }, - "logIssueIspBlockingSuggestion": "Essayez d'utiliser un VPN ou de modifier vos paramètres DNS pour les remplacer par 1.1.1.1 ou 8.8.8.8", - "aboutTitle": "À propos", - "@cueSplitButton": { - "description": "Button text to start CUE splitting" - }, - "appearanceHistoryView": "Historique", - "audioAnalysisSampleRate": "Fréquence d'échantillonnage", - "@settingsCache": { - "description": "Settings menu item - cache management" - }, - "lyricsProvidersInfoText": "Les fournisseurs de paroles d'extension s'exécutent avant les fournisseurs de paroles intégrés. Au moins un fournisseur doit rester activé.", - "cacheTrackLookup": "Cache de recherche de piste", - "extensionsHomeFeedOffSubtitle": "Ne pas afficher le fil d'actualité sur l'écran principal", - "@downloadUsePrimaryArtistOnly": { - "description": "Setting - strip featured artists from folder name" - }, - "@regionCountryIN": { - "description": "Country name for SongLink region picker" - }, - "@libraryFilterQualityLossy": { - "description": "Filter option - lossy compressed audio" - }, - "extensionRefreshStatus": "Actualiser l'état", - "notifAllDownloadsComplete": "Tous les téléchargements sont terminés", - "downloadNeteaseIncludeRomanizationEnabled": "Lignes de romanisation incluses", - "editMetadataFieldDateHint": "AAAA-MM-JJ ou AAAA", - "@editMetadataFieldDateHint": { - "description": "Hint text for the edit metadata date field" - }, - "trackMetadataShare": "Partager", - "@trackMetadataShare": { - "description": "Action button - share track" - }, - "discographyDownloadAllSubtitle": "{count} titres issus de {albumCount} albums", - "settingsDonateSubtitle": "Offrez un café au développeur", - "libraryFilterDownloaded": "Téléchargé", - "downloadNetworkAnySubtitle": "Utilisez le Wi-Fi ou les données mobiles", - "@cueSplitNoAudioFile": { - "description": "Error when CUE audio file is missing" - }, - "notifLibraryScanStopped": "L'analyse a été interrompue avant d'être terminée.", - "@settingsMetadata": { - "description": "Settings menu item - metadata settings" - }, - "snackbarFailedToInstallNamed": "Échec de l'installation de {extensionName}", - "trackCopyLyrics": "Copier les paroles", - "@trackCopyLyrics": { - "description": "Action - copy lyrics to clipboard" - }, - "regionCountryAU": "Australie", "downloadAlbumFolderStructure": "Structure du dossier de l'album", - "downloadMusixmatchAuto": "Auto", - "actionDismiss": "Ignorer", - "storeFilterAll": "Tout", - "extensionsDisabled": "Désactivée", - "@logClearLogs": { - "description": "Clear button tooltip" - }, - "dialogDownloadAllMessage": "Télécharger {count} titres ?", - "@optionsEmbedLyrics": { - "description": "Embed lyrics in audio files" - }, - "tutorialLibraryTitle": "Votre bibliothèque", - "optionsCheckUpdatesSubtitle": "M'avertir lorsqu'une nouvelle version est disponible", - "@optionsCheckUpdatesSubtitle": { - "description": "Subtitle for update check" - }, - "collectionPlaylist": "Playlist", - "@collectionPlaylist": { - "description": "Single playlist label" - }, - "dateMonthsAgo": "Il y a {count} mois", - "@dateMonthsAgo": { - "description": "Relative date - months ago", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@extensionRemoveButton": { - "description": "Button to uninstall extension" - }, - "collectionPlaylistRenamed": "Playlist renommée", - "collectionCreatePlaylist": "Créer une playlist", - "homeGoToAlbum": "Aller à l'album", - "@homeGoToAlbum": { - "description": "Context menu item to navigate to the album page" - }, - "folderOrganizationByArtistSubtitle": "Un dossier distinct pour chaque artiste", - "@optionsClearHistory": { - "description": "Delete all download history" - }, - "@searchAlbums": { - "description": "Search result category - albums" - }, - "@sectionDebug": { - "description": "Settings section header" - }, - "extensionsVersion": "Version {version}", - "@navHome": { - "description": "Bottom navigation - Home tab" - }, - "@editMetadataFieldDate": { - "description": "Chip label for date field in auto-fill selector" - }, - "downloadUsePrimaryArtistOnly": "Artiste principal uniquement pour les dossiers", - "tutorialExtensionsTip2": "Choose providers for search, downloads, metadata, and fallbacks", - "@setupStorageGranted": { - "description": "Success message for storage permission" - }, - "tutorialWelcomeTitle": "Bienvenue sur SpotiFLAC Mobile !", - "a11ySelectAlbum": "Sélectionnez l'album {albumName}", - "@a11ySelectAlbum": { - "description": "Accessibility label for selecting an album", - "placeholders": { - "albumName": { - "type": "String" - } - } - }, - "aboutMobileSource": "Code source pour mobile", - "@aboutMobileSource": { - "description": "Link to mobile GitHub repo" - }, - "@extensionCustomUrlHandling": { - "description": "Extension detail section title for custom URL handling" - }, - "@downloadMusixmatchLanguageAuto": { - "description": "Subtitle when no language is set" - }, - "@cancelDownloadKeep": { - "description": "Dialog button - keep the active download (do not cancel)" - }, - "libraryFilterSource": "Source", - "@libraryFilterSource": { - "description": "Filter section - source type" - }, - "sectionStorageAccess": "Accès au stockage", - "logFilterBySeverity": "Filtrer les journaux par niveau de gravité", - "libraryFolderNotExist": "Le dossier sélectionné n'existe pas", - "optionsEmbedMetadataSubtitleOn": "Ajouter des métadonnées, des pochettes et des paroles intégrées aux fichiers", - "albumFolderArtistAlbum": "Artiste / Album", - "@albumFolderArtistAlbum": { - "description": "Album folder option" - }, - "allFilesAccessDeniedMessage": "L'autorisation a été refusée. Veuillez activer manuellement l'option « Accès à tous les fichiers » dans les paramètres système.", - "@allFilesAccessDeniedMessage": { - "description": "Message when permission is permanently denied" - }, - "editMetadataSelectEmpty": "Vide uniquement", - "settingsLocalLibrarySubtitle": "Analysez la musique et détectez les doublons", - "@settingsAutoExportFailed": { - "description": "Setting toggle for auto-export" - }, - "cacheCleanupUnusedSubtitle": "Supprimer l'historique des téléchargements orphelins et les entrées manquantes dans la bibliothèque", - "@tutorialSettingsTitle": { - "description": "Tutorial settings page title" - }, - "libraryFilterMetadataMissingGenre": "Genre manquant", - "@appearanceSelectAccentColor": { - "description": "Accessibility label for picking an accent color", - "placeholders": { - "hex": { - "type": "String" - } - } - }, - "setupFolderDescription": "Sélectionnez un dossier dans lequel votre musique téléchargée sera enregistrée.", - "extensionDetailsTags": "Balises", - "unknownArtist": "Artiste inconnu", - "trackFetchOnlineLyrics": "Télécharger depuis Internet", - "snackbarNoActionDefined": "Aucune action n'est associée à ce bouton", - "@snackbarNoActionDefined": { - "description": "Snackbar when an extension button has no action configured" - }, - "downloadAllCount": "Tout télécharger ({count})", - "@downloadAllCount": { - "description": "Download all button with count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "downloadedAlbumDiscHeader": "Disque {discNumber}", - "@backupInvalidFile": { - "description": "Snackbar when the chosen file is not a valid backup" - }, - "@extensionHooksAvailable": { - "description": "Post-processing hooks count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@logIssueTrackNotFoundSuggestion": { - "description": "Diagnostic badge suggestion when a track is unavailable" - }, - "@snackbarFileNotFound": { - "description": "Snackbar - file doesn't exist" - }, - "extensionHealthOnline": "En ligne", - "@extensionHealthOnline": { - "description": "Extension service health status - online" - }, - "settingsSaveDownloadHistorySubtitle": "Conserver les téléchargements terminés dans l'historique et la bibliothèque", - "trackOptionRemoveFromWishlist": "Supprimer de la liste de souhaits", - "extensionsFallbackTitle": "Extensions de secours", - "@extensionsFallbackTitle": { - "description": "Setting and page title for choosing which download extensions can be used during fallback" - }, - "metadataSaveFailedFfmpeg": "Échec de l'enregistrement des métadonnées via FFmpeg", - "@albumFolderAlbumOnly": { - "description": "Album folder option" - }, - "@albumFolderYearAlbumSubtitle": { - "description": "Folder structure example" - }, - "downloadedAlbumDeleteSelected": "Supprimer la sélection", - "selectionSelectPlaylistsToDelete": "Sélectionnez les playlists à supprimer", - "@selectionSelectPlaylistsToDelete": { - "description": "Hint shown when no playlists are selected for deletion" - }, - "storeAddRepoDescription": "Saisissez l'URL d'un dépôt GitHub contenant un fichier registry.json pour parcourir et installer des extensions.", - "appearanceThemeDark": "Sombre", - "downloadedAlbumTapToSelect": "Appuyez sur les titres pour les sélectionner", - "@collectionAddedToFavoriteArtists": { - "description": "Snackbar after adding artist to favorite artists", - "placeholders": { - "artistName": { - "type": "String" - } - } - }, - "@backupRestored": { - "description": "Snackbar after a successful restore" - }, - "nowPlayingLibraryEmpty": "Votre bibliothèque est vide", - "@nowPlayingLibraryEmpty": { - "description": "Snackbar when shuffle library is requested but library has no tracks" - }, - "editMetadataAutoFillNoResults": "Aucune métadonnée correspondante n'a été trouvée en ligne", - "updateDownloading": "Téléchargement en cours...", - "trackLyricsSource": "Source : {source}", - "logFilterLevel": "Niveau", - "logNoLogsYet": "Pas encore de journal", - "cacheSizeOnly": "{size}", - "@cacheSizeOnly": { - "description": "Cache size only", - "placeholders": { - "size": { - "type": "String" - } - } - }, - "trackOpenInService": "Ouvrir dans {serviceName}", - "@trackOpenInService": { - "description": "Button label to open a track in a named music service", - "placeholders": { - "serviceName": { - "type": "String" - } - } - }, - "@cacheLibraryCoverDesc": { - "description": "Description of what library cover cache contains" - }, - "libraryClearConfirmMessage": "Cette opération supprimera toutes les pistes numérisées de votre bibliothèque. Vos fichiers musicaux ne seront pas supprimés.", - "@dialogImportPlaylistMessage": { - "description": "Dialog message - import playlist confirmation", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "extensionsHomeFeedAuto": "Auto", - "searchEmptyResultSubtitle": "Essayez un autre mot-clé", - "@searchEmptyResultSubtitle": { - "description": "Subtitle shown under the empty search result state on the home screen" - }, - "dateToday": "Aujourd'hui", - "a11yOpenItem": "Ouvrir {itemType} {name}", - "@a11yOpenItem": { - "description": "Accessibility label for opening a generic item", - "placeholders": { - "itemType": { - "type": "String" - }, - "name": { - "type": "String" - } - } - }, - "audioAnalysisBitDepth": "Nombre de bits", - "editMetadataFieldTrackTotal": "Total des pistes", - "@editMetadataFieldTrackTotal": { - "description": "Label for total tracks field in the edit metadata sheet" - }, - "@editMetadataFieldDiscTotal": { - "description": "Label for total discs field in the edit metadata sheet" - }, - "replayGainBatchConfirmMessage": "Analyser le niveau sonore et ajouter des balises ReplayGain à {count} piste(s) ?", - "downloadUseAlbumArtistForFoldersAlbumSubtitle": "Dossier nommé d'après la balise « Artiste de l'album »", - "@notifDownloadingUpdate": { - "description": "Notification title while downloading an app update", - "placeholders": { - "version": { - "type": "String" - } - } - }, - "@csvImportTracks": { - "description": "Label shown in quality picker for CSV import", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "trackEditMetadata": "Modifier les métadonnées", - "discographyDownloadAll": "Tout télécharger", - "@discographyDownloadAll": { - "description": "Option - download entire discography" - }, - "@editMetadataFieldAlbum": { - "description": "Chip label for album field in auto-fill selector" - }, - "albumFolderArtistAlbumSubtitle": "Albums/Nom de l'artiste/Titre de l'album/", - "extensionHealthServiceUnknown": "État du service inconnu", - "navHome": "Accueil", - "queueDownloadStarting": "C'est parti...", - "@dialogRemoveExtension": { - "description": "Dialog title - uninstall extension" - }, - "notifLibraryScanProgressNoTotal": "{scanned} fichiers analysés • {percentage} %", - "@appearanceAmoledDark": { - "description": "Theme option - pure black" - }, - "qualityHiResFlac": "FLAC haute résolution", - "selectionSelected": "{count} sélectionnés", - "extensionDetailsInformation": "Information", - "@extensionDetailsInformation": { - "description": "Section title for extension metadata information" - }, - "discographyDownload": "Télécharger la discographie", - "editMetadataFieldCopyright": "Droits d'auteur", - "@setupOpenSettings": { - "description": "Button to open system settings" - }, - "libraryFilterSort": "Trier", - "cacheLibraryCoverDesc": "Pochettes extraites des fichiers musicaux locaux. Elles seront extraites à nouveau lors de la prochaine analyse.", - "dialogRemoveExtension": "Supprimer l'extension", - "backupExportSectionTitle": "Créer une sauvegarde", - "downloadEmbedLyricsDisabled": "Activez d'abord l'intégration des métadonnées", - "openInOtherServices": "Ouvrir dans d'autres services", - "actionSelectAll": "Tout sélectionner", - "settingsDownloadNetworkSubtitle": "Choisissez le réseau à utiliser pour les téléchargements. Si vous sélectionnez « Wi-Fi uniquement », les téléchargements seront interrompus lorsque vous utilisez les données mobiles.", - "downloadFolderOrganization": "Organisation du dossier", - "tutorialWelcomeTip2": "Choose from the audio qualities offered by your download provider", - "@tutorialWelcomeTip2": { - "description": "Tutorial welcome tip 2" - }, - "selectionAllSelected": "Toutes les pistes sélectionnées", - "@selectionAllSelected": { - "description": "Status - all items selected" - }, - "settingsLogsSubtitle": "Consulter les journaux de l'application pour le débogage", - "albumFolderYearAlbumSubtitle": "Albums/[2005] Titre de l'album/", - "cancelDownloadKeep": "Conserver", - "optionsDetailedLoggingOn": "Des journaux détaillés sont enregistrés", - "safMigrationMessage2": "Veuillez sélectionner à nouveau votre dossier de téléchargement pour passer au nouveau système de stockage.", - "@storeChangeRepoTooltip": { - "description": "Tooltip for the change-repository icon button in the app bar" - }, - "regionCountryJP": "Japon", - "notifUpdateFailed": "Échec de la mise à jour", - "downloadCreatePlaylistSourceFolderRedundant": "Géré par les paramètres d'organisation des dossiers", - "@trackLyricsSaved": { - "description": "Snackbar after lyrics saved", - "placeholders": { - "fileName": { - "type": "String" - } - } - }, - "downloadLocationSubtitle": "Choisissez l'emplacement où enregistrer vos morceaux téléchargés", - "trackConvertActionLabelLossless": "{sourceFormat} → {targetFormat} ({quality})", - "lyricsProvidersDisabledSection": "Désactivés ({count})", - "@dateDaysAgo": { - "description": "Relative date - days ago", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "librarySourceLocal": "Locale", - "backupContentsExtensions": "{count, plural, =1{1 extension} other{{count} extensions}}", - "sectionService": "Service", - "lyricsProviderQqMusicDesc": "QQ Music (idéal pour écouter des titres chinois, via un proxy)", - "@lyricsProviderQqMusicDesc": { - "description": "Description for QQ Music provider" - }, - "cacheCleanupUnusedDesc": "Supprimer les entrées orphelines de l'historique des téléchargements et de la bibliothèque pour les fichiers manquants.", - "selectionTapPlaylistsToSelect": "Appuyez sur les playlists pour les sélectionner", - "notifUpdateFailedBody": "Impossible de télécharger la mise à jour. Veuillez réessayer plus tard.", - "downloadNeteaseIncludeTranslationDisabled": "Paroles originales uniquement", - "artistPopular": "Populaire", - "extensionRemoveButton": "Supprimer l'extension", - "allFilesAccessEnabledSubtitle": "Peut écrire dans n'importe quel dossier", - "@allFilesAccessEnabledSubtitle": { - "description": "Subtitle when all files access is enabled" - }, - "extensionsSearchProvider": "Moteur de recherche", - "tutorialWelcomeDesc": "Learn how to find music with extensions, choose the quality you want, and manage downloads in SpotiFLAC Mobile.", - "selectionBatchConvertConfirmTitle": "Conversion par lots", - "extensionMetadataProvider": "Fournisseur de métadonnées", - "queueDownloadedFileMissing": "Fichier téléchargé manquant", - "logClearLogs": "Effacer les journaux", - "@downloadAppleQqMultiPerson": { - "description": "Setting for word-by-word multi-person lyrics from Apple Music and QQ Music" - }, - "tutorialWelcomeTip1": "Search with an installed extension or paste a supported music link", - "@tutorialWelcomeTip1": { - "description": "Tutorial welcome tip 1" - }, - "logIssueRateLimitedSuggestion": "Attendez quelques minutes avant de réessayer", - "downloadAllowLocalNetworkEnabled": "Les requêtes vers des adresses locales ou privées sont autorisées (pour un proxy local ou un DNS personnalisé)", - "@regionCountryUS": { - "description": "Country name for SongLink region picker" - }, - "trackArtist": "Artiste", - "extensionCustomUrlHandling": "Gestion des URL personnalisées", - "appearanceDynamicColorSubtitle": "Utilisez les couleurs de votre fond d'écran", - "@appearanceDynamicColorSubtitle": { - "description": "Subtitle for dynamic color" - }, - "searchSortDefault": "Par défaut", - "@downloadFallbackExtensions": { - "description": "Settings item for configuring fallback extension providers" + "@downloadAlbumFolderStructure": { + "description": "Setting - album folder organization" }, "albumFolderStructureDescription": "Choisissez la structure des dossiers d'albums", "@albumFolderStructureDescription": { "description": "Album folder structure picker description" }, - "libraryBuiltInPreviewPlayerSubtitle": "Uniquement pour des écoutes rapides et locales dans SpotiFLAC Mobile ; non recommandé pour une écoute régulière", - "@libraryBuiltInPreviewPlayerSubtitle": { - "description": "Subtitle for built-in preview player option" + "downloadUseAlbumArtistForFolders": "Utilisez l'artiste de l'album pour les dossiers", + "@downloadUseAlbumArtistForFolders": { + "description": "Setting - choose whether artist folders use Album Artist or Track Artist" }, - "storageModeAppFolder": "Dossier « Applications » (recommandé)", - "@actionPause": { - "description": "Action button - pause download" + "downloadUsePrimaryArtistOnly": "Artiste principal uniquement pour les dossiers", + "@downloadUsePrimaryArtistOnly": { + "description": "Setting - strip featured artists from folder name" }, - "actionPaste": "Coller", - "extensionSettingsCount": "{count} {count, plural, =1{paramètre} other{paramètres}}", - "downloadNativeWorker": "Tâche de téléchargement native", - "releaseTypeEp": "EP", - "@releaseTypeEp": { - "description": "Badge label for EP releases" + "downloadUsePrimaryArtistOnlyEnabled": "Les noms des artistes mis en avant ont été supprimés du nom du dossier (par exemple : Justin Bieber, Quavo → Justin Bieber)", + "@downloadUsePrimaryArtistOnlyEnabled": { + "description": "Subtitle when primary artist only is enabled" }, - "snackbarExtensionInstalledEnable": "{extensionName} est installée. Activez-la dans Paramètres > Extensions", - "cacheRefreshStats": "Actualiser les statistiques", - "collectionPlaylistChangeCover": "Changer l'image de couverture", - "@collectionPlaylistChangeCover": { - "description": "Bottom sheet action to pick a custom cover image for a playlist" + "downloadUsePrimaryArtistOnlyDisabled": "Nom complet de l'artiste utilisé pour le nom du dossier", + "@downloadUsePrimaryArtistOnlyDisabled": { + "description": "Subtitle when primary artist only is disabled" }, - "optionsClearHistory": "Effacer l'historique des téléchargements", - "trackGenre": "Genre", - "snackbarSelectedPlaylistsEmpty": "Les playlists sélectionnées ne contiennent aucun morceau", - "collectionAddedTracksToPlaylist": "Ajout de {count} {count, plural, =1{titre} other{titres}} à {playlistName}", - "downloadNeteaseIncludeRomanization": "Netease : inclure la romanisation", - "libraryFilterMetadataMissingArtist": "Artiste manquant", - "extensionsNoCustomSearch": "Aucune extension avec recherche personnalisée", - "@extensionsTitle": { - "description": "Extensions page title" + "downloadSelectQuality": "Sélectionner la qualité", + "@downloadSelectQuality": { + "description": "Dialog title - choose audio quality" }, - "extensionDownloadProvider": "Fournisseur de téléchargement", - "@extensionDownloadProvider": { - "description": "Capability - provides downloads" - }, - "lyricsMode": "Mode Paroles", - "aboutReportIssueSubtitle": "Signalez tout problème que vous rencontrez", - "@downloadSeparateSinglesFolder": { - "description": "Setting - separate folder for singles" + "downloadFrom": "Télécharger depuis", + "@downloadFrom": { + "description": "Label - download source" }, "appearanceAmoledDark": "Noir Amoled", - "logIssueNetworkErrorDescription": "Problèmes de connexion détectés", - "folderOrganizationByArtistAlbumSubtitle": "Dossiers imbriqués pour les artistes et les albums", - "@libraryForceFullScanSubtitle": { - "description": "Subtitle for force full scan button" + "@appearanceAmoledDark": { + "description": "Theme option - pure black" }, - "setupGrantPermission": "Accorder l'autorisation", - "lyricsProvidersDescription": "Activer, désactiver et réorganiser les sources de paroles. Les sources sont parcourues de haut en bas jusqu'à ce que les paroles soient trouvées.", - "dateDaysAgo": "Il y a {count} jours", - "extensionsHomeFeedDescription": "Choisissez l'extension qui affiche le fil d'actualité sur l'écran principal", - "downloadLossyMp3Subtitle": "Compatibilité optimale, environ 10 Mo par piste", - "@downloadLossyMp3Subtitle": { - "description": "Subtitle for MP3 320kbps lossy option" - }, - "nowPlayingDetails": "Détails", - "collectionWishlistEmptyTitle": "La liste de souhaits est vide", - "downloadAppleQqMultiPersonEnabled": "Étiquettes d'intervenants incluses pour les duos et les morceaux en groupe", - "@snackbarExtensionUpdatedVersion": { - "description": "Snackbar after updating an extension from the repo tab", - "placeholders": { - "extensionName": { - "type": "String" - }, - "version": { - "type": "String" - } - } - }, - "extensionHealthServiceDegraded": "Service perturbé", - "selectionConvertNoConvertible": "Aucune piste convertible sélectionnée", - "setupStorageGranted": "Autorisation de stockage accordée !", - "downloadAllowLocalNetwork": "Autoriser l'accès au réseau local", - "nowPlayingNoLyrics": "Ce fichier ne contient pas de paroles", - "selectionDeleteTracksCount": "Supprimer {count} {count, plural, =1{titre} other{titres}}", - "@selectionDeleteTracksCount": { - "description": "Button label for deleting selected tracks", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@libraryForceFullScan": { - "description": "Button to force a complete rescan of library" - }, - "notifLibraryScanExcluded": "{count} exclus", - "@aboutPaxsenixSubtitle": { - "description": "Subtitle for Paxsenix special thanks entry on the about page" - }, - "setupChangeFolderTooltip": "Changer de dossier", - "logIssueIspBlockingDescription": "Il se peut que votre fournisseur d'accès Internet bloque l'accès aux services de téléchargement", - "@logIssueIspBlockingDescription": { - "description": "Diagnostic badge description for ISP blocking" - }, - "libraryClear": "Vider la bibliothèque", - "collectionRemoveFromPlaylist": "Supprimer de la playlist", - "@collectionRemoveFromPlaylist": { - "description": "Tooltip for removing track from playlist" - }, - "backupIncludeSecrets": "Inclure les informations d'identification de l'extension", - "notifDownloadsFinishedBody": "{completed, plural, =1{1 titre téléchargé} other{{completed} titres téléchargés}}, {failed, plural, =1{1 échec} other{{failed} échecs}}", - "storeCategoryMetadata": "Métadonnées", - "@trackLyricsEmbedded": { - "description": "Snackbar - lyrics saved to file" - }, - "editMetadataFieldDiscTotal": "Total des disques", - "tutorialLibraryTip1": "Manage active, pending, and completed downloads from the Library queue", - "playlistsCount": "{count, plural, =1{1 playlist} other{{count} playlists}}", - "downloadCreatePlaylistSourceFolderDisabled": "Tous les morceaux sont enregistrés directement dans le dossier de téléchargement", - "@downloadFallbackExtensionsSubtitle": { - "description": "Subtitle for fallback extensions item" - }, - "libraryFilterLocal": "Locale", - "tutorialDownloadInProgressSemantics": "Téléchargement en cours", - "searchSortDurationLong": "Durée (la plus longue)", - "@appearanceLanguage": { - "description": "Language setting title" - }, - "libraryAbout": "À propos de la bibliothèque locale", - "@libraryAbout": { - "description": "Section header for about info" - }, - "cueSplitNoAudioFile": "Fichier audio introuvable pour cette liste CUE", - "notifUpdateReadyBody": "SpotiFLAC v{version} a été téléchargé. Appuyez pour l'installer.", - "appearanceSelectAccentColor": "Sélectionnez une couleur d'accentuation {hex}", - "@homeAlbumInfoUnavailable": { - "description": "Snackbar when album info cannot be loaded" - }, - "trackReplayGain": "Réanalyser ReplayGain", - "downloadSeparateSinglesFolder": "Dossier dédié aux titres individuels", - "trackAlbumArtist": "Artiste de l'album", - "qualityFlacLossless": "FLAC sans perte", - "@extensionVerificationHelpMessageWaiting": { - "description": "Dialog message when verification may need manual browser help" - }, - "tutorialSettingsTitle": "Personnalisez votre expérience", - "extensionActionFailed": "L'action a échoué", - "@storeEmptyNoResults": { - "description": "Message when search/filter returns no results" - }, - "downloadAppleQqMultiPerson": "Apple / QQ : Paroles pour plusieurs personnes", - "downloadFallbackExtensionsSubtitle": "Choisissez les extensions pouvant servir de solution de secours", - "storeExtensionsCount": "{count} {count, plural, =1{extension} other{extensions}}", - "trackCoverNoEmbeddedArt": "Aucune pochette d'album n'a été trouvée", - "@trackCoverNoEmbeddedArt": { - "description": "Message shown when a track file has no embedded cover art" - }, - "snackbarExtensionUpdatedVersion": "{extensionName} a été mis à jour vers la version {version}", - "setupStorageAccessMessageAndroid11": "Depuis Android 11, l'autorisation « Accès à tous les fichiers » est requise pour enregistrer des fichiers dans le dossier de téléchargement de votre choix.", - "notifDownloadsFinished": "Téléchargements terminés ({completed} terminé, {failed} en échec)", - "notifLibraryScanProgressWithTotal": "{scanned}/{total} fichiers • {percentage} %", - "optionsPrimaryProvider": "Fournisseur principal", - "@optionsPrimaryProvider": { - "description": "Main search provider setting" - }, - "logIssueTrackNotFoundSuggestion": "Il se peut que ce morceau ne soit pas disponible en qualité sans perte", - "collectionAddedToLoved": "\"{trackName}\" ajouté aux Favoris", - "albumFolderArtistAlbumFlat": "Artiste / Album (singles)", - "homeAlbumInfoUnavailable": "Informations sur l'album non disponibles", - "settingsLyrics": "Paroles", - "extensionVerificationBrowserExternal": "Externe", - "regionCountryIN": "Inde", - "extensionHealthUnknown": "Inconnu", - "backupContentsWishlist": "{count} liste de souhaits {count, plural, =1{titre} other{titres}}", - "settingsAutoExportFailed": "Échec de l'exportation automatique des téléchargements", - "logFilterSection": "Filtre", - "dialogDiscardChanges": "Ignorer les modifications ?", - "@qualityHiResFlacSubtitle": { - "description": "Technical spec for hi-res" - }, - "searchTracks": "Titres", - "searchAlbums": "Albums", - "trackConvertFormat": "Convertir le format", - "metadataProviderPriorityTitle": "Priorité des métadonnées", - "libraryFolderHint": "Appuyez pour sélectionner un dossier", - "downloadedAlbumDeleteMessage": "Souhaitez-vous supprimer {count} {count, plural, =1{piste} other{pistes}} de cet album ?\n\nCela supprimera également les fichiers de l'espace de stockage.", - "@downloadedAlbumDeleteMessage": { - "description": "Delete confirmation with count", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "trackAlbum": "Album", - "updateAvailable": "Mise à jour disponible", - "optionsEmbedLyrics": "Intégrer les paroles", - "trackReEnrichProgress": "Réenrichissement des métadonnées...", - "@trackReEnrichProgress": { - "description": "Snackbar while re-enriching metadata" - }, - "audioAnalysisPeak": "Pic", - "@audioAnalysisPeak": { - "description": "Peak amplitude metric label" - }, - "optionsExtensionStoreSubtitle": "Afficher l'onglet « Dépôt » dans le menu de navigation", - "settingsTitle": "Paramètres", - "@settingsAbout": { - "description": "Settings section - app info" - }, - "cacheExploreFeed": "Explorer le cache des flux", - "@dialogDownloadPlaylistsMessage": { - "description": "Dialog message for bulk playlist download confirmation", - "placeholders": { - "trackCount": { - "type": "int" - }, - "playlistCount": { - "type": "int" - } - } - }, - "downloadedAlbumSelectedCount": "{count} sélectionnés", - "downloadAskQualitySubtitle": "Afficher le sélecteur de qualité pour chaque téléchargement", - "filenameShowAdvancedTags": "Afficher les balises avancées", - "@filenameShowAdvancedTags": { - "description": "Toggle label for showing advanced filename tags" - }, - "@editMetadataFieldComment": { - "description": "Label for comment field in the edit metadata sheet" - }, - "downloadFallbackExtensions": "Extensions de secours", - "downloadAlbumArtistMetadataFull": "Métadonnées de l'artiste de l'album : complètes", - "cacheLibraryCover": "Cache de couverture de bibliothèque", - "actionShuffle": "Lecture aléatoire", - "backupCreated": "Sauvegarde créée", - "downloadLossyAacSubtitle": "Compatibilité optimale avec les appareils mobiles, format M4A", - "actionCreate": "Créer", - "snackbarAddedToQueueGeneric": "Ajouté à la file d'attente", - "downloadedAlbumDownloadedCount": "{count} téléchargements", - "snackbarLoadingCueSheet": "Chargement de la liste CUE...", - "@trackCoverClearSelected": { - "description": "Tooltip for clearing the newly selected cover art" - }, - "aboutOriginalCreator": "Créateur de la version originale de SpotiFLAC", - "a11yTrackByArtist": "{trackName} de {artistName}", - "audioAnalysisDynamicRange": "Plage dynamique", - "homeChangeSearchProviderTooltip": "Changer de moteur de recherche", - "loadingSharedLink": "Chargement du lien partagé...", - "lyricsModeEmbedSubtitle": "Paroles enregistrées dans les métadonnées FLAC", - "setupNotificationBackgroundDescription": "Recevez des notifications sur la progression et la fin du téléchargement. Cela vous permet de suivre les téléchargements lorsque l'application est en arrière-plan.", - "snackbarViewQueue": "Afficher la file d'attente", - "@audioAnalysisDuration": { - "description": "Duration metric label" - }, - "downloadSeparateSinglesDisabled": "Les singles et les albums sont enregistrés dans le même dossier", - "backupRestored": "La sauvegarde a été restaurée avec succès", - "trackConvertConfirmMessageLosslessCapped": "Convertir du format {sourceFormat} au format {targetFormat} ({quality}) ?\n\nLe fichier de sortie conservera un codec sans perte, mais la profondeur de bits et la fréquence d'échantillonnage seront limitées. Le fichier d'origine sera supprimé après la conversion.", - "@trackConvertConfirmMessageLosslessCapped": { - "description": "Confirmation dialog message for capped lossless conversion of a single file", - "placeholders": { - "sourceFormat": { - "type": "String" - }, - "targetFormat": { - "type": "String" - }, - "quality": { - "type": "String" - } - } - }, - "discographySelectAlbumsSubtitle": "Choisissez des albums ou des titres spécifiques", - "@discographySelectAlbumsSubtitle": { - "description": "Subtitle for select albums option" - }, - "backupImportSectionDescription": "Sélectionnez un fichier de sauvegarde pour restaurer vos données. Cette opération remplacera les réglages actuels, l'historique et la bibliothèque de cet appareil.", - "errorUrlFetchFailed": "Impossible de charger le contenu de ce lien. Veuillez réessayer.", - "lyricsProviderLyricsPlusDesc": "Paroles de karaoké mot à mot (Apple/Musixmatch/Spotify/QQ, via un proxy)", - "dialogSave": "Sauvegarder", - "trackReEnrichSearching": "Recherche de métadonnées en ligne...", - "regionCountryUS": "États-Unis", - "audioAnalysisDescription": "Vérifier la qualité sans perte à l'aide d'une analyse spectrale", - "downloadFilenameFormat": "Nom du fichier", - "cueSplitTitle": "Fiche CUE fractionnée", - "settingsAppSubtitle": "Mises à jour, données, dépôt d'extension, débogage", - "@settingsAppSubtitle": { - "description": "Subtitle for app settings" - }, - "@setupPermissionRequiredMessage": { - "description": "Generic permission required message", - "placeholders": { - "permissionType": { - "type": "String" - } - } - }, - "errorMissingExtensionSource": "Impossible de charger {item} : source de l'extension manquante", - "albumFolderAlbumOnlySubtitle": "Albums/Nom de l'album/", - "logIssueTrackNotFoundLabel": "PISTE INTROUVABLE", - "extensionVerificationHelpTitleManual": "Lancer la vérification manuellement", - "dialogDiscard": "Ignorer", - "storageModeSaf": "Dossier personnalisé (SAF)", - "errorRateLimited": "Débit limité", - "downloadSelectQuality": "Sélectionner la qualité", - "dialogDownloadPlaylistsMessage": "Télécharger {trackCount} {trackCount, plural, =1{titre} other{titres}} depuis {playlistCount} {playlistCount, plural, =1{playlist} other{playlists}} ?", - "collectionFoldersTitle": "Mes dossiers", - "progressFetchingMetadata": "Récupération des métadonnées... {current}/{total}", - "settingsDownloadNetworkAny": "Wi-Fi + données mobiles", - "audioAnalysisDuration": "Durée", - "audioAnalysisAnalyzing": "Analyse audio en cours...", - "extensionVerificationHelpMessageWaiting": "Si le navigateur ne s'est pas ouvert, ou si la vérification s'est terminée sans que vous ne soyez redirigé vers SpotiFLAC Mobile, ouvrez à nouveau ce lien ou copiez-le manuellement.", - "editMetadataFieldDiscNum": "Disque n°", - "@editMetadataFieldDiscNum": { - "description": "Chip label for disc number field in auto-fill selector" - }, - "@noTracksFoundForAlbum": { - "description": "Empty state message when an album has no tracks" - }, - "previewPlay": "Écouter un aperçu", - "setupPermissionRequiredMessage": "L'autorisation {permissionType} est requise pour profiter pleinement de l'application. Vous pourrez modifier ce paramètre ultérieurement dans les Paramètres.", - "aboutVersion": "Version", - "qualityHiResFlacSubtitle": "24 bits / jusqu'à 96 kHz", - "audioAnalysisSamples": "Échantillons", - "libraryFilterQualityHiRes": "Haute résolution (24 bits)", - "sectionMetadataProviders": "Fournisseurs", - "@sectionMetadataProviders": { - "description": "Settings section header for metadata providers" - }, - "trackCopyright": "Droits d'auteur", - "libraryForceFullScanSubtitle": "Réanalysez tous les fichiers en ignorant le cache", - "trackCopiedToClipboard": "Copié dans le presse-papiers", - "optionsEmbedMetadata": "Intégrer des métadonnées", - "collectionAddedTracksToPlaylistWithExisting": "Ajout de {count} {count, plural, =1{titre} other{titres}} à {playlistName} ({alreadyCount} titres déjà présents dans la playlist)", - "@collectionAddedTracksToPlaylistWithExisting": { - "description": "Snackbar after adding multiple tracks to a playlist when some were already present", - "placeholders": { - "count": { - "type": "int" - }, - "playlistName": { - "type": "String" - }, - "alreadyCount": { - "type": "int" - } - } - }, - "storeCategoryIntegration": "Intégration", - "storeClearFilters": "Effacer les filtres", - "navSettings": "Paramètres", - "@homeRecent": { - "description": "Section header for recent searches" - }, - "sectionApp": "Application", - "@sectionLanguage": { - "description": "Settings section header for language" - }, - "downloadFilterContributingDisabled": "Chaîne « Artiste » de l'album complet utilisée", - "albumFolderArtistAlbumSinglesSubtitle": "Artiste/Album/ et Artiste/Singles/", - "collectionDeletePlaylistsMessage": "Supprimer {count} {count, plural, =1{playlist} other{playlists}}?", - "lyricsProvidersSaved": "Priorité du fournisseur de paroles enregistrée", - "@trackReplayGainFailed": { - "description": "Snackbar message when ReplayGain scan/write fails" - }, - "trackTrackName": "Nom de la piste", - "homeRecent": "Récent", - "recentEmpty": "Aucun élément récent pour le moment", - "cacheClearAll": "Vider tout le cache", - "trackReEnrichFieldReleaseInfo": "Date & ISRC", - "regionCountryMX": "Mexique", - "a11yOpenAlbumByArtistTrackCount": "Ouvrir l'album {albumName} de {artistName}, {trackCount} titres", - "editMetadataFieldAlbum": "Album", - "settingsAbout": "À propos", - "libraryFilterTitle": "Filtres", - "cleanupOrphanedDownloadsResult": "{count} entrées orphelines ont été supprimées de l'historique", - "extensionHooksAvailable": "{count} crochet(s) disponibles", - "backupContentsSettings": "Paramètres de l'application", - "trackLyricsEmbedded": "Les paroles ont été intégrées avec succès", - "optionsUpdateChannelPreview": "Accédez aux versions préliminaires", - "collectionAddedToFavoriteArtists": "« {artistName} » a été ajouté à vos artistes préférés", - "libraryForceFullScan": "Lancer une analyse complète", - "snackbarProviderPrioritySaved": "Priorité du fournisseur enregistrée", - "collectionFavoriteArtistsEmptySubtitle": "Appuyez sur le cœur sur la page d'un artiste pour le garder ici", - "libraryBuiltInPlayerInfo": "Le lecteur intégré est un outil de prévisualisation permettant de vérifier rapidement les morceaux stockés localement. Utilisez un lecteur de musique externe pour les écouter.", - "extensionServiceStatus": "État du service", - "dateWeeksAgo": "Il y a {count} semaines", - "historyFilterSingles": "Titres", - "tutorialSettingsTip2": "Set quality, concurrency, filenames, and conversion preferences", - "trackLyricsSaved": "Paroles enregistrées dans {fileName}", - "cacheClearAllConfirmTitle": "Vider tout le cache ?", - "noTracksFoundForAlbum": "Aucun morceau trouvé pour cet album", - "sectionLanguage": "Langue", - "@logIssueTrackNotFoundDescription": { - "description": "Diagnostic badge description when a track is unavailable" - }, - "setupSelectFolder": "Sélectionner un dossier", - "dateYesterday": "Hier", - "collectionAddToPlaylist": "Ajouter à la playlist", - "snackbarUnsupportedAudioFormat": "Format audio non pris en charge", - "libraryScanCancelled": "Analyse annulée", - "appearanceLanguage": "Langue de l'application", - "extensionsTitle": "Extensions", - "dialogImportPlaylistMessage": "{count} titres ont été trouvés dans le fichier de la playlist. Voulez-vous les ajouter à la file d'attente de téléchargement ?", - "permissionNotification": "Notification", - "notifUpdateReady": "Prêt pour la mise à jour", - "lyricsModeDescription": "Choisissez comment les paroles sont enregistrées avec vos téléchargements", - "downloadFrom": "Télécharger depuis", - "collectionWishlistEmptySubtitle": "Appuyez sur le signe « + » à côté des morceaux pour enregistrer ceux que vous souhaitez télécharger plus tard", - "cueSplitSplitting": "Fractionnement de la liste CUE... ({current}/{total})", - "trackOptionAddToWishlist": "Ajouter à la liste de souhaits", - "settingsBackup": "Sauvegarde & Restauration", - "aboutPaxsenixSubtitle": "Proxy de paroles pour Musixmatch, Netease, Apple Music, QQ Music, Spotify, Deezer, YouTube, Kugou et Genius", - "notifDownloadCompleteCount": "Téléchargement terminé ({completed}/{total})", - "extensionsNoDownloadProvider": "Aucune extension avec le fournisseur de téléchargement", - "libraryFilterSortGenreAsc": "Genre (A-Z)", - "trackReplayGainFailed": "Impossible d'ajouter les balises ReplayGain", - "collectionPlaylistRemoveCover": "Supprimer l'image de couverture", - "storeEmptyNoResults": "Aucune extension trouvée", - "logIssueTrackNotFoundDescription": "Certains titres n'ont pas pu être trouvés sur les plateformes de téléchargement", - "editMetadataFieldComment": "Commentaire", - "settingsMetadata": "Métadonnées", - "settingsCache": "Stockage & Cache", - "providerPriorityFallbackExtensionsHint": "Seules les extensions activées disposant de la fonctionnalité « fournisseur de téléchargement » sont répertoriées ici.", - "libraryFilterAll": "Tout", - "notifDownloadingUpdate": "Télécharger SpotiFLAC v{version}", - "extensionsProviderPrioritySection": "Priorité accordée aux prestataires", - "storeChangeRepoTooltip": "Changer de dépôt", - "snackbarFailedToInstall": "Échec de l'installation de l'extension", - "libraryScanSubtitle": "Recherchez des fichiers audio", - "snackbarExtensionInstalled": "{extensionName} est installée.", - "setupOpenSettings": "Ouvrir les paramètres", - "extensionsInstalledSection": "Extensions installées", - "aboutLinks": "Liens", - "trackCoverClearSelected": "Supprimer la pochette sélectionnée", - "libraryAutoScanWeekly": "Hebdomadaire", - "downloadMusixmatchLanguageAuto": "Auto (langue d'origine)", - "optionsDefaultSearchTab": "Onglet de recherche par défaut", - "downloadPrimaryArtistOnlyOn": "Primaire uniquement : Activé", - "folderOrganizationDescription": "Classer les fichiers téléchargés dans des dossiers", - "@folderOrganizationDescription": { - "description": "Folder organization sheet description" - }, - "lyricsModeEmbed": "Intégrer dans un fichier", - "trackReEnrichFfmpegFailed": "Échec de l'intégration des métadonnées FFmpeg", - "@extensionsSearchProviderDescription": { - "description": "Search provider setting description" - }, - "libraryFilterQualityLossy": "Avec perte", - "actionPause": "Pause", - "csvImportTracks": "{count} pistes issues d'un fichier CSV", - "actionGo": "Aller", - "sectionDebug": "Débogage", - "editMetadataFieldDate": "Date", - "timeHoursAgo": "{count, plural, =1{il y a 1 heure} other{il y a {count} heures}}", - "sectionPerformance": "Performances", - "extensionsDownloadPrioritySubtitle": "Définissez l'ordre des services de téléchargement", - "cacheAppDirectoryDesc": "Réponses HTTP, données WebView et autres données temporaires de l'application.", - "sectionData": "Données", - "notifFinalizingTrack": "Finalisation de {trackName}", - "snackbarFileNotFound": "Fichier introuvable", - "extensionQualityOptions": "Options de qualité", - "extensionVerificationBrowserSubtitleExternal": "Ouvrez d'abord les défis dans le navigateur par défaut", - "backupInvalidFile": "Ce fichier n'est pas une sauvegarde SpotiFLAC valide", - "storeRepoDialogTitle": "Répertoire des extensions", - "extensionsSearchProviderDescription": "Choisissez le service que vous souhaitez utiliser pour rechercher des morceaux", - "albumFolderAlbumOnly": "Album uniquement", - "nowPlayingOpenInExternalPlayer": "Ouvrir dans un lecteur externe", - "cueSplitButton": "Diviser en pistes", - "updateRequiredTitle": "Mise à jour requise", - "@updateRequiredTitle": { - "description": "Title of the mandatory update dialog shown when the installed version is too old" - }, - "updateRequiredNotice": "Cette version a {count} versions de retard et n'est plus prise en charge. Effectuez la mise à jour pour continuer à utiliser l'application.", - "@updateRequiredNotice": { - "description": "Subtitle of the mandatory update dialog; explains why the dialog cannot be dismissed", - "placeholders": { - "count": { - "type": "int" - } - } + "appearanceAmoledDarkSubtitle": "Fond noir pur", + "@appearanceAmoledDarkSubtitle": { + "description": "Subtitle for AMOLED dark" }, "appearanceHeroAnimations": "Animations des héros", "@appearanceHeroAnimations": { @@ -5891,6 +2131,46 @@ "@appearanceHeroAnimationsSubtitle": { "description": "Subtitle for the Hero animations toggle" }, + "appearanceForceBlur": "Utilisez toujours des effets de flou", + "@appearanceForceBlur": { + "description": "Toggle that forces backdrop blur on even when the device profile disabled it" + }, + "appearanceForceBlurSubtitle": "Activer l'effet de flou de la barre de navigation même sur les appareils où cette option est désactivée par défaut. Cela peut nuire aux performances.", + "@appearanceForceBlurSubtitle": { + "description": "Subtitle for the force-blur toggle" + }, + "queueClearAll": "Tout effacer", + "@queueClearAll": { + "description": "Button - clear all queue items" + }, + "queueClearAllMessage": "Êtes-vous sûr de vouloir supprimer tous les fichiers téléchargés ?", + "@queueClearAllMessage": { + "description": "Clear queue confirmation" + }, + "settingsAutoExportFailed": "Échec de l'exportation automatique des téléchargements", + "@settingsAutoExportFailed": { + "description": "Setting toggle for auto-export" + }, + "settingsAutoExportFailedSubtitle": "Enregistrez automatiquement les téléchargements ayant échoué dans un fichier TXT", + "@settingsAutoExportFailedSubtitle": { + "description": "Subtitle for auto-export setting" + }, + "settingsDownloadNetwork": "Réseau de téléchargement", + "@settingsDownloadNetwork": { + "description": "Setting for network type preference" + }, + "settingsDownloadNetworkAny": "Wi-Fi + données mobiles", + "@settingsDownloadNetworkAny": { + "description": "Network option - use any connection" + }, + "settingsDownloadNetworkWifiOnly": "Wi-Fi uniquement", + "@settingsDownloadNetworkWifiOnly": { + "description": "Network option - only use WiFi" + }, + "settingsDownloadNetworkSubtitle": "Choisissez le réseau à utiliser pour les téléchargements. Si vous sélectionnez « Wi-Fi uniquement », les téléchargements seront interrompus lorsque vous utilisez les données mobiles.", + "@settingsDownloadNetworkSubtitle": { + "description": "Subtitle explaining network preference" + }, "settingsConcurrentDownloads": "Téléchargements simultanés", "@settingsConcurrentDownloads": { "description": "Setting title - how many tracks download at the same time" @@ -5912,6 +2192,854 @@ } } }, + "albumFolderArtistAlbum": "Artiste / Album", + "@albumFolderArtistAlbum": { + "description": "Album folder option" + }, + "albumFolderArtistAlbumSubtitle": "Albums/Nom de l'artiste/Titre de l'album/", + "@albumFolderArtistAlbumSubtitle": { + "description": "Folder structure example" + }, + "albumFolderArtistYearAlbum": "Artiste / [Année] Album", + "@albumFolderArtistYearAlbum": { + "description": "Album folder option with year" + }, + "albumFolderArtistYearAlbumSubtitle": "Albums/Nom de l'artiste/[2005] Nom de l'album/", + "@albumFolderArtistYearAlbumSubtitle": { + "description": "Folder structure example" + }, + "albumFolderAlbumOnly": "Album uniquement", + "@albumFolderAlbumOnly": { + "description": "Album folder option" + }, + "albumFolderAlbumOnlySubtitle": "Albums/Nom de l'album/", + "@albumFolderAlbumOnlySubtitle": { + "description": "Folder structure example" + }, + "albumFolderYearAlbum": "[Année] Album", + "@albumFolderYearAlbum": { + "description": "Album folder option with year" + }, + "albumFolderYearAlbumSubtitle": "Albums/[2005] Titre de l'album/", + "@albumFolderYearAlbumSubtitle": { + "description": "Folder structure example" + }, + "albumFolderArtistAlbumSingles": "Artiste / Album + Singles", + "@albumFolderArtistAlbumSingles": { + "description": "Album folder option with singles inside artist" + }, + "albumFolderArtistAlbumSinglesSubtitle": "Artiste/Album/ et Artiste/Singles/", + "@albumFolderArtistAlbumSinglesSubtitle": { + "description": "Folder structure example" + }, + "albumFolderArtistAlbumFlat": "Artiste / Album (singles)", + "@albumFolderArtistAlbumFlat": { + "description": "Album folder option with singles directly in artist folder" + }, + "albumFolderArtistAlbumFlatSubtitle": "Artiste/Album/ et Artiste/titre.flac", + "@albumFolderArtistAlbumFlatSubtitle": { + "description": "Folder structure example for flat singles" + }, + "downloadedAlbumDeleteSelected": "Supprimer la sélection", + "@downloadedAlbumDeleteSelected": { + "description": "Button - delete selected tracks" + }, + "downloadedAlbumDeleteMessage": "Souhaitez-vous supprimer {count} {count, plural, =1{piste} other{pistes}} de cet album ?\n\nCela supprimera également les fichiers de l'espace de stockage.", + "@downloadedAlbumDeleteMessage": { + "description": "Delete confirmation with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumSelectedCount": "{count} sélectionnés", + "@downloadedAlbumSelectedCount": { + "description": "Selection count indicator", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumTapToSelect": "Appuyez sur les titres pour les sélectionner", + "@downloadedAlbumTapToSelect": { + "description": "Selection hint" + }, + "downloadedAlbumDeleteCount": "Supprimer {count} {count, plural, =1{piste} other{pistes}}", + "@downloadedAlbumDeleteCount": { + "description": "Delete button text with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadedAlbumSelectToDelete": "Sélectionnez les pistes à supprimer", + "@downloadedAlbumSelectToDelete": { + "description": "Placeholder when nothing selected" + }, + "downloadedAlbumDiscHeader": "Disque {discNumber}", + "@downloadedAlbumDiscHeader": { + "description": "Header for disc separator in multi-disc albums", + "placeholders": { + "discNumber": { + "type": "int", + "example": "1" + } + } + }, + "recentTypeArtist": "Artiste", + "@recentTypeArtist": { + "description": "Recent access item type - artist" + }, + "recentTypeAlbum": "Album", + "@recentTypeAlbum": { + "description": "Recent access item type - album" + }, + "recentTypeSong": "Titre", + "@recentTypeSong": { + "description": "Recent access item type - song/track" + }, + "recentTypePlaylist": "Playlist", + "@recentTypePlaylist": { + "description": "Recent access item type - playlist" + }, + "recentEmpty": "Aucun élément récent pour le moment", + "@recentEmpty": { + "description": "Empty state text for recent access list" + }, + "recentClearAllMessage": "Clear all recent activity? Download history and music files will not be deleted.", + "@recentClearAllMessage": { + "description": "Confirmation message before clearing all recent activity" + }, + "recentShowAllDownloads": "Afficher tous les téléchargements", + "@recentShowAllDownloads": { + "description": "Button label to unhide hidden downloads in recent access" + }, + "recentPlaylistInfo": "Playlist : {name}", + "@recentPlaylistInfo": { + "description": "Snackbar message when tapping playlist in recent access", + "placeholders": { + "name": { + "type": "String", + "description": "Playlist name" + } + } + }, + "discographyDownload": "Télécharger la discographie", + "@discographyDownload": { + "description": "Button - download artist discography" + }, + "discographyDownloadAll": "Tout télécharger", + "@discographyDownloadAll": { + "description": "Option - download entire discography" + }, + "discographyDownloadAllSubtitle": "{count} titres issus de {albumCount} albums", + "@discographyDownloadAllSubtitle": { + "description": "Subtitle showing total tracks and albums", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographyAlbumsOnly": "Albums uniquement", + "@discographyAlbumsOnly": { + "description": "Option - download only albums" + }, + "discographyAlbumsOnlySubtitle": "{count} titres issus de {albumCount} albums", + "@discographyAlbumsOnlySubtitle": { + "description": "Subtitle showing album tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySinglesOnly": "Uniquement les singles et les EP", + "@discographySinglesOnly": { + "description": "Option - download only singles" + }, + "discographySinglesOnlySubtitle": "{count} titres issus de {albumCount} singles", + "@discographySinglesOnlySubtitle": { + "description": "Subtitle showing singles tracks count", + "placeholders": { + "count": { + "type": "int" + }, + "albumCount": { + "type": "int" + } + } + }, + "discographySelectAlbums": "Sélectionner des albums...", + "@discographySelectAlbums": { + "description": "Option - manually select albums to download" + }, + "discographySelectAlbumsSubtitle": "Choisissez des albums ou des titres spécifiques", + "@discographySelectAlbumsSubtitle": { + "description": "Subtitle for select albums option" + }, + "discographyFetchingTracks": "Chargement des pistes...", + "@discographyFetchingTracks": { + "description": "Progress - fetching album tracks" + }, + "discographyFetchingAlbum": "Récupération de {current} sur {total}...", + "@discographyFetchingAlbum": { + "description": "Progress - fetching specific album", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "discographySelectedCount": "{count} sélectionnés", + "@discographySelectedCount": { + "description": "Selection count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographyDownloadSelected": "Télécharger la sélection", + "@discographyDownloadSelected": { + "description": "Button - download selected albums" + }, + "discographyAddedToQueue": "{count} titres ont été ajoutés à la file d'attente", + "@discographyAddedToQueue": { + "description": "Snackbar - tracks added from discography", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "discographySkippedDownloaded": "{added} ajouté, {skipped} déjà téléchargé", + "@discographySkippedDownloaded": { + "description": "Snackbar - with skipped tracks count", + "placeholders": { + "added": { + "type": "int" + }, + "skipped": { + "type": "int" + } + } + }, + "discographyNoAlbums": "Aucun album disponible", + "@discographyNoAlbums": { + "description": "Error - no albums found for artist" + }, + "discographyFailedToFetch": "Impossible de récupérer certains albums", + "@discographyFailedToFetch": { + "description": "Error - some albums failed to load" + }, + "sectionStorageAccess": "Accès au stockage", + "@sectionStorageAccess": { + "description": "Section header for storage access settings" + }, + "allFilesAccess": "Accès à tous les fichiers", + "@allFilesAccess": { + "description": "Toggle for MANAGE_EXTERNAL_STORAGE permission" + }, + "allFilesAccessEnabledSubtitle": "Peut écrire dans n'importe quel dossier", + "@allFilesAccessEnabledSubtitle": { + "description": "Subtitle when all files access is enabled" + }, + "allFilesAccessDisabledSubtitle": "Réservé aux dossiers multimédias uniquement", + "@allFilesAccessDisabledSubtitle": { + "description": "Subtitle when all files access is disabled" + }, + "allFilesAccessDescription": "Activez cette option si vous rencontrez des erreurs d'écriture lors de l'enregistrement dans des dossiers personnalisés. À partir d'Android 13, l'accès à certains répertoires est restreint par défaut.", + "@allFilesAccessDescription": { + "description": "Description explaining when to enable all files access" + }, + "allFilesAccessDeniedMessage": "L'autorisation a été refusée. Veuillez activer manuellement l'option « Accès à tous les fichiers » dans les paramètres système.", + "@allFilesAccessDeniedMessage": { + "description": "Message when permission is permanently denied" + }, + "allFilesAccessDisabledMessage": "L'accès à tous les fichiers est désactivé. L'application disposera d'un accès limité au stockage.", + "@allFilesAccessDisabledMessage": { + "description": "Snackbar message when user disables all files access" + }, + "settingsLocalLibrary": "Bibliothèque locale", + "@settingsLocalLibrary": { + "description": "Settings menu item - local library" + }, + "settingsLocalLibrarySubtitle": "Analysez la musique et détectez les doublons", + "@settingsLocalLibrarySubtitle": { + "description": "Subtitle for local library settings" + }, + "settingsCache": "Stockage & Cache", + "@settingsCache": { + "description": "Settings menu item - cache management" + }, + "settingsCacheSubtitle": "Afficher la taille et vider le cache", + "@settingsCacheSubtitle": { + "description": "Subtitle for cache management menu" + }, + "libraryTitle": "Bibliothèque locale", + "@libraryTitle": { + "description": "Library settings page title" + }, + "libraryScanSettings": "Paramètres de numérisation", + "@libraryScanSettings": { + "description": "Section header for scan settings" + }, + "libraryEnableLocalLibrary": "Activer la bibliothèque locale", + "@libraryEnableLocalLibrary": { + "description": "Toggle to enable library scanning" + }, + "libraryEnableLocalLibrarySubtitle": "Analysez et gérez votre bibliothèque musicale", + "@libraryEnableLocalLibrarySubtitle": { + "description": "Subtitle for enable toggle" + }, + "libraryFolder": "Dossier de bibliothèque", + "@libraryFolder": { + "description": "Folder selection setting" + }, + "libraryFolderHint": "Appuyez pour sélectionner un dossier", + "@libraryFolderHint": { + "description": "Placeholder when no folder selected" + }, + "libraryAddFolder": "Add library folder", + "@libraryAddFolder": { + "description": "Action to add another local library source" + }, + "libraryAddFolderSubtitle": "Internal storage, SD card, SSD, or another external drive", + "@libraryAddFolderSubtitle": { + "description": "Supported storage locations for local library sources" + }, + "librarySourceOnline": "Online", + "@librarySourceOnline": { + "description": "Library source is connected and accessible" + }, + "librarySourceOffline": "Offline. Reconnect the storage to restore these tracks", + "@librarySourceOffline": { + "description": "Library source is temporarily disconnected" + }, + "librarySourceDisabled": "Disabled", + "@librarySourceDisabled": { + "description": "Library source has been disabled by the user" + }, + "librarySourceScanCount": "{scanned} of {total} files scanned ({progress}%)", + "@librarySourceScanCount": { + "description": "Live progress for one library folder scan", + "placeholders": { + "scanned": { + "type": "int" + }, + "total": { + "type": "int" + }, + "progress": { + "type": "String" + } + } + }, + "libraryExternalStorage": "External storage", + "@libraryExternalStorage": { + "description": "Label for a removable or external library source" + }, + "libraryRemoveFolder": "Remove library folder", + "@libraryRemoveFolder": { + "description": "Action to remove one indexed library source" + }, + "libraryRemoveFolderMessage": "Remove this folder and its indexed tracks from SpotiFLAC Mobile? Audio files on the storage will not be deleted.", + "@libraryRemoveFolderMessage": { + "description": "Confirmation shown before removing a library source" + }, + "libraryShowDuplicateIndicator": "Afficher l'indicateur de doublons", + "@libraryShowDuplicateIndicator": { + "description": "Toggle for duplicate indicator in search" + }, + "libraryShowDuplicateIndicatorSubtitle": "Afficher lors de la recherche de pistes existantes", + "@libraryShowDuplicateIndicatorSubtitle": { + "description": "Subtitle for duplicate indicator toggle" + }, + "libraryAutoScan": "Analyse automatique", + "@libraryAutoScan": { + "description": "Setting for automatic library scanning" + }, + "libraryAutoScanSubtitle": "Analysez automatiquement votre bibliothèque à la recherche de nouveaux fichiers", + "@libraryAutoScanSubtitle": { + "description": "Subtitle for auto scan setting" + }, + "libraryAutoScanOff": "Désactivée", + "@libraryAutoScanOff": { + "description": "Auto scan disabled" + }, + "libraryAutoScanOnOpen": "À chaque ouverture de l'application", + "@libraryAutoScanOnOpen": { + "description": "Auto scan when app opens" + }, + "libraryAutoScanDaily": "Tous les jours", + "@libraryAutoScanDaily": { + "description": "Auto scan once per day" + }, + "libraryAutoScanWeekly": "Hebdomadaire", + "@libraryAutoScanWeekly": { + "description": "Auto scan once per week" + }, + "libraryActions": "Actions", + "@libraryActions": { + "description": "Section header for library actions" + }, + "libraryScan": "Analyse de la bibliothèque", + "@libraryScan": { + "description": "Button to start library scan" + }, + "libraryScanSubtitle": "Recherchez des fichiers audio", + "@libraryScanSubtitle": { + "description": "Subtitle for scan button" + }, + "libraryScanSelectFolderFirst": "Sélectionnez d'abord un dossier", + "@libraryScanSelectFolderFirst": { + "description": "Message when trying to scan without folder" + }, + "libraryCleanupMissingFiles": "Nettoyage des fichiers manquants", + "@libraryCleanupMissingFiles": { + "description": "Button to remove entries for missing files" + }, + "libraryCleanupMissingFilesSubtitle": "Supprimez les entrées correspondant aux fichiers qui n'existent plus", + "@libraryCleanupMissingFilesSubtitle": { + "description": "Subtitle for cleanup button" + }, + "libraryClear": "Vider la bibliothèque", + "@libraryClear": { + "description": "Button to clear all library entries" + }, + "libraryClearSubtitle": "Supprimez tous les titres numérisés", + "@libraryClearSubtitle": { + "description": "Subtitle for clear button" + }, + "libraryClearConfirmTitle": "Vider la bibliothèque", + "@libraryClearConfirmTitle": { + "description": "Dialog title for clear confirmation" + }, + "libraryClearConfirmMessage": "Cette opération supprimera toutes les pistes numérisées de votre bibliothèque. Vos fichiers musicaux ne seront pas supprimés.", + "@libraryClearConfirmMessage": { + "description": "Dialog message for clear confirmation" + }, + "libraryAbout": "À propos de la bibliothèque locale", + "@libraryAbout": { + "description": "Section header for about info" + }, + "libraryAboutDescription": "Analyse votre bibliothèque musicale existante pour détecter les doublons lors du téléchargement. Prend en charge les formats FLAC, M4A, MP3, Opus et OGG. Les métadonnées sont extraites des balises des fichiers lorsqu'elles sont disponibles.", + "@libraryAboutDescription": { + "description": "Description of local library feature" + }, + "libraryTracksUnit": "{count, plural, =1{piste} other{pistes}}", + "@libraryTracksUnit": { + "description": "Unit label for tracks count (without the number itself)", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "libraryFilesUnit": "{count, plural, =1{fichier} other{fichiers}}", + "@libraryFilesUnit": { + "description": "Unit label for files count during library scanning", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "libraryLastScanned": "Dernière analyse : {time}", + "@libraryLastScanned": { + "description": "Last scan time display", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "libraryLastScannedNever": "Jamais", + "@libraryLastScannedNever": { + "description": "Shown when library has never been scanned" + }, + "libraryScanning": "En cours d'analyse...", + "@libraryScanning": { + "description": "Status during scan" + }, + "libraryScanFinalizing": "Finalisation de la bibliothèque...", + "@libraryScanFinalizing": { + "description": "Status shown after file scanning finishes but library persistence is still running" + }, + "libraryScanProgress": "{progress} % des {total} fichiers", + "@libraryScanProgress": { + "description": "Scan progress display", + "placeholders": { + "progress": { + "type": "String" + }, + "total": { + "type": "int" + } + } + }, + "libraryInLibrary": "Dans la bibliothèque", + "@libraryInLibrary": { + "description": "Badge shown on tracks that exist in local library" + }, + "libraryRemovedMissingFiles": "{count} fichiers manquants ont été supprimés de la bibliothèque", + "@libraryRemovedMissingFiles": { + "description": "Snackbar after cleanup", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "libraryCleared": "Bibliothèque vidée", + "@libraryCleared": { + "description": "Snackbar after clearing library" + }, + "libraryStorageAccessRequired": "Accès au stockage requis", + "@libraryStorageAccessRequired": { + "description": "Dialog title for storage permission" + }, + "libraryStorageAccessMessage": "SpotiFLAC a besoin d'un accès au stockage pour analyser votre bibliothèque musicale. Veuillez lui accorder l'autorisation dans les paramètres.", + "@libraryStorageAccessMessage": { + "description": "Dialog message for storage permission" + }, + "libraryFolderNotExist": "Le dossier sélectionné n'existe pas", + "@libraryFolderNotExist": { + "description": "Error when folder doesn't exist" + }, + "librarySourceDownloaded": "Téléchargé", + "@librarySourceDownloaded": { + "description": "Badge for tracks downloaded via SpotiFLAC" + }, + "librarySourceLocal": "Locale", + "@librarySourceLocal": { + "description": "Badge for tracks from local library scan" + }, + "libraryFilterAll": "Tout", + "@libraryFilterAll": { + "description": "Filter chip - show all library items" + }, + "libraryFilterDownloaded": "Téléchargé", + "@libraryFilterDownloaded": { + "description": "Filter chip - show only downloaded items" + }, + "libraryFilterLocal": "Locale", + "@libraryFilterLocal": { + "description": "Filter chip - show only local library items" + }, + "libraryFilterTitle": "Filtres", + "@libraryFilterTitle": { + "description": "Filter bottom sheet title" + }, + "libraryFilterReset": "Réinitialiser", + "@libraryFilterReset": { + "description": "Reset all filters button" + }, + "libraryFilterApply": "Appliquer", + "@libraryFilterApply": { + "description": "Apply filters button" + }, + "libraryFilterSource": "Source", + "@libraryFilterSource": { + "description": "Filter section - source type" + }, + "libraryFilterQuality": "Qualité", + "@libraryFilterQuality": { + "description": "Filter section - audio quality" + }, + "libraryFilterQualityHiRes": "Haute résolution (24 bits)", + "@libraryFilterQualityHiRes": { + "description": "Filter option - high resolution audio" + }, + "libraryFilterQualityCD": "CD (16 bits)", + "@libraryFilterQualityCD": { + "description": "Filter option - CD quality audio" + }, + "libraryFilterQualityLossy": "Avec perte", + "@libraryFilterQualityLossy": { + "description": "Filter option - lossy compressed audio" + }, + "libraryFilterFormat": "Format", + "@libraryFilterFormat": { + "description": "Filter section - file format" + }, + "libraryFilterMetadata": "Métadonnées", + "@libraryFilterMetadata": { + "description": "Filter section - metadata completeness" + }, + "libraryFilterMetadataComplete": "Métadonnées complètes", + "@libraryFilterMetadataComplete": { + "description": "Filter option - items with complete metadata" + }, + "libraryFilterMetadataMissingAny": "Métadonnées manquantes", + "@libraryFilterMetadataMissingAny": { + "description": "Filter option - items missing any tracked metadata field" + }, + "libraryFilterMetadataMissingYear": "Année manquante", + "@libraryFilterMetadataMissingYear": { + "description": "Filter option - items missing release year/date" + }, + "libraryFilterMetadataMissingGenre": "Genre manquant", + "@libraryFilterMetadataMissingGenre": { + "description": "Filter option - items missing genre" + }, + "libraryFilterMetadataMissingAlbumArtist": "Artiste d'album manquant", + "@libraryFilterMetadataMissingAlbumArtist": { + "description": "Filter option - items missing album artist" + }, + "libraryFilterSort": "Trier", + "@libraryFilterSort": { + "description": "Filter section - sort order" + }, + "libraryFilterSortLatest": "Le plus récent", + "@libraryFilterSortLatest": { + "description": "Sort option - newest first" + }, + "libraryFilterSortOldest": "Le plus ancien", + "@libraryFilterSortOldest": { + "description": "Sort option - oldest first" + }, + "libraryFilterSortAlbumAsc": "Album (A-Z)", + "@libraryFilterSortAlbumAsc": { + "description": "Sort option - album ascending" + }, + "libraryFilterSortAlbumDesc": "Album (Z-A)", + "@libraryFilterSortAlbumDesc": { + "description": "Sort option - album descending" + }, + "libraryFilterSortGenreAsc": "Genre (A-Z)", + "@libraryFilterSortGenreAsc": { + "description": "Sort option - genre ascending" + }, + "libraryFilterSortGenreDesc": "Genre (Z-A)", + "@libraryFilterSortGenreDesc": { + "description": "Sort option - genre descending" + }, + "timeJustNow": "Il y a quelques instants", + "@timeJustNow": { + "description": "Relative time - less than a minute ago" + }, + "timeMinutesAgo": "{count, plural, =1{il y a 1 minute} other{il y a {count} minutes}}", + "@timeMinutesAgo": { + "description": "Relative time - minutes ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "timeHoursAgo": "{count, plural, =1{il y a 1 heure} other{il y a {count} heures}}", + "@timeHoursAgo": { + "description": "Relative time - hours ago", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "tutorialWelcomeTitle": "Bienvenue sur SpotiFLAC Mobile !", + "@tutorialWelcomeTitle": { + "description": "Tutorial welcome page title" + }, + "tutorialWelcomeDesc": "Learn how to find music with extensions, choose the quality you want, and manage downloads in SpotiFLAC Mobile.", + "@tutorialWelcomeDesc": { + "description": "Tutorial welcome page description" + }, + "tutorialWelcomeTip1": "Search with an installed extension or paste a supported music link", + "@tutorialWelcomeTip1": { + "description": "Tutorial welcome tip 1" + }, + "tutorialWelcomeTip2": "Choose from the audio qualities offered by your download provider", + "@tutorialWelcomeTip2": { + "description": "Tutorial welcome tip 2" + }, + "tutorialWelcomeTip3": "Embed metadata, cover art, lyrics, and release information automatically", + "@tutorialWelcomeTip3": { + "description": "Tutorial welcome tip 3" + }, + "tutorialSearchTitle": "Trouver de la musique", + "@tutorialSearchTitle": { + "description": "Tutorial search page title" + }, + "tutorialSearchDesc": "Search with your selected extension or paste a supported music link.", + "@tutorialSearchDesc": { + "description": "Tutorial search page description" + }, + "tutorialDownloadTitle": "Télécharger de la musique", + "@tutorialDownloadTitle": { + "description": "Tutorial download page title" + }, + "tutorialDownloadDesc": "Pick an available quality, start the download, and follow its progress in the queue.", + "@tutorialDownloadDesc": { + "description": "Tutorial download page description" + }, + "tutorialLibraryTitle": "Votre bibliothèque", + "@tutorialLibraryTitle": { + "description": "Tutorial library page title" + }, + "tutorialLibraryDesc": "Downloaded and locally scanned music is organized in your Library.", + "@tutorialLibraryDesc": { + "description": "Tutorial library page description" + }, + "tutorialLibraryTip1": "Manage active, pending, and completed downloads from the Library queue", + "@tutorialLibraryTip1": { + "description": "Tutorial library tip 1" + }, + "tutorialLibraryTip2": "Tap a track to play it with the built-in player", + "@tutorialLibraryTip2": { + "description": "Tutorial library tip 2" + }, + "tutorialLibraryTip3": "Browse tracks, albums, and playlists in list or grid views", + "@tutorialLibraryTip3": { + "description": "Tutorial library tip 3" + }, + "tutorialExtensionsTitle": "Extensions", + "@tutorialExtensionsTitle": { + "description": "Tutorial extensions page title" + }, + "tutorialExtensionsDesc": "Extensions add search, download, metadata, lyrics, and other integrations.", + "@tutorialExtensionsDesc": { + "description": "Tutorial extensions page description" + }, + "tutorialExtensionsTip1": "Consultez l'onglet « Dépôt » pour découvrir des extensions utiles", + "@tutorialExtensionsTip1": { + "description": "Tutorial extensions tip 1" + }, + "tutorialExtensionsTip2": "Choose providers for search, downloads, metadata, and fallbacks", + "@tutorialExtensionsTip2": { + "description": "Tutorial extensions tip 2" + }, + "tutorialExtensionsTip3": "Connect accounts when required and keep extensions up to date", + "@tutorialExtensionsTip3": { + "description": "Tutorial extensions tip 3" + }, + "tutorialSettingsTitle": "Personnalisez votre expérience", + "@tutorialSettingsTitle": { + "description": "Tutorial settings page title" + }, + "tutorialSettingsDesc": "Fine-tune downloads, playback, Library behavior, appearance, and storage.", + "@tutorialSettingsDesc": { + "description": "Tutorial settings page description" + }, + "tutorialSettingsTip1": "Modifier l'emplacement de téléchargement et l'organisation des dossiers", + "@tutorialSettingsTip1": { + "description": "Tutorial settings tip 1" + }, + "tutorialSettingsTip2": "Set quality, concurrency, filenames, and conversion preferences", + "@tutorialSettingsTip2": { + "description": "Tutorial settings tip 2" + }, + "tutorialSettingsTip3": "Personnaliser le thème et l'apparence de l'application", + "@tutorialSettingsTip3": { + "description": "Tutorial settings tip 3" + }, + "tutorialReadyMessage": "You're ready. Select your extensions, then search or paste a supported link.", + "@tutorialReadyMessage": { + "description": "Tutorial completion message" + }, + "libraryForceFullScan": "Lancer une analyse complète", + "@libraryForceFullScan": { + "description": "Button to force a complete rescan of library" + }, + "libraryForceFullScanSubtitle": "Réanalysez tous les fichiers en ignorant le cache", + "@libraryForceFullScanSubtitle": { + "description": "Subtitle for force full scan button" + }, + "cleanupOrphanedDownloads": "Nettoyage des téléchargements orphelins", + "@cleanupOrphanedDownloads": { + "description": "Button to remove history entries for deleted files" + }, + "cleanupOrphanedDownloadsSubtitle": "Supprimez les entrées de l'historique correspondant aux fichiers qui n'existent plus", + "@cleanupOrphanedDownloadsSubtitle": { + "description": "Subtitle for orphaned cleanup button" + }, + "cleanupOrphanedDownloadsResult": "{count} entrées orphelines ont été supprimées de l'historique", + "@cleanupOrphanedDownloadsResult": { + "description": "Snackbar after orphan cleanup", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cleanupOrphanedDownloadsNone": "Aucune entrée orpheline n'a été trouvée", + "@cleanupOrphanedDownloadsNone": { + "description": "Snackbar when no orphans found" + }, + "cacheTitle": "Stockage & Cache", + "@cacheTitle": { + "description": "Cache management page title" + }, + "cacheSummaryTitle": "Présentation du cache", + "@cacheSummaryTitle": { + "description": "Heading for cache summary card" + }, + "cacheSummarySubtitle": "La suppression du cache n'entraînera pas la suppression des fichiers musicaux téléchargés.", + "@cacheSummarySubtitle": { + "description": "Helper text for cache summary card" + }, + "cacheEstimatedTotal": "Utilisation estimée du cache : {size}", + "@cacheEstimatedTotal": { + "description": "Total cache size shown in summary", + "placeholders": { + "size": { + "type": "String" + } + } + }, + "cacheSectionStorage": "Données mises en cache", + "@cacheSectionStorage": { + "description": "Section header for cache entries" + }, + "cacheSectionMaintenance": "Entretien", + "@cacheSectionMaintenance": { + "description": "Section header for cleanup actions" + }, + "cacheAppDirectory": "Répertoire de cache de l'application", + "@cacheAppDirectory": { + "description": "Cache item title for app cache directory" + }, + "cacheAppDirectoryDesc": "Réponses HTTP, données WebView et autres données temporaires de l'application.", + "@cacheAppDirectoryDesc": { + "description": "Description of what app cache directory contains" + }, + "cacheTempDirectory": "Répertoire temporaire", + "@cacheTempDirectory": { + "description": "Cache item title for temporary files directory" + }, + "cacheTempDirectoryDesc": "Fichiers temporaires liés aux téléchargements et à la conversion audio.", + "@cacheTempDirectoryDesc": { + "description": "Description of what temporary directory contains" + }, + "cacheCoverImage": "Cache des images de couverture", + "@cacheCoverImage": { + "description": "Cache item title for persistent cover images" + }, + "cacheCoverImageDesc": "J'ai téléchargé les pochettes de l'album et des titres. Je les téléchargerai à nouveau lors de leur consultation.", + "@cacheCoverImageDesc": { + "description": "Description of what cover image cache contains" + }, + "cacheLibraryCover": "Cache de couverture de bibliothèque", + "@cacheLibraryCover": { + "description": "Cache item title for local library cover art images" + }, + "cacheLibraryCoverDesc": "Pochettes extraites des fichiers musicaux locaux. Elles seront extraites à nouveau lors de la prochaine analyse.", + "@cacheLibraryCoverDesc": { + "description": "Description of what library cover cache contains" + }, "libraryPlaybackNormalization": "Normalisation du volume", "@libraryPlaybackNormalization": { "description": "Toggle title for ReplayGain playback normalization in the built-in player" @@ -5928,6 +3056,322 @@ "@cacheAudioAnalysisDesc": { "description": "Description of what audio analysis cache contains" }, + "cacheExploreFeed": "Explorer le cache des flux", + "@cacheExploreFeed": { + "description": "Cache item title for explore home feed cache" + }, + "cacheExploreFeedDesc": "Contenu de l'onglet « Explorer » (nouvelles sorties, tendances). Se mettra à jour lors de votre prochaine visite.", + "@cacheExploreFeedDesc": { + "description": "Description of what explore feed cache contains" + }, + "cacheTrackLookup": "Cache de recherche de piste", + "@cacheTrackLookup": { + "description": "Cache item title for track ID lookup cache" + }, + "cacheTrackLookupDesc": "Recherche d'identifiant de titre sur Spotify/Deezer. La suppression des données peut ralentir les prochaines recherches.", + "@cacheTrackLookupDesc": { + "description": "Description of what track lookup cache contains" + }, + "cacheCleanupUnusedDesc": "Supprimer les entrées orphelines de l'historique des téléchargements et de la bibliothèque pour les fichiers manquants.", + "@cacheCleanupUnusedDesc": { + "description": "Description of what cleanup unused data does" + }, + "cacheNoData": "Aucune donnée mise en cache", + "@cacheNoData": { + "description": "Label when cache category has no data" + }, + "cacheSizeWithFiles": "{size} dans {count} fichiers", + "@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} entrées", + "@cacheEntries": { + "description": "Track cache entry count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cacheClearSuccess": "Effacé : {target}", + "@cacheClearSuccess": { + "description": "Snackbar after clearing selected cache", + "placeholders": { + "target": { + "type": "String" + } + } + }, + "cacheClearConfirmTitle": "Vider le cache ?", + "@cacheClearConfirmTitle": { + "description": "Dialog title before clearing one cache category" + }, + "cacheClearConfirmMessage": "Cette opération effacera les données mises en cache pour {target}. Les fichiers musicaux téléchargés ne seront pas supprimés.", + "@cacheClearConfirmMessage": { + "description": "Dialog message before clearing selected cache", + "placeholders": { + "target": { + "type": "String" + } + } + }, + "cacheClearAllConfirmTitle": "Vider tout le cache ?", + "@cacheClearAllConfirmTitle": { + "description": "Dialog title before clearing all caches" + }, + "cacheClearAllConfirmMessage": "Cette opération effacera toutes les catégories mises en cache sur cette page. Les fichiers musicaux téléchargés ne seront pas supprimés.", + "@cacheClearAllConfirmMessage": { + "description": "Dialog message before clearing all caches" + }, + "cacheClearAll": "Vider tout le cache", + "@cacheClearAll": { + "description": "Button label to clear all caches" + }, + "cacheCleanupUnused": "Nettoyer les données inutilisées", + "@cacheCleanupUnused": { + "description": "Action title for cleaning unused entries" + }, + "cacheCleanupUnusedSubtitle": "Supprimer l'historique des téléchargements orphelins et les entrées manquantes dans la bibliothèque", + "@cacheCleanupUnusedSubtitle": { + "description": "Subtitle for cleanup unused data action" + }, + "cacheCleanupResult": "Nettoyage terminé : {downloadCount} téléchargements orphelins, {libraryCount} entrées de bibliothèque manquantes", + "@cacheCleanupResult": { + "description": "Snackbar after unused data cleanup", + "placeholders": { + "downloadCount": { + "type": "int" + }, + "libraryCount": { + "type": "int" + } + } + }, + "cacheRefreshStats": "Actualiser les statistiques", + "@cacheRefreshStats": { + "description": "Button label to refresh cache statistics" + }, + "trackSaveCoverArt": "Enregistrer la pochette", + "@trackSaveCoverArt": { + "description": "Menu action - save album cover art as file" + }, + "trackSaveLyrics": "Enregistrer les paroles (.lrc)", + "@trackSaveLyrics": { + "description": "Menu action - save lyrics as .lrc file" + }, + "trackSaveLyricsProgress": "Enregistrement des paroles...", + "@trackSaveLyricsProgress": { + "description": "Snackbar while saving lyrics to file" + }, + "trackReEnrich": "Réenrichir", + "@trackReEnrich": { + "description": "Menu action - re-embed metadata into audio file" + }, + "trackReEnrichOnlineSubtitle": "Rechercher des métadonnées en ligne et les intégrer dans un fichier", + "@trackReEnrichOnlineSubtitle": { + "description": "Subtitle for re-enrich metadata action for local items" + }, + "trackReEnrichFieldCover": "Illustration de couverture", + "@trackReEnrichFieldCover": { + "description": "Checkbox label for cover art field in re-enrich" + }, + "trackReEnrichFieldLyrics": "Paroles", + "@trackReEnrichFieldLyrics": { + "description": "Checkbox label for lyrics field in re-enrich" + }, + "trackReEnrichFieldBasicTags": "Album, Album Artiste", + "@trackReEnrichFieldBasicTags": { + "description": "Checkbox label for basic tags in re-enrich (title/artist are never overwritten)" + }, + "trackReEnrichFieldTrackInfo": "Numéro de piste & de disque", + "@trackReEnrichFieldTrackInfo": { + "description": "Checkbox label for track info in re-enrich" + }, + "trackReEnrichFieldReleaseInfo": "Date & ISRC", + "@trackReEnrichFieldReleaseInfo": { + "description": "Checkbox label for release info in re-enrich" + }, + "trackReEnrichFieldExtra": "Genre, Label, Droits d'auteur", + "@trackReEnrichFieldExtra": { + "description": "Checkbox label for extra metadata in re-enrich" + }, + "trackReEnrichSelectAll": "Tout sélectionner", + "@trackReEnrichSelectAll": { + "description": "Select all fields checkbox in re-enrich" + }, + "trackReEnrichModeIsrc": "ISRC only", + "@trackReEnrichModeIsrc": { + "description": "Batch metadata mode that only writes ISRC" + }, + "trackReEnrichModeIsrcSubtitle": "Find and add the recording identifier without changing other tags", + "@trackReEnrichModeIsrcSubtitle": { + "description": "Explanation for the ISRC-only batch metadata mode" + }, + "trackReEnrichModeMissing": "Fill missing tags", + "@trackReEnrichModeMissing": { + "description": "Batch metadata mode that fills only empty tags" + }, + "trackReEnrichModeMissingSubtitle": "Keep existing values and fill only fields that are empty", + "@trackReEnrichModeMissingSubtitle": { + "description": "Explanation for the fill-missing batch metadata mode" + }, + "trackReEnrichModeReplace": "Update selected tags", + "@trackReEnrichModeReplace": { + "description": "Batch metadata mode that replaces selected tag groups" + }, + "trackReEnrichModeReplaceSubtitle": "Choose which existing values may be replaced by online metadata", + "@trackReEnrichModeReplaceSubtitle": { + "description": "Explanation for the selected-tag batch metadata mode" + }, + "trackReEnrichFieldsTitle": "Tags to update", + "@trackReEnrichFieldsTitle": { + "description": "Heading above batch re-enrich field checkboxes" + }, + "trackReEnrichReview": "Review changes", + "@trackReEnrichReview": { + "description": "Button that searches metadata and opens the batch change review" + }, + "trackReEnrichReviewTitle": "Review metadata changes", + "@trackReEnrichReviewTitle": { + "description": "Title of the batch metadata review sheet" + }, + "trackReEnrichReviewSubtitle": "{changeCount} proposed changes across {trackCount} tracks", + "@trackReEnrichReviewSubtitle": { + "description": "Summary shown above proposed batch metadata changes", + "placeholders": { + "changeCount": { + "type": "int" + }, + "trackCount": { + "type": "int" + } + } + }, + "trackReEnrichNoChanges": "No metadata changes were found for the selected tracks.", + "@trackReEnrichNoChanges": { + "description": "Message when batch metadata preview has no proposed changes" + }, + "trackReEnrichApplyChanges": "Apply changes", + "@trackReEnrichApplyChanges": { + "description": "Confirmation button in the batch metadata review sheet" + }, + "trackReEnrichRefreshOnline": "Refresh from online", + "@trackReEnrichRefreshOnline": { + "description": "Proposed value when lyrics will be refreshed during re-enrich" + }, + "trackEditMetadata": "Modifier les métadonnées", + "@trackEditMetadata": { + "description": "Menu action - edit embedded metadata" + }, + "trackCoverSaved": "La pochette a été enregistrée sous le nom {fileName}", + "@trackCoverSaved": { + "description": "Snackbar after cover art saved", + "placeholders": { + "fileName": { + "type": "String" + } + } + }, + "trackCoverNoSource": "Aucune source d'illustration de couverture disponible", + "@trackCoverNoSource": { + "description": "Snackbar when no cover art URL or embedded cover" + }, + "trackLyricsSaved": "Paroles enregistrées dans {fileName}", + "@trackLyricsSaved": { + "description": "Snackbar after lyrics saved", + "placeholders": { + "fileName": { + "type": "String" + } + } + }, + "trackReEnrichProgress": "Réenrichissement des métadonnées...", + "@trackReEnrichProgress": { + "description": "Snackbar while re-enriching metadata" + }, + "trackReEnrichSearching": "Recherche de métadonnées en ligne...", + "@trackReEnrichSearching": { + "description": "Snackbar while searching metadata from internet for local items" + }, + "trackReEnrichSuccess": "Métadonnées réenrichies avec succès", + "@trackReEnrichSuccess": { + "description": "Snackbar after successful re-enrichment" + }, + "trackReEnrichFfmpegFailed": "Échec de l'intégration des métadonnées FFmpeg", + "@trackReEnrichFfmpegFailed": { + "description": "Snackbar when FFmpeg embed fails for MP3/Opus" + }, + "queueFlacAction": "File d'attente FLAC", + "@queueFlacAction": { + "description": "Action/button label for queueing FLAC redownloads for local tracks" + }, + "queueFlacConfirmMessage": "Recherchez en ligne les correspondances pour les morceaux sélectionnés et ajoutez les téléchargements FLAC à la file d'attente.\n\nLes fichiers existants ne seront ni modifiés ni supprimés.\n\nSeules les correspondances hautement fiables sont automatiquement ajoutées à la file d'attente.\n\n{count} sélectionnés", + "@queueFlacConfirmMessage": { + "description": "Confirmation dialog body before queueing FLAC redownloads for local tracks", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "queueFlacNoReliableMatches": "Aucun résultat pertinent n'a été trouvé en ligne pour cette sélection", + "@queueFlacNoReliableMatches": { + "description": "Snackbar when no safe FLAC redownload matches were found" + }, + "queueFlacQueuedWithSkipped": "{addedCount} titres ajoutés à la file d'attente, {skippedCount} titres ignorés", + "@queueFlacQueuedWithSkipped": { + "description": "Snackbar when some selected local tracks were queued for FLAC redownload and some were skipped", + "placeholders": { + "addedCount": { + "type": "int" + }, + "skippedCount": { + "type": "int" + } + } + }, + "trackSaveFailed": "Échec : {error}", + "@trackSaveFailed": { + "description": "Snackbar when save operation fails", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "trackConvertFormat": "Convertir le format", + "@trackConvertFormat": { + "description": "Menu item - convert audio format" + }, + "trackConvertTitle": "Convertir un fichier audio", + "@trackConvertTitle": { + "description": "Title of convert bottom sheet" + }, + "trackConvertTargetFormat": "Format cible", + "@trackConvertTargetFormat": { + "description": "Label for format selection" + }, + "trackConvertBitrate": "Débit binaire", + "@trackConvertBitrate": { + "description": "Label for bitrate selection" + }, "trackConvertKeepOriginal": "Conserver le fichier d'origine", "@trackConvertKeepOriginal": { "description": "Toggle to preserve the source file during conversion" @@ -5936,6 +3380,37 @@ "@trackConvertKeepOriginalDescription": { "description": "Description for preserving the source file during conversion" }, + "trackConvertConfirmTitle": "Confirmer la conversion", + "@trackConvertConfirmTitle": { + "description": "Confirmation dialog title" + }, + "trackConvertConfirmMessage": "Convertir du format {sourceFormat} au format {targetFormat} avec un débit binaire de {bitrate} ?\n\nLe fichier d'origine sera supprimé après la conversion.", + "@trackConvertConfirmMessage": { + "description": "Confirmation dialog message", + "placeholders": { + "sourceFormat": { + "type": "String" + }, + "targetFormat": { + "type": "String" + }, + "bitrate": { + "type": "String" + } + } + }, + "trackConvertConfirmMessageLossless": "Convertir de {sourceFormat} vers {targetFormat} ? (Sans perte — aucune perte de qualité)\n\nLe fichier d'origine sera supprimé après la conversion.", + "@trackConvertConfirmMessageLossless": { + "description": "Confirmation dialog message for lossless-to-lossless conversion", + "placeholders": { + "sourceFormat": { + "type": "String" + }, + "targetFormat": { + "type": "String" + } + } + }, "trackConvertConfirmKeepOriginal": "Convertir du format {sourceFormat} au format {targetFormat} ?\n\nLe fichier d'origine sera conservé et le fichier converti sera ajouté en tant qu'entrée distincte dans la bibliothèque.", "@trackConvertConfirmKeepOriginal": { "description": "Confirmation message when the source file will be preserved", @@ -5948,6 +3423,382 @@ } } }, + "trackConvertLosslessHint": "Conversion sans perte — aucune perte de qualité", + "@trackConvertLosslessHint": { + "description": "Hint shown when converting between lossless formats" + }, + "trackConvertConverting": "Conversion audio en cours...", + "@trackConvertConverting": { + "description": "Snackbar while converting" + }, + "trackConvertSuccess": "Conversion vers {format} réussie", + "@trackConvertSuccess": { + "description": "Snackbar after successful conversion", + "placeholders": { + "format": { + "type": "String" + } + } + }, + "trackConvertFailed": "Échec de la conversion", + "@trackConvertFailed": { + "description": "Snackbar when conversion fails" + }, + "cueSplitTitle": "Fiche CUE fractionnée", + "@cueSplitTitle": { + "description": "Title for CUE split bottom sheet" + }, + "cueSplitAlbum": "Album : {album}", + "@cueSplitAlbum": { + "description": "Album name in CUE split sheet", + "placeholders": { + "album": { + "type": "String" + } + } + }, + "cueSplitArtist": "Artiste : {artist}", + "@cueSplitArtist": { + "description": "Artist name in CUE split sheet", + "placeholders": { + "artist": { + "type": "String" + } + } + }, + "cueSplitTrackCount": "{count} titres", + "@cueSplitTrackCount": { + "description": "Number of tracks in CUE sheet", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitConfirmTitle": "Album CUE fractionné", + "@cueSplitConfirmTitle": { + "description": "CUE split confirmation dialog title" + }, + "cueSplitConfirmMessage": "Diviser « {album} » en {count} fichiers FLAC individuels ?\n\nLes fichiers seront enregistrés dans le même répertoire.", + "@cueSplitConfirmMessage": { + "description": "CUE split confirmation dialog message", + "placeholders": { + "album": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "cueSplitSplitting": "Fractionnement de la liste CUE... ({current}/{total})", + "@cueSplitSplitting": { + "description": "Snackbar while splitting CUE", + "placeholders": { + "current": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "cueSplitSuccess": "Le fichier a été divisé en {count} pistes avec succès", + "@cueSplitSuccess": { + "description": "Snackbar after successful CUE split", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "cueSplitFailed": "Échec de la division CUE", + "@cueSplitFailed": { + "description": "Snackbar when CUE split fails" + }, + "cueSplitNoAudioFile": "Fichier audio introuvable pour cette liste CUE", + "@cueSplitNoAudioFile": { + "description": "Error when CUE audio file is missing" + }, + "cueSplitButton": "Diviser en pistes", + "@cueSplitButton": { + "description": "Button text to start CUE splitting" + }, + "actionCreate": "Créer", + "@actionCreate": { + "description": "Generic action button - create" + }, + "collectionFoldersTitle": "Mes dossiers", + "@collectionFoldersTitle": { + "description": "Library section title for custom folders" + }, + "collectionWishlist": "Liste de souhaits", + "@collectionWishlist": { + "description": "Custom folder for saved tracks to download later" + }, + "collectionLoved": "Favoris", + "@collectionLoved": { + "description": "Custom folder for favorite tracks" + }, + "collectionFavoriteArtists": "Artistes Favoris", + "@collectionFavoriteArtists": { + "description": "Custom folder for favorite artists" + }, + "collectionPlaylist": "Playlist", + "@collectionPlaylist": { + "description": "Single playlist label" + }, + "collectionAddToPlaylist": "Ajouter à la playlist", + "@collectionAddToPlaylist": { + "description": "Action to add a track to user playlist" + }, + "collectionCreatePlaylist": "Créer une playlist", + "@collectionCreatePlaylist": { + "description": "Action to create a new playlist" + }, + "collectionNoPlaylistsYet": "Aucune playlist pour le moment", + "@collectionNoPlaylistsYet": { + "description": "Empty state title when user has no playlists" + }, + "collectionPlaylistTracks": "{count, plural, =1{1 titre} other{{count} titres}}", + "@collectionPlaylistTracks": { + "description": "Track count label for custom playlists", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "collectionArtistCount": "{count, plural, =1{1 artiste} other{{count} artistes}}", + "@collectionArtistCount": { + "description": "Artist count label for favorite artists", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "collectionAddedToPlaylist": "Ajouté à « {playlistName} »", + "@collectionAddedToPlaylist": { + "description": "Snackbar after adding track to playlist", + "placeholders": { + "playlistName": { + "type": "String" + } + } + }, + "collectionAlreadyInPlaylist": "Déjà présent dans « {playlistName} »", + "@collectionAlreadyInPlaylist": { + "description": "Snackbar when track already exists in playlist", + "placeholders": { + "playlistName": { + "type": "String" + } + } + }, + "collectionPlaylistNameHint": "Nom de la playlist", + "@collectionPlaylistNameHint": { + "description": "Hint text for playlist name input" + }, + "collectionPlaylistNameRequired": "Le nom de la playlist est requis", + "@collectionPlaylistNameRequired": { + "description": "Validation error for empty playlist name" + }, + "collectionRenamePlaylist": "Renommer la playlist", + "@collectionRenamePlaylist": { + "description": "Action to rename playlist" + }, + "collectionDeletePlaylist": "Supprimer la playlist", + "@collectionDeletePlaylist": { + "description": "Action to delete playlist" + }, + "collectionPlaylistRenamed": "Playlist renommée", + "@collectionPlaylistRenamed": { + "description": "Snackbar after renaming playlist" + }, + "collectionWishlistEmptyTitle": "La liste de souhaits est vide", + "@collectionWishlistEmptyTitle": { + "description": "Wishlist empty state title" + }, + "collectionWishlistEmptySubtitle": "Appuyez sur le signe « + » à côté des morceaux pour enregistrer ceux que vous souhaitez télécharger plus tard", + "@collectionWishlistEmptySubtitle": { + "description": "Wishlist empty state subtitle" + }, + "collectionLovedEmptyTitle": "Le dossier « Favoris » est vide", + "@collectionLovedEmptyTitle": { + "description": "Loved empty state title" + }, + "collectionLovedEmptySubtitle": "Appuyez sur les morceaux que vous aimez pour les ajouter à vos favoris", + "@collectionLovedEmptySubtitle": { + "description": "Loved empty state subtitle" + }, + "collectionFavoriteArtistsEmptyTitle": "Pas encore d'artistes préférés", + "@collectionFavoriteArtistsEmptyTitle": { + "description": "Favorite artists empty state title" + }, + "collectionFavoriteArtistsEmptySubtitle": "Appuyez sur le cœur sur la page d'un artiste pour le garder ici", + "@collectionFavoriteArtistsEmptySubtitle": { + "description": "Favorite artists empty state subtitle" + }, + "collectionPlaylistEmptyTitle": "La playlist est vide", + "@collectionPlaylistEmptyTitle": { + "description": "Playlist empty state title" + }, + "collectionPlaylistEmptySubtitle": "Appuyez longuement sur le bouton « + » sur n'importe quel morceau pour l'ajouter ici", + "@collectionPlaylistEmptySubtitle": { + "description": "Playlist empty state subtitle" + }, + "collectionRemoveFromPlaylist": "Supprimer de la playlist", + "@collectionRemoveFromPlaylist": { + "description": "Tooltip for removing track from playlist" + }, + "collectionRemoveFromFolder": "Supprimer du dossier", + "@collectionRemoveFromFolder": { + "description": "Tooltip for removing track from wishlist/loved folder" + }, + "collectionAddedToLoved": "\"{trackName}\" ajouté aux Favoris", + "@collectionAddedToLoved": { + "description": "Snackbar after adding track to loved folder", + "placeholders": { + "trackName": { + "type": "String" + } + } + }, + "collectionRemovedFromLoved": "\"{trackName}\" supprimé des Favoris", + "@collectionRemovedFromLoved": { + "description": "Snackbar after removing track from loved folder", + "placeholders": { + "trackName": { + "type": "String" + } + } + }, + "collectionAddedToWishlist": "« {trackName} » a été ajouté à la liste de souhaits", + "@collectionAddedToWishlist": { + "description": "Snackbar after adding track to wishlist", + "placeholders": { + "trackName": { + "type": "String" + } + } + }, + "collectionRemovedFromWishlist": "« {trackName} » a été supprimé de la liste de souhaits", + "@collectionRemovedFromWishlist": { + "description": "Snackbar after removing track from wishlist", + "placeholders": { + "trackName": { + "type": "String" + } + } + }, + "collectionAddedToFavoriteArtists": "« {artistName} » a été ajouté à vos artistes préférés", + "@collectionAddedToFavoriteArtists": { + "description": "Snackbar after adding artist to favorite artists", + "placeholders": { + "artistName": { + "type": "String" + } + } + }, + "collectionRemovedFromFavoriteArtists": "« {artistName} » a été supprimé de vos artistes favoris", + "@collectionRemovedFromFavoriteArtists": { + "description": "Snackbar after removing artist from favorite artists", + "placeholders": { + "artistName": { + "type": "String" + } + } + }, + "trackOptionAddToLoved": "Ajouter aux Favoris", + "@trackOptionAddToLoved": { + "description": "Bottom sheet action label - add track to loved folder" + }, + "trackOptionRemoveFromLoved": "Supprimer des Favoris", + "@trackOptionRemoveFromLoved": { + "description": "Bottom sheet action label - remove track from loved folder" + }, + "trackOptionAddToWishlist": "Ajouter à la liste de souhaits", + "@trackOptionAddToWishlist": { + "description": "Bottom sheet action label - add track to wishlist" + }, + "trackOptionRemoveFromWishlist": "Supprimer de la liste de souhaits", + "@trackOptionRemoveFromWishlist": { + "description": "Bottom sheet action label - remove track from wishlist" + }, + "artistOptionAddToFavorites": "Ajouter aux Artistes Favoris", + "@artistOptionAddToFavorites": { + "description": "Action label - add artist to favorite artists" + }, + "artistOptionRemoveFromFavorites": "Supprimer des Artistes Favoris", + "@artistOptionRemoveFromFavorites": { + "description": "Action label - remove artist from favorite artists" + }, + "collectionPlaylistChangeCover": "Changer l'image de couverture", + "@collectionPlaylistChangeCover": { + "description": "Bottom sheet action to pick a custom cover image for a playlist" + }, + "collectionPlaylistRemoveCover": "Supprimer l'image de couverture", + "@collectionPlaylistRemoveCover": { + "description": "Bottom sheet action to remove custom cover image from a playlist" + }, + "selectionShareCount": "Partager {count} {count, plural, =1{titre} other{titres}}", + "@selectionShareCount": { + "description": "Share button text with count in selection mode", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "selectionShareNoFiles": "Aucun fichier partageable n'a été trouvé", + "@selectionShareNoFiles": { + "description": "Snackbar when no selected files exist on disk" + }, + "selectionConvertCount": "Convertir {count} {count, plural, =1{titre} other{titres}}", + "@selectionConvertCount": { + "description": "Convert button text with count in selection mode", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "selectionConvertNoConvertible": "Aucune piste convertible sélectionnée", + "@selectionConvertNoConvertible": { + "description": "Snackbar when no selected tracks support conversion" + }, + "selectionBatchConvertConfirmTitle": "Conversion par lots", + "@selectionBatchConvertConfirmTitle": { + "description": "Confirmation dialog title for batch conversion" + }, + "selectionBatchConvertConfirmMessage": "Convertir {count} {count, plural, =1{titre} other{titres}} au format {format} avec un débit binaire de {bitrate} ?\n\nLes fichiers d'origine seront supprimés après la conversion.", + "@selectionBatchConvertConfirmMessage": { + "description": "Confirmation dialog message for batch conversion", + "placeholders": { + "count": { + "type": "int" + }, + "format": { + "type": "String" + }, + "bitrate": { + "type": "String" + } + } + }, + "selectionBatchConvertConfirmMessageLossless": "Convertir {count} {count, plural, =1{titre} other{titres}} au format {format} ? (Sans perte — aucune perte de qualité)\n\nLes fichiers d'origine seront supprimés après la conversion.", + "@selectionBatchConvertConfirmMessageLossless": { + "description": "Confirmation dialog message for lossless batch conversion", + "placeholders": { + "count": { + "type": "int" + }, + "format": { + "type": "String" + } + } + }, "selectionBatchConvertConfirmKeepOriginal": "Convertir {count} {count, plural, =1{titre} other{titres}} au format {format} ?\n\nLes fichiers d'origine seront conservés et les fichiers convertis seront ajoutés sous forme d'entrées distinctes dans la bibliothèque.", "@selectionBatchConvertConfirmKeepOriginal": { "description": "Batch conversion confirmation when source files will be preserved", @@ -5960,6 +3811,387 @@ } } }, + "selectionBatchConvertSuccess": "{success} pistes sur {total} ont été converties au format {format}", + "@selectionBatchConvertSuccess": { + "description": "Snackbar after batch conversion completes", + "placeholders": { + "success": { + "type": "int" + }, + "total": { + "type": "int" + }, + "format": { + "type": "String" + } + } + }, + "downloadedAlbumDownloadedCount": "{count} téléchargements", + "@downloadedAlbumDownloadedCount": { + "description": "Downloaded tracks count badge", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadUseAlbumArtistForFoldersAlbumSubtitle": "Dossier nommé d'après la balise « Artiste de l'album »", + "@downloadUseAlbumArtistForFoldersAlbumSubtitle": { + "description": "Subtitle when album artist is used for folder names" + }, + "downloadUseAlbumArtistForFoldersTrackSubtitle": "Dossier nommé d'après la balise « Artiste » de la piste", + "@downloadUseAlbumArtistForFoldersTrackSubtitle": { + "description": "Subtitle when track artist is used for folder names" + }, + "lyricsProvidersTitle": "Priorité au fournisseur de paroles", + "@lyricsProvidersTitle": { + "description": "Settings item title for lyrics provider order" + }, + "lyricsProvidersDescription": "Activer, désactiver et réorganiser les sources de paroles. Les sources sont parcourues de haut en bas jusqu'à ce que les paroles soient trouvées.", + "@lyricsProvidersDescription": { + "description": "Description on the lyrics provider priority page" + }, + "lyricsProvidersInfoText": "Les fournisseurs de paroles d'extension s'exécutent avant les fournisseurs de paroles intégrés. Au moins un fournisseur doit rester activé.", + "@lyricsProvidersInfoText": { + "description": "Info tip on lyrics provider priority page" + }, + "lyricsProvidersEnabledSection": "Activé ({count})", + "@lyricsProvidersEnabledSection": { + "description": "Section header for enabled providers", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "lyricsProvidersDisabledSection": "Désactivés ({count})", + "@lyricsProvidersDisabledSection": { + "description": "Section header for disabled providers", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "lyricsProvidersAtLeastOne": "Au moins un fournisseur doit rester activé", + "@lyricsProvidersAtLeastOne": { + "description": "Snackbar when user tries to disable the last enabled provider" + }, + "lyricsProvidersSaved": "Priorité du fournisseur de paroles enregistrée", + "@lyricsProvidersSaved": { + "description": "Snackbar after saving lyrics provider priority" + }, + "lyricsProvidersDiscardContent": "Vous avez des modifications non enregistrées qui seront perdues.", + "@lyricsProvidersDiscardContent": { + "description": "Body text of the discard-changes dialog on lyrics provider page" + }, + "lyricsProviderLrclibDesc": "Base de données open source de paroles synchronisées", + "@lyricsProviderLrclibDesc": { + "description": "Description for LRCLIB provider" + }, + "lyricsProviderNeteaseDesc": "NetEase Cloud Music (idéal pour les titres asiatiques)", + "@lyricsProviderNeteaseDesc": { + "description": "Description for Netease provider" + }, + "lyricsProviderMusixmatchDesc": "La plus grande base de données de paroles (multilingue)", + "@lyricsProviderMusixmatchDesc": { + "description": "Description for Musixmatch provider" + }, + "lyricsProviderAppleMusicDesc": "Paroles synchronisées mot à mot (via un proxy)", + "@lyricsProviderAppleMusicDesc": { + "description": "Description for Apple Music provider" + }, + "lyricsProviderQqMusicDesc": "QQ Music (good for Chinese songs, direct API)", + "@lyricsProviderQqMusicDesc": { + "description": "Description for QQ Music provider" + }, + "lyricsProviderLyricsPlusDesc": "Paroles de karaoké mot à mot (Apple/Musixmatch/Spotify/QQ, via un proxy)", + "@lyricsProviderLyricsPlusDesc": { + "description": "Description for LyricsPlus provider" + }, + "lyricsProviderExtensionDesc": "Fournisseur d'extensions", + "@lyricsProviderExtensionDesc": { + "description": "Generic description for extension-based lyrics providers" + }, + "safMigrationTitle": "Mise à jour du stockage requise", + "@safMigrationTitle": { + "description": "Title of SAF migration dialog" + }, + "safMigrationMessage1": "SpotiFLAC utilise désormais le framework d'accès au stockage Android (SAF) pour les téléchargements. Cela permet de résoudre les erreurs « autorisation refusée » sur Android 10 et versions ultérieures.", + "@safMigrationMessage1": { + "description": "First paragraph of SAF migration dialog" + }, + "safMigrationMessage2": "Veuillez sélectionner à nouveau votre dossier de téléchargement pour passer au nouveau système de stockage.", + "@safMigrationMessage2": { + "description": "Second paragraph of SAF migration dialog" + }, + "safMigrationSuccess": "Le dossier de téléchargement a été mis à jour en mode SAF", + "@safMigrationSuccess": { + "description": "Snackbar after successfully migrating to SAF" + }, + "settingsDonate": "Soutien au développement", + "@settingsDonate": { + "description": "Settings menu item - donate page" + }, + "settingsDonateSubtitle": "Offrez un café au développeur", + "@settingsDonateSubtitle": { + "description": "Subtitle for donate menu item" + }, + "settingsBackup": "Sauvegarde & Restauration", + "@settingsBackup": { + "description": "Settings menu item - backup and restore page" + }, + "settingsBackupSubtitle": "Transférer votre bibliothèque, votre historique et vos paramètres vers un nouvel appareil", + "@settingsBackupSubtitle": { + "description": "Subtitle for backup and restore settings item" + }, + "backupTitle": "Sauvegarde & Restauration", + "@backupTitle": { + "description": "App bar title for the backup and restore page" + }, + "backupExportSectionTitle": "Créer une sauvegarde", + "@backupExportSectionTitle": { + "description": "Section title for the export/backup card" + }, + "backupExportSectionDescription": "Enregistrez vos paramètres, votre historique de téléchargement, les titres que vous avez aimés, votre liste de souhaits, vos artistes préférés et vos playlists dans un seul fichier que vous pourrez conserver ou transférer vers un autre téléphone.", + "@backupExportSectionDescription": { + "description": "Description of what a backup contains" + }, + "backupExportButton": "Créer un fichier de sauvegarde", + "@backupExportButton": { + "description": "Button to create and share a backup file" + }, + "backupImportSectionTitle": "Restaurer la sauvegarde", + "@backupImportSectionTitle": { + "description": "Section title for the import/restore card" + }, + "backupImportSectionDescription": "Sélectionnez un fichier de sauvegarde pour restaurer vos données. Cette opération remplacera les réglages actuels, l'historique et la bibliothèque de cet appareil.", + "@backupImportSectionDescription": { + "description": "Description for the restore action" + }, + "backupImportButton": "Choisissez un fichier de sauvegarde", + "@backupImportButton": { + "description": "Button to pick a backup file to restore" + }, + "backupCreated": "Sauvegarde créée", + "@backupCreated": { + "description": "Snackbar after a backup file is created" + }, + "backupCreateFailed": "Échec de la création de la sauvegarde", + "@backupCreateFailed": { + "description": "Snackbar when backup creation fails" + }, + "backupRestoreConfirmTitle": "Restaurer cette sauvegarde ?", + "@backupRestoreConfirmTitle": { + "description": "Confirmation dialog title before restoring a backup" + }, + "backupRestoreConfirmMessage": "Cette opération remplacera vos paramètres actuels, votre historique de téléchargements, vos titres favoris, votre liste de souhaits et vos listes de lecture par le contenu de la sauvegarde. Cette opération est irréversible.", + "@backupRestoreConfirmMessage": { + "description": "Confirmation dialog message before restoring a backup" + }, + "backupRestoreConfirmButton": "Restaurer", + "@backupRestoreConfirmButton": { + "description": "Confirm button to proceed with restore" + }, + "backupRestored": "La sauvegarde a été restaurée avec succès", + "@backupRestored": { + "description": "Snackbar after a successful restore" + }, + "backupRestoreFailed": "Échec de la restauration de la sauvegarde", + "@backupRestoreFailed": { + "description": "Snackbar when restore fails" + }, + "backupInvalidFile": "Ce fichier n'est pas une sauvegarde SpotiFLAC valide", + "@backupInvalidFile": { + "description": "Snackbar when the chosen file is not a valid backup" + }, + "backupRestoreRestartHint": "Redémarrez l'application pour vous assurer que toutes les modifications ont bien été prises en compte.", + "@backupRestoreRestartHint": { + "description": "Hint shown after restoring that an app restart is recommended" + }, + "backupContentsTitle": "Contenu de la sauvegarde", + "@backupContentsTitle": { + "description": "Header above the list summarizing what the backup contains" + }, + "backupContentsSettings": "Paramètres de l'application", + "@backupContentsSettings": { + "description": "Backup contents row label for settings" + }, + "backupContentsHistory": "{count} historique {count, plural, one {}=1{élément} other{éléments}}", + "@backupContentsHistory": { + "description": "Backup contents row for history count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "backupContentsLiked": "{count} favoris {count, plural, one {}=1{titre} other{titres}}", + "@backupContentsLiked": { + "description": "Backup contents row for liked tracks count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "backupContentsWishlist": "{count} liste de souhaits {count, plural, one {}=1{titre} other{titres}}", + "@backupContentsWishlist": { + "description": "Backup contents row for wishlist tracks count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "backupContentsPlaylists": "{count, plural, =1{1 playlist} other{{count} playlists}}", + "@backupContentsPlaylists": { + "description": "Backup contents row for playlist count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "backupContentsArtists": "{count, plural, one {}=1{1 artiste préféré} other{{count} artistes préférés}}", + "@backupContentsArtists": { + "description": "Backup contents row for favorite artists count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "backupContentsExtensions": "{count, plural, =1{1 extension} other{{count} extensions}}", + "@backupContentsExtensions": { + "description": "Backup contents row for installed extensions count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "backupIncludeSecrets": "Inclure les informations d'identification de l'extension", + "@backupIncludeSecrets": { + "description": "Toggle to include secret extension settings (tokens, API keys) in the backup" + }, + "backupIncludeSecretsDescription": "Les jetons et les clés API des extensions seront enregistrés dans le fichier de sauvegarde. Veillez à ne pas divulguer ce fichier. Si l'extension est désactivée, vous devrez les saisir à nouveau après la restauration.", + "@backupIncludeSecretsDescription": { + "description": "Explanation for the include-credentials toggle" + }, + "backupExtensionsRestoreFailed": "{count} {count, plural, =1{extension} other{extensions}} n'ont pas pu être réinstallées. Installez-les manuellement à partir du dépôt.", + "@backupExtensionsRestoreFailed": { + "description": "Snackbar/hint when some extensions failed to reinstall during restore", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "tooltipLoveAll": "Tout aimer", + "@tooltipLoveAll": { + "description": "Tooltip for the Love All button on album/playlist screens" + }, + "tooltipAddToPlaylist": "Ajouter à la playlist", + "@tooltipAddToPlaylist": { + "description": "Tooltip for the Add to Playlist button" + }, + "snackbarRemovedTracksFromLoved": "{count} titres supprimés des Favoris", + "@snackbarRemovedTracksFromLoved": { + "description": "Snackbar after removing multiple tracks from Loved folder", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "snackbarAddedTracksToLoved": "{count} titres ajoutés aux Favoris", + "@snackbarAddedTracksToLoved": { + "description": "Snackbar after adding multiple tracks to Loved folder", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dialogDownloadAllTitle": "Tout télécharger", + "@dialogDownloadAllTitle": { + "description": "Dialog title for bulk download confirmation" + }, + "dialogDownloadAllMessage": "Télécharger {count} titres ?", + "@dialogDownloadAllMessage": { + "description": "Body of the Download All confirmation dialog", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "homeSkipAlreadyDownloaded": "Ignorer les morceaux déjà téléchargés", + "@homeSkipAlreadyDownloaded": { + "description": "Checkbox label in import dialog to skip already-downloaded songs" + }, + "homeGoToAlbum": "Aller à l'album", + "@homeGoToAlbum": { + "description": "Context menu item to navigate to the album page" + }, + "homeAlbumInfoUnavailable": "Informations sur l'album non disponibles", + "@homeAlbumInfoUnavailable": { + "description": "Snackbar when album info cannot be loaded" + }, + "snackbarLoadingCueSheet": "Chargement de la liste CUE...", + "@snackbarLoadingCueSheet": { + "description": "Snackbar while loading a CUE sheet file" + }, + "snackbarMetadataSaved": "Les métadonnées ont été enregistrées avec succès", + "@snackbarMetadataSaved": { + "description": "Snackbar after successfully saving track metadata" + }, + "snackbarFailedToEmbedLyrics": "Impossible d'intégrer les paroles", + "@snackbarFailedToEmbedLyrics": { + "description": "Snackbar when lyrics embedding fails" + }, + "snackbarFailedToWriteStorage": "Échec de l'écriture sur le support de stockage", + "@snackbarFailedToWriteStorage": { + "description": "Snackbar when writing metadata back to file fails" + }, + "snackbarError": "Erreur : {error}", + "@snackbarError": { + "description": "Generic error snackbar with error detail", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "snackbarNoActionDefined": "Aucune action n'est associée à ce bouton", + "@snackbarNoActionDefined": { + "description": "Snackbar when an extension button has no action configured" + }, + "noTracksFoundForAlbum": "Aucun morceau trouvé pour cet album", + "@noTracksFoundForAlbum": { + "description": "Empty state message when an album has no tracks" + }, + "downloadLocationSubtitle": "Choisissez l'emplacement où enregistrer vos morceaux téléchargés", + "@downloadLocationSubtitle": { + "description": "Subtitle shown in the download location picker sheet" + }, + "storageModeAppFolder": "Dossier « Applications » (recommandé)", + "@storageModeAppFolder": { + "description": "Storage mode option - app-managed folder" + }, + "storageModeAppFolderSubtitle": "Enregistrement par défaut dans le dossier « Musique/SpotiFLAC »", + "@storageModeAppFolderSubtitle": { + "description": "Subtitle for app folder storage mode" + }, + "storageModeSaf": "Dossier personnalisé (SAF)", + "@storageModeSaf": { + "description": "Storage mode option - Storage Access Framework" + }, + "storageModeSafSubtitle": "Choisissez n'importe quel dossier, y compris la carte SD", + "@storageModeSafSubtitle": { + "description": "Subtitle for SAF storage mode" + }, "downloadFolderAccessLostTitle": "Accès au dossier de téléchargement perdu", "@downloadFolderAccessLostTitle": { "description": "Title of the warning banner shown in Files settings when the saved SAF folder grant is no longer valid" @@ -5980,6 +4212,687 @@ "@downloadErrorFolderAccessLost": { "description": "Error shown on downloads that failed because the iOS download folder bookmark could not be opened" }, + "downloadFilenameDescription": "Utilisez {artist}, {title}, {album}, {track}, {year}, {date} et {disc} comme variables de remplacement.", + "@downloadFilenameDescription": { + "description": "Description shown in filename format editor" + }, + "downloadFilenameInsertTag": "Appuyez pour insérer une balise :", + "@downloadFilenameInsertTag": { + "description": "Label above filename tag chips" + }, + "downloadSeparateSinglesEnabled": "Les singles et les EP sont enregistrés dans un dossier séparé", + "@downloadSeparateSinglesEnabled": { + "description": "Subtitle when separate singles folder is on" + }, + "downloadSeparateSinglesDisabled": "Les singles et les albums sont enregistrés dans le même dossier", + "@downloadSeparateSinglesDisabled": { + "description": "Subtitle when separate singles folder is off" + }, + "downloadArtistNameFilters": "Filtres par nom d'artiste", + "@downloadArtistNameFilters": { + "description": "Setting title for artist folder filter options" + }, + "downloadCreatePlaylistSourceFolder": "Dossier source de la playlist", + "@downloadCreatePlaylistSourceFolder": { + "description": "Setting to create a subfolder per playlist source" + }, + "downloadCreatePlaylistSourceFolderEnabled": "Un sous-dossier est créé pour chaque playlist", + "@downloadCreatePlaylistSourceFolderEnabled": { + "description": "Subtitle when playlist folder is enabled" + }, + "downloadCreatePlaylistSourceFolderDisabled": "Tous les morceaux sont enregistrés directement dans le dossier de téléchargement", + "@downloadCreatePlaylistSourceFolderDisabled": { + "description": "Subtitle when playlist folder is disabled" + }, + "downloadCreatePlaylistSourceFolderRedundant": "Géré par les paramètres d'organisation des dossiers", + "@downloadCreatePlaylistSourceFolderRedundant": { + "description": "Subtitle when folder organization is already set to playlist" + }, + "downloadSongLinkRegion": "Région SongLink", + "@downloadSongLinkRegion": { + "description": "Setting for SongLink region used during fallback resolution" + }, + "downloadNetworkCompatibilityMode": "Mode de compatibilité réseau", + "@downloadNetworkCompatibilityMode": { + "description": "Setting for legacy TLS/network handling" + }, + "downloadNetworkCompatibilityModeEnabled": "Allowing legacy HTTP endpoints; TLS verification remains enabled", + "@downloadNetworkCompatibilityModeEnabled": { + "description": "Subtitle when network compatibility mode is on" + }, + "downloadNetworkCompatibilityModeDisabled": "Utilisation des paramètres réseau par défaut", + "@downloadNetworkCompatibilityModeDisabled": { + "description": "Subtitle when network compatibility mode is off" + }, + "downloadAllowLocalNetwork": "Autoriser l'accès au réseau local", + "@downloadAllowLocalNetwork": { + "description": "Setting title for allowing requests to private/local network targets" + }, + "downloadAllowLocalNetworkEnabled": "Les requêtes vers des adresses locales ou privées sont autorisées (pour un proxy local ou un DNS personnalisé)", + "@downloadAllowLocalNetworkEnabled": { + "description": "Subtitle when allow local network access is on" + }, + "downloadAllowLocalNetworkDisabled": "Les adresses locales/privées sont bloquées pour des raisons de sécurité", + "@downloadAllowLocalNetworkDisabled": { + "description": "Subtitle when allow local network access is off" + }, + "downloadSelectServiceToEnable": "Choisissez un fournisseur proposant des options de qualité pour activer cette fonctionnalité", + "@downloadSelectServiceToEnable": { + "description": "Subtitle when quality picker is disabled due to extension service" + }, + "downloadEmbedLyricsDisabled": "Activez d'abord l'intégration des métadonnées", + "@downloadEmbedLyricsDisabled": { + "description": "Subtitle when lyrics embedding is blocked by metadata toggle" + }, + "downloadNeteaseIncludeTranslation": "Netease : inclure la traduction", + "@downloadNeteaseIncludeTranslation": { + "description": "Setting to include translated lyrics from Netease" + }, + "downloadNeteaseIncludeTranslationEnabled": "Lignes de traduction en chinois incluses", + "@downloadNeteaseIncludeTranslationEnabled": { + "description": "Subtitle when Netease translation is on" + }, + "downloadNeteaseIncludeTranslationDisabled": "Paroles originales uniquement", + "@downloadNeteaseIncludeTranslationDisabled": { + "description": "Subtitle when Netease translation is off" + }, + "downloadNeteaseIncludeRomanization": "Netease : inclure la romanisation", + "@downloadNeteaseIncludeRomanization": { + "description": "Setting to include romanized lyrics from Netease" + }, + "downloadNeteaseIncludeRomanizationEnabled": "Lignes de romanisation incluses", + "@downloadNeteaseIncludeRomanizationEnabled": { + "description": "Subtitle when Netease romanization is on" + }, + "downloadNeteaseIncludeRomanizationDisabled": "Pas de romanisation", + "@downloadNeteaseIncludeRomanizationDisabled": { + "description": "Subtitle when Netease romanization is off" + }, + "downloadAppleQqMultiPerson": "Apple / QQ : Paroles pour plusieurs personnes", + "@downloadAppleQqMultiPerson": { + "description": "Setting for word-by-word multi-person lyrics from Apple Music and QQ Music" + }, + "downloadAppleQqMultiPersonEnabled": "Étiquettes d'intervenants incluses pour les duos et les morceaux en groupe", + "@downloadAppleQqMultiPersonEnabled": { + "description": "Subtitle when multi-person lyrics is on" + }, + "downloadAppleQqMultiPersonDisabled": "Paroles standard sans indication du haut-parleur", + "@downloadAppleQqMultiPersonDisabled": { + "description": "Subtitle when multi-person lyrics is off" + }, + "downloadAppleElrcWordSync": "Synchronisation des paroles Apple Music eLRC", + "@downloadAppleElrcWordSync": { + "description": "Setting for preserving Apple Music word-by-word eLRC timestamps" + }, + "downloadAppleElrcWordSyncEnabled": "Conservation des horodatages bruts mot à mot", + "@downloadAppleElrcWordSyncEnabled": { + "description": "Subtitle when Apple Music eLRC word sync is enabled" + }, + "downloadAppleElrcWordSyncDisabled": "Paroles d'Apple Music, ligne par ligne, en toute sécurité", + "@downloadAppleElrcWordSyncDisabled": { + "description": "Subtitle when Apple Music eLRC word sync is disabled" + }, + "downloadMusixmatchLanguage": "Langue Musixmatch", + "@downloadMusixmatchLanguage": { + "description": "Setting for Musixmatch lyrics translation language" + }, + "downloadMusixmatchLanguageAuto": "Auto (langue d'origine)", + "@downloadMusixmatchLanguageAuto": { + "description": "Subtitle when no language is set" + }, + "downloadFilterContributing": "Filtrer les artistes participants", + "@downloadFilterContributing": { + "description": "Setting to strip contributing artists from Album Artist folder name" + }, + "downloadFilterContributingEnabled": "Les artistes ayant contribué à l'album ont été supprimés du nom du dossier « Artiste de l'album »", + "@downloadFilterContributingEnabled": { + "description": "Subtitle when contributing artist filter is on" + }, + "downloadFilterContributingDisabled": "Chaîne « Artiste » de l'album complet utilisée", + "@downloadFilterContributingDisabled": { + "description": "Subtitle when contributing artist filter is off" + }, + "downloadProvidersNoneEnabled": "Aucun fournisseur n'est activé", + "@downloadProvidersNoneEnabled": { + "description": "Shown when no lyrics providers are active" + }, + "downloadMusixmatchLanguageCode": "Code de langue", + "@downloadMusixmatchLanguageCode": { + "description": "Label for Musixmatch language input field" + }, + "downloadMusixmatchLanguageHint": "par exemple : en, de, ja", + "@downloadMusixmatchLanguageHint": { + "description": "Placeholder for Musixmatch language input" + }, + "downloadMusixmatchLanguageDesc": "Saisissez un code de langue BCP-47 (par exemple : en, de, ja) pour demander les paroles traduites à Musixmatch.", + "@downloadMusixmatchLanguageDesc": { + "description": "Description in Musixmatch language picker" + }, + "downloadMusixmatchAuto": "Auto", + "@downloadMusixmatchAuto": { + "description": "Button to clear Musixmatch language (use auto)" + }, + "downloadNetworkAnySubtitle": "Utilisez le Wi-Fi ou les données mobiles", + "@downloadNetworkAnySubtitle": { + "description": "Subtitle for any-network option in picker" + }, + "downloadNetworkWifiOnlySubtitle": "Les téléchargements sont mis en pause lors de l'utilisation des données mobiles", + "@downloadNetworkWifiOnlySubtitle": { + "description": "Subtitle for WiFi-only option in picker" + }, + "downloadSongLinkRegionDesc": "Région utilisée lors de la résolution des liens vers les morceaux via SongLink. Sélectionnez le pays dans lequel vos services de streaming sont disponibles.", + "@downloadSongLinkRegionDesc": { + "description": "Description in SongLink region picker" + }, + "snackbarUnsupportedAudioFormat": "Format audio non pris en charge", + "@snackbarUnsupportedAudioFormat": { + "description": "Snackbar when the audio format is not supported for the requested operation" + }, + "cacheRefresh": "Actualiser", + "@cacheRefresh": { + "description": "Tooltip for refresh button on cache management page" + }, + "dialogDownloadPlaylistsMessage": "Télécharger {trackCount} {trackCount, plural, =1{titre} other{titres}} depuis {playlistCount} {playlistCount, plural, =1{playlist} other{playlists}} ?", + "@dialogDownloadPlaylistsMessage": { + "description": "Dialog message for bulk playlist download confirmation", + "placeholders": { + "trackCount": { + "type": "int" + }, + "playlistCount": { + "type": "int" + } + } + }, + "bulkDownloadPlaylistsButton": "Télécharger {count} {count, plural, =1{playlist} other{playlists}}", + "@bulkDownloadPlaylistsButton": { + "description": "Button label for bulk downloading selected playlists", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "bulkDownloadSelectPlaylists": "Sélectionnez les playlists à télécharger", + "@bulkDownloadSelectPlaylists": { + "description": "Button label when no playlists are selected for download" + }, + "snackbarSelectedPlaylistsEmpty": "Les playlists sélectionnées ne contiennent aucun morceau", + "@snackbarSelectedPlaylistsEmpty": { + "description": "Snackbar when selected playlists contain no tracks" + }, + "playlistsCount": "{count, plural, one {}=1{1 playlist} other{{count} playlists}}", + "@playlistsCount": { + "description": "Playlist count display", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "editMetadataAutoFill": "Remplissage automatique en ligne", + "@editMetadataAutoFill": { + "description": "Section title for selective online metadata auto-fill in the edit metadata sheet" + }, + "editMetadataAutoFillDesc": "Choisissez une extension de métadonnées, sélectionnez les champs, puis vérifiez les données avant de l'appliquer", + "@editMetadataAutoFillDesc": { + "description": "Description for the auto-fill section" + }, + "editMetadataAutoFillSource": "Source des métadonnées", + "@editMetadataAutoFillSource": { + "description": "Label for the metadata extension selector in online auto-fill" + }, + "editMetadataAutoFillSourceAutomatic": "Automatique (priorité au fournisseur)", + "@editMetadataAutoFillSourceAutomatic": { + "description": "Automatic source option that follows configured metadata provider priority" + }, + "editMetadataAutoFillFind": "Rechercher des métadonnées", + "@editMetadataAutoFillFind": { + "description": "Button label for finding an online metadata candidate" + }, + "editMetadataAutoFillPreview": "Données provenant de {source}", + "@editMetadataAutoFillPreview": { + "description": "Title for the online metadata preview", + "placeholders": { + "source": { + "type": "String" + } + } + }, + "editMetadataAutoFillCoverAvailable": "Illustration de couverture disponible", + "@editMetadataAutoFillCoverAvailable": { + "description": "Preview value when the selected metadata source provides cover artwork" + }, + "editMetadataAutoFillApply": "Appliquer les données sélectionnées", + "@editMetadataAutoFillApply": { + "description": "Button label for applying the previewed metadata" + }, + "editMetadataAutoFillDoneFromSource": "Rempli {count} {count, plural, one {}=1{champ} other{champs}} ont été renseignés à partir de {source}", + "@editMetadataAutoFillDoneFromSource": { + "description": "Snackbar confirming fields applied from a selected metadata source", + "placeholders": { + "count": { + "type": "int" + }, + "source": { + "type": "String" + } + } + }, + "editMetadataAutoFillFetch": "Récupérer & remplir", + "@editMetadataAutoFillFetch": { + "description": "Button label to fetch online metadata and fill selected fields" + }, + "editMetadataAutoFillSearching": "Recherche en ligne...", + "@editMetadataAutoFillSearching": { + "description": "Snackbar shown while searching for online metadata" + }, + "editMetadataAutoFillNoResults": "Aucune métadonnée correspondante n'a été trouvée en ligne", + "@editMetadataAutoFillNoResults": { + "description": "Snackbar when online metadata search returns no results" + }, + "editMetadataAutoFillDone": "{count} {count, plural, =1{champ} other{champs}} renseignés à partir des métadonnées en ligne", + "@editMetadataAutoFillDone": { + "description": "Snackbar confirming how many fields were auto-filled", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "editMetadataAutoFillNoneSelected": "Sélectionnez au moins un champ pour le remplir automatiquement", + "@editMetadataAutoFillNoneSelected": { + "description": "Snackbar when user taps Fetch without selecting any fields" + }, + "editMetadataFieldTitle": "Titre", + "@editMetadataFieldTitle": { + "description": "Chip label for title field in auto-fill selector" + }, + "editMetadataFieldArtist": "Artiste", + "@editMetadataFieldArtist": { + "description": "Chip label for artist field in auto-fill selector" + }, + "editMetadataFieldAlbum": "Album", + "@editMetadataFieldAlbum": { + "description": "Chip label for album field in auto-fill selector" + }, + "editMetadataFieldAlbumArtist": "Artiste de l'album", + "@editMetadataFieldAlbumArtist": { + "description": "Chip label for album artist field in auto-fill selector" + }, + "editMetadataFieldDate": "Date", + "@editMetadataFieldDate": { + "description": "Chip label for date field in auto-fill selector" + }, + "editMetadataFieldTrackNum": "Piste n°", + "@editMetadataFieldTrackNum": { + "description": "Chip label for track number field in auto-fill selector" + }, + "editMetadataFieldDiscNum": "Disque n°", + "@editMetadataFieldDiscNum": { + "description": "Chip label for disc number field in auto-fill selector" + }, + "editMetadataFieldGenre": "Genre", + "@editMetadataFieldGenre": { + "description": "Chip label for genre field in auto-fill selector" + }, + "editMetadataFieldIsrc": "ISRC", + "@editMetadataFieldIsrc": { + "description": "Chip label for ISRC field in auto-fill selector" + }, + "editMetadataFieldLabel": "Label", + "@editMetadataFieldLabel": { + "description": "Chip label for label field in auto-fill selector" + }, + "editMetadataFieldCopyright": "Droits d'auteur", + "@editMetadataFieldCopyright": { + "description": "Chip label for copyright field in auto-fill selector" + }, + "editMetadataFieldCover": "Illustration de couverture", + "@editMetadataFieldCover": { + "description": "Chip label for cover art field in auto-fill selector" + }, + "editMetadataSelectAll": "Tout", + "@editMetadataSelectAll": { + "description": "Button to select all fields for auto-fill" + }, + "editMetadataSelectEmpty": "Vide uniquement", + "@editMetadataSelectEmpty": { + "description": "Button to select only fields that are currently empty" + }, + "queueDownloadingCount": "Téléchargement ({count})", + "@queueDownloadingCount": { + "description": "Header for active downloads section with count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "queueFilteringIndicator": "Filtrage...", + "@queueFilteringIndicator": { + "description": "Shown while filter results are being computed" + }, + "queueTrackCount": "{count, plural, =1{1 titre} other{{count} titres}}", + "@queueTrackCount": { + "description": "Track count label with plural support", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "queueAlbumCount": "{count, plural, one {}=1{1 album} other{{count} albums}}", + "@queueAlbumCount": { + "description": "Album count label with plural support", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "queueEmptyAlbums": "Aucun album téléchargé", + "@queueEmptyAlbums": { + "description": "Empty state title when no album downloads exist" + }, + "queueEmptyAlbumsSubtitle": "Téléchargez plusieurs titres d'un album pour les écouter ici", + "@queueEmptyAlbumsSubtitle": { + "description": "Empty state subtitle for album downloads" + }, + "queueEmptySingles": "Pas de téléchargement individuel", + "@queueEmptySingles": { + "description": "Empty state title when no single track downloads exist" + }, + "queueEmptySinglesSubtitle": "Les téléchargements de titres individuels apparaîtront ici", + "@queueEmptySinglesSubtitle": { + "description": "Empty state subtitle for single track downloads" + }, + "queuePlaylistCount": "{count, plural, =1{1 playlist} other{{count} playlists}}", + "@queuePlaylistCount": { + "description": "Playlist count label with plural support", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "queueEmptyPlaylistsSubtitle": "Créez une playlist pour organiser vos morceaux", + "@queueEmptyPlaylistsSubtitle": { + "description": "Empty state subtitle for the playlists library view" + }, + "libraryDefaultView": "Affichage par défaut", + "@libraryDefaultView": { + "description": "Setting title - which library view opens when switching to the Library tab" + }, + "libraryDefaultViewLastUsed": "Dernière utilisation", + "@libraryDefaultViewLastUsed": { + "description": "Default view option - keep the last used library view" + }, + "queueEmptyHistory": "Aucun historique de téléchargement", + "@queueEmptyHistory": { + "description": "Empty state title when download history is empty" + }, + "queueEmptyHistorySubtitle": "Les morceaux téléchargés apparaîtront ici", + "@queueEmptyHistorySubtitle": { + "description": "Empty state subtitle for download history" + }, + "selectionAllPlaylistsSelected": "Toutes les playlists sélectionnées", + "@selectionAllPlaylistsSelected": { + "description": "Shown when all playlists are selected in selection mode" + }, + "selectionTapPlaylistsToSelect": "Appuyez sur les playlists pour les sélectionner", + "@selectionTapPlaylistsToSelect": { + "description": "Hint shown in playlist selection mode" + }, + "selectionSelectPlaylistsToDelete": "Sélectionnez les playlists à supprimer", + "@selectionSelectPlaylistsToDelete": { + "description": "Hint shown when no playlists are selected for deletion" + }, + "audioAnalysisTitle": "Analyse de la qualité audio", + "@audioAnalysisTitle": { + "description": "Title for audio analysis section" + }, + "audioAnalysisDescription": "Vérifier la qualité sans perte à l'aide d'une analyse spectrale", + "@audioAnalysisDescription": { + "description": "Description for audio analysis tap-to-analyze prompt" + }, + "audioAnalysisAnalyzing": "Analyse audio en cours...", + "@audioAnalysisAnalyzing": { + "description": "Loading text while analyzing audio" + }, + "audioAnalysisSampleRate": "Fréquence d'échantillonnage", + "@audioAnalysisSampleRate": { + "description": "Sample rate metric label" + }, + "audioAnalysisCodec": "Codec", + "@audioAnalysisCodec": { + "description": "Audio codec metric label" + }, + "audioAnalysisContainer": "Conteneur", + "@audioAnalysisContainer": { + "description": "Audio container metric label" + }, + "audioAnalysisDecodedFormat": "Format décodé", + "@audioAnalysisDecodedFormat": { + "description": "Decoded sample format metric label" + }, + "audioAnalysisBitDepth": "Nombre de bits", + "@audioAnalysisBitDepth": { + "description": "Bit depth metric label" + }, + "audioAnalysisChannels": "Chaînes", + "@audioAnalysisChannels": { + "description": "Channels metric label" + }, + "audioAnalysisDuration": "Durée", + "@audioAnalysisDuration": { + "description": "Duration metric label" + }, + "audioAnalysisNyquist": "Nyquist", + "@audioAnalysisNyquist": { + "description": "Nyquist frequency metric label" + }, + "audioAnalysisFileSize": "Taille", + "@audioAnalysisFileSize": { + "description": "File size metric label" + }, + "audioAnalysisDynamicRange": "Plage dynamique", + "@audioAnalysisDynamicRange": { + "description": "Dynamic range metric label" + }, + "audioAnalysisPeak": "Pic", + "@audioAnalysisPeak": { + "description": "Peak amplitude metric label" + }, + "audioAnalysisRms": "RMS", + "@audioAnalysisRms": { + "description": "RMS level metric label" + }, + "audioAnalysisLufs": "LUFS", + "@audioAnalysisLufs": { + "description": "Integrated loudness metric label" + }, + "audioAnalysisTruePeak": "True Peak", + "@audioAnalysisTruePeak": { + "description": "True peak metric label" + }, + "audioAnalysisClipping": "Coupure", + "@audioAnalysisClipping": { + "description": "Clipping metric label" + }, + "audioAnalysisNoClipping": "Pas de coupure", + "@audioAnalysisNoClipping": { + "description": "Displayed when no clipped samples were detected" + }, + "audioAnalysisSpectralCutoff": "Limite spectrale", + "@audioAnalysisSpectralCutoff": { + "description": "Estimated spectral cutoff metric label" + }, + "audioAnalysisCutoffNotDetected": "Non détecté", + "@audioAnalysisCutoffNotDetected": { + "description": "Displayed when no reliable broadband spectral cutoff can be detected" + }, + "audioAnalysisChannelStats": "Statistiques par chaîne", + "@audioAnalysisChannelStats": { + "description": "Per-channel audio analysis section label" + }, + "audioAnalysisSamples": "Échantillons", + "@audioAnalysisSamples": { + "description": "Total samples metric label" + }, + "audioAnalysisRescan": "Réanalyser", + "@audioAnalysisRescan": { + "description": "Tooltip/label for the button that re-runs the audio analysis, discarding cached results" + }, + "audioAnalysisRescanning": "Réanalyse du fichier audio...", + "@audioAnalysisRescanning": { + "description": "Loading text while audio is being re-analyzed after an explicit refresh" + }, + "extensionsHomeFeedProvider": "Fournisseur de flux RSS", + "@extensionsHomeFeedProvider": { + "description": "Extensions page - label for home feed provider selector" + }, + "extensionsHomeFeedDescription": "Choisissez l'extension qui affiche le fil d'actualité sur l'écran principal", + "@extensionsHomeFeedDescription": { + "description": "Extensions page - description for home feed provider picker" + }, + "extensionsHomeFeedAuto": "Auto", + "@extensionsHomeFeedAuto": { + "description": "Label for auto-selected search provider" + }, + "extensionsHomeFeedAutoSubtitle": "Sélectionnez automatiquement la meilleure option disponible", + "@extensionsHomeFeedAutoSubtitle": { + "description": "Extensions page - subtitle for auto home feed option" + }, + "extensionsHomeFeedOff": "Désactivé", + "@extensionsHomeFeedOff": { + "description": "Extensions page - home feed provider option: off" + }, + "extensionsHomeFeedOffSubtitle": "Ne pas afficher le fil d'actualité sur l'écran principal", + "@extensionsHomeFeedOffSubtitle": { + "description": "Extensions page - subtitle for off home feed option" + }, + "extensionsHomeFeedUse": "Utiliser le fil d'actualité de {extensionName}", + "@extensionsHomeFeedUse": { + "description": "Extensions page - subtitle for a specific extension home feed option", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "extensionsNoHomeFeedExtensions": "Aucune extension avec le flux principal", + "@extensionsNoHomeFeedExtensions": { + "description": "Extensions page - shown when no installed extension has home feed" + }, + "cancelDownloadTitle": "Annuler le téléchargement ?", + "@cancelDownloadTitle": { + "description": "Dialog title when confirming cancellation of an active download" + }, + "cancelDownloadContent": "Cela annulera le téléchargement en cours de « {trackName} ».", + "@cancelDownloadContent": { + "description": "Dialog body when confirming cancellation of an active download", + "placeholders": { + "trackName": { + "type": "String" + } + } + }, + "cancelDownloadKeep": "Conserver", + "@cancelDownloadKeep": { + "description": "Dialog button - keep the active download (do not cancel)" + }, + "queueCancelledTitle": "Téléchargement annulé", + "@queueCancelledTitle": { + "description": "Dialog title when opening a cancelled queue item" + }, + "queueCancelledMessage": "Ce téléchargement a été annulé. Veuillez réessayer ou le supprimer de la file d'attente.", + "@queueCancelledMessage": { + "description": "Dialog body when opening a cancelled queue item" + }, + "metadataSaveFailedFfmpeg": "Échec de l'enregistrement des métadonnées via FFmpeg", + "@metadataSaveFailedFfmpeg": { + "description": "Snackbar error when FFmpeg fails to write metadata" + }, + "metadataSaveFailedStorage": "Échec de la réécriture des métadonnées sur le support de stockage", + "@metadataSaveFailedStorage": { + "description": "Snackbar error when writing metadata file back to storage fails" + }, + "snackbarFolderPickerFailed": "Impossible d'ouvrir le sélecteur de dossiers : {error}", + "@snackbarFolderPickerFailed": { + "description": "Snackbar shown when folder picker fails to open", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "notifDownloadingTrack": "Téléchargement de {trackName}", + "@notifDownloadingTrack": { + "description": "Notification title while downloading a track", + "placeholders": { + "trackName": { + "type": "String" + } + } + }, + "notifFinalizingTrack": "Finalisation de {trackName}", + "@notifFinalizingTrack": { + "description": "Notification title while finalizing (embedding metadata) a track", + "placeholders": { + "trackName": { + "type": "String" + } + } + }, + "notifEmbeddingMetadata": "Intégration des métadonnées...", + "@notifEmbeddingMetadata": { + "description": "Notification body while embedding metadata into a downloaded track" + }, + "notifAlreadyInLibraryCount": "Déjà dans la bibliothèque ({completed}/{total})", + "@notifAlreadyInLibraryCount": { + "description": "Notification title when track is already in library, with count", + "placeholders": { + "completed": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "notifAlreadyInLibrary": "Déjà dans la bibliothèque", + "@notifAlreadyInLibrary": { + "description": "Notification title when track is already in library" + }, + "notifDownloadCompleteCount": "Téléchargement terminé ({completed}/{total})", + "@notifDownloadCompleteCount": { + "description": "Notification title when download is complete, with count", + "placeholders": { + "completed": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, + "notifDownloadComplete": "Télécharger l'intégralité", + "@notifDownloadComplete": { + "description": "Notification title when a single download is complete" + }, + "notifDownloadsFinished": "Téléchargements terminés ({completed} terminé, {failed} en échec)", + "@notifDownloadsFinished": { + "description": "Notification title when queue finishes with some failures", + "placeholders": { + "completed": { + "type": "int" + }, + "failed": { + "type": "int" + } + } + }, "notifVerificationRequiredTitle": "Vérification requise", "@notifVerificationRequiredTitle": { "description": "Notification title shown when a download needs the user to complete a verification challenge but the app is in the background" @@ -5988,10 +4901,592 @@ "@notifVerificationRequiredBody": { "description": "Notification body prompting the user to return to the app to solve a verification challenge" }, + "notifAllDownloadsComplete": "Tous les téléchargements sont terminés", + "@notifAllDownloadsComplete": { + "description": "Notification title when all downloads finish successfully" + }, + "notifTracksDownloadedSuccess": "{count, plural, =1{1 piste téléchargée avec succès} other{{count} pistes téléchargées avec succès}}", + "@notifTracksDownloadedSuccess": { + "description": "Notification body for queue complete - how many tracks were downloaded", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "notifDownloadsFinishedBody": "{completed, plural, =1{1 titre téléchargé} other{{completed} titres téléchargés}}, {failed, plural, =1{1 échec} other{{failed} échecs}}", + "@notifDownloadsFinishedBody": { + "description": "Notification body when queue finishes with failures", + "placeholders": { + "completed": { + "type": "int" + }, + "failed": { + "type": "int" + } + } + }, + "notifDownloadsCanceledTitle": "Téléchargements annulés", + "@notifDownloadsCanceledTitle": { + "description": "Notification title when downloads are canceled by the user" + }, + "notifDownloadsCanceledBody": "{count, plural, =1{1 téléchargement annulé par l'utilisateur} other{{count} téléchargements annulés par l'utilisateur}}", + "@notifDownloadsCanceledBody": { + "description": "Notification body when downloads are canceled by the user", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "notifScanningLibrary": "Numérisation de la bibliothèque locale", + "@notifScanningLibrary": { + "description": "Notification title while scanning local library" + }, + "notifLibraryScanProgressWithTotal": "{scanned}/{total} fichiers • {percentage} %", + "@notifLibraryScanProgressWithTotal": { + "description": "Notification body for library scan progress when total is known", + "placeholders": { + "scanned": { + "type": "int" + }, + "total": { + "type": "int" + }, + "percentage": { + "type": "int" + } + } + }, + "notifLibraryScanProgressNoTotal": "{scanned} fichiers analysés • {percentage} %", + "@notifLibraryScanProgressNoTotal": { + "description": "Notification body for library scan progress when total is unknown", + "placeholders": { + "scanned": { + "type": "int" + }, + "percentage": { + "type": "int" + } + } + }, + "notifLibraryScanComplete": "Analyse de la bibliothèque terminée", + "@notifLibraryScanComplete": { + "description": "Notification title when library scan finishes" + }, + "notifLibraryScanCompleteBody": "{count} titres indexés", + "@notifLibraryScanCompleteBody": { + "description": "Notification body for library scan complete - number of indexed tracks", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "notifLibraryScanExcluded": "{count} exclus", + "@notifLibraryScanExcluded": { + "description": "Library scan complete suffix - excluded track count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "notifLibraryScanErrors": "{count} erreurs", + "@notifLibraryScanErrors": { + "description": "Library scan complete suffix - error count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "notifLibraryScanFailed": "Échec de l'analyse de la bibliothèque", + "@notifLibraryScanFailed": { + "description": "Notification title when library scan fails" + }, + "notifLibraryScanCancelled": "Annulation de la numérisation de la bibliothèque", + "@notifLibraryScanCancelled": { + "description": "Notification title when library scan is cancelled by the user" + }, + "notifLibraryScanStopped": "L'analyse a été interrompue avant d'être terminée.", + "@notifLibraryScanStopped": { + "description": "Notification body when library scan is cancelled" + }, + "notifDownloadingUpdate": "Télécharger SpotiFLAC v{version}", + "@notifDownloadingUpdate": { + "description": "Notification title while downloading an app update", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "notifUpdateProgress": "{received} / {total} Mo • {percentage}%", + "@notifUpdateProgress": { + "description": "Notification body showing update download progress", + "placeholders": { + "received": { + "type": "String" + }, + "total": { + "type": "String" + }, + "percentage": { + "type": "int" + } + } + }, + "notifUpdateReady": "Prêt pour la mise à jour", + "@notifUpdateReady": { + "description": "Notification title when app update download is complete" + }, + "notifUpdateReadyBody": "SpotiFLAC v{version} a été téléchargé. Appuyez pour l'installer.", + "@notifUpdateReadyBody": { + "description": "Notification body when app update is ready to install", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "notifUpdateFailed": "Échec de la mise à jour", + "@notifUpdateFailed": { + "description": "Notification title when app update download fails" + }, + "notifUpdateFailedBody": "Impossible de télécharger la mise à jour. Veuillez réessayer plus tard.", + "@notifUpdateFailedBody": { + "description": "Notification body when app update download fails" + }, + "searchTracks": "Titres", + "@searchTracks": { + "description": "Search filter label - tracks" + }, + "homeSearchHintDefault": "Collez une URL valide ou effectuez une recherche...", + "@homeSearchHintDefault": { + "description": "Default placeholder for the main search field on Home" + }, + "homeSearchHintProvider": "Rechercher avec {providerName}...", + "@homeSearchHintProvider": { + "description": "Placeholder for the main search field when a provider is selected", + "placeholders": { + "providerName": { + "type": "String" + } + } + }, + "homeImportCsvTooltip": "Importer une playlist (CSV, M3U)", + "@homeImportCsvTooltip": { + "description": "Tooltip for importing a CSV or M3U playlist file into Home search" + }, + "homeChangeSearchProviderTooltip": "Changer de moteur de recherche", + "@homeChangeSearchProviderTooltip": { + "description": "Tooltip for the Home search provider picker" + }, + "actionPaste": "Coller", + "@actionPaste": { + "description": "Generic action - paste from clipboard" + }, + "tutorialSearchHint": "Collez ou effectuez une recherche...", + "@tutorialSearchHint": { + "description": "Placeholder shown in the tutorial search demo" + }, + "tutorialDownloadCompletedSemantics": "Téléchargement terminé", + "@tutorialDownloadCompletedSemantics": { + "description": "Accessibility label for completed download state in tutorial demo" + }, + "tutorialDownloadInProgressSemantics": "Téléchargement en cours", + "@tutorialDownloadInProgressSemantics": { + "description": "Accessibility label for active download state in tutorial demo" + }, + "tutorialStartDownloadSemantics": "Lancer le téléchargement", + "@tutorialStartDownloadSemantics": { + "description": "Accessibility label for idle download button in tutorial demo" + }, + "optionsEmbedMetadata": "Intégrer des métadonnées", + "@optionsEmbedMetadata": { + "description": "Settings toggle title for writing metadata into downloaded files" + }, + "optionsEmbedMetadataSubtitleOn": "Ajouter des métadonnées, des pochettes et des paroles intégrées aux fichiers", + "@optionsEmbedMetadataSubtitleOn": { + "description": "Subtitle when metadata embedding is enabled" + }, + "optionsEmbedMetadataSubtitleOff": "Désactivé (avancé) : ignorer l'intégration de toutes les métadonnées", + "@optionsEmbedMetadataSubtitleOff": { + "description": "Subtitle when metadata embedding is disabled" + }, + "trackCoverNoEmbeddedArt": "Aucune pochette d'album n'a été trouvée", + "@trackCoverNoEmbeddedArt": { + "description": "Message shown when a track file has no embedded cover art" + }, + "trackCoverReplace": "Remplacer la pochette", + "@trackCoverReplace": { + "description": "Button label for replacing selected cover art" + }, + "trackCoverPick": "Choisir une pochette", + "@trackCoverPick": { + "description": "Button label for selecting cover art" + }, + "trackCoverClearSelected": "Supprimer la pochette sélectionnée", + "@trackCoverClearSelected": { + "description": "Tooltip for clearing the newly selected cover art" + }, + "trackCoverCurrent": "Pochette actuelle", + "@trackCoverCurrent": { + "description": "Label for the currently embedded cover preview" + }, + "trackCoverSelected": "Pochette choisie", + "@trackCoverSelected": { + "description": "Label for the newly selected cover preview" + }, + "trackCoverReplaceNotice": "La pochette sélectionnée remplacera la pochette actuellement intégrée lorsque vous appuierez sur « Enregistrer ».", + "@trackCoverReplaceNotice": { + "description": "Notice shown when a new cover has been selected but not saved yet" + }, + "trackCoverResolution": "Résolution de la couverture", + "@trackCoverResolution": { + "description": "Label for selecting the embedded cover art resolution" + }, + "trackCoverResolutionHint": "Définit la longueur maximale de l'image lors de l'enregistrement. L'agrandissement n'apporte pas davantage de détails à l'image.", + "@trackCoverResolutionHint": { + "description": "Explanation below the embedded cover art resolution selector" + }, + "trackCoverResizeFailed": "L'image de couverture n'a pas pu être redimensionnée. Veuillez essayer une autre taille ou une autre image.", + "@trackCoverResizeFailed": { + "description": "Error shown when resizing cover art before saving metadata fails" + }, + "actionStop": "Arrêter", + "@actionStop": { + "description": "Generic action - stop" + }, + "queueFinalizingDownload": "Téléchargement en cours", + "@queueFinalizingDownload": { + "description": "Accessibility label for a queue item that is finalizing" + }, + "queueDownloadNext": "Télécharger le suivant", + "@queueDownloadNext": { + "description": "Tooltip on a queued download row; moves the item to the front of the queue so the next free slot downloads it" + }, + "queueMoveUp": "Remonter", + "@queueMoveUp": { + "description": "Queue item menu action - move the queued item one position earlier" + }, + "queueMoveDown": "Descendre", + "@queueMoveDown": { + "description": "Queue item menu action - move the queued item one position later" + }, + "editMetadataMusicBrainzButton": "Récupérer depuis MusicBrainz", + "@editMetadataMusicBrainzButton": { + "description": "Tag editor button that fills genre and album artist from MusicBrainz by ISRC" + }, + "editMetadataMusicBrainzFilled": "Mise à jour à partir de MusicBrainz", + "@editMetadataMusicBrainzFilled": { + "description": "Snackbar after MusicBrainz suggestions were applied to the tag editor fields" + }, + "editMetadataMusicBrainzNothing": "Aucun résultat trouvé sur MusicBrainz", + "@editMetadataMusicBrainzNothing": { + "description": "Snackbar when the MusicBrainz lookup returns no data" + }, + "editMetadataMusicBrainzNeedsIsrc": "Nécessite une balise ISRC", + "@editMetadataMusicBrainzNeedsIsrc": { + "description": "Snackbar when the MusicBrainz lookup is tapped without an ISRC" + }, + "nowPlayingRepeatOff": "Répétition désactivée", + "@nowPlayingRepeatOff": { + "description": "Repeat toggle tooltip when repeat is disabled" + }, + "nowPlayingRepeatAll": "Tout répéter", + "@nowPlayingRepeatAll": { + "description": "Repeat toggle tooltip when the whole queue repeats" + }, + "nowPlayingRepeatOne": "Répéter une fois", + "@nowPlayingRepeatOne": { + "description": "Repeat toggle tooltip when the current track repeats" + }, + "queueNetworkFailedOffline": "{count} téléchargements ont échoué en mode hors ligne", + "@queueNetworkFailedOffline": { + "description": "Snackbar shown when connectivity returns and network-failed downloads can be retried", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "queueDownloadedFileMissing": "Fichier téléchargé manquant", + "@queueDownloadedFileMissing": { + "description": "Accessibility label when a downloaded file is missing from disk" + }, + "queueCheckingDownloadedFile": "Checking downloaded file...", + "@queueCheckingDownloadedFile": { + "description": "Accessibility label while the app checks whether a just-completed download has appeared at its final path yet. Not about authentication or a download session." + }, + "queueDownloadCompleted": "Téléchargement terminé", + "@queueDownloadCompleted": { + "description": "Accessibility label for completed download state in queue" + }, + "queueRateLimitTitle": "Débit limité", + "@queueRateLimitTitle": { + "description": "Title shown on a failed queue item when the download service rate limits requests" + }, + "queueRateLimitMessage": "Ce titre est peut-être encore disponible. Patientez quelques minutes, réduisez le nombre de téléchargements simultanés, puis réessayez.", + "@queueRateLimitMessage": { + "description": "Explanation shown on a failed queue item when the download service rate limits requests" + }, + "appearanceSelectAccentColor": "Sélectionnez une couleur d'accentuation {hex}", + "@appearanceSelectAccentColor": { + "description": "Accessibility label for picking an accent color", + "placeholders": { + "hex": { + "type": "String" + } + } + }, + "logAutoScrollOn": "Défilement automatique activé", + "@logAutoScrollOn": { + "description": "Tooltip when auto-scroll is enabled on the log screen" + }, + "logAutoScrollOff": "Défilement automatique désactivé", + "@logAutoScrollOff": { + "description": "Tooltip when auto-scroll is disabled on the log screen" + }, + "logCopyLogs": "Copier les journaux", + "@logCopyLogs": { + "description": "Tooltip for copying logs" + }, + "logClearSearch": "Effacer la recherche", + "@logClearSearch": { + "description": "Tooltip for clearing the log search field" + }, + "logIssueIspBlockingLabel": "BLOCAGE PAR LE FAI DÉTECTÉ", + "@logIssueIspBlockingLabel": { + "description": "Diagnostic badge label when ISP blocking is detected" + }, + "logIssueIspBlockingDescription": "Il se peut que votre fournisseur d'accès Internet bloque l'accès aux services de téléchargement", + "@logIssueIspBlockingDescription": { + "description": "Diagnostic badge description for ISP blocking" + }, + "logIssueIspBlockingSuggestion": "Essayez d'utiliser un VPN ou de modifier vos paramètres DNS pour les remplacer par 1.1.1.1 ou 8.8.8.8", + "@logIssueIspBlockingSuggestion": { + "description": "Diagnostic badge suggestion for ISP blocking" + }, + "logIssueRateLimitedLabel": "NOMBRE LIMITÉ", + "@logIssueRateLimitedLabel": { + "description": "Diagnostic badge label when the service rate limits requests" + }, + "logIssueRateLimitedDescription": "Trop de requêtes adressées au service", + "@logIssueRateLimitedDescription": { + "description": "Diagnostic badge description for rate limiting" + }, + "logIssueRateLimitedSuggestion": "Attendez quelques minutes avant de réessayer", + "@logIssueRateLimitedSuggestion": { + "description": "Diagnostic badge suggestion for rate limiting" + }, + "logIssueNetworkErrorLabel": "ERREUR DE RÉSEAU", + "@logIssueNetworkErrorLabel": { + "description": "Diagnostic badge label for generic network errors" + }, + "logIssueNetworkErrorDescription": "Problèmes de connexion détectés", + "@logIssueNetworkErrorDescription": { + "description": "Diagnostic badge description for generic network errors" + }, + "logIssueNetworkErrorSuggestion": "Vérifiez votre connexion Internet", + "@logIssueNetworkErrorSuggestion": { + "description": "Diagnostic badge suggestion for generic network errors" + }, + "logIssueTrackNotFoundLabel": "PISTE INTROUVABLE", + "@logIssueTrackNotFoundLabel": { + "description": "Diagnostic badge label when a track is unavailable" + }, + "logIssueTrackNotFoundDescription": "Certains titres n'ont pas pu être trouvés sur les plateformes de téléchargement", + "@logIssueTrackNotFoundDescription": { + "description": "Diagnostic badge description when a track is unavailable" + }, + "logIssueTrackNotFoundSuggestion": "Il se peut que ce morceau ne soit pas disponible en qualité sans perte", + "@logIssueTrackNotFoundSuggestion": { + "description": "Diagnostic badge suggestion when a track is unavailable" + }, + "clickableLookingUpArtist": "Recherche d'artiste...", + "@clickableLookingUpArtist": { + "description": "Snackbar shown while clickable artist metadata is being resolved" + }, + "clickableInformationUnavailable": "Informations sur {type} non disponibles", + "@clickableInformationUnavailable": { + "description": "Snackbar shown when clickable metadata cannot open a destination", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "extensionDetailsTags": "Balises", + "@extensionDetailsTags": { + "description": "Section title for extension tags" + }, + "extensionDetailsInformation": "Information", + "@extensionDetailsInformation": { + "description": "Section title for extension metadata information" + }, + "extensionUtilityFunctions": "Fonctions utilitaires", + "@extensionUtilityFunctions": { + "description": "Capability label for utility-only extensions" + }, + "actionDismiss": "Ignorer", + "@actionDismiss": { + "description": "Generic action - dismiss" + }, + "setupChangeFolderTooltip": "Changer de dossier", + "@setupChangeFolderTooltip": { + "description": "Tooltip for editing the selected download folder" + }, + "a11yOpenTrackByArtist": "Écouter le morceau {trackName} de {artistName}", + "@a11yOpenTrackByArtist": { + "description": "Accessibility label for opening a track item", + "placeholders": { + "trackName": { + "type": "String" + }, + "artistName": { + "type": "String" + } + } + }, + "a11yOpenItem": "Ouvrir {itemType} {name}", + "@a11yOpenItem": { + "description": "Accessibility label for opening a generic item", + "placeholders": { + "itemType": { + "type": "String" + }, + "name": { + "type": "String" + } + } + }, + "a11yOpenItemCount": "Ouvrir {title}, {count} {count, plural, =1{item} other{éléments}}", + "@a11yOpenItemCount": { + "description": "Accessibility label for opening a grouped item with count", + "placeholders": { + "title": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "a11yOpenAlbumByArtistTrackCount": "Ouvrir l'album {albumName} de {artistName}, {trackCount} titres", + "@a11yOpenAlbumByArtistTrackCount": { + "description": "Accessibility label for opening an album item with track count", + "placeholders": { + "albumName": { + "type": "String" + }, + "artistName": { + "type": "String" + }, + "trackCount": { + "type": "int" + } + } + }, + "a11yTrackByArtist": "{trackName} de {artistName}", + "@a11yTrackByArtist": { + "description": "Accessibility label for a queue or list track item", + "placeholders": { + "trackName": { + "type": "String" + }, + "artistName": { + "type": "String" + } + } + }, + "a11ySelectAlbum": "Sélectionnez l'album {albumName}", + "@a11ySelectAlbum": { + "description": "Accessibility label for selecting an album", + "placeholders": { + "albumName": { + "type": "String" + } + } + }, + "a11yOpenAlbum": "Ouvrir l'album {albumName}", + "@a11yOpenAlbum": { + "description": "Accessibility label for opening an album", + "placeholders": { + "albumName": { + "type": "String" + } + } + }, + "settingsFiles": "Fichiers & Dossiers", + "@settingsFiles": { + "description": "Settings menu item - file and folder settings" + }, + "settingsFilesSubtitle": "Emplacement de téléchargement, nom de fichier, structure des dossiers", + "@settingsFilesSubtitle": { + "description": "Subtitle for files & folders settings" + }, + "settingsMetadata": "Métadonnées", + "@settingsMetadata": { + "description": "Settings menu item - metadata settings" + }, + "settingsMetadataSubtitle": "Pochettes, balises, ReplayGain, fournisseurs", + "@settingsMetadataSubtitle": { + "description": "Subtitle for metadata settings" + }, + "settingsLyrics": "Paroles", + "@settingsLyrics": { + "description": "Settings menu item - lyrics settings" + }, + "settingsLyricsSubtitle": "Intégration, mode, fournisseurs, options linguistiques", + "@settingsLyricsSubtitle": { + "description": "Subtitle for lyrics settings" + }, + "settingsApp": "Application", + "@settingsApp": { + "description": "Settings menu item - app settings" + }, + "settingsAppSubtitle": "Mises à jour, données, dépôt d'extension, débogage", + "@settingsAppSubtitle": { + "description": "Subtitle for app settings" + }, + "sectionMetadataProviders": "Fournisseurs", + "@sectionMetadataProviders": { + "description": "Settings section header for metadata providers" + }, + "sectionDuplicates": "Doublons", + "@sectionDuplicates": { + "description": "Settings section header for deduplication" + }, + "sectionLyricsProviderOptions": "Options du fournisseur", + "@sectionLyricsProviderOptions": { + "description": "Settings section header for per-provider lyrics options" + }, + "metadataProvidersTitle": "Priorité des fournisseurs de métadonnées", + "@metadataProvidersTitle": { + "description": "Settings item title for metadata provider order" + }, + "metadataProvidersSubtitle": "Faites glisser pour définir l'ordre des sources de recherche et de métadonnées", + "@metadataProvidersSubtitle": { + "description": "Subtitle for metadata provider priority item" + }, + "downloadDeduplication": "Éviter les téléchargements en double", + "@downloadDeduplication": { + "description": "Setting - skip tracks already in download history" + }, + "downloadDeduplicationEnabled": "Les morceaux déjà téléchargés seront ignorés", + "@downloadDeduplicationEnabled": { + "description": "Subtitle when deduplication is on" + }, "downloadDeduplicationWithQualityVariants": "Les fichiers existants correspondant à la qualité sélectionnée seront ignorés", "@downloadDeduplicationWithQualityVariants": { "description": "Deduplication subtitle when separate quality versions are allowed" }, + "downloadDeduplicationDisabled": "Tous les morceaux seront téléchargés, quel que soit l'historique", + "@downloadDeduplicationDisabled": { + "description": "Subtitle when deduplication is off" + }, "downloadQualityVariants": "Autoriser différentes versions de qualité", "@downloadQualityVariants": { "description": "Setting to retain multiple quality versions of the same track" @@ -6004,99 +5499,1050 @@ "@trackOptionDownloadQualityVariant": { "description": "Track menu action to download another quality version" }, + "downloadFallbackExtensions": "Extensions de secours", + "@downloadFallbackExtensions": { + "description": "Settings item for configuring fallback extension providers" + }, + "downloadFallbackExtensionsSubtitle": "Choisissez les extensions pouvant servir de solution de secours", + "@downloadFallbackExtensionsSubtitle": { + "description": "Subtitle for fallback extensions item" + }, + "editMetadataFieldDateHint": "AAAA-MM-JJ ou AAAA", + "@editMetadataFieldDateHint": { + "description": "Hint text for the edit metadata date field" + }, + "editMetadataFieldTrackTotal": "Total des pistes", + "@editMetadataFieldTrackTotal": { + "description": "Label for total tracks field in the edit metadata sheet" + }, + "editMetadataFieldDiscTotal": "Total des disques", + "@editMetadataFieldDiscTotal": { + "description": "Label for total discs field in the edit metadata sheet" + }, + "editMetadataFieldComposer": "Compositeur", + "@editMetadataFieldComposer": { + "description": "Label for composer field in the edit metadata sheet" + }, + "editMetadataFieldComment": "Commentaire", + "@editMetadataFieldComment": { + "description": "Label for comment field in the edit metadata sheet" + }, + "trackAlbumType": "Release Type", + "@trackAlbumType": { + "description": "Label for an album or release type metadata value" + }, + "editMetadataFieldAlbumTypeHint": "Album, single, EP, compilation...", + "@editMetadataFieldAlbumTypeHint": { + "description": "Hint for the release type metadata field" + }, + "editMetadataFieldExplicit": "Explicit", + "@editMetadataFieldExplicit": { + "description": "Label for the explicit content metadata field" + }, + "editMetadataFieldExplicitHint": "Mark this track as containing explicit content", + "@editMetadataFieldExplicitHint": { + "description": "Description for the explicit content metadata switch" + }, + "metadataExplicitValue": "Explicit", + "@metadataExplicitValue": { + "description": "Displayed value when a track is marked explicit" + }, + "editMetadataFieldUpc": "UPC / Barcode", + "@editMetadataFieldUpc": { + "description": "Label for the release barcode metadata field" + }, + "editMetadataFieldUpcHint": "Numeric UPC, EAN, or GTIN", + "@editMetadataFieldUpcHint": { + "description": "Hint for the release barcode metadata field" + }, + "editMetadataAdvanced": "Avancé", + "@editMetadataAdvanced": { + "description": "Expandable section label for advanced metadata fields" + }, + "libraryFilterMetadataMissingTrackNumber": "Numéro de piste manquant", + "@libraryFilterMetadataMissingTrackNumber": { + "description": "Filter option - items missing track number" + }, + "libraryFilterMetadataMissingDiscNumber": "Numéro de disque manquant", + "@libraryFilterMetadataMissingDiscNumber": { + "description": "Filter option - items missing disc number" + }, + "libraryFilterMetadataMissingArtist": "Artiste manquant", + "@libraryFilterMetadataMissingArtist": { + "description": "Filter option - items missing artist" + }, + "libraryFilterMetadataIncorrectIsrcFormat": "Format ISRC incorrect", + "@libraryFilterMetadataIncorrectIsrcFormat": { + "description": "Filter option - items with an invalid ISRC format" + }, + "libraryFilterMetadataMissingIsrc": "ISRC manquant", + "@libraryFilterMetadataMissingIsrc": { + "description": "Filter option - items without any ISRC tag" + }, + "libraryFilterMetadataMissingLabel": "Label manquant", + "@libraryFilterMetadataMissingLabel": { + "description": "Filter option - items missing record label" + }, + "collectionDeletePlaylistsMessage": "Supprimer {count} {count, plural, =1{playlist} other{playlists}}?", + "@collectionDeletePlaylistsMessage": { + "description": "Confirmation message for deleting selected playlists", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "collectionPlaylistsDeleted": "{count} {count, plural, =1{playlist} other{playlists}} supprimées", + "@collectionPlaylistsDeleted": { + "description": "Snackbar after deleting selected playlists", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "collectionAddedTracksToPlaylist": "Ajout de {count} {count, plural, =1{titre} other{titres}} à {playlistName}", + "@collectionAddedTracksToPlaylist": { + "description": "Snackbar after adding multiple tracks to a playlist", + "placeholders": { + "count": { + "type": "int" + }, + "playlistName": { + "type": "String" + } + } + }, + "collectionAddedTracksToPlaylistWithExisting": "Ajout de {count} {count, plural, =1{titre} other{titres}} à {playlistName} ({alreadyCount} titres déjà présents dans la playlist)", + "@collectionAddedTracksToPlaylistWithExisting": { + "description": "Snackbar after adding multiple tracks to a playlist when some were already present", + "placeholders": { + "count": { + "type": "int" + }, + "playlistName": { + "type": "String" + }, + "alreadyCount": { + "type": "int" + } + } + }, + "itemCount": "{count} {count, plural, =1{élément} other{éléments}}", + "@itemCount": { + "description": "Generic item count label", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "trackReEnrichSuccessWithFailures": "Les métadonnées ont été réenrichies avec succès ({successCount}/{total}) - Échec : {failedCount}", + "@trackReEnrichSuccessWithFailures": { + "description": "Snackbar summary after batch metadata re-enrichment finishes with failures", + "placeholders": { + "successCount": { + "type": "int" + }, + "total": { + "type": "int" + }, + "failedCount": { + "type": "int" + } + } + }, + "selectionDeleteTracksCount": "Supprimer {count} {count, plural, =1{titre} other{titres}}", + "@selectionDeleteTracksCount": { + "description": "Button label for deleting selected tracks", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "queueDownloadSpeedStatus": "Téléchargement - {speed} Mo/s", + "@queueDownloadSpeedStatus": { + "description": "Queue status while downloading with speed", + "placeholders": { + "speed": { + "type": "String" + } + } + }, + "queueDownloadStarting": "C'est parti...", "queueCheckingDownloadSession": "Vérification de la session de téléchargement...", "queueResolvingDownloadMetadata": "Récupération des métadonnées du morceau...", "queueResolvingDownloadStream": "Préparation du flux audio...", "queueWaitingForVerification": "En attente de vérification...", "queueResumingAfterVerification": "Reprise après vérification...", + "@queueDownloadStarting": { + "description": "Queue status before download progress is available" + }, + "@queueCheckingDownloadSession": { + "description": "Queue status while the download provider's session is being checked during preparation (preparationStage 'checking_session'). This is about the provider session, not about locating a finished file." + }, + "a11ySelectTrack": "Sélectionner une piste", + "@a11ySelectTrack": { + "description": "Accessibility label for selecting a track" + }, + "a11yDeselectTrack": "Désélectionner la piste", + "@a11yDeselectTrack": { + "description": "Accessibility label for deselecting a track" + }, + "a11yPlayTrackByArtist": "Écouter {trackName} de {artistName}", + "@a11yPlayTrackByArtist": { + "description": "Accessibility label for playing a local library track", + "placeholders": { + "trackName": { + "type": "String" + }, + "artistName": { + "type": "String" + } + } + }, + "storeExtensionsCount": "{count} {count, plural, one {}=1{extension} other{extensions}}", + "@storeExtensionsCount": { + "description": "Store extension result count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "storeRequiresVersion": "Nécessite la version v{version}+", + "@storeRequiresVersion": { + "description": "Store compatibility badge for minimum app version", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "actionGo": "Aller", + "@actionGo": { + "description": "Generic action button label" + }, + "logIssueSummary": "Résumé du problème", + "@logIssueSummary": { + "description": "Header for log issue analysis summary" + }, + "logTotalErrors": "Nombre total d'erreurs : {count}", + "@logTotalErrors": { + "description": "Total error count in log issue analysis", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "logAffectedDomains": "Concerne : {domains}", + "@logAffectedDomains": { + "description": "Affected domains in log issue analysis", + "placeholders": { + "domains": { + "type": "String" + } + } + }, + "libraryScanCancelled": "Analyse annulée", + "@libraryScanCancelled": { + "description": "Library scan status when a scan was cancelled" + }, + "libraryScanCancelledSubtitle": "Vous pouvez relancer l'analyse dès que vous êtes prêt.", + "@libraryScanCancelledSubtitle": { + "description": "Library scan status subtitle after cancellation" + }, + "libraryDownloadsHistoryExcluded": "{count} dans l'historique des téléchargements (exclu de la liste)", + "@libraryDownloadsHistoryExcluded": { + "description": "Library count note for downloaded history items excluded from the local list", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "downloadNativeWorker": "Tâche de téléchargement native", + "@downloadNativeWorker": { + "description": "Setting title for Android native download worker" + }, + "downloadNativeWorkerSubtitle": "Service d'arrière-plan Android pour le téléchargement d'extensions", + "@downloadNativeWorkerSubtitle": { + "description": "Setting subtitle for Android native download worker" + }, + "extensionServiceStatus": "État du service", + "@extensionServiceStatus": { + "description": "Extension detail section header for service status" + }, + "extensionServiceHealth": "Santé du service", + "@extensionServiceHealth": { + "description": "Extension capability label for service health checks" + }, + "extensionHealthChecksConfigured": "{count} {count, plural, =1{vérification} other{vérifications}} configurées", + "@extensionHealthChecksConfigured": { + "description": "Extension service health check count", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "extensionOauthConnectHint": "Appuyez sur « Se connecter à Spotify » pour remplir ce champ.", + "@extensionOauthConnectHint": { + "description": "Hint for an OAuth login link field before connecting Spotify" + }, + "extensionLastChecked": "Dernière vérification à {time}", + "@extensionLastChecked": { + "description": "Timestamp for the latest extension service health check", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "extensionRefreshStatus": "Actualiser l'état", + "@extensionRefreshStatus": { + "description": "Tooltip for refreshing extension service health status" + }, + "extensionCustomUrlHandling": "Gestion des URL personnalisées", + "@extensionCustomUrlHandling": { + "description": "Extension detail section title for custom URL handling" + }, + "extensionCustomUrlHandlingSubtitle": "Cette extension prend en charge les liens provenant de ces sites", + "@extensionCustomUrlHandlingSubtitle": { + "description": "Extension detail subtitle for custom URL handling" + }, + "extensionCustomUrlHandlingShareHint": "Partagez des liens provenant de ces sites vers SpotiFLAC Mobile et cette extension s'en chargera.", + "@extensionCustomUrlHandlingShareHint": { + "description": "Extension detail hint explaining share-to-app URL handling" + }, + "extensionSettingsCount": "{count} {count, plural, =1{paramètre} other{paramètres}}", + "@extensionSettingsCount": { + "description": "Count of settings exposed by an extension quality option", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "extensionHealthOnline": "En ligne", + "@extensionHealthOnline": { + "description": "Extension service health status - online" + }, + "extensionHealthDegraded": "Dégradé", + "@extensionHealthDegraded": { + "description": "Extension service health status - degraded" + }, + "extensionHealthOffline": "Hors ligne", + "@extensionHealthOffline": { + "description": "Extension service health status - offline" + }, + "extensionHealthNotConfigured": "Non configuré", + "@extensionHealthNotConfigured": { + "description": "Extension service health status - not configured" + }, + "extensionHealthUnknown": "Inconnu", + "@extensionHealthUnknown": { + "description": "Extension service health status - unknown" + }, + "extensionHealthRequired": "requis", + "@extensionHealthRequired": { + "description": "Label for a required extension service health check" + }, + "extensionSettingNotSet": "Non défini", + "@extensionSettingNotSet": { + "description": "Value shown when an extension setting has no value" + }, + "extensionActionFailed": "L'action a échoué", + "@extensionActionFailed": { + "description": "Fallback error when an extension action fails without details" + }, + "extensionEnterValue": "Saisir une valeur", + "@extensionEnterValue": { + "description": "Hint for editing an extension setting value" + }, + "extensionHealthServiceOnline": "Service en ligne", + "@extensionHealthServiceOnline": { + "description": "Tooltip for online extension service" + }, + "extensionHealthServiceDegraded": "Service perturbé", + "@extensionHealthServiceDegraded": { + "description": "Tooltip for degraded extension service" + }, + "extensionHealthServiceOffline": "Service hors ligne", + "@extensionHealthServiceOffline": { + "description": "Tooltip for offline extension service" + }, + "extensionHealthServiceUnknown": "État du service inconnu", + "@extensionHealthServiceUnknown": { + "description": "Tooltip for unknown extension service health" + }, + "audioAnalysisStereo": "Stéréo", + "@audioAnalysisStereo": { + "description": "Audio channel layout label - stereo" + }, + "audioAnalysisMono": "Mono", + "@audioAnalysisMono": { + "description": "Audio channel layout label - mono" + }, + "trackOpenInService": "Ouvrir dans {serviceName}", + "@trackOpenInService": { + "description": "Button label to open a track in a named music service", + "placeholders": { + "serviceName": { + "type": "String" + } + } + }, + "trackLyricsEmbeddedSource": "Intégré", + "@trackLyricsEmbeddedSource": { + "description": "Lyrics source label for embedded lyrics" + }, + "unknownAlbum": "Album inconnu", + "@unknownAlbum": { + "description": "Fallback album name when metadata is missing" + }, + "unknownArtist": "Artiste inconnu", + "@unknownArtist": { + "description": "Fallback artist name when metadata is missing" + }, + "permissionAudio": "Audio", + "@permissionAudio": { + "description": "Audio permission type label" + }, + "permissionStorage": "Stockage", + "@permissionStorage": { + "description": "Storage permission type label" + }, + "permissionNotification": "Notification", + "@permissionNotification": { + "description": "Notification permission type label" + }, + "errorInvalidFolderSelected": "Dossier non valide sélectionné", + "@errorInvalidFolderSelected": { + "description": "Error when the selected folder is invalid" + }, + "storeAnyVersion": "N'importe lequel", + "@storeAnyVersion": { + "description": "Store detail value when any app version is accepted" + }, + "storeCategoryMetadata": "Métadonnées", + "@storeCategoryMetadata": { + "description": "Store extension category - metadata" + }, + "storeCategoryDownload": "Télécharger", + "@storeCategoryDownload": { + "description": "Store extension category - download" + }, + "storeCategoryUtility": "Utilitaire", + "@storeCategoryUtility": { + "description": "Store extension category - utility" + }, + "storeCategoryLyrics": "Paroles", + "@storeCategoryLyrics": { + "description": "Store extension category - lyrics" + }, + "storeCategoryIntegration": "Intégration", + "@storeCategoryIntegration": { + "description": "Store extension category - integration" + }, + "artistReleases": "Sorties", + "@artistReleases": { + "description": "Section header for all artist releases" + }, + "editMetadataSelectNone": "Aucun", + "@editMetadataSelectNone": { + "description": "Button to clear selected fields for auto-fill" + }, + "queueRetryAllFailed": "{count} tentatives ont échoué", + "@queueRetryAllFailed": { + "description": "Button to retry every failed download in the queue", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "settingsSaveDownloadHistory": "Enregistrer l'historique des téléchargements", + "@settingsSaveDownloadHistory": { + "description": "Settings switch title for storing completed downloads in history" + }, + "settingsSaveDownloadHistorySubtitle": "Conserver les téléchargements terminés dans l'historique et la bibliothèque", + "@settingsSaveDownloadHistorySubtitle": { + "description": "Settings switch subtitle for storing completed downloads in history" + }, + "dialogDisableHistoryTitle": "Désactiver l'historique des téléchargements ?", + "@dialogDisableHistoryTitle": { + "description": "Confirmation dialog title shown before disabling download history" + }, + "dialogDisableHistoryMessage": "L'historique actuel sera effacé. Les fichiers téléchargés ne seront pas supprimés.", + "@dialogDisableHistoryMessage": { + "description": "Confirmation dialog message shown before disabling download history" + }, + "dialogDisableAndClear": "Désactiver et effacer", + "@dialogDisableAndClear": { + "description": "Confirmation action to disable download history and clear existing entries" + }, + "openInOtherServices": "Ouvrir dans d'autres services", + "@openInOtherServices": { + "description": "Title and tooltip for finding the current collection in other services" + }, + "shareSheetNoExtensions": "Aucun autre service compatible", + "@shareSheetNoExtensions": { + "description": "Empty state when no extensions can be searched for cross-service links" + }, + "shareSheetNotFound": "Introuvable", + "@shareSheetNotFound": { + "description": "Cross-service share sheet row subtitle when a service has no match" + }, + "shareSheetCopyLink": "Copier le lien", + "@shareSheetCopyLink": { + "description": "Tooltip for copying a cross-service link" + }, + "shareSheetLinkCopied": "Lien {service} copié", + "@shareSheetLinkCopied": { + "description": "Snackbar after copying a cross-service link", + "placeholders": { + "service": {} + } + }, + "libraryPlayback": "Lecture", + "@libraryPlayback": { + "description": "Section header for playback settings in library settings" + }, + "libraryExternalPlayer": "Lecteur externe", + "@libraryExternalPlayer": { + "description": "Setting option to use an external music player" + }, + "libraryExternalPlayerSubtitle": "Recommandé pour l'écoute, la meilleure qualité, la lecture en continu, l'égaliseur et la prise en charge d'un plus grand nombre de formats", + "@libraryExternalPlayerSubtitle": { + "description": "Subtitle for external player option" + }, + "libraryBuiltInPreviewPlayer": "Lecteur de prévisualisation intégré", + "@libraryBuiltInPreviewPlayer": { + "description": "Setting option to use the built-in preview player" + }, + "libraryBuiltInPreviewPlayerSubtitle": "Uniquement pour des écoutes rapides et locales dans SpotiFLAC Mobile ; non recommandé pour une écoute régulière", + "@libraryBuiltInPreviewPlayerSubtitle": { + "description": "Subtitle for built-in preview player option" + }, + "libraryBuiltInPlayerInfo": "Le lecteur intégré est un outil de prévisualisation permettant de vérifier rapidement les morceaux stockés localement. Utilisez un lecteur de musique externe pour les écouter.", + "@libraryBuiltInPlayerInfo": { + "description": "Info note explaining the built-in player is for previews only" + }, + "nowPlayingTitle": "En cours de lecture", + "@nowPlayingTitle": { + "description": "Title for the now playing screen" + }, + "nowPlayingNothingPlaying": "Il n'y a rien à l'écran", + "@nowPlayingNothingPlaying": { + "description": "Empty state when no track is currently playing" + }, + "nowPlayingMinimize": "Réduire", + "@nowPlayingMinimize": { + "description": "Tooltip for minimizing the now playing screen" + }, + "nowPlayingUpNext": "À suivre", + "@nowPlayingUpNext": { + "description": "Title for the playback queue sheet" + }, + "nowPlayingPreviousTrack": "Previous track", + "@nowPlayingPreviousTrack": { + "description": "Tooltip for the previous-track playback control" + }, + "nowPlayingNextTrack": "Next track", + "@nowPlayingNextTrack": { + "description": "Tooltip for the next-track playback control" + }, + "nowPlayingDetails": "Détails", + "@nowPlayingDetails": { + "description": "Menu item and section title for track metadata details" + }, + "nowPlayingSleepTimer": "Sleep timer", + "@nowPlayingSleepTimer": { + "description": "Menu item and sheet title for the playback sleep timer" + }, + "nowPlayingSleepTimerActive": "Ends at {time}", + "@nowPlayingSleepTimerActive": { + "description": "Active sleep timer deadline shown in the player menu", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "nowPlayingSleepTimerMinutes": "{minutes, plural, =1{1 minute} other{{minutes} minutes}}", + "@nowPlayingSleepTimerMinutes": { + "description": "Duration choice for the playback sleep timer", + "placeholders": { + "minutes": { + "type": "int" + } + } + }, + "nowPlayingSleepTimerOff": "Turn off sleep timer", + "@nowPlayingSleepTimerOff": { + "description": "Action to cancel the active playback sleep timer" + }, + "nowPlayingSleepTimerSet": "Sleep timer set for {duration}", + "@nowPlayingSleepTimerSet": { + "description": "Confirmation after setting the playback sleep timer", + "placeholders": { + "duration": { + "type": "String" + } + } + }, + "nowPlayingSleepTimerCancelled": "Sleep timer turned off", + "@nowPlayingSleepTimerCancelled": { + "description": "Confirmation after cancelling the playback sleep timer" + }, + "nowPlayingOpenInExternalPlayer": "Ouvrir dans un lecteur externe", + "@nowPlayingOpenInExternalPlayer": { + "description": "Menu item to open the current track in an external player" + }, + "nowPlayingTabPlayer": "Lecteur", + "@nowPlayingTabPlayer": { + "description": "Tab label for the player view" + }, + "nowPlayingTabLyrics": "Paroles", + "@nowPlayingTabLyrics": { + "description": "Tab label for the lyrics view" + }, + "nowPlayingNoLyrics": "Ce fichier ne contient pas de paroles", + "@nowPlayingNoLyrics": { + "description": "Empty state when the playing file has no embedded lyrics" + }, + "nowPlayingLibraryEmpty": "Votre bibliothèque est vide", + "@nowPlayingLibraryEmpty": { + "description": "Snackbar when shuffle library is requested but library has no tracks" + }, + "nowPlayingShuffleLibraryFailed": "Impossible de lire aléatoirement la bibliothèque : {error}", + "@nowPlayingShuffleLibraryFailed": { + "description": "Snackbar when shuffling the library fails", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "nowPlayingShuffleOn": "Lecture aléatoire activée", + "@nowPlayingShuffleOn": { + "description": "Tooltip when shuffle mode is enabled" + }, + "nowPlayingPlayInOrder": "Lire dans l'ordre", + "@nowPlayingPlayInOrder": { + "description": "Tooltip when shuffle mode is disabled" + }, + "nowPlayingShuffleLibrary": "Lecture aléatoire de la bibliothèque", + "@nowPlayingShuffleLibrary": { + "description": "Button label to shuffle and play the entire local library" + }, + "nowPlayingQueueEmpty": "La file d'attente est vide", + "@nowPlayingQueueEmpty": { + "description": "Empty state when the playback queue has no items" + }, + "nowPlayingNoMetadata": "Aucune métadonnée disponible", + "@nowPlayingNoMetadata": { + "description": "Empty state when track metadata cannot be loaded" + }, + "announcementUnableToOpenLink": "Impossible d'ouvrir le lien. Veuillez réessayer.", + "@announcementUnableToOpenLink": { + "description": "Snackbar shown when an announcement CTA link cannot be opened" + }, + "trackConvertLosslessOutputWithCap": "Sortie sans perte avec une limite de {quality}", + "@trackConvertLosslessOutputWithCap": { + "description": "Hint shown when lossless conversion will cap bit depth or sample rate", + "placeholders": { + "quality": { + "type": "String" + } + } + }, + "trackConvertConfirmMessageLosslessCapped": "Convertir du format {sourceFormat} au format {targetFormat} ({quality}) ?\n\nLe fichier de sortie conservera un codec sans perte, mais la profondeur de bits et la fréquence d'échantillonnage seront limitées. Le fichier d'origine sera supprimé après la conversion.", + "@trackConvertConfirmMessageLosslessCapped": { + "description": "Confirmation dialog message for capped lossless conversion of a single file", + "placeholders": { + "sourceFormat": { + "type": "String" + }, + "targetFormat": { + "type": "String" + }, + "quality": { + "type": "String" + } + } + }, + "selectionBatchConvertConfirmMessageLosslessCapped": "Convertir {count} {count, plural, =1{titre} other{titres}} en {format} ({quality}) ?\n\nLe fichier de sortie conservera un codec sans perte, mais la profondeur de bits et la fréquence d'échantillonnage seront limitées. Les fichiers d'origine seront supprimés après la conversion.", + "@selectionBatchConvertConfirmMessageLosslessCapped": { + "description": "Confirmation dialog message for capped lossless batch conversion", + "placeholders": { + "count": { + "type": "int" + }, + "format": { + "type": "String" + }, + "quality": { + "type": "String" + } + } + }, + "trackConvertActionLabelLossless": "{sourceFormat} → {targetFormat} ({quality})", + "@trackConvertActionLabelLossless": { + "description": "Convert button label for lossless conversion with quality cap", + "placeholders": { + "sourceFormat": { + "type": "String" + }, + "targetFormat": { + "type": "String" + }, + "quality": { + "type": "String" + } + } + }, + "trackConvertActionLabelLossy": "{sourceFormat} → {targetFormat} @ {bitrate}", + "@trackConvertActionLabelLossy": { + "description": "Convert button label for lossy conversion", + "placeholders": { + "sourceFormat": { + "type": "String" + }, + "targetFormat": { + "type": "String" + }, + "bitrate": { + "type": "String" + } + } + }, + "aboutPaxsenixSubtitle": "Proxy de paroles pour Musixmatch, Netease, Apple Music, QQ Music, Spotify, Deezer, YouTube, Kugou et Genius", + "@aboutPaxsenixSubtitle": { + "description": "Subtitle for Paxsenix special thanks entry on the about page" + }, + "snackbarPlayingNext": "Prochainement", + "@snackbarPlayingNext": { + "description": "Snackbar when a track is inserted as the next queue item" + }, + "snackbarAddedToQueueGeneric": "Ajouté à la file d'attente", + "@snackbarAddedToQueueGeneric": { + "description": "Snackbar when a track is added to the playback queue without naming it" + }, + "selectionDeletePlaylistsCount": "Supprimer {count} {count, plural, one {}=1{playlist} other{playlists}}", + "@selectionDeletePlaylistsCount": { + "description": "Button label for deleting multiple selected playlists", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "actionShuffle": "Lecture aléatoire", + "@actionShuffle": { + "description": "Tooltip for shuffle playback action" + }, + "downloadPrimaryArtistOnlyOn": "Primaire uniquement : Activé", + "@downloadPrimaryArtistOnlyOn": { + "description": "Status label when primary-artist-only folder naming is enabled" + }, + "downloadPrimaryArtistOnlyOff": "Primaire uniquement : Désactivé", + "@downloadPrimaryArtistOnlyOff": { + "description": "Status label when primary-artist-only folder naming is disabled" + }, + "downloadAlbumArtistMetadataPrimaryOnly": "Métadonnées « Album » et « Artiste » : uniquement les données principales", + "@downloadAlbumArtistMetadataPrimaryOnly": { + "description": "Status label when album-artist folder filtering uses primary artist only" + }, + "downloadAlbumArtistMetadataFull": "Métadonnées de l'artiste de l'album : complètes", + "@downloadAlbumArtistMetadataFull": { + "description": "Status label when album-artist folder filtering uses full metadata" + }, + "trackConvertOriginal": "Original", + "@trackConvertOriginal": { + "description": "Label for keeping original bit depth or sample rate during conversion" + }, + "trackConvertOriginalQuality": "Qualité d'origine", + "@trackConvertOriginalQuality": { + "description": "Label when no bit depth or sample rate cap is applied during lossless conversion" + }, + "trackConvertLosslessSuffix": "Sans perte", + "@trackConvertLosslessSuffix": { + "description": "Suffix used in converted lossless quality labels" + }, + "trackConvertDithering": "Hésitation", + "@trackConvertDithering": { + "description": "Section label for lossless conversion dithering options" + }, + "trackConvertResampler": "Rééchantillonneur", + "@trackConvertResampler": { + "description": "Section label for lossless conversion resampler options" + }, + "trackConvertDitherNone": "Aucun", + "@trackConvertDitherNone": { + "description": "Lossless conversion dither option with no dithering applied" + }, + "trackConvertDitherTriangular": "TPDF", + "@trackConvertDitherTriangular": { + "description": "Lossless conversion triangular probability density function dither option" + }, + "trackConvertDitherTriangularHp": "HP triangulaire", + "@trackConvertDitherTriangularHp": { + "description": "Lossless conversion high-pass triangular dither option" + }, + "trackConvertResamplerSwr": "SWR", + "@trackConvertResamplerSwr": { + "description": "Lossless conversion default FFmpeg swresample resampler option" + }, + "trackConvertResamplerSoxr": "SoXr", + "@trackConvertResamplerSoxr": { + "description": "Lossless conversion SoX resampler option" + }, + "updateSeeReleaseNotes": "Pour plus de détails, consultez les notes de mise à jour.", + "@updateSeeReleaseNotes": { + "description": "Fallback changelog text when release notes cannot be parsed" + }, + "unknownTitle": "Titre inconnu", + "@unknownTitle": { + "description": "Fallback track title when metadata is missing" + }, + "trackPlayNext": "Suivant", + "@trackPlayNext": { + "description": "Menu action to play a track as the next queue item" + }, + "trackAddToQueue": "Ajouter à la file d'attente", + "@trackAddToQueue": { + "description": "Menu action to add a track to the playback queue" + }, + "snackbarExtensionInstalledEnable": "{extensionName} est installée. Activez-la dans Paramètres > Extensions", + "@snackbarExtensionInstalledEnable": { + "description": "Snackbar after installing an extension from the repo tab", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "snackbarExtensionUpdatedVersion": "{extensionName} a été mis à jour vers la version {version}", + "@snackbarExtensionUpdatedVersion": { + "description": "Snackbar after updating an extension from the repo tab", + "placeholders": { + "extensionName": { + "type": "String" + }, + "version": { + "type": "String" + } + } + }, + "snackbarFailedToInstallNamed": "Échec de l'installation de {extensionName}", + "@snackbarFailedToInstallNamed": { + "description": "Snackbar when extension install fails in the repo tab", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "snackbarFailedToUpdateNamed": "Échec de la mise à jour de {extensionName}", + "@snackbarFailedToUpdateNamed": { + "description": "Snackbar when extension update fails in the repo tab", + "placeholders": { + "extensionName": { + "type": "String" + } + } + }, + "releaseTypeEp": "EP", + "@releaseTypeEp": { + "description": "Badge label for EP releases" + }, + "releaseTypeSingle": "Single", + "@releaseTypeSingle": { + "description": "Badge label for single releases" + }, + "trackCoverOnline": "Pochette en ligne", + "@trackCoverOnline": { + "description": "Label shown when metadata autofill downloaded cover art from the internet" + }, + "regionCountryUS": "États-Unis", + "@regionCountryUS": { + "description": "Country name for SongLink region picker" + }, + "regionCountryGB": "Royaume-Uni", + "@regionCountryGB": { + "description": "Country name for SongLink region picker" + }, + "regionCountryFR": "France", + "@regionCountryFR": { + "description": "Country name for SongLink region picker" + }, + "regionCountryDE": "Allemagne", + "@regionCountryDE": { + "description": "Country name for SongLink region picker" + }, + "regionCountryJP": "Japon", + "@regionCountryJP": { + "description": "Country name for SongLink region picker" + }, + "regionCountryKR": "Corée du Sud", + "@regionCountryKR": { + "description": "Country name for SongLink region picker" + }, + "regionCountryIN": "Inde", + "@regionCountryIN": { + "description": "Country name for SongLink region picker" + }, + "regionCountryID": "Indonésie", + "@regionCountryID": { + "description": "Country name for SongLink region picker" + }, + "regionCountryBR": "Brésil", + "@regionCountryBR": { + "description": "Country name for SongLink region picker" + }, + "regionCountryMX": "Mexique", + "@regionCountryMX": { + "description": "Country name for SongLink region picker" + }, + "regionCountryAU": "Australie", + "@regionCountryAU": { + "description": "Country name for SongLink region picker" + }, + "regionCountryCA": "Canada", + "@regionCountryCA": { + "description": "Country name for SongLink region picker" + }, + "regionCountryXK": "Kosovo", + "@regionCountryXK": { + "description": "Country name for SongLink region picker" + }, + "extensionVerificationBrowserTitle": "Navigateur de vérification", + "@extensionVerificationBrowserTitle": { + "description": "Settings option title for extension verification browser preference" + }, + "extensionVerificationBrowserSubtitleExternal": "Ouvrez d'abord les défis dans le navigateur par défaut", + "@extensionVerificationBrowserSubtitleExternal": { + "description": "Subtitle when external browser is preferred for extension verification" + }, + "extensionVerificationBrowserSubtitleInApp": "Ouvrez d'abord les défis dans le navigateur intégré à l'application", + "@extensionVerificationBrowserSubtitleInApp": { + "description": "Subtitle when in-app browser is preferred for extension verification" + }, + "extensionVerificationBrowserExternal": "Externe", + "@extensionVerificationBrowserExternal": { + "description": "Chip label for external browser verification mode" + }, + "extensionVerificationBrowserInApp": "Dans l'application", + "@extensionVerificationBrowserInApp": { + "description": "Chip label for in-app browser verification mode" + }, + "extensionVerificationHelpTitleManual": "Lancer la vérification manuellement", + "@extensionVerificationHelpTitleManual": { + "description": "Dialog title when automatic browser launch for verification fails" + }, + "extensionVerificationHelpTitleWaiting": "La vérification est toujours en attente", + "@extensionVerificationHelpTitleWaiting": { + "description": "Dialog title when verification is taking longer than expected" + }, + "extensionVerificationHelpMessageManual": "SpotiFLAC Mobile n'a pas pu ouvrir automatiquement le navigateur. Ouvrez ce lien dans votre navigateur ou copiez-le manuellement.", + "@extensionVerificationHelpMessageManual": { + "description": "Dialog message when automatic browser launch for verification fails" + }, + "extensionVerificationHelpMessageWaiting": "Si le navigateur ne s'est pas ouvert, ou si la vérification s'est terminée sans que vous ne soyez redirigé vers SpotiFLAC Mobile, ouvrez à nouveau ce lien ou copiez-le manuellement.", + "@extensionVerificationHelpMessageWaiting": { + "description": "Dialog message when verification may need manual browser help" + }, + "extensionVerificationClose": "Fermer", + "@extensionVerificationClose": { + "description": "Button to dismiss the extension verification help dialog" + }, + "extensionVerificationCopyLink": "Copier le lien", + "@extensionVerificationCopyLink": { + "description": "Button to copy the extension verification URL" + }, + "extensionVerificationLinkCopied": "Lien de vérification copié", + "@extensionVerificationLinkCopied": { + "description": "Snackbar after copying the extension verification URL" + }, + "extensionVerificationOpenBrowser": "Ouvrir le navigateur", + "@extensionVerificationOpenBrowser": { + "description": "Button to open the extension verification URL in a browser" + }, "settingsSearchHint": "Paramètres de recherche", + "@settingsSearchHint": { + "description": "Placeholder of the search field on the Settings tab" + }, "settingsSearchNoResults": "Aucun paramètre ne correspond à « {query} »", + "@settingsSearchNoResults": { + "description": "Shown when a Settings search returns nothing", + "placeholders": { + "query": { + "type": "String" + } + } + }, "settingsGroupInterface": "Extensions & Apparence", + "@settingsGroupInterface": { + "description": "Settings group covering look and feel" + }, "settingsGroupContent": "Contenu & Métadonnées", + "@settingsGroupContent": { + "description": "Settings group covering the library, metadata and lyrics" + }, "settingsGroupDownloads": "Téléchargements & Fichiers", + "@settingsGroupDownloads": { + "description": "Settings group covering download behaviour and storage" + }, "settingsGroupSystem": "Système", + "@settingsGroupSystem": { + "description": "Settings group covering app-level data, cache and logs" + }, "settingsGroupHelp": "À propos & Assistance", - "collectionExportM3u": "Exporter au format M3U8", - "collectionExportM3uDone": "{exported} titres exportés sur {total}", - "collectionExportM3uNone": "Aucun fichier téléchargé à exporter", - "collectionExportM3uFailed": "L'exportation a échoué", - "trackOpenOn": "Ouvrir sur...", - "trackOpenOnNoLinks": "Aucun lien vers une plateforme n'a été trouvé pour ce titre.", - "libraryReviewDuplicates": "Vérifier les doublons", - "libraryReviewDuplicatesSubtitle": "Rechercher les titres enregistrés plusieurs fois", - "duplicatesTitle": "Doublons", - "duplicatesEmpty": "Aucun titre en double n'a été détecté.", - "duplicatesKeepBest": "Garder le meilleur", - "duplicatesKeepBestMessage": "Supprimer {count} copies de moindre qualité de « {trackName} » ?", - "duplicatesDeleteCopyMessage": "Souhaitez-vous supprimer cette copie de « {trackName} » ?", - "downloadAutoConvert": "Auto-convert after download", - "downloadAutoConvertSubtitle": "Convert completed downloads to a smaller lossy format. The original is replaced only after conversion succeeds.", - "downloadAutoConvertFormat": "Output format", - "downloadAutoConvertFormatSubtitle": "Choose the lossy format used for newly completed downloads.", - "downloadAutoConvertBitrate": "Output quality", - "downloadAutoConvertBitrateSubtitle": "Higher bitrates preserve more detail but create larger files.", - "downloadAutoConvertMp3Subtitle": "Best compatibility across players and devices", - "downloadAutoConvertM4aSubtitle": "Efficient AAC audio in an M4A container", - "downloadAutoConvertOpusSubtitle": "Best efficiency for modern players", - "appearanceForceBlur": "Utilisez toujours des effets de flou", - "appearanceForceBlurSubtitle": "Activer l'effet de flou de la barre de navigation même sur les appareils où cette option est désactivée par défaut. Cela peut nuire aux performances.", - "recentClearAllMessage": "Clear all recent activity? Download history and music files will not be deleted.", - "libraryAddFolder": "Add library folder", - "libraryAddFolderSubtitle": "Internal storage, SD card, SSD, or another external drive", - "librarySourceOnline": "Online", - "librarySourceOffline": "Offline. Reconnect the storage to restore these tracks", - "librarySourceDisabled": "Disabled", - "librarySourceScanCount": "{scanned} of {total} files scanned ({progress}%)", - "libraryExternalStorage": "External storage", - "libraryRemoveFolder": "Remove library folder", - "libraryRemoveFolderMessage": "Remove this folder and its indexed tracks from SpotiFLAC Mobile? Audio files on the storage will not be deleted.", - "trackReEnrichModeIsrc": "ISRC only", - "trackReEnrichModeIsrcSubtitle": "Find and add the recording identifier without changing other tags", - "trackReEnrichModeMissing": "Fill missing tags", - "trackReEnrichModeMissingSubtitle": "Keep existing values and fill only fields that are empty", - "trackReEnrichModeReplace": "Update selected tags", - "trackReEnrichModeReplaceSubtitle": "Choose which existing values may be replaced by online metadata", - "trackReEnrichFieldsTitle": "Tags to update", - "trackReEnrichReview": "Review changes", - "trackReEnrichReviewTitle": "Review metadata changes", - "trackReEnrichReviewSubtitle": "{changeCount} proposed changes across {trackCount} tracks", - "trackReEnrichNoChanges": "No metadata changes were found for the selected tracks.", - "trackReEnrichApplyChanges": "Apply changes", - "trackReEnrichRefreshOnline": "Refresh from online", - "editMetadataAutoFillSource": "Source des métadonnées", - "editMetadataAutoFillSourceAutomatic": "Automatique (priorité au fournisseur)", - "editMetadataAutoFillFind": "Rechercher des métadonnées", - "editMetadataAutoFillPreview": "Données provenant de {source}", - "editMetadataAutoFillCoverAvailable": "Illustration de couverture disponible", - "editMetadataAutoFillApply": "Appliquer les données sélectionnées", - "editMetadataAutoFillDoneFromSource": "Rempli {count} {count, plural, one {}=1{champ} other{champs}} ont été renseignés à partir de {source}", - "queuePlaylistCount": "{count, plural, =1{1 playlist} other{{count} playlists}}", - "queueEmptyPlaylistsSubtitle": "Créez une playlist pour organiser vos morceaux", - "libraryDefaultView": "Affichage par défaut", - "libraryDefaultViewLastUsed": "Dernière utilisation", - "audioAnalysisCutoffNotDetected": "Non détecté", - "queueCancelledTitle": "Téléchargement annulé", - "queueCancelledMessage": "Ce téléchargement a été annulé. Veuillez réessayer ou le supprimer de la file d'attente.", - "trackCoverResolution": "Résolution de la couverture", - "trackCoverResolutionHint": "Définit la longueur maximale de l'image lors de l'enregistrement. L'agrandissement n'apporte pas davantage de détails à l'image.", - "trackCoverResizeFailed": "L'image de couverture n'a pas pu être redimensionnée. Veuillez essayer une autre taille ou une autre image.", - "queueDownloadNext": "Télécharger le suivant", - "queueMoveUp": "Remonter", - "queueMoveDown": "Descendre", - "editMetadataMusicBrainzButton": "Récupérer depuis MusicBrainz", - "editMetadataMusicBrainzFilled": "Mise à jour à partir de MusicBrainz", - "editMetadataMusicBrainzNothing": "Aucun résultat trouvé sur MusicBrainz", - "editMetadataMusicBrainzNeedsIsrc": "Nécessite une balise ISRC", - "nowPlayingRepeatOff": "Répétition désactivée", - "nowPlayingRepeatAll": "Tout répéter", - "nowPlayingRepeatOne": "Répéter une fois", - "queueNetworkFailedOffline": "{count} téléchargements ont échoué en mode hors ligne", - "trackAlbumType": "Release Type", - "editMetadataFieldAlbumTypeHint": "Album, single, EP, compilation...", - "editMetadataFieldExplicit": "Explicit", - "editMetadataFieldExplicitHint": "Mark this track as containing explicit content", - "metadataExplicitValue": "Explicit", - "editMetadataFieldUpc": "UPC / Barcode", - "editMetadataFieldUpcHint": "Numeric UPC, EAN, or GTIN", - "libraryFilterMetadataMissingIsrc": "ISRC manquant" -} + "@settingsGroupHelp": { + "description": "Settings group covering the about page and donations" + }, + "libraryFilterMetadataMissingLyrics": "Missing lyrics", + "@libraryFilterMetadataMissingLyrics": { + "description": "Filter option for tracks without embedded or sidecar lyrics" + }, + "trackOptionCopyTrackName": "Copy track name", + "@trackOptionCopyTrackName": { + "description": "Track menu action that copies the track title" + }, + "trackOptionCopyArtist": "Copy artist", + "@trackOptionCopyArtist": { + "description": "Track menu action that copies the artist name" + }, + "trackOptionCopyTrackAndArtist": "Copy track and artist", + "@trackOptionCopyTrackAndArtist": { + "description": "Track menu action that copies the track title and artist" + }, + "metadataCopyValue": "Copy value", + "@metadataCopyValue": { + "description": "Metadata menu action that copies only the selected value" + }, + "metadataCopyField": "Copy field and value", + "@metadataCopyField": { + "description": "Metadata menu action that copies the selected key and value" + }, + "metadataCopyAll": "Copy all metadata", + "@metadataCopyAll": { + "description": "Metadata menu action that copies every visible key and value" + }, + "optionsEmbeddedCoverSize": "Embedded Cover Size", + "@optionsEmbeddedCoverSize": { + "description": "Metadata setting that limits downloaded artwork resolution before it is embedded" + }, + "optionsEmbeddedCoverSizeDescription": "Downscale remotely downloaded cover art before embedding it. Images already within the limit are kept unchanged.", + "@optionsEmbeddedCoverSizeDescription": { + "description": "Description shown in the embedded cover size picker" + }, + "optionsEmbeddedCoverSizeOriginal": "Original resolution", + "@optionsEmbeddedCoverSizeOriginal": { + "description": "Option that preserves the provider artwork at its original resolution" + } +} \ No newline at end of file