Files
Adam Miedema 99518707ca update spanish
2026-01-16 12:42:53 -07:00

5522 lines
250 KiB
JSON

{
"you": "Tú",
"select": "Seleccionar",
"conversations": "Conversaciones",
"copyToClipboard": "Copiar al portapapeles",
"toCopyMarkdownDirectly": "para copiar markdown directamente",
"clickToCopyMarkdownDirectly": "Haz clic para copiar markdown directamente",
"toShowMoreOptions": "para mostrar más opciones",
"longPressOrAltClickForMoreOptions": "Mantén pulsado o Alt+clic para más opciones",
"onMessage": "en mensaje",
"selectModel": "@:select un modelo | @:select modelos",
"manageModels": "@:manage Modelos",
"required": "Requerido",
"optional": "Opcional",
"systemPrompt": "Prompt del sistema",
"systemPromptAttachMode": "@:systemPrompt Adjuntar @:mode",
"userPrompt": "Prompt de @:user",
"delete": "Eliminar {item}",
"deleteAll": "Eliminar todo",
"create": "Crear",
"edit": "Editar",
"enable": "Habilitar",
"disable": "Deshabilitar",
"save": "Guardar",
"cancel": "Cancelar",
"close": "Cerrar",
"update": "Actualizar",
"apply": "Aplicar",
"reset": "Restablecer",
"icon": "Icono",
"clear": "Limpiar",
"apiKey": "Clave API",
"models": "Modelos",
"available": "Disponible {itemType}",
"unavailable": "No disponible",
"detected": "Detectado",
"continue": "Continuar",
"undetected": "No detectado",
"welcome": "¡Bienvenido!",
"plan": "Plan",
"waitingMessage": {
"waiting": "Esperando :: Aguarda :: Un momento :: Un segundo :: La paciencia es una virtud :: Casi listo :: Cargando genialidad",
"fetchingWebResults": "Buscando en la web :: Navegando por internet :: Buscando en línea :: Explorando la web :: Consultando el oráculo :: Preguntando amablemente a internet :: Sumergiéndose en el ciberespacio :: Minando la web",
"queryingKnowledgeStack": "Consultando @:knowledgeStack.title :: Buscando en tu conocimiento :: Revisando tus documentos :: Explorando tu base de conocimiento :: Registrando tu sabiduría :: Consultando tu biblioteca digital :: Escaneando tus archivos :: Excavando tus notas",
"preparingTools": "Preparando herramientas :: Listando herramientas :: Configurando herramientas :: Cargando herramientas :: Afinando los instrumentos :: Ensamblando el kit :: Calentando motores :: Preparando el espacio de trabajo",
"connectingToModel": "El modelo está haciendo su magia ✨ :: La IA está pensando :: Procesando tu solicitud :: Trabajando en ello :: Calculando :: Neuronas activas :: Reflexionando profundamente :: Computando brillantez :: Modo cerebro activado :: Invocando inteligencia",
"processingContext": "Procesando contexto :: Entendiendo el contexto :: Analizando contexto :: Leyendo la situación :: Conectando los puntos :: Captando la visión global :: Armando el rompecabezas :: Dando sentido a las cosas",
"streaming": "Transmitiendo :: Enviando respuesta :: Entregando respuesta :: Transmitiendo :: Resultados en camino :: Fluyendo hacia ti :: En ruta :: Llegando caliente",
"scrubbingPIIData": "Eliminando datos personales :: Protegiendo tu privacidad :: Eliminando información personal :: Anonimizando datos :: Manteniendo secretos a salvo :: Modo privacidad activado :: Redactando lo sensible :: Modo incógnito",
"synthesizingQuery": "Sintetizando consulta para mejores resultados :: Optimizando tu pregunta :: Mejorando consulta :: Refinando términos de búsqueda :: Puliendo tu solicitud :: Ajustando la pregunta :: Creando la consulta perfecta :: Haciendo brillar tus palabras",
"fetchingLiveContexts": "Obteniendo contextos en vivo :: Reuniendo datos en tiempo real :: Extrayendo ideas frescas :: Sincronizando con fuentes vivas :: Accediendo al flujo de datos :: Recopilando información actual :: Actualizando contextos :: Conectando con el pulso"
},
"progress": {
"initializing": "Inicializando..."
},
"add": "Añadir",
"actionBar": {
"expandGroup": "Expandir {group}",
"collapseGroup": "Colapsar {group}",
"showExtraAddOns": "Mostrar complementos extra",
"hideExtraAddOns": "Ocultar complementos extra",
"groups": {
"model": "Modelo y Prompts",
"data": "Datos y Conocimiento",
"tools": "Herramientas y Personas"
}
},
"unauthorized": "No autorizado",
"valid": "Válido",
"invalid": "Inválido",
"done": "¡Hecho!",
"confirm": "Confirmar",
"shareWithSyncedSplits": "Compartir con splits sincronizados",
"source": "Fuente | Fuentes",
"groundingSources": "Fuentes de referencia",
"manage": "Gestionar",
"chat": "Chat | Chats",
"advancedOptions": "Opciones avanzadas",
"duplicate": "Duplicar",
"manageItem": "@:manage {item}",
"success": "¡Éxito!",
"notes": "Notas",
"viewNotes": "Ver notas",
"error": "¡Error!",
"warning": "Advertencia",
"failedToDelete": "Error al eliminar",
"failedToSave": "Error al guardar",
"failedToUpdate": "Error al actualizar",
"updatedSuccess": "actualizado.",
"applyAndShareWithSyncedSplits": "Aplicar y compartir con splits sincronizados",
"clickToEdit": "Haz clic para editar",
"clickToAddSystemPrompt": "Haz clic para añadir @:systemPrompt",
"pause": "Pausar",
"resume": "Reanudar",
"retry": "Reintentar",
"stop": "Detener",
"run": "Ejecutar",
"rerun": "Volver a ejecutar",
"remove": "Eliminar",
"skip": "Saltar",
"unskip": "No saltar",
"startImporting": "Comenzar importación",
"new": "Nuevo",
"entry": "Entrada | Entradas",
"import": "Importar",
"connect": "Conectar",
"disconnect": "Desconectar",
"reconnect": "Reconectar",
"selectTargetFolder": "Seleccionar carpeta destino",
"createNewFolderForImport": "Crear nueva carpeta para elementos importados",
"newFolderName": "Nombre de la nueva carpeta",
"remote": "Remoto",
"local": "Local",
"strength": "Fortaleza | Fortalezas",
"provider": "Proveedor",
"capability": "{count} capacidad | {count} capacidades",
"preset": "Preajuste | Preajustes",
"saveAsPreset": "Guardar como @:preset",
"append": "Añadir al final",
"prepend": "Añadir al principio",
"replace": "Reemplazar",
"description": "Descripción",
"mode": "Modo",
"addOns": "Complementos",
"user": "Usuario",
"assistant": "Asistente",
"assistantMessage": "@:assistant @:message.title",
"connectionInfo": "Información de conexión",
"exportOptions": "Opciones de exportación",
"chooseFile": "Elegir archivo",
"purpose": "Propósito",
"download": "Descargar",
"downloads": "Descargas",
"downloadAsJson": "Descargar como JSON",
"export": "Exportar",
"install": "Instalar",
"installed": "Instalado",
"modified": "Modificado",
"created": "Creado",
"minimize": "Minimizar",
"status": "Estado",
"type": "Tipo",
"yes": "Sí",
"fileSize": "Tamaño de archivo",
"size": "Tamaño",
"likes": "Me gusta | Me gustas",
"cancelled": "Cancelado",
"parameterSize": "Parámetro @:size",
"quantization": "Cuantización",
"quantizationLevel": "Nivel de @:quantization",
"storage": "Almacenamiento",
"params": "Parámetros",
"arch": "Arquitectura",
"filter": "Filtrar",
"noSearchResults": "No se encontró {item} para esta búsqueda",
"loading": "Cargando",
"invite": "Invitar",
"refresh": "Actualizar",
"email": "Correo electrónico",
"role": "Rol",
"admin": "Administrador",
"owner": "Propietario",
"inActive": "Inactivo",
"argument": "Argumento|Argumentos",
"abort": "Abortar",
"send": "Enviar",
"remindMeLater": "Recordar más tarde",
"text": "Texto",
"folders": "Carpetas",
"folder": "Carpeta | @:folders",
"title": "Título",
"search": {
"label": "Buscar",
"scope": {
"active": "Activos",
"archived": "Archivados",
"all": "Todos"
}
},
"none": "Ninguno",
"change": "Cambiar",
"expandAllProjects": "Expandir todos los proyectos",
"collapseAllProjects": "Colapsar todos los proyectos",
"clone": {
"title": "Clonar {item}",
"successMessage": {
"detail": "{item} clonado"
},
"errorMessage": {
"detail": "Error al clonar {item}"
}
},
"notesPurposePlaceholder": "Agrega notas para ayudarte a recordar el propósito de este {item} y algunos otros detalles (@:optional)",
"endpointTestResults": "Resultados de prueba de endpoint",
"testConnection": "Probar conexión",
"emptyPlaceholder": "No se encontró {item}",
"selectItem": "@:select {item}",
"selectedItemLabel": "{count} {title}",
"feature": "Característica|Características",
"raw": "Raw",
"rawOutput": "Salida sin procesar",
"property": "Propiedad|Propiedades",
"configure": "Configurar",
"context": "Contexto | Contextos",
"path": "Ruta | Rutas",
"project": {
"createRootProject": "Nuevo proyecto en raíz",
"projectName": "Nombre del proyecto",
"projectDescription": "Descripción del proyecto",
"defaultModel": "Modelo por defecto",
"customInstructions": "Instrucciones personalizadas",
"addChildProject": "Agregar proyecto secundario",
"deleteProject": "Eliminar proyecto",
"setDefaultForNewConversations": "Establecer como proyecto por defecto",
"unsetDefaultForNewConversations": "Quitar proyecto por defecto",
"orphanageProjectName": "Misc",
"includeProjectContext": "Incluir contexto del proyecto",
"deleteConfirmation": {
"header": "Eliminar proyecto",
"message": "¿Estás seguro de que deseas eliminar {projectName} y todas sus conversaciones?",
"rejectLabel": "@:cancel",
"acceptLabel": "@:delete",
"successMessage": {
"detail": "Proyecto eliminado"
}
},
"deleteAllConversations": {
"title": "Eliminar todas las conversaciones",
"description": "¿Estás seguro de que deseas eliminar todas las conversaciones en {projectName}? Esta acción no se puede deshacer.",
"successMessage": {
"detail": "Eliminadas {count} conversación | Eliminadas {count} conversaciones",
"empty": "No hay conversaciones que eliminar"
},
"errorMessage": {
"detail": "Error al eliminar conversaciones"
}
},
"projectForm": {
"addFiles": "Agregar archivos",
"editProject": "Editar proyecto",
"createNewProject": "Nuevo proyecto",
"dragAndDropFiles": "Arrastra y suelta archivos que se adjuntarán a cada conversación en este proyecto.",
"successMessage": {
"createDetail": "Proyecto creado",
"updateDetail": "Proyecto actualizado",
"createDetailHidden": "¡Proyecto creado! Actualmente está oculto porque está vacío. Haz clic en el botón de abajo para mostrarlo ahora, o aparecerá automáticamente cuando agregues tu primera conversación."
},
"errorMessage": {
"createDetail": "Error al crear proyecto",
"updateDetail": "Error al actualizar proyecto"
}
},
"title": "Proyecto | Proyectos",
"promoteToRoot": {
"title": "Mover carpeta a la raíz",
"errorMessage": {
"detail": "Error al mover el proyecto a la raíz."
},
"successMessage": {
"detail": "El proyecto se movió correctamente a la raíz."
}
},
"archiveAllConversations": {
"title": "Archivar todas las conversaciones",
"description": "¿Archivar todas las conversaciones en {projectName}? Se moverán al Archivo y podrán restaurarse más tarde.",
"confirmLabel": "Archivar todo",
"successMessage": {
"detail": "Archivada {count} conversación | Archivadas {count} conversaciones"
},
"errorMessage": {
"detail": "Error al archivar conversaciones"
}
},
"emptyProjectVisibilityToast": {
"showButton": "Mostrar proyectos vacíos",
"enabled": "Los proyectos vacíos ahora están visibles"
},
"startNewToGetStarted": "Inicia una nueva conversación para empezar"
},
"selectedModel": "Modelo seleccionado",
"endpoint": "Endpoint",
"authToken": "Token de autenticación",
"before": "Antes",
"after": "Después",
"method": "Método",
"httpMethod": "HTTP @:method",
"get": "Obtener",
"post": "Publicar",
"presetAlreadyExistsMessage": "@:preset con el mismo nombre ya existe.",
"duplicatePresetOverwriteMessage": "@:presetAlreadyExistsMessage Si guardas, sobrescribirá el @:preset existente.",
"noPropsAvailable": "No {propsName} disponible. Agrega una personalizada.",
"localAI": "@:local AI",
"conversation": {
"title": "Conversación | Conversaciones",
"conversationTitle": "@:conversation.title Título",
"contextShieldErrorMessage": {
"summary": "Error al generar el resumen del contexto.",
"detail": "Revisa Ajustes > Notificaciones para más detalles."
},
"sendErrorMessage": {
"summary": "Error al enviar el mensaje.",
"detail": "Revisa Ajustes > Notificaciones para más detalles. {error}"
},
"deleteConversation": "Eliminar @:conversation.title",
"addNewConversation": "Agregar nueva @:conversation.title",
"newConversation": "Nueva @:conversation.title",
"promptPlaceHolder": {
"normal": {
"focused": "Pulsa {trigger} para comandos rápidos O empieza a escribir...",
"unfocused": "Pulsa / para enfocar aquí y empezar a escribir"
}
},
"deleteConfirmation": {
"header": "Eliminar @:conversation.title",
"message": "¿Estás seguro de que deseas eliminar la conversación seleccionada y todos sus splits de chat? | ¿Estás seguro de que deseas eliminar las conversaciones seleccionadas y todos sus splits de chat?",
"rejectLabel": "@:cancel",
"acceptLabel": "@:delete",
"successMessage": {
"detail": "@:conversation.title eliminada"
},
"errorMessage": {
"detail": "Error al eliminar @:conversation.title"
}
},
"convertToChat": {
"title": "Convertir a Chat",
"successMessage": {
"detail": "@:conversation.title convertida a Chat"
},
"errorMessage": {
"detail": "Error al convertir la conversación a Chat"
}
},
"convertToForgeCanvas": {
"title": "Convertir a @:forge.forgeCanvas",
"successMessage": {
"detail": "@:conversation.title convertida a @:forge.forgeCanvas"
},
"errorMessage": {
"detail": "Error al convertir la conversación a @:forge.forgeCanvas"
}
},
"cloneAncestorsSuccess": {
"detail": "Mensajes clonados a un nuevo split correctamente"
},
"cloneAncestorsError": {
"detail": "Error al clonar mensajes al nuevo split"
},
"cloneAncestorsToNewConversationSuccess": {
"detail": "Mensajes clonados a nueva conversación correctamente"
},
"cloneAncestorsToNewConversationError": {
"detail": "Error al clonar mensajes a nueva conversación"
},
"contextSizeError": {
"summary": "El mensaje supera el límite de contexto",
"detail": "Tu mensaje con resultados de búsqueda y contexto es demasiado grande para este modelo. Prueba: aumentar el tamaño de contexto en los parámetros del modelo, reducir los resultados de búsqueda, limpiar el historial de conversaciones, usar un modelo con mayor contexto (16k+), o acortar tus instrucciones del sistema."
},
"treeControls": {
"title": "Ordenar y mostrar",
"projectSort": {
"none": "Ninguno",
"name": "Nombre",
"created": "Creado",
"ascending": "Ascendente",
"descending": "Descendente",
"projectsFirst": "Proyectos primero"
},
"conversationSort": {
"none": "Ninguno",
"title": "Título",
"created": "Creado",
"lastActivity": "Última actividad",
"ascending": "Ascendente",
"descending": "Descendente"
},
"priority": {
"none": "Sin prioridad",
"pinned": "@:pinned primero",
"bookmarked": "@:bookmarked primero"
},
"visibility": {
"label": "Visibilidad",
"recents": {
"show": "Mostrar recientes y @:pinned",
"hide": "Ocultar recientes y @:pinned"
},
"archive": {
"show": "Mostrar archivo",
"hide": "Ocultar archivo"
},
"empty": {
"show": "Mostrar proyectos vacíos",
"hide": "Ocultar proyectos vacíos"
},
"counts": {
"show": "Mostrar número de conversaciones",
"hide": "Ocultar número de conversaciones"
}
},
"clear": "Restablecer"
},
"archive": {
"groupLabel": "Archivo",
"orphanProject": "Conversación huérfana",
"bannerMessage": "Esta conversación está archivada. Desarchívala para continuar la discusión.",
"bannerHint": "Enviar un nuevo mensaje la desarchivará automáticamente.",
"unarchiveAction": "Desarchivar",
"autoUnarchivedToast": "Conversación desarchivada automáticamente.",
"archivedToast": "Archivada {count} conversación | Archivadas {count} conversaciones",
"unarchivedToast": "Restaurada {count} conversación | Restauradas {count} conversaciones",
"archiveSingle": "Archivar",
"unarchiveSingle": "Desarchivar",
"unload": "Descargar elementos archivados",
"unloaded": "Elementos archivados descargados",
"error": "No se pudo actualizar el estado del archivo. Inténtalo de nuevo.",
"archiveMultiple": "Archivar {item}"
}
},
"conversationActions": {
"exportConversation": {
"title": "Exportar @:conversation.title como JSON",
"successMessage": "Conversaciones exportadas como JSON correctamente"
},
"showAllSplits": "Mostrar todos los splits",
"saveSplitsAs": "Guardar splits como",
"newSingleSplitChat": "Nuevo chat de split único",
"splitPreset": "Preset de Split | Presets de Split",
"splitPresetForm": {
"saveTitle": "Guardar Splits como @:preset",
"editTitle": "Editar Split @:preset {presetName}",
"presetName": "Nombre de @:preset",
"presetOptions": "Opciones de @:preset",
"presetOptionsPlaceholder": "@:select Opciones de @:preset",
"savePreset": "Guardar @:preset",
"successMessage": {
"saveDetail": "Split @:preset añadido",
"editDetail": "Split @:preset actualizado"
},
"errorMessage": {
"saveDetail": "Error al guardar Split @:preset"
}
},
"deleteSplitPresetConfirmation": {
"header": "Eliminar Split @:preset",
"message": "¿Estás seguro de que deseas eliminar {splitPresetName}? ",
"successMessage": {
"detail": "Split @:preset eliminado"
}
},
"compactMode": "Modo compacto",
"enableCompactMode": "@:enable @:conversationActions.compactMode",
"disableCompactMode": "@:disable @:conversationActions.compactMode",
"splitWidths": {
"title": "Anchos de Split",
"slim": "Estrecho",
"balanced": "Equilibrado",
"roomy": "Amplio",
"spacious": "Espacioso",
"full": "Completo"
}
},
"modelParams": {
"params": "Parámetros",
"title": "Parámetros del modelo",
"advancedParams": "Parámetros avanzados",
"providerOptions": "Opciones del proveedor",
"maxTokens": "Máx. tokens de salida (Legacy)",
"maxOutputTokens": "Máx. tokens de salida",
"temperature": "Temperatura",
"topP": "Top P",
"presencePenalty": "Penalización por presencia",
"frequencyPenalty": "Penalización por frecuencia",
"numCtx": "Ventana de contexto @:size",
"numGpu": "Número de capas GPU",
"selectPlaceholder": "@:select o inserta un parámetro",
"selectPresetPlaceholder": "@:select un @:preset",
"saveAsPreset": "Guardar como @:preset",
"addParameter": "Agregar nuevo parámetro",
"extraParams": "Parametros extra @:params",
"applyAndSaveAsDefault": "Aplicar y guardar como predeterminado del modelo",
"savePresetForm": {
"title": "Guardar @:modelParams.params como preset",
"errorMessage": {
"detail": "Error al guardar el preset de parámetros."
},
"successMessage": {
"detail": "Preset de @:modelParams.params guardado."
}
},
"deletePresetConfirm": {
"title": "Eliminar @:preset",
"message": "¿Estás seguro de que deseas eliminar {presetName}?",
"errorMessage": {
"detail": "Error al eliminar el preset de parámetros."
},
"successMessage": {
"detail": "Preset de @:modelParams.params eliminado."
}
},
"thinkingEffort": {
"label": "Esfuerzo de pensamiento",
"light": "Pensar ligero",
"moderate": "Pensar moderadamente",
"deep": "Pensar profundamente",
"default": "Predeterminado",
"none": "Ninguno",
"dynamic": "Dinámico",
"exclude": "Excluir"
}
},
"chatSplitActions": {
"title": "Opciones de Split",
"addSplitChat": "Agregar chat split",
"hideSplit": "Ocultar split",
"copySplitToNewConversation": "Copiar split a nueva conversación",
"moveSplitToNewConversation": "Mover split a nueva conversación",
"deleteSplit": "Eliminar split",
"removeSplit": "Quitar split",
"splitRemoved": "Split eliminado",
"splitReset": "Split restablecido",
"copySplitToNewConversationSuccess": {
"detail": "Split copiado a nueva conversación"
},
"moveSplitToNewConversationSuccess": {
"detail": "Split movido a nueva conversación"
},
"copySplitToNewConversationError": {
"detail": "Error al copiar el split a nueva conversación"
},
"moveSplitToNewConversationError": {
"detail": "Error al mover el split a nueva conversación"
},
"exportOrCopyChat": {
"exportChat": "Exportar chat",
"copyChat": "Copiar chat",
"activeBranchAsJson": "Rama activa como JSON",
"activeBranchAsMarkdown": "Rama activa como Markdown",
"allBranchesAsJson": "Todas las ramas como JSON",
"successMessage": "{action} el chat como {format} correctamente",
"action": {
"export": "exportado",
"copy": "copiado"
}
},
"showAllHiddenMessages": {
"title": "Mostrar todos los mensajes ocultos",
"successMessage": {
"detail": "Todos los mensajes ocultos ahora son visibles"
}
},
"deleteConfirmation": {
"header": "Eliminar Split",
"message": "¿Estás seguro de que deseas eliminar este Split?",
"rejectLabel": "@:cancel",
"acceptLabel": "@:delete"
}
},
"message": {
"title": "Mensaje | Mensajes",
"currentMessageAndDescendants": "Mensaje y descendientes",
"sendOnEnter": "Enviar con Enter",
"sendModifier": {
"label": "Modificador de envío",
"none": "Ninguno",
"shift": "Shift",
"alt": "Alt",
"ctrl": "Ctrl",
"meta": "Meta"
},
"resendUserMessage": "Reenviar mensaje del usuario",
"sendAsAssistantMessage": "Enviar como mensaje de @:assistant",
"sendAsAssistantMessageHelp": "Enviar un mensaje como \"Asistente\" te permite moldear la conversación añadiendo respuestas AI tú mismo. La IA continuará como si hubiera escrito ese mensaje. Útil para proporcionar contexto o guiar respuestas.",
"sentAsAssistantBadge": "Enviado como mensaje del asistente",
"stopGeneration": "Detener",
"renderingActions": {
"bookmark": "Marcar mensaje | Marcar mensajes",
"removeBookmark": "Quitar marcador | Quitar marcadores",
"deleteMessage": "Eliminar mensaje | Eliminar mensajes",
"removeMessage": "Quitar mensaje",
"regenerateAssistantMessage": "Regenerar mensaje del asistente como una nueva rama",
"continueGeneration": "@:continue Generación",
"useAsPromptInNewSplit": "Usar como prompt en nuevo split",
"foldUp": "Plegar mensajes anteriores",
"unfold": "Desplegar mensajes anteriores",
"cloneAncestorsToNewSplit": "Clonar con antecesores a nuevo split",
"cloneAncestorsToNewConversation": "Clonar con antecesores a nueva conversación",
"extraActions": "Acciones extra"
},
"noModelSelectedErrorMessage": {
"detail": "No hay modelo seleccionado. Por favor selecciona un modelo para enviar un mensaje"
},
"currentMessageDeleteConfirmation": {
"header": "Eliminar mensaje",
"message": "¿Estás seguro de que deseas eliminar este mensaje?"
},
"currentMessageAndDescendantsDeleteConfirmation": {
"header": "Eliminar mensaje y sus descendientes",
"message": "¿Estás seguro de que deseas eliminar este mensaje y todos sus descendientes?"
},
"manuallyEdited": "Editado manualmente"
},
"slashCommands": {
"title": "Comandos rápidos",
"noMatches": "No hay comandos coincidentes",
"hint": "Escribe \\ seguido del comando o alias",
"executed": {
"regenerate": "Regenerando mensaje...",
"shield": "Escudo de contexto aplicado",
"compress": "Comprimiendo con escudo...",
"bookmark": "Mensaje marcado",
"copy": "Copiado al portapapeles",
"continue": "Continuando generación...",
"resend": "Reenviando mensaje..."
}
},
"shiftcutMode": {
"isOn": "Shiftcut activado. Pulsa Shift dos veces para desactivar",
"isOff": "Shiftcut desactivado. Pulsa Shift dos veces para activar",
"title": "Shiftcuts",
"description": "Habilita o deshabilita la función Shiftcuts. A diferencia de los atajos estándar, Shiftcuts se activan al pulsar dos veces la tecla Shift y luego otra tecla para realizar una acción; incluye: 't' para abrir un nuevo chat con split, 'e' para abrir el selector de entorno, '1' para alternar la barra lateral y 'm' para abrir el minimapa."
},
"urlEndpoint": "URL del endpoint",
"giveUniqueNamePlaceholder": "Dale un nombre único",
"duplicateName": "Nombre de {item} duplicado o inválido. Por favor ingresa un nombre único.",
"manageData": {
"firstBackupReminder": "No has realizado una copia de seguridad de tus datos, ¿deseas exportarlos para respaldo?",
"scheduledBackupReminder": "Han pasado 24 horas desde tu última copia de seguridad, ¿deseas exportar tus datos para respaldo?",
"nonPersistentStorage": "El almacenamiento puede borrarse por el navegador bajo presión. Recomendamos respaldar tus datos regularmente.",
"exportData": "@:export @:data",
"clearData": "Borrar @:data",
"restoreData": "Restaurar @:data",
"dragAndDropExportedData": "Arrastra y suelta tu copia de seguridad para restaurar desde ella.",
"restoreDataWarning": "Restaurar desde un archivo de respaldo reemplazará todos los datos existentes. Recomendamos exportar una copia antes.",
"exportErrorMessage": {
"detail": "Error al exportar datos"
},
"backupData": "Respaldar @:data",
"exportSuccessMessage": {
"detail": "@:data exportados"
},
"clearErrorMessage": {
"detail": "Error al borrar datos"
},
"clearSuccessMessage": {
"detail": "@:data han sido borrados"
},
"confirmationActionPlaceholder": "Ingresa '{string}' aquí",
"proceedWithConfirmationAction": "Por favor ingresa '{string}' abajo para continuar",
"invalidConfirmationString": {
"summary": "Advertencia",
"detail": "Confirmación inválida. Por favor ingresa '{string}' para continuar."
},
"clearDataConfirmation": {
"header": "Borrar @:data",
"message": "¿Estás seguro de que deseas borrar todos los datos? Esta acción no puede deshacerse.",
"rejectLabel": "Cancelar",
"acceptLabel": "Borrar"
},
"restoreDataConfirmation": {
"fileNotSelectedWarning": {
"summary": "Advertencia",
"message": "Por favor selecciona un archivo para restaurar"
},
"header": "Restaurar @:data",
"message": "¿Estás seguro de que deseas restaurar todos los datos? Esta acción reemplazará todos los datos existentes y no se puede deshacer. Recomendamos exportar una copia primero.",
"rejectLabel": "Cancelar",
"acceptLabel": "Restaurar"
},
"importDataSuccessMessage": {
"detail": "@:data importados"
},
"importDataErrorMessage": {
"detail": "Error al importar @:data"
}
},
"setupItem": {
"label": "Configurar {item}",
"success": "Configuración de {item} completada",
"failure": "No se pudo configurar {item}"
},
"onboard": {
"greeting": "Bienvenido a Msty Studio!",
"getStarted": "Necesitamos al menos un proveedor de modelos para comenzar.",
"desktop": {
"greeting": "Bienvenido a Msty!",
"getStarted": "¿Cómo te gustaría empezar?",
"customLocation": {
"title": "¿Tienes modelos Ollama/Msty?",
"titleMLX": "¿Tienes modelos MLX?",
"description": "Puedes usar tus modelos Ollama o Msty existentes directamente, si los tienes, o especificar una ubicación personalizada. Nota: seguiremos usando nuestro propio servicio para ejecutar esos modelos.",
"descriptionMLX": "Si aún no tienes modelos MLX, puedes especificar una ubicación personalizada donde desees almacenarlos.",
"descriptionMLXWithSwama": "¡Encontramos modelos MLX en la caché de Hugging Face Hub! Puedes usarlos directamente o especificar una ubicación personalizada.",
"noLocationSet": "No hay ubicación establecida",
"setYourOwn": "Establecer la tuya",
"notAvailableForMLX": "Las ubicaciones personalizadas de modelos no están disponibles para MLX",
"placeholder": "Introduce la ruta personalizada de modelos",
"titleLlamaCpp": "¿Tienes modelos LLaMA.cpp?",
"descriptionLlamaCpp": "Especifica una ubicación personalizada donde quieras guardar tus modelos GGUF para LLaMA.cpp."
},
"setupLocalAI": {
"description": "Para comenzar, {modelName} se descargará. Puedes elegir un modelo diferente.",
"pros": {
"item1": "Usa modelos como DeepSeek R1, Meta Llama4, Microsoft Phi4, IBM Granite, Google Gemma, etc.",
"item2": "Usa sin conexión y mantén tus @:data privados",
"item3": "Los modelos son gratuitos para descargar y usar",
"item4": "Instala y usa modelos especializados"
},
"cons": {
"item1": "Necesita espacio de almacenamiento y memoria extra"
},
"successMessage": {
"summary": "¡Listo!",
"detail": "Ahora puedes empezar a chatear con tus modelos de forma privada y segura."
},
"errorMessage": {
"summary": "Error al configurar @:localAIService",
"detail": "No pudimos configurar @:localAIService{'.'} Revisa los registros para más detalles. {errorMessage}",
"epermDetail": "Hubo un problema de permisos al configurar Local AI. Puedes volver a ejecutar la aplicación como administrador (no recomendado) o considerar instalar la aplicación para un solo usuario (recomendado).",
"abortDetail": "{errorMessage} Considera instalar Local AI desde archivos de archivo si continúas obteniendo este error. Por favor visita https://docs.msty.studio/getting-started/onboarding"
}
},
"setupMLX": {
"errorMessage": {
"summary": "Error al configurar el servicio MLX",
"detail": "No pudimos configurar el servicio MLX. Revisa los registros para más detalles. {errorMessage}"
},
"description": "Para comenzar, {modelName} se descargará. MLX es el marco optimizado de Apple para Apple Silicon.",
"experimentalInfo": "MLX está actualmente en modo experimental. Puede tener limitaciones y detalles por pulir. Por favor reporta cualquier problema al equipo.",
"pros": {
"item1": "Optimizado para Apple Silicon (M1, M2, M3, M4)",
"item2": "Uso eficiente de memoria con arquitectura de memoria unificada",
"item3": "Soporta MLX, SafeTensors y modelos GGUF",
"item4": "Rendimiento nativo en macOS"
},
"cons": {
"item1": "Solo disponible en Macs con Apple Silicon",
"item2": "Selección de modelos más limitada comparada con Ollama"
},
"successMessage": {
"summary": "¡Configuración MLX completa!",
"detail": "Ahora puedes usar modelos MLX con rendimiento óptimo en tu Mac."
},
"progress": {
"checkingCompatibility": "Comprobando compatibilidad del sistema...",
"downloadingBinary": "Descargando servidor MLX...",
"startingService": "Iniciando servicio MLX...",
"settingUp": "Configurando MLX...",
"downloadProgress": "Descargando modelo: {progress}%"
}
},
"addRemoteModelsProvider": {
"description": "Con la mayoría de los proveedores en línea, necesitarás obtener una clave API desde el sitio web del proveedor. {findYourKey}",
"findYourKey": "Encuentra tu clave API",
"pros": {
"item1": "Usa OpenAI GPT, Azure, Claude Sonnet, Google Gemini, Perplexity, Remote Ollama, Remote Msty, etc.",
"item2": "Comienza sin descargar modelos",
"item3": "Algunos proveedores ofrecen funciones extra como generación de imágenes, búsqueda web, etc."
},
"cons": {
"item1": "Requiere conexión a internet para chatear",
"item2": "Pueden aplicarse cargos del proveedor"
}
},
"setupLlamaCpp": {
"experimentalInfo": "El soporte de LLaMA.cpp es experimental y está en desarrollo activo",
"errorMessage": {
"summary": "Error al configurar el servicio LLaMA.cpp",
"detail": "No pudimos configurar el servicio LLaMA.cpp. Revisa los registros para más detalles. {errorMessage}"
},
"description": "Para empezar, se descargará {modelName}. LLaMA.cpp ofrece inferencia de IA eficiente y multiplataforma.",
"pros": {
"item1": "Funciona en Windows, macOS y Linux",
"item2": "Soporta aceleración tanto en CPU como en GPU",
"item3": "Uso eficiente de memoria e inferencia rápida",
"item4": "Compatible con el formato de modelos GGUF"
},
"cons": {
"item1": "Requiere la aplicación de escritorio",
"item2": "El rendimiento depende de la configuración del hardware"
},
"successMessage": {
"summary": "¡Configuración de LLaMA.cpp completa!",
"detail": "Ahora puedes usar modelos LLaMA.cpp con un rendimiento eficiente en tu sistema."
},
"progress": {
"checkingCompatibility": "Comprobando la compatibilidad del sistema...",
"downloadingBinary": "Descargando el servidor LLaMA.cpp...",
"startingService": "Iniciando el servicio LLaMA.cpp...",
"settingUp": "Configurando LLaMA.cpp...",
"downloadProgress": "Descargando: {progress}%"
}
}
},
"modelsAvailableCount": "{count} modelo disponible | {count} modelos disponibles",
"modelsAddedCount": "{count} modelo añadido | {count} modelos añadidos",
"forgetThisProvider": "Olvidar este proveedor",
"submitAndContinue": "¡Vamos!",
"getSidecar": "¿No tienes @:localAI? Obtén @:remoteToolsConnector.title para configuración con 1 clic",
"completedWithProvider": {
"summary": "¡Listo!",
"detail": "Ahora estás listo para chatear con uno de los modelos de {providerName}."
},
"continueSetup": "Continuar configuración de {service}"
},
"login": {
"enterEmail": "Introduce tu correo electrónico",
"errorMessage": "Correo inválido o ocurrió un error. Por favor intenta de nuevo.",
"successMessage": "Enlace de inicio de sesión enviado a { email }"
},
"modelHub": {
"title": "Centro de modelos",
"languageModelsProviders": {
"title": "Proveedores de modelos",
"subtitle": "Accede a modelos desde la nube o servidores remotos.",
"autoFetchModels": "Listado de modelos actualizado automáticamente",
"addLanguageModelsProvider": "Agregar proveedor",
"prosAndCons": {
"pros": [
"Usa OpenAI GPT, Azure, Claude Sonnet, Google Gemini, Perplexity, Remote Msty, Remote Ollama, etc.",
"Comienza rápidamente",
"No requiere descarga"
],
"cons": [
"Requiere conexión a internet para chatear",
"Pueden aplicarse cargos del proveedor"
]
},
"deleteConfirmation": {
"header": "Eliminar proveedor",
"message": "¿Estás seguro de que deseas eliminar {providerName}?",
"successMessage": {
"detail": "Proveedor eliminado"
},
"errorMessage": {
"summary": "Error",
"detail": "Error al eliminar el proveedor"
}
},
"syncProviderWithWorkspaceForm": {
"titleNew": "Copiar a otro workspace",
"titleUpdate": "Copiar/Sincronizar con otros workspaces",
"descriptionNew": "Copia este proveedor a uno o más workspaces.",
"descriptionUpdate": "Sincroniza este proveedor a uno o más workspaces. Si este proveedor se copió antes, se actualizará. Si no, se añadirá.",
"selectWorkspaces": "@:select Workspaces",
"availableWorkspaces": "Workspaces disponibles"
},
"providerForm": {
"addTitle": "Agregar proveedor",
"updateTitle": "Actualizar proveedor",
"newHeader": "Nuevo proveedor de modelos de lenguaje",
"editHeader": "Editar proveedor de modelos de lenguaje",
"modelsProvider": "Proveedor de modelos",
"modelId": "ID del modelo",
"modelName": "Nombre del modelo",
"providerName": "Nombre del proveedor",
"providerUrl": "URL del proveedor",
"providerToken": "Token del proveedor",
"saveProvider": "Guardar proveedor",
"selectProvider": "@:select Provider",
"namePlaceholder": "Dale un nombre (opcional)",
"selectModels": "@:select Models",
"availableModels": "Modelos disponibles",
"addCustomModel": "Agregar modelo personalizado",
"inferenceEndpoint": "Endpoint de inferencia (debe comenzar con http:// o https://)",
"baseURL": "URL base",
"resourceName": "Nombre del recurso (se ignorará si se establece la URL base)",
"apiVersion": "API @:version",
"region": "Región AWS",
"accessKeyId": "Access Key ID",
"secretAccessKey": "Secret Access Key",
"sessionToken": "Session Token (Opcional)",
"notAllModelsCompatible": "No todos los modelos han sido probados con Msty y puede que no sean compatibles con todos los modelos disponibles en el proveedor.",
"enterAndManuallyFetchModels": "Haz clic en 'Fetch Models' para recuperar los modelos disponibles del proveedor (puede requerir una clave API), o añade manualmente un modelo abajo.",
"enterAndFetchModels": "Introduce tu clave API para intentar recuperar todos los modelos disponibles de {providerName}, o añade manualmente un modelo personalizado.",
"fetchModels": "Recuperar modelos",
"modelsFilter": {
"all": "Todos los modelos",
"selected": "Seleccionados",
"unselected": "No seleccionados"
},
"lmsCorsNote": "Debes tener CORS habilitado en LM Studio para trabajar con Msty",
"successMessage": {
"addDetail": "Proveedor de modelos {providerName} añadido",
"updateDetail": "Proveedor de modelos {providerName} actualizado"
},
"errorMessage": {
"addDetail": "Error al añadir proveedor",
"updateDetail": "Error al actualizar proveedor"
},
"bedrockLongTermCredsWarning": "No se recomienda usar credenciales a largo plazo para Amazon Bedrock.",
"awsRegionExample": "p.ej. us-east-1",
"purposeFilter": {
"all": "Todos los propósitos"
},
"searchInModels": "Buscar modelos...",
"openAICompatibleNote": "La mayoría de los proveedores compatibles con OpenAI requieren el prefijo /v1 en el endpoint, por ejemplo https://example.com/v1. Si tienes problemas, prueba a añadir /v1 al endpoint."
},
"toggleVisibility": {
"errorMessage": {
"detail": "Error al actualizar la visibilidad del proveedor"
},
"successMessage": {
"detail": "{provider} ahora está {visibility}"
}
},
"modelsCount": "Cantidad de modelos",
"showInSelector": "Mostrar en el selector de modelos",
"availableModels": "Modelos disponibles",
"noModels": "No hay modelos disponibles para este proveedor",
"modelUpdated": "Modelo actualizado correctamente",
"modelUpdateError": "Error al actualizar el modelo",
"manageProviders": "Gestionar",
"addNewProvider": "Agregar nuevo"
},
"sidecarLocalAIProxyEndpoint": {
"title": "Proxy @:remoteToolsConnector.title Endpoint @:localAI",
"description": "Asegúrate de que @:remoteToolsConnector.title se esté ejecutando y sea accesible en la URL proporcionada vía tunneling. Copia y pega la información completa de conexión del túnel con token y URL."
},
"mstyRemoteEndpoint": {
"description": "Asegúrate de que Msty Desktop esté ejecutándose con conexiones remotas habilitadas.",
"learnMore": "Aprende cómo habilitar conexiones remotas"
},
"mstyLocalEndpoint": {
"description": "Este servicio se ejecuta siempre que la aplicación esté en ejecución. Puede que tengas que actualizar el número de puerto si el puerto de Local AI cambió. De lo contrario, es mejor dejarlo como está."
},
"ollamaRemoteEndpoint": {
"description": "Al usar Ollama autoalojado, asegúrate de que Ollama esté ejecutándose y sea accesible en la URL proporcionada. Debes añadir https://msty.studio a los orígenes permitidos al iniciar el servicio Ollama.",
"placeholder": "p.ej. http://localhost:11434 o https://ollama.com"
},
"mlxEndpoint": {
"description": "Este proveedor se usa para ejecutar modelos MLX en Macs con Apple Silicon. Lo más probable es que no necesites cambiar el endpoint por defecto. Si lo haces, asegúrate de que el servicio MLX esté en ejecución y sea accesible en la URL proporcionada."
},
"localModels": {
"title": "@:localAI Models",
"noCompatibleProviders": "No hay proveedores compatibles disponibles para gestionar modelos locales. Añade al menos un proveedor de tipo Msty Remote u Ollama Remote para usar modelos locales.",
"activeDownloads": "{count} Descarga activa | {count} Descargas activas",
"featured": {
"title": "Modelos Destacados"
},
"installed": {
"title": "Modelos Instalados"
},
"customOllamaModelPlaceholder": "O instala modelo por etiqueta p.ej. {example}",
"alreadyInstalledErrorMessage": {
"summary": "Ya instalado",
"detail": "El modelo {modelName} ya está instalado"
},
"abortInstalling": {
"title": "Abortar instalación de {modelName}",
"successMessage": {
"detail": "Instalación de {modelName} abortada"
}
},
"deleteConfirmation": {
"header": "Desinstalar modelo",
"message": "¿Estás seguro de que quieres desinstalar {modelName}?",
"successMessage": {
"detail": "Modelo eliminado"
},
"errorMessage": {
"detail": "Error al desinstalar el modelo"
}
},
"modelInstall": {
"successMessage": {
"detail": "Modelo {modelName} listo para usar"
},
"errorMessage": {
"detail": "Error al instalar el modelo {modelName}",
"newerVersion": "{modelName} requiere una versión más nueva de Local AI. Por favor actualiza a la última versión desde Ajustes > Local AI > Versión del servicio > ... > Forzar actualización del servicio Local AI"
}
},
"ollamaModels": {
"title": "Modelos Ollama"
},
"huggingfaceModels": {
"title": "Modelos de Hugging Face",
"searchPlaceholder": "Buscar por autor, modelo, o pega una URL de repositorio de Hugging Face",
"searchPlaceholderAlt": "Encuentra modelos por nombre, autor, o URL. O comienza con una de las familias de modelos a continuación.",
"searching": "Buscando modelos..."
},
"ggufImport": {
"tabTitle": "Importar GGUF",
"title": "Importar modelo GGUF",
"description": "Selecciona un archivo de modelo GGUF de tu sistema de archivos para importarlo en {providerLabel}.",
"activeImports": "Importaciones activas",
"noFileSelected": "Ningún archivo seleccionado",
"selectGgufFilePrompt": "Haz clic en el botón de abajo para seleccionar un archivo GGUF",
"dragDropOrClick": "Arrastra y suelta un archivo GGUF aquí, o haz clic en el botón de abajo",
"dropFileHere": "Suelta el archivo aquí",
"releaseToUpload": "Suelta para seleccionar el archivo",
"selectGgufFile": "Seleccionar archivo GGUF",
"chooseDifferentFile": "Elegir otro archivo",
"importModel": "Importar modelo",
"modelName": "Nombre del modelo",
"modelNamePlaceholder": "p. ej., mi-modelo-personalizado",
"modelNameDescription": "Este es el nombre que usarás para referenciar el modelo en las conversaciones.",
"removeFile": "Eliminar archivo",
"dismissJob": "Descartar",
"useSymlink": "Usar enlace simbólico (ahorra espacio)",
"symlinkDescription": "Crea un enlace simbólico en lugar de copiar el archivo. Solo disponible para servidores locales.",
"process": {
"calculatingDigest": "Calculando el hash del archivo",
"uploadingFile": "Subiendo archivo",
"creatingSymlink": "Creando enlace simbólico",
"creatingModel": "Creando modelo"
},
"success": "Modelo {modelName} importado correctamente",
"labels": {
"name": "Nombre",
"file": "Archivo",
"status": "Estado",
"error": "Error"
},
"status": {
"uploading": "Subiendo",
"creating": "Creando modelo",
"completed": "Completado",
"error": "Error",
"cancelled": "Cancelado"
},
"errors": {
"invalidFile": "Selecciona un archivo GGUF válido"
}
},
"safetensorsImport": {
"tabTitle": "Importar Safetensors",
"title": "Importar modelo Safetensors",
"description": "Selecciona un directorio que contenga pesos de modelo safetensors para importarlo en {providerLabel}. Las arquitecturas compatibles incluyen Gemma, Llama, Mistral y Phi.",
"activeImports": "Importaciones activas",
"noDirectorySelected": "Ningún directorio seleccionado",
"selectDirectoryHint": "El directorio debe contener archivos safetensors y un config.json",
"selectDirectoryTitle": "Seleccionar directorio Safetensors",
"selectDirectory": "Seleccionar directorio",
"chooseDifferentDirectory": "Elegir otro directorio",
"importModel": "Importar modelo",
"modelName": "Nombre del modelo",
"modelNamePlaceholder": "p. ej., mi-modelo-personalizado",
"modelNameDescription": "Este es el nombre que usarás para referenciar el modelo en las conversaciones.",
"removeDirectory": "Eliminar directorio",
"process": {
"scanningDirectory": "Escaneando directorio",
"processingFile": "Procesando archivo {current} de {total}",
"creatingModel": "Creando modelo desde safetensors"
},
"success": "Modelo {modelName} importado correctamente",
"labels": {
"name": "Nombre",
"directory": "Directorio",
"status": "Estado",
"error": "Error"
},
"status": {
"uploading": "Subiendo archivos",
"creating": "Creando modelo",
"completed": "Completado",
"error": "Error",
"cancelled": "Cancelado"
},
"filesSelected": "archivos seleccionados",
"errors": {
"desktopOnly": "La importación de safetensors solo está disponible en la app de escritorio",
"selectFailed": "Error al seleccionar el directorio",
"noValidFiles": "No se encontraron archivos safetensors válidos en el directorio seleccionado"
}
}
},
"mlxModels": {
"title": "MLX Models",
"notAppleSilicon": "Los modelos MLX solo son compatibles con Macs con Apple Silicon (M1, M2, M3, M4, etc.). Tu dispositivo actual no es compatible.",
"noCompatibleProviders": "No hay proveedores MLX compatibles disponibles. Por favor añade al menos un proveedor MLX para usar los Modelos MLX.",
"activeDownloads": "{count} Descarga MLX activa | {count} Descargas MLX activas",
"learnMore": "Aprende más sobre MLX",
"featured": {
"title": "Modelos MLX Destacados"
},
"installed": {
"title": "Modelos MLX Instalados"
},
"alreadyInstalledErrorMessage": {
"summary": "Ya instalado",
"detail": "El modelo MLX {modelName} ya está instalado"
},
"deleteConfirmation": {
"header": "Desinstalar modelo MLX",
"message": "¿Estás seguro de que quieres desinstalar {modelName}?",
"successMessage": {
"detail": "Modelo MLX eliminado"
},
"errorMessage": {
"detail": "Error al desinstalar el modelo MLX"
}
},
"modelInstall": {
"successMessage": {
"detail": "Modelo MLX {modelName} listo para usar"
},
"errorMessage": {
"detail": "Error al instalar el modelo MLX {modelName}"
},
"abortedMessage": {
"detail": "Descarga del modelo MLX {modelName} abortada"
}
},
"mlxCommunityModels": {
"title": "Modelos de la comunidad MLX",
"searchTitle": "Buscar Modelos de la comunidad MLX",
"searchPlaceholder": "Buscar modelos MLX de HuggingFace mlx-community",
"searchPlaceholderAlt": "Encuentra modelos optimizados para MLX de HuggingFace. O comienza con una de las familias de modelos a continuación.",
"searching": "Buscando modelos MLX..."
}
},
"llamacppEndpoint": {
"description": "Este proveedor se usa para ejecutar modelos LLaMA.cpp. Lo más probable es que no necesites cambiar el endpoint predeterminado. Si lo haces, asegúrate de que el servicio LLaMA.cpp esté en ejecución y accesible en la URL indicada."
},
"llamacppModels": {
"title": "Modelos LLaMA.cpp",
"activeDownloads": "{count} descarga activa de LLaMA.cpp | {count} descargas activas de LLaMA.cpp",
"alreadyInstalledErrorMessage": {
"summary": "Ya instalado",
"detail": "El modelo LLaMA.cpp {modelName} ya está instalado"
},
"installSuccessMessage": {
"summary": "Modelo listo",
"detail": "El modelo LLaMA.cpp {modelName} está listo para usar"
},
"installErrorMessage": {
"summary": "Error de instalación",
"detail": "Error al instalar el modelo LLaMA.cpp {modelName}"
},
"modelInstall": {
"successMessage": {
"detail": "Modelo LLaMA.cpp {modelName} instalado"
},
"errorMessage": {
"detail": "Error al instalar el modelo LLaMA.cpp {modelName}"
},
"abortedMessage": {
"detail": "Se canceló la descarga del modelo LLaMA.cpp {modelName}"
}
},
"abortInstallErrorMessage": {
"detail": "Error al cancelar la descarga del modelo LLaMA.cpp"
},
"abortInstallSuccessMessage": {
"detail": "Descarga del modelo LLaMA.cpp {modelName} cancelada"
},
"uninstallErrorMessage": {
"summary": "Error al desinstalar",
"detail": "Error al desinstalar el modelo LLaMA.cpp {modelName}"
},
"uninstallSuccessMessage": {
"summary": "Modelo eliminado",
"detail": "Modelo LLaMA.cpp {modelName} desinstalado"
},
"uninstallConfirmationMessage": {
"summary": "Desinstalar modelo LLaMA.cpp",
"detail": "¿Estás seguro de que deseas desinstalar {modelName}?"
},
"llamacppFeaturedModels": {
"title": "Modelos LLaMA.cpp destacados"
},
"llamacppInstalledModels": {
"title": "Modelos LLaMA.cpp instalados"
},
"llamacppCommunityModels": {
"title": "Modelos de la comunidad LLaMA.cpp",
"description": "Explora, busca e instala modelos GGUF directamente desde Hugging Face en tu carpeta local de modelos LLaMA.cpp.",
"searchTitle": "Buscar modelos de la comunidad LLaMA.cpp",
"searchPlaceholder": "Buscar modelos LLaMA.cpp en Hugging Face",
"searchPlaceholderAlt": "Encuentra modelos GGUF compatibles con LLaMA.cpp o elige una de las familias de modelos destacadas a continuación.",
"searching": "Buscando modelos LLaMA.cpp..."
}
}
},
"stickyPrompt": {
"title": "Sticky Prompt",
"disableStickyPrompt": "Deshabilitar Sticky Prompt",
"editDialog": {
"title": "Editar Sticky Prompt",
"description": "Cuando un prompt 'pegajoso' está fijado, se añade al principio de cada nuevo mensaje ignorando los anteriores. Esto efectivamente hace que la conversación esté centrada en un contexto activo. El prompt del sistema siempre está incluido en el contexto."
}
},
"contextShield": {
"title": "@:context Shield",
"enableContextShield": "Habilitar @:contextShield.title",
"enableContextShieldWithSplitsSync": "Habilitar @:contextShield.title{'.'} Mantén pulsado Option/Alt para @:contextShield.title todos los splits sincronizados.",
"removeContextShield": "Eliminar @:contextShield.title",
"removeContextShieldWithSplitsSync": "Deshabilitar @:contextShield.title{'.'} Mantén pulsado Option/Alt para eliminar @:contextShield.title de todos los splits sincronizados.",
"breakContext": "Romper @:context",
"customContext": "Personalizar @:context",
"generateContextSummary": "Generar resumen de @:context",
"contextSummary": "Resumen de @:context",
"regenerateContextSummary": "Regenerar resumen de @:context",
"clearContextSummary": "Eliminar resumen de @:context",
"summaryDescriptionInfoHeader": "Este resumen se genera a partir del contexto de las conversaciones anteriores y se incluye en el contexto al generar nuevos mensajes a continuación de este escudo.",
"contextShieldWithSummary": "@:contextShield.title con @:summary",
"editContextSummary": "Editar @:context @:summary"
},
"data": "Datos",
"advancedConfigurations": "Configuraciones avanzadas",
"applicationInfo": {
"title": "Información de la aplicación",
"appVersion": {
"title": "Versión de la aplicación",
"description": "Las últimas actualizaciones se verifican periódicamente y se te notificará cuando haya una nueva actualización disponible. También puedes buscar manualmente actualizaciones, que luego instalarán automáticamente cualquier actualización disponible.",
"checkForUpdates": "Buscar y aplicar actualizaciones",
"enableAutoUpdates": "Habilitar actualizaciones automáticas",
"disableAutoUpdates": "Deshabilitar actualizaciones automáticas",
"viewChangelog": "Ver registro de cambios",
"checkingForUpdates": "Buscando actualizaciones...",
"errorCheckingUpdates": "Error al verificar actualizaciones",
"autoUpdatesEnabled": "Actualizaciones automáticas habilitadas",
"autoUpdatesDisabled": "Actualizaciones automáticas deshabilitadas",
"updateAvailable": "Nueva actualización disponible",
"updateDownloading": "Descargando actualización...",
"noUpdatesAvailable": "Estás en la última versión"
},
"modelsInfo": {
"title": "Información sobre modelos",
"description": "Actualiza los metadatos de tu modelo local. Esta información incluye detalles sobre cada modelo, pero no los archivos del modelo en sí mismos. Esto se aplica a modelos tanto almacenados localmente como en línea.",
"fetchLatest": "Obtener última información de modelos",
"updated": "Información de modelos actualizada correctamente",
"errorUpdating": "Error al actualizar la información de modelos"
},
"appSettings": {
"title": "Ajustes de la aplicación",
"description": "Restablecer los ajustes de la aplicación a sus valores predeterminados puede ayudar a resolver problemas potenciales. Esto restaurará las preferencias predeterminadas del usuario, como la apariencia y la ruta de los modelos, pero no eliminará ningún dato, incluidas las charlas o los modelos descargados/importados.",
"resetApp": "Restablecer ajustes de la aplicación",
"resetConfirm": {
"header": "Restablecer ajustes de la aplicación",
"message": "¿Estás seguro de que deseas restablecer todos los ajustes de la aplicación a sus valores predeterminados? Esto restaurará las preferencias predeterminadas pero no eliminará tus datos."
},
"resetSuccess": "Ajustes de la aplicación restablecidos correctamente",
"resetError": "Error al restablecer los ajustes de la aplicación"
},
"dataPaths": {
"title": "Rutas de datos",
"description": "Todos los datos, incluidas las modelos, conversaciones, ajustes y registros, se almacenan localmente en tu dispositivo. Solo modifica el contenido de estos directorios si estás familiarizado con la estructura de archivos de la aplicación.",
"appData": "Datos de la aplicación",
"appLogs": "Registros de la aplicación",
"openInFinder": "Abrir en el Finder"
},
"helpAndDiscussions": {
"title": "Ayuda y Discusiones",
"description": "Conéctate con nuestra comunidad en Discord para obtener soporte, compartir tus comentarios y mantenerte informado.",
"sayHi": "¡Di hola!",
"viewDocs": "Ver documentos"
}
},
"logViewer": {
"title": "Visor de registro",
"description": "Ver y analizar los registros de la aplicación en tiempo real. Usa filtros y búsqueda para solucionar problemas de manera eficiente.",
"searchPlaceholder": "Buscar registros...",
"refresh": "Actualizar registros",
"autoRefreshOn": "Detener actualización automática",
"autoRefreshOff": "Habilitar actualización automática",
"pause": "Detener desplazamiento automático",
"resume": "Reanudar desplazamiento automático",
"copy": "Copiar registros al portapapeles",
"download": "Descargar registros",
"clearTemporarily": "Borrar visualización de registros",
"clearPermanently": "Borrar archivo de registros",
"showAllLogs": "Mostrar todos los registros",
"clearPermanentlyConfirmation": {
"header": "Borrar archivo de registros",
"message": "¿Estás seguro de que deseas borrar el archivo de registros? Esto eliminará permanentemente todas las entradas de registro."
},
"loading": "Cargando registros...",
"noLogs": "No hay registros disponibles",
"noMatchingLogs": "No hay registros que coincidan con los filtros actuales",
"totalLines": "{count} línea total | {count} líneas totales",
"filteredLines": "{count} línea filtrada | {count} líneas filtradas",
"copiedToClipboard": "Registros copiados al portapapeles",
"downloaded": "Registros descargados correctamente",
"clearedPermanently": "Archivo de registros borrado correctamente",
"errorLoading": "Error al cargar registros",
"errorCopying": "Error al copiar registros",
"errorDownloading": "Error al descargar registros",
"errorClearing": "Error al borrar registros",
"levels": {
"all": "Todos los niveles",
"error": "Error",
"warn": "Advertencia",
"info": "Información",
"debug": "Depurar"
}
},
"notifications": {
"title": "Notificaciones",
"description": "Revisa y gestiona las notificaciones de la aplicación, incluidos errores, advertencias y eventos informativos.",
"searchPlaceholder": "Buscar notificaciones...",
"searchingAllLogs": "Buscando todas las notificaciones en la base de datos",
"refresh": "Actualizar notificaciones",
"autoRefreshOn": "Actualización automática habilitada",
"autoRefreshOff": "Habilitar actualización automática",
"copy": "Copiar todo al portapapeles",
"copyLog": "Copiar notificación",
"download": "Descargar notificaciones",
"clearPermanently": "Eliminar todas las notificaciones",
"clearPermanentlyConfirmation": {
"header": "Eliminar notificaciones",
"message": "¿Estás seguro de que deseas eliminar permanentemente todas las notificaciones? Esta acción no se puede deshacer."
},
"loading": "Cargando notificaciones...",
"loadingMore": "Cargando más...",
"endOfList": "Fin de la lista",
"noLogs": "No hay notificaciones disponibles",
"totalLogs": "{count} notificación | {count} notificaciones",
"displayedLogs": "Mostrando {count}",
"copiedToClipboard": "Notificación copiada al portapapeles",
"downloaded": "Notificaciones descargadas correctamente",
"clearedPermanently": "Notificaciones eliminadas correctamente",
"deleted": "Notificación eliminada correctamente",
"errorLoading": "Error al cargar notificaciones",
"errorCopying": "Error al copiar notificación",
"errorDownloading": "Error al descargar notificaciones",
"errorClearing": "Error al borrar notificaciones",
"errorDeleting": "Error al eliminar notificación",
"purge": {
"label": "Purgar notificaciones",
"olderThan1Day": "Mayor que 1 día",
"olderThan7Days": "Mayor que 7 días",
"olderThan15Days": "Mayor que 15 días",
"olderThan30Days": "Mayor que 30 días",
"all": "Todo",
"confirmHeader": "Purgar notificaciones",
"confirmMessageDays": "¿Estás seguro de que deseas eliminar las notificaciones más antiguas de {days} días? Esta acción no se puede deshacer.",
"purge": "Purgar",
"purged": "Notificaciones purgadas correctamente",
"errorPurging": "Error al purgar notificaciones"
},
"levels": {
"all": "Todos los niveles",
"error": "Errores",
"warn": "Advertencias",
"info": "Información"
}
},
"sidebar": {
"expandGroup": "Expandir {group}",
"collapseGroup": "Colapsar {group}",
"showExtraItems": "Mostrar elementos extra",
"hideExtraItems": "Ocultar elementos extra",
"groups": {
"modelsPrompts": "Modelos & Prompts",
"personasTools": "Personas & Herramientas",
"knowledgeInsights": "Conocimiento & Perspectivas",
"system": "Sistema"
},
"appUpdater": {
"version": "Versión {version}",
"restartToApply": "Reiniciar para aplicar actualizaciones",
"restart": "Reiniciar ahora",
"downloading": "Descargando actualización...",
"viewChangelog": "Ver registro de cambios",
"openingChangelog": "Abriendo registro de cambios...",
"errorHint": "Error de actualización - haz clic para detalles",
"readyHint": "Actualización lista - reinicia para aplicar",
"downloadingHint": "Descargando actualización... {percent}%",
"errorDialog": {
"header": "Error de actualización",
"message": "Ocurrió un error mientras se actualizaba: {error}",
"downloadManually": "Descargar manualmente"
}
}
},
"showInNativeFileManager": {
"mac": "Mostrar en Finder",
"win": "Mostrar en el Explorador de archivos",
"lin": "Mostrar en el Administrador de archivos"
},
"settings": {
"title": "Ajustes",
"general": "General",
"defaultPrompts": "Prompts predeterminados",
"prompts": {
"description": "Estos prompts dan forma a cómo se generan los títulos, se construyen las consultas de búsqueda, se recupera el conocimiento y se resume el contexto. Los cambios se guardan en la configuración global maestra de este dispositivo y se aplican en todos los workspaces (no por workspace).",
"availablePrompts": "Prompts disponibles",
"customized": "Personalizados",
"customizedCount": "{count} personalizados",
"modified": "Modificado",
"usingCustom": "Usando personalizado",
"usingDefault": "Usando predeterminado",
"clickToEdit": "Haz clic para editar el prompt",
"variables": "Variables",
"lastModified": "Última modificación",
"selectPrompt": "Selecciona un prompt para personalizar",
"clearContent": "Borrar contenido",
"resetToDefault": "Restablecer a predeterminado",
"insertFromLibrary": "Insertar desde la biblioteca",
"saveChanges": "Guardar cambios",
"discardChanges": "Descartar cambios",
"categories": {
"generation": "Generación de contenido",
"search": "Búsqueda y síntesis",
"analysis": "Análisis y extracción"
}
},
"licenseAndAccess": "Licencia y acceso",
"fontSize": "Tamaño de fuente @:size",
"teams": "Equipos",
"appearance": "Apariencia",
"setupService": "Configurar {service}",
"dataBackup": {
"title": "@:data Backup",
"description": "Gestiona la configuración de copia de seguridad de tus datos. Puedes exportar tus datos para respaldo, borrarlos o restaurarlos desde un archivo de copia de seguridad."
},
"dataBackupReminderInterval": {
"title": "@:data Backup Reminder Interval",
"description": "Con qué frecuencia recordarte hacer una copia de seguridad de tus datos."
},
"dataMigrate": {
"action": "Migrar",
"title": "Migración de Studio",
"itemsToMigrate": {
"label": "Paso 2: Seleccionar elementos para migrar",
"action": "Seleccionar elementos"
},
"pointsToRemember": {
"activeWorkspace": "Puedes importar prompts de la biblioteca de prompts, proveedores de modelos remotos, conversaciones y archivos adjuntos en el workspace actual en el que te encuentras. Si deseas importar a un workspace diferente, por favor cambia a ese workspace primero.",
"remoteModelProviders": "La migración de proveedores de modelos remotos NO conservará las claves API, deberán ser reingresadas. Algunos modelos legacy pueden no ser compatibles en Studio.",
"attachmentsMigration": "Si migras archivos adjuntos, primero comprime la carpeta de archivos adjuntos. Puedes migrar archivos adjuntos por separado después de migrar la base de datos o junto con la base de datos."
},
"databaseMigration": {
"title": "Migración de base de datos",
"label": "Paso 1: Seleccionar archivo de base de datos de Msty App 1.x",
"action": "Arrastra y suelta tu archivo de base de datos de Msty",
"hint": "Los archivos de base de datos de Msty App 1.x suelen llamarse `msty.db`"
},
"attachmentsMigration": {
"title": "Migración de archivos adjuntos",
"migrate": "Migrar por separado",
"label": "Paso 3: Agregar carpeta de archivos adjuntos comprimidos",
"success": "Migración de archivos adjuntos exitosa",
"error": "Error en la migración de archivos adjuntos",
"action": "Arrastra y suelta tu carpeta de archivos adjuntos comprimidos",
"hint": "Comprime toda la carpeta de adjuntos de Msty App 1.x. Tras seleccionarla, puedes migrarla por separado si la añades después de la migración de la base de datos."
},
"missingDataWarning": {
"description": "Por favor selecciona un archivo de base de datos y al menos una tabla para migrar",
"title": "Datos faltantes"
},
"description": "Migra tus datos de Msty App 1.x a Studio. Los datos importados no sobrescribirán los datos existentes.",
"successMessage": "Migración de {item} exitosa",
"errorMessage": "Error en la migración de {item}",
"migrationInProgress": "Migración en curso...",
"migrationComplete": "Migración de {item} completada",
"migrationFail": "Fallo en la migración de {item}",
"migratingItem": "Migrando {item}...",
"migrationError": {
"title": "Error de migración",
"action": "Ver detalles",
"message": "Mensaje",
"cause": "Causa"
}
},
"colorPreference": "Preferencia de color",
"accentColor": "Color de acento",
"dark": "Oscuro",
"light": "Claro",
"default": "Predeterminado",
"system": "Sistema",
"baseColor": "Color base",
"emerald": "Esmeralda",
"lime": "Lima",
"green": "Verde",
"red": "Rojo",
"orange": "Naranja",
"amber": "Ámbar",
"yellow": "Amarillo",
"teal": "Verde azulado",
"cyan": "Cian",
"sky": "Cielo",
"indigo": "Índigo",
"violet": "Violeta",
"purple": "Púrpura",
"fuchsia": "Fucsia",
"pink": "Rosa",
"rose": "Rosa",
"slate": "Pizarra",
"gray": "Gris",
"zinc": "Zinc",
"stone": "Piedra",
"sandy": "Sandy",
"lighter": "Más claro",
"codeTheme": "Tema de código",
"rtlSupport": {
"title": "Soporte RTL",
"sectionDescription": "Habilitar diseños de derecha a izquierda para idiomas como árabe, hebreo y persa. Todo el espacio de trabajo se actualiza al instante al cambiarlo.",
"toggleLabel": "Habilitar diseño RTL",
"enabledHint": "El diseño de derecha a izquierda está activo en toda la aplicación.",
"disabledHint": "La aplicación está utilizando actualmente un diseño de izquierda a derecha."
},
"miniMap": {
"title": "Mini mapa",
"description": "Habilitar el navegador de mini mapa en línea con vistas previas de ramas. Al deshabilitar, se utiliza un navegador superior/inferior más simple."
},
"language": {
"sectionTitle": "Idioma y localización",
"sectionDescription": "Cambia entre idiomas de interfaz, previsualiza el modo desarrollador o importa un archivo de locale temporal. Si deseas contribuir con una traducción, visita https://github.com/cloudstack-llc/msty-studio-i18n",
"localeLabel": "Idioma",
"downloadTemplate": "Descargar plantilla",
"downloadBuiltInLocale": "Descargar este archivo de locale incorporado en formato JSON.",
"downloadCustomLocale": "Descargar el locale personalizado actual que importaste.",
"downloadDeveloperTemplate": "Descargar una plantilla vacía basada en el locale base.",
"importLocale": "Importar locale",
"importLocaleHint": "Los locales importados solo durarán hasta que reinicies o actualices la aplicación.",
"importSuccessSummary": "Locale importado",
"importSuccessDetail": "Ahora usando {code}. Revisa la interfaz para confirmar traducciones.",
"importError": "No pudimos importar ese archivo de locale. Asegúrate de que sea un JSON válido basado en la plantilla.",
"developerMode": {
"label": "Modo desarrollador"
}
},
"security": {
"title": "Seguridad",
"subtitle": "Configura los ajustes de seguridad para la aplicación"
},
"webSecurity": {
"title": "Deshabilitar seguridad web",
"description": "Esto puede ayudarte a resolver algunos problemas relacionados con CORS. Sin embargo, no se recomienda y puede exponer tu aplicación a riesgos de seguridad. Desactívalo solo si sabes lo que estás haciendo. Debes reiniciar la aplicación para que este ajuste tenga efecto.",
"applyAndRestart": "Aplicar y reiniciar"
},
"fontStyle": {
"title": "Estilo de fuente",
"galaxyFarAway": "Galaxy Far Away",
"everythingEverywhere": "Everything Everywhere",
"homeAlone": "Home Alone",
"lordOfTheLoops": "Lord of the Loops"
},
"renderingModules": {
"title": "Módulos de representación",
"selectPlaceholder": "@:select Rendering Modules"
},
"remoteToolsConnector": {
"description": "Permite a Msty Studio web conectar con este dispositivo para ejecutar herramientas remotas y acceder a modelos locales. Este servicio debe estar en ejecución activa para permitir conexiones remotas.",
"allowRemoteToolsConnection": "Habilitar servicio",
"connectionToken": {
"title": "Token de conexión",
"rememberToken": "Recordar token",
"placeholder": "Ingresa un token de conexión fuerte",
"description": "Este token se usa para autenticar la conexión entre Msty Studio y esta aplicación al conectar de forma remota. Puedes regenerarlo en cualquier momento para invalidar el token anterior. Asegúrate de usar un token fuerte y mantenerlo en secreto.",
"successMessage": {
"detail": "Servicio remoto ahora está activo"
},
"errorMessage": {
"summary": "Error al habilitar conector",
"detail": "Error al habilitar servicio remoto. Por favor revisa los registros para más detalles"
},
"copyConnectionInfo": "Copiar URL local",
"copyTunnelConnectionInfo": "Copiar URL del túnel",
"stopSuccessMessage": {
"detail": "Servicio remoto ahora está deshabilitado"
}
},
"enableTunneling": "Habilitar túneles (experimental)"
},
"copyLocalURL": "Copiar URL local",
"localAI": {
"notInstalled": {
"description": "Configura @:localAIService para ejecutar modelos de IA localmente en tu dispositivo."
},
"modelsLocation": {
"title": "Ubicación de modelos",
"description": "Configura dónde se almacenan tus modelos de IA locales."
},
"existingModels": {
"title": "Usar modelos existentes",
"description": "Usa modelos que ya tienes sin descargarlos nuevamente."
},
"serviceConfigurations": {
"title": "@:service Configurations",
"description": "Estas configuraciones se aplican al @:localAIService cuando se inicia. @:localAIService se reiniciará automáticamente después de guardar cualquier cambio.",
"configurePortNumber": {
"title": "Configurar número de puerto",
"description": "Número de puerto para @:localAIService{'.'} Deja vacío para usar el predeterminado."
},
"maximumParallelChats": {
"title": "Máximo de chats paralelos",
"description": "Número máximo de sesiones de chat concurrentes (al usar modo split)."
},
"maximumLoadedModels": {
"title": "Máximo de modelos cargados",
"description": "Número máximo de LLMs cargados al mismo tiempo. Mantener más modelos en memoria acelera las respuestas iniciales pero usa más recursos del sistema."
},
"enableNetworkAccess": {
"title": "Habilitar acceso a la red",
"description": "Permitir que otros dispositivos en tu red accedan a este @:localAIService a través de la dirección IP de este dispositivo."
},
"allowedNetworkOrigins": {
"title": "Orígenes de red permitidos",
"description": "Lista de orígenes de red permitidos aquí (separados por comas). Cada entrada debe comenzar con http:// o https://. Usa * para permitir todos los orígenes.",
"placeholder": "p.ej. https://msty.studio, http://localhost:3000, *"
},
"allowMstyStudioAccess": {
"title": "Permitir acceso desde Msty Studio",
"description": "Permitir conexiones desde Msty Studio Web a esta aplicación para que pueda acceder a @:localAIService{'.'}"
},
"captureServiceLogs": {
"title": "Capturar registros del @:service",
"description": "Habilitar registro para capturar datos de servicio para depuración. Usa esta opción solo cuando sea necesario."
},
"advancedConfiguration": {
"description": "Ingresa JSON válido para establecer variables de entorno para el @:localAIService{'.'}"
},
"unsavedChanges": {
"message": "Tienes cambios no guardados en las configuraciones de @:localAIService. Una vez que guardes, @:localAIService se reiniciará con las nuevas configuraciones.",
"saveChanges": "Guardar cambios y reiniciar servicio",
"successMessage": {
"detail": "Configuraciones de @:localAIService guardadas y servicio reiniciado"
},
"errorMessage": {
"detail": "Error al guardar configuraciones de @:localAIService. Por favor revisa los registros para más detalles."
}
}
},
"modelConfigurations": {
"title": "@:model Configurations",
"description": "Estas configuraciones se aplican a todos los modelos durante las sesiones de chat.",
"keepAliveTimeout": {
"title": "Tiempo de espera de mantenimiento de modelo",
"description": "Tiempo (en minutos) después del cual el modelo se descargará de la memoria si no se usa."
},
"advancedConfiguration": {
"description": "Ingresa JSON válido para pasar parámetros extra a los modelos durante las sesiones de chat."
},
"unsavedChanges": {
"message": "Tienes cambios no guardados en la configuración del modelo de @:settings.localAI.modelConfigurations.title{'.'} Asegúrate de guardarlos antes de comenzar una nueva sesión de chat.",
"successMessage": {
"detail": "Configuración de @:settings.localAI.modelConfigurations.title guardada"
},
"errorMessage": {
"detail": "Error al guardar @:settings.localAI.modelConfigurations.title. Por favor revisa los registros para más detalles."
}
}
},
"openSettings": "Abrir ajustes de Local AI",
"manageModels": {
"title": "Gestionar modelos de IA locales",
"description": "Navega, instala y gestiona modelos de IA para inferencia local.",
"openModelHub": "Abrir centro de modelos de IA locales"
}
},
"mlx": {
"notInstalled": {
"description": "Configura @:mlxService para ejecutar modelos de IA optimizados en tu Mac con Apple Silicon."
},
"modelsLocation": {
"title": "Ubicación de modelos",
"description": "Configura dónde se almacenan tus modelos MLX."
},
"existingModels": {
"title": "Usar modelos existentes",
"description": "Usa modelos que ya tienes sin descargarlos nuevamente."
},
"openSettings": "Abrir ajustes de MLX",
"manageModels": {
"title": "Gestionar modelos MLX",
"description": "Navega, instala y gestiona modelos MLX optimizados para Apple Silicon.",
"openModelHub": "Abrir centro de modelos MLX"
},
"compatibility": {
"title": "Compatibilidad del sistema",
"description": "Verifica si tu sistema es compatible con MLX.",
"checkAgain": "Comprobar nuevamente",
"status": {
"notChecked": "No comprobado",
"compatible": "Compatible",
"notCompatible": "No compatible"
},
"requirements": {
"title": "Requisitos de MLX:",
"appleSilicon": "Mac con Apple Silicon (M1, M2, M3, M4)",
"macOS13": "macOS 13.0 o posterior",
"unifiedMemory": "Arquitectura de memoria unificada"
}
}
},
"defaultRTD": {
"sectionTitle": "Búsqueda de datos en tiempo real",
"title": "Proveedor RTD predeterminado",
"description": "Elige el proveedor de búsqueda de datos en tiempo real que se usará al crear nuevas conversaciones.",
"saved": "{provider} establecido como proveedor RTD predeterminado",
"saveError": "Error al guardar el proveedor RTD predeterminado",
"noProvidersAvailable": "No hay proveedores RTD disponibles",
"configureLabel": "Configurar opciones avanzadas para",
"configSaved": "Configuración guardada para {provider}",
"mode": {
"title": "Modo RTD predeterminado",
"description": "Establece el modo RTD predeterminado para nuevas conversaciones.",
"pushHint": "Las nuevas conversaciones usarán el modo push por defecto.",
"pullHint": "Las nuevas conversaciones usarán el modo pull por defecto.",
"pullGuardHint": "El modo pull requiere un plan Aurum.",
"saveError": "Error al guardar el modo RTD predeterminado"
}
},
"conversation": {
"title": "Conversaciones",
"autoArchive": {
"title": "Autoarchivar conversaciones inactivas",
"description": "Mueve automáticamente las conversaciones inactivas al Archivo después del número de días seleccionado. Usa Activar autoarchivado para habilitarlo. Ejecutar archivado ahora realiza una limpieza única con el umbral actual.",
"enableLabel": "Activar autoarchivado",
"disableLabel": "Desactivar autoarchivado",
"enableHint": "Las conversaciones archivadas siguen accesibles desde la sección Archivo.",
"daysLabel": "Archivar después de",
"suffix": "día | días",
"disabledHint": "Actívalo o desactívalo desde el menú",
"runNowLabel": "Ejecutar archivado ahora",
"runNowDisabled": "Activa el autoarchivado y define días > 0",
"runNowResult": "Archivada {count} conversación | Archivadas {count} conversaciones",
"daysSaved": "Autoarchivado establecido a {days} día | Autoarchivado establecido a {days} días",
"enabledToast": "Autoarchivado activado",
"disabledToast": "Autoarchivado desactivado"
}
},
"workspaceLock": {
"title": "Bloqueo de espacio de trabajo y cifrado de secretos",
"description": "Bloquea tu espacio de trabajo con una contraseña para que los ajustes sensibles y las claves API permanezcan ocultos hasta que lo desbloquees. Desbloquea una vez por sesión, cambia la contraseña cuando quieras o desactiva la protección.",
"experimentalInfo": "El cifrado con contraseña es experimental. Guarda una copia de tus secretos antes de activarlo.",
"status": "Estado:",
"locked": "Bloqueado",
"unlocked": "Desbloqueado",
"lock": "Bloquear",
"unlock": "Desbloquear",
"protectedSection": "El espacio de trabajo está protegido. Desbloquéalo con tu contraseña.",
"unprotected": "Sin protección",
"unprotectedToast": "El bloqueo del espacio de trabajo no está configurado. Establece primero una contraseña.",
"unlockTitle": "Introduce la contraseña",
"cancel": "Cancelar",
"toastUnlocked": "Espacio de trabajo desbloqueado para esta sesión",
"toastLocked": "Espacio de trabajo bloqueado",
"disable": "Desactivar cifrado",
"disableHelp": "Introduce la contraseña para descifrar y desactivar el cifrado.",
"disableProtection": "Desactivar protección",
"disableProtectionHelp": "Introduce tu contraseña para desactivar la protección del espacio de trabajo. Esto eliminará el cifrado de los secretos y claves API almacenados.",
"disableProtectionConfirmMessage": "¿Seguro que deseas desactivar la protección del espacio de trabajo? Esto descifrará de forma permanente todos los secretos y claves API cifrados en tu base de datos.",
"enableProtection": "Activar protección",
"setPassphrase": "Establecer contraseña",
"setPassphraseWarning": "Importante: guarda tu contraseña de forma segura. No se puede recuperar una contraseña olvidada y, sin ella, perderás acceso a tus datos cifrados del espacio de trabajo.",
"changePassphrase": "Cambiar contraseña",
"changePassphraseWarning": "Importante: guarda tu nueva contraseña de forma segura. No se puede recuperar una contraseña olvidada y, sin ella, perderás acceso a tus datos cifrados del espacio de trabajo.",
"updatePassphrase": "Actualizar contraseña",
"passphrase": "Contraseña",
"passphraseCurrent": "Contraseña actual",
"passphraseNew": "Nueva contraseña",
"passphraseConfirm": "Confirmar contraseña",
"errorMinLength": "La contraseña debe tener al menos 8 caracteres",
"errorMismatch": "Las contraseñas no coinciden",
"errorInvalid": "Entrada no válida",
"setupSuccess": "Contraseña configurada",
"setupFailed": "Error al configurar la contraseña",
"rotateSuccess": "Contraseña actualizada",
"rotateFailed": "Error al actualizar la contraseña",
"disableConfirmMessage": "¿Descifrar secretos almacenados y eliminar la protección del espacio de trabajo?",
"disableSuccess": "Cifrado desactivado",
"disableFailed": "Error al desactivar el cifrado",
"incorrectPassphrase": "Contraseña incorrecta",
"lockedWithName": "{workspaceName} está bloqueado",
"switchBackTitle": "¿No puedes desbloquear este espacio de trabajo?",
"switchBackDescription": "Vuelve a {workspaceName} para seguir trabajando.",
"switchBackAction": "Volver a {workspaceName}",
"switchBackError": "No se pudo cambiar de espacio de trabajo. Inténtalo de nuevo."
},
"dangerZone": {
"title": "Zona de peligro",
"description": "Las acciones de esta sección son irreversibles y pueden causar pérdida de datos. Recomendamos exportar una copia de tus datos antes de realizar cualquier acción aquí.",
"clearData": {
"title": "Borrar datos",
"description": "Eliminar permanentemente todos los datos de la aplicación, incluidas conversaciones, prompts, modelos, ajustes y otra información relacionada en todos los espacios de trabajo."
},
"restoreData": {
"title": "Restaurar @:data desde una copia de seguridad",
"description": "Importa un archivo zip de datos exportado previamente para restaurar conversaciones, prompts, modelos, ajustes y otros datos en todos los espacios de trabajo. Esta acción sobrescribirá todos los datos existentes."
}
},
"branchBreadcrumbs": {
"title": "Breadcrumbs de ramas",
"description": "Muestra una barra de navegación compacta en la parte superior de las conversaciones cuando existen ramas."
},
"spellcheck": {
"title": "Corrector ortográfico",
"description": "Activa o desactiva el corrector ortográfico para los campos de texto. Desactivarlo puede ayudar al trabajar con varios idiomas o contenido técnico. La configuración de corrección ortográfica de tu sistema operativo puede sobrescribir estas preferencias. Reinicia la aplicación después de cambiar este ajuste para que los cambios surtan efecto."
},
"vibeCliProxy": {
"shortTitle": "Vibe CLI Proxy",
"title": "Vibe CLI Proxy",
"subtitle": "Proxy unificado para asistentes de programación IA. Conecta Claude Code, ChatGPT, Gemini y Qwen Code a través de un único endpoint local.",
"install": {
"copy": "Instala el binario CLIProxyAPI para conectar asistentes de programación IA (Claude Code, ChatGPT, Gemini, Qwen) mediante un proxy local con autenticación OAuth.",
"button": "Instalar Vibe CLI Proxy"
},
"health": {
"description": "Iniciar o detener el servicio Vibe CLI Proxy."
},
"endpoint": {
"title": "Endpoint del servicio",
"description": "Usa este endpoint para solicitudes compatibles con OpenAI a través de Vibe CLI Proxy.",
"network": "Host de red: {host}",
"copied": "Endpoint copiado"
},
"version": {
"title": "Versión",
"description": "Versión instalada de CLIProxyAPI.",
"current": "Versión actual",
"reinstall": "Reinstalar",
"unknown": "No instalado"
},
"configs": {
"title": "Configuraciones del servicio",
"description": "Configura el puerto, el directorio de autenticación y el acceso de red para el proxy.",
"port": "Puerto",
"retries": "Reintentos",
"authDir": "Directorio auth",
"enableNetworkAccess": "Permitir acceso de red",
"enableNetworkAccessHelp": "Permite a otros dispositivos de la red acceder al proxy.",
"captureLogs": "Capturar logs del servicio",
"captureLogsHelp": "Guarda los logs del proxy para resolución de problemas (puede aumentar el uso de disco).",
"enableRemoteManagement": "Permitir administración remota",
"enableRemoteManagementHelp": "Expone endpoints de administración; requiere una clave secreta.",
"managementKey": "Clave de administración",
"updated": "Configuraciones de Vibe CLI Proxy actualizadas",
"failed": "Error al actualizar configuraciones de Vibe CLI Proxy",
"portDescription": "Puerto local en el que el servicio proxy escucha solicitudes.",
"retriesDescription": "Número de reintentos ante fallos de solicitudes upstream.",
"authDirDescription": "Directorio donde se almacenan los tokens de autenticación.",
"managementKeyDescription": "Clave secreta requerida para operaciones de administración remota."
},
"authPath": {
"title": "Carpeta de autenticación",
"description": "Ruta donde Vibe CLI Proxy almacena tokens OAuth de proveedores conectados. Se gestiona automáticamente; no se puede editar."
},
"authStatus": {
"title": "Autenticación",
"description": "Vincula tus cuentas de IA de forma segura para que Vibe CLI Proxy pueda llamar a sus APIs en tu nombre. Al conectar, se abrirá una ventana del navegador del proveedor donde iniciarás sesión.",
"connecting": "Abriendo navegador para OAuth…",
"browser": "Completa la autenticación en tu navegador y vuelve aquí.",
"failed": "Error al iniciar el flujo OAuth",
"deviceCodeTitle": "Autorización de dispositivo",
"deviceCodeInstructions": "Introduce el código a continuación en la página de autorización para completar la autenticación.",
"copyCode": "Copiar código",
"codeCopied": "Código copiado al portapapeles",
"openGitHub": "Abrir GitHub"
},
"setup": {
"disclaimer": "Importante: Vibe CLI Proxy es un proxy local para agentes CLI de terceros. Al continuar, aceptas plena responsabilidad de cumplir los términos de uso de cada proveedor de IA. Úsalo bajo tu propio riesgo. Msty no es responsable de problemas de cuenta o servicio que puedan surgir."
}
},
"llamacpp": {
"notInstalled": {
"description": "Configura @:llamacppService para ejecutar modelos de IA eficientes en Windows, macOS y Linux."
},
"modelsLocation": {
"title": "Ubicación de modelos",
"description": "Configura dónde se almacenan tus modelos LLaMA.cpp."
},
"existingModels": {
"title": "Usar modelos existentes",
"description": "Usa modelos que ya tienes sin volver a descargarlos."
},
"openSettings": "Abrir ajustes de LLaMA.cpp",
"manageModels": {
"title": "Gestionar modelos LLaMA.cpp",
"description": "Explora, instala y gestiona modelos LLaMA.cpp para inferencia multiplataforma.",
"openModelHub": "Abrir hub de modelos LLaMA.cpp"
},
"compatibility": {
"title": "Compatibilidad del sistema",
"description": "Comprueba si tu sistema es compatible con LLaMA.cpp.",
"checkAgain": "Comprobar de nuevo",
"status": {
"notChecked": "No comprobado",
"compatible": "Compatible",
"notCompatible": "No compatible",
"requiresDesktop": "LLaMA.cpp requiere la aplicación de escritorio"
},
"systemInfo": {
"title": "Información del sistema",
"platform": "Plataforma",
"architecture": "Arquitectura",
"memory": "Memoria disponible",
"gpu": "GPU"
},
"requirements": {
"title": "Requisitos de LLaMA.cpp:",
"desktop": "Aplicación de escritorio (Windows, macOS o Linux)",
"memory": "Al menos 4 GB de RAM (8 GB+ recomendado)",
"storage": "Almacenamiento suficiente para modelos (varía según el tamaño del modelo)",
"gpu": "Opcional: GPU para aceleración (CUDA, Metal, OpenCL)"
}
},
"serviceConfigurations": {
"threads": {
"title": "Hilos de CPU",
"description": "Número de hilos de CPU para la inferencia. Establece -1 para autodetectar (corresponde a la bandera --threads)."
},
"concurrentRequests": {
"title": "Solicitudes simultáneas",
"description": "Número de chats que pueden ejecutarse a la vez por modelo (corresponde a la bandera --parallel). Con parallel=2, cada chat obtiene la mitad del tamaño de contexto.",
"inputLabel": "Solicitudes simultáneas"
},
"advancedConfiguration": {
"description": "Introduce un JSON válido para definir variables de entorno del proceso llama-server. Estas variables tienen menor prioridad que los argumentos CLI definidos en las configuraciones del servicio y del modelo."
}
},
"modelConfigurations": {
"title": "Configuraciones de @:model",
"description": "Estas configuraciones se aplican a todos los modelos durante las sesiones de chat.",
"keepAliveTimeout": {
"title": "Tiempo de espera de keep-alive del modelo",
"description": "Tiempo (en minutos) tras el cual el modelo se descargará de la memoria si no se usa."
},
"unsavedChanges": {
"message": "Tienes cambios sin guardar en @:settings.llamacpp.modelConfigurations.title{'.'} Asegúrate de guardarlos antes de iniciar una nueva sesión de chat.",
"successMessage": {
"detail": "@:settings.llamacpp.modelConfigurations.title guardado"
},
"errorMessage": {
"detail": "Error al guardar @:settings.llamacpp.modelConfigurations.title. Revisa los logs para más detalles."
}
}
}
}
},
"mlxService": "Servicio MLX",
"settingsAndConfigs": "Ajustes y configuraciones",
"prompts": "Prompts",
"apiKeys": "Claves API",
"workspaces": {
"createNewWorkspace": "Crear nuevo workspace",
"switchWorkspace": "Cambiar workspace",
"switchToCustomWorkspace": "Cambiar al workspace {workspaceName}",
"hideWorkspaceTray": "Ocultar bandeja de workspace",
"showWorkspaceTray": "Mostrar bandeja de workspace",
"switchAction": {
"successMessage": {
"summary": "¡Workspace cambiado!",
"detail": "{workspaceName} es ahora el workspace activo"
}
},
"deleteWorkspace": "Eliminar workspace",
"workspaceIsActive": "Workspace {workspaceName} está activo",
"currentActiveWorkspace": "Tu workspace activo actual es: {workspaceName}",
"workspaceForm": {
"newTitle": "Nuevo workspace",
"editTitle": "Editar workspace",
"workspaceName": "Nombre del workspace",
"whatToCopy": "¿Qué copiar desde el workspace {activeWorkspace}?",
"createAndSwitch": "Crear y cambiar",
"duplicateWorkspaceName": "El nombre del workspace ya existe",
"invalidWorkspaceName": "Nombre de workspace inválido o duplicado",
"updateSuccessMessage": {
"detail": "Workspace actualizado"
},
"updateErrorMessage": {
"detail": "Error al actualizar el workspace"
},
"createSuccessMessage": {
"detail": "Workspace creado"
},
"createErrorMessage": {
"detail": "Error al crear el workspace"
},
"copyDisabledForLockedWorkspace": "La copia de elementos está desactivada porque el espacio de trabajo activo tiene una contraseña establecida.",
"createOnly": "Crear y quedarse",
"createAndSwitchSuccessMessage": {
"detail": "Espacio de trabajo creado y cambiado"
}
},
"deleteConfirmation": {
"header": "Eliminar workspace",
"message": "¿Estás seguro de que deseas eliminar {workspaceName}? Todos los datos asociados con este workspace serán eliminados. Esta acción no se puede deshacer.",
"downloadWorkspaceData": "@:download Workspace @:data",
"successMessage": {
"detail": "Workspace {workspaceName} eliminado"
},
"errorMessage": {
"detail": "Error al eliminar el workspace"
}
},
"exportWorkspace": {
"title": "@:export Workspace",
"successMessage": {
"detail": "Datos del workspace {workspaceName} exportados como {fileName}"
},
"errorMessage": {
"detail": "Error al exportar el workspace {workspaceName}"
}
},
"importWorkspace": {
"title": "@:import Workspace",
"dragAndDropMessage": "Arrastra y suelta un archivo de workspace de Msty comprimido para importar y crear un nuevo workspace. En caso de nombres duplicados, el workspace importado será renombrado. Puedes cambiarlo más tarde.",
"successMessage": {
"detail": "El workspace {workspaceName} ha sido importado"
},
"errorMessage": {
"detail": "Error al importar el workspace"
}
}
},
"attachments": {
"title": "Adjuntos",
"documents": "Documentos",
"images": "Imágenes",
"webpages": "Páginas web",
"youTubeLinks": "Enlaces de YouTube",
"dropThem": "¡Súbelos!",
"selectAll": "@:select all",
"deselectAll": "Deseleccionar todos",
"dragAnDropHere": "Arrastra y suelta {attachmentType} aquí",
"orClickToBrowse": "o haz clic para explorar",
"addDocumentTypes": "Agregar {documentTypes} así como algunos otros archivos de código",
"addImageTypes": "Agregar imágenes .png, .jpg o jpeg",
"dragAndDropOrBrowseMore": "Arrastra y suelta o explora más",
"commaSeparatedUrls": "o pega URL separadas por comas",
"manageTooltip": "Haz clic para gestionar {attachmentType} adjuntos",
"modelMayNotSupportImages": "El modelo seleccionado puede no soportar adjuntos de imágenes.",
"documentsAttachedCount": "{count} documento adjunto | {count} documentos adjuntos",
"imagesAttachedCount": "{count} imagen adjunta | {count} imágenes adjuntas",
"webpagesAttachedCount": "{count} página web adjunta | {count} páginas web adjuntas",
"webpageLinks": "un enlace de página web | enlaces de página web",
"holdKeyToShareWithSyncedSplits": "Mantén {key} para compartir con Splits Sincronizados",
"youTubeLinksAttachedCount": "{count} enlace de YouTube adjunto | {count} enlaces de YouTube adjuntos",
"dropFiles": {
"errorMessage": {
"detail": "Error al adjuntar archivos"
}
},
"dropWebpages": {
"errorMessage": {
"detail": "Error al adjuntar páginas web"
}
},
"dropYouTubeLinks": {
"errorMessage": {
"detail": "Error al importar la información de los enlaces de YouTube. {errorMessage}"
}
},
"detachAll": {
"title": "Desvincular todo",
"confirm": {
"header": "Desvincular todo",
"message": "¿Estás seguro de que deseas desvincular todos los {attachmentType}? Estos {attachmentType} ya no estarán disponibles en la conversación en ninguno de los splits.",
"acceptLabel": "@:delete"
},
"maxResult": {
"title": "Resultado máximo"
},
"successMessage": {
"detail": "Adjuntos desvinculados"
}
},
"addNew": "Agregar nuevos adjuntos",
"clickToInstallVisionCapabilities": "Haz clic para instalar capacidades de visión.",
"checkingVisionCapabilities": "Comprobando capacidades de visión...",
"installingVision": "Instalando capacidades de visión..."
},
"jinaAPI": {
"manageJinaAPIKeys": "Gestionar claves API de Jina",
"jinaApiKeyRequired": "Se requiere una clave API de Jina válida para usar esta función. Puedes visitar el siguiente enlace para obtener una gratis:",
"willUseJina": {
"description": "Actualmente tienes {count} clave(s) de Jina API añadida(s). Puedes añadir más claves y Msty elegirá aleatoriamente una clave válida para usar en la solicitud."
},
"jinaAPIKeyForm": {
"newTitle": "Nueva clave API de Jina",
"editTitle": "Editar clave API de Jina",
"availableKeys": "Claves disponibles",
"reVerifyKey": "La clave está {status}. Haz clic para volver a verificar",
"verifyKeyAndAdd": "Verificar clave y añadir",
"newDescription": "Agrega una nueva clave API de Jina para usar con los puntos finales de Jina Reader y Search. Puedes añadir múltiples claves y verificarlas para asegurarte de que son válidas. Al usar las claves, Msty elegirá aleatoriamente una clave válida para usar en la solicitud.",
"keyIsGood": {
"summary": "¡Todo bien!",
"detail": "La clave parece ser válida y está lista para usar"
},
"successMessage": {
"detail": "Clave API de Jina añadida"
},
"errorMessage": {
"summary": "Error{status}!",
"detail": "Error al añadir la clave API de Jina. Por favor revisa la clave API y asegúrate de que es válida."
}
},
"tokenBudget": {
"title": "Presupuesto de tokens",
"description": "Número máximo de tokens a usar en solicitudes de Jina API. Esto ayuda a controlar costos y longitud de la respuesta."
}
},
"rtd": {
"title": "RTD en tiempo real @:data",
"contexts": "@:rtd.title Contexts",
"enableRTD": "Configurar @:rtd.title",
"removeSource": {
"successMessage": {
"detail": "Fuente eliminada"
},
"errorMessage": {
"detail": "Error al eliminar fuente"
}
},
"updateSource": {
"errorMessage": {
"detail": "Error al actualizar fuente"
}
},
"searchProvider": "Proveedor de búsqueda",
"jina": "Jina",
"useRemoteConnector": "Usar @:remoteToolsConnector.title",
"noSources": "No hay fuentes disponibles",
"settings": {
"maxResult": {
"title": "Resultado máximo"
},
"saveAsDefaultProvider": {
"title": "Guardar {providerName} como proveedor de búsqueda predeterminado",
"successMessage": {
"summary": "{providerName} ¡eso es!",
"detail": "{providerName} es ahora el proveedor de búsqueda predeterminado"
}
},
"autoWithFallback": "Automático con retroceso",
"google": "Google",
"brave": "Brave",
"ecosia": "Ecosia",
"customSearchQuery": {
"title": "Consulta de búsqueda personalizada",
"placeholder": "Esta consulta se usará para buscar. Déjala vacía para usar el prompt como consulta"
},
"limitByDomain": {
"title": "Limitar por dominio",
"placeholder": "p.ej. reddit.com o gov o (site:reddit.com OR site:gov)",
"commaDelimitedPlaceholder": "Ingresa dominios separados por comas p.ej. reddit.com,wikipedia.com"
},
"extraOperators": {
"title": "Operadores extra"
},
"dateRange": {
"title": "Rango de fecha de búsqueda",
"placeholder": "Después de la fecha - Antes de la fecha"
},
"successMessage": {
"detail": "@:rtd.title habilitado"
},
"types": {
"api": "API",
"rtc": "@:remoteToolsConnector.title"
}
},
"useJinaLabel": "Usar @:rtd.jina",
"google": {
"useLabel": "Usar @:rtd.settings.google",
"apiKey": {
"placeholder": "@:rtd.settings.google @:apiKey"
},
"cseIdLabel": "ID de motor de búsqueda personalizado",
"cseIdPlaceholder": "@:rtd.settings.google @:rtd.google.cseIdLabel"
},
"brave": {
"useLabel": "Usar @:rtd.settings.brave",
"resultFilter": "Filtrar resultados",
"apiKey": {
"placeholder": "@:rtd.settings.brave @:apiKey"
}
},
"searXng": {
"title": "SearXNG",
"engines": {
"title": "Motores",
"placeholder": "Lista separada por comas de motores a usar p.ej. google, brave, etc."
},
"extraParams": {
"title": "Parámetros adicionales",
"placeholder": "Agregar parámetros adicionales. Este debería ser un objeto JSON válido."
},
"notice": "Tu servidor SearXNG debe tener JSON habilitado y ser servido a través de HTTPS. Para una solución alternativa sobre HTTP en algunos navegadores, consulta nuestra documentación en https://docs.msty.studio",
"useLabel": "Usar @:rtd.searXng.title"
},
"tavily": {
"title": "Tavily",
"useLabel": "Usar @:rtd.tavily.title",
"searchTopic": {
"title": "Tema de búsqueda",
"placeholder": "Categoría de búsqueda",
"general": "General",
"news": "Noticias",
"finance": "Finanzas"
},
"apiKey": {
"placeholder": "Ingresa la clave API de @:rtd.tavily.title"
},
"searchDepth": {
"title": "Profundidad de búsqueda",
"placeholder": "Profundidad de la búsqueda",
"advanced": "Avanzado",
"basic": "Básico"
},
"timeRange": {
"title": "Rango de tiempo",
"placeholder": "Rango de tiempo desde la fecha actual"
}
},
"exa": {
"title": "Exa",
"useLabel": "Usar @:rtd.exa.title",
"apiKey": {
"placeholder": "Ingresa la clave API de @:rtd.exa.title"
}
},
"ollama": {
"title": "Ollama",
"useLabel": "Usar @:rtd.ollama.title",
"apiKey": {
"placeholder": "Ingresa la clave API de @:rtd.ollama.title"
}
},
"disableRTD": {
"label": "Deshabilitar @:rtd.title",
"successMessage": {
"detail": "@:rtd.title deshabilitado"
},
"errorMessage": {
"detail": "Error al deshabilitar @:rtd.title"
}
}
},
"remoteToolsConnector": {
"title": "Servicio Remoto",
"connectionRequired": "Para usar esta función, necesitas conectarte con @:remoteToolsConnector.title{'.'}",
"experimentalInfo": "RTD es experimental y puede no funcionar como se espera.",
"isConnectedTooltip": "@:remoteToolsConnector.title - Conectado",
"isDisconnectedTooltip": "@:remoteToolsConnector.title - Desconectado",
"connectNow": "@:connect with @:remoteToolsConnector.title",
"connectFirst": "@:connect @:remoteToolsConnector.title primero",
"reconnectNow": "@:reconnect with @:remoteToolsConnector.title",
"disconnectNow": "@:disconnect Now",
"checkHealth": "Verificar estado de la conexión",
"connectionDetails": "Editar detalles de conexión",
"noPermissionPolicy": "No tienes permiso para acceder a esta función",
"connect": {
"form": {
"title": "Conectar a @:remoteToolsConnector.title",
"saveAndConnect": "Guardar y conectar",
"rememberConnectionInfo": "Recordar @:connectionInfo"
},
"import": {
"title": "@:import @:connectionInfo",
"dragAndDropMessage": "Arrastra y suelta el archivo de configuración de conexión de Msty Remote para importar y conectar a @:remoteToolsConnector.title{'.'}",
"successMessage": {
"detail": "@:connectionInfo importado"
},
"errorMessage": {
"detail": "Error al importar @:connectionInfo"
}
},
"export": {
"title": "Exportar @:connectionInfo guardado",
"successMessage": {
"detail": "@:connectionInfo exportado"
},
"errorMessage": {
"detail": "Error al exportar @:connectionInfo"
}
},
"successMessage": {
"summary": "¡Conectado!",
"detail": "@:remoteToolsConnector.title conectado en {url}"
},
"errorMessage": {
"summary": "Error de conexión",
"detail": "Error al conectar con @:remoteToolsConnector.title{'.'} Asegúrate de que el @:remoteToolsConnector.title esté en funcionamiento y sea accesible en la URL proporcionada.",
"tokenMissing": "Falta el token. Por favor verifica el token y vuelve a intentarlo."
},
"forgetConnectionInfo": "Olvidar información de conexión anterior",
"forgetSuccessMessage": {
"detail": "@:connectionInfo olvidado"
},
"toolCommandPaths": {
"title": "Rutas de comandos de herramientas",
"description": "Si estás usando conjuntos de herramientas, establece las rutas a los comandos que estás usando.",
"selectPlaceholder": "@:select o ingresa un comando",
"pathPlaceholder": "Ingresa la ruta completa al comando",
"assignPath": "Asignar @:path"
}
},
"disconnect": {
"successMessage": {
"summary": "¡Desconectado!",
"detail": "Desconectado de @:remoteToolsConnector.title"
}
}
},
"forge": {
"forgeMode": {
"title": "Modo Forge",
"description": "El modo Forge te da un lienzo en blanco y un potente escritor para crear, editar, estilizar y refinar contenido libremente."
},
"title": "Forge",
"forgeContent": "@:forge.title Content",
"forgingContent": "Forjando contenido",
"editRawMarkdown": "Editar markdown raw",
"disabledEditRawMarkdown": "Este contenido ha sido forjado. No se permite la edición de markdown raw.",
"saveChanges": {
"title": "Guardar cambios",
"successMessage": {
"detail": "Cambios guardados"
},
"errorMessage": {
"detail": "Error al guardar cambios"
}
},
"placeholders": {
"writeSomething": "Escribe algo o escribe / para opciones...",
"detailsSummary": "Ingresa el resumen de detalles"
},
"prompts": {
"simplify": "Simplificar",
"fixSpellingAndGrammar": "Corregir ortografía y gramática",
"makeShorter": "Hacer más corto",
"makeLonger": "Hacer más largo",
"tldr": "TL;DR;",
"emojify": "Emojificar",
"changeTone": {
"title": "@:change Tone",
"academic": "Académico",
"business": "Negocios",
"casual": "Informal",
"childFriendly": "Apropiado para niños",
"conversational": "Conversacional",
"emotional": "Emocional",
"humorous": "Humorístico",
"informative": "Informativo",
"inspirational": "Inspirador",
"professional": "Profesional",
"narrative": "Narrativo",
"objective": "Objetivo",
"persuasive": "Persuasivo",
"poetic": "Poético"
}
},
"clearFormatting": "Borrar formato",
"bold": "Negrita",
"italic": "Cursiva",
"underline": "Subrayado",
"strikethrough": "Tachar",
"code": "Código",
"codeBlock": "Bloque de código",
"blockQuote": "Cita en bloque",
"undo": "Deshacer",
"redo": "Rehacer",
"texts": "Textos",
"paragraph": "Párrafo",
"heading1": "Encabezado 1",
"heading2": "Encabezado 2",
"heading3": "Encabezado 3",
"lists": "Listas",
"bulletList": "Lista con viñetas",
"numberedList": "Lista numerada",
"taskList": "Lista de tareas",
"whatToForgePlaceholder": "¿Qué quieres forjar hoy?",
"forgeWriter": "Escritor Forge",
"inlinePrompt": {
"placeholder": "Escribe tu prompt personalizado...",
"ask": "Preguntar",
"askTooltip": "Pide al modelo que genere una respuesta basada en un prompt personalizado"
},
"forgeCanvas": "@:forge.title Canvas",
"newForgeCanvas": "Nuevo @:forge.forgeCanvas",
"addNewForgeCanvas": "Agregar nuevo @:forge.forgeCanvas",
"editAsBranch": "Editar como rama"
},
"preview": "Vista previa",
"prompt": "Prompt | Prompts",
"discard": "Descartar",
"insert": "Insertar",
"regenerate": "Regenerar",
"rewrite": "Reescribir",
"exit": "Salir",
"customPrompt": "Prompt personalizado",
"markdown": "Markdown",
"json": "JSON",
"invalidJson": "JSON inválido",
"downloadMarkdown": "@:download as @:markdown file",
"downloadJson": "@:download as @:json file",
"formattedHTML": "HTML formateado",
"downloadHTML": "@:download as HTML file",
"copyMarkdownToClipboard": "Copiar @:markdown al portapapeles",
"copyHTMLToClipboard": "Copiar HTML al portapapeles",
"copiedToClipboard": {
"summary": "¡Copiado!",
"markdownDetail": "Contenido copiado al portapapeles como @:markdown",
"htmlDetail": "Contenido copiado al portapapeles como HTML",
"jsonDetail": "Contenido copiado al portapapeles como @:json",
"itemCopied": "{item} copiado al portapapeles",
"formattedDetail": "Contenido copiado al portapapeles como texto formateado"
},
"exportJsonToClipboard": "Contenido exportado al portapapeles como @:json",
"variable": "Variable | Variables",
"pinItem": {
"title": "Elemento {item} fijado",
"action": "Fijar {item}",
"successMessage": {
"detail": "{item} fijado"
},
"errorMessage": {
"detail": "No se puede fijar {item}"
}
},
"unpinItem": {
"action": "Desfijar {item}",
"successMessage": {
"detail": "{item} desfijado"
},
"errorMessage": {
"detail": "No se puede desfijar {item}"
}
},
"setDefaultItem": {
"title": "Predeterminado {item}",
"action": "Establecer {item} como predeterminado",
"successMessage": {
"detail": "{item} establecido como predeterminado"
},
"errorMessage": {
"detail": "No se puede establecer {item} como predeterminado"
}
},
"unsetDefaultItem": {
"action": "Predeterminado {item}. Haz clic para deshacer.",
"successMessage": {
"detail": "{item} eliminado como predeterminado"
}
},
"model": "Modelo",
"modelSettings": "@:model Settings",
"syncSplit": "Sincronizar @:split",
"name": "Nombre",
"split": "Split | Splits",
"template": "Template | Templates",
"discardChanges": "Descartar cambios",
"applyChanges": "Aplicar cambios",
"splitPreset": {
"title": "Split @:preset | Split @:preset",
"selectPlaceholder": "@:select a @:preset",
"new": "Nuevo @:preset",
"newSplit": "Nuevo @:preset",
"splits": {
"splitIndex": "Split {index}",
"delete": "@:delete @:preset"
},
"import": {
"title": "Importar @:preset | Importar @:preset",
"dragAndDropMessage": "Arrastra y suelta un archivo de presets de Msty comprimido para importar y crear nuevos presets. En caso de nombres duplicados, los presets importados serán renombrados. Puedes cambiarlo más tarde.",
"successMessage": {
"detail": "@:preset importado"
},
"errorMessage": {
"detail": "Error al importar presets"
}
},
"export": {
"title": "Exportar @:preset | Exportar @:preset",
"selected": "Exportar @:preset seleccionado | Exportar @:preset seleccionados",
"successMessage": {
"detail": "Split preset exportado como {fileName} | Split presets exportados como {fileName}"
},
"errorMessage": {
"detail": "Error al exportar preset | Error al exportar presets"
}
},
"delete": {
"title": "@:delete @:preset | Eliminar @:preset",
"selected": "@:delete @:preset seleccionado | Eliminar @:preset seleccionados",
"deleteConfirmation": {
"header": "@:delete @:preset",
"description": "¿Estás seguro de que deseas eliminar {presetName}? | ¿Estás seguro de que deseas eliminar {count} presets?"
},
"successMessage": {
"detail": "Split preset eliminado | Split presets eliminados"
},
"errorMessage": {
"detail": "No se pudo eliminar el preset de split | No se pudo eliminar los presets de split"
}
},
"update": {
"successMessage": {
"detail": "Split preset actualizado"
},
"errorMessage": {
"detail": "No se pudo actualizar el preset de split"
}
},
"save": {
"successMessage": {
"detail": "Split preset guardado"
},
"errorMessage": {
"detail": "No se pudo guardar el preset de split"
}
},
"empty": {
"title": "No hay disponibles @:splitPreset.title.",
"description": "Comienza agregando o importando un nuevo @:splitPreset.title"
},
"invalidTemplatesMessage": {
"summary": "Plantillas inválidas",
"detail": "Algunas plantillas son inválidas o faltan campos requeridos. Por favor corrígelas antes de continuar."
}
},
"toolbox": {
"title": "Caja de herramientas",
"toolsUsageWillSkip": "Msty @:remoteToolsConnector.title no se está ejecutando; el uso de herramientas será omitido.",
"tools": {
"title": "Herramienta | Herramientas",
"description": "Una colección de herramientas para ayudarte con tu trabajo con LLM.",
"availableTools": "Herramientas disponibles",
"availableToolsets": "Conjuntos de herramientas disponibles",
"setDefaultParams": "Establecer parámetros predeterminados",
"setParams": "Establecer parámetros",
"missingThisDependency": "Parece que falta esta dependencia en tu entorno. Sin ella, la herramienta puede no funcionar como se espera.",
"defaultParamsForm": {
"header": "Parámetros predeterminados para {toolName}",
"description": "Estos parámetros se usarán globalmente para todas las instancias de la herramienta {toolName}. Puedes sobrescribirlos al crear un toolset.",
"args": {
"label": "Argumentos",
"description": "@:select un @:argument y establece su valor. Déjalo en blanco para omitir establecer un valor.",
"customArg": {
"label": "@:argument personalizado",
"description": "Introduce el nombre del nuevo @:argument{'.'} Separa múltiples argumentos con una coma.",
"placeholder": "p.ej. --arg1, someArg, -verbose"
}
},
"env": {
"label": "Variables de entorno",
"description": "@:select o introduce una nueva @:variable de entorno y establece su valor.",
"addEnv": "Agregar @:variable de entorno",
"selectPlaceholder": "@:select una @:variable de entorno",
"enterNew": "Agregar una nueva @:variable de entorno"
},
"successMessage": {
"saveDetail": "Parámetros predeterminados guardados para {toolName}."
},
"errorMessage": {
"saveDetail": "Error al guardar parámetros predeterminados."
}
},
"addNewTool": {
"title": "Agregar nueva herramienta",
"description": "Agrega tu propia herramienta compatible con MCP a la caja de herramientas. Una vez añadida, puedes agregarla a un conjunto de herramientas, establecer parámetros y usarla con un modelo.",
"namePlaceholder": "Dale un nombre (usa el ID de la herramienta por defecto)",
"id": {
"label": "ID de la herramienta",
"placeholder": "Identificador único de la herramienta (autocompletado si se detecta en la configuración)"
},
"duplicateId": "Ya existe una herramienta con este ID. Por favor ingresa un ID único.",
"successMessage": {
"detail": "Herramienta añadida a la caja de herramientas. Ahora puedes agregarla a un toolset y usarla con un modelo.",
"summary": "Herramienta añadida"
},
"successMessageWithToolset": {
"detail": "Herramienta añadida a la caja de herramientas y se creó automáticamente un toolset coincidente. Está lista para usarse con un modelo.",
"summary": "Herramienta añadida"
},
"errorMessage": {
"detail": "Error al añadir la herramienta a la caja de herramientas. {error}"
},
"toolConfig": {
"label": "Configuración de la herramienta",
"placeholder": "Introduce o pega el JSON de configuración de la herramienta. Acepta configuración directa o formatos envueltos (extraerá automáticamente toolId)",
"showExampleTitle": "Muéstrame un ejemplo de configuración de herramienta",
"explanation": "La configuración de la herramienta acepta múltiples formatos, incluidos configs envueltos con mcpServers. Extraerá automáticamente toolId y nombre cuando sea posible. Debe contener como mínimo {command}. Los argumentos dinámicos deben envolverse entre llaves {curly} así: {argExample}. De forma similar, las variables de entorno dinámicas pueden establecerse usando {envVarLabel}."
},
"autoCreateToolset": {
"label": "Crear automáticamente un toolset con el mismo nombre"
}
},
"editTool": {
"title": "Editar herramienta",
"description": "Actualiza el nombre, notas y configuración de la herramienta.",
"successMessage": {
"detail": "Herramienta @:updatedSuccess"
},
"errorMessage": {
"detail": "Error al actualizar la herramienta."
}
},
"emptyPlaceholder": {
"description1": "Usa herramientas MCP externas impulsadas por Msty @:remoteToolsConnector.title para ampliar las capacidades de tus modelos y mejorar la experiencia con LLM.",
"description2": "Puedes comenzar importando muchas de las herramientas que Msty incluye o agregando tus propias herramientas.",
"description3": "Nota: Estas herramientas no son provistas, probadas ni mantenidas por Msty. Solamente ofrecemos una plataforma para usarlas y permitir su importación como comodidad. USA ESTAS HERRAMIENTAS BAJO TU RESPONSABILIDAD. Msty no se responsabiliza de problemas derivados de su uso. Para soporte, contacta al autor de la herramienta."
},
"importTools": {
"title": "Importar @:toolbox.tools.title predeterminadas",
"successMessage": {
"detail": "{count} herramientas predeterminadas importadas con éxito. Puedes crear toolsets y usarlas con un modelo."
},
"successMessageWithToolsets": {
"detail": "{count} herramientas predeterminadas importadas con éxito y {toolsetCount} toolsets correspondientes creados automáticamente."
},
"errorMessage": {
"detail": "Error al importar @:toolbox.tools.title predeterminadas"
}
},
"deleteConfirmation": {
"header": "Eliminar herramienta",
"description": "¿Estás seguro de que deseas eliminar {toolName}?",
"successMessage": {
"detail": "Herramienta eliminada"
},
"errorMessage": {
"detail": "Error al eliminar la herramienta"
}
},
"deleteAll": {
"confirmationHeader": "Eliminar todas las herramientas",
"confirmationMessage": "¿Estás seguro de que deseas eliminar todas las herramientas? Esta acción no se puede deshacer.",
"successMessage": "Todas las herramientas han sido eliminadas con éxito",
"errorMessage": "Error al eliminar todas las herramientas"
},
"copiedToClipboard": "Configuración de la herramienta copiada al portapapeles",
"viewToolsUsage": {
"title": "Ver uso de herramientas",
"noToolCalls": {
"title": "No se encontraron llamadas a herramientas",
"description": "Parece que había herramientas disponibles para el modelo pero no realizó ninguna llamada. Puede ser que el modelo no necesitara usar ninguna herramienta."
}
},
"authorize": "Autorizar"
},
"toolsets": {
"title": "Conjunto de herramientas | Conjuntos de herramientas",
"emptyPlaceholder": {
"title": "No se encontraron toolsets",
"description": "Los toolsets son una colección de herramientas con parámetros. Puedes crear un toolset y agregar herramientas a él. Al chatear con un modelo, puedes seleccionar uno o varios toolsets para usar con el modelo."
},
"addSomeTools": "Por favor, añade algunas herramientas para comenzar.",
"noTools": "No hay herramientas en este toolset",
"addNewToolset": {
"title": "Agregar nuevo @:toolbox.toolsets.title",
"description": "Crea un nuevo toolset para agrupar herramientas. Puedes añadir herramientas al toolset y usarlo con un modelo. Asegúrate de establecer/sobrescribir los parámetros para cada herramienta en el toolset haciendo clic en el botón {icon}.",
"setParams": {
"title": "Establecer parámetros para {toolName}",
"description": "Establece parámetros para la herramienta {toolName}. Puedes sobrescribir los parámetros predeterminados establecidos para la herramienta."
},
"successMessage": {
"saveDetail": "Toolset guardado y añadido a la caja de herramientas. Ahora puedes usarlo con un modelo."
},
"errorMessage": {
"saveDetail": "Error al guardar toolset."
}
},
"editToolset": {
"title": "Editar toolset",
"description": "Edita el nombre y las notas del toolset. También puedes añadir o eliminar herramientas del toolset y ajustar los parámetros de cada herramienta haciendo clic en el botón {icon}.",
"successMessage": {
"detail": "Toolset @:updatedSuccess"
},
"errorMessage": {
"detail": "Error al actualizar el toolset."
}
},
"deleteConfirmation": {
"header": "Eliminar toolset",
"description": "¿Estás seguro de que deseas eliminar {toolsetName}?",
"successMessage": {
"detail": "Toolset eliminado"
},
"errorMessage": {
"detail": "Error al eliminar el toolset"
}
},
"deleteAll": {
"confirmationHeader": "Eliminar todos los toolsets",
"confirmationMessage": "¿Estás seguro de que deseas eliminar todos los toolsets? Esta acción no se puede deshacer.",
"successMessage": "Todos los toolsets han sido eliminados con éxito",
"errorMessage": "Error al eliminar todos los toolsets"
},
"export": {
"title": "Exportar @:toolbox.toolsets.title",
"description": "Por seguridad, los valores de configuración sensibles pueden eliminarse antes de exportar. Selecciona qué variables de entorno y argumentos eliminar para cada herramienta.",
"envVarsToScrub": "Variables de entorno a limpiar",
"argsToScrub": "Argumentos a limpiar",
"scrubCustomArgs": "Limpiar cadena de argumentos personalizados",
"selectEnvVarsPlaceholder": "Selecciona variables de entorno para eliminar valores",
"selectArgsPlaceholder": "Selecciona argumentos para eliminar valores",
"noScrubbableData": "No hay datos de configuración para limpiar",
"sensitiveDataNote": "Valores sensibles comunes están preseleccionados por seguridad.",
"copiedToClipboard": "Configuración del toolset copiada al portapapeles",
"downloadedAsJson": "Configuración del toolset descargada",
"fetchError": "Error al obtener datos del toolset para exportar"
},
"import": {
"missingTools": "Algunas herramientas no se encontraron y fueron omitidas: {tools}"
},
"noOfTools": "{count} herramienta | {count} herramientas",
"viewToolsAndNotes": "Ver herramientas y notas",
"console": {
"title": "Consola de herramientas",
"description": "Puedes usar esta consola para probar {toolName} y ver la salida. También puedes probar la herramienta con diferentes parámetros.",
"listTools": "Listar funciones de {toolName}",
"missingRequiredArgument": "Faltan {count} @:argument requeridos",
"continueWithMissingArgs": "@:continue con @:argument faltantes",
"viewSourceOnGitHub": "Ver código fuente en GitHub",
"toolCall": {
"title": "Llamada a herramienta",
"description": "Agrega las propiedades requeridas para invocar {featureName}. Puedes agregar propiedades extra si lo deseas. Ten cuidado al llamar a la herramienta, especialmente sin los valores correctos.",
"selectPlaceholder": "@:select una propiedad",
"enterNew": "Agregar una nueva propiedad",
"execute": "Ejecutar @:toolbox.toolsets.console.toolCall"
},
"allowedFeaturesLabel": "Habilitar funciones específicas para esta herramienta",
"allowedFeaturesPlaceholder": "Busca o selecciona funciones para permitir",
"selectedFeaturesLabel": "Funciones actualmente habilitadas"
},
"manageTooltip": "Haz clic para gestionar los toolsets usados",
"noModelSupport": "@:select el modelo puede que no soporte herramientas.",
"toolsetsUsedCount": "{count} toolset activo | {count} toolsets activos",
"tooltip": {
"selectedFeatures": "Funciones activadas",
"loading": "Cargando detalles de funciones…",
"allFeatures": "Todas las funciones",
"unavailable": "No se pudieron cargar los detalles de funciones"
}
}
},
"liveContexts": {
"liveContextsUsedCount": "{count} contexto en vivo activo | {count} contextos en vivo activos",
"title": "Contexto en vivo",
"contexts": "Contextos en vivo",
"addNew": {
"title": "Agregar nuevo @:liveContexts.title",
"description": "Crea una nueva fuente de @:liveContexts.title para añadir contexto de datos externos a tu conversación.",
"errorMessage": {
"detail": "Error al añadir @:liveContexts.title"
},
"successMessage": {
"detail": "@:liveContexts.title añadido"
}
},
"edit": {
"title": "Editar @:liveContexts.title"
},
"promptPlaceholder": "Prompt a usar, p.ej. utiliza los siguientes datos de contexto en vivo en tu respuesta",
"endpointDetails": "Detalles del endpoint",
"method": "Método",
"url": "URL",
"customHeaders": "Encabezados personalizados",
"hasBody": "Tiene cuerpo",
"customProcessing": "Procesamiento personalizado",
"promptTemplate": "Plantilla de prompt",
"requestHeaders": {
"title": "Encabezados de la solicitud",
"description": "Agrega encabezados de solicitud como un objeto JSON. Esto se enviará con la solicitud al endpoint API.",
"placeholder": "{'{'}\n \"Authorization\": \"Bearer YOUR_API_KEY\"\n{'}'}"
},
"requestBody": {
"title": "Cuerpo de la solicitud",
"description": "Agrega el cuerpo de la solicitud como un objeto JSON. Esto se enviará con la solicitud al endpoint API.",
"placeholder": "{'{'}\n \"key\": \"value\"\n{'}'}"
},
"processingFunction": {
"title": "Función de procesamiento",
"description": "Agrega una función de procesamiento para transformar los datos de respuesta antes de usarlos en la conversación. La función debe retornar una cadena.",
"placeholderHeader": "function process({'{'}data{'}'}) {'{'}",
"placeholder": " // procesa la entrada y retorna una cadena\n return JSON.stringify(data)",
"placeholderFooter": "{'}'}",
"tooltip": "Acceso vía parámetro placeholders",
"usePlaceholders": "Usa marcadores en el código:"
},
"update": {
"successMessage": {
"detail": "@:liveContexts.title actualizado"
},
"errorMessage": {
"detail": "Error al actualizar @:liveContexts.title"
}
},
"deleteConfirmation": {
"header": "Eliminar @:liveContexts.title",
"description": "¿Estás seguro de que deseas eliminar {liveContextName}?",
"successMessage": {
"detail": "@:liveContexts.title eliminado"
},
"errorMessage": {
"detail": "Error al eliminar @:liveContexts.title"
}
},
"emptyPlaceholder": {
"title": "No se encontró @:liveContexts.title",
"description": "Los @:liveContexts.title son contextos de datos externos que puedes añadir a tu conversación. Puedes crear una nueva fuente de @:liveContexts.title y usarla con un modelo."
},
"deleteAll": {
"confirmationHeader": "Eliminar todos los @:liveContexts.contexts",
"confirmationMessage": "¿Estás seguro de que deseas eliminar todos los contextos en vivo? Esta acción no se puede deshacer.",
"successMessage": "Todos los contextos en vivo han sido eliminados con éxito",
"errorMessage": "Error al eliminar todos los contextos en vivo"
},
"export": {
"title": "Exportar @:liveContexts.title",
"headerScrubDescription": "Por seguridad, los valores sensibles de encabezados pueden eliminarse antes de exportar. Selecciona qué encabezados limpiar.",
"selectHeadersToScrub": "Encabezados a limpiar",
"selectHeadersPlaceholder": "Selecciona encabezados para eliminar valores",
"sensitiveHeadersNote": "Encabezados sensibles comunes están preseleccionados por tu seguridad.",
"copiedToClipboard": "Configuración del contexto en vivo copiada al portapapeles",
"downloadedAsJson": "Configuración del contexto en vivo descargada"
},
"untitled": "Contexto en vivo sin título",
"selectSource": "Seleccionar fuente",
"selectSourceTooltip": "Alterna para incluir o excluir esta fuente del contexto",
"placeholders": {
"title": "Marcadores dinámicos",
"tooltip": "Sintaxis de marcadores",
"label": "Marcadores:"
},
"testVariables": {
"description": "Introduce valores de prueba para los marcadores detectados para probar el endpoint."
},
"modeLabel": "Modo",
"mode": {
"push": "Push",
"pull": "Pull",
"tooltip": {
"push": "Modo push: se ejecuta automáticamente antes de que el modelo responda",
"pull": "Modo pull: llamado bajo demanda por el modelo"
}
}
},
"modes": {
"mode": "Modo | Modos",
"title": "@:modes.mode",
"exitMode": "Salir de {mode} @:modes.mode",
"zenMode": {
"title": "Zen",
"quote": "un estado de atención calma",
"newConversation": "Nueva @:modes.zenMode.title @:conversation.title"
},
"vaporMode": {
"title": "@:modes.vaporMode.vapor @:modes.mode",
"vapor": "Vapor",
"description": "Las conversaciones no se guardarán en tu historial y desaparecerán cuando lo apagues o navegues a otra página",
"willDisappearTooltip": "Esto desaparecerá cuando apagues el modo @:modes.vaporMode.vapor @:modes.mode o navegues a otra página",
"exitVaporMode": "Salir del modo @:modes.vaporMode.vapor @:modes.mode",
"enterVaporMode": "Entrar en el modo @:modes.vaporMode.vapor @:modes.mode",
"preserverChat": {
"saveConversation": "@:save @:conversation.title",
"successMessage": {
"detail": "Chat de vapor @:modes.vaporMode.vapor preservado"
},
"errorMessage": {
"detail": "Error al preservar el chat de vapor @:modes.vaporMode.vapor"
}
}
},
"focusMode": {
"title": "Enfoque @:modes.mode"
},
"normalMode": {
"title": "Normal @:modes.mode"
}
},
"searchForm": {
"query": "Consulta",
"title": "Buscar elementos",
"noResults": {
"title": "No se encontraron resultados",
"description": "Intenta buscar un término diferente"
},
"entity": {
"conversationTextMessages": "@:conversation.title",
"promptsLibraryPrompts": "Prompt | Prompts"
},
"foundResultsCount": "Encontrado {count} resultado | Encontrados {count} resultados",
"labels": {
"title": "Buscar {entity}",
"description": "Busca rápidamente {entity} usando palabras clave",
"tips": {
"default": {
"description": "La búsqueda coincide con todas las palabras por defecto (por ejemplo, {example} → coincide con texto que contiene ambas palabras en cualquier orden)",
"example": "coche azul"
},
"partial": {
"description": "Usa {operator} para coincidencias parciales (por ejemplo, {example})",
"operator": "*",
"example": "correr* → corre, corriendo"
},
"or": {
"description": "@:user {operator} para coincidir con cualquier término (por ejemplo, {example})",
"operator": "OR",
"example": "manzana OR naranja"
},
"exact": {
"description": "Usa comillas dobles {operator} para coincidencias exactas (por ejemplo, {example})",
"operator": "\"\"",
"example": "\"coche azul\""
},
"specialCharacters": {
"description": "Usa {operator} para escapar caracteres especiales (por ejemplo, {example})",
"operator": "\"\"",
"example": "\"C++\", \"node.js\""
}
}
}
},
"clearSearch": "Limpiar búsqueda",
"helpfulTips": "Consejos útiles",
"hideSearch": "Ocultar búsqueda",
"bookmarkItem": {
"action": "Guardar {item} en marcadores",
"jump": "Ir a {item} guardado",
"title": "Marcado {item}",
"successMessage": {
"detail": "{item} guardado"
},
"errorMessage": {
"detail": "No se pudo guardar {item}"
},
"deletedInfoMessage": {
"detail": "Marcador de {item} eliminado"
},
"emptyState": {
"title": "No hay marcadores disponibles.",
"description": "Comienza guardando {item} en marcadores"
}
},
"removeBookmarkedItem": {
"action": "Eliminar marcador de {item}",
"successMessage": {
"detail": "{item} eliminado de marcadores"
},
"errorMessage": {
"detail": "No se pudo eliminar {item} de marcadores"
}
},
"turnstile": {
"title": "Turnstile | Turnstiles",
"newTurnstile": "Nuevo @:turnstile.title",
"queueEntry": "Agregar a la cola",
"selectPlaceholder": "@:select a @:turnstile.title",
"addQueueWithAlt": "Haz clic para abrir o Alt+Click para agregar a la cola",
"entriesQueued": "Sin @:entry en cola | {count}/{total} @:entry en cola | {count}/{total} @:entry en cola",
"emptyQueueMessage": "Una vez que tu prompt esté listo, haz clic en @:turnstile.queueEntry para agregar una entrada a la cola.",
"manageSavedTurnstiles": "Gestionar turnstiles guardados",
"saveForm": {
"title": "Guardar @:turnstile.title como",
"successMessage": {
"detail": "@:turnstile.title ha sido guardado."
},
"errorMessage": {
"detail": "Error al guardar turnstile."
}
},
"loadTurnstiles": {
"title": "Cargar @:turnstile.title",
"successMessage": {
"summary": "@:turnstile.title ¡Cargado!",
"detail": "{count} entrada cargada y encolada. | {count} entradas cargadas y encoladas."
},
"errorMessage": {
"detail": "Error al cargar turnstile."
}
},
"clearQueue": {
"title": "Limpiar cola",
"clearQueueConfirmation": {
"message": "¿Estás seguro de que deseas limpiar la cola? Esto eliminará todos los mensajes que has añadido."
}
},
"newEntry": {
"title": "Nueva entrada"
},
"invalidEntriesMessage": {
"summary": "Entradas inválidas",
"detail": "Algunas entradas son inválidas o les faltan campos requeridos. Por favor corrígelas antes de continuar."
},
"metaSendMissingRootNode": {
"detail": "No se pudo ejecutar {metaType}. Por favor asegúrate de que no es la primera entrada en la cola."
},
"update": {
"successMessage": {
"detail": "@:turnstile.title ha sido actualizado."
},
"errorMessage": {
"detail": "Error al actualizar turnstile. ¿Has configurado el prompt y el modelo?"
}
},
"save": {
"successMessage": {
"detail": "@:turnstile.title ha sido guardado."
},
"errorMessage": {
"detail": "Error al guardar turnstile. ¿Has configurado el prompt y el modelo?"
}
},
"delete": {
"selected": "Eliminar @:turnstile.title seleccionado | Eliminar @:turnstile.title seleccionados",
"deleteConfirmation": {
"header": "Eliminar @:turnstile.title",
"description": "¿Estás seguro de que deseas eliminar {turnstileName}? | ¿Estás seguro de que deseas eliminar {count} turnstiles?"
}
},
"empty": {
"title": "No hay @:turnstile.title disponibles.",
"description": "Comienza añadiendo o importando un nuevo @:turnstile.title{'.'}"
},
"new": "@:new @:turnstile.title",
"entryIndex": "@:entry {index}",
"addContinue": "Agregar @:message.renderingActions.continueGeneration",
"addRegenerate": "Agregar @:regenerate",
"addPersona": "Agregar @:persona.title",
"addShield": "Agregar @:contextShield.title",
"addShieldWithSummary": "Agregar @:contextShield.contextShieldWithSummary",
"import": {
"title": "Importar @:turnstile.title",
"dragAndDropMessage": "Arrastra y suelta un archivo comprimido de Msty @:turnstile.title para importar y crear nuevos turnstiles. En caso de nombres duplicados, los turnstiles importados serán renombrados. Puedes cambiarlo más tarde.",
"successMessage": {
"detail": "Turnstiles importados"
},
"errorMessage": {
"detail": "Error al importar turnstiles"
}
},
"export": {
"title": "Exportar @:turnstile.title",
"selected": "Exportar @:turnstile.title seleccionado | Exportar @:turnstile.title seleccionados",
"successMessage": {
"detail": "@:turnstile.title exportado como {fileName} | @:turnstile.title exportado como {fileName}"
},
"errorMessage": {
"detail": "Error al exportar @:turnstile.title | Error al exportar @:turnstile.title"
}
}
},
"modelMatchmaker": {
"title": "Modelo Matchmaker",
"description": "Ajusta los deslizadores de gravedad para habilidades como codificación, razonamiento o matemáticas, y Matchmaker clasificará y recomendará los mejores modelos para tus necesidades. Los resultados pueden variar según la calidad de los datos, el tamaño del modelo y la complejidad de la tarea.",
"ctaIntro": "¿Encontraste tu modelo?",
"ctaMessage": "Prueba y compara en Msty Studio.",
"gravity": "Gravedad",
"remoteOnly": "Solo remoto",
"rankedModels": {
"title": "Modelos clasificados",
"emptyMessage": "No se encontraron modelos. Intenta ajustar tus requisitos."
},
"strengthsLabel": {
"ca": {
"title": "Codificación",
"description": "La habilidad de escribir código en un lenguaje de programación."
},
"aca": {
"title": "Codificación agentiva",
"description": "La habilidad agentiva de escribir código en un lenguaje de programación."
},
"daa": {
"title": "@:data Analysis",
"description": "La habilidad de analizar datos y generar ideas."
},
"ifa": {
"title": "Seguimiento de instrucciones",
"description": "La habilidad de seguir instrucciones y realizar tareas."
},
"jak": {
"title": "GOAT: Generalista de todos los oficios",
"description": "La habilidad de realizar una amplia gama de tareas."
},
"la": {
"title": "Lenguaje",
"description": "La habilidad de entender y generar lenguaje humano."
},
"ma": {
"title": "Matemáticas",
"description": "La habilidad de realizar cálculos matemáticos."
},
"pp": {
"title": "Parafraseo",
"description": "Habilidad demostrada de reescribir cualquier texto dado."
},
"ra": {
"title": "Razonamiento",
"description": "Pensamiento crítico - la habilidad de razonar y tomar decisiones."
},
"sim": {
"title": "Simplificación",
"description": "La habilidad de simplificar cualquier texto complejo."
},
"stg": {
"title": "Generación de historias",
"description": "La habilidad de generar historias o narrativas."
},
"sum": {
"title": "Resumen",
"description": "La habilidad de resumir información textual y numérica."
},
"tu": {
"title": "Uso de herramientas",
"description": "La habilidad de llamar y usar herramientas externas."
},
"mit": {
"title": "Máx. de tokens de entrada",
"description": "El máximo número de tokens aceptados en una llamada."
},
"mot": {
"title": "Máx. de tokens de salida",
"description": "El máximo número de tokens generados en una llamada."
},
"ics": {
"title": "Ahorro de tokens de entrada",
"costTitle": "Costo de entrada/ millón de tokens",
"description": "El ahorro de costos por generación de tokens de entrada."
},
"ocs": {
"title": "Ahorro de tokens de salida",
"costTitle": "Costo de salida/ millón de tokens",
"description": "El ahorro de costos por generación de tokens de salida."
}
},
"normalizedScore": "Puntaje normalizado",
"resetStrengths": "Restablecer fortalezas",
"savePresetForm": {
"title": "@:save Strengths As @:preset",
"errorMessage": {
"detail": "Error al guardar la preconfiguración de fortalezas."
},
"successMessage": {
"detail": "Preconfiguración de fortalezas guardada."
},
"loadedMessage": {
"detail": "Preconfiguración de fortalezas cargada."
}
},
"deletePresetConfirm": {
"title": "Eliminar @:preset",
"message": "¿Estás seguro de que deseas eliminar {presetName}?",
"errorMessage": {
"detail": "Error al eliminar la preconfiguración de fortalezas."
},
"successMessage": {
"detail": "Preconfiguración de fortalezas eliminada."
}
}
},
"costCalculator": {
"title": "Calculadora de costos del modelo",
"description": "Calcula y compara costos para modelos de IA de OpenAI, Anthropic, Google y más. Estima tus gastos según el uso de tokens de entrada/salida y la fijación de precios del modelo. Estas son solo estimaciones y los costos reales pueden variar.",
"tokenInputs": "Entradas de tokens",
"filters": "Filtros",
"ctaIntro": "¿Encontraste tu modelo?",
"ctaMessage": "Prueba y compara en Msty Studio."
},
"vramCalculator": {
"title": "Calculadora de VRAM",
"description": "Verifica si un modelo se ajusta a la VRAM de tu dispositivo antes de descargarlo o ejecutarlo. Esta calculadora proporciona requisitos estimados de VRAM según la arquitectura y el tamaño del modelo. Selecciona una de las opciones a continuación para comenzar.",
"ctaIntro": "¿Encontraste tu modelo?",
"ctaMessage": "Prueba y compara en Msty Studio."
},
"copyOrMoveItemToWorkspace": {
"copyTitle": "Copiar {item} a Workspaces",
"copyOrMoveTitle": "Copiar/Mover {item} a Workspaces",
"selectWorkspaces": "@:select Workspaces",
"availableWorkspaces": "Workspaces disponibles",
"actionLabel": "Acción",
"inputLabel": {
"copy": "Copia {item} a uno o más workspaces.",
"copyOrMove": "Copia/Mueve {item} a uno o más workspaces.",
"edit": "Sincroniza este proveedor a uno o más workspaces. Si este proveedor fue copiado antes, se actualizará. Si no, se añadirá."
},
"successMessage": {
"copyDetail": "{item} copiado a {count} workspace | {item} copiado a {count} workspaces",
"moveDetail": "{item} movido a {count} workspace | {item} movido a {count} workspaces"
},
"errorMessage": {
"copyDetail": "Error al copiar {item} a {count} workspace | Error al copiar {item} a {count} workspaces",
"moveDetail": "Error al mover {item} a {count} workspace | Error al mover {item} a {count} workspaces"
},
"partialCopyWarningMessage": {
"summary": "Copiado parcialmente",
"detail": "No se pudo copiar {item} a {count} workspace | No se pudo copiar {item} a {count} workspaces"
},
"partialMovedWarningMessage": {
"summary": "Movido parcialmente",
"detail": "No se pudo mover {item} a {count} workspace | No se pudo mover {item} a {count} workspaces"
},
"existingCopiesInfo": "Algunos workspaces({workspaces}) fueron omitidos porque {item} ya existe en ellos",
"skippingExistingCopies": "Se omitirán las copias ya existentes de {item}."
},
"assignment": "Asignación | Asignaciones",
"modelSquad": {
"title": "Escuadrón de modelos",
"description": "@:modelSquad.title es una colección de modelos de IA especializados, donde a cada modelo se le asigna realizar una tarea específica, como Generación automática de títulos, Resumen de @:context Shield, etc. Cuando llega el momento de realizar esa tarea específica, el modelo asignado se selecciona automáticamente.",
"addNewAssignment": "Agregar nueva @:assignment",
"noTask": "No hay más tareas disponibles",
"tasks": {
"autoTitleGeneration": "Generación automática de títulos",
"contextShieldSummaryGeneration": "Resumen de @:contextShield.title",
"realTimeDataPromptSynthesis": "@:rtd.title Síntesis de Prompt",
"forgeContentGeneration": "Generación de contenido Forge",
"piiScrubbing": "Scrubbing de @:pii.scrubbing.title",
"iconFinder": "Buscador de iconos"
},
"save": {
"successMessage": {
"detail": "@:assignment guardado"
},
"errorMessage": {
"detail": "@:assignment error al guardar"
}
},
"assignment": {
"dialog": {
"title": "Asignar modelo para {task}",
"description": "Selecciona un modelo para asignar a la tarea {task} en ModelSquad.",
"selectModel": "Seleccionar modelo",
"selectModelPlaceholder": "Elige un modelo...",
"currentlyAssigned": "Actualmente asignado: {model}",
"unknownModel": "Modelo desconocido",
"assignButton": "Asignar modelo",
"changeButton": "Cambiar modelo",
"helpText": "Este modelo se usará automáticamente cuando se realice la tarea {task}."
},
"success": "¡Modelo asignado a {task} con éxito!",
"errors": {
"noModelSelected": "Por favor, selecciona un modelo para asignar.",
"saveFailed": "Error al guardar la asignación del modelo. Por favor, intenta nuevamente."
}
}
},
"pii": {
"title": "PII (Información Personalmente Identificable)",
"scrubbing": {
"title": "Scrubbing de PII",
"description": "Detectar y eliminar automáticamente información personalmente identificable del contenido del Knowledge Stack antes de mostrarlo en las conversaciones.",
"info": {
"modelAssigned": "Usando {model} para la detección y eliminación de PII."
},
"warning": {
"noModel": "No hay modelo asignado para @:pii.scrubbing.title en ModelSquad. La recuperación del Knowledge Stack fallará hasta que se asigne un modelo.",
"configurationError": "Error de configuración en @:pii.scrubbing.title - abortando la recuperación del Knowledge Stack por seguridad",
"setupError": "Error al configurar @:pii.scrubbing.title - abortando la recuperación del Knowledge Stack"
},
"placeholders": {
"personName": "[NOMBRE_PERSONA]",
"emailAddress": "[DIRECCION_EMAIL]",
"phoneNumber": "[NUMERO_TELEFONO]",
"address": "[DIRECCION]",
"idNumber": "[NUMERO_ID]",
"creditCard": "[TARJETA_CREDITO]",
"bankAccount": "[CUENTA_BANCARIA]",
"ipAddress": "[DIRECCION_IP]",
"dateOfBirth": "[FECHA_NACIMIENTO]"
},
"categories": {
"personalIdentifiers": "Identificadores personales",
"contactInformation": "Información de contacto",
"financialInformation": "Información financiera",
"medicalInformation": "Información médica",
"digitalIdentifiers": "Identificadores digitales",
"biometricData": "Datos biométricos",
"locationData": "Datos de ubicación"
}
}
},
"persona": {
"title": "Persona | Personas",
"newPersona": "Nueva @:persona.title",
"activePersona": "Activa @:persona.title",
"empty": {
"title": "No hay @:persona.title disponibles.",
"description": "Comienza añadiendo o importando una nueva @:persona.title{'.'} También puedes importar Personas predeterminadas para comenzar."
},
"contextShieldPosition": "@:contextShield.title Posición",
"save": {
"successMessage": {
"detail": "@:persona.title guardada"
},
"errorMessage": {
"detail": "Error al guardar @:persona.title"
}
},
"update": {
"successMessage": {
"detail": "@:persona.title actualizado"
},
"errorMessage": {
"detail": "No se pudo actualizar @:persona.title"
}
},
"delete": {
"selected": "Eliminar @:persona.title seleccionada",
"deleteConfirmation": {
"header": "Eliminar @:persona.title",
"description": "¿Estás seguro de que deseas eliminar {personaName}? | ¿Estás seguro de que deseas eliminar {count} @:persona.title{'?'}"
},
"successMessage": {
"detail": "@:persona.title eliminado | @:persona.title eliminado"
},
"errorMessage": {
"detail": "No se pudo eliminar @:persona.title | No se pudo eliminar @:persona.title"
}
},
"import": {
"title": "Importar @:persona.title",
"dragAndDropMessage": "Arrastra y suelta un archivo comprimido de Msty @:persona.title para importar y crear nuevas Personas. En caso de nombres duplicados, las Personas importadas serán renombradas. Puedes cambiarlo más tarde.",
"successMessage": {
"detail": "Personas importadas"
},
"errorMessage": {
"detail": "Error al importar Personas"
}
},
"export": {
"title": "Exportar @:persona.title",
"selected": "Exportar @:persona.title seleccionado | Exportar @:persona.title seleccionadas",
"successMessage": {
"detail": "@:persona.title exportada como {fileName} | @:persona.title exportada como {fileName}"
},
"errorMessage": {
"detail": "Error al exportar @:persona.title | Error al exportar @:persona.title"
}
},
"messages": {
"deleteSuccess": "@:persona.title eliminado | @:persona.title eliminado"
},
"deleteConfirmation": {
"header": "Eliminar @:persona.title",
"message": "¿Estás seguro de que deseas eliminar {personaName}? | ¿Estás seguro de que deseas eliminar {count} @:persona.title{'?'}",
"errorMessage": {
"detail": "No se pudo eliminar @:persona.title | No se pudo eliminar @:persona.title"
}
},
"addTitle": "Agregar @:persona.title",
"createRootFolder": "Nueva carpeta en raíz",
"setDefaultFolder": "Establecer como carpeta predeterminada",
"unsetDefaultFolder": "Quitar carpeta predeterminada",
"folderForm": {
"updateSuccessMessage": {
"detail": "@:folder actualizado"
},
"updateErrorMessage": {
"detail": "Error al actualizar @:folder"
},
"createSuccessMessage": {
"detail": "@:folder creada"
},
"createErrorMessage": {
"detail": "Error al crear @:folder"
},
"deleteConfirmation": {
"header": "Eliminar @:folder",
"message": "¿Estás seguro de que deseas eliminar {folderName} con todas sus @:persona.title{'?'}",
"successMessage": {
"detail": "@:folder eliminado"
},
"errorMessage": {
"detail": "Error al eliminar @:folder"
}
}
},
"selectPlaceholder": "@:select a @:persona.title",
"autoResponder": {
"turnOn": "Activar respuesta automática",
"turnOff": "Desactivar respuesta automática"
},
"contextMessageCount": {
"title": "Conteo de contexto",
"description": "Establece el número de mensajes recientes para usar como contexto para el @:persona.title{'.'}"
},
"hideAndIsolateSystemPrompt": "Ocultar y aislar el prompt del sistema",
"isolateResponse": "Aislar respuesta",
"autoResponderDefault": "Auto-responder"
},
"fewShotPrompts": {
"title": "Prompts de few-shot",
"description": "El few-shot learning es una técnica de aprendizaje automático que permite entrenar un modelo con una pequeña cantidad de datos. Puedes usar prompts de few-shot para proporcionar ejemplos al modelo y ayudarlo a entender el contexto y generar mejores respuestas.",
"addNewShot": "Agregar nuevo ejemplo"
},
"insights": "Información",
"cost": "Costo",
"costInUSD": "Costo en USD",
"promptTokens": "Tokens de prompt",
"completionTokens": "Tokens de completación",
"totalTokens": "Total de tokens",
"usage": "Uso",
"tokens": "Tokens",
"tokensProcessed": "Tokens procesados",
"selectProvider": "@:select a provider | @:select providers",
"tokensProcessedForProvider": "Tokens procesados para {provider}",
"totalUsage": "Uso total",
"fromTo": "De {from} a {to}",
"crunchingTheNumbers": "Procesando los números",
"throughputForModel": {
"title": "Rendimiento para {model}",
"unit": {
"description": "Medido en tokens por segundo"
}
},
"latencyForModel": {
"title": "Latencia para {model}",
"unit": {
"description": "Medido en segundos"
}
},
"total": "Total",
"min": "Mín",
"max": "Máx",
"avg": "Prom",
"summary": "Resumen",
"dates": {
"today": "Hoy",
"last7Days": "Últimos 7 días",
"last14Days": "Últimos 14 días",
"last30Days": "Últimos 30 días",
"last3Months": "Últimos 3 meses",
"last6Months": "Últimos 6 meses",
"last12Months": "Últimos 12 meses",
"monthToDate": "Mes en curso",
"yearToDate": "Año en curso",
"allTime": "Todo el tiempo",
"selectDateRange": "@:select date range",
"month": "Mes",
"year": "Año",
"day": "Día",
"week": "Semana"
},
"insightsSummary": {
"emptyState": {
"title": "Resumen de información",
"description": "No hay datos disponibles para el rango de fechas y proveedores seleccionados."
}
},
"insightsProviderTokensProcessed": {
"emptyState": {
"title": "Tokens procesados",
"description": "No hay datos disponibles para el rango de fechas y proveedor seleccionados."
}
},
"insightsProviderThroughput": {
"emptyState": {
"title": "Rendimiento",
"description": "No hay datos disponibles para el rango de fechas, proveedor y modelo seleccionados."
}
},
"insightsProviderLatency": {
"emptyState": {
"title": "Latencia",
"description": "No hay datos disponibles para el rango de fechas, proveedor y modelo seleccionados."
}
},
"hideItem": {
"action": "Ocultar {item}",
"successMessage": {
"detail": "{item} ha sido oculto"
},
"errorMessage": {
"detail": "No se pudo ocultar {item}"
},
"unhideParent": "Mostrar padre {item}",
"hiddenParentContentTitle": "Contenido padre oculto. Haz clic para mostrar."
},
"showItem": {
"action": "Mostrar {item}"
},
"licenseVerification": {
"errorMessage": "Error al verificar la licencia. Por favor intenta nuevamente.",
"enterLicenseKey": "Ingresa la clave de licencia de Aurum",
"licenseTypeInfo": "Estás usando la licencia {licenseType}.",
"licenseKey": "Clave de licencia",
"logout": "Cerrar sesión",
"licenseTypeInfoForAdmin": "Estás usando la licencia {licenseType} y has iniciado sesión como propietario."
},
"aurum": {
"activateLicense": "Activar licencia de Aurum",
"activateLicenseDescription": "Ingresa tu clave de licencia para desbloquear características premium",
"manageLicense": "Gestionar licencia",
"lifetimeLicense": "Aurum de por vida",
"lifetimeLicenseDescription": "Compra única con acceso de por vida a características premium",
"annualLicense": "Aurum anual",
"annualLicenseDescription": "Suscripción anual con actualizaciones continuas y características premium",
"oneTimePurchase": "Compra única",
"yearlySubscription": "Suscripción anual",
"enterLicenseKey": "Clave de licencia",
"verifyAndActivate": "Verificar y activar",
"deactivateLicense": "Desactivar licencia",
"licensedTo": "Licenciado a",
"expiresOn": "Expira el",
"expired": "Expiró",
"expiresInDays": "Expira en {days} días",
"needLicense": "¿Necesitas una licencia?",
"purchaseLicense": "Compra en msty.ai",
"hasLicense": "¿Ya tienes una licencia?",
"manageActivation": "Gestionar activación"
},
"cloneItem": {
"action": "Clonar {item}",
"successMessage": {
"detail": "{item} ha sido clonado"
},
"errorMessage": {
"detail": "No se pudo clonar {item}"
}
},
"cloneItemTo": {
"action": "Clonar a {item}",
"successMessage": {
"detail": "Clonado exitosamente a un nuevo {item} "
},
"errorMessage": {
"detail": "No se pudo clonar a un nuevo {item}"
}
},
"importJson": {
"clipboardTitle": "Importar {item} desde el portapapeles JSON",
"fileTitle": "Importar {item} desde el archivo JSON",
"successMessage": {
"detail": "{count} {item} importados con éxito",
"detailDestination": "@:importJson.successMessage.detail {item} a {destination}"
},
"successMessageWithToolsets": {
"detail": "{count} {item} importados con éxito y toolsets correspondientes creados automáticamente"
},
"invalidConfig": {
"detail": "Configuración inválida o nada que importar. Por favor asegúrate de que el JSON es válido y vuelve a intentarlo."
},
"errorMessage": {
"detail": "Error al importar. Por favor revisa el JSON y vuelve a intentarlo."
},
"partialError": {
"detail": "Error al importar {failed} elementos: {items}"
},
"dragAndDropMessage": "Arrastra y suelta un archivo JSON para importar {item}."
},
"team": {
"label": "Equipo | Equipos",
"createTeam": "@:create @:team.label",
"inviteUserLabel": "Invitar usuario",
"overview": "Resumen",
"usersLabel": "Usuarios",
"allTeamLabel": "Todos los equipos",
"createSuccess": "Equipo {teamName} creado con éxito.",
"member": "Miembro|Miembros",
"allUsers": "Todos los usuarios",
"addTeamFormHeader": "Crear nuevo equipo",
"updateTeamFormHeader": "Editar equipo",
"addUsers": "Agregar usuarios",
"updateUsers": "Actualizar usuarios",
"addUserToTeam": "Agregar usuarios al equipo",
"teamNameLabel": "Nombre del equipo",
"teamNamePlaceholder": "Ingresa el nombre del nuevo equipo",
"addTeamDescription": "Crea un nuevo equipo para gestionar recursos.",
"noUserInTeam": "No hay usuarios asignados a este equipo.",
"editTeam": "Editar equipo",
"invited": "Invitado",
"shortDescription": "Gestiona tus equipos y usuarios.",
"empty": {
"description": "Un equipo se utiliza para gestionar recursos. Puedes agregar usuarios al equipo para colaborar y compartir el acceso a los recursos."
},
"deleteConfirmation": {
"header": "Eliminar equipo",
"message": "¿Estás seguro de que deseas eliminar",
"inputPlaceholder": "Por favor escribe {name} para confirmar la eliminación.",
"rejectLabel": "@:cancel",
"acceptLabel": "@:delete"
},
"policies": {
"title": "Política | Políticas",
"toolbox": {
"title": "@:toolbox.title",
"description": "Permitir al usuario usar la función de Toolbox"
},
"promptsLibrary": {
"title": "@:promptsLibrary.title",
"description": "Permitir al usuario usar la función de Biblioteca de Prompts"
},
"persona": {
"title": "@:persona.title",
"description": "Permitir al usuario usar la función de Persona"
},
"turnstile": {
"title": "@:turnstile.title",
"description": "Permitir al usuario usar la función de Turnstile"
},
"knowledgeStack": {
"title": "@:knowledgeStack.title",
"description": "Permitir al usuario usar la función de Knowledge Stack"
},
"remoteToolsConnector": {
"title": "@:remoteToolsConnector.title",
"description": "Permitir al usuario usar la función de @:remoteToolsConnector.title"
},
"rtd": {
"title": "@:rtd.title",
"description": "Permitir al usuario usar la función de @:rtd.title"
},
"attachments": {
"title": "@:attachments.title",
"description": "Permitir al usuario usar la función de @:attachments.title"
},
"forgeMode": {
"title": "@:forge.forgeMode.title",
"description": "Permitir al usuario usar la función de @:forge.forgeMode.title"
},
"insights": {
"title": "@:insights",
"description": "Permitir al usuario usar la función de @:insights"
},
"platformWeb": {
"title": "Acceso a Msty Studio Web",
"description": "Permitir al usuario acceder a Msty Studio desde un navegador web"
},
"platformDesktop": {
"title": "Acceso a Msty Studio Desktop",
"description": "Permitir al usuario acceder a Msty Studio desde la aplicación de escritorio"
},
"platformAccess": "Acceso a la plataforma",
"modelHub": {
"description": "Gestionar el acceso a proveedores de modelos específicos."
}
},
"user": {
"noAvailableSeats": "Has alcanzado tu límite para invitar usuarios.",
"licenceAndAccess": {
"loggedInAsLabel": "Conectado como",
"useSignInWithEmail": "Se enviará un enlace de inicio de sesión seguro a la dirección de correo electrónico proporcionada. Los titulares de la licencia Aurum deben verificar su clave de licencia antes de usar esta función.",
"continueWithlicenseLabel": "continuar con clave de licencia",
"sendLoginLink": "Enviar enlace de inicio de sesión"
},
"teamUserFormHeader": "Usuarios del equipo",
"invitationVerification": {
"inProgress": "Verificando tu solicitud de acceso. Por favor espera",
"info": "Has sido invitado a unirte a una cuenta en Msty Studio. ",
"error": "Algo salió mal, por favor contacta al administrador de tu cuenta."
},
"invitationInfo": "Se enviará un enlace de inicio de sesión al correo electrónico proporcionado arriba.",
"invitation": {
"successMessage": {
"detail": "Usuario {email} invitado."
},
"invalidEmail": "@:invalid @:email",
"errorMessageUserExist": "El usuario ya existe",
"errorMessage": {
"detail": "Error al invitar a {email}."
}
},
"fetch": {
"errorMessage": {
"detail": "No se pudo cargar la lista de usuarios"
}
},
"delete": {
"successMessage": {
"detail": "Usuario {email} eliminado con éxito."
},
"errorMessage": {
"detail": "No se pudo eliminar el usuario {email}"
}
},
"deleteConfirmation": {
"header": "Eliminar usuario",
"message": "¿Estás seguro de que deseas eliminar {email}?",
"rejectLabel": "@:cancel",
"acceptLabel": "@:delete"
},
"assignUserToTeamLabel": "Asignar usuarios al equipo {teamName}",
"assignUserToTeamSuccess": "Usuario {user} asignado con éxito al equipo {teamName}",
"unassignUserToTeamLabel": "Eliminar usuario del equipo",
"unassignUserToTeamMessage": "Eliminar a {user} del equipo {teamName}",
"selectUserToAddToTeamPlaceholder": "@:select users to add"
}
},
"updateItem": {
"action": "Actualizar {item}",
"editAction": "Editar {item}",
"successMessage": {
"detail": "{item} ha sido actualizado"
},
"errorMessage": {
"detail": "No se pudo actualizar {item}"
}
},
"modelPurpose": {
"text": "Texto",
"tools": "Herramientas",
"vision": "Visión",
"coding": "Codificación",
"embedding": "Integración",
"streaming": "Transmisión",
"image": "Imagen",
"thinking": "Pensamiento"
},
"editModel": {
"inputLabels": {
"label": "Etiqueta",
"purpose": "Propósito"
}
},
"environment": {
"selectPlaceholder": "@:select an @:environment.title",
"new": "Nuevo @:environment.title",
"title": "Entorno | Entornos",
"empty": {
"description": "Agrega nuevos entornos para comenzar."
},
"save": {
"successMessage": {
"detail": "@:environment.title guardado"
},
"errorMessage": {
"detail": "Error al guardar @:environment.title"
}
},
"delete": {
"title": "@:delete @:environment.title | Eliminar @:environment.title",
"selected": "@:delete Selected @:environment.title | Eliminar Seleccionados @:environment.title",
"deleteConfirmation": {
"header": "@:delete @:environment.title",
"description": "¿Estás seguro de que deseas eliminar {environmentName}? | ¿Estás seguro de que deseas eliminar {count} entornos?"
},
"successMessage": {
"detail": "@:environment.title eliminado | @:environment.title eliminado"
},
"errorMessage": {
"detail": "No se pudo eliminar @:environment.title | No se pudo eliminar @:environment.title"
}
},
"backup": {
"title": "Respaldo de @:environment.title",
"successMessage": {
"detail": "@:environment.title respaldado"
},
"errorMessage": {
"detail": "Error al respaldar @:environment.title"
}
},
"restore": {
"title": "Restaurar @:environment.title",
"dragAndDropMessage": "Arrastra y suelta un archivo de entorno de Msty para restaurar entornos. Nota: Todos los entornos existentes serán eliminados y reemplazados por los importados.",
"successMessage": {
"detail": "@:environment.title restaurado"
},
"errorMessage": {
"detail": "Error al restaurar @:environment.title"
}
},
"quickSelect": {
"title": "Selector rápido de @:select Variable de entorno",
"selectPlaceholder": "Busca o selecciona una variable para copiarla al portapapeles"
}
},
"makeActive": {
"title": "Activar {itemType}",
"isActive": "Activo {itemType}",
"successMessage": {
"detail": "{itemName} es ahora el {itemType} activo"
},
"errorMessage": {
"detail": "Error al activar {itemName} como el {itemType} activo"
}
},
"moveItem": {
"action": "Mover {item}",
"moveLocation": "Mover {count} {sourceType} a {item}",
"confirmation": {
"message": "¿Estás seguro de que deseas mover el/los {item} seleccionados?"
},
"successMessage": {
"detail": "{item} ha sido movido | {item} han sido movidos"
},
"errorMessage": {
"detail": "No se pudo mover {item}"
},
"errrorMessage": {
"detail": "No se pudo mover {item}"
},
"cannotDetermineTargetProject": "No se pudo determinar el proyecto objetivo.",
"cannotDetermineTargetFolder": "No se pudo determinar la carpeta objetivo."
},
"deleteItem": {
"action": "Eliminar {item}",
"successMessage": {
"detail": "{item} ha sido eliminado"
},
"errorMessage": {
"detail": "No se pudo eliminar {item}"
}
},
"promptsLibrary": {
"title": "@:prompts Library",
"newPrompt": "Nuevo @:prompt",
"search": "@:search @:prompt",
"quickPrompt": "Quick @:prompt",
"saveToQuickPrompts": "Guardar en Quick @:prompts",
"copyPrompt": "Copiar @:prompt al portapapeles",
"shortcutUsage": "Escribe / para buscar en la @:promptsLibrary.title",
"setDefaultFolder": "Establecer como carpeta predeterminada",
"unsetDefaultFolder": "Quitar carpeta predeterminada",
"createRootFolder": "Nueva carpeta en raíz",
"folder": "@:folder",
"prompt": "@:prompt",
"deleteAllPrompt": {
"title": "Eliminar todos los @:prompt y @:folders",
"description": "Esto eliminará toda la @:promptsLibrary.title y @:folder@:folders. No hay forma de recuperarlos después de la eliminación.",
"successMessage": {
"detail": "Todos los @:prompt eliminados"
}
},
"empty": {
"title": "No hay @:persona.title disponibles.",
"description": "Comienza añadiendo o importando un nuevo @:prompt{'.'} También puedes importar prompts predeterminados para comenzar."
},
"import": {
"title": "Importar @:prompts predeterminados",
"successMessage": {
"detail": "Ahora puedes usar los prompts importados en tus conversaciones."
},
"copyMultiplePrompts": "Copiar {count} @:prompts al portapapeles",
"errorMessage": {
"detail": "Error al importar @:prompts predeterminados"
},
"copyErrorMessage": {
"detail": "Error al copiar @:prompt{'.'} Por favor intenta nuevamente."
}
},
"folderForm": {
"updateSuccessMessage": {
"detail": "@:folder actualizado"
},
"updateErrorMessage": {
"detail": "Error al actualizar @:folder"
},
"createSuccessMessage": {
"detail": "@:folder creada"
},
"createErrorMessage": {
"detail": "Error al crear @:folder"
},
"deleteConfirmation": {
"header": "Eliminar @:folder",
"message": "¿Estás seguro de que deseas eliminar {folderName} con todas sus subcarpetas y prompts?",
"successMessage": {
"detail": "@:folder eliminado"
},
"errorMessage": {
"detail": "Error al eliminar @:folder"
}
}
},
"promptForm": {
"addTitle": "Agregar nuevo @:prompt",
"editTitle": "Editar @:prompt",
"promptName": "@:prompt Name",
"promptDescription": "@:description",
"updateSuccessMessage": {
"detail": "@:prompt actualizado"
},
"updateErrorMessage": {
"detail": "Error al actualizar @:prompt"
},
"createSuccessMessage": {
"detail": "@:prompt creado"
},
"createErrorMessage": {
"detail": "Error al crear @:prompt"
},
"deleteConfirmation": {
"header": "Eliminar {count} @:prompt",
"message": "¿Estás seguro de que deseas eliminar?",
"successMessage": {
"detail": "@:prompt eliminado"
},
"errorMessage": {
"detail": "Error al eliminar @:prompt"
}
}
}
},
"importDefault": {
"title": "Importar predeterminado {item}",
"successMessage": {
"detail": "Predeterminado {item} importado"
},
"errorMessage": {
"detail": "Error al importar predeterminado {item}"
}
},
"contextIsolation": {
"isolate": "Aislar @:context",
"unIsolate": "Eliminar aislamiento de @:context",
"label": "Aislado @:context",
"clearAll": {
"title": "Eliminar todos los aislamientos de @:context",
"successMessage": {
"detail": "Todos los aislamientos de @:context eliminados"
}
}
},
"responseMetrics": {
"title": "Métricas de respuesta",
"longPressOrAltClickToCycle": "Mantén presionado largo o haz clic en Alt para alternar métricas"
},
"quickView": "Vista rápida",
"detailsView": "Vista de detalles",
"input": "Entrada | Entradas",
"output": "Salida | Salidas",
"think": "Pensar",
"reasoning": {
"emptyNotice": "El modelo realizó un pensamiento interno pero no devolvió un resumen. Para habilitar los resúmenes de pensamiento, aplica la etiqueta 'Pensamiento' a este modelo haciendo clic en el ícono de edición junto a la selección del modelo."
},
"service": "Servicio | Servicios",
"localAIService": "@:localAI @:service",
"version": "Versión | Versiones",
"invalidConfig": "Configuración inválida. Por favor ingresa un objeto JSON válido.",
"unsavedChanges": "Cambios no guardados",
"saveChanges": "Guardar cambios",
"day": "Día | Días",
"every": "Cada",
"files": "Archivos",
"file": "Archivo | @:files",
"reallyDelete": "¿Eliminar de verdad?",
"similarity": "Similitud",
"saveAsDraft": "Guardar como borrador",
"compose": "Componer",
"embeddingModel": "Modelo de integración",
"document": "Documento | Documentos",
"matched": "Coincidente",
"active": "Activo",
"inactive": "Inactivo",
"folderName": "@:folder Name",
"addNewFolder": "Agregar nueva @:folder",
"editFolder": "Editar @:folder",
"errorGeneric": "Ocurrió un error. Por favor intenta nuevamente más tarde. Revisa los registros para más detalles.",
"sharedService": {
"modelsPath": {
"title": "Ruta de modelos",
"description": "Aquí es donde {service} descarga y busca modelos. Puedes actualizar la ruta para usar una carpeta personalizada.",
"edit": {
"title": "Editar ruta de modelos",
"description": "Establece tu ubicación preferida.",
"willRestartWarning": "Nota: Cambiar la ruta de los modelos reiniciará el {service} para que los cambios tengan efecto.",
"selectModelsPath": "Seleccionar ruta de modelos",
"successMessage": {
"detail": "Ruta de modelos actualizada"
},
"errorMessage": {
"detail": "Error al actualizar la ruta de modelos"
}
}
},
"quickPromptDialog": {
"title": "Guardar en Quick @:prompts",
"description": "Dale a tu prompt del sistema un título corto. Se añadirá a Quick Prompts para fácil reutilización.",
"nameLabel": "Nombre rápido de @:prompt",
"successMessage": "Prompt del sistema guardado en Quick Prompts.",
"errorMessage": "Error al guardar el prompt del sistema en Quick Prompts.",
"emptyPromptMessage": "Agrega algún texto al prompt del sistema antes de guardar en Quick Prompts."
},
"serviceHealth": {
"title": "Estado del servicio",
"description": "Estado del {service}. ¿Tienes problemas? Intenta reiniciar o revisar los registros.",
"serviceAction": {
"restartService": "Reiniciar servicio",
"stopService": "Detener servicio",
"startService": "Iniciar servicio",
"errorMessage": {
"detail": "Error al realizar {action} en {service}. Por favor revisa los registros para más detalles."
},
"restartSuccessMessage": {
"detail": "{service} Reiniciado"
}
},
"serviceStatus": {
"starting": "Iniciando",
"running": "En ejecución",
"stopped": "Detenido"
}
},
"serviceEndpoint": {
"title": "Endpoint de servicio | Endpoints de servicio",
"description": {
"base": "Endpoint local para {service}. Usa esto para conectar desde otras aplicaciones que se ejecutan localmente en el dispositivo.",
"serviceIsNotRunning": "Una vez que el servicio esté en funcionamiento, la dirección se mostrará aquí.",
"serviceIsAvailableOnNetwork": "Debido a que el servicio está disponible en la red, también puedes conectarte a él utilizando la URL de Servicio de Red desde otros dispositivos."
},
"copyNetworkURL": "Copiar URL de red"
},
"serviceVersion": {
"title": "Versión del servicio",
"description": "Muestra la versión actual de {service}. Para asegurar un rendimiento óptimo y acceso a nuevas funciones, mantenlo actualizado. La reinstalación también está disponible si es necesario.",
"forceUpdate": {
"title": "Forzar actualización de {service}",
"forCuda": "Forzar actualización de {service} para CUDA",
"forROCm": "Forzar actualización de {service} para ROCm",
"successMessage": {
"detail": "{service} se ha actualizado a la última versión {version}"
},
"errorMessage": {
"detail": "Error al actualizar {service}. Por favor revisa los registros para más detalles."
},
"forCpu": "Forzar actualización {service} (CPU)",
"forCuda124": "Forzar actualización {service} (CUDA 12.4)",
"forCuda131": "Forzar actualización {service} (CUDA 13.1)",
"forVulkan": "Forzar actualización {service} (Vulkan)",
"forRocm": "Forzar actualización {service} (ROCm)",
"forOpencl": "Forzar actualización {service} (OpenCL)",
"forSycl": "Forzar actualización {service} (SYCL)"
},
"removeService": {
"title": "Eliminar {service}",
"confirmationHeader": "Eliminar {service}",
"confirmationMessage": "¿Estás seguro de que deseas eliminar {service}? Esto eliminará el binario del servicio y todas sus configuraciones. Puedes reinstalarlo más tarde desde la página de configuración.",
"confirmationAccept": "Eliminar",
"successMessage": {
"detail": "{service} ha sido eliminado con éxito"
},
"errorMessage": {
"detail": "Error al eliminar {service}. Por favor revisa los registros para más detalles."
}
}
},
"serviceConfigurations": {
"title": "Configuraciones del servicio",
"description": "Estas configuraciones se aplican al {service} cuando se inicia. {service} se reiniciará automáticamente después de guardar cualquier cambio.",
"enableNetworkAccess": {
"title": "Habilitar acceso a la red",
"description": "Permitir que otros dispositivos en tu red accedan a este {service} a través de la dirección IP de este dispositivo."
},
"allowMstyStudioAccess": {
"title": "Permitir acceso desde Msty Studio",
"description": "Permitir conexiones desde Msty Studio Web a esta aplicación para que pueda acceder a {service}."
},
"captureServiceLogs": {
"title": "Capturar registros del servicio",
"description": "Habilitar el registro para capturar datos del servicio para depuración. Usa esta opción solo cuando sea necesario."
},
"unsavedChanges": {
"message": "Tienes cambios no guardados en las Configuraciones de {service}. Una vez guardes, {service} se reiniciará con las nuevas configuraciones.",
"saveChanges": "Guardar cambios y reiniciar servicio",
"successMessage": {
"detail": "Configuraciones de {service} guardadas y servicio reiniciado"
},
"errorMessage": {
"detail": "Error al guardar las configuraciones de {service}. Por favor revisa los registros para más detalles."
}
}
},
"modelConfigurations": {
"title": "Configuraciones de @:model",
"description": "Estas configuraciones se aplican a todos los modelos durante las sesiones de chat."
}
},
"keyboardShortcuts": {
"title": "Atajos de teclado",
"description": "Personaliza los atajos de teclado para acceso rápido a las funciones",
"search": "Buscar atajos...",
"searchByShortcut": "Buscar por atajo",
"searchByName": "Buscar por nombre",
"pressShortcut": "Presiona cualquier combinación de teclas...",
"pressKeys": "Presiona teclas...",
"notSet": "No establecido",
"edit": "Editar atajo",
"clear": "Borrar",
"global": "Global",
"saved": "Atajo guardado",
"error": "Error al guardar atajo",
"reset": "Atajo restablecido",
"resetToDefault": "Restablecer a default",
"resetAll": "Restablecer todos los atajos",
"allReset": "Todos los atajos restablecidos a los valores predeterminados",
"noResults": "No se encontraron atajos",
"conflictWith": "Conflictos con: {name}",
"categories": {
"all": "Todos",
"general": "General",
"navigation": "Navegación",
"appearance": "@:settings.appearance",
"conversation": "Conversación"
},
"resetAllConfirm": {
"title": "Restablecer todos los atajos",
"message": "¿Estás seguro de que deseas restablecer todos los atajos de teclado a sus valores predeterminados?"
},
"help": {
"title": "Atajos de teclado",
"customizeButton": "Personalizar atajos"
},
"contextual": "Contextual",
"systemWide": "A nivel del sistema",
"macOptionHint": "Los atajos de la tecla Opción funcionan en Msty. Si producen caracteres especiales en su lugar, revisa Configuración del sistema > Teclado > Fuentes de entrada",
"example": {
"title": "Ejemplo de atajos de teclado",
"description": "Este componente demuestra cómo registrar y usar atajos de teclado en tus componentes.",
"registeredShortcuts": "Atajos registrados:",
"exampleAction1": "Acción de ejemplo 1",
"scopedAction": "Acción con alcance",
"actions": "Acciones:",
"updateFirstShortcut": "Actualizar primer atajo",
"testConflictDetection": "Probar detección de conflictos",
"actionLog": "Registro de acciones:",
"noActionsYet": "¡No hay acciones todavía! ¡Intenta presionar los atajos!",
"developerNotes": {
"title": "Notas para desarrolladores:",
"items": [
"Los atajos se limpian automáticamente cuando el componente se desmonta",
"Usa atajos con alcance de componente para evitar conflictos de ID",
"Las asignaciones específicas de plataforma se manejan automáticamente (Cmd en Mac, Ctrl en Windows)",
"Revisa si hay conflictos antes de registrar atajos que puedan chocar con los existentes",
"Los atajos pueden ser globales (funcionan en todas partes) o específicos del contexto"
]
}
},
"splitRemoval": {
"selectSplitToRemove": "Selecciona la división a eliminar",
"pressKeysToCancel": "Presiona",
"remove": "Eliminar"
},
"perSplit": "Por split"
},
"miniMapActions": {
"noMessageSelectedWarning": {
"summary": "No hay mensajes seleccionados",
"detail": "Selecciona al menos un mensaje para realizar alguna acción"
},
"exportOrCopyMessage": {
"exportMessage": "Exportar mensaje | Exportar mensajes",
"copyMessage": "Copiar mensaje | Copiar mensajes",
"asJson": "Como JSON",
"asMarkdown": "Como Markdown",
"successMessage": "Mensajes {action} con éxito como {format}",
"action": {
"export": "exportado",
"copy": "copiado"
}
}
},
"reIndexItem": {
"action": "Reindexar {item}",
"successMessage": {
"detail": "{item} reindexado con éxito"
},
"errorMessage": {
"detail": "Error al reindexar {item}"
},
"confirmationMessage": "¿Estás seguro de que deseas reindexar {item}?"
},
"recent": "Recientes",
"knowledgeStack": {
"title": "Knowledge Stack | Stacks de conocimiento",
"contexts": "@:knowledgeStack.title Contextos",
"composeProgress": {
"processing": "Procesando: {fileName}",
"composing": "Componiendo",
"composingEllipsis": "Componiendo…",
"files": "Archivos",
"notes": "Notas",
"youtube": "YouTube",
"folders": "Carpetas",
"overallProgress": "Progreso general",
"inFlight": "En vuelo:"
},
"itemStatus": {
"ignoredForRetrieval": "Ignorado para recuperación"
},
"cloudShare": {
"importingFolder": "Importando carpeta: {name}",
"processingCount": "Procesando {count} conocimiento(s) stack"
},
"saveEdits": {
"title": "Guardar ediciones",
"confirmation": {
"header": "Guardar ediciones y marcar como borrador",
"message": "¿Estás seguro de que deseas guardar tus ediciones? Esto marcará el Knowledge Stack como borrador y evitará que se use en producción hasta que se procese nuevamente."
}
},
"selectFolderForImport": "Elige dónde importar el @:knowledgeStack.title",
"newKnowledgeStack": "Nuevo @:knowledgeStack.title",
"addDescription": "Agregar descripción",
"editDescription": "Editar descripción",
"descriptionPlaceholder": "Agrega una descripción para este Knowledge Stack...",
"autoSaving": "Guardando...",
"autoSaved": "Guardado {time}",
"basicInfo": "Información básica",
"similarityThreshold": "@:similarity Threshold",
"similarityMatch": "@:similarity Match",
"unsavedChanges": {
"confirmNavigation": "Tienes cambios no guardados. ¿Estás seguro de que deseas salir de esta página? Tus cambios se perderán.",
"confirmReload": "Tienes cambios no guardados que se perderán si recargas la página."
},
"empty": {
"title": "No se ha seleccionado ningún @:knowledgeStack.title",
"description": "Knowledge Stack te permite importar archivos, carpetas, notas y transcripciones de YouTube, haciéndolos buscables y listos para chat a través de Generación Aumentada por Recuperación (RAG)"
},
"selectOrCreate": "Selecciona un @:knowledgeStack.title",
"selectFromTreeOrCreate": "Selecciona un @:knowledgeStack.title del árbol o crea uno nuevo",
"folderForm": {
"addTitle": "Agregar nueva @:folder",
"editTitle": "Editar @:folder",
"editIgnoreRules": "Editar reglas de ignorar",
"editIgnoreRulesTitle": "Reglas de ignorar",
"ignoreRulesDescription": "Define patrones para excluir archivos y carpetas del procesamiento.",
"ignoreRulesHierarchySimple": "Prioridad: Local .mstyignore/.gitignore → Reglas de carpeta → Predeterminados del sistema",
"ignoreRulesPlaceholder": "# Ingresa patrones aquí, uno por línea\n# Ejemplo: *.log, node_modules/, !important.txt",
"showExamples": "Mostrar ejemplos y ayuda",
"ignoreExample1": "Archivos de registro",
"ignoreExample2": "Archivos temporales en todos los dirs",
"ignoreExample3": "Todo un directorio",
"ignoreExample4": "Patrón de excepción",
"ignoreExample5": "Múltiples tipos de imagen",
"ignoreExample6": "Todos los archivos en test y subdirs",
"ignoreExample7": "Coincidencia sin distinción entre mayúsculas y minúsculas",
"ignoreExample8": "Archivos que comienzan con secret-",
"insertTemplate": "Usar plantilla",
"clearContent": "Borrar todo",
"ignoreRulesUpdated": "Reglas de ignorar actualizadas con éxito",
"ignoreRulesUpdateError": "Error al actualizar reglas de ignorar",
"deleteConfirmation": {
"header": "Eliminar @:folder '{folderName}'",
"message": "¿Estás seguro de que deseas eliminar esta carpeta? Todo el Knowledge Stacks dentro de ella serán eliminados. Esta acción no tiene deshacer.",
"successMessage": {
"detail": "@:folder eliminado"
},
"errorMessage": {
"detail": "Error al eliminar @:folder"
}
},
"updateErrorMessage": {
"detail": "Error al actualizar @:folder"
},
"createSuccessMessage": {
"detail": "@:folder creada"
},
"createErrorMessage": {
"detail": "Error al crear @:folder"
}
},
"setDefaultFolder": "Establecer como carpeta predeterminada",
"unsetDefaultFolder": "Quitar carpeta predeterminada",
"createRootFolder": "Nueva carpeta en raíz",
"knowledgeStackForm": {
"addTitle": "Agregar nuevo @:knowledgeStack.title",
"deleteConfirmation": {
"header": "Eliminar @:knowledgeStack.title",
"message": "¿Estás seguro de que deseas eliminar este Knowledge Stack? Todos los elementos dentro de él serán eliminados. Esta acción no tiene deshacer."
}
},
"deleteAllKnowledgeStack": {
"title": "Eliminar todos los @:knowledgeStack.title",
"description": "Esto eliminará toda la @:knowledgeStack.title{'.'} No hay forma de recuperarlos después de la eliminación.",
"successMessage": {
"detail": "Todos los @:knowledgeStack.title eliminados"
},
"errorMessage": {
"detail": "Error al eliminar todos los @:knowledgeStack.title"
}
},
"chunksConsole": {
"chunk": "Trozo | @:knowledgeStack.chunksConsole.chunks",
"chunks": "Trozos",
"title": "@:knowledgeStack.chunksConsole.chunks Console",
"description": "Utiliza esta consola para entender cómo se está utilizando tu Knowledge Stack, { title }, y qué trozos se están enviando a un modelo al chatear. También puedes eliminar un trozo si crees que no es relevante o útil.",
"queryText": "Texto de consulta",
"similarityFilter": {
"title": "@:similarity",
"all": "Todos",
"highest": "Más alto",
"high": "Alto",
"medium": "Medio",
"low": "Bajo"
},
"matchCount": "# de @:knowledgeStack.chunksConsole.chunks",
"sourceFile": "Archivo de origen",
"sourceNote": "Nota de origen",
"sourceVideo": "Video de origen",
"source": "Fuente",
"score": "Puntuación",
"searchResults": "Resultados de búsqueda",
"noResultsFound": "No se encontraron resultados de búsqueda. Intenta ajustar tu consulta o configuración de búsqueda.",
"noResultsAfterFilter": "No hay resultados que coincidan con el filtro de similitud actual. Intenta ajustar el filtro para mostrar más resultados.",
"deleteChunk": {
"successMessage": {
"detail": "@:knowledgeStack.chunksConsole.chunk ha sido eliminado"
}
},
"searchType": {
"title": "Tipo de búsqueda",
"hybrid": "Búsqueda híbrida",
"semantic": "Búsqueda semántica",
"keyword": "Búsqueda por palabra clave"
},
"filterDisclaimer": "Este filtro solo afecta a los resultados que se muestran a continuación. No cambia la consulta real.",
"tooltip": {
"scrubbed": "El contenido ha sido limpiado para la eliminación de PII",
"cached": "Se utilizó la versión limpia en caché",
"fresh": "Contenido limpiado recientemente"
},
"runQuery": "Ejecutar consulta"
},
"addon": {
"title": "@:knowledgeStack.title",
"selectedCount": "{count} seleccionado",
"selectedStacks": "Stacks seleccionados",
"searchPlaceholder": "Buscar Knowledge Stacks...",
"recentlyUpdated": "Actualizados recientemente",
"searchResults": "Resultados de búsqueda",
"noResults": "No se encontraron Knowledge Stacks",
"noStacks": "No hay Knowledge Stacks disponibles",
"noDescription": "Sin descripción",
"numberOfChunks": "Número de @:knowledgeStack.chunksConsole.chunks",
"searchType": "Tipo de búsqueda",
"synthesizePrompt": "Sintetizar consulta",
"enablePiiScrubbing": "Habilitar limpieza de PII",
"fullContentContextLimit": "Máx. Contextos de contenido completo",
"fullContentContextWarning": "Los contextos de contenido completo pueden aumentar significativamente el uso de tokens y pueden afectar el rendimiento",
"manageStacks": "Gestionar stacks",
"onlyCompletedStacks": "Sólo los stacks completados pueden ser seleccionados"
},
"totalFiles": "Total de archivos",
"vectorDimensions": "Dimensiones de vector",
"wordCount": "Recuento de palabras",
"readingTime": "Tiempo de lectura",
"embeddingModel": {
"title": "Modelo de incrustaciones",
"noModel": "No se ha configurado ningún modelo de incrustaciones",
"modelMissing": "Modelo {modelId} no encontrado",
"providerRemapped": "El proveedor del modelo fue remapeado automáticamente",
"changeModel": "Cambiar modelo de incrustaciones de consulta",
"selectModel": "Seleccionar modelo de incrustaciones de consulta",
"missingModelWarning": "El modelo de incrustaciones original para este Knowledge Stack no está disponible. Por favor, selecciona un nuevo modelo.",
"providerRemappedInfo": "El proveedor del modelo de incrustaciones fue remapeado automáticamente a un proveedor compatible.",
"currentModel": "Modelo actual",
"noModelConfigured": "Sin modelo configurado",
"selectNewModel": "Seleccionar nuevo modelo",
"defaultLocal": "Predeterminado (Local)"
},
"buckets": {
"files": {
"title": "@:files",
"description": "Agrega archivos .pdf, .csv, .md, .json, .jsonl, .xlsx, .docx, .rtf, .txt, .pptx o cualquier otro tipo de archivo soportado.",
"dropZoneText": "Arrastra y suelta archivos aquí",
"browseFiles": "Buscar archivos",
"dropHint": "Suelta los archivos aquí"
},
"folders": {
"title": "@:folders & Obsidian Vaults",
"description": "Agrega carpetas que contengan archivos. También puedes soltar Vaults de Obsidian.",
"dropZoneText": "Arrastra y suelta carpetas aquí",
"browseFolders": "Buscar carpetas",
"liveMode": "Modo en vivo",
"liveModeDescription": "Las carpetas se monitorean en busca de cambios y se actualizan automáticamente en el Knowledge Stack",
"duplicateFolder": "Carpeta duplicada",
"alreadyAdded": "Carpeta ya añadida",
"folderAlreadyExists": "Esta carpeta ya ha sido añadida al @:knowledgeStack.title",
"folderAlreadyAdded": "La carpeta '{path}' ya ha sido añadida",
"folderProcessed": "Carpeta procesada",
"filesAdded": "{count} archivos añadidos con éxito",
"onlyFoldersAllowed": "Solo se pueden añadir carpetas aquí. Por favor selecciona una carpeta en lugar de archivos individuales.",
"selectFolder": "Seleccionar carpeta",
"useDirectoryPicker": "Por favor, usa el botón Buscar para seleccionar una carpeta en modo web",
"processed": "Procesado",
"processingError": "Error al procesar la carpeta",
"folderExplorer": "Explorador de carpetas",
"showIgnoredFiles": "Mostrar archivos ignorados",
"noFolders": "No se han añadido carpetas aún",
"refresh": "Actualizar",
"showInFileManager": "Mostrar en el administrador de archivos",
"remove": "Eliminar",
"loadError": "Error al cargar la carpeta",
"removed": "Carpeta eliminada",
"folderRemoved": "'{name}' ha sido eliminada del Knowledge Stack",
"removeError": "Error al eliminar carpeta",
"ignored": "Ignorado",
"loading": "Cargando...",
"loadingContents": "Cargando contenido de la carpeta...",
"confirmRemove": "¿Estás seguro de que deseas eliminar \"{name}\" de este Knowledge Stack? La carpeta y sus archivos permanecerán en tu sistema.",
"expandFolder": "Expandir carpeta",
"collapseFolder": "Colapsar carpeta",
"folderIgnored": "Esta carpeta está ignorada según las reglas de .mstyignore o .gitignore",
"fileIgnored": "Este archivo está ignorado según las reglas de .mstyignore o .gitignore",
"actionMenu": "Menú de acciones",
"emptyFolder": "Carpeta vacía",
"itemCount": "{count} elemento | {count} elementos",
"hiddenItemCount": "{count} elemento oculto | {count} elementos ocultos"
},
"obsidianVaults": {
"title": "Vaults de Obsidian",
"description": "Agrega Vaults de Obsidian a tu Knowledge Stack. Msty indexará todas las notas en el vault.",
"dropZoneText": "Arrastra y suelta Vaults de Obsidian aquí",
"browseVaults": "Buscar Vaults de Obsidian"
},
"notes": {
"title": "Notas",
"description": "Agrega tus propias notas al Knowledge Stack. Estas notas serán fragmentadas e integradas para búsqueda semántica.",
"addNote": "Agregar nota",
"titlePlaceholder": "Ingresa el título de la nota...",
"contentPlaceholder": "Ingresa el contenido de la nota...",
"empty": "Aún no se han añadido notas. Haz clic en 'Agregar nota' para comenzar.",
"unsaved": "No guardado aún"
},
"youTubeLinks": {
"title": "Enlaces de YouTube",
"description": "Agrega enlaces de videos de YouTube para indexar sus transcripciones. Msty obtendrá las transcripciones y las hará buscables.",
"dropZoneText": "Arrastra y suelta enlaces de YouTube aquí o pégalos a continuación",
"inputPlaceholder": "Pega las URL de YouTube aquí (separadas por espacio o coma)...",
"inputPlaceholderWithDetected": "Pega las URL de YouTube aquí ({count} detectadas) | Pega las URL de YouTube aquí ({count} detectadas)",
"autoDetection": "Detección automática de URL detectadas",
"detectedCount": "{count} URL detectada | {count} URLs detectadas",
"detectedUnpulledUrls": "{count} URL de YouTube detectada pero aún no extraída | {count} URLs de YouTube detectadas pero aún no extraídas"
}
},
"itemActions": {
"markForReprocessing": "Marcar para reprocesar",
"lockTemporary": "Bloquear temporalmente",
"lockPermanent": "Bloquear permanentemente",
"unlock": "Desbloquear",
"ignoreRetrieval": "Ignorar para recuperación",
"unignoreRetrieval": "Incluir en recuperación",
"moreActions": "Más acciones"
},
"loadMode": {
"title": "Modo de carga",
"dialogTitle": "Seleccionar modo de carga",
"distribution": "Distribución",
"dialogDescription": "Elige cómo debe cargarse este archivo durante la composición del Knowledge Stack.",
"staticFiles": "Archivos estáticos",
"dynamicFiles": "Archivos dinámicos",
"syncFiles": "Archivos sincronizados",
"totalFiles": "Total de archivos",
"specialModes": "Modos especiales",
"specialModesRatio": "Relación de modos especiales",
"static": {
"label": "Modo estático",
"description": "Usa la versión en caché de cuando se añadió el archivo. Rápido y predecible, pero no refleja cambios recientes.",
"shortDescription": "Contenido en caché cargado desde la indexación inicial",
"badge": "Predeterminado"
},
"dynamic": {
"label": "Modo dinámico",
"description": "Carga el contenido más reciente del archivo en cada composición. Un poco más lento pero siempre actualizado.",
"shortDescription": "Contenido fresco cargado en cada composición",
"badge": "Recomendado"
},
"sync": {
"label": "Modo sincronizado",
"description": "Monitorea cambios en el archivo y recomposiciones automáticas. Mejor para archivos pequeños y actualizaciones frecuentes.",
"shortDescription": "Auto-recompone cuando los archivos cambian",
"badge": "Costoso"
}
},
"syncMode": {
"start": "Iniciar modo sincronizado",
"pause": "Pausar modo sincronizado",
"pauseAll": "Pausar todos",
"started": "Modo sincronizado iniciado",
"startedDetail": "Ahora monitoreando cambios en los archivos para {name}",
"stopped": "Modo sincronizado pausado",
"stoppedDetail": "El monitoreo de archivos ha sido pausado",
"startFailed": "Error al iniciar el modo sincronizado",
"startFailedDetail": "Por favor asegúrate de que el Knowledge Stack tenga archivos marcados para Modo Sincronizado",
"allPaused": "Todos los modos sincronizados pausados",
"allPausedDetail": "El monitoreo de archivos ha sido detenido para todos los stacks de conocimiento",
"active": "{count} Activo | {count} Activo",
"activeTitle": "Modos de sincronización activos",
"filesWatching": "{count} archivo | {count} archivos",
"filesCount": "{count} archivo | {count} archivos",
"startedTime": "Iniciado hace {time}",
"totalStats": "{stacks} stack, {files} archivos | {stacks} stacks, {files} archivos",
"hoursAgo": "hace {hours}h",
"daysAgo": "hace {days}d"
},
"analytics": {
"title": "Analíticas e información",
"lastComposed": "Última composición",
"sections": "Secciones de analíticas",
"performanceTimings": "Tiempos de rendimiento",
"summaryStatistics": "Estadísticas resumidas",
"contentBreakdown": "Desglose de contenido",
"querySettings": "Configuraciones de consulta",
"readingStatistics": "Estadísticas de lectura",
"noAnalyticsAvailable": "No hay análisis disponibles",
"noAnalyticsDescription": "Las analíticas estarán disponibles después de componer este Knowledge Stack.",
"noSectionsSelected": "No se seleccionaron secciones de analíticas",
"noSectionsSelectedDescription": "Por favor selecciona una o más secciones de analíticas arriba para ver información sobre tu Knowledge Stack.",
"selectAllSections": "Seleccionar todas las secciones",
"timings": {
"loadingItems": "Cargando elementos",
"splittingChunks": "Dividiendo @:knowledgeStack.chunksConsole.chunks",
"embeddingChunks": "Integrando @:knowledgeStack.chunksConsole.chunks",
"composingStack": "Componiendo stack",
"totalTime": "Tiempo total",
"parallelNote": "Algunas operaciones pueden ejecutarse en paralelo, por lo que los tiempos individuales pueden no sumar el tiempo total",
"fileReading": "Lectura de archivos",
"databaseWrite": "Escritura en base de datos"
},
"stats": {
"numberOfItems": "# de elementos",
"totalChunks": "Total de @:knowledgeStack.chunksConsole.chunks",
"availableChunks": "Chunks disponibles",
"skippedChunks": "Chunks omitidos",
"wordCount": "Recuento de palabras",
"characterCount": "Recuento de caracteres",
"readingTime": "Tiempo de lectura"
},
"ignoredItems": "Elementos ignorados",
"ignoredForRetrieval": "Ignorado para recuperación",
"ignoredItemsDescription": "Estos elementos están excluidos de las operaciones de búsqueda y recuperación",
"ignoredPercentage": "Porcentaje de elementos ignorados",
"ofTotal": "de {total}",
"files": "Archivos",
"notes": "Notas",
"youTubeLinks": "Videos de YouTube",
"noIgnoredItems": "Sin elementos ignorados",
"allItemsIncluded": "Todos los elementos en este Knowledge Stack están incluidos en la búsqueda y recuperación",
"recommendation": "Recomendación",
"contentTypes": {
"files": "ARCHIVOS",
"obsidianVaults": "VAULTS DE OBSIDIAN",
"folders": "CARPETAS",
"notes": "NOTAS",
"youTubeLinks": "ENLACES DE YOUTUBE"
},
"piiScrubbing": {
"title": "Limpieza de PII",
"totalChunks": "Total de @:knowledgeStack.chunksConsole.chunks",
"scrubbedChunks": "Chunks limpiados",
"cachedChunks": "Chunks en caché",
"coverage": "Cobertura",
"progress": "Progreso de limpieza",
"loadAnalytics": "Cargar analíticas",
"failedToLoadAnalytics": "Error al cargar datos analíticos de PII",
"analyticsNotLoaded": "Analíticas de PII no cargadas",
"clickToViewAnalytics": "Haz clic en 'Cargar analíticas' para ver estadísticas de limpieza de PII",
"scoreTooltip": "Este puntaje refleja cuán exhaustivamente se aplica la limpieza de PII a tu Knowledge Stack. Un puntaje más alto significa que más chunks han sido procesados para la eliminación de PII.",
"optionalDescription": "La limpieza de PII es opcional. Actívala en la configuración de consulta solo si tu contenido contiene información personal sensible.",
"protectionDescription": "Mide qué tan bien se protege la información sensible en tu Knowledge Stack",
"status": {
"notEnabled": "No habilitado",
"wellProtected": "Bien protegido",
"partiallyProtected": "Protegido parcialmente",
"limitedProtection": "Protección limitada",
"minimalProtection": "Protección mínima"
},
"insights": {
"excellentPrivacy": "Excelente protección de privacidad - casi todo el contenido asegurado",
"goodPrivacy": "Buena protección de privacidad - la mayoría del contenido está asegurado",
"partialPrivacy": "Protección de privacidad parcial - considera revisar configuraciones",
"limitedPrivacy": "Protección de privacidad limitada - revisa contenido sensible",
"notEnabled": "La limpieza de PII no está habilitada. Esto está completamente bien si tu contenido no contiene información personal sensible.",
"whenToEnable": "Considera habilitar la limpieza de PII solo si tu Knowledge Stack contiene nombres, direcciones, números de teléfono, correos electrónicos u otros datos personales.",
"significantReduction": "Reducción significativa del contenido ({percentage}%) - se encontró PII extensa",
"moderateReduction": "Reducción moderada del contenido ({percentage}%) - se eliminó algo de PII",
"minimalReduction": "Reducción mínima del contenido ({percentage}%) - poca PII detectada",
"noContentChange": "Sin cambio en el tamaño del contenido - no se detectó ni eliminó PII",
"allChunksProcessed": "Todos los chunks procesados con éxito",
"nearlyAllProcessed": "Casi todos los chunks procesados con éxito",
"mostProcessed": "La mayoría de los chunks procesados - algunos pueden necesitar atención",
"incompleteProcessing": "Procesamiento incompleto - verifica la configuración de limpieza de PII",
"largeKnowledgeBase": "Base de conocimiento grande - considera aumentar la cobertura de detección de PII",
"manyUnprocessed": "Muchos chunks no procesados - revisa la configuración de limpieza de PII",
"optionalFeature": "La limpieza de PII es opcional. Actívala en la configuración de consulta si tu contenido contiene información sensible como nombres, correos electrónicos o números de teléfono.",
"privacyOption": "La limpieza de PII ayuda a proteger información sensible. Es opcional y se puede activar en la configuración de consulta si es necesario."
},
"labels": {
"securityStatus": "Estado de seguridad",
"privacyStatus": "Estado de privacidad",
"whenToEnable": "Cuándo habilitar",
"contentImpact": "Impacto en el contenido",
"processingEfficiency": "Eficiencia del procesamiento",
"scaleRecommendation": "Recomendación de escala",
"coverageRecommendation": "Recomendación de cobertura",
"optionalFeature": "Características opcionales",
"privacyOption": "Opción de privacidad"
}
},
"querySettingsDetails": {
"searchType": "Tipo de búsqueda",
"numberOfChunks": "Número de @:knowledgeStack.chunksConsole.chunks",
"promptPrefix": "Prefijo de prompt"
},
"privacyOptimizationScore": "Puntuación de optimización de privacidad",
"piiProtectionLevel": "Nivel de protección de PII",
"piiScrubbingStatus": "Estado de limpieza de PII",
"unscrubbedChunks": "Chunks sin limpiar de @:knowledgeStack.chunksConsole.chunks",
"originalSize": "Tamaño original",
"processedSize": "Tamaño procesado",
"sizeReduction": "Reducción de tamaño",
"privacyInsights": "Información de privacidad",
"dataModified": "Los datos han sido modificados",
"showOutdatedData": "Mostrar datos desactualizados de todos modos",
"contentDistribution": "Distribución del contenido",
"contentContribution": "{label} contribuye con {percentage}% de todos los chunks",
"processingIssue": "Problema de procesamiento",
"lowEfficiency": "{label} tiene baja eficiencia ({efficiency}%)",
"dataQualityIssue": "Problema de calidad de datos",
"highSkipRates": "{count} tipo(s) de contenido tienen altas tasas de omisión",
"contentDiversity": "Diversidad de contenido",
"singleContentType": "Tipo de contenido único - considera diversificar las fuentes",
"excellentDiversity": "Excelente diversidad de contenido a través de múltiples tipos de fuente",
"optimizationTip": "Consejo de optimización",
"reduceChunkSize": "Reduce el tamaño del chunk a 800-1200 caracteres para mejor granularidad del contenido",
"increaseChunkSize": "Aumenta el tamaño del chunk a 1500-2000 caracteres para mejor eficiencia",
"embeddingThroughput": "Rendimiento de incrustaciones",
"chunksPerSecond": "{rate} chunks/segundo ({time}ms cada uno)",
"searchStrategy": "Estrategia de búsqueda",
"balancedSearch": "Enfoque equilibrado combinando búsqueda por palabra clave + búsqueda semántica",
"semanticSearch": "Búsqueda semántica impulsada por IA - mejor para consultas conceptuales",
"keywordSearch": "Búsqueda tradicional por palabra clave - mejor para términos exactos",
"retrievalVolume": "Volumen de recuperación",
"lowChunkCount": "El recuento de chunks muy bajo puede perder información relevante",
"highChunkCount": "El alto recuento de chunks puede incluir ruido y ralentizar las respuestas",
"optimalChunkCount": "Recuento óptimo de chunks para recuperación equilibrada",
"contentFiltering": "Filtrado de contenido",
"relaxedFiltering": "Filtrado relajado - puede incluir contenido débilmente relacionado",
"strictFiltering": "Filtrado estricto - resultados altamente enfocados",
"moderateFiltering": "Filtrado equilibrado para contenido relevante",
"guidedContext": "Contexto guiado",
"customPromptPrefix": "El prefijo de prompt personalizado guiará la interpretación de la consulta",
"lockIndicator": "Indicador de bloqueo",
"allItemsCanBeReprocessed": "Todos los elementos pueden ser reprocesados",
"itemsPartiallyLocked": "{percentage}% de los elementos están bloqueados",
"mostItemsLocked": "La mayoría de los elementos están bloqueados - capacidad de reprocesamiento limitada",
"privacySecurity": "Privacidad y seguridad",
"privacyProtectionEnabled": "Protección de privacidad habilitada para datos sensibles",
"noPiiScrubbing": "Sin limpieza de PII - asegúrate de que el contenido no es sensible",
"scaleOptimization": "Optimización de escala",
"largeKnowledgeBase": "Base de conocimiento grande - aumenta el recuento de chunks para mejor cobertura",
"smallKnowledgeBase": "Base de conocimiento pequeña - considera reducir el recuento de chunks",
"performanceProfile": "Perfil de rendimiento",
"optimizedForSpeed": "Configuración optimizada para respuestas rápidas",
"optimizedForQuality": "Configuración optimizada para resultados de alta calidad",
"highLockRate": "Alta tasa de bloqueo",
"lockedItemsPercentage": "{percentage}% de los elementos están bloqueados y no serán reprocesados",
"unlockRecommendation": "Considera desbloquear temporalmente los elementos bloqueados si necesitan actualizaciones",
"overHalfLocked": "Más del 50% de los elementos están bloqueados. Esto puede reducir significativamente la capacidad de la base de conocimiento para mantenerse actualizada.",
"lockStatus": "Estado de bloqueo",
"totalItems": "Total de elementos",
"unlocked": "Desbloqueado",
"temporarilyLocked": "Bloqueado temporalmente",
"permanentlyLocked": "Bloqueado permanentemente",
"lockStatusByContentType": "Estado de bloqueo por tipo de contenido",
"tempLocked": "Bloqueado temporalmente",
"permLocked": "Bloqueado permanentemente",
"lockStatusInsights": "Estado de bloqueo en la @:insights",
"processingEfficiency": "Eficiencia del procesamiento",
"contentInsights": "Contenido en @:insights",
"compositionOptimizationScore": "Puntuación de optimización de composición",
"compositionInsights": "Composición en @:insights",
"performanceInsights": "Rendimiento en @:insights",
"processingPhaseDetails": "Detalles de la fase de procesamiento",
"loadingItems": "Cargando elementos",
"splittingChunks": "Dividiendo @:knowledgeStack.chunksConsole.chunks",
"embeddingChunks": "Integrando @:knowledgeStack.chunksConsole.chunks",
"fileReading": "Lectura de archivo",
"databaseWrite": "Escritura en base de datos",
"composingStack": "Componiendo stack",
"totalProcessingTime": "Tiempo total de procesamiento",
"totalLockedItems": "Total de elementos bloqueados",
"efficiency": "Eficiencia",
"loadMode": {
"title": "Analíticas del modo de carga",
"description": "Comportamiento de carga de archivos a través de tu Knowledge Stack",
"distribution": "Distribución del modo de carga",
"totalFiles": "Total de archivos",
"staticFiles": "Modo estático",
"dynamicFiles": "Modo dinámico",
"syncFiles": "Modo sincronizado",
"specialModes": "Modos especiales",
"specialModesRatio": "Porcentaje de modos especiales",
"status": "Estado",
"active": "Activo",
"inactive": "Inactivo",
"breakdown": "Desglose visual",
"noFiles": "No hay archivos en este Knowledge Stack",
"desktopOnly": "Las opciones del modo de carga solo están disponibles en la aplicación de escritorio",
"notAvailable": "Las opciones del modo de carga solo están disponibles en la aplicación de escritorio",
"noSpecialModes": "Todos los archivos están usando el Modo estático. Habilita el Modo dinámico o el Modo Sincronizado para que los archivos usen el contenido más reciente.",
"syncActive": "Modo Sincronizado activo",
"syncActiveDetails": "Monitoreando {files} • Iniciado hace {time}",
"staticDescription": "Contenido en caché cargado desde la indexación inicial",
"dynamicDescription": "Contenido fresco cargado en cada composición",
"syncDescription": "Auto-recompone cuando los archivos cambian",
"staticBadge": "Predeterminado",
"dynamicBadge": "Fresco",
"syncBadge": "En vivo",
"insights": {
"highSyncCount": {
"title": "Alto recuento de archivos en sincronización",
"description": "{count} archivos están en Modo Sincronizado",
"recommendation": "Considera usar el Modo dinámico para archivos menos actualizados para reducir el uso de recursos"
},
"syncEnabled": {
"title": "Modo sincronizado habilitado",
"description": "{count} archivos se están actualizando automáticamente cuando cambian"
},
"highDynamicUsage": {
"title": "Alto uso del Modo dinámico",
"description": "{percentage}% de los archivos están usando el Modo dinámico",
"recommendation": "El Modo estático puede ser suficiente para archivos que rara vez cambian"
},
"dynamicEnabled": {
"title": "Modo dinámico activo",
"description": "{count} archivos están cargando contenido fresco en cada composición"
},
"staticOnly": {
"title": "Solo Modo estático",
"description": "Todos los archivos están usando contenido en caché de la indexación inicial",
"recommendation": "Habilita el Modo dinámico o el Modo Sincronizado para archivos que se actualizan con frecuencia para asegurar contenido fresco"
},
"mixedModes": {
"title": "Modos de carga mixtos",
"description": "{percentage}% de los archivos están usando modos de carga especiales"
}
}
}
},
"composeSettings": {
"title": "Configuración de composición",
"chunkOverlapping": "@:knowledgeStack.chunksConsole.chunk Overlapping",
"embeddingModel": {
"title": "Modelo de incrustaciones",
"warning": "Cambiar el modelo de incrustaciones requerirá recomponer todo el Knowledge Stack y, aun así, existe la posibilidad de que la recomposición falle.",
"learnMore": "Aprende más sobre la compatibilidad del modelo de incrustaciones",
"defaultPlaceholder": "Predeterminado (Local)"
},
"placeholders": {
"selectEmbeddingModel": "Selecciona un modelo de incrustaciones",
"selectChunkOverlapping": "Selecciona la superposición de chunks",
"selectChunkSize": "Selecciona el tamaño del chunk"
},
"chunkingMethod": {
"title": "Método de fragmentación",
"recursiveCharacter": "Carácter recursivo",
"sentence": "Oración",
"description": "Elige cómo deben fragmentarse los documentos en piezas más pequeñas para mejor búsqueda y recuperación."
},
"overlapping": {
"title": "Superposición",
"description": "Elige cuánto overlap debe haber entre los chunks. Un overlap más alto puede mejorar el contexto pero aumentar el uso de tokens."
},
"chunkSize": {
"title": "@:knowledgeStack.chunksConsole.chunk Size",
"description": "Establece el tamaño máximo de cada chunk en caracteres. Chunks más pequeños pueden mejorar la precisión de búsqueda pero aumentar el uso de tokens."
},
"chunkSizesToIgnore": {
"title": "@:knowledgeStack.chunksConsole.chunk Sizes To Ignore",
"description": "Especifica los tamaños de chunk que deben ser ignorados durante el procesamiento. Útil para excluir chunks muy pequeños o muy grandes."
}
},
"querySettings": {
"title": "Configuraciones de consulta",
"numberOfChunks": "Número de @:knowledgeStack.chunksConsole.chunks",
"promptPrefix": "Prefijo de prompt",
"similarityThreshold": {
"low": "Bajo",
"medium": "Medio",
"high": "Alto",
"highest": "Más alto"
},
"searchTypes": {
"semantic": "Búsqueda semántica",
"keyword": "Búsqueda por palabra clave",
"hybrid": "Búsqueda híbrida"
},
"modes": {
"push": "Modo push",
"pull": "Modo pull"
},
"chunks": {
"title": "Contexto del Knowledge Stack",
"loadError": "Error al cargar los chunks del Knowledge Stack. Por favor intenta nuevamente.",
"searchSettings": "Configuraciones de búsqueda",
"searchType": "Tipo de búsqueda",
"searchQuery": "Consulta de búsqueda",
"source": "Fuente",
"content": "Contenido",
"fullContent": "Contenido completo",
"chunkInfo": "@:knowledgeStack.chunksConsole.chunk Information",
"knowledgeStack": "Knowledge Stack",
"chunks": "chunks",
"maxChunks": "Máx. @:knowledgeStack.chunksConsole.chunks"
},
"retrievalMode": {
"title": "@:knowledgeStack.chunksConsole.chunk Retrieval Mode",
"description": "Elige entre el modo Push donde los chunks se precargan, o el Modo Pull donde el modelo puede consultar directamente los Knowledge Stacks"
}
},
"chunks": {
"coverage": "Cobertura",
"skippedChunks": "Chunks omitidos",
"availableChunks": "Chunks disponibles",
"numberOfChunks": "Número de @:knowledgeStack.chunksConsole.chunks",
"promptPrefix": "Prefijo de prompt",
"chunkingMethod": "Método de fragmentación",
"chunkSize": "@:knowledgeStack.chunksConsole.chunk Size",
"chunkOverlap": "@:knowledgeStack.chunksConsole.chunk Overlap",
"totalChunks": "Total de @:knowledgeStack.chunksConsole.chunks",
"cachedChunks": "Chunks en caché",
"scrubbedChunks": "Chunks limpiados",
"loadError": "Error al cargar los chunks del Knowledge Stack. Por favor intenta nuevamente.",
"searchSettings": "Configuraciones de búsqueda",
"searchType": "Tipo de búsqueda",
"maxChunks": "Máx. @:knowledgeStack.chunksConsole.chunks",
"searchQuery": "Consulta de búsqueda",
"synthesizedQuery": "Consulta sintetizada",
"chunks": "chunk | chunks",
"source": "Fuente",
"content": "Contenido",
"viewFull": "Ver contenido completo",
"fullContent": "Todo el contenido del @:knowledgeStack.chunksConsole.chunk",
"chunkInfo": "@:knowledgeStack.chunksConsole.chunk Information",
"knowledgeStack": "Knowledge Stack",
"scrubbed": "Limpiado",
"original": "Original",
"chunkId": "@:knowledgeStack.chunksConsole.chunk ID",
"piiStatus": "Estado de PII",
"piiScrubbed": "PII limpiada",
"piiUnscrubbed": "PII sin limpiar",
"tooltip": {
"scrubbed": "El contenido ha sido limpiado para la eliminación de PII",
"cached": "Se utilizó la versión limpia en caché",
"fresh": "Contenido limpiado recientemente",
"original": "Contenido original sin @:pii.scrubbing.title"
},
"queryAnalysis": "Análisis de consulta",
"fullContentRetrieved": "Contexto de contenido completo activo",
"documentsRetrieved": "Documentos recuperados",
"contentContext": "Contexto de contenido",
"keywords": "Palabras clave",
"fullDoc": "Documento completo",
"type": "Tipo",
"fullDocument": "Documento completo"
},
"chunksVisualizer": {
"title": "@:knowledgeStack.chunksConsole.chunks Visualizer",
"description": "Visualiza cómo se fragmentan los documentos",
"openStitcher": "Abrir visualizador",
"viewStitcher": "Ver visualizador",
"stitchableFiles": "Archivos disponibles",
"loading": "Cargando archivos...",
"noFiles": "No se encontraron archivos",
"selectFile": "Seleccionar un archivo",
"selectFileDescription": "Elige un archivo de la izquierda para visualizar sus trozos y contenido",
"mimeType": "Tipo MIME",
"chunks": "@:knowledgeStack.chunksConsole.chunks",
"overlaps": "Superposiciones",
"stitchedSize": "Tamaño cosido",
"showOverlaps": "Mostrar superposiciones",
"hideOverlaps": "Ocultar superposiciones",
"showChunks": "Mostrar @:knowledgeStack.chunksConsole.chunks",
"showStitched": "Mostrar cosido",
"copyContent": "Copiar contenido",
"stitchedContent": "Contenido cosido",
"scrubbedChunks": "Chunks limpiados",
"unScrubbedChunks": "Chunks sin limpiar",
"overlapRemoved": "Las superposiciones han sido eliminadas para una reconstrucción de texto limpia",
"chunkNumber": "@:knowledgeStack.chunksConsole.chunk {number}",
"overlapPrevious": "Superposición anterior",
"overlapNext": "Superposición siguiente",
"overlapWithPrevious": "Este texto se superpone con el trozo anterior",
"overlapWithNext": "Este texto se superpone con el siguiente trozo",
"chunkIndices": "Posiciones de caracteres en el archivo",
"coreIndices": "Contenido principal sin superposiciones",
"chunkCount": "{count} trozos",
"showOriginal": "Mostrar original",
"showScrubbed": "Mostrar limpiado",
"showScrubbedOnly": "Mostrar solo limpiado",
"showAllChunks": "Mostrar todos los @:knowledgeStack.chunksConsole.chunks",
"tooltip": {
"scrubbed": "El contenido ha sido limpiado para la eliminación de PII",
"cached": "Se utilizó la versión limpia en caché",
"fresh": "Contenido limpiado recientemente"
},
"itemsPerPage": "Por página",
"showingChunks": "Mostrando {start}-{end} de {total} trozos",
"loadingChunks": "Cargando trozos...",
"noItems": "No se encontraron elementos",
"selectItem": "Seleccionar un elemento",
"selectItemDescription": "Elige un archivo o nota de la izquierda para visualizar sus trozos y contenido",
"openConsole": "Abrir consola",
"selectedChunks": "{count} @:knowledgeStack.chunksConsole.chunk seleccionado",
"deleteSelected": "Eliminar seleccionados",
"clearSelection": "Borrar selección",
"confirmDelete": "Confirmar eliminación",
"confirmDeleteMessage": "¿Estás seguro de que deseas eliminar {count} trozos seleccionados? Esta acción no se puede deshacer.",
"deleteSuccess": "@:knowledgeStack.chunksConsole.chunks eliminados",
"deleteSuccessDetail": "Se eliminaron con éxito {count} trozos",
"deletedChunksCount": "{count} @:knowledgeStack.chunksConsole.chunk eliminados con éxito",
"deleteError": "Error al eliminar"
},
"export": {
"forceCompose": "Forzar composición",
"overallProgress": "Progreso general",
"itemsExported": "{count} elementos exportados",
"items": "Elementos",
"skip": "Omitir",
"exportCompleted": "¡Exportación completada con éxito!",
"savedTo": "Guardado en: {path}",
"cancelAll": "Cancelar todo",
"done": "Hecho",
"export": "Exportar",
"exporting": "Exportando",
"knowledgeStack": "Knowledge Stack",
"folder": "Carpeta",
"exportFailed": "Error al exportar",
"importFailed": "Error al importar"
},
"messages": {
"editsSaved": "Tus cambios en el Knowledge Stack han sido guardados. Necesitarás recomponerlo para aplicar los cambios.",
"savedAndProcessing": "Knowledge stack guardado y procesamiento iniciado",
"cannotForceCompose": "No se puede forzar la composición: el Knowledge stack debe guardarse primero",
"failedToForceCompose": "Error al forzar la composición del Knowledge Stack",
"forceComposeStarted": "Composición forzada iniciada - todos los elementos serán reprocesados",
"failedToUpdateQuerySettings": "Error al actualizar configuraciones de consulta",
"querySettingsUpdated": "Configuraciones de consulta actualizadas",
"justNow": "justo ahora",
"minutesAgo": "hace {minutes}m",
"searchPlaceholder": "Buscar...",
"failedToSelectItem": "Error al seleccionar el elemento",
"failedToSelectFolder": "Error al seleccionar la carpeta",
"processingCompleted": "Procesamiento del Knowledge Stack {title} completado",
"processingFailed": "Error en el procesamiento del Knowledge Stack {title}",
"nothingToCompose": "Nada que componer para el Knowledge Stack {title}",
"composeError": "Error al componer el Knowledge Stack {title}",
"downloadImportNotAvailableInWeb": "La importación desde URL solo está disponible en la aplicación de escritorio",
"deleteSuccess": "{count} @:knowledgeStack.title eliminado!",
"createError": "Error al crear el @:knowledgeStack.title",
"saveEditsError": "Error al guardar ediciones en el @:knowledgeStack.title",
"folderAdded": "Carpeta '{name}' añadida al Knowledge Stack"
},
"folderLockedTemporary": "Carpeta '{name}' bloqueada temporalmente",
"folderLockedPermanent": "Carpeta '{name}' bloqueada permanentemente",
"lockFailed": "Error al bloquear la carpeta",
"folderUnlocked": "Carpeta '{name}' desbloqueada",
"unlockFailed": "Error al desbloquear la carpeta",
"unlock": "Desbloquear",
"status": {
"misc": "Varios",
"path": "Ruta: {path}",
"name": "Nombre: {name}",
"unknown": "Desconocido",
"original": "Original",
"loadingPiiAnalytics": "Cargando analíticas de PII...",
"allItemsUnlocked": "Todos los elementos están desbloqueados y pueden ser reprocesados cuando sea necesario."
},
"abortProcessing": "Abortar procesamiento",
"errors": {
"processingFailed": "Error en el procesamiento",
"errorMessage": "Mensaje de error",
"occurredAt": "Ocurrió en",
"failedFile": "Archivo fallido",
"errorSummary": "Resumen de error",
"technicalDetails": "Detalles técnicos",
"stackTrace": "Traza de pila",
"copyDetails": "Copiar detalles",
"detailsCopied": "Detalles del error copiados al portapapeles",
"clickToSeeDetails": "Haz clic para ver los detalles del error",
"fileIsNull": "El archivo es nulo",
"checkingPathError": "Error al comprobar si la ruta es un directorio",
"processingFolderError": "Error al procesar la carpeta",
"lockFolderTemporaryFailed": "Error al bloquear la carpeta temporalmente",
"lockFolderPermanentFailed": "Error al bloquear la carpeta permanentemente",
"unlockFolderFailed": "Error al desbloquear la carpeta",
"status": {
"completed": "Estado: Completado",
"processing": "Estado: Procesando",
"pending": "Estado: Pendiente",
"draft": "Estado: Borrador",
"needsReprocessing": "Estado: Necesita reprocesamiento",
"error": "Estado: Error",
"lockedTemporary": "Estado: Bloqueado temporalmente",
"lockedPermanent": "Estado: Bloqueado permanentemente",
"aborted": "Estado: Abortado",
"unknown": "Estado: Desconocido"
}
}
},
"features": {
"showcase": {
"title": "Desbloquear características de Aurum",
"subtitle": "Actualiza a la licencia de Aurum para obtener las funciones de IA más poderosas y avanzadas",
"eyebrow": "Todo lo que necesitas",
"viewPricing": "Ver precios",
"featureMatrix": "Matriz de características",
"activateLicense": "Activar licencia",
"licenses": {
"aurum": "Aurum"
}
}
},
"images": {
"upload": "Subir imagen…",
"onlySupported": "Solo se admiten archivos de imagen.",
"maxSize": "La imagen debe ser de 1MB o más pequeña."
},
"userAvatar": {
"updated": "Imagen de perfil actualizada.",
"updateFailed": "Error al actualizar la imagen. Por favor intenta nuevamente.",
"changeHint": "Haz clic para cambiar la imagen de perfil"
},
"expandTextarea": "Expandir editor",
"collapseTextarea": "Contraer editor",
"saved": "Guardado",
"bookmarked": "Marcado",
"pinned": "Fijado",
"allChangesSaved": "Todos los cambios guardados",
"toolbar": "Barra de herramientas",
"bookmark": "Marcador | Marcadores",
"authorized": "Autorizado",
"notAuthorized": "No autorizado",
"authorize": "Autorizar",
"reauthorize": "Reautorizar",
"deauthorize": "Eliminar autorización",
"contextSize": "Tamaño del contexto",
"defaultToModelMax": "Predeterminar al máximo del modelo",
"llamaCppContextSizeDescription": "Número máximo de tokens que el modelo procesa a la vez. Establécelo en 0 para usar el máximo del modelo. Los valores mayores aumentan el uso de memoria. Este valor se guarda globalmente por modelo con LLaMA.cpp. El contexto se reparte equitativamente según el número de solicitudes simultáneas configurado en los ajustes del servicio LLaMA.cpp.",
"truncationStrategy": {
"truncateMiddle": "Truncar en medio",
"truncateOld": "Truncar antiguos",
"none": "Ninguno"
},
"truncationStrategyDescription": "Cómo manejar los mensajes cuando se alcanza el límite de contexto.",
"treeControls": {
"title": "Ordenar y mostrar",
"searchPlaceholder": "Buscar...",
"clear": "Restablecer",
"foldersFirst": "Carpetas primero",
"itemsFirst": "Elementos primero",
"sort": {
"none": "Ninguno",
"name": "Nombre",
"title": "Título",
"created": "Creado",
"updated": "Actualizado",
"lastUsed": "Último uso",
"ascending": "Ascendente",
"descending": "Descendente"
},
"visibility": {
"label": "Visibilidad",
"empty": {
"show": "Mostrar carpetas vacías",
"hide": "Ocultar carpetas vacías"
},
"counts": {
"show": "Mostrar número de elementos",
"hide": "Ocultar número de elementos"
}
}
},
"fuzzySearch": {
"enabled": "Búsqueda difusa activada",
"disabled": "Búsqueda difusa desactivada",
"enabledHint": "Búsqueda difusa activada. Haz clic para alternar",
"disabledHint": "Búsqueda difusa desactivada. Haz clic para alternar"
},
"expandAllFolders": "Expandir todas las carpetas",
"collapseAllFolders": "Contraer todas las carpetas",
"branch": {
"clickToLabel": "Haz clic para añadir una etiqueta",
"labelPlaceholder": "Etiqueta de rama (máx. 30 caracteres)",
"labelBranch": "Etiquetar rama...",
"labelDialogTitle": "Etiquetar rama",
"noLabel": "Sin etiqueta",
"clickForOptions": "Haz clic para más opciones",
"timeline": {
"title": "Explorador de ramas",
"viewAll": "Explorador de ramas...",
"branchNumber": "Rama {n}",
"current": "Actual",
"branches": "Ramas",
"compare": "Comparar"
},
"diff": {
"title": "Comparar ramas",
"compare": "Comparar ramas",
"exitCompare": "Salir del modo de comparación",
"selectFirst": "Selecciona la primera rama para comparar",
"selectSecond": "Selecciona la segunda rama para comparar",
"selected": "Seleccionado",
"identical": "El contenido es idéntico",
"leftBranch": "Primera rama",
"rightBranch": "Segunda rama",
"selectBranch": "Seleccionar rama",
"selectBranchesToCompare": "Selecciona dos ramas arriba para comparar su contenido",
"switchToBranch": "Cambiar a {name}",
"viewDiff": "Diff",
"viewSideBySide": "Lado a lado"
}
},
"responseConfiguration": {
"title": "Configuración de respuesta",
"selectPresetPlaceholder": "Selecciona un preset...",
"saveAsPreset": "Guardar como preset",
"commonSettings": {
"title": "Ajustes comunes"
},
"advancedParameters": {
"title": "Parámetros avanzados",
"description": "Objeto JSON para parámetros avanzados del modelo",
"placeholder": ""
},
"providerOptions": {
"title": "Opciones del proveedor",
"description": "Configuración específica del proveedor",
"placeholder": ""
},
"thinkingConfig": {
"title": "Configuración de pensamiento",
"description": "Configuración ampliada de pensamiento",
"notice": "El proveedor puede ignorar o respetar parcialmente los ajustes de pensamiento"
},
"customParameters": {
"title": "Parámetros personalizados",
"helper": "El proveedor puede ignorarlos o respetarlos parcialmente",
"keyPlaceholder": "custom_param",
"valuePlaceholder": "valor",
"deleteConfirm": {
"title": "Eliminar parámetro",
"message": "¿Eliminar el parámetro personalizado \"{param}\"?"
},
"errors": {
"missingKey": "La clave del parámetro es obligatoria.",
"reserved": "Esta clave está reservada para parámetros integrados.",
"duplicate": "Ya existe un parámetro con esta clave."
}
},
"json": {
"invalid": "JSON inválido"
},
"tooltips": {
"constraintMode": "El modo de restricción está activado",
"freeformMode": "El modo libre está activado - sin límites mín/máx"
},
"expandOtherOptions": "Expandir otras opciones",
"collapseOtherOptions": "Contraer otras opciones",
"parameters": {
"temperature": {
"label": "Temperatura",
"helper": "Controla la aleatoriedad (0=enfocado, 2=creativo)"
},
"topP": {
"label": "Top P",
"helper": "Masa de probabilidad a mantener durante el muestreo de núcleo"
},
"topK": {
"label": "Top K",
"helper": "Limita la selección de tokens a los K principales"
},
"maxOutputTokens": {
"label": "Tokens de salida máx.",
"helper": "Máximo de tokens para las respuestas",
"helperWithLimit": "Máximo de tokens para las respuestas (límite {0})"
},
"numCtx": {
"label": "Tamaño de ventana de contexto",
"helper": "Máximo de tokens aceptados en el prompt",
"helperWithLimit": "Máximo de tokens aceptados en el prompt (límite {0})",
"llamaCppHint": "Establece 0 para usar el tamaño máximo de contexto del modelo"
},
"presencePenalty": {
"label": "Penalización de presencia",
"helper": "Penaliza los nuevos tokens según si aparecen en el texto hasta ahora"
},
"frequencyPenalty": {
"label": "Penalización de frecuencia",
"helper": "Penaliza los tokens según su frecuencia en el texto"
},
"repeatPenalty": {
"label": "Penalización de repetición",
"helper": "Desincentiva repetir frases"
},
"repeatLastN": {
"label": "Repetir últimos N",
"helper": "Ventana de contexto para aplicar la penalización de repetición"
},
"minP": {
"label": "Min P",
"helper": "Probabilidad acumulada mínima para seleccionar tokens"
},
"mirostat": {
"label": "Mirostat",
"helper": "Estabiliza la perplejidad dinámicamente",
"options": {
"off": "Apagado",
"v1": "Mirostat 1.0",
"v2": "Mirostat 2.0"
}
},
"mirostatTau": {
"label": "Mirostat Tau",
"helper": "Nivel de sorpresa objetivo (más bajo = más seguro)"
},
"mirostatEta": {
"label": "Mirostat Eta",
"helper": "Tasa de aprendizaje para el ajuste de Mirostat"
},
"numGpu": {
"label": "Capas de GPU",
"helper": "Número de capas que se descargan en la GPU"
},
"numThread": {
"label": "Hilos",
"helper": "Hilos de CPU para la generación"
}
}
},
"mlx": "MLX",
"llamacpp": "LLaMA.cpp",
"llamacppService": "Servicio @:llamacpp",
"html": "HTML",
"formatted": "Formateado",
"copyFormattedToClipboard": "Copiar texto al portapapeles",
"modelSelector": {
"filterControls": {
"title": "Ordenar y mostrar",
"searchPlaceholder": "Buscar modelos...",
"clear": "Restablecer",
"providerSort": {
"label": "Orden de proveedores",
"none": "Ninguno",
"name": "Nombre",
"createdAt": "Creado el",
"ascending": "Ascendente",
"descending": "Descendente",
"groupByProvider": "Agrupar por proveedor"
},
"modelSort": {
"label": "Orden de modelos",
"none": "Ninguno",
"name": "Nombre",
"recent": "Recientes",
"ascending": "Ascendente",
"descending": "Descendente"
},
"purpose": {
"label": "Filtrar por propósito",
"placeholder": "Todos los propósitos"
}
}
},
"shadowPersonas": {
"title": "Personas sombra",
"create": "Crear persona sombra",
"editTitle": "Editar persona sombra",
"assignedPersona": "Persona asignada",
"changePersona": "Cambiar persona",
"changePersonaTitle": "Cambiar persona sombra",
"currentPersona": "Persona actual",
"selectNewPersona": "Seleccionar nueva persona",
"waitingForCompletion": "Esperando finalización",
"changePersonaWarning": "Cambiar la persona reiniciará el contexto de análisis y puede afectar la continuidad.",
"unassigned": "Sin persona asignada",
"hideSidebar": "Ocultar personas sombra",
"showSidebar": "Mostrar personas sombra",
"noMonitoring": "No se están monitorizando splits",
"monitoringHiddenHint": "Monitorizando {count} split (haz clic para mostrar) | Monitorizando {count} splits (haz clic para mostrar)",
"monitoringSplitsHint": "Monitorizando {count} split | Monitorizando {count} splits",
"noSplitsMonitoredHint": "No se monitorizan splits",
"monitoringStatus": "Monitorizando {count} split | Monitorizando {count} splits",
"activate": "Activar",
"deactivate": "Desactivar",
"processNow": "Procesar ahora",
"processing": "Procesando...",
"createAndAssign": "Crear y asignar",
"latestInsight": "Último insight",
"noOutputYet": "Aún no hay salida",
"outputs": "Salidas",
"viewLatest": "Ver la última",
"viewHistory": "Ver historial",
"noHistory": "Sin historial",
"selectVersion": "Seleccionar versión",
"name": "Nombre de la persona sombra",
"namePlaceholder": "p. ej., Analista técnico, Monitor de rendimiento",
"edit": "Editar persona sombra",
"switchShadowPersona": "Cambiar persona sombra",
"selectShadowPersonaToSwitch": "Selecciona una persona sombra para cambiar",
"selectShadowPersona": "Seleccionar persona sombra",
"searchShadowPersonas": "Buscar personas sombra...",
"description": "Descripción (opcional)",
"descriptionPlaceholder": "Describe qué observa o analiza esta persona sombra",
"selectPersona": "Seleccionar persona",
"selectPersonaPlaceholder": "Elige una persona",
"selectSplits": "Seleccionar splits a monitorizar",
"selectSplitsPlaceholder": "Elige splits a monitorizar",
"selectSplitsPlaceholderOptional": "Elige splits a monitorizar (se puede establecer más tarde)",
"splitsCanBeAssignedLater": "Los splits pueden asignarse y gestionarse dinámicamente después de la creación",
"updateTrigger": "Actualizar disparador",
"messageInterval": "Intervalo de mensajes",
"timeInterval": "Intervalo de tiempo",
"messagesPerSplit": "Mensajes por split",
"maxContext": "Contexto máx.",
"synthesisMode": "Modo de síntesis",
"outputFormat": "Formato de salida",
"maxProcessingTime": "Tiempo máximo de procesamiento",
"versionManagement": "Gestión de versiones",
"maxVersions": "Máx. versiones",
"advancedSettings": "Ajustes avanzados",
"includeSystemMessages": "Incluir mensajes del sistema",
"autoDeleteOld": "Eliminar versiones antiguas automáticamente",
"waitingForSplits": "Esperando splits",
"processingNow": "Procesando",
"empty": {
"title": "Sin personas sombra",
"description": "Crea una persona sombra para monitorizar y analizar tus splits de conversación"
},
"unlock": "Desbloquear personas sombra",
"experimental": "Experimental",
"experimentalInfo": "Las personas sombra son una función experimental que analiza conversaciones y genera perspectivas e insights alternativos en paralelo.",
"noOutput": {
"title": "Aún no hay salida",
"description": "Esta persona sombra aún no ha generado ninguna salida"
},
"saveToEnableProcessing": "Guarda esta conversación para habilitar el procesamiento de personas sombra",
"delete": {
"title": "Eliminar persona sombra",
"action": "Eliminar",
"confirmMessage": "¿Seguro que deseas eliminar \"{name}\"? \"{name}\" se eliminará de todas las conversaciones a las que está asociada. Esta acción no se puede deshacer.",
"successMessage": "Persona sombra eliminada correctamente",
"errorMessage": "Error al eliminar la persona sombra"
},
"detach": {
"title": "Desvincular persona sombra",
"action": "Desvincular",
"confirmMessage": "¿Desvincular \"{name}\" de esta conversación? La persona sombra seguirá disponible para otras conversaciones.",
"successMessage": "Persona sombra desvinculada correctamente",
"errorMessage": "Error al desvincular la persona sombra"
},
"switch": {
"successMessage": "Persona sombra cambiada correctamente",
"errorMessage": "Error al cambiar la persona sombra"
},
"editToast": {
"successMessage": "Persona sombra actualizada correctamente",
"errorMessage": "Error al actualizar la persona sombra"
},
"createToast": {
"successMessage": "Persona sombra creada correctamente",
"errorMessage": "Error al crear la persona sombra"
},
"queueClearedToast": {
"summary": "Cola vaciada",
"detail": "{cancelledCount} elemento en cola cancelado | {cancelledCount} elementos en cola cancelados"
},
"queueUpdatedToast": {
"summary": "Cola actualizada",
"detail": "{cancelledCount} elemento auto-disparado cancelado | {cancelledCount} elementos auto-disparados cancelados"
},
"queueFullToast": {
"summary": "Cola llena",
"detail": "La cola de procesamiento está llena. Espera a que terminen los elementos actuales"
},
"alreadyProcessingToast": {
"summary": "Ya en proceso",
"detail": "Esta conversación ya se está procesando"
},
"trigger": {
"everyMessage": "Cada mensaje",
"everyNMessages": "Cada {n} mensajes",
"manual": "Solo manual",
"timeInterval": "Intervalo de tiempo",
"automatic": "Automático"
},
"triggerHints": {
"everyMessage": "Se ejecuta después de cada mensaje (más rápido, más frecuente)",
"everyNMessages": "Se ejecuta después de {n} mensajes (por lotes)",
"manual": "Solo cuando hagas clic en Procesar ahora"
},
"synthesis": {
"auto": "Auto",
"combined": "Análisis combinado",
"perSplit": "Por split",
"comparative": "Comparativo"
},
"synthesisHints": {
"auto": "Elige el mejor modo según splits e intención",
"combined": "Un resumen para todos los splits",
"perSplit": "Mantener cada split separado y etiquetado",
"comparative": "Comparar diferencias y acuerdos lado a lado"
},
"synthesisAutoReasons": {
"singleSplit": "Auto usará Combinado porque solo hay un split.",
"multipleModels": "Auto usará Comparativo porque se usan varios modelos.",
"sameModel": "Auto usará Por split porque los splits usan el mismo modelo."
},
"format": {
"insights": "Insights",
"summary": "Resumen",
"recommendations": "Recomendaciones",
"analysis": "Análisis"
},
"monitoringSplits": "Monitorizando {count} split | Monitorizando {count} splits",
"locateSplits": "Localizar splits",
"manageSplits": "Gestionar splits",
"addAllSplits": "Agregar todos los splits",
"deselectAll": "Deseleccionar todo",
"selectAll": "Seleccionar todo",
"selectedCount": "{count} de {total} seleccionados",
"streaming": "Streaming",
"starting": "Iniciando",
"collectingContext": "Recopilando contexto de splits...",
"waitingForConversationCompletion": "Esperando a que termine la conversación",
"analyzingConversationSplits": "Analizando splits de conversación...",
"analyzeResponses": "La persona sombra analizará cuando se reciban todas las respuestas",
"toolCalls": "Llamadas de herramientas",
"reasoning": "Razonamiento",
"attachExisting": "Adjuntar existente",
"attachTitle": "Adjuntar persona sombra",
"previousVersion": "Versión anterior",
"nextVersion": "Siguiente versión",
"attach": "Adjuntar",
"selectShadowPersonaToAttach": "Selecciona una persona sombra para adjuntar a esta conversación",
"selectShadowPersonaPlaceholder": "Elige una persona sombra",
"queuedPosition": "En cola #{position}",
"addToQueue": "Agregar a la cola",
"processingQueue": "Cola de procesamiento",
"removeFromQueue": "Quitar de la cola",
"removedFromQueue": "Quitado de la cola",
"inQueue": "en cola",
"clearQueue": "Limpiar todo",
"queueEmpty": "La cola está vacía",
"estimatedWait": "Espera estimada: {time}",
"queuedItems": "{count} elemento en cola | {count} elementos en cola",
"monitoring": "Monitorización y cola",
"monitoredSplits": "Splits monitorizados"
},
"createNew": "Crear nuevo",
"copy": "Copiar",
"recentsPinned": "Recientes y @:pinned",
"setting": {
"lostAndFound": {
"title": "Objetos perdidos",
"description": "Encuentra y recupera espacios de trabajo perdidos en tu ordenador. Solo se analizan y descubren bases de datos de espacios de trabajo, no adjuntos.",
"experimentalInfo": "Objetos perdidos es experimental. Haz siempre copias de seguridad de los datos de tu espacio de trabajo antes de intentar una recuperación.",
"scanForLostWorkspaces": "Buscar espacios de trabajo perdidos",
"scanAppData": "Escanear datos de la app",
"scanFolder": "Escanear carpeta…",
"workspace": "Espacio de trabajo",
"file": "Archivo",
"status": "Estado",
"lastModifiedColumn": "Última modificación",
"actions": "Acciones",
"statusCurrent": "Actual",
"statusLinked": "Vinculado",
"statusFound": "Encontrado",
"restoreCurrentWorkspace": "Restaurar espacio de trabajo actual",
"importAsNewWorkspace": "Importar como nuevo espacio de trabajo",
"restoreConfirmHeader": "¿Restaurar el espacio de trabajo actual?",
"restoreConfirmMessage": "Esto reemplazará los datos del espacio de trabajo activo por los datos del archivo recuperado seleccionado. Esta acción no se puede deshacer.",
"restore": "Restaurar",
"failedToImportWorkspace": "Error al importar el espacio de trabajo",
"workspaceImported": "Espacio de trabajo importado",
"workspaceImportedDetail": "El espacio de trabajo recuperado se ha importado. Cambia a él desde la bandeja de espacios de trabajo si es necesario.",
"failedToRestoreWorkspace": "Error al restaurar el espacio de trabajo",
"workspaceRestored": "Espacio de trabajo restaurado",
"workspaceRestoredDetail": "El espacio de trabajo actual se restauró desde el archivo recuperado.",
"showInFileExplorer": "Mostrar en el explorador de archivos",
"lastModified": "Última modificación",
"failedToImportRecoveredWorkspace": "Error al importar el espacio de trabajo recuperado",
"failedToImportRecoveredWorkspaceUnexpected": "Error al importar el espacio de trabajo recuperado (inesperado)",
"failedToRestoreFromRecoveredFile": "Error al restaurar el espacio de trabajo desde el archivo recuperado",
"failedToRestoreFromRecoveredFileUnexpected": "Error al restaurar el espacio de trabajo desde el archivo recuperado (inesperado)"
}
},
"quickFilter": "Filtro rápido...",
"toggleFilter": "Alternar filtro",
"toggleSidebar": "Alternar barra lateral",
"adjust": "Ajustar",
"experimentalInfo": "{item} es experimental y está en desarrollo activo. Por favor, informa cualquier problema al equipo.",
"attachmentsManager": {
"columnHeaders": {
"name": "Nombre",
"fileType": "Tipo de archivo",
"attachmentType": "Tipo de adjunto",
"size": "Tamaño",
"actions": "Acciones"
},
"actions": {
"browseExisting": "Explorar adjuntos existentes",
"viewAssociations": "Ver asociaciones",
"attach": "Adjuntar",
"delete": {
"title": "Eliminar adjunto | Eliminar adjuntos",
"confirmationMessage": "¿Estás seguro de que deseas eliminar el adjunto? Todas las asociaciones con el adjunto también se eliminarán. Esta acción no se puede deshacer. | ¿Estás seguro de que deseas eliminar los adjuntos? Todas las asociaciones con los adjuntos también se eliminarán. Esta acción no se puede deshacer.",
"successMessage": "Adjunto eliminado correctamente | Adjuntos eliminados correctamente",
"errorMessage": "Error al eliminar el adjunto | Error al eliminar los adjuntos"
}
},
"search": "Buscar por nombre",
"filter": "Filtrar por tipo de adjunto",
"title": "Gestor de adjuntos",
"emptyState": {
"title": "No se encontraron adjuntos",
"description": "No tienes adjuntos disponibles."
},
"associations": {
"title": "Asociaciones para {attachmentName}",
"search": "Buscar por nombre de asociación",
"filter": "Filtrar por entidad asociada",
"emptyState": {
"title": "No se encontraron asociaciones",
"description": "Aún no has usado este adjunto."
},
"columnHeaders": {
"associationName": "Nombre de la asociación",
"associatedEntity": "Entidad asociada",
"actions": "Acciones"
},
"actions": {
"jumpTo": "Ir a {entity}",
"detach": {
"action": "Desvincular",
"title": "Desvincular asociación",
"confirmationMessage": "¿Estás seguro de que deseas desvincular la asociación de {associationEntity}? Esta acción no se puede deshacer.",
"successMessage": "Asociación desvinculada correctamente",
"errorMessage": "Error al desvincular la asociación"
}
}
}
},
"iconSelector": {
"searchMode": "Buscar",
"aiMode": "Prompt IA",
"aiPlaceholder": "Describe lo que representa el icono...",
"findIcon": "Buscar icono",
"finding": "Buscando..."
}
}