import type { TranslationMessages } from '../types';
import { enUsMessages } from './en_us';

export const frFrMessages: TranslationMessages = {
  ...enUsMessages,
  'app.loading': 'Chargement...',
  'assistant.displayName': 'Assistant musical K.G.Studio',
  'assistant.welcomeFallback': 'Bienvenue dans l’assistant musical K.G.Studio.',
  'mainContent.createTrack': 'Créer une piste',
  'mainContent.showGlobalTracks': 'Afficher les pistes globales',
  'status.chordGuideCandidate': 'Suggestion du guide d’accords : {name} - {notes} - {note}',
  'settings.sidebar.title': 'Réglages',
  'settings.sidebar.close': 'Fermer les réglages',
  'settings.sidebar.general': 'Général',
  'settings.sidebar.audioIo': 'Entrées/Sorties audio',
  'settings.sidebar.behavior': 'Comportement',
  'settings.sidebar.templates': 'Modèles',
  'settings.sidebar.chordGuide': 'Guide d’accords',
  'settings.general.title': 'Général',
  'settings.general.language.label': 'Langue',
  'settings.general.language.help': 'Le mode Auto utilise la langue du système.',
  'settings.general.language.auto': 'Auto',
  'settings.yes': 'Oui',
  'settings.no': 'Non',
  'settings.restoreDefault': 'Rétablir la valeur par défaut',
  'settings.deleteCachedModel': 'Supprimer le modèle en cache',
  'settings.deleting': 'Suppression...',
  'settings.general.llmProvider.section': 'Fournisseur LLM',
  'settings.general.llmProvider.label': 'Fournisseur LLM',
  'settings.general.llmProvider.local': 'LLM local (navigateur)',
  'settings.general.llmProvider.claudeOpenRouter': 'Claude (via OpenRouter)',
  'settings.general.llmProvider.openaiCompatible': 'Serveur compatible OpenAI (ex. OpenRouter, Ollama)',
  'settings.general.persistKeys.label': 'Conserver les clés API hors localhost',
  'settings.general.persistKeys.help': 'Si cette option est activée, les clés API sont enregistrées dans le stockage du navigateur même hors localhost. Attention : cela peut augmenter le risque lié aux attaques XSS.',
  'settings.general.localRuntime.cachedStatus': 'État du modèle en cache',
  'settings.general.localRuntime.cacheChecking': 'Vérification du cache du modèle local...',
  'settings.general.localRuntime.cacheDownloaded': 'Téléchargé dans le cache du navigateur.',
  'settings.general.localRuntime.cacheMissing': 'Pas encore téléchargé.',
  'settings.general.localRuntime.contextLength': 'Longueur de contexte',
  'settings.general.localRuntime.contextHelp': 'Des contextes plus longs demandent davantage de VRAM et peuvent aussi réduire les performances lorsque la conversation devient longue.',
  'settings.general.localRuntime.downloadUrl': 'URL de téléchargement',
  'settings.general.localRuntime.downloadHelp': 'Modifier cette URL peut empêcher le téléchargement ou pointer vers un fichier modèle incompatible.',
  'settings.general.localRuntime.autoDownload': 'Le modèle local sera téléchargé automatiquement lors de votre prochain chat avec `LLM local (navigateur)`.',
  'settings.general.uvr5.section': 'Runtime Web UVR5',
  'settings.general.uvr5.downloadUrl': 'URL de téléchargement UVR-MDX-NET-Inst_HQ_3',
  'settings.general.htdemucs.downloadUrl': 'URL de téléchargement htdemucs_4s',
  'settings.general.modelUrl.help': 'Modifier cette URL peut empêcher le téléchargement ou pointer vers un fichier modèle incompatible.',
  'settings.general.openai.key': 'Clé',
  'settings.general.openai.keyPlaceholder': 'Saisissez votre clé API OpenAI',
  'settings.general.openai.model': 'Modèle',
  'settings.general.openai.flexMode': 'Mode Flex',
  'settings.general.openai.flexHelp': 'Le mode Flex utilise le palier de service flexible d’OpenAI. Avantages : économies possibles et meilleur débit pendant les périodes chargées. Inconvénients : latence variable, mise en file d’attente ou baisse de priorité possibles. S’applique uniquement au fournisseur OpenAI ; sans effet pour les serveurs compatibles OpenAI.',
  'settings.general.keys.persisted': 'Les clés sont conservées localement (IndexedDB du navigateur).',
  'settings.general.keys.sessionOnly': 'Par sécurité, les clés ne sont pas conservées sur les hôtes non locaux et restent uniquement en mémoire pour cette session.',
  'settings.general.claudeOpenRouter.section': 'Anthropic Claude (via OpenRouter)',
  'settings.general.claudeOpenRouter.keyPlaceholder': 'Saisissez votre clé API Claude',
  'settings.general.baseUrl': 'URL de base',
  'settings.general.claudeOpenRouter.baseUrlHelp': 'Il s’agit de l’URL de base de l’API OpenRouter. Ne la modifiez pas sauf si vous savez précisément ce que vous faites.',
  'settings.general.openaiCompatible.section': 'Serveur compatible OpenAI',
  'settings.general.openaiCompatible.keyPlaceholder': 'Saisissez votre clé API',
  'settings.general.openaiCompatible.baseUrlPlaceholder': 'ex. https://openrouter.ai/api/v1',
  'settings.general.openaiCompatible.baseUrlHelp': 'Préréglages rapides :',
  'settings.general.openaiCompatible.modelPlaceholder': 'ex. qwen3:30b',
  'settings.general.soundfont.section': 'Réglages des soundfonts',
  'settings.general.soundfont.managed': 'La configuration des soundfonts est gérée par le serveur (kgone-server.json). Ces réglages sont en lecture seule.',
  'settings.general.soundfont.baseUrl': 'URL de base',
  'settings.general.soundfont.baseUrlHelp': 'Une source de soundfont incompatible peut provoquer des timbres incorrects ou empêcher certains instruments de jouer.',
  'settings.general.kgone.section': 'Réglages K.G.One',
  'settings.general.kgone.managed': 'La configuration K.G.One est gérée par le serveur (kgone-server.json). Ces réglages sont en lecture seule.',
  'settings.general.kgone.enabled': 'Activer l’intégration K.G.One',
  'settings.general.kgone.disabled': 'Désactivé',
  'settings.general.kgone.enabledOption': 'Activé',
  'settings.general.kgone.serverBaseUrl': 'URL de base du serveur',
  'settings.general.kgone.serverBaseUrlHelp': 'URL de base d’un serveur K.G.One Music Studio en cours d’exécution. Utilisée pour la génération de morceau complet, de clip et la séparation de stems.',
  'settings.audioIo.title': 'Entrées/Sorties audio',
  'settings.audioIo.deviceRouting': 'Routage des appareils',
  'settings.audioIo.refresh': 'Rafraîchir la liste des appareils',
  'settings.audioIo.refreshing': 'Rafraîchissement…',
  'settings.audioIo.description': 'Choisissez les appareils que KGStudio doit utiliser pour l’enregistrement et la lecture. Les changements d’entrée s’appliquent à la prochaine session d’enregistrement. Les changements de sortie demandent un rechargement de la page.',
  'settings.audioIo.inputDevice': 'Appareil d’entrée audio',
  'settings.audioIo.outputDevice': 'Appareil de sortie audio',
  'settings.audioIo.inputHelp': 'Les changements s’appliquent au prochain enregistrement audio. Si l’appareil choisi est retiré, KGStudio reviendra à l’appareil système par défaut.',
  'settings.audioIo.outputHelp': 'Les changements de sortie demandent un rechargement de la page. La prise en charge du routage vers une sortie non par défaut est limitée dans les navigateurs, donc KGStudio continuera à utiliser la sortie système par défaut lorsqu’elle n’est pas prise en charge.',
  'settings.audioIo.outputSinkUnsupported': 'Ce navigateur n’expose pas de bascule fiable en direct de la sortie Web Audio. La sélection d’une sortie non par défaut reste un effort au mieux et peut finalement rester sur la sortie système par défaut.',
  'settings.audioIo.chooseOutputDevice': 'Choisir l’appareil de sortie…',
  'settings.audioIo.previousSelectedInput': 'Entrée précédemment sélectionnée (autorisation requise pour vérification)',
  'settings.audioIo.previousSelectedOutput': 'Sortie précédemment sélectionnée (autorisation requise pour vérification)',
  'settings.audioIo.status.inputUnavailable': 'L’appareil d’entrée audio précédemment sélectionné n’est pas disponible ; utilisation de l’appareil système par défaut.',
  'settings.audioIo.status.outputUnavailable': 'L’appareil de sortie audio précédemment sélectionné n’est pas disponible ; utilisation de l’appareil système par défaut.',
  'settings.audioIo.status.refreshed': 'La liste des appareils audio a été rafraîchie.',
  'settings.audioIo.status.readFailed': 'Impossible de lire les appareils audio depuis le navigateur.',
  'settings.audioIo.status.inputDefaultNextSession': 'L’entrée audio utilisera l’appareil système par défaut lors de la prochaine session d’enregistrement.',
  'settings.audioIo.status.inputChangedNextSession': 'L’entrée audio changera lors de la prochaine session d’enregistrement.',
  'settings.audioIo.status.outputDefaultAfterRefresh': 'La sortie audio utilisera l’appareil système par défaut après rechargement.',
  'settings.audioIo.status.outputSavedRefreshRequired': 'L’appareil de sortie audio a été enregistré. Rechargez la page pour l’appliquer.',
  'settings.audioIo.status.outputPromptUnsupported': 'Ce navigateur ne prend pas en charge l’invite de sélection d’un appareil de sortie audio.',
  'settings.audioIo.status.outputSelectedRefreshRequired': 'Appareil de sortie sélectionné. Rechargez la page pour l’appliquer.',
  'settings.audioIo.status.outputSelectionDenied': 'Le navigateur n’a pas autorisé la sélection d’une sortie non par défaut.',
  'settings.behavior.title': 'Comportement',
  'settings.behavior.editor': 'Éditeur',
  'settings.behavior.playheadUpdateFrequency': 'Fréquence de mise à jour de la tête de lecture (fps)',
  'settings.behavior.playheadUpdateFrequencyHelp': 'Fréquence de mise à jour de l’animation de la tête de lecture pendant la lecture. Des valeurs plus élevées (60 fps) donnent une animation plus fluide mais utilisent plus de CPU. Des valeurs plus faibles (10 fps) sont plus efficaces. Les changements s’appliquent immédiatement sans redémarrage.',
  'settings.behavior.spectrogramHeightResolution': 'Résolution verticale du spectrogramme',
  'settings.behavior.spectrogramHeightResolutionHelp': 'Contrôle le niveau de détail vertical du spectrogramme sur la plage de hauteurs visible. Des valeurs plus élevées accentuent les contours de hauteur mais consomment davantage de CPU et de mémoire lors du calcul du spectrogramme.',
  'settings.behavior.chatBox': 'Boîte de discussion',
  'settings.behavior.openAtStartup': 'Ouvrir au démarrage',
  'settings.behavior.audio': 'Audio',
  'settings.behavior.lookaheadTime': 'Temps d’anticipation (ms)',
  'settings.behavior.lookaheadTimeHelp': 'Temps d’anticipation de planification audio (0-500 ms). Des valeurs plus faibles (10-20 ms) réduisent la latence d’entrée MIDI mais peuvent provoquer des glitches audio sur les systèmes plus lents. Des valeurs plus élevées (100 ms et plus) améliorent la stabilité de lecture. Les changements s’appliquent immédiatement sans redémarrage.',
  'settings.behavior.playbackDelay': 'Délai de lecture (ms)',
  'settings.behavior.playbackDelayHelp': 'La lecture démarrera avec un léger délai après avoir appuyé sur le bouton de démarrage (0-500 ms). Augmenter cette valeur peut aider à stabiliser la lecture, surtout pendant les premiers ticks si la valeur d’anticipation est trop faible. Les changements s’appliquent immédiatement sans redémarrage.',
  'settings.behavior.midiAutomationInterpolation': 'Interpolation de l’automation MIDI',
  'settings.behavior.midiAutomationInterpolation.low': 'Économie (20 ms)',
  'settings.behavior.midiAutomationInterpolation.balanced': 'Équilibré (10 ms)',
  'settings.behavior.midiAutomationInterpolation.high': 'Haute qualité (5 ms)',
  'settings.behavior.midiAutomationInterpolationHelp': 'Contrôle la densité de cuisson de l’automation MIDI pour la lecture et le bounce. Des intervalles plus courts sonnent plus fluides mais planifient davantage d’événements.',
  'settings.behavior.midiInputLatency': 'Latence d’entrée MIDI (ms)',
  'settings.behavior.midiInputLatencyHelp': 'Correction temporelle pour l’enregistrement MIDI (0-500 ms). Si les notes enregistrées apparaissent légèrement en retard par rapport à ce que vous vouliez jouer, augmentez cette valeur pour l’aligner sur la latence d’entrée de votre appareil MIDI. La position de chaque note est reculée de cette valeur lors de la validation.',
  'settings.behavior.bounceStartsFromBeat1': 'Le bounce démarre au temps 1',
  'settings.behavior.bounceStartsFromBeat1Help': 'Oui inclut le silence initial entre le début du morceau et la première région rendue lors du bounce WAV/MP3. Non supprime ce silence initial et démarre le bounce à la première note rendue ou à la première région audio.',
  'settings.behavior.captureAudioForScreenSharing': 'Capturer l’audio pour le partage d’écran',
  'settings.behavior.captureAudioForScreenSharingHelp': 'Redémarrez KGStudio (rechargez la page) pour appliquer ce réglage. Activez cette option lorsque l’audio de KGStudio ne peut pas être capturé pendant le partage d’écran dans les appels vidéo (ex. Zoom, Teams). Cela crée un flux audio supplémentaire que les applications de capture d’écran peuvent détecter.',
  'settings.behavior.captureAudioForScreenSharingWarning': 'Lorsque vous partagez l’écran dans Zoom, vérifiez bien que l’option "Share Sound" est activée.',
  'settings.behavior.validation.lookahead.invalidNumber': 'Le temps d’anticipation doit être un nombre valide',
  'settings.behavior.validation.lookahead.range': 'Le temps d’anticipation doit être compris entre 0 et 0,5 seconde (0-500 ms)',
  'settings.behavior.validation.playbackDelay.invalidNumber': 'Le délai de lecture doit être un nombre valide',
  'settings.behavior.validation.playbackDelay.range': 'Le délai de lecture doit être compris entre 0 et 0,5 seconde (0-500 ms)',
  'settings.behavior.validation.recordingOffset.invalidNumber': 'La latence d’entrée MIDI doit être un nombre valide',
  'settings.behavior.validation.recordingOffset.range': 'La latence d’entrée MIDI doit être comprise entre 0 et 0,5 seconde (0-500 ms)',
  'settings.templates.title': 'Modèles',
  'settings.templates.customInstructions': 'Instructions personnalisées',
  'settings.templates.placeholder': 'Veuillez saisir vos instructions personnalisées pour l’assistant musical K.G.Studio',
  'settings.chordGuide.title': 'Guide d’accords',
  'settings.chordGuide.resetToDefault': 'Rétablir les valeurs par défaut',
  'settings.chordGuide.group.major': 'Accords candidats majeurs',
  'settings.chordGuide.group.minor': 'Accords candidats mineurs',
  'settings.chordGuide.help.major': 'Saisissez des accords relatifs à Do majeur. L’application les transposera automatiquement pour les autres armures majeures.',
  'settings.chordGuide.help.minor': 'Saisissez des accords relatifs à La mineur. L’application les transposera automatiquement pour les autres armures mineures.',
  'settings.chordGuide.functionsAria': 'Fonctions pour {group}',
  'settings.chordGuide.addTitle': 'Ajouter un accord à {group}',
  'settings.chordGuide.deleteSelectedRows': 'Supprimer les lignes sélectionnées',
  'settings.chordGuide.table.chord': 'Accord',
  'settings.chordGuide.table.notes': 'Notes',
  'settings.chordGuide.table.source': 'Source',
  'settings.chordGuide.table.note': 'Note',
  'settings.chordGuide.loadError': 'Impossible de charger les réglages du guide d’accords.',
  'settings.chordGuide.invalidChordSymbol': 'Veuillez saisir un symbole d’accord valide. Exemple : Bm7b5',
  'settings.chordGuide.unsupportedChordSymbol': 'Impossible de déduire les notes pour cet accord. Veuillez utiliser un symbole d’accord pris en charge.',
  'dialog.title.notice': 'Information',
  'dialog.title.timeSignature': 'Chiffrage de mesure',
  'dialog.title.tempoDetection': 'Détection du tempo',
  'dialog.title.applyTempo': 'Appliquer le tempo',
  'dialog.title.chordDetection': 'Détection d’accords',
  'dialog.title.input': 'Saisie',
  'dialog.title.confirm': 'Confirmation',
  'dialog.close': 'Fermer la boîte de dialogue',
  'dialog.cancel': 'Annuler',
  'dialog.experimentalFeature': 'Fonction expérimentale',
  'dialog.recommendedSource': 'Source recommandée',
  'dialog.chordHint.audio': 'L’analyse d’accords reste expérimentale. Le contenu harmonique, la densité de l’arrangement et les matériaux riches en transitoires peuvent affecter la précision. Pour de meilleurs résultats, commencez avec les réglages par défaut puis affinez la sensibilité et la stabilité jusqu’à ce que l’harmonie détectée corresponde à la phrase musicale.',
  'dialog.chordHint.midi': 'L’analyse d’accords reste expérimentale. La densité des voicings, les chevauchements et les notes d’ornement peuvent influencer le résultat. Pour des étiquettes d’accord plus fiables, partez des réglages par défaut puis ajustez la suppression des notes courtes et le focus harmonique selon le rôle musical du passage.',
  'dialog.chordHint.tempo': 'L’analyse du tempo reste expérimentale. Le rubato, les transitoires clairsemées et les couches de percussions peuvent réduire la précision. Commencez avec la plage de BPM par défaut, puis resserrez la fenêtre d’analyse vers la zone de tempo la plus plausible si le premier résultat n’est pas convaincant musicalement.',
  'dialog.sourceHint.kgone': 'Pour des étiquettes d’accord plus fiables, analysez de préférence un stem où les voix et les percussions ont été atténuées ou retirées. Si l’intégration du serveur K.G.One Music Studio est disponible, lancez Separator avec le modèle "Vocal, Drums, Bass, Guitar, Piano, and Others" et utilisez de préférence le stem Piano ou Others.',
  'dialog.sourceHint.local': 'Pour des étiquettes d’accord plus fiables, analysez de préférence un stem où les voix et les percussions ont été atténuées ou retirées. Si vous utilisez le séparateur local, choisissez le modèle "Vocal, Drums, Bass, and Others" et analysez le stem Others.',
  'dialog.label.sensitivity': 'Sensibilité',
  'dialog.label.stability': 'Stabilité',
  'dialog.label.noChordThreshold': 'Seuil sans accord',
  'dialog.label.enableSevenths': 'Détail harmonique : activer les accords de septième',
  'dialog.label.shortNotes': 'Notes courtes',
  'dialog.option.suppressionLow': 'Suppression faible',
  'dialog.option.suppressionMedium': 'Suppression moyenne',
  'dialog.option.suppressionHigh': 'Suppression forte',
  'dialog.label.harmonicFocus': 'Focus harmonique',
  'dialog.option.harmonicBalanced': 'Équilibré',
  'dialog.option.harmonicSustained': 'Privilégier les notes tenues',
  'dialog.label.minimumBpm': 'BPM minimum',
  'dialog.label.maximumBpm': 'BPM maximum',
  'dialog.label.autoAlignRegionToBeat': 'Aligner automatiquement la région sur le temps',
  'dialog.message.chordDetection': 'Ajustez les réglages de détection d’accords audio avant le traitement.',
  'dialog.message.tempoDetection': 'Ajustez les réglages de détection du tempo audio avant le traitement.',
  'dialog.message.tempoApply': 'Tempo détecté : {bpm} BPM. Choisissez comment l’appliquer.\n\nMettre à jour le tempo courant modifie le tempo actif à l’emplacement de ce clip. Insérer un changement de tempo ajoute une nouvelle région de tempo à la mesure la plus proche avant le début du clip.',
  'dialog.action.updateCurrentTempo': 'Mettre à jour le tempo courant',
  'dialog.action.insertTempoChange': 'Insérer un changement de tempo',
  'eventList.title': 'Liste des événements',
  'eventList.scopeTabs': 'Portées de la liste d’événements',
  'eventList.scope.region': 'Région',
  'eventList.scope.track': 'Piste',
  'eventList.scope.global': 'Global',
  'eventList.deleteVisibleSelectedRows': 'Supprimer les lignes visibles sélectionnées',
  'eventList.table.position': 'Position',
  'eventList.table.status': 'État',
  'eventList.table.lengthInfo': 'Durée/Infos',
  'eventList.region.filters': 'Filtres des événements de région',
  'eventList.region.filter.notes': 'Notes',
  'eventList.region.filter.pitchBends': 'Pitch bends',
  'eventList.region.filter.controller': 'Contrôleurs',
  'eventList.region.empty': 'Sélectionnez une région MIDI, ou ouvrez-en une dans le Piano Roll, pour afficher sa liste d’événements.',
  'eventList.region.add.label': 'Ajouter',
  'eventList.region.add.noteTitle': 'Ajouter une note à la tête de lecture',
  'eventList.region.add.pitchBendTitle': 'Ajouter un pitch bend à la tête de lecture',
  'eventList.region.add.controllerTitle': 'Ajouter un événement de contrôleur à la tête de lecture',
  'eventList.region.addType.note': 'Note',
  'eventList.region.addType.pitchBend': 'Pitch bend',
  'eventList.region.addType.controller': 'Contrôleur',
  'eventList.track.filters': 'Modes de la liste de piste',
  'eventList.track.filter.regions': 'Régions',
  'eventList.track.filter.volume': 'Volume',
  'eventList.track.filter.pan': 'Panoramique',
  'eventList.track.empty': 'Sélectionnez une piste pour afficher les régions et l’automation de piste.',
  'eventList.track.add.midiRegionTitle': 'Ajouter une région MIDI à la tête de lecture',
  'eventList.track.add.volumeTitle': 'Ajouter un point d’automation de volume à la tête de lecture',
  'eventList.track.add.panTitle': 'Ajouter un point d’automation de panoramique à la tête de lecture',
  'eventList.track.addType.midiRegion': 'Région MIDI',
  'eventList.track.status.volume': 'Volume',
  'eventList.track.status.pan': 'Panoramique',
  'eventList.global.filters': 'Filtres des événements globaux',
  'eventList.global.filter.marker': 'Repère',
  'eventList.global.filter.tempo': 'Tempo',
  'eventList.global.filter.keySignature': 'Armure',
  'eventList.global.filter.chord': 'Accord',
  'eventList.global.add.markerTitle': 'Ajouter une région de repère à la tête de lecture',
  'eventList.global.add.tempoTitle': 'Ajouter une région de tempo à la tête de lecture',
  'eventList.global.add.keySignatureTitle': 'Ajouter une région d’armure à la tête de lecture',
  'eventList.global.add.chordTitle': 'Ajouter une région d’accord à la tête de lecture',
  'eventList.global.addType.marker': 'Repère',
  'eventList.global.addType.tempo': 'Tempo',
  'eventList.global.addType.keySignature': 'Armure',
  'eventList.global.addType.chord': 'Accord',
  'eventList.global.status.marker': 'Repère',
  'eventList.global.status.keySignature': 'Armure',
  'eventList.global.status.chord': 'Accord',
  'eventList.global.validation.marker': 'Veuillez saisir un libellé de repère. Un texte non vide est attendu. Exemple : Intro',
  'eventList.global.validation.tempo': 'Veuillez saisir une valeur BPM en chiffres uniquement. Un entier entre {min} et {max} est attendu. Exemple : 128',
  'eventList.global.validation.keySignature': 'Veuillez saisir un nom d’armure exact. Une valeur canonique telle que "Do majeur" ou "Fa# mineur" est attendue. Exemple : Fa# mineur',
  'eventList.global.validation.chord': 'Veuillez saisir un symbole d’accord valide. Une écriture d’accord que l’application peut analyser est attendue. Exemple : Bm7b5',
  'eventList.global.validation.position': 'Veuillez saisir une position au début du projet ou après. Une position non négative est attendue. Exemple : 1 1 0',
  'eventList.global.validation.length': 'Veuillez saisir une durée positive. Une valeur supérieure à zéro est attendue. Exemple : 4 0',
  'globalTracks.label': 'Pistes globales',
  'globalTracks.marker': 'Repère',
  'globalTracks.signature': 'Armure',
  'globalTracks.chord': 'Accord',
  'globalTracks.addItem': 'Ajouter un élément global {label}',
  'pianoRoll.power.sqrtDefault': '√ (par défaut)',
  'pianoRoll.chordGuide.off': 'Guide d’accords désactivé',
  'pianoRoll.chordGuide.tonic': 'Guide d’accords tonique',
  'pianoRoll.chordGuide.subdominant': 'Guide d’accords sous-dominante',
  'pianoRoll.chordGuide.dominant': 'Guide d’accords dominante',
  'pianoRoll.spectrogramView': 'Vue spectrogramme',
  'pianoRoll.sheetMusicView': 'Vue partition',
  'pianoRoll.pointerTool': 'Outil pointeur',
  'pianoRoll.pencilTool': 'Outil crayon',
  'pianoRoll.toggleAutomationLane': 'Afficher/masquer la voie d’automation',
  'pianoRoll.automation': 'Automation',
  'pianoRoll.automationLane': 'Voie d’automation {label}',
  'pianoRoll.automationType.pitchBend': 'Pitch bend',
  'pianoRoll.chordGuide': 'Guide d’accords',
  'pianoRoll.sheetQuantization': 'Quantif. partition',
  'pianoRoll.snap': 'Snap',
  'pianoRoll.snap.none': 'SANS SNAP',
  'pianoRoll.quantizePositionCompact': 'Quant. pos.',
  'pianoRoll.quantizeLengthCompact': 'Quant. dur.',
  'pianoRoll.floor': 'Plancher',
  'pianoRoll.curve': 'Courbe',
  'pianoRoll.zoom': 'Zoom',
  'pianoRoll.moreOptions': 'Plus d’options',
  'pianoRoll.showActiveRegionOnly': 'Afficher seulement la région active',
  'pianoRoll.showEntireTrack': 'Afficher toute la piste',
  'pianoRoll.detectChords': 'Détecter les accords...',
  'pianoRoll.detectingChords': 'Détection des accords...',
  'pianoRoll.detectTempo': 'Détecter le tempo...',
  'pianoRoll.detectingTempo': 'Détection du tempo...',
  'toolbar.projectName.prompt': 'Saisissez le nom du projet :',
  'toolbar.projectName.invalid': 'Nom de projet invalide. Seules les lettres, les chiffres, les espaces, les tirets, les underscores, les points et les parenthèses sont autorisés.',
  'toolbar.projectName.reserved': '"{name}" est un nom de projet réservé. Choisissez-en un autre.',
  'toolbar.projectName.overwrite': 'Le projet "{name}" existe déjà. Voulez-vous l’écraser ?',
  'toolbar.projectName.renameOrCopy': 'Souhaitez-vous renommer ce projet ou l’enregistrer comme nouvelle copie ?',
  'toolbar.projectName.saveAsCopy': 'Enregistrer comme copie',
  'toolbar.projectName.rename': 'Renommer',
  'toolbar.save.error': 'Une erreur est survenue lors de l’enregistrement : {error}',
  'toolbar.load.error': 'Une erreur est survenue lors du chargement du projet : {error}',
  'toolbar.newProject.confirm': 'Créer un nouveau projet ? Toutes les modifications non enregistrées seront perdues.',
  'toolbar.project.notFound': 'Projet "{name}" introuvable.',
  'toolbar.openProject.confirm': 'Ouvrir ce projet ? Toutes les modifications non enregistrées du projet actuel seront perdues.',
  'toolbar.status.loadFailed': 'Échec du chargement du projet : {error}',
  'toolbar.status.newProjectCreated': 'Nouveau projet "{name}" créé',
  'toolbar.status.projectLoaded': '{description} chargé avec succès',
  'toolbar.status.projectExportedKgstudio': 'Projet "{name}" exporté au format KGStudio',
  'toolbar.status.exportProjectError': 'Erreur lors de l’export du projet : {error}',
  'toolbar.export.failedProject': 'Échec de l’export du projet : {error}',
  'toolbar.status.projectExportedMidi': 'Projet "{name}" exporté au format MIDI',
  'toolbar.status.exportMidiError': 'Erreur lors de l’export MIDI : {error}',
  'toolbar.export.failedMidi': 'Échec de l’export du projet en MIDI : {error}',
  'toolbar.status.projectExportedWav': 'Projet "{name}" exporté en WAV',
  'toolbar.status.exportWavError': 'Erreur lors de l’export WAV : {error}',
  'toolbar.export.failedWav': 'Échec de l’export du projet en WAV : {error}',
  'toolbar.status.projectExportedMp3': 'Projet "{name}" exporté en MP3',
  'toolbar.status.exportMp3Error': 'Erreur lors de l’export MP3 : {error}',
  'toolbar.export.failedMp3': 'Échec de l’export du projet en MP3 : {error}',
  'toolbar.status.importFailed': 'Échec de l’import du fichier : {error}',
  'toolbar.import.failedProjectFile': 'Échec de l’import du fichier projet : {error}',
  'toolbar.import.corruptedKgstudio': 'Le fichier .kgstudio est corrompu ou invalide : {error}',
  'toolbar.status.importingMidi': 'Import du fichier MIDI "{name}"...',
  'toolbar.status.failedImportMidi': 'Échec de l’import MIDI : {error}',
  'toolbar.status.playbackFailedStart': 'Impossible de démarrer la lecture',
  'toolbar.status.recordingStoppedCommitted': 'Enregistrement arrêté, notes validées',
  'toolbar.status.failedStopPlayback': 'Impossible d’arrêter la lecture',
  'toolbar.maxBars.prompt': 'Saisissez le nouveau nombre maximal de mesures (>= {min}) :',
  'toolbar.input.invalidNumber': 'Entrée invalide. Veuillez saisir un nombre valide.',
  'toolbar.maxBars.invalid': 'Valeur invalide. Veuillez saisir un nombre >= {min}.',
  'toolbar.status.maxBarsChanged': 'Nombre maximal de mesures défini sur {value}',
  'toolbar.bpm.prompt': 'Saisissez le nouveau BPM ({min}-{max}) :',
  'toolbar.bpm.invalid': 'BPM invalide. Veuillez saisir une valeur entre {min} et {max}.',
  'toolbar.status.bpmChanged': 'BPM changé à {value}',
  'toolbar.timeSignature.prompt': 'Définir le chiffrage de mesure :',
  'toolbar.status.timeSignatureChanged': 'Chiffrage de mesure changé à {value}',
  'toolbar.status.keySignatureChanged': 'Armure changée à {value}',
  'toolbar.status.copied': 'Éléments copiés dans le presse-papiers',
  'toolbar.status.copyNone': 'Aucun élément sélectionné à copier',
  'toolbar.status.pasted': 'Éléments collés depuis le presse-papiers',
  'toolbar.status.pasteFailed': 'Impossible de coller : contenu ou contexte du presse-papiers invalide',
  'toolbar.status.deleted': 'Régions sélectionnées supprimées',
  'toolbar.status.deleteNone': 'Aucune région sélectionnée à supprimer',
  'toolbar.undo.none': 'Rien à annuler',
  'toolbar.redo.none': 'Rien à rétablir',
  'toolbar.status.undid': 'Action annulée : {description}',
  'toolbar.status.redid': 'Action rétablie : {description}',
  'toolbar.status.chatToggled': 'Chat affiché/masqué',
  'toolbar.status.settingsToggled': 'Réglages affichés/masqués',
  'toolbar.pianoRoll.selectMidiRegion': 'Sélectionnez une région MIDI pour ouvrir le Piano Roll.',
  'toolbar.status.recordingStopped': 'Enregistrement arrêté',
  'toolbar.status.audioRecordingStarted': 'Enregistrement audio démarré...',
  'toolbar.recording.openMidiRegion': 'Ouvrez une région MIDI dans le Piano Roll avant de lancer l’enregistrement.',
  'toolbar.recording.selectMidiRegion': 'Sélectionnez une région MIDI avant de lancer l’enregistrement.',
  'toolbar.recording.noMidiDevice': 'Aucun périphérique MIDI détecté. Connectez un clavier MIDI puis réessayez.',
  'toolbar.status.recordingStarted': 'Enregistrement démarré...',
  'toolbar.button.new': 'Nouveau',
  'toolbar.button.load': 'Ouvrir',
  'toolbar.button.save': 'Enregistrer',
  'toolbar.button.export': 'Exporter',
  'toolbar.button.import': 'Importer',
  'toolbar.button.settings': 'Réglages',
  'toolbar.button.undo': 'Annuler',
  'toolbar.button.redo': 'Rétablir',
  'toolbar.button.select': 'Sélection',
  'toolbar.button.pencil': 'Crayon',
  'toolbar.button.splitRegion': 'Couper la région à la tête de lecture',
  'toolbar.button.mergeRegions': 'Fusionner les régions MIDI sélectionnées',
  'toolbar.button.snapToGrid': 'Aligner à la grille',
  'toolbar.button.copy': 'Copier',
  'toolbar.button.paste': 'Coller',
  'toolbar.button.delete': 'Supprimer',
  'toolbar.button.backToBeginning': 'Retour au début',
  'toolbar.button.play': 'Lecture',
  'toolbar.button.pause': 'Pause',
  'toolbar.button.stopRecording': 'Arrêter l’enregistrement',
  'toolbar.button.record': 'Enregistrer',
  'toolbar.button.loop': 'Boucle',
  'toolbar.button.metronome': 'Métronome',
  'toolbar.button.piano': 'Piano',
  'toolbar.button.kgone': 'Générateur musical K.G.One',
  'toolbar.button.chat': 'Chat',
  'toolbar.button.eventList': 'Éditeur de liste d’événements',
  'track.controls.automationButton': 'Automation de piste',
  'track.controls.automationDropdown': 'Automation',
  'track.controls.automation.volume': 'Volume',
  'track.controls.automation.pan': 'Panoramique',
  'track.controls.settingsDropdown': 'Réglages',
  'track.controls.settings.deleteTrack': 'Supprimer la piste',
  'toolbar.keySignatureChooser': 'Choisir l’armure, actuelle : {value}',
  'toolbar.export.label': 'Exporter',
  'toolbar.importProject.title': 'Importer un projet',
  'toolbar.importProject.description': 'Glissez-déposez votre fichier projet ici',
  'toolbar.openingProject': 'Ouverture du projet...',
  'instrument.group.PIANO_AND_KEYBOARDS': 'Pianos et claviers',
  'instrument.group.GUITAR': 'Guitare',
  'instrument.group.BASS': 'Basse',
  'instrument.group.STRINGS': 'Cordes',
  'instrument.group.BRASS': 'Cuivres',
  'instrument.group.WOODWIND': 'Bois',
  'instrument.group.PERCUSSION_KIT': 'Batterie et percussions',
  'instrument.group.SYNTH': 'Synthétiseur',
  'instrument.name.acoustic_grand_piano': 'Piano à queue acoustique',
  'instrument.name.bright_acoustic_piano': 'Piano acoustique brillant',
  'instrument.name.electric_grand_piano': 'Piano à queue électrique',
  'instrument.name.electric_piano_1': 'Piano électrique 1',
  'instrument.name.electric_piano_2': 'Piano électrique 2',
  'instrument.name.drawbar_organ': 'Orgue à tirettes',
  'instrument.name.clavinet': 'Clavinet',
  'instrument.name.harpsichord': 'Clavecin',
  'instrument.name.accordion': 'Accordéon',
  'instrument.name.acoustic_guitar_nylon': 'Guitare acoustique (nylon)',
  'instrument.name.acoustic_guitar_steel': 'Guitare acoustique (acier)',
  'instrument.name.electric_guitar_clean': 'Guitare électrique (clair)',
  'instrument.name.overdriven_guitar': 'Guitare électrique (overdrive)',
  'instrument.name.distortion_guitar': 'Guitare électrique (distorsion)',
  'instrument.name.acoustic_bass': 'Basse acoustique',
  'instrument.name.electric_bass_finger': 'Basse électrique (doigts)',
  'instrument.name.electric_bass_pick': 'Basse électrique (médiator)',
  'instrument.name.slap_bass_1': 'Basse slap',
  'instrument.name.synth_bass_1': 'Basse synthé 1',
  'instrument.name.violin': 'Violon',
  'instrument.name.viola': 'Alto',
  'instrument.name.cello': 'Violoncelle',
  'instrument.name.contrabass': 'Contrebasse',
  'instrument.name.string_ensemble_1': 'Ensemble de cordes',
  'instrument.name.string_ensemble_2': 'Ensemble de cordes 2',
  'instrument.name.pizzicato_strings': 'Cordes pizzicato',
  'instrument.name.tremolo_strings': 'Cordes trémolo',
  'instrument.name.orchestral_harp': 'Harpe orchestrale',
  'instrument.name.trumpet': 'Trompette',
  'instrument.name.trombone': 'Trombone',
  'instrument.name.tuba': 'Tuba',
  'instrument.name.french_horn': 'Cor français',
  'instrument.name.brass_section': 'Section de cuivres',
  'instrument.name.soprano_sax': 'Saxophone soprano',
  'instrument.name.alto_sax': 'Saxophone alto',
  'instrument.name.tenor_sax': 'Saxophone ténor',
  'instrument.name.baritone_sax': 'Saxophone baryton',
  'instrument.name.oboe': 'Hautbois',
  'instrument.name.english_horn': 'Cor anglais',
  'instrument.name.bassoon': 'Basson',
  'instrument.name.clarinet': 'Clarinette',
  'instrument.name.piccolo': 'Piccolo',
  'instrument.name.flute': 'Flûte',
  'instrument.name.shakuhachi': 'Shakuhachi',
  'instrument.name.harmonica': 'Harmonica',
  'instrument.name.standard': 'Kit de batterie standard',
  'instrument.name.orchestra_kit': 'Kit de percussions orchestrales',
  'instrument.name.marimba': 'Marimba',
  'instrument.name.timpani': 'Timbales',
  'instrument.name.taiko_drum': 'Tambour taiko',
  'instrument.name.woodblock': 'Wood-block',
  'instrument.name.lead_1_square': 'Lead 1 (carré)',
  'instrument.name.lead_2_sawtooth': 'Lead 2 (dent de scie)',
  'instrument.name.pad_1_new_age': 'Pad 1 (new age)',
  'instrument.name.pad_2_warm': 'Pad 2 (chaud)',
  'instrument.name.pad_3_polysynth': 'Pad 3 (polysynth)',
  'instrument.name.pad_4_choir': 'Pad 4 (chœur)',
  'instrument.name.pad_5_bowed': 'Pad 5 (verre frotté)',
  'instrument.name.pad_6_metallic': 'Pad 6 (métallique)',
  'instrument.name.pad_7_halo': 'Pad 7 (halo)',
  'instrument.name.pad_8_sweep': 'Pad 8 (balayage)',
  'instrument.name.fx_1_rain': 'FX 1 (pluie)',
  'instrument.name.fx_2_soundtrack': 'FX 2 (bande-son)',
  'instrument.name.fx_3_crystal': 'FX 3 (cristal)',
  'instrument.name.fx_4_atmosphere': 'FX 4 (atmosphère)',
  'instrument.name.fx_5_brightness': 'FX 5 (brillance)',
  'instrument.name.fx_6_goblins': 'FX 6 (gobelins)',
  'instrument.name.fx_7_echoes': 'FX 7 (échos)',
  'instrument.name.fx_8_scifi': 'FX 8 (science-fiction)',
  'kgone.panel.title.server': 'Générateur musical K.G.One',
  'kgone.panel.title.local': 'Générateur musical',
  'kgone.tab.fullSong': 'Morceau complet',
  'kgone.tab.separator': 'Séparateur',
  'kgone.tab.requiresServer': 'Nécessite l’intégration du serveur K.G.One Music Studio',
  'kgone.shared.advancedSettings': 'Réglages avancés',
  'kgone.shared.caption': 'Description',
  'kgone.shared.lyrics': 'Paroles',
  'kgone.shared.instrumental': 'Instrumental (sans voix)',
  'kgone.shared.inferenceSteps': 'Étapes d’inférence',
  'kgone.shared.guidanceScale': 'Échelle de guidage',
  'kgone.shared.useRandomSeed': 'Utiliser une seed aléatoire',
  'kgone.shared.seed': 'Seed',
  'kgone.shared.thinking': 'Réflexion (génération de métadonnées CoT)',
  'kgone.shared.selectedRegion': 'Région sélectionnée',
  'kgone.shared.track': 'Piste',
  'kgone.shared.btn.loadingModel': 'Chargement du modèle...',
  'kgone.shared.btn.generating': 'Génération...',
  'kgone.shared.btn.processing': 'Traitement...',
  'kgone.shared.btn.downloading': 'Téléchargement...',
  'kgone.shared.btn.preparingUpload': 'Préparation de l’envoi...',
  'kgone.shared.btn.importing': 'Import...',
  'kgone.shared.hint.loadingModel': 'Chargement du modèle : cela peut prendre plus de 60 secondes, veuillez patienter...',
  'kgone.shared.hint.submitting': 'Envoi de la demande de génération...',
  'kgone.shared.hint.downloadingAudio': 'Téléchargement de l’audio...',
  'kgone.clip.field.prompt': 'Prompt',
  'kgone.clip.field.promptHint': 'Décrivez le clip avec des tags séparés par des virgules : famille d’instrument, sous-type, timbre, effets, nombre de mesures, BPM, tonalité.',
  'kgone.clip.field.negativePrompt': 'Prompt négatif',
  'kgone.clip.field.bars': 'Mesures',
  'kgone.clip.field.note': 'Note',
  'kgone.clip.field.scale': 'Mode',
  'kgone.clip.field.scaleMajor': 'Majeur',
  'kgone.clip.field.scaleMinor': 'Mineur',
  'kgone.clip.field.steps': 'Étapes',
  'kgone.clip.field.seedLabel': 'Seed (-1 = aléatoire)',
  'kgone.clip.field.samplerType': 'Type de sampler',
  'kgone.clip.hint.generating': 'Génération du clip...',
  'kgone.clip.hint.drag': 'Glissez le lecteur ci-dessus vers une piste pour importer le clip. Déposez-le sur une <strong>piste audio</strong> pour l’importer comme région WAV (recommandé), ou sur une <strong>piste MIDI</strong> pour l’importer comme région MIDI. Remarque : le MIDI est retranscrit depuis l’audio et peut ne pas être parfaitement exact.',
  'kgone.clip.btn.generate': 'Générer le clip',
  'kgone.fullSong.field.captionHint': 'Décrivez en langage naturel le style, l’ambiance, le tempo, l’instrumentation et la structure du morceau.',
  'kgone.fullSong.field.lyricsHint': 'Utilisez les balises [Intro], [Verse], [Chorus], [Bridge] pour marquer les sections.',
  'kgone.fullSong.hint.generating': 'Génération...',
  'kgone.fullSong.hint.generatingProgress': 'Génération... {pct}% — {stage}',
  'kgone.fullSong.hint.generatingProgressNoStage': 'Génération... {pct}%',
  'kgone.fullSong.hint.drag': 'Glissez le lecteur ci-dessus vers une <strong>piste audio</strong> pour importer le morceau. Le dépôt sur une piste MIDI n’est pas pris en charge pour la génération de morceau complet.',
  'kgone.fullSong.btn.generate': 'Générer le morceau',
  'kgone.remix.field.captionHint': 'Décrivez le style, l’ambiance et l’instrumentation visés pour le remix.',
  'kgone.remix.field.lyricsHint': 'Laissez vide pour conserver les paroles d’origine, ou saisissez-en de nouvelles. Utilisez les balises [Verse], [Chorus], [Bridge].',
  'kgone.remix.field.coverStrength': 'Intensité de reprise',
  'kgone.remix.field.coverStrengthHint': '0 = créatif, 1 = fidèle à la structure source',
  'kgone.remix.field.noiseStrength': 'Intensité du bruit',
  'kgone.remix.field.noiseStrengthHint': '0 = transfert de style pur, 0,1 à 0,25 recommandé',
  'kgone.remix.hint.submitting': 'Envoi de la demande de remix...',
  'kgone.remix.hint.generating': 'Génération du remix...',
  'kgone.remix.hint.generatingProgress': 'Génération du remix... {pct}% — {stage}',
  'kgone.remix.hint.generatingProgressNoStage': 'Génération du remix... {pct}%',
  'kgone.remix.hint.drag': 'Glissez le lecteur ci-dessus vers une <strong>piste audio</strong> pour importer le remix.',
  'kgone.remix.hint.noRegion': 'Sélectionnez une région audio sur la timeline pour la remixer. Seules les régions audio sont prises en charge ; les régions MIDI ne peuvent pas être remixées.',
  'kgone.remix.btn.generate': 'Générer le remix',
  'kgone.remix.btn.processingRemix': 'Traitement du remix...',
  'kgone.remix.btn.importAligned': 'Importer aligné sur la source',
  'kgone.repaint.field.repaintRange': 'Plage de repaint',
  'kgone.repaint.field.loopModeOff': 'Le mode boucle est désactivé. Activez le bouton boucle dans la barre d’outils et définissez une plage de boucle pour fixer la fenêtre de repaint.',
  'kgone.repaint.field.start': 'Début',
  'kgone.repaint.field.end': 'Fin',
  'kgone.repaint.field.untilEnd': 'jusqu’à la fin de l’audio',
  'kgone.repaint.field.captionHint': 'Décrivez le style cible et l’instrumentation de la section repeinte.',
  'kgone.repaint.field.lyricsHint': 'Laissez vide pour conserver les paroles d’origine, ou saisissez-en de nouvelles pour la section repeinte.',
  'kgone.repaint.field.repaintStrength': 'Intensité du repaint',
  'kgone.repaint.field.repaintStrengthHint': '0 = préserver l’original, 1 = régénération complète',
  'kgone.repaint.hint.submitting': 'Envoi de la demande de repaint...',
  'kgone.repaint.hint.generating': 'Génération du repaint...',
  'kgone.repaint.hint.generatingProgress': 'Génération du repaint... {pct}% — {stage}',
  'kgone.repaint.hint.generatingProgressNoStage': 'Génération du repaint... {pct}%',
  'kgone.repaint.hint.drag': 'Glissez le lecteur ci-dessus vers une <strong>piste audio</strong> pour importer le repaint.',
  'kgone.repaint.hint.noRegion': 'Sélectionnez une région audio sur la timeline pour la repeindre. Seules les régions audio sont prises en charge ; les régions MIDI ne peuvent pas être repeintes.',
  'kgone.repaint.btn.generate': 'Générer le repaint',
  'kgone.repaint.btn.processingRepaint': 'Traitement du repaint...',
  'kgone.repaint.btn.importAligned': 'Importer aligné sur la source',
  'kgone.separator.field.separationModel': 'Modèle de séparation',
  'kgone.separator.field.chunkDuration': 'Durée optionnelle des segments audio (secondes)',
  'kgone.separator.field.chunkDurationPlaceholder': 'Laisser vide pour traiter toute la région',
  'kgone.separator.field.modelOverlap': 'Recouvrement du modèle',
  'kgone.separator.hint.drag': 'Glissez chaque lecteur de stem ci-dessus vers une <strong>piste audio</strong> pour l’importer. Le dépôt sur une piste MIDI n’est pas pris en charge pour la séparation de stems.',
  'kgone.separator.hint.noRegion.download': 'Téléchargez {model}, puis sélectionnez une région audio sur la timeline pour en extraire les stems.',
  'kgone.separator.hint.noRegion.select': 'Sélectionnez une région audio sur la timeline pour en extraire les stems. Seules les régions audio sont prises en charge ; les régions MIDI ne peuvent pas être séparées.',
  'kgone.separator.btn.separateStems': 'Séparer les stems',
  'kgone.separator.btn.importAllStems': 'Importer tous les stems sur la timeline',
  'kgone.separator.btn.server.polling': 'Séparation des stems...',
  'kgone.separator.btn.local.loadingModel': 'Préparation du modèle local...',
  'kgone.separator.btn.local.generating': 'Préparation de l’audio...',
  'kgone.separator.btn.local.polling': 'Séparation locale en cours...',
  'kgone.separator.btn.local.downloading': 'Finalisation...',
  'kgone.separator.local.title': 'Mode séparateur local',
  'kgone.separator.local.description': 'Si K.G.One Music Studio n’est pas disponible, le mode séparateur local offre une solution intégrée pour extraire des stems directement dans votre navigateur. Deux modèles locaux sont disponibles : Vocal and Instrument (Medium Accuracy), et Vocal, Drums, Bass, and Others. L’état de téléchargement ci-dessous correspond au modèle actuellement sélectionné. Vocal and Instrument (Medium Accuracy) prend généralement plus de temps à traiter que Vocal, Drums, Bass, and Others, et la durée totale dépendra tout de même de votre matériel. Si le traitement bascule sur le CPU, la page peut devenir temporairement moins réactive pendant la séparation.',
  'kgone.separator.local.learnMore': 'En savoir plus sur l’intégration du serveur K.G.One Music Studio.',
  'kgone.separator.local.provider': 'Fournisseur : ',
  'kgone.separator.local.model': 'Modèle : ',
  'kgone.separator.local.downloaded': 'téléchargé',
  'kgone.separator.local.notDownloaded': 'non téléchargé',
  'kgone.separator.local.checkingCache': 'Vérification du cache du modèle local...',
  'kgone.separator.local.btn.download': 'Télécharger le modèle sélectionné',
  'kgone.separator.local.btn.downloading': 'Téléchargement du modèle...',
  'kgone.separator.local.btn.redownload': 'Retélécharger le modèle',
  'kgone.separator.local.btn.redownloading': 'Retéléchargement...',
  'kgone.separator.local.btn.deleteCache': 'Supprimer le modèle en cache',
  'kgone.separator.local.btn.deleting': 'Suppression...',
  'kgone.separator.local.progress.downloading': 'Téléchargement de {name}...',
  'kgone.separator.local.progress.downloadingWithSize': 'Téléchargement de {name}... {received} / {total} MB',
  'kgone.separator.local.progress.downloadingMbOnly': 'Téléchargement de {name}... {received} MB',
  'kgone.separator.local.progress.ready': '{name} est prêt.',
  'kgone.separator.local.progress.preparingRuntime': 'Préparation de la session ONNX Runtime...',
  'kgone.separator.local.progress.readingAudio': 'Lecture du fichier audio...',
  'kgone.separator.local.progress.running': 'Séparation dans le navigateur en cours...',
  'kgone.separator.local.progress.complete': 'Séparation terminée.',
};
