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": "Models",
|
||||
"providers": "Providers",
|
||||
"image": "Image",
|
||||
"voice": "Voice",
|
||||
"browser": "Web",
|
||||
"cliApps": "CLI Apps",
|
||||
"mcp": "MCP",
|
||||
@@ -99,7 +100,8 @@
|
||||
"capabilities": "Capabilities",
|
||||
"apps": "Apps",
|
||||
"nativeHost": "Native host",
|
||||
"hostSafety": "App safety"
|
||||
"hostSafety": "App safety",
|
||||
"voiceInput": "Voice input"
|
||||
},
|
||||
"models": {
|
||||
"selectModel": "Select model",
|
||||
@@ -161,7 +163,13 @@
|
||||
"engine": "Engine",
|
||||
"logs": "Logs",
|
||||
"diagnostics": "Diagnostics",
|
||||
"contextWindow": "Context window"
|
||||
"contextWindow": "Context window",
|
||||
"transcription": "Transcription",
|
||||
"transcriptionProvider": "Provider",
|
||||
"transcriptionProviderStatus": "Provider status",
|
||||
"transcriptionModel": "Model",
|
||||
"transcriptionLanguage": "Language",
|
||||
"voiceLimits": "Limits"
|
||||
},
|
||||
"help": {
|
||||
"theme": "Switch between light and dark appearance.",
|
||||
@@ -200,7 +208,12 @@
|
||||
"diagnostics": "Export a small runtime report for support.",
|
||||
"localServiceAccessNative": "Allow Full Access shell commands to reach services on this Mac.",
|
||||
"webuiDefaultAccessNative": "Used by native chats without a project-specific permission.",
|
||||
"contextWindow": "Choose the default context budget for this model configuration."
|
||||
"contextWindow": "Choose the default context budget for this model configuration.",
|
||||
"transcription": "Transcribe microphone input before sending it. Chat channel voice messages use the same settings.",
|
||||
"transcriptionProvider": "Uses the matching provider credentials from Providers.",
|
||||
"transcriptionProviderStatus": "API keys stay under providers, not in transcription settings.",
|
||||
"transcriptionModel": "Leave as the resolved default unless your provider needs a custom model id.",
|
||||
"transcriptionLanguage": "Optional ISO-639 hint such as en, zh, ja, or ko."
|
||||
},
|
||||
"timezone": {
|
||||
"select": "Select timezone",
|
||||
@@ -391,6 +404,7 @@
|
||||
"totalProviders": "{{count}} available",
|
||||
"webSearch": "Web search",
|
||||
"imageGeneration": "Image generation",
|
||||
"voiceInput": "Voice input",
|
||||
"workspace": "Workspace"
|
||||
},
|
||||
"usage": {
|
||||
@@ -486,6 +500,11 @@
|
||||
"rawInstructions": "Raw SKILL.md",
|
||||
"rawInstructionsEmpty": "No raw instructions.",
|
||||
"detailDescription": "Details for {{name}}."
|
||||
},
|
||||
"voice": {
|
||||
"selectProvider": "Select provider",
|
||||
"configureProvider": "Configure provider",
|
||||
"languageAuto": "Auto"
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
@@ -678,6 +697,21 @@
|
||||
"deepResearch": "Deep research",
|
||||
"voice": "Voice input"
|
||||
},
|
||||
"voice": {
|
||||
"hint": "Click to dictate or hold",
|
||||
"stop": "Stop recording",
|
||||
"transcribing": "Transcribing...",
|
||||
"recordingStatus": "Recording {{time}}"
|
||||
},
|
||||
"voiceErrors": {
|
||||
"unsupported": "Voice input is not supported in this browser.",
|
||||
"permission": "Microphone permission is required.",
|
||||
"notConfigured": "Configure a transcription provider first.",
|
||||
"tooLong": "Recording is too long.",
|
||||
"tooShort": "Hold a little longer to record voice.",
|
||||
"noInput": "No microphone input detected.",
|
||||
"failed": "Could not transcribe audio."
|
||||
},
|
||||
"slash": {
|
||||
"ariaLabel": "Slash commands",
|
||||
"label": "commands",
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
"models": "Modelos",
|
||||
"providers": "Proveedores",
|
||||
"image": "Imagen",
|
||||
"voice": "Voz",
|
||||
"browser": "Internet",
|
||||
"runtime": "Sistema",
|
||||
"advanced": "Seguridad",
|
||||
@@ -99,7 +100,8 @@
|
||||
"mcp": "Servicios MCP",
|
||||
"apps": "Aplicaciones",
|
||||
"nativeHost": "Host nativo",
|
||||
"hostSafety": "Seguridad de la app"
|
||||
"hostSafety": "Seguridad de la app",
|
||||
"voiceInput": "Entrada de voz"
|
||||
},
|
||||
"rows": {
|
||||
"theme": "Tema",
|
||||
@@ -142,7 +144,13 @@
|
||||
"engine": "Motor",
|
||||
"logs": "Registros",
|
||||
"diagnostics": "Diagnóstico",
|
||||
"contextWindow": "Ventana de contexto"
|
||||
"contextWindow": "Ventana de contexto",
|
||||
"transcription": "Transcripcion",
|
||||
"transcriptionProvider": "Proveedor",
|
||||
"transcriptionProviderStatus": "Estado del proveedor",
|
||||
"transcriptionModel": "Modelo",
|
||||
"transcriptionLanguage": "Idioma",
|
||||
"voiceLimits": "Limites"
|
||||
},
|
||||
"help": {
|
||||
"theme": "Cambia entre apariencia clara y oscura.",
|
||||
@@ -181,7 +189,12 @@
|
||||
"diagnostics": "Exporta un pequeño informe de runtime para soporte.",
|
||||
"localServiceAccessNative": "Permite que comandos shell con Full Access alcancen servicios en este Mac.",
|
||||
"webuiDefaultAccessNative": "Usado por chats nativos sin permiso específico de proyecto.",
|
||||
"contextWindow": "Elige el presupuesto de contexto predeterminado para esta configuración de modelo."
|
||||
"contextWindow": "Elige el presupuesto de contexto predeterminado para esta configuración de modelo.",
|
||||
"transcription": "Transcribe la entrada del microfono antes de enviarla. Los mensajes de voz de los canales usan la misma configuracion.",
|
||||
"transcriptionProvider": "Usa las credenciales del proveedor correspondiente en Proveedores.",
|
||||
"transcriptionProviderStatus": "Las claves API permanecen en proveedores, no en la configuracion de transcripcion.",
|
||||
"transcriptionModel": "Dejalo como el valor predeterminado resuelto salvo que el proveedor necesite un id de modelo personalizado.",
|
||||
"transcriptionLanguage": "Pista ISO-639 opcional, como en, zh, ja o ko."
|
||||
},
|
||||
"values": {
|
||||
"light": "Claro",
|
||||
@@ -283,6 +296,7 @@
|
||||
"totalProviders": "{{count}} disponibles",
|
||||
"webSearch": "Búsqueda web",
|
||||
"imageGeneration": "Generación de imágenes",
|
||||
"voiceInput": "Entrada de voz",
|
||||
"workspace": "Espacio de trabajo"
|
||||
},
|
||||
"usage": {
|
||||
@@ -486,6 +500,11 @@
|
||||
"rawInstructions": "SKILL.md original",
|
||||
"rawInstructionsEmpty": "No hay instrucciones originales.",
|
||||
"detailDescription": "Detalles de {{name}}."
|
||||
},
|
||||
"voice": {
|
||||
"selectProvider": "Seleccionar proveedor",
|
||||
"configureProvider": "Configurar proveedor",
|
||||
"languageAuto": "Auto"
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
@@ -678,6 +697,21 @@
|
||||
"deepResearch": "Investigación profunda",
|
||||
"voice": "Entrada de voz"
|
||||
},
|
||||
"voice": {
|
||||
"hint": "Haz clic para dictar o mantén",
|
||||
"stop": "Detener grabación",
|
||||
"transcribing": "Transcribiendo...",
|
||||
"recordingStatus": "Grabando {{time}}"
|
||||
},
|
||||
"voiceErrors": {
|
||||
"unsupported": "Este navegador no admite entrada de voz.",
|
||||
"permission": "Se requiere permiso de micrófono.",
|
||||
"notConfigured": "Configura primero un proveedor de transcripción.",
|
||||
"tooLong": "La grabación es demasiado larga.",
|
||||
"tooShort": "Mantén pulsado un poco más para grabar voz.",
|
||||
"noInput": "No se detectó entrada del micrófono.",
|
||||
"failed": "No se pudo transcribir el audio."
|
||||
},
|
||||
"slash": {
|
||||
"ariaLabel": "Comandos slash",
|
||||
"label": "comandos",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
"models": "Model",
|
||||
"providers": "Penyedia",
|
||||
"image": "Gambar",
|
||||
"voice": "Suara",
|
||||
"browser": "Internet",
|
||||
"runtime": "Sistem",
|
||||
"advanced": "Keamanan",
|
||||
@@ -99,7 +100,8 @@
|
||||
"mcp": "Layanan MCP",
|
||||
"apps": "Aplikasi",
|
||||
"nativeHost": "Host native",
|
||||
"hostSafety": "Keamanan aplikasi"
|
||||
"hostSafety": "Keamanan aplikasi",
|
||||
"voiceInput": "Input suara"
|
||||
},
|
||||
"rows": {
|
||||
"theme": "Tema",
|
||||
@@ -142,7 +144,13 @@
|
||||
"engine": "Mesin",
|
||||
"logs": "Log",
|
||||
"diagnostics": "Diagnostik",
|
||||
"contextWindow": "Jendela konteks"
|
||||
"contextWindow": "Jendela konteks",
|
||||
"transcription": "Transkripsi",
|
||||
"transcriptionProvider": "Penyedia",
|
||||
"transcriptionProviderStatus": "Status penyedia",
|
||||
"transcriptionModel": "Model",
|
||||
"transcriptionLanguage": "Bahasa",
|
||||
"voiceLimits": "Batas"
|
||||
},
|
||||
"help": {
|
||||
"theme": "Beralih antara tampilan terang dan gelap.",
|
||||
@@ -181,7 +189,12 @@
|
||||
"diagnostics": "Exporta un pequeño informe de runtime para soporte.",
|
||||
"localServiceAccessNative": "Permite que comandos shell con Full Access alcancen servicios en este Mac.",
|
||||
"webuiDefaultAccessNative": "Usado por chats nativos sin permiso específico de proyecto.",
|
||||
"contextWindow": "Pilih anggaran konteks default untuk konfigurasi model ini."
|
||||
"contextWindow": "Pilih anggaran konteks default untuk konfigurasi model ini.",
|
||||
"transcription": "Transkripsikan input mikrofon sebelum dikirim. Pesan suara channel memakai pengaturan yang sama.",
|
||||
"transcriptionProvider": "Menggunakan kredensial penyedia yang sesuai dari Providers.",
|
||||
"transcriptionProviderStatus": "API key tetap berada di providers, bukan di pengaturan transkripsi.",
|
||||
"transcriptionModel": "Biarkan memakai default yang teresolusi kecuali penyedia membutuhkan id model khusus.",
|
||||
"transcriptionLanguage": "Petunjuk ISO-639 opsional, seperti en, zh, ja, atau ko."
|
||||
},
|
||||
"values": {
|
||||
"light": "Terang",
|
||||
@@ -283,6 +296,7 @@
|
||||
"totalProviders": "{{count}} tersedia",
|
||||
"webSearch": "Pencarian web",
|
||||
"imageGeneration": "Pembuatan gambar",
|
||||
"voiceInput": "Input suara",
|
||||
"workspace": "Ruang kerja"
|
||||
},
|
||||
"usage": {
|
||||
@@ -486,6 +500,11 @@
|
||||
"rawInstructions": "SKILL.md mentah",
|
||||
"rawInstructionsEmpty": "Tidak ada instruksi mentah.",
|
||||
"detailDescription": "Detail untuk {{name}}."
|
||||
},
|
||||
"voice": {
|
||||
"selectProvider": "Pilih penyedia",
|
||||
"configureProvider": "Konfigurasi penyedia",
|
||||
"languageAuto": "Auto"
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
@@ -678,6 +697,21 @@
|
||||
"deepResearch": "Riset mendalam",
|
||||
"voice": "Input suara"
|
||||
},
|
||||
"voice": {
|
||||
"hint": "Klik untuk mendikte atau tahan",
|
||||
"stop": "Hentikan rekaman",
|
||||
"transcribing": "Mentranskripsi...",
|
||||
"recordingStatus": "Merekam {{time}}"
|
||||
},
|
||||
"voiceErrors": {
|
||||
"unsupported": "Input suara tidak didukung di browser ini.",
|
||||
"permission": "Izin mikrofon diperlukan.",
|
||||
"notConfigured": "Konfigurasikan penyedia transkripsi terlebih dahulu.",
|
||||
"tooLong": "Rekaman terlalu panjang.",
|
||||
"tooShort": "Tahan sedikit lebih lama untuk merekam suara.",
|
||||
"noInput": "Tidak ada input mikrofon yang terdeteksi.",
|
||||
"failed": "Tidak dapat mentranskripsi audio."
|
||||
},
|
||||
"slash": {
|
||||
"ariaLabel": "Perintah slash",
|
||||
"label": "perintah",
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
"models": "モデル",
|
||||
"providers": "プロバイダー",
|
||||
"image": "画像",
|
||||
"voice": "音声",
|
||||
"browser": "ウェブ",
|
||||
"runtime": "システム",
|
||||
"advanced": "セキュリティ",
|
||||
@@ -99,7 +100,8 @@
|
||||
"mcp": "MCP サービス",
|
||||
"apps": "アプリ",
|
||||
"nativeHost": "ネイティブホスト",
|
||||
"hostSafety": "アプリの安全性"
|
||||
"hostSafety": "アプリの安全性",
|
||||
"voiceInput": "音声入力"
|
||||
},
|
||||
"rows": {
|
||||
"theme": "テーマ",
|
||||
@@ -142,7 +144,13 @@
|
||||
"engine": "エンジン",
|
||||
"logs": "ログ",
|
||||
"diagnostics": "診断",
|
||||
"contextWindow": "コンテキストウィンドウ"
|
||||
"contextWindow": "コンテキストウィンドウ",
|
||||
"transcription": "文字起こし",
|
||||
"transcriptionProvider": "プロバイダー",
|
||||
"transcriptionProviderStatus": "プロバイダー状態",
|
||||
"transcriptionModel": "モデル",
|
||||
"transcriptionLanguage": "言語",
|
||||
"voiceLimits": "制限"
|
||||
},
|
||||
"help": {
|
||||
"theme": "ライト表示とダーク表示を切り替えます。",
|
||||
@@ -181,7 +189,12 @@
|
||||
"diagnostics": "サポート用の小さなランタイムレポートを書き出します。",
|
||||
"localServiceAccessNative": "Full Access の shell コマンドがこの Mac 上のサービスにアクセスできるようにします。",
|
||||
"webuiDefaultAccessNative": "プロジェクト固有の権限がないネイティブチャットで使用します。",
|
||||
"contextWindow": "このモデル設定で使う既定のコンテキスト予算を選択します。"
|
||||
"contextWindow": "このモデル設定で使う既定のコンテキスト予算を選択します。",
|
||||
"transcription": "マイク入力を送信前に文字起こしします。チャネルの音声メッセージも同じ設定を使います。",
|
||||
"transcriptionProvider": "プロバイダー設定にある対応する認証情報を使います。",
|
||||
"transcriptionProviderStatus": "APIキーは文字起こし設定ではなくプロバイダー側に保存されます。",
|
||||
"transcriptionModel": "プロバイダーがカスタムモデルIDを必要としない限り、解決済みのデフォルトのままにします。",
|
||||
"transcriptionLanguage": "en、zh、ja、ko などの任意の ISO-639 ヒント。"
|
||||
},
|
||||
"values": {
|
||||
"light": "ライト",
|
||||
@@ -283,6 +296,7 @@
|
||||
"totalProviders": "{{count}} 個利用可能",
|
||||
"webSearch": "Web 検索",
|
||||
"imageGeneration": "画像生成",
|
||||
"voiceInput": "音声入力",
|
||||
"workspace": "ワークスペース"
|
||||
},
|
||||
"usage": {
|
||||
@@ -486,6 +500,11 @@
|
||||
"rawInstructions": "元の SKILL.md",
|
||||
"rawInstructionsEmpty": "元の説明はありません。",
|
||||
"detailDescription": "{{name}} の詳細。"
|
||||
},
|
||||
"voice": {
|
||||
"selectProvider": "プロバイダーを選択",
|
||||
"configureProvider": "プロバイダーを設定",
|
||||
"languageAuto": "自動"
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
@@ -678,6 +697,21 @@
|
||||
"deepResearch": "詳細調査",
|
||||
"voice": "音声入力"
|
||||
},
|
||||
"voice": {
|
||||
"hint": "クリックして音声入力、または長押し",
|
||||
"stop": "録音を停止",
|
||||
"transcribing": "文字起こし中...",
|
||||
"recordingStatus": "録音中 {{time}}"
|
||||
},
|
||||
"voiceErrors": {
|
||||
"unsupported": "このブラウザーは音声入力に対応していません。",
|
||||
"permission": "マイクの許可が必要です。",
|
||||
"notConfigured": "先に文字起こしプロバイダーを設定してください。",
|
||||
"tooLong": "録音が長すぎます。",
|
||||
"tooShort": "もう少し長く録音してください。",
|
||||
"noInput": "マイク入力が検出されませんでした。",
|
||||
"failed": "音声を文字起こしできませんでした。"
|
||||
},
|
||||
"slash": {
|
||||
"ariaLabel": "スラッシュコマンド",
|
||||
"label": "コマンド",
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
"models": "모델",
|
||||
"providers": "제공자",
|
||||
"image": "이미지",
|
||||
"voice": "음성",
|
||||
"browser": "웹",
|
||||
"runtime": "시스템",
|
||||
"advanced": "보안",
|
||||
@@ -99,7 +100,8 @@
|
||||
"mcp": "MCP 서비스",
|
||||
"apps": "앱",
|
||||
"nativeHost": "네이티브 호스트",
|
||||
"hostSafety": "앱 보안"
|
||||
"hostSafety": "앱 보안",
|
||||
"voiceInput": "음성 입력"
|
||||
},
|
||||
"rows": {
|
||||
"theme": "테마",
|
||||
@@ -142,7 +144,13 @@
|
||||
"engine": "엔진",
|
||||
"logs": "로그",
|
||||
"diagnostics": "진단",
|
||||
"contextWindow": "컨텍스트 창"
|
||||
"contextWindow": "컨텍스트 창",
|
||||
"transcription": "전사",
|
||||
"transcriptionProvider": "제공자",
|
||||
"transcriptionProviderStatus": "제공자 상태",
|
||||
"transcriptionModel": "모델",
|
||||
"transcriptionLanguage": "언어",
|
||||
"voiceLimits": "제한"
|
||||
},
|
||||
"help": {
|
||||
"theme": "밝은 모드와 어두운 모드를 전환합니다.",
|
||||
@@ -181,7 +189,12 @@
|
||||
"diagnostics": "지원용 작은 런타임 보고서를 내보냅니다.",
|
||||
"localServiceAccessNative": "Full Access shell 명령이 이 Mac의 서비스에 접근할 수 있게 합니다.",
|
||||
"webuiDefaultAccessNative": "프로젝트별 권한이 없는 네이티브 채팅에 사용됩니다.",
|
||||
"contextWindow": "이 모델 구성의 기본 컨텍스트 예산을 선택합니다."
|
||||
"contextWindow": "이 모델 구성의 기본 컨텍스트 예산을 선택합니다.",
|
||||
"transcription": "마이크 입력을 보내기 전에 텍스트로 변환합니다. 채널 음성 메시지도 같은 설정을 사용합니다.",
|
||||
"transcriptionProvider": "Providers에 저장된 해당 제공자의 인증 정보를 사용합니다.",
|
||||
"transcriptionProviderStatus": "API 키는 transcription 설정이 아니라 providers 아래에 유지됩니다.",
|
||||
"transcriptionModel": "제공자가 사용자 지정 모델 ID를 요구하지 않으면 해석된 기본값을 사용하세요.",
|
||||
"transcriptionLanguage": "en, zh, ja, ko 같은 선택적 ISO-639 힌트입니다."
|
||||
},
|
||||
"values": {
|
||||
"light": "라이트",
|
||||
@@ -283,6 +296,7 @@
|
||||
"totalProviders": "{{count}}개 사용 가능",
|
||||
"webSearch": "웹 검색",
|
||||
"imageGeneration": "이미지 생성",
|
||||
"voiceInput": "음성 입력",
|
||||
"workspace": "작업공간"
|
||||
},
|
||||
"usage": {
|
||||
@@ -486,6 +500,11 @@
|
||||
"rawInstructions": "원본 SKILL.md",
|
||||
"rawInstructionsEmpty": "원본 지침이 없습니다.",
|
||||
"detailDescription": "{{name}} 세부 정보."
|
||||
},
|
||||
"voice": {
|
||||
"selectProvider": "제공자 선택",
|
||||
"configureProvider": "제공자 설정",
|
||||
"languageAuto": "자동"
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
@@ -678,6 +697,21 @@
|
||||
"deepResearch": "심층 조사",
|
||||
"voice": "음성 입력"
|
||||
},
|
||||
"voice": {
|
||||
"hint": "클릭해 받아쓰거나 길게 누르기",
|
||||
"stop": "녹음 중지",
|
||||
"transcribing": "변환 중...",
|
||||
"recordingStatus": "녹음 중 {{time}}"
|
||||
},
|
||||
"voiceErrors": {
|
||||
"unsupported": "이 브라우저는 음성 입력을 지원하지 않습니다.",
|
||||
"permission": "마이크 권한이 필요합니다.",
|
||||
"notConfigured": "먼저 음성 변환 제공업체를 설정하세요.",
|
||||
"tooLong": "녹음 시간이 너무 깁니다.",
|
||||
"tooShort": "음성을 녹음하려면 조금 더 길게 눌러 주세요.",
|
||||
"noInput": "마이크 입력이 감지되지 않았습니다.",
|
||||
"failed": "오디오를 변환하지 못했습니다."
|
||||
},
|
||||
"slash": {
|
||||
"ariaLabel": "슬래시 명령",
|
||||
"label": "명령",
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
"models": "Mô hình",
|
||||
"providers": "Nhà cung cấp",
|
||||
"image": "Hình ảnh",
|
||||
"voice": "Giọng nói",
|
||||
"browser": "Trang web",
|
||||
"runtime": "Hệ thống",
|
||||
"advanced": "Bảo mật",
|
||||
@@ -99,7 +100,8 @@
|
||||
"mcp": "Dịch vụ MCP",
|
||||
"apps": "Ứng dụng",
|
||||
"nativeHost": "Host gốc",
|
||||
"hostSafety": "An toàn ứng dụng"
|
||||
"hostSafety": "An toàn ứng dụng",
|
||||
"voiceInput": "Nhap giong noi"
|
||||
},
|
||||
"rows": {
|
||||
"theme": "Chủ đề",
|
||||
@@ -142,7 +144,13 @@
|
||||
"engine": "Bộ máy",
|
||||
"logs": "Nhật ký",
|
||||
"diagnostics": "Chẩn đoán",
|
||||
"contextWindow": "Cửa sổ ngữ cảnh"
|
||||
"contextWindow": "Cửa sổ ngữ cảnh",
|
||||
"transcription": "Phien am",
|
||||
"transcriptionProvider": "Nha cung cap",
|
||||
"transcriptionProviderStatus": "Trang thai nha cung cap",
|
||||
"transcriptionModel": "Mo hinh",
|
||||
"transcriptionLanguage": "Ngon ngu",
|
||||
"voiceLimits": "Gioi han"
|
||||
},
|
||||
"help": {
|
||||
"theme": "Chuyển giữa giao diện sáng và tối.",
|
||||
@@ -181,7 +189,12 @@
|
||||
"diagnostics": "Exporta un pequeño informe de runtime para soporte.",
|
||||
"localServiceAccessNative": "Permite que comandos shell con Full Access alcancen servicios en este Mac.",
|
||||
"webuiDefaultAccessNative": "Usado por chats nativos sin permiso específico de proyecto.",
|
||||
"contextWindow": "Chọn ngân sách ngữ cảnh mặc định cho cấu hình mô hình này."
|
||||
"contextWindow": "Chọn ngân sách ngữ cảnh mặc định cho cấu hình mô hình này.",
|
||||
"transcription": "Phien am dau vao micro truoc khi gui. Tin nhan giong noi tu kenh chat dung cung cai dat.",
|
||||
"transcriptionProvider": "Dung thong tin xac thuc cua nha cung cap tu Providers.",
|
||||
"transcriptionProviderStatus": "API key nam trong providers, khong nam trong cai dat transcription.",
|
||||
"transcriptionModel": "Giu mac dinh da resolve tru khi nha cung cap can id model tuy chinh.",
|
||||
"transcriptionLanguage": "Goi y ISO-639 tuy chon, nhu en, zh, ja hoac ko."
|
||||
},
|
||||
"values": {
|
||||
"light": "Sáng",
|
||||
@@ -283,6 +296,7 @@
|
||||
"totalProviders": "{{count}} khả dụng",
|
||||
"webSearch": "Tìm kiếm web",
|
||||
"imageGeneration": "Tạo hình ảnh",
|
||||
"voiceInput": "Nhập bằng giọng nói",
|
||||
"workspace": "Không gian làm việc"
|
||||
},
|
||||
"usage": {
|
||||
@@ -486,6 +500,11 @@
|
||||
"rawInstructions": "SKILL.md gốc",
|
||||
"rawInstructionsEmpty": "Không có hướng dẫn gốc.",
|
||||
"detailDescription": "Chi tiết cho {{name}}."
|
||||
},
|
||||
"voice": {
|
||||
"selectProvider": "Chon nha cung cap",
|
||||
"configureProvider": "Cau hinh nha cung cap",
|
||||
"languageAuto": "Tu dong"
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
@@ -678,6 +697,21 @@
|
||||
"deepResearch": "Nghiên cứu sâu",
|
||||
"voice": "Nhập bằng giọng nói"
|
||||
},
|
||||
"voice": {
|
||||
"hint": "Bấm để đọc chính tả hoặc nhấn giữ",
|
||||
"stop": "Dừng ghi âm",
|
||||
"transcribing": "Đang chép lời...",
|
||||
"recordingStatus": "Đang ghi {{time}}"
|
||||
},
|
||||
"voiceErrors": {
|
||||
"unsupported": "Trình duyệt này không hỗ trợ nhập bằng giọng nói.",
|
||||
"permission": "Cần quyền truy cập micrô.",
|
||||
"notConfigured": "Hãy cấu hình nhà cung cấp chép lời trước.",
|
||||
"tooLong": "Bản ghi âm quá dài.",
|
||||
"tooShort": "Giữ lâu hơn một chút để ghi âm giọng nói.",
|
||||
"noInput": "Không phát hiện đầu vào micrô.",
|
||||
"failed": "Không thể chép lời âm thanh."
|
||||
},
|
||||
"slash": {
|
||||
"ariaLabel": "Lệnh slash",
|
||||
"label": "lệnh",
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
"models": "模型",
|
||||
"providers": "提供商",
|
||||
"image": "图片",
|
||||
"voice": "语音",
|
||||
"browser": "网页",
|
||||
"cliApps": "CLI 应用",
|
||||
"mcp": "MCP",
|
||||
@@ -99,7 +100,8 @@
|
||||
"capabilities": "能力",
|
||||
"apps": "应用",
|
||||
"nativeHost": "原生宿主",
|
||||
"hostSafety": "应用安全"
|
||||
"hostSafety": "应用安全",
|
||||
"voiceInput": "语音识别"
|
||||
},
|
||||
"models": {
|
||||
"selectModel": "选择模型",
|
||||
@@ -161,7 +163,13 @@
|
||||
"engine": "引擎",
|
||||
"logs": "日志",
|
||||
"diagnostics": "诊断",
|
||||
"contextWindow": "上下文窗口"
|
||||
"contextWindow": "上下文窗口",
|
||||
"transcription": "语音转写",
|
||||
"transcriptionProvider": "提供商",
|
||||
"transcriptionProviderStatus": "提供商状态",
|
||||
"transcriptionModel": "模型",
|
||||
"transcriptionLanguage": "语言",
|
||||
"voiceLimits": "限制"
|
||||
},
|
||||
"help": {
|
||||
"theme": "在浅色和深色外观之间切换。",
|
||||
@@ -200,7 +208,12 @@
|
||||
"diagnostics": "导出一份用于支持排查的小型运行报告。",
|
||||
"localServiceAccessNative": "允许完全访问权限下的 shell 命令访问这台 Mac 上的服务。",
|
||||
"webuiDefaultAccessNative": "用于没有单独项目权限的原生聊天。",
|
||||
"contextWindow": "选择此模型配置的默认上下文预算。"
|
||||
"contextWindow": "选择此模型配置的默认上下文预算。",
|
||||
"transcription": "发送前先把麦克风输入转写到输入框。聊天渠道里的语音消息也使用同一套设置。",
|
||||
"transcriptionProvider": "使用「提供商」中对应提供商的凭据。",
|
||||
"transcriptionProviderStatus": "API Key 仍保存在 providers 里,不写进 transcription 设置。",
|
||||
"transcriptionModel": "除非提供商需要自定义模型 ID,否则保持解析后的默认值即可。",
|
||||
"transcriptionLanguage": "可选 ISO-639 语言提示,例如 en、zh、ja 或 ko。"
|
||||
},
|
||||
"timezone": {
|
||||
"select": "选择时区",
|
||||
@@ -391,6 +404,7 @@
|
||||
"totalProviders": "共 {{count}} 个可用",
|
||||
"webSearch": "网页搜索",
|
||||
"imageGeneration": "图片生成",
|
||||
"voiceInput": "语音识别",
|
||||
"workspace": "工作区"
|
||||
},
|
||||
"usage": {
|
||||
@@ -486,6 +500,11 @@
|
||||
"rawInstructions": "原始 SKILL.md",
|
||||
"rawInstructionsEmpty": "没有原始说明。",
|
||||
"detailDescription": "{{name}} 的详情。"
|
||||
},
|
||||
"voice": {
|
||||
"selectProvider": "选择提供商",
|
||||
"configureProvider": "配置提供商",
|
||||
"languageAuto": "自动"
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
@@ -677,6 +696,21 @@
|
||||
"deepResearch": "深度研究",
|
||||
"voice": "语音输入"
|
||||
},
|
||||
"voice": {
|
||||
"hint": "点击进行听写或长按",
|
||||
"stop": "停止录音",
|
||||
"transcribing": "正在转写...",
|
||||
"recordingStatus": "正在录音 {{time}}"
|
||||
},
|
||||
"voiceErrors": {
|
||||
"unsupported": "当前浏览器不支持语音输入。",
|
||||
"permission": "需要麦克风权限。",
|
||||
"notConfigured": "请先配置转写提供商。",
|
||||
"tooLong": "录音时间太长。",
|
||||
"tooShort": "请稍微多录一会儿。",
|
||||
"noInput": "没有检测到麦克风输入。",
|
||||
"failed": "语音转写失败。"
|
||||
},
|
||||
"slash": {
|
||||
"ariaLabel": "斜杠命令",
|
||||
"label": "命令",
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
"models": "模型",
|
||||
"providers": "提供商",
|
||||
"image": "圖片",
|
||||
"voice": "語音",
|
||||
"browser": "網頁",
|
||||
"runtime": "系統",
|
||||
"advanced": "安全",
|
||||
@@ -99,7 +100,8 @@
|
||||
"mcp": "MCP 服務",
|
||||
"apps": "應用",
|
||||
"nativeHost": "原生宿主",
|
||||
"hostSafety": "App 安全"
|
||||
"hostSafety": "App 安全",
|
||||
"voiceInput": "語音辨識"
|
||||
},
|
||||
"rows": {
|
||||
"theme": "主題",
|
||||
@@ -142,7 +144,13 @@
|
||||
"engine": "引擎",
|
||||
"logs": "日誌",
|
||||
"diagnostics": "診斷",
|
||||
"contextWindow": "上下文視窗"
|
||||
"contextWindow": "上下文視窗",
|
||||
"transcription": "語音轉寫",
|
||||
"transcriptionProvider": "提供商",
|
||||
"transcriptionProviderStatus": "提供商狀態",
|
||||
"transcriptionModel": "模型",
|
||||
"transcriptionLanguage": "語言",
|
||||
"voiceLimits": "限制"
|
||||
},
|
||||
"help": {
|
||||
"theme": "在淺色與深色外觀之間切換。",
|
||||
@@ -181,7 +189,12 @@
|
||||
"diagnostics": "匯出一份用於支援排查的小型執行報告。",
|
||||
"localServiceAccessNative": "允許完全訪問權限下的 shell 命令訪問這台 Mac 上的服務。",
|
||||
"webuiDefaultAccessNative": "用於沒有單獨專案權限的原生聊天。",
|
||||
"contextWindow": "選擇此模型配置的預設上下文預算。"
|
||||
"contextWindow": "選擇此模型配置的預設上下文預算。",
|
||||
"transcription": "送出前先把麥克風輸入轉寫到輸入框。聊天渠道的語音訊息也使用同一組設定。",
|
||||
"transcriptionProvider": "使用「提供商」中對應提供商的憑證。",
|
||||
"transcriptionProviderStatus": "API Key 仍保存在 providers 裡,不寫進 transcription 設定。",
|
||||
"transcriptionModel": "除非提供商需要自訂模型 ID,否則保持解析後的預設值即可。",
|
||||
"transcriptionLanguage": "可選 ISO-639 語言提示,例如 en、zh、ja 或 ko。"
|
||||
},
|
||||
"values": {
|
||||
"light": "淺色",
|
||||
@@ -283,6 +296,7 @@
|
||||
"totalProviders": "共 {{count}} 個可用",
|
||||
"webSearch": "網頁搜尋",
|
||||
"imageGeneration": "圖片生成",
|
||||
"voiceInput": "語音辨識",
|
||||
"workspace": "工作區"
|
||||
},
|
||||
"usage": {
|
||||
@@ -486,6 +500,11 @@
|
||||
"rawInstructions": "原始 SKILL.md",
|
||||
"rawInstructionsEmpty": "沒有原始說明。",
|
||||
"detailDescription": "{{name}} 的詳細資訊。"
|
||||
},
|
||||
"voice": {
|
||||
"selectProvider": "選擇提供商",
|
||||
"configureProvider": "設定提供商",
|
||||
"languageAuto": "自動"
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
@@ -678,6 +697,21 @@
|
||||
"deepResearch": "深度研究",
|
||||
"voice": "語音輸入"
|
||||
},
|
||||
"voice": {
|
||||
"hint": "點擊進行聽寫或長按",
|
||||
"stop": "停止錄音",
|
||||
"transcribing": "正在轉寫...",
|
||||
"recordingStatus": "正在錄音 {{time}}"
|
||||
},
|
||||
"voiceErrors": {
|
||||
"unsupported": "目前瀏覽器不支援語音輸入。",
|
||||
"permission": "需要麥克風權限。",
|
||||
"notConfigured": "請先設定轉寫提供商。",
|
||||
"tooLong": "錄音時間太長。",
|
||||
"tooShort": "請稍微多錄一會兒。",
|
||||
"noInput": "沒有偵測到麥克風輸入。",
|
||||
"failed": "語音轉寫失敗。"
|
||||
},
|
||||
"slash": {
|
||||
"ariaLabel": "斜線命令",
|
||||
"label": "命令",
|
||||
|
||||
Reference in New Issue
Block a user