The speech engine now keeps an auxiliary model next to the dictation model and transcribes with whichever the request names, reloading it once if the engine restarted. Settings > STT gains a live-caption model so captions can run on large-v3-turbo while dictation keeps its own model. The runtime minimum rises to 1.7.0 because older engines would silently ignore the model choice. Suggestion paging moves to Up/Down: the page follows the selection and the last item waits while more candidates are being generated. The Left/Right page shortcuts are removed; they did nothing until a page had filled and clash with Intel's display-rotation hotkeys.
526 lines
30 KiB
JSON
526 lines
30 KiB
JSON
{
|
||
"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."
|
||
}
|