Handy/src/i18n/locales/fr/translation.json
Ivan Zhuravlev f8bbcd791c
Migrate to transcribe-rs-0.3.1 and add Canary support (#1023)
* refactor: migrate transcribe-rs from v0.2.8 to v0.3.0

Breaking API migration:
- engines::* → onnx::* module paths, whisper_cpp::* for Whisper
- TranscriptionEngine trait → SpeechModel trait
- Two-step new()+load_model() → one-step Model::load()
- transcribe_samples(Vec<f32>) → transcribe(&[f32])
- Explicit unload_model() → RAII drop
- Canary engine now from transcribe-rs instead of local crate

Removes canary-engine local crate dependency.
Uses path dependency to local transcribe-rs clone (temporary).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: upgrade transcribe-rs to v0.3.1, add Canary models

Update transcribe-rs dependency from v0.2.8 to v0.3.1 with
restructured features (whisper + onnx). Add Canary 180M Flash
(4 languages, 146MB) and Canary 1B v2 (25 EU languages, 692MB)
with translation support. Add i18n translations for all 17 locales.

Languages verified against HuggingFace model cards:
- Canary 180M Flash: en, de, es, fr
- Canary 1B v2: bg, hr, cs, da, nl, en, et, fi, fr, de, el, hu,
  it, lv, lt, mt, pl, pt, ro, sk, sl, es, sv, ru, uk

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* make sure when changing models the language changes with it

* format

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: CJ Pais <cj@cjpais.com>
2026-03-16 16:31:44 +08:00

572 lines
24 KiB
JSON

{
"tray": {
"settings": "Paramètres...",
"checkUpdates": "Rechercher des mises à jour...",
"copyLastTranscript": "Copier la dernière transcription",
"unloadModel": "Décharger le modèle",
"model": "Modèle",
"quit": "Quitter",
"cancel": "Annuler"
},
"sidebar": {
"general": "Général",
"models": "Modèles",
"advanced": "Avancé",
"postProcessing": "Post-traitement",
"history": "Historique",
"debug": "Débogage",
"about": "À propos"
},
"onboarding": {
"subtitle": "Pour commencer, choisissez un modèle de transcription",
"recommended": "Recommandé",
"download": "Télécharger",
"downloading": "Téléchargement...",
"customModelDescription": "Non officiellement pris en charge",
"downloadFailed": "Échec du téléchargement. Veuillez réessayer.",
"modelCard": {
"accuracy": "précision",
"speed": "vitesse"
},
"models": {
"small": {
"name": "Whisper Small",
"description": "Rapide et assez précis."
},
"medium": {
"name": "Whisper Medium",
"description": "Bonne précision, vitesse moyenne"
},
"turbo": {
"name": "Whisper Turbo",
"description": "Équilibre entre précision et vitesse."
},
"large": {
"name": "Whisper Large",
"description": "Bonne précision, mais lent."
},
"parakeet-tdt-0.6b-v2": {
"name": "Parakeet V2",
"description": "Anglais uniquement. Le meilleur modèle pour les anglophones."
},
"parakeet-tdt-0.6b-v3": {
"name": "Parakeet V3",
"description": "Rapide et précis"
},
"moonshine-base": {
"name": "Moonshine Base",
"description": "Très rapide, anglais uniquement. Gère bien les accents."
},
"moonshine-tiny-streaming-en": {
"name": "Moonshine V2 Tiny",
"description": "Ultra-rapide, anglais uniquement"
},
"moonshine-small-streaming-en": {
"name": "Moonshine V2 Small",
"description": "Rapide, anglais uniquement. Bon équilibre entre vitesse et précision."
},
"moonshine-medium-streaming-en": {
"name": "Moonshine V2 Medium",
"description": "Anglais uniquement. Haute qualité."
},
"breeze-asr": {
"name": "Breeze ASR",
"description": "Optimisé pour le mandarin taïwanais. Prise en charge de l'alternance codique."
},
"sense-voice-int8": {
"name": "SenseVoice",
"description": "Très rapide. Chinois, anglais, japonais, coréen, cantonais."
},
"gigaam-v3-e2e-ctc": {
"name": "GigaAM v3",
"description": "Reconnaissance vocale en russe. Rapide et précis."
},
"canary-180m-flash": {
"name": "Canary 180M Flash",
"description": "Très rapide. Anglais, allemand, espagnol, français. Supporte la traduction."
},
"canary-1b-v2": {
"name": "Canary 1B v2",
"description": "Multilingue précis. 25 langues européennes. Supporte la traduction."
}
},
"errors": {
"loadModels": "Échec du chargement des modèles disponibles",
"downloadModel": "Échec du téléchargement du modèle : {{error}}"
},
"permissions": {
"title": "Autorisations requises",
"description": "Handy a besoin de quelques autorisations pour fonctionner correctement.",
"microphone": {
"title": "Accès au microphone",
"description": "Nécessaire pour entendre votre voix pour la transcription."
},
"accessibility": {
"title": "Accès à l'accessibilité",
"description": "Nécessaire pour taper le texte transcrit dans vos applications."
},
"grant": "Accorder l'autorisation",
"granted": "Accordé",
"waiting": "En attente...",
"allGranted": "Tout est prêt !",
"errors": {
"checkFailed": "Échec de la vérification des autorisations. Veuillez réessayer.",
"requestFailed": "Échec de la demande d'autorisation. Veuillez réessayer."
}
}
},
"modelSelector": {
"custom": "Personnalisé",
"active": "Actif",
"switching": "Changement...",
"noModelsAvailable": "Aucun modèle disponible",
"extracting": "Extraction de {{modelName}}...",
"extractingMultiple": "Extraction de {{count}} modèles...",
"extractingGeneric": "Extraction...",
"downloading": "Téléchargement {{percentage}}%",
"downloadingMultiple": "Téléchargement de {{count}} modèles...",
"modelReady": "Modèle Prêt",
"loading": "Chargement de {{modelName}}...",
"loadingGeneric": "Chargement...",
"modelError": "Erreur du Modèle",
"modelUnloaded": "Modèle Déchargé",
"noModelDownloadRequired": "Aucun Modèle - Téléchargement Requis",
"deleteModel": "Supprimer {{modelName}}",
"downloadSpeed": "{{speed}} Mo/s",
"capabilities": {
"languageSelection": "Prend en charge plusieurs langues d'entrée",
"multiLanguage": "Multilingue",
"translation": "Peut traduire en anglais",
"translate": "Traduire en anglais",
"singleLanguage": "Prend en charge uniquement cette langue",
"languageOnly": "{{language}} uniquement"
},
"cancel": "Annuler",
"cancelDownload": "Annuler le téléchargement"
},
"settings": {
"modelSettings": {
"title": "Paramètres de {{model}}",
"noSettingsNeeded": "Ce modèle fonctionne automatiquement sans configuration nécessaire."
},
"models": {
"title": "Modèles de Transcription",
"description": "Sélectionnez un modèle de transcription ou téléchargez des modèles supplémentaires. Différents modèles offrent différents niveaux de précision et de vitesse.",
"downloaded": "Téléchargés",
"available": "Disponibles au Téléchargement",
"deleteConfirm": "Êtes-vous sûr de vouloir supprimer {{modelName}} ? Vous devrez le télécharger à nouveau pour l'utiliser.",
"deleteActiveConfirm": "{{modelName}} est votre modèle actif. Le supprimer arrêtera les transcriptions jusqu'à ce que vous sélectionniez un nouveau modèle. Êtes-vous sûr ?",
"deleteTitle": "Supprimer le modèle",
"filters": {
"all": "Tous",
"multiLanguage": "Multilingue",
"translation": "Traduction",
"allLanguages": "Toutes les langues"
},
"noModelsMatch": "Aucun modèle ne correspond à ce filtre.",
"yourModels": "Modèles téléchargés",
"availableModels": "Disponibles au téléchargement"
},
"general": {
"title": "Général",
"shortcut": {
"title": "Raccourcis Handy",
"description": "Configurer les raccourcis clavier pour déclencher l'enregistrement de la reconnaissance vocale",
"loading": "Chargement des raccourcis...",
"none": "Aucun raccourci configuré",
"notFound": "Raccourci non trouvé",
"pressKeys": "Appuyez sur les touches...",
"bindings": {
"transcribe": {
"name": "Raccourci de Transcription",
"description": "Le raccourci clavier pour enregistrer et transcrire votre voix."
},
"cancel": {
"name": "Raccourci d'Annulation",
"description": "Le raccourci clavier pour annuler l'enregistrement en cours."
},
"transcribe_with_post_process": {
"name": "Raccourci de post-traitement",
"description": "Facultatif : Un raccourci dédié qui applique toujours le post-traitement IA à votre transcription."
}
},
"errors": {
"restore": "Échec de la restauration du raccourci original",
"set": "Échec de la définition du raccourci : {{error}}",
"reset": "Échec de la réinitialisation du raccourci à sa valeur d'origine"
}
},
"language": {
"title": "Langue",
"description": "Sélectionnez la langue pour la reconnaissance vocale. Auto déterminera automatiquement la langue, tandis que sélectionner une langue spécifique peut améliorer la précision pour cette langue.",
"descriptionUnsupported": "Le modèle Parakeet détecte automatiquement la langue. Aucune sélection manuelle n'est nécessaire.",
"searchPlaceholder": "Rechercher des langues...",
"noResults": "Aucune langue trouvée",
"auto": "Auto"
},
"pushToTalk": {
"label": "Appuyer pour parler",
"description": "Maintenez pour enregistrer, relâchez pour arrêter"
}
},
"sound": {
"title": "Son",
"microphone": {
"title": "Microphone",
"description": "Sélectionnez votre périphérique d'entrée audio",
"placeholder": "Sélectionner un microphone...",
"loading": "Chargement..."
},
"audioFeedback": {
"label": "Signal sonore",
"description": "Jouer un son au début et à la fin de l'enregistrement"
},
"outputDevice": {
"title": "Périphérique de sortie",
"description": "Sélectionnez votre périphérique de sortie audio pour le signal sonore",
"placeholder": "Sélectionner un périphérique de sortie...",
"loading": "Chargement..."
},
"volume": {
"title": "Volume",
"description": "Ajuster le volume du signal sonore"
}
},
"advanced": {
"title": "Avancé",
"groups": {
"app": "Application",
"output": "Sortie",
"transcription": "Transcription",
"history": "Historique",
"experimental": "Expérimental"
},
"experimentalToggle": {
"label": "Fonctionnalités Expérimentales",
"description": "Activer les fonctionnalités expérimentales encore en développement."
},
"startHidden": {
"label": "Démarrer masqué",
"description": "Lancer dans la barre système sans ouvrir la fenêtre."
},
"autostart": {
"label": "Lancer au démarrage",
"description": "Démarrer automatiquement Handy lorsque vous vous connectez à votre ordinateur."
},
"showTrayIcon": {
"label": "Afficher l'icône de la barre",
"description": "Afficher l'icône de Handy dans la barre système."
},
"overlay": {
"title": "Position de la fenêtre d'enregistrement",
"description": "Afficher un retour visuel pendant l'enregistrement et la transcription. Sur Linux, 'Aucune' est recommandé.",
"options": {
"none": "Aucune",
"bottom": "Bas",
"top": "Haut"
}
},
"pasteMethod": {
"title": "Méthode de collage",
"description": "Choisissez comment le texte est inséré. Direct : simule la frappe via l'entrée système. Aucun : ignore le collage, met uniquement à jour l'historique/presse-papiers.",
"options": {
"clipboard": "Presse-papiers ({{modifier}}+V)",
"clipboardCtrlShiftV": "Presse-papiers (Ctrl+Shift+V)",
"clipboardShiftInsert": "Presse-papiers (Shift+Insert)",
"direct": "Direct",
"none": "Aucun",
"externalScript": "Script externe"
},
"externalScriptPlaceholder": "/chemin/vers/votre/script.sh"
},
"typingTool": {
"title": "Outil de frappe",
"description": "Choisissez quel outil de frappe Linux utiliser pour la méthode de collage direct. Auto détectera et utilisera automatiquement le meilleur outil disponible pour votre système.",
"options": {
"auto": "Auto (Recommandé)"
}
},
"clipboardHandling": {
"title": "Gestion du presse-papiers",
"description": "Ne pas modifier le presse-papiers préserve le contenu actuel de votre presse-papiers après la transcription. Copier dans le presse-papiers laisse le résultat de la transcription dans votre presse-papiers après le collage.",
"options": {
"dontModify": "Ne pas modifier le presse-papiers",
"copyToClipboard": "Copier dans le presse-papiers"
}
},
"autoSubmit": {
"title": "Envoi automatique",
"description": "Envoie automatiquement la combinaison de touches sélectionnée après l'insertion du texte. Cmd+Enter s'applique sur macOS, tandis que Windows/Linux utilisent Super+Enter.",
"options": {
"off": "Désactivé",
"enter": "Entrée",
"cmdEnter": "Cmd+Enter",
"superEnter": "Super+Enter",
"ctrlEnter": "Ctrl+Enter"
}
},
"translateToEnglish": {
"label": "Traduire en anglais",
"description": "Traduire automatiquement la parole d'autres langues vers l'anglais pendant la transcription.",
"descriptionUnsupported": "La traduction n'est pas prise en charge par le modèle {{model}}."
},
"modelUnload": {
"title": "Décharger le modèle",
"description": "Libérer automatiquement la mémoire GPU/CPU lorsque le modèle n'a pas été utilisé pendant le temps spécifié",
"options": {
"never": "Jamais",
"immediately": "Immédiatement",
"min2": "Après 2 minutes",
"min5": "Après 5 minutes",
"min10": "Après 10 minutes",
"min15": "Après 15 minutes",
"hour1": "Après 1 heure",
"sec5": "Après 5 secondes (Débogage)"
}
},
"customWords": {
"title": "Mots personnalisés",
"description": "Ajoutez des mots souvent mal entendus ou mal orthographiés lors de la transcription. Le système corrigera automatiquement les mots similaires pour correspondre à votre liste.",
"placeholder": "Ajouter un mot",
"add": "Ajouter",
"remove": "Supprimer {{word}}",
"duplicate": "\"{{word}}\" existe déjà"
}
},
"postProcessing": {
"title": "Post-traitement",
"hotkey": {
"title": "Raccourci clavier"
},
"api": {
"title": "API (Compatible OpenAI)",
"provider": {
"title": "Fournisseur",
"description": "Sélectionnez un fournisseur compatible OpenAI."
},
"appleIntelligence": {
"title": "Apple Intelligence",
"description": "Fonctionne entièrement sur l'appareil. Aucune clé API ni accès réseau n'est requis.",
"requirements": "Nécessite un Mac Apple Silicon exécutant macOS Tahoe (26.0) ou une version ultérieure. Apple Intelligence doit être activé dans les Préférences Système.",
"unavailable": "Apple Intelligence n'est pas disponible sur cet appareil. Nécessite un Mac Apple Silicon exécutant macOS Tahoe (26.0) ou une version ultérieure avec Apple Intelligence activé dans les Préférences Système."
},
"baseUrl": {
"title": "URL de base",
"description": "URL de base de l'API pour le fournisseur sélectionné. Seul le fournisseur personnalisé peut être modifié.",
"placeholder": "https://api.openai.com/v1"
},
"apiKey": {
"title": "Clé API",
"description": "Clé API pour le fournisseur sélectionné.",
"placeholder": "sk-..."
},
"model": {
"title": "Modèle",
"descriptionApple": "Fournissez une limite de tokens optionnelle ou conservez le préréglage par défaut sur l'appareil.",
"descriptionCustom": "Fournissez l'identifiant du modèle attendu par votre point de terminaison personnalisé.",
"descriptionDefault": "Choisissez un modèle exposé par le fournisseur sélectionné.",
"placeholderApple": "Apple Intelligence",
"placeholderWithOptions": "Rechercher ou sélectionner un modèle",
"placeholderNoOptions": "Tapez un nom de modèle",
"refreshModels": "Actualiser les modèles"
}
},
"prompts": {
"title": "Prompt",
"selectedPrompt": {
"title": "Prompt sélectionné",
"description": "Sélectionnez un modèle pour affiner les transcriptions ou créez-en un nouveau. Utilisez ${output} dans le texte du prompt pour référencer la transcription capturée."
},
"noPrompts": "Aucun prompt disponible",
"selectPrompt": "Sélectionner un prompt",
"createNew": "Créer un nouveau prompt",
"promptLabel": "Libellé du prompt",
"promptLabelPlaceholder": "Entrez le nom du prompt",
"promptInstructions": "Instructions du prompt",
"promptInstructionsPlaceholder": "Écrivez les instructions à exécuter après la transcription. Exemple : Améliorer la grammaire et la clarté du texte suivant : ${output}",
"promptTip": "Astuce : Utilisez <code>${output}</code> pour insérer le texte transcrit dans votre prompt.",
"updatePrompt": "Mettre à jour le prompt",
"deletePrompt": "Supprimer le prompt",
"createPrompt": "Créer le prompt",
"cancel": "Annuler",
"selectToEdit": "Sélectionnez un prompt ci-dessus pour voir et modifier ses détails.",
"createFirst": "Cliquez sur 'Créer un nouveau prompt' ci-dessus pour créer votre premier prompt de post-traitement."
}
},
"history": {
"title": "Historique",
"openFolder": "Ouvrir le dossier des enregistrements",
"loading": "Chargement de l'historique...",
"empty": "Pas encore de transcriptions. Commencez à enregistrer pour créer votre historique !",
"copyToClipboard": "Copier la transcription dans le presse-papiers",
"save": "Enregistrer la transcription",
"unsave": "Retirer des favoris",
"delete": "Supprimer l'entrée",
"deleteError": "Échec de la suppression de l'entrée. Veuillez réessayer."
},
"debug": {
"title": "Débogage",
"logDirectory": {
"title": "Répertoire des journaux",
"description": "Emplacement où les fichiers journaux sont stockés"
},
"logLevel": {
"title": "Niveau de journalisation",
"description": "Définir le niveau de détail de la journalisation"
},
"updateChecks": {
"label": "Vérifier les mises à jour",
"description": "Vérifier automatiquement les nouvelles versions de Handy"
},
"soundTheme": {
"label": "Thème sonore",
"description": "Choisir un thème sonore pour les retours de début et de fin d'enregistrement"
},
"wordCorrectionThreshold": {
"title": "Seuil de correction des mots",
"description": "Sensibilité pour les corrections de mots personnalisés"
},
"historyLimit": {
"title": "Limite d'historique",
"description": "Nombre maximum d'entrées d'historique à conserver",
"entries": "entrées"
},
"recordingRetention": {
"title": "Suppression automatique des enregistrements",
"description": "Supprimer automatiquement les anciens enregistrements pour économiser de l'espace",
"never": "Jamais",
"preserveLimit": "Conserver les {{count}} plus récents",
"days3": "Après 3 jours",
"weeks2": "Après 2 semaines",
"months3": "Après 3 mois",
"placeholder": "Sélectionner la période de conservation..."
},
"alwaysOnMicrophone": {
"label": "Microphone toujours actif",
"description": "Garder le microphone actif pour une réponse plus rapide"
},
"clamshellMicrophone": {
"title": "Microphone en mode fermé",
"description": "Microphone à utiliser lorsque le couvercle du portable est fermé"
},
"postProcessingToggle": {
"label": "Post-traitement",
"description": "Activer l'affinage du texte par IA après la transcription"
},
"muteWhileRecording": {
"label": "Muet pendant l'enregistrement",
"description": "Couper le son du système pendant l'enregistrement"
},
"appendTrailingSpace": {
"label": "Ajouter une espace final",
"description": "Ajouter une espace après la transcription collée"
},
"keyboardImplementation": {
"title": "Gestion du clavier",
"description": "Choisissez le système des raccourcis clavier.",
"bindingsReset": "Raccourcis clavier étaient incompatibles et ont été réinitialisés aux valeurs par défaut"
},
"paths": {
"appData": "Données de l'application :",
"models": "Modèles :",
"settings": "Paramètres :"
},
"pasteDelay": {
"title": "Délai de collage",
"description": "Délai avant l'envoi de la touche de collage (en millisecondes). Augmentez si le mauvais texte est collé."
}
},
"about": {
"title": "À propos",
"version": {
"title": "Version",
"description": "Version actuelle de Handy"
},
"appDataDirectory": {
"title": "Emplacement des données de l'application",
"description": "Emplacement où Handy stocke ses données"
},
"sourceCode": {
"title": "Code source",
"description": "Voir le code source et contribuer",
"button": "Voir sur GitHub"
},
"supportDevelopment": {
"title": "Soutenir le développement",
"description": "Aidez-nous à continuer à construire Handy",
"button": "Faire un don"
},
"acknowledgments": {
"title": "Remerciements",
"whisper": {
"title": "Whisper.cpp",
"description": "Inférence haute performance du modèle de reconnaissance vocale automatique Whisper d'OpenAI",
"details": "Handy utilise Whisper.cpp pour un traitement rapide et local de la parole en texte. Merci au travail incroyable de Georgi Gerganov et des contributeurs."
}
}
}
},
"footer": {
"downloadingModel": "Téléchargement de {{model}}...",
"checkingUpdates": "Recherche de mises à jour...",
"updateAvailable": "Mise à jour disponible : {{version}}",
"updateAvailableShort": "Mise à jour disponible",
"upToDate": "À jour",
"downloadUpdate": "Télécharger la mise à jour",
"restart": "Redémarrer",
"updateCheckingDisabled": "Vérification des mises à jour désactivée",
"downloading": "Téléchargement... {{progress}}%",
"installing": "Installation...",
"preparing": "Préparation...",
"checkForUpdates": "Rechercher des mises à jour"
},
"common": {
"loading": "Chargement...",
"save": "Enregistrer",
"cancel": "Annuler",
"reset": "Réinitialiser",
"add": "Ajouter",
"remove": "Supprimer",
"delete": "Supprimer",
"edit": "Modifier",
"create": "Créer",
"update": "Mettre à jour",
"close": "Fermer",
"open": "Ouvrir",
"default": "Par défaut",
"enabled": "Activé",
"disabled": "Désactivé",
"on": "Activé",
"off": "Désactivé",
"yes": "Oui",
"no": "Non",
"noOptionsFound": "Aucune option trouvée"
},
"accessibility": {
"permissionsRequired": "Autorisations d'accessibilité requises",
"permissionsDescription": "Handy a besoin des autorisations d'accessibilité pour taper le texte transcrit.",
"openSettings": "Ouvrir les Préférences Système",
"dismiss": "Ignorer"
},
"errors": {
"loadDirectory": "Erreur lors du chargement du répertoire : {{error}}",
"micPermissionDeniedTitle": "Accès au microphone refusé",
"micPermissionDenied": {
"generic": "L'accès au microphone a été refusé par le système d'exploitation. Veuillez accorder l'autorisation du microphone dans les paramètres système.",
"windows": "Activez l'accès au microphone dans Paramètres → Confidentialité et sécurité → Microphone (y compris l'accès des applications de bureau).",
"macos": "Accordez l'accès au microphone dans Réglages du système → Confidentialité et sécurité → Microphone.",
"linux": "Accordez l'accès au microphone dans les paramètres de son ou de confidentialité de votre système."
},
"recordingFailed": "Échec du démarrage de l'enregistrement : {{error}}",
"modelLoadFailed": "Échec du chargement du modèle : {{model}}",
"modelLoadFailedUnknown": "modèle inconnu"
},
"appLanguage": {
"title": "Langue de l'application",
"description": "Changer la langue de l'interface de Handy"
},
"overlay": {
"transcribing": "Transcription...",
"processing": "Traitement..."
}
}