{ "app.name": "D3RO Voice", "app.tagline": "Assistant vocal IA local", "nav.dashboard": "Tableau de bord", "nav.history": "Historique", "nav.dictionary": "Dictionnaire", "nav.commands": "Commandes", "nav.settings": "Paramètres", "nav.meetings": "Réunions", "nav.record": "Enregistrer", "nav.chat": "Chat", "nav.knowledge": "Connaissance", "nav.actions": "Actions", "nav.teams": "Équipes", "nav.billing": "Facturation", "nav.logout": "Déconnexion", "login.subtitle": "Assistant vocal IA", "login.google": "Continuer avec Google", "login.github": "Continuer avec GitHub", "login.terms": "En continuant, vous acceptez les Conditions d'utilisation et la Politique de confidentialité.", "dashboard.systemStatus": "État du système", "dashboard.sessionsToday": "Sessions aujourd'hui", "dashboard.pressToRecord": "Appuyez sur {{key}} pour commencer l'enregistrement", "dashboard.hotkeyNotSet": "Raccourci non configuré", "dashboard.words": "mots", "dashboard.total": "total", "dashboard.days": "jours", "dashboard.sessions": "sessions", "dashboard.recentTranscriptions": "Transcriptions récentes", "dashboard.noHistory": "Aucun historique — appuyez sur le raccourci pour commencer à enregistrer", "dashboard.entries": "{{count}} entrées", "dashboard.currentBackend": "Backend actuel", "dashboard.backendLocal": "Local (Ollama)", "dashboard.backendPremium": "Premium (Claude)", "history.title": "Historique des transcriptions", "history.search": "Rechercher...", "history.entries": "{{count}} entrées", "history.noResults": "Aucun résultat", "history.noHistory": "Aucun historique — commencez à enregistrer", "history.count": "{{count}} entrées", "dictionary.title": "Dictionnaire personnalisé", "dictionary.words": "{{count}} mots", "dictionary.add": "Ajouter", "dictionary.search": "Rechercher...", "dictionary.noResults": "Aucun résultat", "dictionary.noWords": "Aucun mot — ajoutez des mots personnalisés pour améliorer la précision du STT", "dictionary.used": "utilisé {{count}} fois", "dictionary.editTitle": "Modifier le mot", "dictionary.addTitle": "Ajouter un mot", "dictionary.word": "Mot", "dictionary.pronunciation": "Prononciation (facultatif)", "commands.title": "Commandes LLM", "commands.count": "{{count}} commandes", "commands.add": "Ajouter", "commands.activeCommand": "Commande active", "commands.none": "Aucune", "commands.noCommands": "Aucune commande — cliquez sur ajouter pour en créer une", "commands.editTitle": "Modifier la commande", "commands.addTitle": "Ajouter une commande", "commands.name": "Nom", "commands.description": "Description", "commands.promptTemplate": "Modèle de prompt", "commands.promptHelp": "{{text}} sera remplacé par le texte transcrit", "commands.defaultPrompt": "Veuillez améliorer {{text}}.", "settings.title": "Paramètres", "settings.tabs.general": "Général", "settings.tabs.audio": "Audio", "settings.tabs.stt": "STT", "settings.tabs.llm": "LLM", "settings.tabs.cloud": "Cloud", "settings.tabs.about": "À propos", "settings.shortcuts": "Raccourcis", "settings.dictation": "Dictée", "settings.dictation.desc": "Maintenez enfoncé pour parler. La transcription démarre au relâchement.", "settings.agent": "Mode agent", "settings.agent.descWithKey": "Double-cliquez sur {{key}} pour entrer en mode agent.", "settings.agent.descNoKey": "Configurez d'abord le raccourci de dictée.", "settings.oneTouch": "Mode une touche", "settings.oneTouch.desc": "Appuyez pour démarrer, appuyez à nouveau pour arrêter. Nécessite un raccourci distinct.", "settings.key": "Touche", "settings.notSet": "Non configuré", "settings.enabled": "Activé", "settings.disabled": "Désactivé", "settings.interface": "Interface", "settings.theme": "Thème", "settings.theme.system": "Système", "settings.theme.light": "Clair", "settings.theme.dark": "Sombre", "settings.language": "Langue", "settings.appBehavior": "Comportement de l'application", "settings.closeToTray": "Réduire dans la barre système", "settings.autoLaunch": "Lancer au démarrage du système", "settings.autoInsert": "Insérer le texte automatiquement après la transcription", "settings.soundEffects": "Effets sonores", "settings.microphone": "Microphone", "settings.inputDevice": "Périphérique d'entrée", "settings.deviceDefault": "(par défaut)", "settings.textInsert": "Insertion de texte", "settings.insertMethod": "Méthode d'insertion", "settings.insertClipboard": "Presse-papiers (Ctrl+V)", "settings.insertKeyboard": "Frappe au clavier", "settings.whisperModel": "Modèle Whisper", "settings.model.tiny": "tiny (39 Mo, le plus rapide)", "settings.model.base": "base (74 Mo, équilibré)", "settings.model.small": "small (244 Mo, bon)", "settings.model.medium": "medium (769 Mo, très bon)", "settings.model.large": "large-v3 (1,5 Go, meilleur)", "settings.model.largeTurbo": "large-v3-turbo (1,6 Go, rapide et précis)", "settings.sttLanguage": "Langue de reconnaissance", "settings.sttLang.auto": "Détection automatique", "settings.ollamaServer": "Serveur Ollama", "settings.ollamaUrl": "URL du serveur Ollama", "settings.ollamaHint": "D3RO Voice se connecte automatiquement quand Ollama est en cours d'exécution. Téléchargez les modèles directement depuis Ollama (ex : ollama pull gemma4:e4b).", "settings.postProcess": "Post-traitement vocal", "settings.defaultAction": "Action de post-traitement par défaut", "settings.action.none": "Aucune (texte original inchangé)", "settings.action.refine": "Affiner (grammaire + naturel)", "settings.action.translate": "Traduire", "settings.action.summarize": "Résumer", "settings.action.grammar": "Correction grammaticale", "settings.action.custom": "Prompt personnalisé", "settings.actionHint": "Le post-traitement LLM sélectionné est appliqué au texte transcrit après l'enregistrement avec le raccourci. Ne fonctionne que lorsque Ollama est connecté.", "settings.about.version": "Version", "settings.about.techStack": "Stack technologique", "settings.about.techStackValue": "Electron + React 19 + MUI 7 + TypeScript", "settings.about.voiceEngine": "Moteur vocal", "settings.about.voiceEngineValue": "STT : faster-whisper (local) / LLM : Ollama (local)", "settings.about.description": "Assistant vocal IA entièrement local, basé sur l'ingénierie inverse de Speakly. Fonctionne sans dépendance au cloud.", "settings.about.restartOnboarding": "Revoir le guide de configuration initiale", "status.nudge.title": "Ollama n'est pas en cours d'exécution", "status.nudge.desc": "Ollama est nécessaire pour le post-traitement LLM (traduction, résumé, etc.).", "status.nudge.guide": "Voir le guide d'installation →", "hotkey.title": "Configurer le raccourci", "hotkey.dictationTitle": "Configurer le raccourci de dictée", "hotkey.oneTouchTitle": "Configurer le raccourci du mode une touche", "hotkey.prompt": "Appuyez sur une combinaison de touches...", "hotkey.ready": "✓ {{keys}} — appuyez sur enregistrer", "hotkey.noKey": "Veuillez saisir une touche", "hotkey.reserved": "{{keys}} est un raccourci réservé par le système", "hotkey.current": "Actuel : {{keys}}", "hotkey.hint": "Saisissez une combinaison (ex : Ctrl+Shift+Q) ou une touche seule (ex : F5)", "hotkey.reset": "Ressaisir", "ollama.title": "GUIDE DE CONFIGURATION OLLAMA", "ollama.step1.title": "ÉTAPE 1 — Installer Ollama", "ollama.step1.desc": "Ollama est un outil gratuit pour exécuter des LLM en local.", "ollama.step2.title": "ÉTAPE 2 — Télécharger un modèle", "ollama.step2.desc": "Exécutez la commande suivante dans le terminal pour télécharger le modèle recommandé :", "ollama.step2.alt": "Ou un modèle plus grand : ollama pull gemma4:26b (plus précis, plus lent)", "ollama.step3.title": "ÉTAPE 3 — Connexion automatique", "ollama.step3.desc": "D3RO-VOICE détecte automatiquement quand Ollama est en cours d'exécution. Quand la LED de la barre d'état passe du rouge au vert, c'est prêt !", "service.sttEngine": "MOTEUR STT", "service.ollamaLlm": "OLLAMA LLM", "service.hotkeyHook": "RACCOURCI CLAVIER", "service.audioInput": "ENTRÉE AUDIO", "service.ready": "PRÊT", "service.connected": "CONNECTÉ", "service.offline": "HORS LIGNE", "service.active": "ACTIF", "service.standby": "EN VEILLE", "service.premiumLlm": "PREMIUM LLM", "service.notConfigured": "NOT SET", "common.cancel": "Annuler", "common.save": "Enregistrer", "common.delete": "Supprimer", "common.close": "Fermer", "common.confirm": "Confirmer", "common.loading": "Chargement...", "common.copy": "Copier", "common.test": "Tester", "common.stop": "Arrêter", "date.today": "Aujourd'hui", "date.yesterday": "Hier", "settings.theme.nord": "Nord", "settings.theme.solarized": "Solarized", "settings.theme.catppuccin": "Catppuccin", "settings.theme.dracula": "Dracula", "settings.sttLang.ko": "Coréen", "settings.sttLang.en": "Anglais", "settings.sttLang.ja": "Japonais", "settings.sttLang.zh": "Chinois", "template.outputHelperText": "Utilisez {{nomChamp}} pour les espaces réservés", "nav.meeting": "Réunion", "meeting.title": "Mode Réunion", "meeting.newMeeting": "Nouvelle Réunion", "meeting.stopRecording": "Arrêter l'enregistrement", "meeting.recording": "Enregistrement en cours", "meeting.processing": "Génération du compte-rendu...", "meeting.completed": "Terminé", "meeting.error": "Erreur", "meeting.memoPlaceholder": "Saisir un mémo (Entrée pour ajouter)", "meeting.noSessions": "Aucun enregistrement de réunion", "meeting.noSessionsDesc": "Appuyez sur Nouvelle Réunion pour commencer l'enregistrement", "meeting.transcript": "Transcription brute", "meeting.memos": "Mémos", "meeting.sessions": "{{count}} séances", "meeting.duration": "{{minutes}} min", "meeting.editTitle": "Modifier le titre", "meeting.untitled": "Réunion sans titre", "meeting.processingStep.merging": "Fusion de la transcription...", "meeting.processingStep.generating": "Génération du compte-rendu avec LLM...", "meeting.processingStep.parsing": "Analyse du compte-rendu...", "meeting.processingStep.saving": "Enregistrement...", "meeting.processingStep.notifying": "Envoi de la notification...", "meeting.transcriptTab": "Transcription", "meeting.addDocument": "Ajouter un document", "meeting.selectTemplate": "Choisir un modèle", "meeting.generate": "Générer", "meeting.generating": "Génération du document...", "meeting.editMode": "Éditer", "meeting.previewMode": "Aperçu", "meeting.modified": "Modifié", "meeting.originalText": "Original", "meeting.editedText": "Édité", "meeting.exportDocx": "Exporter DOCX", "meeting.exportTxt": "Exporter TXT", "meeting.exportFormat": "Exporter", "meeting.customPrompt": "Invite personnalisée", "meeting.templateName": "Nom du modèle", "meeting.templatePrompt": "Invite IA", "meeting.downloadTranscript": "Télécharger la transcription", "meeting.polish": "Peaufiner avec IA", "meeting.polishing": "L'IA peaufine la transcription...", "meeting.chat": "Chat IA", "meeting.chatPlaceholder": "Posez une question sur la réunion...", "meeting.chatClear": "Effacer le chat", "meeting.copyToClipboard": "Copier dans le presse-papiers", "meeting.chatCollapse": "Réduire le chat", "meeting.chatExpand": "Agrandir le chat", "meeting.chatReasoning": "Raisonnement…", "meeting.exportMd": "Markdown (.md)", "meeting.exportPdfFmt": "PDF (.pdf)", "meeting.polishFailed": "Echec du polish IA", "meeting.viewDetailError": "Impossible de charger les détails de la réunion", "meeting.startRecordingError": "Impossible de démarrer l'enregistrement", "meeting.diarize": "Identifier les locuteurs", "meeting.diarizing": "Identification des locuteurs...", "settings.hfToken": "Token HuggingFace", "settings.hfTokenHint": "Un token HuggingFace est requis pour l'identification des locuteurs", "settings.diarization": "Identification des locuteurs", "settings.diarizationHint": "Identifier automatiquement les locuteurs après l'enregistrement", "theme.label": "Thème", "theme.dark": "Sombre", "theme.light": "Clair", "theme.auto": "Auto (système)", "theme.nord": "Nord", "theme.solarized": "Solarized", "theme.catppuccin": "Catppuccin", "theme.dracula": "Dracula", "license.signInRequired": "Sign in to manage your subscription", "license.signInToUpgrade": "Sign in to upgrade", "license.subscriptionManage": "Manage subscription", "license.upgradeToProDesc": "Unlock Premium AI models, cloud sync, and more", "license.currentPlanActive": "Your current plan", "license.premiumQuota": "Premium Quota", "license.modelHaiku": "Haiku", "license.modelSonnet": "Sonnet", "license.modelOpus": "Opus", "license.quotaWeekly": "weekly", "license.quotaDaily": "daily", "mobile.works.title": "WORKS", "mobile.works.count": "{{count}} fonctions", "mobile.works.searchPlaceholder": "Rechercher une fonction", "mobile.works.pinned": "Épinglé", "mobile.works.pin": "Épingler", "mobile.works.unpin": "Détacher", "mobile.works.emptySearch": "Aucune fonction correspondante.", "mobile.works.section.meetings": "Travail de réunion", "mobile.works.section.team": "Équipe et savoir", "mobile.works.section.data": "Données et alertes", "mobile.works.historyDescription": "Recherchez et gérez les transcriptions des enregistrements et importations.", "mobile.meetings.templateEmpty": "Aucun modèle de document de réunion disponible. Vous pouvez démarrer la réunion sans modèle.", "mobile.meetings.templateNone": "Démarrer sans modèle", "mobile.meetings.templateNoneDesc": "Choisissez un modèle lors de la génération de documents", "keybinding.mouse.left": "Bouton gauche de la souris", "keybinding.mouse.right": "Bouton droit de la souris", "keybinding.mouse.middle": "Bouton du milieu de la souris", "keybinding.mouse.back": "Bouton Précédent de la souris", "keybinding.mouse.forward": "Bouton Suivant de la souris", "keybinding.group.mouse": "Souris", "keybinding.group.modifier": "Touches de modification", "keybinding.group.function": "Touches de fonction", "keybinding.group.letter": "Lettres", "keybinding.group.digit": "Chiffres", "keybinding.group.numpad": "Pavé numérique", "keybinding.group.navigation": "Navigation", "keybinding.group.editing": "Édition", "keybinding.group.punctuation": "Symboles", "keybinding.group.system": "Système", "keybinding.action.dictation": "Dictée", "keybinding.action.dictation.desc": "Enregistre tant que la touche est maintenue.", "keybinding.action.handsFree": "Mode une touche", "keybinding.action.handsFree.desc": "Appuyez deux fois pour activer ou désactiver.", "keybinding.action.command": "Commandes vocales", "keybinding.action.command.desc": "Exécute une commande à la voix.", "keybinding.action.caption": "Sous-titres en direct", "keybinding.action.caption.desc": "Active ou désactive les sous-titres en direct.", "keybinding.action.historyPopup": "Fenêtre d'historique", "keybinding.action.historyPopup.desc": "Ouvre la fenêtre contextuelle de l'historique.", "keybinding.action.commandPopup": "Fenêtre de commandes", "keybinding.action.commandPopup.desc": "Ouvre la fenêtre contextuelle des commandes.", "keybinding.reject.unknownKey": "Cette touche n'est pas prise en charge", "keybinding.reject.systemReserved": "Il s'agit d'un raccourci réservé au système", "keybinding.reject.modifierRequired": "Doit être combinée avec une touche de modification (Ctrl/Alt/Maj)", "keybinding.disabled.mouseLeft": "Le clic gauche sert à toutes les interactions à l'écran, il ne peut pas être affecté", "keybinding.warning.mousePassthrough": "Les boutons de la souris conservent aussi leur action d'origine", "keybinding.ui.add": "Ajouter", "keybinding.ui.remove": "Supprimer", "keybinding.ui.reset": "Valeurs par défaut", "keybinding.ui.tabRecord": "Appuyer sur une touche", "keybinding.ui.tabList": "Choisir dans la liste", "keybinding.ui.search": "Rechercher une touche", "keybinding.ui.searchEmpty": "Aucun résultat", "keybinding.ui.pressKeys": "Appuyez sur la touche ou le bouton de souris souhaité", "keybinding.ui.noBindings": "Aucun raccourci défini", "keybinding.ui.conflictWith": "En conflit avec {{action}}", "keybinding.ui.modifiers": "Touches de modification", "keybinding.ui.selectedKey": "Touche sélectionnée", "keybinding.ui.sectionVoice": "Voix", "keybinding.ui.sectionWindow": "Fenêtres / Pop-ups", "keybinding.ui.duplicate": "Ce raccourci est déjà ajouté", "keybinding.ui.holdMode": "Maintien", "keybinding.ui.doublePress": "Double appui", "keybinding.ui.pickerTitle": "Configurer le raccourci", "keybinding.ui.pressToRecord": "Appuyez pour commencer l'enregistrement", "keybinding.ui.recordHint": "Saisissez une combinaison (ex : Ctrl+Shift+Q) ou une touche seule (ex : F5)", "keybinding.ui.recordAgain": "Ressaisir", "keybinding.ui.saveFailed": "Le raccourci n'a pas pu être enregistré", "keybinding.ui.globalEnabled": "Activer les raccourcis globaux", "input.tab": "Saisie", "input.consent.title": "Collecte des données de saisie", "input.consent.description": "Facultatif. Nous comptons les frappes et les clics et mesurons la distance parcourue par la souris pour afficher vos habitudes de saisie. Les touches pressées ne sont jamais enregistrées.", "input.consent.collect": "Collecter les statistiques clavier et souris", "input.consent.running": "Collecte en cours.", "input.consent.stopped": "La collecte est désactivée. Rien n’est enregistré.", "input.consent.pause": "Suspendre la collecte", "input.consent.learnText": "Apprendre le texte que je saisis", "input.consent.learnTextHint": "Lit le champ de saisie actif pour apprendre votre style. Les champs de mot de passe sont toujours ignorés.", "input.consent.excludedApps": "Applications exclues", "input.consent.excludedAppsPlaceholder": "keepassxc.exe, 1password.exe", "input.consent.excludedAppsHint": "Noms d’exécutables séparés par des virgules. Rien n’est lu ni compté dans ces applications.", "input.consent.clearAll": "Supprimer les données collectées", "input.suggestion.title": "Suggestions de phrase suivante", "input.suggestion.description": "Prédit la phrase que vous allez écrire et l’affiche près du curseur. Acceptez pour l’insérer.", "input.suggestion.enabled": "Afficher les suggestions pendant la saisie", "input.suggestion.modelReady": "Modèle local prêt.", "input.suggestion.modelMissing": "Le modèle local n’est pas démarré — suggestions désactivées.", "input.suggestion.delay": "Délai (ms)", "input.suggestion.minPrefix": "Caractères minimum", "input.suggestion.modelDefault": "Utiliser le modèle par défaut", "input.suggestion.overlayInteractive": "Autoriser le clic sur la suggestion", "input.suggestion.overlayVisible": "Suggestion affichée", "input.suggestion.keyHint": "Accepter, parcourir et fermer sont des raccourcis globaux — modifiez-les dans Réglages > Raccourcis.", "input.suggestion.requestNow": "Suggérer maintenant", "input.suggestion.usage": "{{requests}} sur {{budget}} requêtes utilisées aujourd’hui", "input.suggestion.lastSkip": "Dernier motif d’ignorance : {{reason}}", "input.insights.title": "{{days}} derniers jours", "input.insights.keystrokes": "Frappes", "input.insights.clicks": "Clics", "input.insights.words": "Mots saisis", "input.insights.sentences": "Phrases", "input.insights.mouseDistance": "Trajet de la souris", "input.insights.perDayMeters": " m/jour", "input.insights.phrases": "Phrases personnelles", "input.insights.empty": "Aucune activité collectée pour le moment.", "input.insights.topApps": "Où vous saisissez le plus", "input.insights.appRow": "{{keystrokes}} touches · {{clicks}} clics", "input.insights.privacyNote": "Seuls des compteurs et des distances sont stockés sur cet appareil. Le contenu des touches n’est jamais enregistré.", "input.phrases.title": "Phrases personnelles", "input.phrases.description": "Phrases apprises de votre saisie et de votre dictée, utilisées pour imiter votre style.", "input.phrases.empty": "Rien appris pour l’instant.", "input.phrases.delete": "Supprimer la phrase", "input.feedback.excludedSaved": "Exclusions enregistrées.", "input.feedback.cleared": "Données collectées supprimées.", "popup.suggestion.hintAccept": "Accepter", "popup.suggestion.hintNext": "Suivant", "popup.suggestion.hintDismiss": "Fermer", "popup.suggestion.hintMove": "Déplacer", "popup.suggestion.loading": "Génération…", "keybinding.ui.sectionInput": "Suggestions de saisie", "keybinding.action.suggestionAccept": "Accepter la suggestion", "keybinding.action.suggestionAccept.desc": "Insère la phrase suggérée dans l’application active.", "keybinding.action.suggestionNext": "Suggestion suivante", "keybinding.action.suggestionNext.desc": "Passe au candidat suivant.", "keybinding.action.suggestionDismiss": "Fermer la suggestion", "keybinding.action.suggestionDismiss.desc": "Masque la suggestion actuelle.", "input.suggestion.timeout": "Limite de réponse (ms)", "input.suggestion.latency": "Dernière réponse : {{ms}} ms", "input.suggestion.slowWarning": "Plus lent que la frappe — essayez un modèle plus petit.", "input.diagnostics.title": "Diagnostic en direct", "input.diagnostics.app": "Application active : {{app}}", "input.diagnostics.unknownApp": "(inconnue)", "input.diagnostics.noSnapshot": "Aucun champ lu pour le moment — cliquez dans un champ de texte et tapez.", "input.diagnostics.readable": "Champ lisible ({{source}}, {{length}} caractères) — les suggestions peuvent fonctionner.", "input.diagnostics.notReadable": "Cette application n'expose pas son champ de texte : ce qui est saisi n'est pas lisible, donc aucune suggestion.", "input.diagnostics.password": "Champ de mot de passe — lecture bloquée par conception.", "input.diagnostics.caretFallback": "Position du curseur inconnue ; fin du document utilisée.", "input.diagnostics.composing": "Composition IME en cours — la suggestion arrive un peu plus tard.", "input.suggestion.onScreenLabel": "État de l'overlay", "input.suggestion.onScreen": "À l’écran", "input.suggestion.offScreen": "Masqué", "input.suggestion.generating": "Génération…", "input.kbView.knowledge": "Base de connaissances", "input.kbView.insights": "Analyse de saisie", "input.insights.tabs.overview": "Aperçu", "input.insights.tabs.keyboard": "Clavier", "input.insights.tabs.mouse": "Souris", "input.insights.tabs.apps": "Applications", "input.insights.tabs.phrases": "Phrases · suggestions", "input.insights.chars": "Caractères saisis", "input.insights.wordChars": "Caractères", "input.insights.backspaces": "Retours arrière", "input.insights.shortcuts": "Raccourcis", "input.insights.doubleClicks": "Doubles clics", "input.insights.scrollTicks": "Défilement", "input.insights.activeMinutes": "Temps actif", "input.insights.activeDays": "Jours enregistrés", "input.insights.streak": "Plus longue série", "input.insights.peakDay": "Jour le plus actif", "input.insights.perDayAverage": "Moyenne journalière", "input.insights.mouseDistanceTotal": "Trajet total de la souris", "input.insights.hourlyTitle": "Par heure (0-23)", "input.insights.dailyTitle": "Évolution quotidienne", "input.insights.wordsDailyTitle": "Mots par jour", "input.insights.distanceDailyTitle": "Trajet quotidien de la souris", "input.insights.topHoursHint": "Busiest hours: {{hours}}", "input.insights.mouseNote": "Mouse travel is the sum of per-axis absolute deltas (Manhattan), the same measure ActivityWatch uses.", "input.insights.appsHint": "Top apps by typing volume. The bar is that app’s share of all keystrokes.", "input.insights.suggestions": "Suggestions", "input.insights.suggestionsTotal": "Générées", "input.insights.suggestionsAccepted": "Acceptées", "input.insights.acceptRate": "Taux d'acceptation", "input.insights.avgLatency": "Réponse moyenne", "input.insights.suggestionHistory": "Suggestions récentes", "input.insights.accepted": "acceptée", "input.insights.notAccepted": "non acceptée", "input.insights.noSuggestions": "No suggestions recorded yet.", "input.insights.samplesNote": "{{count}} learned samples.", "input.insights.collectedAt": "Last capture {{at}}", "input.insights.rangeLabel": "Période", "input.insights.rangeDays": "{{days}} jours", "input.insights.headerSummary": "Last {{days}} days · {{keys}} keystrokes · {{apps}} apps", "input.insights.disabledHint": "Input collection is off. Turn it on in Settings > Input and statistics will collect here.", "input.insights.statsMovedHint": "Les statistiques détaillées se trouvent dans Base de connaissances > Analyse de saisie.", "input.chart.max": "max {{value}}", "input.chart.noData": "Pas encore de données.", "input.unit.perDay": "/jour", "input.unit.perDayMeters": "m/jour", "input.unit.meters": "m", "input.unit.ms": "ms", "input.unit.percent": "%", "popup.suggestion.warming": "Préparation du modèle…", "popup.suggestion.hintGenerating": "Génération…", "popup.suggestion.hintGeneratingMore": "Génération en cours… (jusqu'à {{max}})", "keybinding.action.suggestionPrev": "Suggestion précédente", "keybinding.action.suggestionPrev.desc": "Passe au candidat précédent.", "input.insights.tabs.graph": "Graphe", "input.graph.description": "Your sentences are stored as nodes and their relations as edges (what follows what, which share terms) so suggestions can pull personal context. Local only.", "input.graph.nodes": "Nœuds de phrase", "input.graph.followsEdges": "Liens de suite", "input.graph.sharesEdges": "Liens par termes", "input.graph.topEdges": "Liens les plus forts", "input.graph.recentNodes": "Nœuds récents", "input.graph.searchLabel": "Rechercher une phrase", "input.graph.searchPlaceholder": "e.g. meeting schedule", "input.graph.searchAction": "Rechercher", "input.graph.neighbors": "Phrases connectées", "input.graph.empty": "The graph is empty. Enable \"Learn the text I type\" in Settings > Input and it fills up.", "input.graph.kindFollows": "suite", "input.graph.kindShares": "termes partagés", "popup.suggestion.generating": "Génération… ({{seconds}} s)", "keybinding.ui.auditClear": "Aucun conflit ni réglage de raccourci invalide.", "keybinding.ui.auditIssues": "{{count}} problèmes de raccourcis", "keybinding.ui.auditInvalid": "{{action}} : {{reason}}", "keybinding.ui.auditConflict": "{{action}} est en conflit avec {{conflicts}}", "keybinding.ui.auditUnknown": "Problème inconnu", "input.flow.title": "Créneaux de concentration probables", "input.flow.empty": "Pas encore assez de données de saisie par heure.", "input.flow.hour": "{{hour}}:00", "input.flow.window": "Score {{score}} · {{minutes}} min actives/jour · {{friction}} % de modifications", "input.friction.title": "Friction d’édition", "input.friction.value": "{{count}} pour 100 caractères", "input.friction.band.steady": "Stable", "input.friction.band.watch": "À surveiller", "input.friction.band.high": "Élevée", "input.appQuality.title": "Qualité des suggestions par app", "input.appQuality.empty": "Pas encore d’historique de suggestions par app.", "input.appQuality.row": "{{accepted}}/{{total}} acceptées · {{rate}} % · {{latency}} ms", "input.phrases.metadata": "{{source}} · {{count}}× · {{app}}", "input.phrases.appUnknown": "Partagé", "input.privacy.title": "Reçu de données locales", "input.privacy.localOnly": "Ces données restent sur cet appareil.", "input.privacy.rawKeys": "Les événements individuels et codes de touches bruts ne sont pas conservés. Les échantillons de texte appris sont indiqués séparément ci-dessous.", "input.privacy.activityRetention": "Conservation de l’activité", "input.privacy.suggestionRetention": "Conservation des suggestions", "input.privacy.learnedRetention": "Conservation du texte appris", "input.privacy.activityBuckets": "Blocs d’activité", "input.privacy.typingSamples": "Échantillons de saisie", "input.privacy.personalPhrases": "Phrases personnelles", "input.privacy.suggestions": "Enregistrements de suggestions", "input.privacy.days": "{{days}} jours", "input.privacy.untilDeleted": "Jusqu’à suppression", "input.exclusion.recommendation": "{{app}} a eu {{samples}} saisies illisibles répétées ({{reason}}).", "input.exclusion.reason.repeated-unreadable": "illisible à répétition", "input.exclusion.reason.repeated-empty": "vide à répétition", "input.exclusion.addButton": "Ajouter {{app}} aux exclusions", "input.feedback.recommendationSaved": "{{app}} a été ajouté aux exclusions.", "popup.suggestion.sourceModel": "Modèle local", "popup.suggestion.sourceMemory": "Mémoire locale", "popup.suggestion.continuations": "suites", "popup.suggestion.related": "liées", "popup.suggestion.phrases": "phrases", "popup.suggestion.appPhrases": "phrases de l’app", "input.privacy.typingSamplesRetention": "Conservation des échantillons de texte saisi", "input.privacy.unavailable": "Le reçu de données locales est indisponible. Les quantités et durées de conservation ne sont pas affichées.", "input.feedback.clearFailed": "Les données collectées n’ont pas pu être supprimées.", "input.feedback.excludedFailed": "Les exclusions n’ont pas pu être enregistrées.", "input.feedback.recommendationFailed": "Impossible d’ajouter {{app}} aux exclusions.", "popup.caption.loading": "Préparation du modèle vocal…", "popup.caption.waiting": "Écoute… le premier sous-titre peut prendre quelques secondes", "popup.caption.dragHint": "Glisser pour déplacer · double-clic pour réinitialiser", "settings.captionRefine": "Affiner les sous-titres selon le contexte", "settings.captionRefine.desc": "L’IA locale corrige les espaces, la ponctuation et les mots mal entendus d’après les lignes voisines.", "settings.captionModel": "Modèle des sous-titres en direct", "settings.captionModel.same": "Identique à la dictée", "settings.captionModel.desc": "Les sous-titres en direct utilisent un modèle distinct, chargé en plus de celui de la dictée." }