{
  "app": {
    "name": "OpenKara"
  },
  "common": {
    "cancel": "Annuler",
    "close": "Fermer",
    "confirm": "Confirmer",
    "save": "Enregistrer",
    "saving": "Enregistrement...",
    "search": "Rechercher",
    "retry": "Réessayer",
    "tryAgain": "Réessayer",
    "loading": "Chargement…",
    "deleting": "Suppression...",
    "unknownTitle": "Titre inconnu",
    "unknownArtist": "Artiste inconnu"
  },
  "setup": {
    "welcome": "Configurez votre bibliothèque de karaoké",
    "description": "Choisissez l'emplacement où OpenKara conservera vos chansons et vos pistes de karaoké. Vous pourrez déplacer cette bibliothèque plus tard, y compris vers un disque externe.",
    "createNew": "Créer une bibliothèque",
    "createNewDescription": "Choisissez un emplacement. OpenKara y créera un nouveau dossier.",
    "openExisting": "Utiliser une bibliothèque existante",
    "openExistingDescription": "Choisissez un dossier de bibliothèque déjà configuré.",
    "settingUp": "Configuration de votre bibliothèque…",
    "dialogTitleCreate": "Choisissez un emplacement pour votre bibliothèque de karaoké",
    "dialogTitleOpen": "Ouvrir une bibliothèque de karaoké existante",
    "chooseLanguage": "Choisissez une langue",
    "openRemoteLibrary": "Choisissez un fournisseur distant",
    "openRemoteLibraryDescription": "Connectez Google Drive, Dropbox ou WebDAV à votre dépôt distant.",
    "useRemoteRepository": "Utiliser un dépôt distant",
    "remoteProvider": {
      "googleDrive": {
        "title": "Google Drive",
        "description": "Connectez-vous via Google OAuth et conservez une bibliothèque OpenKara dans Mon Drive."
      },
      "dropbox": {
        "title": "Dropbox",
        "description": "Connectez-vous via Dropbox OAuth et conservez une bibliothèque OpenKara dans votre Dropbox."
      },
      "webdav": {
        "title": "WebDAV",
        "description": "Connectez-vous dès maintenant à une bibliothèque OpenKara hébergée sur WebDAV."
      },
      "availableNow": "Disponible dans cette version",
      "plannedLater": "Prévu pour la prochaine phase de fournisseurs"
    },
    "chooseStemMode": "Choisissez le mode de séparation",
    "stemModeDescription": "Cela détermine la manière dont les chansons sont séparées pour le mode karaoké. Vous pourrez le modifier plus tard dans les réglages.",
    "twoStem": "2 pistes",
    "twoStemSubtitle": "Voix + accompagnement",
    "twoStemDetail": "Traitement plus rapide, moins d'espace disque",
    "fourStem": "4 pistes",
    "fourStemSubtitle": "Voix + batterie + basse + autres",
    "fourStemDetail": "Plus de contrôle sur chaque instrument, espace disque ~2×",
    "getStarted": "Commencer",
    "back": "Retour",
    "modelDownloadHint": "Le modèle et son runtime se téléchargent automatiquement la première fois que vous séparez une chanson."
  },
  "sidebar": {
    "library": "BIBLIOTHÈQUE",
    "allTracks": "Tous les morceaux",
    "separated": "Séparés",
    "localMusic": "MUSIQUE LOCALE",
    "sortMode": {
      "label": "Trier par",
      "recently_imported": "Importés récemment",
      "title_asc": "Titre A–Z",
      "artist_asc": "Artiste A–Z"
    },
    "alphabetRail": {
      "label": "Navigation alphabétique",
      "jumpTo": "Aller à {{letter}}",
      "other": "Autres caractères"
    },
    "separateAll": "Tout séparer",
    "separating": "Séparation {{current}}/{{total}}",
    "separationComplete": "Séparation terminée : {{done}} effectuée(s)",
    "skipped": "{{count}} ignorée(s)",
    "failed": "{{count}} échouée(s)",
    "twoStem": "2 pistes",
    "fourStem": "4 pistes",
    "upgradeAll": "Tout passer en 4 pistes",
    "confirmUpgrade": {
      "title": "Passer toutes les chansons en 4 pistes",
      "message": "Toutes les chansons seront à nouveau séparées en mode 4 pistes. L'espace disque utilisé par les pistes doublera approximativement.",
      "confirm": "Tout passer en 4 pistes"
    }
  },
  "toolbar": {
    "import": "Importer",
    "toggleSidebar": "Afficher/masquer la barre latérale",
    "settings": "Réglages"
  },
  "windowChrome": {
    "file": "Fichier",
    "edit": "Édition",
    "window": "Fenêtre",
    "help": "Aide",
    "import": "Importer",
    "settings": "Réglages",
    "about": "À propos d'OpenKara",
    "closeWindow": "Fermer la fenêtre",
    "minimize": "Réduire",
    "maximize": "Agrandir",
    "restore": "Restaurer",
    "close": "Fermer",
    "undo": "Annuler",
    "redo": "Rétablir",
    "cut": "Couper",
    "copy": "Copier",
    "paste": "Coller",
    "selectAll": "Tout sélectionner"
  },
  "library": {
    "noTracks": "Aucun morceau pour l'instant",
    "importMusic": "Importer de la musique",
    "separate": "Séparer",
    "instrumental": "Instrumental",
    "delete": "Supprimer",
    "deleteConfirm": "Supprimer",
    "deleteSelected": "Supprimer la sélection ({{count}})",
    "confirmDeleteTitle_one": "Supprimer {{count}} morceau",
    "confirmDeleteTitle_many": "Supprimer {{count}} morceaux",
    "confirmDeleteTitle_other": "Supprimer {{count}} morceaux",
    "confirmDeleteMessage": "Les chansons sélectionnées seront retirées de la bibliothèque et leurs fichiers gérés seront supprimés.",
    "playNow": "Lire maintenant",
    "playNext": "Lire ensuite",
    "addToQueue": "Ajouter à la file",
    "extractEmbeddedCoverArt": "Extraire la pochette intégrée",
    "extractEmbeddedCoverArtSelected": "Extraire la pochette intégrée ({{count}})",
    "extractEmbeddedLyrics": "Extraire les paroles intégrées",
    "fetchLyricsOnline": "Récupérer les paroles en ligne",
    "language": "Langue des paroles",
    "languageAuto": "Détection automatique",
    "language_mandarin": "Mandarin",
    "language_cantonese": "Cantonais",
    "language_japanese": "Japonais",
    "language_korean": "Coréen",
    "language_cyrillic": "Cyrillique",
    "language_thai": "Thaï",
    "language_devanagari": "Dévanagari",
    "language_gujarati": "Gujarati",
    "language_gurmukhi": "Gurmukhi",
    "language_telugu": "Télougou",
    "language_kannada": "Kannada",
    "language_odia": "Odia",
    "language_tamil": "Tamoul",
    "editInfo": "Modifier les infos",
    "properties": "Propriétés",
    "queueAllSelected": "Ajouter la sélection à la file ({{count}})",
    "markInstrumentalSelected": "Marquer comme instrumental ({{count}})",
    "separateAllSelected": "Séparer la sélection ({{count}})",
    "importCdgChoice": {
      "title": "Choisir un fichier audio CD+G",
      "message": "{{cdgName}} correspond à plusieurs fichiers audio sélectionnés. Choisissez le morceau qui doit utiliser ce fichier graphique.",
      "skip": "Ignorer l'association CD+G"
    },
    "importPrompt": {
      "confirmTitle": "Confirmer l'importation",
      "confirmMessage": "Importer {{songCount}} chansons ?",
      "confirmOk": "Importer"
    },
    "modelPreparing": "Préparation du modèle de séparation…",
    "cancelSeparation": "Annuler la séparation",
    "usingCachedSeparation": "Utilisation de la séparation en cache"
  },
  "player": {
    "previous": "Précédent",
    "play": "Lecture",
    "loading": "Chargement",
    "pause": "Pause",
    "next": "Suivant",
    "mute": "Couper le son",
    "unmute": "Rétablir le son",
    "volume": "Volume",
    "seek": "Position de lecture",
    "selectMonitor": "Sélectionner l'écran",
    "monitor": "Écran {{index}}",
    "localDisplayOutput": "Sortie sur écran local",
    "airPlayOutput": "Sortie AirPlay",
    "noDisplaysFound": "Aucun écran détecté pour l'instant.",
    "reconnecting": "Reconnexion… ({{attempt}}/{{max}})",
    "resync": "Resynchronisé −{{delta}} ms",
    "reconnectFailed": "Échec de la reconnexion"
  },
  "progress": {
    "separating": "Séparation : {{title}}",
    "uploadingToRemote": "Publication sur le dépôt distant : {{title}}",
    "modelDownloadComplete": "Téléchargement du modèle terminé"
  },
  "notifications": {
    "separationComplete": "Séparation terminée",
    "separationFailed": "Échec de la séparation",
    "batchSeparationComplete": "Séparation par lot terminée",
    "batchSeparationSummary": "{{done}} terminées, {{failed}} en échec"
  },
  "queue": {
    "title": "File d'attente",
    "upNext": "À suivre",
    "clearAll": "Tout effacer",
    "empty": "La file d'attente est vide",
    "reorder": "Réorganiser {{title}}",
    "remove": "Retirer {{title}} de la file",
    "moveUp": "Monter",
    "moveDown": "Descendre",
    "dragInstructions": "Pour réorganiser la file, placez le focus sur un bouton de réorganisation, appuyez sur Espace ou Entrée pour saisir la chanson, utilisez les touches fléchées pour la déplacer, puis appuyez de nouveau sur Espace ou Entrée pour la déposer.",
    "dragStart": "Saisie de {{title}}.",
    "dragOverBefore": "{{title}} sera placée avant {{overTitle}}.",
    "dragOverAfter": "{{title}} sera placée après {{overTitle}}.",
    "dragEndBefore": "{{title}} déposée avant {{overTitle}}.",
    "dragEndAfter": "{{title}} déposée après {{overTitle}}.",
    "dragCancel": "Réorganisation de la file annulée."
  },
  "stems": {
    "vocals": "Voix",
    "accompaniment": "Accompagnement",
    "drums": "Batterie",
    "bass": "Basse",
    "other": "Autres",
    "mute": "Couper {{stem}}",
    "unmute": "Rétablir {{stem}}",
    "collapseStems": "Réduire les pistes",
    "expandStems": "Développer les pistes"
  },
  "lyrics": {
    "noLyrics": "Aucune parole disponible pour ce morceau",
    "addLyrics": "Ajouter des paroles",
    "editLyrics": "Modifier les paroles",
    "pastePlaceholder": "Collez ou saisissez les paroles ici...",
    "detectedTtml": "Format TTML détecté",
    "detectedLys": "Format Lyricify Syllable détecté",
    "detectedLrc": "Détecté : format LRC",
    "detectedPlain": "Détecté : texte brut",
    "supportsFormats": "Prend en charge les formats LRC, TTML et Lyricify Syllable",
    "selectSong": "Sélectionnez une chanson pour commencer",
    "loadingLyrics": "Chargement des paroles...",
    "editTooltip": "Modifier les paroles",
    "romanizeTooltip": "Paroles romanisées",
    "previousPage": "Page précédente",
    "nextPage": "Page suivante",
    "fontSizeDecrease": "Réduire la taille des paroles",
    "fontSizeIncrease": "Augmenter la taille des paroles",
    "fontSizeReset": "Réinitialiser la taille des paroles",
    "fontSizeResetShort": "Réinitialiser",
    "followPlaying": "Suivre la parole en cours",
    "matchedToast": "Paroles associées à « {{song}} »",
    "unmatchedToast": "Impossible d'associer le fichier de paroles à une chanson : {{file}}",
    "offsetDecrease": "Décaler les paroles de 0,5 seconde vers l'arrière",
    "offsetIncrease": "Décaler les paroles de 0,5 seconde vers l'avant",
    "offsetReset": "Réinitialiser le décalage des paroles",
    "offsetResetShort": "Réinitialiser"
  },
  "songEdit": {
    "title": "Modifier les infos de la chanson",
    "titleLabel": "Titre",
    "titlePlaceholder": "Titre de la chanson",
    "artistLabel": "Artiste",
    "artistPlaceholder": "Nom de l'artiste"
  },
  "songProperties": {
    "title": "Propriétés de la chanson",
    "format": "Format",
    "duration": "Durée",
    "sampleRate": "Fréquence d'échantillonnage",
    "channels": "Canaux",
    "channelsMono": "Mono (1)",
    "channelsStereo": "Stéréo (2)",
    "channelsOther": "{{count}} canaux",
    "bitRate": "Débit binaire",
    "fileSize": "Taille du fichier",
    "sha256": "SHA-256",
    "graphics": "Graphiques",
    "instrumental": "Instrumental",
    "mediaGPaired": "Fichiers CD+G associés",
    "mediaGZip": "ZIP MP3+G",
    "notApplicable": "Non applicable",
    "separation": "Séparation",
    "notSeparated": "Non séparée",
    "separating": "Séparation…",
    "separationFailed": "Échec",
    "twoStem": "2 pistes",
    "fourStem": "4 pistes",
    "upgradeToFourStem": "Passer en 4 pistes",
    "downgradeToTwoStem": "Rétrograder en 2 pistes",
    "reSeparate": "Séparer à nouveau",
    "reSeparateAs": "Séparer à nouveau en :",
    "confirm": "Confirmer",
    "failedToLoad": "Échec du chargement des propriétés"
  },
  "settings": {
    "title": "Préférences",
    "library": {
      "label": "Bibliothèque de karaoké",
      "noLibrary": "Aucune bibliothèque configurée",
      "newLibrary": "Nouvelle bibliothèque",
      "openLibrary": "Ouvrir une bibliothèque",
      "addRemoteLibrary": "Ajouter un dépôt distant",
      "addRemoteLibraryDescription": "Ouvrez un dépôt distant existant, ou créez-en un et mettez en miroir la bibliothèque locale active.",
      "openRemoteLibrary": "Ouvrir un dépôt distant",
      "openRemoteLibraryDescription": "Enregistrez une copie de travail distante et basculez dessus.",
      "createAndMirrorActiveLocal": "Créer et mettre en miroir la bibliothèque locale active",
      "mirrorActiveLocalDescriptionWithName": "Mettre {{displayName}} en miroir dans un nouveau dépôt distant.",
      "mirrorActiveLocalDescriptionNoLocal": "Basculez d'abord vers la bibliothèque locale que vous souhaitez mettre en miroir.",
      "displayName": "Nom affiché",
      "remoteLibraryDisplayName": "OpenKara",
      "renameLibrary": "Renommer la bibliothèque",
      "renameLocalLibrary": "Renommer la bibliothèque locale",
      "renameRemoteRepository": "Renommer le dépôt distant",
      "removeLibrary": "Déconnecter le dépôt",
      "deleteLibrary": "Supprimer le dépôt",
      "typeToConfirmDelete": "Saisissez « {{displayName}} » pour confirmer la suppression définitive.",
      "refreshRemoteRepository": "Actualiser le dépôt distant",
      "reauthorizeRemoteRepository": "Réautoriser le dépôt distant",
      "reauthorizeRemoteRepositoryDescription": "Renouvelez l'accès à ce dépôt distant. Si le dépôt a été déplacé, OpenKara vous demandera confirmation avant de remplacer l'emplacement enregistré.",
      "confirmRemoteRepositoryRelocation": "L'emplacement du dépôt distant sélectionné a changé. Remplacer l'emplacement enregistré dans OpenKara par {{nextLocation}} ? Le contenu de l'ancien dépôt distant ne sera pas supprimé.",
      "googleDriveBundledDescription": "OpenKara utilise son enregistrement d'application Google Drive intégré et créera ou réutilisera un dossier portant ce nom affiché dans Mon Drive.",
      "dropboxBundledDescription": "OpenKara utilise son enregistrement d'application Dropbox intégré et créera ou réutilisera un dossier portant ce nom affiché dans Dropbox.",
      "webdavServerUrl": "URL du serveur",
      "webdavLibraryPath": "Chemin de la bibliothèque",
      "webdavLibraryPathDescription": "Indiquez le chemin d'un dépôt distant existant, ou saisissez un nouveau nom de dossier et OpenKara l'initialisera lors de la création d'un dépôt.",
      "webdavUsername": "Nom d'utilisateur",
      "webdavPassword": "Mot de passe",
      "webdavEnterServerUrl": "Saisissez d'abord l'URL du serveur WebDAV.",
      "webdavEnterUsername": "Saisissez d'abord le nom d'utilisateur WebDAV.",
      "webdavEnterPassword": "Saisissez d'abord le mot de passe WebDAV.",
      "connecting": "Connexion…",
      "waitingForGoogle": "En attente de Google…",
      "waitingForDropbox": "En attente de Dropbox…",
      "connectGoogleDrive": "Connecter Google Drive",
      "connectDropbox": "Connecter Dropbox",
      "connectWebdavLibrary": "Connecter la bibliothèque WebDAV",
      "openGoogleBrowserSignInAgain": "Rouvrir la connexion Google dans votre navigateur",
      "openDropboxBrowserSignInAgain": "Rouvrir la connexion Dropbox dans votre navigateur",
      "openBrowserSignInAgain": "Rouvrir la connexion dans le navigateur",
      "googleSignInOpened": "La connexion Google s'est ouverte dans votre navigateur. Terminez le processus d'autorisation et OpenKara continuera automatiquement.",
      "dropboxSignInOpened": "La connexion Dropbox s'est ouverte dans votre navigateur. Terminez le processus d'autorisation et OpenKara continuera automatiquement.",
      "googleSignInTimedOut": "La connexion Google a expiré avant qu'OpenKara ne reçoive la réponse.",
      "dropboxSignInTimedOut": "La connexion Dropbox a expiré avant qu'OpenKara ne reçoive la réponse.",
      "remoteSignInTimedOut": "La connexion distante a expiré.",
      "remoteSignInFailedUnexpectedly": "La connexion distante a échoué de manière inattendue.",
      "remoteLibraryMissingId": "Le nouveau dépôt distant a été enregistré sans identifiant.",
      "remoteLibraryConnected": "Dépôt distant connecté.",
      "remoteLibraryCreatedAndMirroring": "Dépôt distant créé ; {{displayName}} est désormais mis en miroir.",
      "createRemoteLibraryAndStartMirror": "Créer le dépôt distant et démarrer la mise en miroir",
      "existingRemoteLibraries": "Dépôts distants existants",
      "connectRemoteGoogleDrive": "Se connecter à Google Drive",
      "connectRemoteDropbox": "Se connecter à Dropbox",
      "connectRemoteWebdav": "Se connecter"
    },
    "stemMode": {
      "label": "Mode de séparation des pistes",
      "description": "Détermine la manière dont les nouvelles chansons sont séparées. Le mode 4 pistes est utilisé par défaut : le modèle produit nativement quatre pistes pour le même temps de traitement. Les séparations existantes ne sont pas affectées, et les chansons pourront être compressées en deux pistes plus tard pour économiser de l'espace.",
      "twoStem": "2 pistes",
      "twoStemDescription": "Voix + accompagnement",
      "fourStem": "4 pistes",
      "fourStemDescription": "Voix + batterie + basse + autres"
    },
    "modelVariant": {
      "label": "Modèle d'IA",
      "description": "Choisissez entre un traitement plus rapide ou une séparation de meilleure qualité.",
      "htdemucs": "Standard",
      "htdemucsDescription": "Équilibre par défaut entre vitesse et qualité",
      "htdemucsFt": "Affiné (expérimental)",
      "htdemucsFtDescription": "Peut produire des artefacts dans les pistes d'accompagnement",
      "ftWarningTitle": "Modèle expérimental",
      "ftWarningMessage": "Le modèle affiné peut produire du bruit ou des artefacts audibles dans les pistes d'accompagnement de certaines chansons. La qualité de la séparation des voix peut être légèrement meilleure. À utiliser à vos risques et périls.",
      "ftWarningConfirm": "Utiliser le modèle affiné",
      "downloading": "Téléchargement...",
      "downloaded": "Téléchargé",
      "legacyOnDisk": "Ancienne version sur le disque — supprimez-la dans la Zone de danger, puis téléchargez à nouveau",
      "notDownloaded": "Non téléchargé",
      "runtimeRequired": "ONNX Runtime requis",
      "delete": "Supprimer",
      "download": "Télécharger"
    },
    "runtime": {
      "label": "ONNX Runtime",
      "description": "La bibliothèque runtime qui pilote la séparation des pistes par IA.",
      "installRequired": "La bibliothèque ONNX Runtime est requise pour la séparation des pistes par IA. Installez-la pour activer les téléchargements de modèles.",
      "installButton": "Installer ONNX Runtime",
      "downloading": "Téléchargement d'ONNX Runtime...",
      "corrupt": "L'ONNX Runtime installé est corrompu. Réinstallez-le pour activer les téléchargements de modèles.",
      "downloadFailed": "Le téléchargement d'ONNX Runtime a échoué. Vérifiez votre connexion et réessayez.",
      "retryButton": "Réinstaller ONNX Runtime",
      "statusReady": "Installé et prêt.",
      "statusMissing": "Non installé.",
      "version": "Version {{version}}",
      "checkButton": "Rechercher des mises à jour",
      "checking": "Recherche de mises à jour...",
      "upToDate": "Le runtime est à jour.",
      "checkFailed": "Échec de la recherche de mises à jour.",
      "updateAvailable": "Mise à jour du runtime disponible ({{version}})",
      "updateButton": "Mettre à jour",
      "downloadingCandidate": "Téléchargement de la mise à jour du runtime...",
      "candidateReadyRestartRequired": "La mise à jour du runtime {{version}} est prête. Redémarrez pour l'appliquer.",
      "restartButton": "Redémarrer pour appliquer",
      "activationFailedPreviousRestored": "La mise à jour du runtime préparée n'a pas pu s'activer ; le runtime précédent a été restauré.",
      "updatePolicy": {
        "label": "Mises à jour du runtime",
        "description": "Choisissez comment les mises à jour du runtime sont gérées. L'application d'une mise à jour nécessite toujours un redémarrage.",
        "manual": "Manuel",
        "manualDescription": "Ne rechercher les mises à jour que sur demande.",
        "notify": "Notifier",
        "notifyDescription": "Vérifie au démarrage et vous prévient lorsqu'une mise à jour est disponible.",
        "autoDownload": "Téléchargement automatique",
        "autoDownloadDescription": "Télécharge les mises à jour automatiquement ; les applique au prochain redémarrage."
      },
      "banner": {
        "updateReady": "Une mise à jour du runtime est prête — redémarrez pour l'appliquer.",
        "activationFailed": "La mise à jour du runtime n'a pas pu s'activer ; le runtime précédent a été restauré.",
        "runtimeRequired": "ONNX Runtime requis pour la séparation des pistes par IA.",
        "runtimeRequiredHint": "Il se télécharge automatiquement la première fois que vous séparez une chanson.",
        "downloadingRuntime": "Téléchargement d'ONNX Runtime...",
        "downloadFailed": "Échec du téléchargement d'ONNX Runtime : {{error}}",
        "downloadFailedHint": "Vérifiez votre connexion, puis relancez le téléchargement.",
        "retryDownload": "Réessayer"
      }
    },
    "hideBatchSeparate": {
      "hide": "Masquer « Tout séparer »",
      "description": "Masque le bouton de la barre latérale qui sépare toutes les chansons."
    },
    "coverArtBackdrop": {
      "hide": "Désactiver l'arrière-plan flouté de la pochette",
      "description": "Supprime la pochette floutée derrière les paroles."
    },
    "appearance": {
      "label": "Apparence",
      "description": "Choisissez le thème de couleurs de l'application. La scène destinée au public reste sombre.",
      "system": "Système",
      "light": "Clair",
      "dark": "Sombre"
    },
    "outputDevice": {
      "label": "Périphérique de sortie",
      "systemDefault": "Valeur par défaut du système"
    },
    "eq": {
      "label": "Égaliseur",
      "description": "Égaliseur à 5 bandes avec préampli automatique et limiteur progressif.",
      "enable": "Activer l'égaliseur",
      "reset": "Réinitialiser toutes les bandes à 0 dB",
      "band60": "60 Hz",
      "band230": "230 Hz",
      "band910": "910 Hz",
      "band3600": "3,6 kHz",
      "band14000": "14 kHz",
      "bandNameBass": "Graves",
      "bandNameLowMid": "Bas-médiums",
      "bandNameMid": "Médiums",
      "bandNameHighMid": "Haut-médiums",
      "bandNameTreble": "Aigus",
      "presetLabel": "Préréglage",
      "presetCustom": "Personnalisé",
      "presetFlat": "Plat",
      "presetVocalBoost": "Boost voix",
      "presetBassBoost": "Boost graves",
      "presetTrebleBoost": "Boost aigus",
      "presetWarm": "Chaud",
      "presetBright": "Brillant",
      "presetRock": "Rock",
      "presetPop": "Pop"
    },
    "crossfade": {
      "label": "Fondu enchaîné",
      "description": "Superpose la fin d'un morceau au début du suivant à l'aide d'une courbe à puissance constante.",
      "enable": "Activer le fondu enchaîné",
      "duration": "Durée"
    },
    "language": {
      "label": "Langue"
    },
    "dangerZone": {
      "label": "Zone de danger",
      "deleteStems": "Supprimer toutes les pistes séparées",
      "deleteStemsDescription": "Supprime tous les fichiers de pistes en cache pour libérer de l'espace disque",
      "deleteStemsButton": "Supprimer les pistes",
      "deleteLyrics": "Supprimer toutes les paroles en cache",
      "deleteLyricsDescription": "Supprime toutes les paroles récupérées et mises en cache. Les paroles seront à nouveau récupérées lors de la lecture des chansons.",
      "deleteLyricsButton": "Supprimer les paroles",
      "downgradeStems": "Tout rétrograder en 2 pistes",
      "downgradeStemsDescription": "Supprime les pistes de batterie, de basse et autres de toutes les chansons en 4 pistes. Les voix et l'accompagnement sont conservés.",
      "downgradeStemsButton": "Tout rétrograder",
      "deleteModelStandard": "Supprimer le modèle standard",
      "deleteModelHQ": "Supprimer le modèle haute qualité",
      "deleteModelDescription": "Supprime le fichier de modèle téléchargé pour libérer de l'espace disque. Il devra être à nouveau téléchargé si vous sélectionnez ce modèle.",
      "deleteModelButton": "Supprimer le modèle",
      "deleteActiveModelBlockedTitle": "Changez de modèle avant de supprimer ce fichier",
      "deleteLegacyActiveModelTitle": "Supprimez le fichier obsolète pour autoriser le téléchargement de la mise à niveau",
      "confirmDeleteModel": "Voulez-vous vraiment supprimer ce modèle ? Vous devrez le télécharger à nouveau pour l'utiliser.",
      "deleteRuntime": "Supprimer ONNX Runtime",
      "deleteRuntimeDescription": "Supprime la bibliothèque ONNX Runtime pour libérer de l'espace disque. Elle sera à nouveau téléchargée au démarrage d'une séparation.",
      "deleteRuntimeButton": "Supprimer le runtime"
    },
    "confirmDeleteStems": {
      "title": "Supprimer toutes les pistes séparées",
      "message": "Cette action supprimera définitivement tous les fichiers de pistes en cache. Les chansons devront être à nouveau séparées pour utiliser le mode karaoké.",
      "detail": "Cela libérera environ {{size}}.",
      "confirm": "Supprimer toutes les pistes"
    },
    "confirmDowngradeStems": {
      "title": "Rétrograder toutes les chansons en 2 pistes",
      "message": "Cette action supprimera les pistes individuelles de batterie, de basse et autres de toutes les chansons en 4 pistes. Une piste d'accompagnement sera créée en les mixant. Cette action est irréversible.",
      "detail": "Cela libérera environ {{size}}.",
      "confirm": "Tout rétrograder en 2 pistes"
    },
    "confirmDeleteLyrics": {
      "title": "Supprimer toutes les paroles en cache",
      "message": "Cette action supprimera définitivement toutes les paroles en cache. Les paroles seront automatiquement récupérées à nouveau lors de la lecture des chansons.",
      "confirm": "Supprimer toutes les paroles"
    },
    "confirmDeleteRuntime": {
      "title": "Supprimer ONNX Runtime",
      "message": "Cette action supprimera la bibliothèque ONNX Runtime. Elle sera automatiquement téléchargée à nouveau au prochain démarrage d'une séparation.",
      "confirm": "Supprimer le runtime"
    },
    "executionProvider": {
      "label": "Accélération matérielle",
      "description": "Choisissez comment OpenKara exécute la séparation des pistes par IA sur cet appareil.",
      "cpu": "CPU",
      "cpuDescription": "Logiciel uniquement — fonctionne sur tous les appareils, le plus lent",
      "xnnpack": "XNNPACK",
      "xnnpackDescription": "CPU accéléré par SIMD — plus rapide sur Apple Silicon et x86 moderne",
      "directml": "DirectML",
      "directmlDescription": "Accélération GPU DirectX 12 pour Windows",
      "note": "Les modifications prennent effet lors de la prochaine séparation."
    },
    "integrity": {
      "checkButton": "Vérifier l'intégrité de la bibliothèque",
      "reportTitle": "Rapport d'intégrité de la bibliothèque",
      "checkedLocal": "{{count}} chansons locales vérifiées",
      "skippedRemote": "{{count}} chansons distantes ignorées",
      "allClean": "Aucun problème détecté",
      "missingPrimary": "Média principal manquant",
      "emptyPrimary": "Média principal vide",
      "missingOptional": "Ressources optionnelles manquantes",
      "emptyOptional": "Ressources optionnelles vides",
      "orphanedFiles": "Fichiers gérés orphelins",
      "noIssues": "Aucun problème",
      "emptyPath": "(aucun chemin)",
      "removeSelected": "Supprimer les entrées sélectionnées",
      "confirmCleanupTitle": "Supprimer des entrées de la bibliothèque",
      "confirmCleanupMessage": "{{count}} entrées de la base de données seront supprimées. Les fichiers orphelins ne seront pas touchés.",
      "confirmCleanupButton": "Supprimer les entrées",
      "skippedNotice": "{{count}} entrées ont été ignorées car leur état a changé. Relancez la vérification.",
      "assetTypePrimaryMedia": "Média principal",
      "assetTypeCdg": "CDG",
      "assetTypeStemVocals": "Piste : voix",
      "assetTypeStemAccomp": "Piste : accompagnement",
      "assetTypeStemDrums": "Piste : batterie",
      "assetTypeStemBass": "Piste : basse",
      "assetTypeStemOther": "Piste : autres",
      "assetTypeArtworkThumb": "Pochette : miniature",
      "assetTypeArtworkPreview": "Pochette : aperçu"
    },
    "remoteCache": {
      "label": "Cache de streaming distant",
      "description": "Les téléchargements par plages d'octets des fichiers média distants sont mis en cache pour reprendre la lecture.",
      "used": "Utilisé",
      "entries": "Entrées",
      "pinned": "épinglées",
      "clearButton": "Vider le cache",
      "evicted": "{{count}} entrées supprimées du cache."
    },
    "remoteDiagnostics": {
      "label": "Diagnostics distants",
      "description": "État du dépôt, génération et résultats des opérations récentes.",
      "state": "État du dépôt",
      "generation": "Génération validée",
      "repositoryId": "ID du dépôt",
      "lastError": "Dernière erreur",
      "recentOps": "Opérations récentes",
      "refresh": "Actualiser",
      "conflictTitle": "Votre bibliothèque a changé côté distant avant la publication de ces modifications.",
      "conflictBody": "Conserver vos modifications les republie par-dessus la version distante. Cela est refusé quand les deux côtés ont modifié les mêmes morceaux, car choisir automatiquement pourrait faire perdre du travail.",
      "conflictKeepLocal": "Conserver mes modifications",
      "conflictUseRemote": "Utiliser la version distante"
    },
    "modelUpdate": {
      "checkButton": "Rechercher des mises à jour",
      "checking": "Recherche de mises à jour...",
      "upToDate": "Tous les modèles sont à jour.",
      "checkFailed": "Échec de la recherche de mises à jour.",
      "updateAvailable": "Mise à jour de {{variant}} disponible ({{version}})",
      "updateButton": "Mettre à jour"
    },
    "about": {
      "label": "À propos",
      "description": "Détails de version et de diagnostic à inclure dans les rapports de bogue.",
      "version": "Version",
      "build": "build",
      "system": "Système",
      "catalog": "Catalogue",
      "model": "Modèle",
      "modelPath": "Fichier du modèle",
      "runtime": "Runtime",
      "executionProvider": "Fournisseur d'exécution",
      "logFile": "Fichier journal",
      "reportHint": "Vous signalez un bogue ? Copiez ces informations dans votre rapport et joignez le fichier journal indiqué ci-dessus.",
      "copyDebugInfo": "Copier les infos de débogage",
      "copied": "Copié !"
    },
    "hideUpgradeAll": {
      "hide": "Masquer « Tout mettre à niveau en 4-pistes »",
      "description": "Masque le bouton de la barre latérale qui re-sépare toutes les chansons en mode 4-pistes."
    }
  },
  "bootstrap": {
    "modelRequired": "Modèle de séparation par IA requis pour le mode karaoké.",
    "downloadingBackground": "Téléchargement en arrière-plan...",
    "downloadingModel": "Téléchargement du modèle d'IA...",
    "downloadingRuntime": "Téléchargement du runtime...",
    "outdatedModel": "Le fichier de modèle installé provient d'une version antérieure et ne peut pas être utilisé.",
    "outdatedModelHint": "Ouvrez Réglages → Zone de danger, supprimez le fichier de modèle, puis téléchargez à nouveau pour effectuer la mise à niveau.",
    "openSettingsToUpgrade": "Ouvrir les réglages",
    "downloadFailed": "Échec du téléchargement du modèle : {{error}}",
    "unknownError": "Erreur inconnue",
    "downloadFailedHint": "Vérifiez votre connexion, puis relancez le téléchargement.",
    "retryDownload": "Réessayer"
  },
  "playlist": {
    "create": "Nouvelle playlist",
    "name": "Nom de la playlist",
    "rename": "Renommer",
    "delete": "Supprimer la playlist",
    "empty": "Cette playlist est vide. Ajoutez des chansons depuis votre bibliothèque.",
    "addTo": "Ajouter à une playlist…",
    "addedToast": "{{count}} chanson(s) ajoutée(s) à la playlist.",
    "createdAndAddedToast": "Playlist créée et {{count}} chanson(s) ajoutée(s).",
    "removedFromPlaylistToast": "{{count}} chanson(s) retirée(s) de la playlist.",
    "section": "PLAYLISTS",
    "newPlaylist": "[+] Nouvelle playlist…",
    "removeFromPlaylist": "Retirer de la playlist"
  },
  "rotation": {
    "assignSinger": "Attribuer un chanteur",
    "shuffle": "Mélanger",
    "singer": "Chanteur",
    "singerName": "Nom du chanteur",
    "removeSinger": "Retirer le chanteur",
    "confirmRemoveSinger": "Retirer le chanteur",
    "confirmRemoveSingerMessage": "Ce chanteur est attribué à des chansons de la file. Le retirer supprimera également ces chansons de la file."
  },
  "errors": {
    "database_unavailable": "Erreur de base de données",
    "media_read_failed": "Échec de l'importation",
    "song_not_found": "Chanson introuvable",
    "model_unavailable": "Modèle indisponible",
    "audio_decode_failed": "Erreur de décodage audio",
    "audio_output_unavailable": "Erreur de sortie audio",
    "karaoke_not_ready": "Karaoké non prêt",
    "lyrics_not_ready": "Paroles indisponibles",
    "network_unavailable": "Erreur réseau",
    "invalid_playback_state": "Erreur de lecture",
    "separation_failed": "Échec de la séparation",
    "internal": "Erreur interne",
    "somethingWentWrong": "Une erreur s'est produite"
  },
  "updater": {
    "available": "La version {{version}} est disponible",
    "update": "Mettre à jour",
    "downloading": "Téléchargement de la mise à jour… {{percent}} %",
    "installing": "Finalisation de la mise à jour…",
    "restartToApply": "Mise à jour prête — redémarrez pour l'appliquer",
    "restart": "Redémarrer",
    "failed": "Échec de la mise à jour — téléchargez la dernière version manuellement"
  }
}
