feat(transcription): add shared voice input support (#4232)
* feat(webui): add voice transcription input * feat(webui): render ANSI output in code blocks * refactor(webui): isolate voice recorder logic * refactor(transcription): keep websocket ingress thin * refactor(transcription): resolve channel audio settings on demand * style(webui): neutralize voice waveform color * feat(webui): add voice input tooltip * feat(webui): add voice input keyboard shortcut * fix(webui): distinguish voice shortcut platforms * fix(webui): place voice button after model selector * refactor(webui): share voice hold recording helpers * fix(desktop): allow microphone voice input * fix(webui): stabilize token usage month labels * feat(webui): show voice input on settings overview * fix(webui): label voice capability as recognition * fix(webui): align capability overview status * refactor(webui): isolate transcription socket handling * fix(webui): soften silent voice waveform * refactor(audio): clarify transcription service location * docs(transcription): clarify audio and provider boundaries * fix(exec): reduce session output polling flake
This commit is contained in:
@@ -73,6 +73,7 @@
|
||||
"models": "Modèles",
|
||||
"providers": "Fournisseurs",
|
||||
"image": "Images",
|
||||
"voice": "Voix",
|
||||
"browser": "Internet",
|
||||
"runtime": "Système",
|
||||
"advanced": "Sécurité",
|
||||
@@ -99,7 +100,8 @@
|
||||
"mcp": "Services MCP",
|
||||
"apps": "Applications",
|
||||
"nativeHost": "Hôte natif",
|
||||
"hostSafety": "Sécurité de l’app"
|
||||
"hostSafety": "Sécurité de l’app",
|
||||
"voiceInput": "Saisie vocale"
|
||||
},
|
||||
"rows": {
|
||||
"theme": "Thème",
|
||||
@@ -142,7 +144,13 @@
|
||||
"engine": "Moteur",
|
||||
"logs": "Journaux",
|
||||
"diagnostics": "Diagnostic",
|
||||
"contextWindow": "Fenêtre de contexte"
|
||||
"contextWindow": "Fenêtre de contexte",
|
||||
"transcription": "Transcription",
|
||||
"transcriptionProvider": "Fournisseur",
|
||||
"transcriptionProviderStatus": "Etat du fournisseur",
|
||||
"transcriptionModel": "Modele",
|
||||
"transcriptionLanguage": "Langue",
|
||||
"voiceLimits": "Limites"
|
||||
},
|
||||
"help": {
|
||||
"theme": "Basculer entre l’apparence claire et sombre.",
|
||||
@@ -181,7 +189,12 @@
|
||||
"diagnostics": "Exporte un petit rapport d’exécution pour le support.",
|
||||
"localServiceAccessNative": "Autorise les commandes shell Full Access à atteindre les services sur ce Mac.",
|
||||
"webuiDefaultAccessNative": "Utilisé par les chats natifs sans permission propre au projet.",
|
||||
"contextWindow": "Choisissez le budget de contexte par défaut pour cette configuration de modèle."
|
||||
"contextWindow": "Choisissez le budget de contexte par défaut pour cette configuration de modèle.",
|
||||
"transcription": "Transcrit l'entree micro avant l'envoi. Les messages vocaux des canaux utilisent les memes reglages.",
|
||||
"transcriptionProvider": "Utilise les identifiants du fournisseur correspondant dans Fournisseurs.",
|
||||
"transcriptionProviderStatus": "Les cles API restent dans les fournisseurs, pas dans les reglages de transcription.",
|
||||
"transcriptionModel": "Laissez le modele resolu par defaut sauf si votre fournisseur exige un id personnalise.",
|
||||
"transcriptionLanguage": "Indice ISO-639 facultatif, comme en, zh, ja ou ko."
|
||||
},
|
||||
"values": {
|
||||
"light": "Clair",
|
||||
@@ -283,6 +296,7 @@
|
||||
"totalProviders": "{{count}} disponibles",
|
||||
"webSearch": "Recherche web",
|
||||
"imageGeneration": "Génération d’images",
|
||||
"voiceInput": "Saisie vocale",
|
||||
"workspace": "Espace de travail"
|
||||
},
|
||||
"usage": {
|
||||
@@ -486,6 +500,11 @@
|
||||
"rawInstructions": "SKILL.md brut",
|
||||
"rawInstructionsEmpty": "Aucune instruction brute.",
|
||||
"detailDescription": "Détails de {{name}}."
|
||||
},
|
||||
"voice": {
|
||||
"selectProvider": "Choisir un fournisseur",
|
||||
"configureProvider": "Configurer le fournisseur",
|
||||
"languageAuto": "Auto"
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
@@ -678,6 +697,21 @@
|
||||
"deepResearch": "Recherche approfondie",
|
||||
"voice": "Entrée vocale"
|
||||
},
|
||||
"voice": {
|
||||
"hint": "Cliquez pour dicter ou maintenez",
|
||||
"stop": "Arrêter l'enregistrement",
|
||||
"transcribing": "Transcription...",
|
||||
"recordingStatus": "Enregistrement {{time}}"
|
||||
},
|
||||
"voiceErrors": {
|
||||
"unsupported": "La saisie vocale n'est pas prise en charge par ce navigateur.",
|
||||
"permission": "L'autorisation du microphone est requise.",
|
||||
"notConfigured": "Configurez d'abord un fournisseur de transcription.",
|
||||
"tooLong": "L'enregistrement est trop long.",
|
||||
"tooShort": "Maintenez un peu plus longtemps pour enregistrer la voix.",
|
||||
"noInput": "Aucune entrée microphone détectée.",
|
||||
"failed": "Impossible de transcrire l'audio."
|
||||
},
|
||||
"slash": {
|
||||
"ariaLabel": "Commandes slash",
|
||||
"label": "commandes",
|
||||
|
||||
Reference in New Issue
Block a user