18160c22f7
Pairs a phone to the desktop by QR code, then sends recordings over an iroh connection for Sona to transcribe, streaming the transcript back. The phone side is a PWA deployed alongside the website at /vibe/phone/. Browsers cannot hole-punch, so its traffic is relayed — end-to-end encrypted throughout, so the relay only ever sees ciphertext. Desktop: - iroh endpoint behind the `vibe/handoff/0` ALPN, off by default and restored on startup only when the user previously enabled it - pairing token compared in constant time; identity persisted so the QR survives restarts - incoming audio saved to ~/Documents/Vibe like any other recording, and written to the transcripts store so it lands in Recents - Settings -> Phone section with a self-contained QR encoder, reachable from a phone icon in the sidebar footer - launch-at-startup setting via tauri-plugin-autostart, default off Phone PWA: - React + Vite on the desktop app's UI stack - language list and model come from the desktop over the wire, never hardcoded, so the picker always matches the loaded model - MediaRecorder mime negotiation for Safari, screen wake lock, and an install-to-home-screen hint Analytics cover adoption and success rate without sending transcripts, filenames, paths, or the chosen language. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
483 lines
25 KiB
JSON
483 lines
25 KiB
JSON
{
|
|
"aborting": "Abortando",
|
|
"advanced": "Avanzado",
|
|
"appTitle": "Vibe",
|
|
"askForDownloadModel": "¿Quieres descargar el modelo desde el sitio web?",
|
|
"askForInstallYtdlpMessage": "¿Quieres instalar ytdlp, que se utiliza para descargar audio de sitios web populares?",
|
|
"askForInstallYtdlpTitle": "Instalar ytdlp",
|
|
"askForRelaunchBody": "¿Quieres reiniciar la aplicación ahora?",
|
|
"askForRelaunchTitle": "Actualización finalizada",
|
|
"askForUpdateBody": "¿Quieres actualizar Vibe a la versión {version}?",
|
|
"askForUpdateTitle": "Confirmar actualización",
|
|
"askForUpdateYtdlpMessage": "Se ha encontrado una nueva versión de ytdlp. \n¿Quieres actualizarlo?",
|
|
"askForUpdateYtdlpTitle": "Actualizar ytdlp",
|
|
"back": "Atrás",
|
|
"cancel": "Cancelar",
|
|
"cancelRelaunch": "Después",
|
|
"cancelUpdate": "Después",
|
|
"changeFile": "Cambiar archivo",
|
|
"changeFiles": "Cambiar archivos",
|
|
"changeModelsFolder": "Cambiar el directorio de los modelos",
|
|
"characters": "caracteres",
|
|
"checkError": "La verificación falló",
|
|
"checkLoading": "Verificando",
|
|
"checkSuccess": "Probado con éxito",
|
|
"checkYtdlpUpdates": "Consultar actualizaciones de ytdlp",
|
|
"modelMemory": "Memoria del modelo",
|
|
"minutes": "minutos",
|
|
"unloadModelAfterInactivity": "Descargar el modelo tras inactividad",
|
|
"unloadModelAfterInactivityInfo": "Libera la memoria del modelo y la VRAM cuando no hay actividad de transcripción. La siguiente transcripción puede tardar más mientras se recarga el modelo.",
|
|
"zeroMeansNever": "Establece 0 para mantener el modelo cargado.",
|
|
"confirmExit": "¿Quieres salir? \nSe perderán los cambios no guardados.",
|
|
"confirmRelaunch": "Reiniciar ahora",
|
|
"confirmUpdate": "Actualizar ahora",
|
|
"copied": "¡Copiado!",
|
|
"copy": "Copiar",
|
|
"copyLogs": "Copiar registros",
|
|
"crashedRecently": " Como la aplicación se ha bloqueado hace poco, la GPU se ha deshabilitado. \nPuedes habilitarla en la configuración.",
|
|
"customFfmpegCommand": "Comando personalizado",
|
|
"customize": "Personalizar",
|
|
"customizeInfo": "Descarga cualquier modelo compatible en formato ggml o gguf (con la extensión del archivo '.bin'). Transfiérelo al directorio de los modelos y luego selecciónalo en el menú desplegable. No es necesario que reinicies 🌟",
|
|
"dark": "Oscuro",
|
|
"diarizeThreshold": "Umbral de reconocimiento del hablante",
|
|
"discordCommunity": "Comunidad de Discord",
|
|
"downloadFile": "Descargar y transcribir",
|
|
"downloadModel": "Descargar modelo",
|
|
"downloadModelsLink": "Descargar modelos",
|
|
"downloading": "Descargando... {progress}%",
|
|
"downloadingAiModels": "Descargando modelos de IA...",
|
|
"downloadingModel": "Descargando modelo...",
|
|
"noModelsInstalled": "No hay modelos instalados",
|
|
"downloadDefaultModelDescription": "Descarga el modelo predeterminado para empezar a transcribir.",
|
|
"downloadingYtdlp": "Descargando ytdlp",
|
|
"enableLogs": "Habilitar registros",
|
|
"error": "Error",
|
|
"errorTitle": "Error",
|
|
"ffmpegOptions": "Opciones de FFMPEG",
|
|
"files": "Archivos",
|
|
"findHere": "Encontrar aquí",
|
|
"focusWindowOnFinish": "Poner foco en la ventana",
|
|
"format": "Formato",
|
|
"formats": "Formatos",
|
|
"general": "General",
|
|
"gpuDevice": "Número de la GPU",
|
|
"highGpuPerformance": "Establecer el rendimiento gráfico a 'alto'",
|
|
"iPreferManualSetup": "Prefiero descargar manualmente",
|
|
"includeSubFolders": "Incluir subcarpetas",
|
|
"infoCancelDownload": "Puedes cancelar, y descargar el modelo a mano más tarde.",
|
|
"infoDiarizeThreshold": "Umbral de reconocimiento del hablante o considerarlo como no detectado",
|
|
"infoEnableLogs": "Gardar archivo de log. Reinicia la aplicación una vez habilitado.",
|
|
"infoGpuDevice": "Selecciona el dispositivo GPU que se utilizará para la transcripción. Introduce el número del dispositivo GPU, empezando desde 0. Por ejemplo, si tienes dos GPU, elige 0 o 1.",
|
|
"infoHighGpuPerformance": "Mejora el rendimiento gráfico de Vibe, pero consumirá más recursos del sistema.",
|
|
"infoLlmApiKey": "La clave API del sitio web del modelo de IA.",
|
|
"infoLlmPrompt": "Prompt para el modelo de IA. Debe incluir el patrón %s, que será reemplazado durante la transcripción.",
|
|
"infoLlmSummarize": "Resume con IA. Requiere clave API. Una vez que la transcripción se complete, será enviada a la API de Claude junto con el prompt elegido y tras unos segundos, se mostrará la respuesta de la IA en Vibe en lugar de la transcripción. ¡También funciona cuando se transcriben múltiples archivos!",
|
|
"infoManualDownload": "Se requiere de una conexión a internet para descargar el modelo de IA",
|
|
"infoMaxSentenceLen": "Cuántos caracteres habrá en cada frase. Funciona solo si has activado la marca de tiempo.",
|
|
"infoMaxSpeakers": "¿Cuántas personas hablan en el archivo? Se usa para lograr un reconocimiento más preciso",
|
|
"infoMaxTextCtx": "Máxima cantidad de tókenes de contexto del texto anterior, a utilizar como prompt para el decodificador",
|
|
"infoMaxTokens": "Máximo de tókenes para el modelo de IA. Cada tóken se considera normalmente como una sola palabra. Esto puede ahorrarte el envío de demasiados datos, que tienen un coste. Se recomienda limitarlo también en el sitio web.",
|
|
"infoNormalizeLoudness": "Habilita esta opción para una mejor precisión de la transcripción. \nPuede suponer hasta 8 minutos más por cada hora de audio.",
|
|
"infoPrompt": "Mejora las transcripciones escribiendo las palabras esperadas.",
|
|
"infoRecognizeSpeakers": "Detectar el hablante en cada frase y añadirlo",
|
|
"infoTemperature": "Valores más altos producen palabras menos habituales; los valores más bajos utilizan palabras más comunes. Suele fijarse en torno a 0,4 para obtener un resultado equilibrado.",
|
|
"infoThreads": "Aumenta el uso de CPU para una decodificación más rápida; equilibra la velocidad con el uso de recursos. Recomendado: 4",
|
|
"infoTranslateToEnglish": "Traduce la transcripción al inglés desde cualquier idioma activando esta opción",
|
|
"infoUseWordTimestamps": "Transcripción con marcas de tiempo de palabras en lugar de marcas de tiempo de frases. Útil en formato JSON. Se desactiva cuando el reconocimiento del hablante está activado.",
|
|
"installNow": "Instalar ahora",
|
|
"invalidLlmPrompt": "Prompt no válido. Debe incluir el patrón '%s', que será reemplazado con la transcripción.",
|
|
"language": "Idioma",
|
|
"later": "Más tarde",
|
|
"leftover": "sobrante",
|
|
"light": "Claro",
|
|
"llmApiKey": "Clave API de Claude",
|
|
"llmCurrentCost": "Costes de uso",
|
|
"llmModel": "Modelo",
|
|
"llmPlatform": "Plataforma",
|
|
"llmPrompt": "Prompt",
|
|
"logsFolder": "Directorio de registros",
|
|
"maxSentenceLen": "Máxima longitud de enunciado",
|
|
"maxSpeakers": "Hablantes máximos",
|
|
"maxTextCtx": "Contexto máximo",
|
|
"maxTokens": "Máximo de tókenes",
|
|
"microphone": "Micrófono",
|
|
"modalClose": "Cerrar",
|
|
"modalErrorBody": "¡Ha ocurrido un error!",
|
|
"modeText": "Texto",
|
|
"modelOptions": "Opciones del modelo",
|
|
"modelsFolder": "Directorio de los modelos",
|
|
"moreOptions": "Más opciones",
|
|
"noConnection": "Sin conexión",
|
|
"noRecord": "Ninguno",
|
|
"normalizeLoudness": "Normalizar el volumen",
|
|
"ollamaBaseUrl": "URL de Ollama",
|
|
"others": "Otros",
|
|
"pasteModelLink": "Pegar enlace del modelo",
|
|
"placeTranscriptNextToFiles": "Colocar la transcripción junto a los archivos",
|
|
"playSoundOnFinish": "Reproducir sonido",
|
|
"pleaseEnableWordTimestamps": "¡Habilita las marcas de tiempo por palabra si quieres usar esta opción!\n\n¡Asegúrate también de desactivarla una vez hayas terminado, o restablece las opciones del modelo!",
|
|
"popular": "Popular",
|
|
"presetForSubtitles": "Creación de subtítulos",
|
|
"presets": "Configuración rápida",
|
|
"printTooltip": "Imprimir",
|
|
"processWithLlm": "Resumir",
|
|
"projectLink": "Acerca de Vibe",
|
|
"prompt": "Prompt",
|
|
"recognizeSpeakers": "Reconocer hablantes",
|
|
"record": "Grabar",
|
|
"replaceAll": "Reemplazar todos",
|
|
"reportIssue": "Informar de un problema",
|
|
"resetApp": "Reiniciar Vibe",
|
|
"resetAskDialog": "¿Seguro que quieres reiniciar Vibe? Se borrará la información de la aplicación, incluidos los archivos de los modelos.",
|
|
"resetOptions": "Restaurar opciones predeterminadas",
|
|
"rightAlignment": "Alineación derecha",
|
|
"runLlmCheck": "Verificar",
|
|
"saveRecordInDocumentsFolder": "Guardar el archivo de audio en la carpeta de documentos",
|
|
"saveSuccess": "¡Guardado correcto!",
|
|
"saveTranscript": "Guardar transcripción",
|
|
"segmentsTab": "Transcripción",
|
|
"selectFile": "Seleccionar archivo",
|
|
"selectFolder": "Seleccionar carpeta",
|
|
"selectLanguage": "Seleccionar idioma",
|
|
"selectModel": "Seleccionar modelo",
|
|
"selectTheme": "Seleccionar tema",
|
|
"setMonthlySpendLimit": "Establecer límite de gasto mensual",
|
|
"settings": "Configuración",
|
|
"skipIfTranscriptExists": "Omitir si ya existe la transcripción",
|
|
"speakerPrefix": "Hablante",
|
|
"speakerRecognition": "Reconocimiento del hablante",
|
|
"speakers": "Hablantes",
|
|
"startRecord": "Guardar y transcribir",
|
|
"stopAndTranscribe": "Detener guardado",
|
|
"successAction": "La operación se realizó correctamente.",
|
|
"summarizeLoading": "Resumiendo",
|
|
"summarizeSuccess": "Resumido",
|
|
"summaryTab": "Resumen",
|
|
"supportTheProject": "Apoyar a Vibe",
|
|
"tempFolder": "Archivos temporales",
|
|
"temperature": "Temperatura",
|
|
"theme": "Tema",
|
|
"thisHappensOnce": "¡Esto solo ocurre una vez! 🎉",
|
|
"threads": "Procesos",
|
|
"transcribe": "Transcribir",
|
|
"transcribeFolder": "Carpeta de transcripción",
|
|
"transcribeTook": "Transcripción completada en {total} segundos.",
|
|
"transcribed": "Transcrito",
|
|
"transcribing": "Transcribiendo...",
|
|
"transcriptWillDisplayedShortly": "La transcripción se mostrará aquí en breve...",
|
|
"translateToEnglish": "Traducir al inglés",
|
|
"tryAgain": "Intentar de nuevo",
|
|
"updateNow": "Actualizar ahora",
|
|
"updateVersion": "Actualizar Vibe",
|
|
"updatingModalBody": "Actualizando Vibe a la versión {version}",
|
|
"updatingModalTitle": "Actualizando...",
|
|
"useGpu": "Usar GPU",
|
|
"useWordTimestamps": "Marcas de tiempo por cada palabra",
|
|
"whenCompletingTranscription": "Cuando se complete la transcripción",
|
|
"ytdlpOptions": "Opciones de transcripción de URLs",
|
|
"ytdlpOptionsInfo": "Vibe utiliza ytdlp para la transcripción de URLs.",
|
|
"languageafrikaans": "Afrikáans",
|
|
"languagealbanian": "Albanés",
|
|
"languageamharic": "Amhárico",
|
|
"languagearabic": "Árabe",
|
|
"languagearmenian": "Armenio",
|
|
"languageassamese": "Asamés",
|
|
"languageauto": "Detección Automática ✨",
|
|
"languageazerbaijani": "Azerbaiyano",
|
|
"languagebashkir": "Baskir",
|
|
"languagebasque": "Euskera",
|
|
"languagebelarusian": "Bielorruso",
|
|
"languagebengali": "Bengalí",
|
|
"languagebosnian": "Bosnio",
|
|
"languagebreton": "Bretón",
|
|
"languagebulgarian": "Búlgaro",
|
|
"languagecatalan": "Catalán",
|
|
"languagechinese": "Chino",
|
|
"languagecroatian": "Croata",
|
|
"languageczech": "Checo",
|
|
"languagedanish": "Danés",
|
|
"languagedutch": "Neerlandés",
|
|
"languageenglish": "Inglés",
|
|
"languageestonian": "Estonio",
|
|
"languagefaroese": "Feroés",
|
|
"languagefinnish": "Finés",
|
|
"languagefrench": "Francés",
|
|
"languagegalician": "Galego",
|
|
"languagegeorgian": "Georgiano",
|
|
"languagegerman": "Alemán",
|
|
"languagegreek": "Griego",
|
|
"languagegujarati": "Gujarati",
|
|
"languagehaitiancreole": "Criollo Haitiano",
|
|
"languagehausa": "Hausa",
|
|
"languagehawaiian": "Hawaiano",
|
|
"languagehebrew": "Hebreo",
|
|
"languagehindi": "Hindi",
|
|
"languagehungarian": "Húngaro",
|
|
"languageicelandic": "Islandés",
|
|
"languageindonesian": "Indonesio",
|
|
"languageitalian": "Italiano",
|
|
"languagejapanese": "Japonés",
|
|
"languagejavanese": "Javanés",
|
|
"languagekannada": "Kannada",
|
|
"languagekazakh": "Kazajo",
|
|
"languagekhmer": "Jemer",
|
|
"languagekorean": "Coreano",
|
|
"languagelao": "Lao",
|
|
"languagelatin": "Latín",
|
|
"languagelatvian": "Letón",
|
|
"languagelingala": "Lingala",
|
|
"languagelithuanian": "Lituano",
|
|
"languageluxembourgish": "Luxemburgués",
|
|
"languagemacedonian": "Macedonio",
|
|
"languagemalagasy": "Malgache",
|
|
"languagemalay": "Malayo",
|
|
"languagemalayalam": "Malayalam",
|
|
"languagemaltese": "Maltés",
|
|
"languagemaori": "Maorí",
|
|
"languagemarathi": "Marathi",
|
|
"languagemongolian": "Mongol",
|
|
"languagemyanmar": "Birmano",
|
|
"languagenepali": "Nepalí",
|
|
"languagenorwegian": "Noruego",
|
|
"languagenynorsk": "Nynorsk",
|
|
"languageoccitan": "Occitano",
|
|
"languagepashto": "Pastún",
|
|
"languagepersian": "Persa",
|
|
"languagepolish": "Polaco",
|
|
"languageportuguese": "Portugués",
|
|
"languagepunjabi": "Punjabí",
|
|
"languageromanian": "Rumano",
|
|
"languagerussian": "Ruso",
|
|
"languagesanskrit": "Sánscrito",
|
|
"languageserbian": "Serbio",
|
|
"languageshona": "Shona",
|
|
"languagesindhi": "Sindhi",
|
|
"languagesinhala": "Cingalés",
|
|
"languageslovak": "Eslovaco",
|
|
"languageslovenian": "Esloveno",
|
|
"languagesomali": "Somalí",
|
|
"languagespanish": "Español",
|
|
"languagesundanese": "Sundanés",
|
|
"languageswahili": "Suajili",
|
|
"languageswedish": "Sueco",
|
|
"languagetagalog": "Tagalo",
|
|
"languagetajik": "Tayiko",
|
|
"languagetamil": "Tamil",
|
|
"languagetatar": "Tártaro",
|
|
"languagetelugu": "Telugu",
|
|
"languagethai": "Tailandés",
|
|
"languagetibetan": "Tibetano",
|
|
"languageturkish": "Turco",
|
|
"languageturkmen": "Turcomano",
|
|
"languageukrainian": "Ucraniano",
|
|
"languageurdu": "Urdu",
|
|
"languageuzbek": "Uzbeko",
|
|
"languagevietnamese": "Vietnamita",
|
|
"languagewelsh": "Galés",
|
|
"languageyiddish": "Yídish",
|
|
"languageyoruba": "Yoruba",
|
|
"analyticsEnabled": "Analíticas anónimas",
|
|
"analyticsDisabledWarning": "Recomendamos encarecidamente mantenerlo activado para poder detectar y corregir problemas más rápido.",
|
|
"apiAgentsDescription": "Ejecuta transcripciones desde scripts, herramientas de línea de comandos o agentes de IA usando la API local de Vibe.",
|
|
"apiAndAgents": "API y agentes",
|
|
"apiServerOff": "El servidor de la API está apagado",
|
|
"apiServerRunning": "El servidor de la API está en marcha",
|
|
"apiStarting": "Iniciando…",
|
|
"apiStopping": "Deteniendo…",
|
|
"copyAgentSkill": "Copiar instrucciones de Agent Skill",
|
|
"copyCurlExample": "Copiar ejemplo de cURL",
|
|
"diarizeMaxSpeakersNote": "Admite la detección de hasta 4 hablantes.",
|
|
"diarization": "Diarización",
|
|
"downloadComplete": "Descarga completada",
|
|
"downloadDiarizeModel": "La diarización de hablantes requiere un modelo (~25 MB). ¿Descargarlo ahora?",
|
|
"downloadingDiarizeModel": "Descargando modelo de diarización...",
|
|
"enableDiarization": "Activar diarización de hablantes",
|
|
"enabled": "Activado",
|
|
"disabled": "Desactivado",
|
|
"fineTuning": "Ajuste fino",
|
|
"gpuDevicePlaceholder": "Automático (dejar vacío)",
|
|
"globalDictation": "Dictado global",
|
|
"globalDictationEnable": "Activar",
|
|
"globalDictationPromo": "Pulsa un atajo desde cualquier sitio para transcribir al instante. Funciona mientras Vibe se ejecuta en segundo plano.",
|
|
"globalHotkey": "Atajo global",
|
|
"globalHotkeyEnabled": "Activar atajo global",
|
|
"globalHotkeyShortcut": "Atajo",
|
|
"globalHotkeyDescription": "Mantén pulsado el atajo para grabar y suéltalo para transcribir.",
|
|
"hotkeyActivationMode": "Modo de activación",
|
|
"hotkeyActivationPushToTalk": "Mantener para hablar",
|
|
"hotkeyActivationPushToTalkDescription": "Mantén pulsado el atajo para grabar y suéltalo para transcribir.",
|
|
"hotkeyActivationToggle": "Pulsar para alternar",
|
|
"hotkeyActivationToggleDescription": "Pulsa una vez para empezar a grabar y otra vez para parar y transcribir.",
|
|
"dictationIndicatorSetting": "Mostrar indicador de estado",
|
|
"dictationIndicatorSettingInfo": "Muestra un pequeño indicador flotante de Vibe mientras el dictado global escucha y transcribe.",
|
|
"dictationIndicatorListening": "Escuchando…",
|
|
"dictationIndicatorTranscribing": "Transcribiendo…",
|
|
"dictationIndicatorCopied": "Copiado",
|
|
"dictationIndicatorInserted": "Insertado",
|
|
"dictationIndicatorError": "El dictado ha fallado",
|
|
"normalizeHotkeyOutput": "Normalizar la salida",
|
|
"normalizeHotkeyOutputInfo": "Convierte los saltos de línea y los espacios de más en espacios simples, de modo que el resultado es una única línea de texto limpia en lugar de varias.",
|
|
"globalDictationPromoShort": "Prueba el dictado global",
|
|
"hotkeyOutputMode": "Modo de salida",
|
|
"hotkeyOutputClipboard": "Copiar al portapapeles",
|
|
"hotkeyOutputType": "Escribir en el cursor",
|
|
"hotkeyTranscriptionCopied": "Transcripción copiada al portapapeles",
|
|
"infoDiarization": "Detecta y etiqueta a los distintos hablantes del audio. Requiere descargar un modelo aparte.",
|
|
"recentlyUsed": "Usados recientemente",
|
|
"orSelectFolder": "o una carpeta entera",
|
|
"privacy": "Privacidad",
|
|
"privacyPolicy": "Política de privacidad",
|
|
"promptMustContainPlaceholder": "El prompt debe contener %s como marcador de posición de la transcripción",
|
|
"promptTemplateMeetingNotes": "Notas de reunión",
|
|
"promptTemplateTranslate": "Traducir",
|
|
"promptTemplateRewrite": "Reescribir como artículo",
|
|
"promptTemplateTldr": "Resumen breve",
|
|
"resummarize": "Volver a resumir",
|
|
"recordingName": "Nombre de la grabación",
|
|
"recordingNamePlaceholder": "p. ej. Reunión de equipo",
|
|
"recordingSavePath": "Ruta de guardado de grabaciones",
|
|
"recordingSavePathInfo": "Elige dónde guardar los archivos de audio grabados. Por defecto es Documentos/Vibe.",
|
|
"changeRecordingPath": "Cambiar",
|
|
"resetToDefault": "Restablecer",
|
|
"setup": "Configuración",
|
|
"speakerTiming": "Hablantes y tiempos",
|
|
"start": "Iniciar",
|
|
"stop": "Detener",
|
|
"supportsFormats": "Admite archivos de audio y vídeo",
|
|
"swaggerDocs": "Documentación Swagger",
|
|
"targetLanguage": "Idioma de destino",
|
|
"gpuFallbackToCpu": "La GPU no pudo cargar el modelo. Se usará la CPU.",
|
|
"avx2NotSupported": "Esta versión de Vibe no es compatible con tu CPU. Usa un equipo más moderno.",
|
|
"noModelLoadedBatchStopped": "Modelo no cargado. Deteniendo el lote.",
|
|
"noModelSelected": "Selecciona un modelo en Ajustes para empezar",
|
|
"transcription": "Transcripción",
|
|
"batch": "Lote",
|
|
"nowPlaying": "Reproduciendo ahora",
|
|
"audioLevel": "Nivel de audio",
|
|
"auto": "Automático",
|
|
"pasteApiKey": "Pega aquí tu clave de API",
|
|
"baseUrl": "URL base",
|
|
"apiKey": "Clave de API",
|
|
"optionalLocalServerKey": "sk-... (opcional para servidores locales)",
|
|
"stableTimestampsInfo": "Usa decodificación por segmentos con VAD para ajustar mejor los tiempos de los subtítulos. Es unas 4 veces más lento; ideal para películas y transcripciones largas.",
|
|
"stableTimestampsSlowNote": "Marcas de tiempo muy precisas, pero unas 4 veces más lentas.",
|
|
"enableStableTimestamps": "Activar marcas de tiempo estables",
|
|
"translateWhisperModelNote": "Solo Whisper medium/large; no v3 Turbo.",
|
|
"samplingStrategyInfo": "Greedy frente a Beam Search: por defecto se usa Beam Search (tamaño 5, paciencia -1), que evalúa 5 secuencias posibles en cada paso para obtener resultados más precisos, aunque es más lento. Greedy, en cambio, elige el mejor token entre los 5 principales en cada paso, por lo que es más rápido pero puede ser menos preciso.",
|
|
"samplingStrategy": "Estrategia de muestreo",
|
|
"greedyInfo": "Candidatos principales en modo Greedy (por defecto: 5): más alto = más precisión, más lento.",
|
|
"beamInfo": "Rutas exploradas en Beam Search (por defecto: 5): más alto = más precisión, más lento.",
|
|
"bestOf": "Mejor de",
|
|
"beamSize": "Tamaño del haz",
|
|
"stableTimestampsConfirm": "Las marcas de tiempo estables requieren un modelo VAD (~1 MB). ¿Descargarlo ahora?",
|
|
"stableTimestamps": "Marcas de tiempo estables",
|
|
"downloadingVadModel": "Descargando modelo VAD...",
|
|
"loading": "Cargando...",
|
|
"agentInstructionsCopied": "Instrucciones de Agent Skill copiadas al portapapeles",
|
|
"localApiUnreachable": "No se ha podido conectar con la API local",
|
|
"permissionAudioRecording": "Activa la grabación de audio del sistema en los Ajustes del sistema y vuelve a intentarlo.",
|
|
"rename": "Renombrar",
|
|
"modelName": "Nombre del modelo",
|
|
"save": "Guardar",
|
|
"showInFolder": "Mostrar en la carpeta",
|
|
"newTranscription": "Nueva transcripción",
|
|
"recents": "Recientes",
|
|
"noRecentTranscripts": "Las transcripciones que crees aparecerán aquí",
|
|
"noMatches": "Sin resultados",
|
|
"searchRecents": "Buscar en recientes",
|
|
"searchTranscript": "Buscar en la transcripción",
|
|
"transcriptName": "Nombre de la transcripción",
|
|
"transcriptActions": "Acciones de la transcripción",
|
|
"reTranscribe": "Volver a transcribir",
|
|
"delete": "Eliminar",
|
|
"deleteTranscript": "Eliminar transcripción",
|
|
"deleteTranscriptBody": "¿Eliminar “{name}”? Se borrarán la transcripción y su copia del audio.",
|
|
"resizeSidebar": "Redimensionar la barra lateral",
|
|
"toggleRecents": "Mostrar u ocultar recientes",
|
|
"updateAvailableOpenRecents": "Actualización disponible: abre recientes",
|
|
"justNow": "ahora mismo",
|
|
"minutesAgo": "hace {minutes} min",
|
|
"hoursAgo": "hace {hours} h",
|
|
"daysAgo": "hace {days} d",
|
|
"dropFilesHere": "Arrastra aquí audio, vídeo o una carpeta",
|
|
"orClickToBrowse": "o haz clic para elegir tus archivos",
|
|
"dropToAddToQueue": "Suelta para añadir a la cola",
|
|
"pasteMediaLink": "Pega un enlace de vídeo o audio",
|
|
"worksWith": "Funciona con",
|
|
"moreSources": "+1000 más",
|
|
"fromFile": "Archivo",
|
|
"fromLink": "Desde enlace",
|
|
"newSession": "Nueva",
|
|
"editLine": "Editar línea",
|
|
"noMatchingLines": "No hay líneas coincidentes.",
|
|
"play": "Reproducir",
|
|
"pause": "Pausar",
|
|
"seek": "Buscar posición",
|
|
"couldNotOpenFolder": "No se ha podido abrir la carpeta contenedora",
|
|
"audioCopyUnavailable": "Aquí no se puede guardar una copia del audio",
|
|
"saveTranscriptsToDocuments": "Guardar transcripciones en Documentos",
|
|
"saveTranscriptsToDocumentsInfo": "Guarda una copia local de cada transcripción para poder abrirla más tarde",
|
|
"decoding": "Decodificación",
|
|
"promptPlaceholder": "Nombres, jerga o grafías que esperas oír en el audio; por ejemplo: Vibe, Tauri, Whisper",
|
|
"developer": "Desarrollo",
|
|
"fakeUpdateAvailable": "Simular actualización disponible",
|
|
"fakeUpdateAvailableInfo": "Muestra el punto y el botón de actualización como si hubiera una versión nueva esperando.",
|
|
"connection": "Conexión",
|
|
"llmPromptPlaceholder": "Resume la siguiente transcripción en puntos claros:%s",
|
|
"viewOptions": "Opciones de vista",
|
|
"textSize": "Tamaño del texto",
|
|
"textSizeSmall": "Pequeño",
|
|
"textSizeMedium": "Mediano",
|
|
"textSizeLarge": "Grande",
|
|
"showTimestamps": "Mostrar marcas de tiempo",
|
|
"showSpeakers": "Mostrar hablantes",
|
|
"playFromHere": "Reproducir desde aquí",
|
|
"jumpToPlaying": "Ir a lo que se reproduce",
|
|
"textDirection": "Dirección del texto",
|
|
"pressShortcutKeys": "Pulsa las teclas…",
|
|
"shortcutNeedsModifier": "Mantén también ⌘, ⌃, ⌥ o ⇧",
|
|
"changeShortcut": "Cambiar el atajo",
|
|
"inProgress": "En curso",
|
|
"queued": "En cola",
|
|
"never": "Nunca",
|
|
"configFile": "Archivo de configuración",
|
|
"closeToTray": "Mantener en la bandeja del sistema",
|
|
"closeToTrayInfo": "Al cerrar la ventana, Vibe sigue ejecutándose en la bandeja del sistema, así que el dictado global continúa funcionando. Puedes salir desde el menú de la bandeja.",
|
|
"trayShow": "Abrir Vibe",
|
|
"trayHide": "Ocultar Vibe",
|
|
"trayQuit": "Salir de Vibe",
|
|
"launchAtStartup": "Abrir al iniciar sesión",
|
|
"launchAtStartupInfo": "Abre Vibe automáticamente cuando inicias sesión en el ordenador.",
|
|
"couldNotEnableLaunchAtStartup": "No se ha podido activar la apertura al iniciar sesión: {error}",
|
|
"couldNotDisableLaunchAtStartup": "No se ha podido desactivar la apertura al iniciar sesión: {error}",
|
|
"phone": "Móvil",
|
|
"phoneHandoff": "Transferencia desde el móvil",
|
|
"phoneHandoffInfo": "Graba en el móvil y deja que este ordenador haga la transcripción: el texto vuelve directamente al móvil.",
|
|
"phoneHandoffToggleInfo": "Vincula un móvil una sola vez y graba desde él siempre que quieras.",
|
|
"phoneHandoffRelayNote": "El audio pasa por un servidor de retransmisión, porque los navegadores del móvil no pueden conectarse directamente, pero va cifrado de extremo a extremo: el servidor solo ve datos cifrados. Vibe tiene que seguir abierto en este ordenador para que el móvil pueda llegar hasta él.",
|
|
"phoneHandoffUnavailable": "La transferencia desde el móvil no está disponible en esta versión de Vibe.",
|
|
"pairAPhone": "Vincular un móvil",
|
|
"pairingQrCode": "Código QR de vinculación",
|
|
"pairingQrCodeError": "No se ha podido mostrar el código de vinculación.",
|
|
"scanPairingCodeInfo": "Apunta con la cámara del móvil a este código y guarda la página que se abra.",
|
|
"pairingLink": "Enlace de vinculación",
|
|
"copyPairingLink": "Copiar enlace de vinculación",
|
|
"noPairingCode": "Todavía no hay ningún código de vinculación.",
|
|
"thisComputer": "Este ordenador",
|
|
"endpointIdInfo": "Identificador del punto de conexión al que se conecta tu móvil",
|
|
"status": "Estado",
|
|
"failed": "Error",
|
|
"phoneWaitingForRecording": "Esperando a que un móvil envíe una grabación.",
|
|
"phoneReceivingAudio": "Recibiendo audio del móvil…",
|
|
"phoneLoadingModel": "Cargando el modelo de transcripción…",
|
|
"phoneTranscribing": "Transcribiendo la grabación…",
|
|
"phoneTranscriptSentBack": "Listo: la transcripción ya está de vuelta en el móvil.",
|
|
"phoneRecordingFailed": "La última grabación ha fallado.",
|
|
"regeneratePairingCode": "Regenerar el código de vinculación",
|
|
"regeneratePairingCodeInfo": "Genera un código nuevo e invalida el anterior: un móvil que ya esté vinculado tendrá que escanearlo otra vez.",
|
|
"showInFinder": "Mostrar en el Finder",
|
|
"showInFileExplorer": "Mostrar en el Explorador de archivos",
|
|
"phoneTranscriptionSaved": "Transcripción del móvil guardada",
|
|
"phoneRecording": "Grabación del móvil"
|
|
}
|