{ "common": { "you": "Tú", "confirm": "Confirmar", "cancel": "Cancelar", "loading": "Cargando..." }, "home": { "slogan": "Aprendizaje generativo en un aula interactiva multiagente" }, "toolbar": { "pdfParser": "Analizador", "pdfUpload": "Subir PDF", "removePdf": "Quitar archivo", "documentExtractor": "Extractor", "courseMaterialUpload": "Subir material del curso", "courseMaterialsSelected": "{{n}} materiales seleccionados", "courseMaterialMergeOrder": "Los materiales se combinan en el orden que se muestra abajo.", "removeCourseMaterial": "Quitar archivo", "webSearchOn": "Activada", "webSearchOff": "Haz clic para activar", "webSearchDesc": "Busca en la web información actualizada antes de generar", "webSearchProvider": "Motor de búsqueda", "webSearchNoProvider": "Configura la clave API de búsqueda en Configuración", "selectProvider": "Seleccionar proveedor", "configureProvider": "Configurar modelo", "configureProviderHint": "Configura al menos un proveedor de modelos para generar cursos", "enterClassroom": "Entrar al aula", "advancedSettings": "Configuración avanzada", "thinking": "Razonamiento", "thinkingBudget": "Presupuesto", "default": "Predeterminado", "on": "Activado", "off": "Desactivado", "auto": "Auto", "dynamic": "Dinámico", "ttsTitle": "Texto a voz", "ttsHint": "Elige una voz para el maestro de IA", "ttsPreview": "Probar", "ttsPreviewing": "Reproduciendo...", "interactiveModeHint": "Activa el modo interactivo para obtener contenido más práctico", "interactiveModeLabel": "Modo interactivo" }, "export": { "pptx": "Exportar PPTX", "resourcePack": "Exportar paquete de recursos", "resourcePackDesc": "PPTX + páginas interactivas", "exporting": "Exportando...", "exportSuccess": "Exportación exitosa", "exportFailed": "Error al exportar", "classroomZip": "Exportar ZIP del aula", "classroomZipDesc": "Estructura del curso + archivos multimedia", "inlinePartial": "No se pudieron empaquetar {{count}} recurso(s) externo(s); es posible que el curso no se muestre correctamente sin conexión.", "video": "Exportar video", "videoDesc": "Proyecto Hyperframes autocontenido (renderizar a MP4)", "videoNoScenes": "No hay escenas disponibles para exportar.", "videoCompiling": "Compilando la línea de tiempo del video...", "videoRendering": "Renderizando diapositivas y recopilando recursos...", "videoPackaging": "Empaquetando el proyecto de video...", "videoSuccess": "Proyecto de video exportado", "videoFailed": "Error al exportar el video", "videoWarnings": "{{assets}} recurso(s) faltante(s) y {{diagnostics}} problema(s) en el reporte de exportación.", "videoMp4Success": "Video renderizado", "videoServiceUnavailable": "Servicio de renderizado no configurado — se descargó el ZIP del proyecto para renderizar en tu equipo.", "videoResolution": "Resolución", "videoFps": "Cuadros por segundo", "videoQuality": "Calidad", "videoQuality_draft": "Borrador", "videoQuality_standard": "Estándar", "videoQuality_high": "Alta", "videoProgress": "{{percent}}%", "videoProgressWithEta": "{{percent}}% · quedan unos {{remaining}}", "videoEtaMinSec": "{{min}} min {{sec}} seg", "videoEtaSec": "{{sec}} seg", "videoRenderMp4": "Renderizar MP4", "videoDownloadZip": "Descargar ZIP del proyecto", "videoServiceHint": "Renderizar a MP4 necesita el servicio de renderizado. Descarga el ZIP para renderizar en tu equipo.", "videoBurnSubtitles": "Incrustar subtítulos", "videoBurnSubtitlesDesc": "Desactivado: exporta un video limpio y agrega el archivo de subtítulos en tu editor.", "videoQuizCtaPrompt": "¿Quieres probar un cuestionario interactivo?", "videoPblCtaPrompt": "¿Quieres explorar el aprendizaje basado en proyectos?", "videoCtaVisit": "Visita", "videoDownloadSubtitles": "Descargar subtítulos (.srt)", "subtitlesCompiling": "Compilando subtítulos...", "subtitlesSuccess": "Subtítulos descargados", "subtitlesEmpty": "No hay narración para generar subtítulos", "subtitlesFailed": "Error al descargar los subtítulos", "noSlides": "No hay diapositivas para exportar", "noSlidesSkipped": "Este curso no tiene diapositivas — se omitió el PPTX", "nothingToExport": "Nada que exportar" }, "import": { "classroom": "Importar aula", "pptx": "Importar PPTX", "parsing": "Analizando ZIP...", "parsingPptx": "Analizando PPTX...", "validating": "Validando datos...", "writingMedia": "Escribiendo archivos multimedia...", "writingCourse": "Escribiendo datos del curso...", "success": "Aula importada correctamente", "pptxSuccess": "PPTX analizado correctamente ({{count}} diapositivas, salida registrada en la consola)", "error": { "invalidZip": "Archivo no válido. Selecciona un archivo .maic.zip válido.", "invalidPptx": "No se pudo analizar el PPTX. Verifica que el archivo sea válido.", "parserUnavailable": "La importación de PPTX no está disponible: el paquete del analizador no está desplegado. Vuelve a ejecutar install/sync.", "invalidManifest": "Archivo de aula no válido: falta manifest.json o está dañado.", "missingData": "Archivo de aula no válido: faltan datos requeridos del curso.", "storageFull": "La importación falló: el almacenamiento del navegador está lleno. Intenta eliminar aulas antiguas." } }, "chat": { "lecture": "Clase", "noConversations": "Sin conversaciones", "startConversation": "Escribe un mensaje abajo para comenzar a chatear", "noMessages": "Aún no hay mensajes", "ended": "finalizó", "unknown": "Desconocido", "stopDiscussion": "Detener debate", "endQA": "Terminar Q&A", "softClosing": "Continuar debate", "error": { "emptyAgentResponses": "Los agentes devolvieron respuestas vacías; el debate se detuvo. Inténtalo de nuevo o revisa la configuración de tu modelo.", "streamInterrupted": "El streaming terminó inesperadamente; el debate no se completó. Inténtalo de nuevo." }, "tabs": { "lecture": "Notas", "chat": "Chat" }, "lectureNotes": { "empty": "Las notas aparecerán aquí después de reproducir la clase", "emptyHint": "Presiona reproducir para iniciar la clase", "pageLabel": "Página {{n}}", "currentPage": "Actual", "jumpToLine": "Ir a esta línea", "jumpUnavailable": "No se puede saltar a esta línea" }, "badge": { "qa": "Q&A", "discussion": "DEB", "lecture": "CLASE" } }, "actions": { "names": { "spotlight": "Foco", "laser": "Láser", "wb_open": "Abrir pizarrón", "wb_draw_text": "Texto en pizarrón", "wb_draw_shape": "Figura en pizarrón", "wb_draw_chart": "Gráfica en pizarrón", "wb_draw_latex": "Fórmula en pizarrón", "wb_draw_table": "Tabla en pizarrón", "wb_draw_line": "Línea en pizarrón", "wb_clear": "Limpiar pizarrón", "wb_delete": "Eliminar elemento", "wb_close": "Cerrar pizarrón", "discussion": "Debate" }, "status": { "inputStreaming": "En espera", "inputAvailable": "Ejecutando", "outputAvailable": "Completado", "outputError": "Error", "outputDenied": "Denegado", "running": "Ejecutando", "result": "Completado", "error": "Error" } }, "agentBar": { "readyToLearn": "¿Aprendemos juntos?", "expandedTitle": "Configuración de roles del aula", "configTooltip": "Haz clic para configurar los roles del aula", "voiceLabel": "Voz", "voiceLoading": "Cargando...", "voiceAutoAssign": "Las voces se asignarán automáticamente", "searchVoice": "Buscar voces", "noMatchingVoices": "No hay voces que coincidan", "noVoice": "Sin voz" }, "proactiveCard": { "discussion": "Debate", "join": "Unirme", "skip": "Omitir", "pause": "Pausar", "resume": "Reanudar" }, "voice": { "startListening": "Entrada de voz", "stopListening": "Detener grabación" }, "stage": { "currentScene": "Escena actual", "generating": "Generando...", "paused": "En pausa", "generationFailed": "Falló la generación", "confirmSwitchTitle": "Cambiar de escena", "confirmSwitchMessage": "Hay un tema en curso. Cambiar de escena terminará el tema actual. ¿Quieres continuar?", "generatingNextPage": "La escena se está generando, espera un momento...", "courseComplete": "Curso completado", "fullscreen": "Pantalla completa", "exitFullscreen": "Salir de pantalla completa", "editCourse": "Editar curso", "doneEditing": "Terminar edición", "proModeDisabledHint": "La edición no está disponible en esta página — abre una diapositiva del curso para editar con el modo Pro." }, "edit": { "proMode": "Pro", "undo": "Deshacer", "redo": "Rehacer", "delete": "Eliminar", "title": "Editando · {{type}}", "unsupportedScene": "{{type}} aún no se puede editar", "readOnlyBadge": "{{type}} · solo lectura", "sceneType": { "slide": "Diapositiva", "quiz": "Cuestionario", "interactive": "Interactivo", "pbl": "ABP" }, "multiTab": { "conflict": { "title": "Otra pestaña está editando este curso", "body": "La edición está limitada a una sola pestaña para evitar cambios en conflicto. Cierra la otra pestaña (o espera a que su sesión expire) antes de entrar al modo de edición aquí.", "actionDismiss": "Entendido" } }, "text": { "toolbar": "Barra de texto", "label": "Texto", "font": "Fuente", "fontDefault": "Predeterminada", "sizeUp": "Aumentar tamaño", "sizeDown": "Reducir tamaño", "fontSize": "Tamaño de fuente", "bold": "Negrita", "italic": "Cursiva", "underline": "Subrayado", "color": "Color de texto", "alignLeft": "Alinear a la izquierda", "alignCenter": "Centrar", "alignRight": "Alinear a la derecha", "bullet": "Lista con viñetas", "colorHex": "Código de color" }, "line": { "toolbar": "Barra de línea", "kind": "Tipo de línea", "color": "Color de línea", "width": "Grosor de línea", "style": "Estilo de línea", "start": "Estilo inicial", "end": "Estilo final", "straight": "Recta", "broken": "Quebrada", "broken2": "Quebrada doble", "curve": "Curva", "cubic": "Curva cúbica", "solid": "Sólida", "dashed": "Discontinua", "dotted": "Punteada", "none": "Ninguno", "arrow": "Flecha", "dot": "Punto" }, "insert": { "toolbar": "Barra de inserción", "textBox": "Cuadro de texto", "line": "Línea", "linePresets": { "straight": "Línea recta", "dashed": "Línea discontinua", "arrow": "Línea con flecha", "dashedArrow": "Línea discontinua con flecha", "dottedEnd": "Línea con extremo de punto", "broken": "Línea quebrada", "doubleBroken": "Línea con doble quiebre", "curve": "Curva", "cubic": "Curva cúbica" }, "table": "Tabla", "formula": "Fórmula", "chart": "Gráfica", "chartBar": "Gráfica de barras", "chartLine": "Gráfica de líneas", "chartPie": "Gráfica circular", "tableDimensions": "Tabla {{rows}} x {{columns}}", "dragToolbar": "Mover herramientas de inserción", "dragToolbarKeyboard": "Mover herramientas de inserción: presiona Enter o Espacio y luego usa las flechas", "image": "Imagen", "imageDrop": "Suelta una imagen o haz clic para elegir un archivo", "imageOr": "o pega la URL de una imagen", "imageUrlPlaceholder": "https://…", "imageInsert": "Insertar", "video": "Video", "videoDrop": "Suelta un video o haz clic para elegir un archivo", "videoOr": "o pega la URL de un video", "videoUrlPlaceholder": "https://…", "videoInsert": "Insertar", "audio": "Audio", "audioDrop": "Suelta un audio o haz clic para elegir un archivo", "audioOr": "o pega la URL de un audio", "audioUrlPlaceholder": "https://…", "audioInsert": "Insertar" }, "asset": { "drop": "Arrastra un archivo o haz clic para elegir", "orUrl": "o pega la URL del archivo", "urlPlaceholder": "https://…", "insert": "Insertar", "invalidType": "Tipo de archivo no compatible", "readFailed": "No se pudo leer el archivo" }, "latex": { "toolbar": "Barra de fórmulas", "editFormula": "Editar fórmula", "dialog": "Editor de fórmulas", "source": "Código fuente LaTeX", "preview": "Vista previa", "symbols": "Símbolos", "presets": "Fórmulas predefinidas", "invalidSource": "El código fuente LaTeX no es válido." }, "video": { "toolbar": "Barra de video", "poster": "Establecer portada" }, "audio": { "toolbar": "Barra de audio", "preview": "Escuchar audio", "pause": "Pausar vista previa", "loop": "Repetir" }, "table": { "doubleClickToEdit": "Haz doble clic para editar" }, "nav": { "addSlide": "Agregar diapositiva", "duplicate": "Duplicar", "delete": "Eliminar", "deleted": "Eliminada", "undo": "Deshacer", "copySuffix": "(copia)", "untitledSlide": "Diapositiva sin título", "collapse": "Contraer panel", "expand": "Expandir panel", "dragHandle": "Arrastra para reordenar", "deckLabel": "Escenas", "moreActions": "Más acciones", "rename": "Renombrar", "sceneIncomplete": "Esta página tiene contenido incompleto" }, "zorder": { "toFront": "Traer al frente", "toBack": "Enviar al fondo" }, "image": { "toolbar": "Barra de imagen", "replace": "Reemplazar imagen", "flipH": "Voltear horizontal", "flipV": "Voltear vertical", "crop": "Recortar imagen" }, "contextMenu": { "horizontalAlignment": "Alineación horizontal", "verticalAlignment": "Alineación vertical", "selectAll": "Seleccionar todo", "copy": "Copiar", "cut": "Cortar", "paste": "Pegar", "unlock": "Desbloquear", "lock": "Bloquear", "group": "Agrupar", "ungroup": "Desagrupar", "bringForward": "Traer adelante", "sendBackward": "Enviar atrás", "alignTop": "Alinear arriba", "alignMiddle": "Alinear al medio", "alignBottom": "Alinear abajo" }, "background": { "label": "Fondo", "solid": "Sólido", "image": "Imagen", "color": "Color" }, "common": { "cancel": "Cancelar", "confirm": "Confirmar" }, "quiz": { "addQuestion": "Agregar pregunta", "reorder": "Arrastra para reordenar", "deleteQuestion": "Eliminar pregunta", "untitledQuestion": "Pregunta sin título", "questionLabel": "Pregunta", "questionPlaceholder": "Escribe la pregunta…", "typeLabel": "Tipo", "pointsLabel": "Puntos", "optionsLabel": "Opciones", "optionPlaceholder": "Texto de la opción", "addOption": "Agregar opción", "deleteOption": "Quitar opción", "markCorrect": "Marcar como respuesta correcta", "moveUp": "Subir", "moveDown": "Bajar", "analysisLabel": "Explicación", "analysisPlaceholder": "Se muestra después de calificar la pregunta…", "commentPromptLabel": "Guía de calificación", "commentPromptPlaceholder": "¿Cómo se debe calificar esta respuesta abierta?", "empty": "Aún no hay preguntas", "emptyHint": "Usa “Agregar pregunta” para crear la primera.", "type": { "single": "Opción única", "multiple": "Opción múltiple", "short_answer": "Respuesta corta" }, "shortAnswerGradingNote": "Las respuestas cortas siempre las califica la IA según la guía de abajo.", "hint": { "emptyText": "Pregunta {{n}}: agrega el texto de la pregunta", "fewOptions": "Pregunta {{n}}: agrega al menos dos opciones", "emptyOption": "Pregunta {{n}}: hay una opción sin texto", "noCorrect": "Pregunta {{n}}: marca una respuesta correcta" } }, "cue": { "speech": "Narración", "spotlight": "Foco", "laser": "Láser", "whiteboardOpen": "Pizarrón", "whiteboardText": "Escritura", "whiteboardShape": "Forma", "whiteboardLatex": "Fórmula", "whiteboardTable": "Tabla", "action": "Acción", "discussion": "Discusión" }, "element": { "toolbar": "Barra de elementos", "text": "Texto", "image": "Imagen", "shape": "Forma", "line": "Línea", "chart": "Gráfica", "table": "Tabla", "latex": "Fórmula", "video": "Video", "audio": "Audio", "code": "Código" }, "agent": { "expand": "Expandir asistente IA", "collapse": "Contraer", "stopped": "Detenido", "emptyTitle": "¿Qué te gustaría cambiar?", "emptyHint": "Después de editar esta diapositiva en el lienzo, deja que la IA regenere una narración acorde al contenido.", "placeholder": "Describe tus cambios para esta diapositiva…", "stop": "Detener generación", "empty": { "lead": "Dime cómo cambiar esta diapositiva: rehago el contenido y realineo la narración.", "boundary": "Para ediciones finas usa el editor; agrega, elimina o reordena diapositivas desde el panel izquierdo.", "comingSoon": "Pronto habrá más capacidades." }, "interactive": { "emptyTitle": "¿Qué hay que arreglar en esta página?", "lead": "Describe un error de esta página interactiva —p. ej., un botón que no hace nada— y arreglo solo eso, sin tocar lo demás.", "placeholder": "Describe el error de esta página interactiva…", "boundary": "Hago correcciones puntuales en la página; no la reconstruyo por completo. Cambia de escena desde el panel izquierdo." }, "cap": { "content": { "label": "Regenerar la diapositiva", "examples": "“Resume en 3 puntos”, “Agrega un ejemplo real”" }, "narration": { "label": "Regenerar el guion de narración", "examples": "“Hazla más conversacional”, “Alinéala con mis cambios del lienzo”" }, "fixHtml": { "label": "Corregir un error de la página", "examples": "“El botón de inicio no hace nada”, “Los paneles se enciman en el celular”" }, "elements": { "label": "Ajustar elementos seleccionados", "examples": "“Pon el título en azul y súbelo”, “Haz esta figura más pequeña”" } }, "newConversation": "Nueva conversación", "sessionHistory": "Historial", "sessionUntitled": "Chat sin título", "sessionDelete": "Eliminar", "sessionEmpty": "No hay conversaciones anteriores", "thinking": "Pensando…", "reasoning": "Razonamiento", "thought": "Pensó durante", "title": "Editar con IA" }, "timeline": { "title": "Guion de narración", "regenAllTts": "Regenerar toda la voz", "voiceAll": "Dar voz a todo", "counts": "{{speech}} narraciones · {{cue}} señales", "panLeft": "Desplazar a la izquierda", "panRight": "Desplazar a la derecha", "collapseAxis": "Contraer al eje", "expandTrack": "Expandir pista", "emptyHint": "Arrastra acciones al eje para empezar, o deja que MAIC Agent genere la narración.", "speechPlaceholder": "Escribe esta línea de narración…", "reorder": "Arrastra para reordenar", "moveLeft": "Mover a la izquierda", "moveRight": "Mover a la derecha", "pickElement": "Elegir elemento", "bound": "Vinculado", "fieldAction": "Acción", "fieldElement": "Elemento", "fieldContent": "Contenido", "addDiscussionExists": "Solo una discusión por escena", "discussionTerminal": "FIN", "discussionTerminalHint": "La discusión permanece al final de la escena (una por escena)", "discussionTopicPlaceholder": "Tema de discusión (obligatorio)", "discussionPromptPlaceholder": "Prompt de guía (opcional)", "discussionAgent": "Iniciador", "discussionAgentUnset": "Sin especificar", "addAction": "Agregar acción" }, "picker": { "title": "Insertar acción", "speechDesc": "Di una línea — puede generar voz automática", "spotlightDesc": "Resalta un elemento en el lienzo", "laserDesc": "Apunta con láser a un elemento", "discussionDesc": "Plantea una pregunta y elige quién empieza" }, "tts": { "preview": "Vista previa", "regenerate": "Regenerar voz", "statusReady": "Con voz", "statusNone": "Sin voz", "statusGenerating": "Generando", "statusError": "Error" }, "pick": { "pickFor": "Elige un elemento para \"{{label}}\"", "pickHint": "Haz clic en un elemento resaltado o en la lista de abajo · Esc para cancelar", "pageElements": "Elementos de la página · {{count}}", "expand": "Expandir", "collapse": "Contraer", "noElements": "No hay elementos localizables en esta diapositiva.", "bindHint": "Haz clic en un elemento resaltado del lienzo para vincularlo" }, "regen": { "title": "Regenerar narración", "running": "Generando…", "noActions": "No se generaron acciones", "actionsCount": "{{count}} acciones", "generating": "Generando", "notGenerated": "Sin generar", "updated": "Actualizado" }, "regenScene": { "title": "Regenerar diapositiva", "generating": "Generando", "updated": "Actualizada", "notGenerated": "Sin generar", "elementsCount": "{{count}} elementos", "restore": "Restaurar anterior", "restored": "Restaurada", "resume": "Reanudar" }, "fixHtml": { "title": "Corregir página interactiva", "fixing": "Corrigiendo", "fixed": "Corregida", "notFixed": "Sin corregir", "editsCount": "{{count}} edición(es)" }, "readCard": { "title": "Leer contenido de la diapositiva", "reading": "Leyendo", "done": "Leído", "failed": "Sin leer" }, "editElements": { "title": "Editar elementos", "editing": "Editando", "applied": "Aplicado", "notApplied": "Sin aplicar", "applyFailed": "El editor no pudo aplicar la edición del elemento. No se cambió nada.", "applyPartiallyFailed": "El editor no pudo aplicar una o más ediciones de elementos. Es posible que otras ediciones sí se hayan aplicado." }, "roster": { "title": "Elenco del aula", "count": "{{count}} integrantes", "editHint": "Haz clic en un integrante para editar", "personaLabel": "Persona", "personaPlaceholder": "Describe la personalidad, el estilo de enseñanza y las tareas del rol...", "noPersona": "Sin persona todavía", "unnamed": "Sin título", "teacherBadge": "Principal", "moveUp": "Mover arriba", "moveDown": "Mover abajo", "removeFromClass": "Quitar del aula", "aiClassmates": "Compañeros de IA · {{count}}", "addRole": "Agregar rol" } }, "classroomComplete": { "title": "Curso completado", "trailLabels": { "slide": "páginas", "quiz": "cuestionarios", "interactive": "interactivos", "pbl": "proyectos" }, "quizScoreLabel": "{{correct}} / {{total}} correctas", "encouragement": { "high": "Sobresaliente — lo dominaste.", "mid": "Buen trabajo — sigue así.", "low": "Buen comienzo — repasa e inténtalo de nuevo." } }, "whiteboard": { "title": "Pizarrón interactivo", "open": "Abrir pizarrón", "clear": "Limpiar pizarrón", "minimize": "Minimizar pizarrón", "ready": "El pizarrón está listo", "readyHint": "Los elementos aparecerán aquí cuando la IA los agregue", "clearSuccess": "El pizarrón se limpió correctamente", "clearError": "Error al limpiar el pizarrón: ", "resetView": "Restablecer vista", "restoreError": "Error al restaurar el pizarrón: ", "history": "Historial", "restore": "Restaurar", "noHistory": "Aún no hay historial", "restored": "Pizarrón restaurado", "elementCount": "{{count}} elementos" }, "quiz": { "title": "Cuestionario", "subtitle": "Pon a prueba tus conocimientos", "questionsCount": "preguntas", "totalPrefix": "", "pointsSuffix": "pts", "startQuiz": "Iniciar cuestionario", "multipleChoiceHint": "(Opción múltiple — selecciona todas las respuestas correctas)", "inputPlaceholder": "Escribe tu respuesta aquí...", "charCount": "caracteres", "yourAnswer": "Tu respuesta:", "notAnswered": "Sin responder", "aiComment": "Retroalimentación de la IA", "singleChoice": "Única", "multipleChoice": "Múltiple", "shortAnswer": "Respuesta corta", "analysis": "Análisis: ", "excellent": "¡Excelente!", "keepGoing": "¡Sigue así!", "needsReview": "Necesita repaso", "correct": "correcta", "incorrect": "incorrecta", "answering": "En curso", "submitAnswers": "Enviar respuestas", "aiGrading": "La IA está calificando...", "aiGradingWait": "Espera un momento, analizando tus respuestas", "quizReport": "Reporte del cuestionario", "retry": "Reintentar" }, "roundtable": { "teacher": "DOCENTE", "you": "TÚ", "inputPlaceholder": "Escribe tu mensaje...", "listening": "Escuchando...", "processing": "Procesando...", "noSpeechDetected": "No se detectó voz, inténtalo de nuevo", "discussionEnded": "Discusión finalizada", "qaEnded": "Preguntas y respuestas finalizadas", "thinking": "Pensando", "yourTurn": "Tu turno", "stopDiscussion": "Detener discusión", "softClosing": "Continuar discusión", "autoPlay": "Reproducción automática", "autoPlayOff": "Detener reproducción automática", "speed": "Velocidad", "previousLine": "Línea anterior", "nextLine": "Línea siguiente", "lineProgress": "Línea {{current}} / {{total}}", "voiceInput": "Entrada de voz", "voiceInputDisabled": "Entrada de voz deshabilitada", "textInput": "Entrada de texto", "stopRecording": "Detener grabación", "startRecording": "Iniciar grabación" }, "pbl": { "emptyProject": "El proyecto de ABP aún no se ha generado. Créalo desde la generación de cursos.", "v2": { "hero": { "title": "Aprendizaje basado en proyectos", "stage": "Etapas", "task": "Tareas", "tutor": "Tutor", "greetingBanner": "Tu tutor te está saludando…", "startProject": "Comenzar proyecto", "continueProject": "Continuar proyecto", "resetProgress": "Restablecer el progreso de aprendizaje", "resetConfirmTitle": "¿Restablecer el progreso de aprendizaje?", "resetConfirmDescription": "Esto borra todo el progreso de este proyecto — historial de chat, entregas y estado de las etapas — y empezarás desde el principio. No se puede deshacer.", "resetConfirmConfirm": "Restablecer", "resetConfirmCancel": "Cancelar", "startHint": "Haz clic para entrar al espacio de trabajo. {{name}} te guiará por cada etapa.", "startError": "No se pudo comenzar: {{error}}", "youWillLearn": "Lo que te llevarás", "instructorTagline": "Te guía a lo largo de todo el proyecto", "scenarioCharacter": "Personaje del juego de roles", "scenarioCharacterTagline": "El personaje con el que interactuarás en el escenario", "scenarioFlow": "Flujo", "close": "Cerrar" }, "sidebar": { "title": "Ruta del proyecto", "summary": "{{completed}} / {{total}} tareas · {{stages}} etapas", "enterScenario": "Entrar a la escena", "advanceScene": "Avanzar la escena", "continueScene": "Siguiente etapa", "stagePrep": "Preparación", "stageRoleplay": "Simulación", "stageWrapup": "Cierre", "completeAct": "Terminar este acto", "completeTask": "Listo" }, "workspace": { "progressLabel": "Progreso", "resizeSidebar": "Ajustar tamaño de la barra lateral y el chat", "resizeSubmission": "Ajustar tamaño del chat y el panel de entregas", "enterFullscreen": "Expandir a pantalla completa", "exitFullscreen": "Salir del espacio de trabajo en pantalla completa", "exitNativeFullscreen": "Salir de pantalla completa", "returnToHero": "Volver al resumen del proyecto", "breadcrumbOverview": "Resumen", "breadcrumbCurrent": "Espacio de trabajo" }, "chat": { "placeholder": "Platica con {{name}} sobre tu avance...", "placeholderCompleted": "Proyecto completado. Revisa tu reporte.", "send": "Enviar", "voiceInput": "Entrada de voz", "keyboardHint": "Enter para enviar · Shift+Enter para salto de línea", "readingSubmission": "Leyendo la entrega…", "generatingMilestoneFeedback": "Generando retroalimentación del hito…", "generatingFinalEval": "Generando la evaluación final…", "readingSubmissionWithTitle": "Leyendo la última entrega de \"{{title}}\"…", "evaluatingTask": "{{name}} · Revisando la tarea", "evaluatingFinal": "{{name}} · Evaluación final", "narrating": "Preparando la escena…", "choosePrompt": "Elige una opción", "choiceOrType": "Elige una, o escribe la tuya…", "suggestionsToggle": "¿Necesitas ideas? Mira algunas formas de responder", "guidancePointer": "¿Te atoraste? Revisa el objetivo y los consejos de este acto en el panel de la derecha.", "roleplayHistoryTitle": "Historial del juego de roles", "coachHint": "Consejo del coach", "thinking": "{{name}} · Pensando", "typing": "{{name}} · Escribiendo…", "submitted": "Trabajo entregado", "evaluatingSubmission": "Evaluando tu entrega…", "evaluatingSubmissionDetail": "Tarea: \"{{title}}\". La retroalimentación de esta entrega aparecerá aquí cuando termine la evaluación.", "milestoneFeedbackPending": "La retroalimentación del hito aparecerá cuando esté lista.", "emptyChat": "Aún no hay mensajes.", "emptyChatHint": "Tu recorrido del proyecto con {{name}} comenzará aquí.", "continueError": "No se pudo continuar: {{error}}", "stillTyping": "Sigue escribiendo", "handoverHint": "Haz clic en \"Continuar a la siguiente etapa\" para seguir." }, "scene": { "expand": "Expandir", "collapse": "Contraer", "greetHint": "Toca para saludar", "label": "La escena" }, "milestoneCard": { "title": "Revisión del hito", "youLearned": "Lo que aprendiste", "nextStage": "Siguiente etapa:", "continueHint": "Haz clic en Continuar para entrar a la siguiente etapa.", "alreadyEntered": "Ya entraste a la siguiente etapa", "continueToNext": "Continuar a la siguiente etapa", "projectAlmostDone": "🎉 Proyecto casi terminado — en espera del reporte de finalización" }, "taskEvalCard": { "title": "Retroalimentación de la entrega", "strengths": "Lo que salió bien", "improvements": "Siguientes pasos" }, "briefing": { "intro": "La premisa presentada durante la preparación — la dejamos aquí para que la consultes en cualquier momento durante la escena.", "tablistLabel": "Pestañas del panel derecho", "submissionTab": "Entregar", "briefingTab": "Contexto", "setting": "Ambientación", "learnerRole": "Tu rol", "goal": "Objetivo", "rules": "Reglas", "cast": "Personajes", "identity": "Identidad", "situation": "Situación" }, "submission": { "textSubmission": "Entrega de texto", "fileTooLarge": "El archivo supera el límite de 5 MB. Intenta dividirlo o comprimirlo.", "contentRequired": "El contenido no puede estar vacío", "readFileFailed": "No se pudo leer el archivo: {{error}}", "parsingPdf": "Analizando PDF…", "parsePdfFailed": "No se pudo analizar el PDF: {{error}}", "pdfNoText": "No se encontró texto extraíble en este PDF.", "imageUploadFailed": "No se pudo subir la imagen: {{error}}", "imageTooLargeNoStorage": "La imagen es demasiado grande para adjuntarla sin almacenamiento configurado (máx. 2 MB en local).", "imageNeedsCaptionNoVision": "El modelo actual no puede leer imágenes. Agrega una descripción de texto de la imagen antes de entregar, o cambia a un modelo con visión en Configuración.", "unsupportedFileType": "Tipo de archivo no compatible. Solo se aceptan archivos de texto (.txt, .md, .csv, .json, .py, …) y PDF.", "pasteTab": "Pegar texto / imagen", "uploadTab": "Subir archivo", "pastePlaceholder": "Pega aquí tu código, documento o respuesta — o una imagen / captura de pantalla…", "uploadPlaceholder": "El contenido subido aparecerá aquí. Edítalo antes de entregar…", "imageCaptionPlaceholder": "Agrega una descripción opcional para esta imagen…", "imageSelectedReplace": "Imagen seleccionada · haz clic para reemplazar", "removeImage": "Quitar imagen", "processing": "Procesando…", "cancelProcessingConfirm": "Todavía se está procesando un archivo. ¿Cancelar y descartar esta subida?", "currentTask": "Tarea actual", "hints": "Pistas", "submitOutput": "Entregar", "evaluating": "Evaluando la entrega…", "lockedWhileStreaming": "El instructor está respondiendo — espera antes de entregar.", "evalFailed": "La evaluación falló: {{error}}", "submittedCount": "{{count}} entregas", "submissionHistory": "Historial de entregas", "fromTask": "Tarea: {{title}}", "download": "Descargar", "viewSubmission": "Ver entrega", "noActiveTask": "No hay tarea activa.", "canceling": "Cancelar", "submitting": "Entregando…", "selectFileHint": "Elige un archivo · Máx. 5 MB · Texto, PDF o imagen", "modalTitle": "Entrega tu trabajo", "modalTaskLabel": "Tarea: {{title}}", "fileRead": "Leído: {{filename}} · {{size}} KB", "submittedBadge": "Entregado ({{count}})", "receiptFile": "Archivo: {{filename}}", "receiptTemplate": "Trabajo entregado para esta tarea ({{label}})." }, "agentTabs": { "noAgent": "No hay un agente IA configurado para este proyecto." }, "completion": { "noWhatsNext": "La evaluación final aún no se ha redactado.", "backToWorkspace": "Volver al espacio de trabajo", "completionCta": "Ver reporte", "title": "Reporte de finalización", "whatYouBuilt": "Lo que construiste", "whatYouLearned": "Lo que aprendiste", "whatsNext": "Qué sigue", "noDataFallback": "Aún sin redactar", "stageReview": "Revisión por etapas", "summary": "Completaste {{completed}} de {{total}} tareas a lo largo de {{stages}} etapas.", "statConcepts": "Conceptos dominados", "statTurns": "Mensajes intercambiados", "statScope": "Etapas · Tareas", "statDuration": "Tiempo invertido", "statSubmissions": "Trabajos entregados", "coreStageBadge": "Clave", "conceptsInStageLabel": "Conceptos:", "submissionsInStage": "Entregaste {{count}} trabajo(s)", "coreConceptGrasp": "Concepto clave \"{{concept}}\" — {{quality}}", "stageNoData": "Sin resultados registrados en esta etapa.", "scenario": { "summary": "Completaste los {{acts}} actos de este escenario. Así fue el juego de roles.", "whatYouDidWell": "Lo que hiciste bien", "skillsPracticed": "Habilidades que practicaste", "statGoals": "Objetivos cumplidos", "statActs": "Actos completados", "goalReviewTitle": "Revisión acto por acto", "goalReviewHint": "Este escenario planteó algunos objetivos clave para cada acto. Aquí tienes un repaso de cómo fue realmente tu conversación — esta vez cumpliste {{achieved}} de {{total}}.", "goalListTitle": "Lo que cada acto te pedía", "goalListHint": "Este escenario planteó algunos objetivos clave para cada acto. Aquí tienes un repaso de lo que cada acto te pedía hacer.", "goalAchieved": "logrado", "goalPartial": "logrado en parte", "goalMissed": "no logrado", "statGoodDecisions": "Decisiones acertadas", "statScore": "Puntaje de decisiones", "statBeats": "Actos completados", "decisionReviewTitle": "Revisión de decisiones", "good": "acertada", "ok": "aceptable", "poor": "por mejorar", "decisionScore": "Puntaje de decisiones: {{score}}", "castLabel": "Interactuaste con: {{names}}" }, "highlightsTitle": "Lo más destacado", "highlight": { "independence": "Demostraste {{unlocks}}/{{total}} conceptos por tu cuenta — sin necesidad de ayuda. Comprensión sólida.", "resilience": "En \"{{title}}\" superaste {{errors}} errores, enfrentando cada uno — pura perseverancia.", "resilienceGeneral": "Superaste {{errors}} errores, enfrentando cada uno — pura perseverancia.", "completion": "Completaste todas las tareas. Avance constante de principio a fin." }, "synthesisQuality": { "strong": "Comprensión sólida ✅", "ok": "Buen dominio 👍", "weak": "Margen para crecer 💪" }, "durationMinutes": "{{m}} min", "durationHours": "{{h}} h", "durationHoursMinutes": "{{h}} h {{m}} min" }, "completionCard": { "title": "Proyecto completado · Finalización", "subtitle": "¡Felicidades! Terminaste el proyecto completo.", "description": "Con base en tus datos de desempeño (tiempo invertido, conversaciones, recuperación de errores, conceptos desbloqueados…), generamos un reporte de finalización que muestra lo que construiste, lo que aprendiste y hacia dónde seguir." } } }, "share": { "notReady": "Disponible cuando termine la generación" }, "classroom": { "recentClassrooms": "Recientes", "today": "Hoy", "yesterday": "Ayer", "daysAgo": "días atrás", "slides": "diapositivas", "nameCopied": "Nombre copiado", "deleteConfirmTitle": "Eliminar", "delete": "Eliminar", "rename": "Renombrar", "renamePlaceholder": "Escribe el nombre del aula", "renameFailed": "Error al renombrar el aula", "searchPlaceholder": "Buscar cursos...", "searchAriaLabel": "Buscar cursos", "clearSearch": "Borrar", "searchEmpty": "Ningún curso coincide con tu búsqueda", "newFolderTitle": "Nueva carpeta", "newFolderDesc": "Agrupa cursos por tema o para acceder más fácil.", "newFolderInline": "Nueva carpeta…", "folderNameLabel": "Nombre de la carpeta", "folderNamePlaceholder": "p. ej. Matemáticas, Inglés, Cursos principales", "folderNameHint": "CJK y latín ambos válidos; los espacios cuentan.", "folderNameExists": "Ya existe una carpeta con ese nombre", "folderCountLimit": "Límite de carpetas alcanzado", "folderWidth": "Ancho {{width}}/{{max}}", "folderCreate": "Crear", "folderBadge": "Carpeta", "folderCourseCountUnit": "cursos", "deleteFolderTitle": "Eliminar carpeta \"{{name}}\"", "deleteFolderEmptyDesc": "Esta carpeta está vacía. La eliminación no se puede deshacer.", "deleteFolderUngroupDesc": "Los cursos se quedan en \"Mis cursos\", solo sin carpeta.", "moveToFolder": "Mover a carpeta", "moveToFolderLabel": "Mover a…", "ungrouped": "Sin clasificar", "searchResults": "Resultados de búsqueda", "folderCreateFailed": "Error al crear la carpeta", "folderRenameFailed": "Error al renombrar la carpeta", "folderDeleteFailed": "Error al eliminar la carpeta", "moveFailed": "Error al mover el curso", "emptyFolderHint": "Esta carpeta está vacía", "emptyLibraryHint": "Aún no hay cursos — crea uno arriba o importa un curso.", "folderNameEmpty": "El nombre de la carpeta no puede estar vacío", "deleteFolderOnly": "Solo eliminar carpeta", "deleteFolderAndCourses": "Eliminar carpeta y {{count}} curso", "deleteFolderAndCourses_other": "Eliminar carpeta y {{count}} cursos", "deleteFolderConfirmRemove": "Esto elimina la carpeta y sus cursos, incluido el historial de chat." }, "upload": { "pdfSizeLimit": "Admite archivos PDF de hasta 50 MB", "courseMaterialSizeLimit": "Documentos, diapositivas, hojas de cálculo, imágenes y texto plano — hasta 50 MB (los formatos aceptados dependen del extractor seleccionado)", "generateFailed": "No se pudo generar el aula, inténtalo de nuevo", "requirementPlaceholder": "Dime qué quieres aprender, p. ej.\n\"Enséñame Python desde cero en 30 minutos\"\n\"Explica la transformada de Fourier en el pizarrón\"\n\"Cómo jugar el juego de mesa Avalon\"", "requirementRequired": "Ingresa los requisitos del curso", "fileTooLarge": "Archivo demasiado grande. Selecciona uno de menos de 50 MB", "courseMaterialCountLimit": "Puedes subir hasta 5 archivos de material del curso", "courseMaterialTotalSizeLimit": "El tamaño total del material del curso debe ser menor a 150 MB", "unsupportedCourseMaterial": "El extractor actual no admite este formato. Cambia de extractor o elige otro archivo." }, "generation": { "modeLabel": "Modo de generación", "normalMode": "Generación normal", "largeMode": "Tarea grande", "pdfLoadFailed": "Error al cargar el archivo PDF, inténtalo de nuevo", "pdfParseFailed": "Error al procesar el PDF", "analyzingCourseMaterial": "Analizando documentos", "analyzingCourseMaterialDesc": "Extrayendo la estructura y el contenido de los documentos...", "courseMaterialLoadFailed": "Error al cargar el material del curso, inténtalo de nuevo", "courseMaterialParseFailed": "Error al procesar el material del curso", "streamNotReadable": "No se puede leer el stream de generación", "generatingOutlines": "Redactando el esquema del curso", "generatingOutlinesDesc": "Estructurando la ruta de aprendizaje...", "generatingSlideContent": "Generando contenido de las páginas", "generatingSlideContentDesc": "Creando diapositivas, cuestionarios y contenido interactivo...", "generatingActions": "Generando acciones de enseñanza", "generatingActionsDesc": "Orquestando narración, resaltados e interacciones...", "generationComplete": "¡Generación completada!", "generationFailed": "Falló la generación", "speechFailed": "Falló la generación de voz", "retryScene": "Reintentar", "retryingScene": "Regenerando...", "backToHome": "Volver al inicio", "sessionNotFound": "Sesión no encontrada", "sessionNotFoundDesc": "Completa los requisitos del curso para iniciar el proceso de generación.", "goBackAndRetry": "Volver e intentar de nuevo", "classroomReady": "Tu entorno de aprendizaje personalizado con IA se generó correctamente.", "aiWorking": "Agentes IA trabajando...", "textTruncated": "El texto del documento es largo; se usarán los primeros {{n}} caracteres para la generación", "imageTruncated": "Se encontraron {{total}} imágenes, más del límite de {{max}}. Las imágenes extra usarán solo descripciones de texto", "agentRevealTitle": "Los roles de tu aula", "viewAgents": "Ver roles", "continue": "Continuar", "outlineRetrying": "Problema al generar el esquema, reintentando...", "outlineEmptyResponse": "El modelo no devolvió esquemas válidos. Revisa la configuración del modelo e inténtalo de nuevo", "outlineGenerateFailed": "Falló la generación del esquema, inténtalo más tarde", "sceneGenerateFailed": "Falló la generación de la escena, inténtalo más tarde", "sceneGenerateAuthFailed": "La generación de la escena falló porque el proveedor del modelo rechazó las credenciales. Revisa tu configuración del modelo.", "sceneGenerateRateLimited": "La generación de escenas alcanzó el límite de solicitudes. Espera un momento e inténtalo de nuevo.", "sceneGenerateProviderUnavailable": "El proveedor del modelo no está disponible por el momento. Inténtalo más tarde.", "sceneGenerateInvalidResponse": "El modelo no devolvió contenido de escena válido. Prueba con otro modelo o ajusta los requisitos del curso.", "reviewOutlineTitle": "Revisa tu esquema", "reviewOutlineDesc": "Edita, reordena, elimina o agrega escenas antes de que comience la generación de contenido.", "reviewOutlineAutoContinue": "La generación continuará automáticamente a menos que revises el esquema.", "outlineEditorTitle": "Esquema de escenas", "outlineEditorSummary": "{{count}} escenas en total. Puedes editar, agregar, eliminar o reordenar escenas antes de que inicie la generación.", "addFirstScene": "Agregar primera escena", "noOutlines": "Aún no hay esquemas de escenas", "sceneTitlePlaceholder": "Título de la escena", "sceneTypeSlide": "Diapositiva", "sceneTypeQuiz": "Cuestionario", "sceneTypeInteractive": "Interactivo", "sceneTypePbl": "ABP", "sceneDescriptionPlaceholder": "Describe brevemente el propósito y el contenido de esta escena", "quizQuestionCount": "Número de preguntas", "quizDifficulty": "Dificultad", "quizType": "Tipo de pregunta", "quizDifficultyEasy": "Fácil", "quizDifficultyMedium": "Media", "quizDifficultyHard": "Difícil", "quizTypeSingle": "Opción única", "quizTypeMultiple": "Opción múltiple", "quizTypeText": "Respuesta corta", "alwaysReviewOutlines": "Siempre revisar los esquemas antes de generar", "outlineEditorEyebrow": "Esquema generado por IA", "outlineEditorStreamingProgress": "Streaming · {{count}} escenas listas", "outlineEditorStreamingWaiting": "Esperando a que llegue la primera escena…", "outlineEditorWaitingConfirm": "Esperando los esquemas…", "outlineExpandHint": "Toca para revisar", "reviewOutlineStreamingDesc": "El esquema aún se está recibiendo en streaming. Podrás editarlo cuando esté completo.", "addKeyPoint": "Agregar punto clave", "removeKeyPoint": "Quitar punto clave", "insertSceneHere": "Insertar una escena aquí", "deleteSceneConfirm": "¿Eliminar esta escena?", "deleteSceneConfirmDesc": "Esta escena y sus puntos clave se eliminarán del esquema.", "deleteSceneConfirmAction": "Eliminar", "collapseEditor": "Contraer", "quizConfigSummary": "{{count}} preguntas", "interactiveWidgetKind": "Tipo de widget", "widgetSimulation": "Simulación", "widgetDiagram": "Diagrama", "widgetCode": "Código", "widgetGame": "Juego", "widgetVisualization3d": "3D", "interactiveConcept": "Concepto", "interactiveConceptPlaceholder": "Concepto a explorar", "pblConfigSummary": "Proyecto", "pblSubtype": "Tipo de ABP", "pblSubtypeProject": "Proyecto", "pblSubtypeScenario": "Escenario", "pblProjectTopic": "Tema del proyecto", "pblProjectTopicPlaceholder": "Tema del proyecto", "pblProjectDescription": "Descripción", "pblProjectDescriptionPlaceholder": "Lo que los estudiantes construirán", "pblScenarioBrief": "Resumen del escenario", "pblScenarioBriefPlaceholder": "Situación, personajes y objetivo de práctica", "pblTargetSkills": "Habilidades objetivo", "pblAddSkill": "Agregar habilidad", "widgetProceduralSkill": "Habilidad procedimental", "removeSkill": "Quitar habilidad", "dragSceneHint": "Arrastra para reordenar; o enfoca y presiona Ctrl/⌘ + ↑ / ↓", "deleteScene": "Eliminar escena", "backToRequirements": "Volver a los requisitos", "confirmAndGenerateCourse": "Confirmar y generar curso", "generatingInProgress": "Generando...", "webSearching": "Búsqueda web", "webSearchingDesc": "Buscando información actualizada en la web", "webSearchFailed": "Falló la búsqueda web", "outlinesReadyCount": "{{ready}} / {{total}} secciones listas", "jumpToBlankTitle": "Ir a una sección que aún necesita título", "analyzingMediaMaterial": "Analizando audio/video" }, "settings": { "title": "Configuración", "description": "Configura los ajustes de la aplicación", "language": "Idioma", "languageDesc": "Selecciona el idioma de la interfaz", "theme": "Tema", "themeDesc": "Selecciona el modo de tema (claro/oscuro/sistema)", "themeOptions": { "light": "Claro", "dark": "Oscuro", "system": "Sistema" }, "apiKey": "Clave API", "apiKeyDesc": "Configura tu clave API", "apiBaseUrl": "URL del endpoint de la API", "apiBaseUrlDesc": "Configura la URL del endpoint de la API", "apiKeyRequired": "La clave API no puede estar vacía", "model": "Configuración de modelos", "modelDesc": "Configura los modelos de IA", "modelPlaceholder": "Escribe o selecciona el nombre del modelo", "ttsModel": "Modelo TTS", "ttsModelDesc": "Configura los modelos TTS", "ttsModelPlaceholder": "Escribe o selecciona el nombre del modelo TTS", "ttsModelOptions": { "openaiTts": "OpenAI TTS", "azureTts": "Azure TTS" }, "availableModels": "Modelos disponibles", "modelSelectedViaVoice": "El modelo se determina según la voz seleccionada", "testConnection": "Probar conexión", "testConnectionDesc": "Verifica que la configuración actual de la API funcione", "testing": "Probando...", "agentSettings": "Configuración de agentes", "agentSettingsDesc": "Selecciona los agentes que participarán en la conversación. Elige 1 para el modo de agente único o varios para el modo colaborativo multiagente.", "agentMode": "Modo de agente", "agentModePreset": "Predefinido", "agentModeAuto": "Autogenerar", "agentModeAutoDesc": "La IA generará automáticamente los roles adecuados", "autoAgentCount": "Número de agentes", "autoAgentCountDesc": "Número de agentes a generar automáticamente (incluye al maestro)", "atLeastOneAgent": "Selecciona al menos 1 agente", "singleAgentMode": "Modo de agente único", "directAnswer": "Respuesta directa", "multiAgentMode": "Modo multiagente", "agentsCollaborating": "Discusión colaborativa", "agentsCollaboratingCount": "{{count}} agentes seleccionados para la discusión colaborativa", "priority": "Prioridad", "actions": "Acciones", "actionCount": "{{count}} acciones", "selectedAgent": "Agente seleccionado", "selectedAgents": "Agentes seleccionados", "required": "Obligatorio", "agentNames": { "default-1": "Maestro IA", "default-2": "Asistente IA", "default-3": "Payaso del salón", "default-4": "Mente curiosa", "default-5": "Tomador de apuntes", "default-6": "Pensador profundo" }, "agentRoles": { "teacher": "Maestro", "assistant": "Asistente", "student": "Estudiante" }, "agentDescriptions": { "default-1": "Maestro titular con explicaciones claras y estructuradas", "default-2": "Apoya el aprendizaje y ayuda a aclarar los puntos clave", "default-3": "Aporta humor y energía al salón de clases", "default-4": "Siempre con curiosidad, le encanta preguntar por qué y cómo", "default-5": "Registra y organiza con esmero los apuntes de la clase", "default-6": "Piensa a fondo y explora la esencia de los temas" }, "close": "Cerrar", "save": "Guardar", "providers": "LLM", "addProviderDescription": "Agrega proveedores de modelos personalizados para ampliar los modelos de IA disponibles", "providerNames": { "openai": "OpenAI", "azure": "Azure OpenAI", "anthropic": "Claude", "google": "Gemini", "bedrock": "Amazon Bedrock", "deepseek": "DeepSeek", "qwen": "Qwen", "kimi": "Kimi", "minimax": "MiniMax", "glm": "GLM", "siliconflow": "SiliconFlow", "doubao": "Doubao", "openrouter": "OpenRouter", "grok": "Grok", "tencent-hunyuan": "Tencent Hunyuan", "xiaomi": "Xiaomi MiMo", "lemonade": "Lemonade (local)", "ollama": "Ollama (local)", "tavily": "Tavily", "bocha": "Bocha", "brave": "Brave Search", "baidu": "Baidu", "claude": "Claude", "searxng": "SearXNG" }, "providerTypes": { "openai": "Protocolo OpenAI", "azure": "Azure OpenAI", "anthropic": "Protocolo Claude", "google": "Protocolo Gemini", "bedrock": "Amazon Bedrock" }, "modelCount": "modelos", "modelSingular": "modelo", "defaultModel": "Modelo predeterminado", "webSearch": "Búsqueda web", "mcp": "MCP", "knowledgeBase": "Base de conocimientos", "documentParser": "Analizador de documentos", "conversationSettings": "Conversación", "keyboardShortcuts": "Atajos", "generalSettings": "General", "systemSettings": "Sistema", "addProvider": "Agregar", "importFromClipboard": "Importar del portapapeles", "apiSecret": "Clave API", "apiHost": "URL base", "azureDeploymentHint": "Ingresa arriba tu endpoint de Azure OpenAI y luego agrega cada nombre de deployment de Azure como un modelo.", "baseUrlRegion": { "china": "China", "international": "Internacional", "xiaomiPayg": "Pago por uso", "xiaomiTokenPlanCN": "Plan de tokens CN", "xiaomiTokenPlanSGP": "Plan de tokens SG", "xiaomiTokenPlanEU": "Plan de tokens EU" }, "requestUrl": "URL de solicitud", "models": "Modelos", "comfyuiWorkflows": "Flujos de trabajo", "comfyuiRefresh": "Actualizar", "comfyuiNoWorkflowsFoundPrefix": "No se encontraron archivos JSON de flujos de trabajo en", "comfyuiAddWorkflowPrefix": "Agrega un archivo", "comfyuiAddWorkflowSuffix": "para comenzar.", "comfyuiFolderHintPrefix": "Coloca los archivos JSON de flujos de trabajo en tu carpeta", "comfyuiFolderHintMiddle": ". El nombre del archivo se convierte en el nombre visible, p. ej.", "comfyuiLoadError": "No se pudieron cargar los flujos de trabajo: {error}", "addModel": "Agregar", "reset": "Restablecer", "fetch": "Obtener", "connectionSuccess": "Conexión exitosa", "connectionFailed": "Error de conexión", "capabilities": { "vision": "Visión", "tools": "Herramientas", "streaming": "Streaming" }, "contextWindow": "Contexto", "contextShort": "ctx", "outputWindow": "Salida", "addProviderButton": "Agregar", "addProviderDialog": "Agregar proveedor de modelos", "providerName": "Nombre", "providerNamePlaceholder": "p. ej., Mi proxy de OpenAI", "providerNameRequired": "Ingresa el nombre del proveedor", "providerApiMode": "Modo de API", "apiModeOpenAI": "Protocolo OpenAI", "apiModeAnthropic": "Protocolo Claude", "apiModeGoogle": "Protocolo Gemini", "defaultBaseUrl": "URL base predeterminada", "providerIcon": "URL del ícono del proveedor", "requiresApiKey": "Requiere clave API", "deleteProvider": "Eliminar proveedor", "deleteProviderConfirm": "¿Seguro que deseas eliminar este proveedor?", "addCustomTTSProvider": "Agregar proveedor TTS personalizado", "addCustomASRProvider": "Agregar proveedor ASR personalizado", "addCustomAudioProviderDescription": "Agrega un proveedor de audio personalizado compatible con OpenAI", "customVoices": "Voces", "voiceIdPlaceholder": "ID de voz (p. ej. alloy)", "voiceNamePlaceholder": "Nombre para mostrar", "addVoice": "Agregar", "modelNamePlaceholder": "Opcional", "defaultModelHint": "Nombre del modelo enviado en las solicitudes a la API (p. ej. kokoro, tts-1)", "noVoicesAdded": "Aún no hay voces agregadas. Agrega voces abajo para seleccionarlas por agente.", "noModelsAdded": "Aún no hay modelos agregados. Agrega modelos abajo para habilitar la selección de modelo.", "noModelsWarning": "Agrega al menos un modelo abajo antes de usar este proveedor.", "asrNoTranscription": "No se generó ninguna transcripción. Intenta hablar más fuerte o por más tiempo.", "cannotDeleteBuiltIn": "No se puede eliminar un proveedor integrado", "resetToDefault": "Restablecer valores predeterminados", "resetToDefaultDescription": "Restaura la lista de modelos a la configuración predeterminada (se conservarán la clave API y la URL base)", "resetConfirmDescription": "Esto eliminará todos los modelos personalizados y restaurará la lista de modelos predeterminada. La clave API y la URL base se conservarán.", "confirmReset": "Confirmar restablecimiento", "resetSuccess": "Se restableció la configuración predeterminada", "saveSuccess": "Configuración guardada", "saveFailed": "No se pudo guardar la configuración, inténtalo de nuevo", "cannotDeleteBuiltInModel": "No se puede eliminar un modelo integrado", "cannotEditBuiltInModel": "No se puede editar un modelo integrado", "modelIdRequired": "Ingresa el ID del modelo", "noModelsAvailable": "No hay modelos disponibles para probar", "providerMetadata": "Metadatos del proveedor", "editModel": "Editar modelo", "editModelDescription": "Edita la configuración y las capacidades del modelo", "addNewModel": "Nuevo modelo", "modelsManagementDescription": "Administra los modelos y capacidades disponibles para este proveedor.", "addNewModelDescription": "Agrega una nueva configuración de modelo", "modelId": "ID del modelo", "modelIdPlaceholder": "p. ej., gpt-4o", "modelName": "Nombre para mostrar", "modelCapabilities": "Capacidades", "advancedSettings": "Configuración avanzada", "contextWindowLabel": "Ventana de contexto", "contextWindowPlaceholder": "p. ej., 128000", "outputWindowLabel": "Máximo de tokens de salida", "outputWindowPlaceholder": "p. ej., 4096", "testModel": "Probar modelo", "deleteModel": "Eliminar", "cancelEdit": "Cancelar", "saveModel": "Guardar", "howToUse": "Cómo usar", "step1ConfigureProvider": "Ve a \"Proveedores de modelos\", selecciona o agrega un proveedor y configura los ajustes de conexión (clave API, URL base, etc.)", "step2SelectModel": "Selecciona el modelo que quieres usar en \"Modelo activo\" más abajo", "step3StartUsing": "Después de guardar, el sistema usará el modelo seleccionado", "activeModel": "Modelo activo", "activeModelDescription": "Selecciona el modelo para las conversaciones con IA y la generación de contenido", "searchModels": "Buscar modelos", "noModelsFound": "No se encontraron modelos coincidentes", "noConfiguredProviders": "No hay proveedores configurados", "configureProvidersFirst": "Configura los ajustes de conexión del proveedor en \"Proveedores de modelos\", a la izquierda", "currentlyUsing": "Usando actualmente", "ttsSettings": "Texto a voz", "asrSettings": "Reconocimiento de voz", "audioSettings": "Configuración de audio", "ttsSection": "Texto a voz (TTS)", "asrSection": "Reconocimiento automático de voz (ASR)", "ttsDescription": "TTS (texto a voz) - Convierte texto en voz", "asrDescription": "ASR (reconocimiento automático de voz) - Convierte voz en texto", "enableTTS": "Habilitar texto a voz", "ttsEnabledDescription": "Al habilitarlo, se generará audio de voz durante la creación del curso", "ttsVoiceConfigHint": "La voz de cada agente se puede configurar en \"Configuración de roles del aula\" en la página de inicio", "enableASR": "Habilitar reconocimiento de voz", "asrEnabledDescription": "Al habilitarlo, los estudiantes pueden usar el micrófono para entrada de voz", "ttsProvider": "Proveedor TTS", "ttsLanguageFilter": "Filtro de idioma", "allLanguages": "Todos los idiomas", "ttsVoice": "Voz", "ttsSpeed": "Velocidad", "ttsBaseUrl": "URL base", "ttsApiKey": "Clave API", "doubaoAppId": "App ID", "doubaoAccessKey": "Clave de acceso", "asrProvider": "Proveedor ASR", "asrLanguage": "Idioma de reconocimiento", "asrBaseUrl": "URL base", "asrApiKey": "Clave API", "enterApiKey": "Ingresa la clave API", "enterCustomBaseUrl": "Ingresa una URL base personalizada", "browserNativeNote": "El ASR nativo del navegador no requiere configuración y es totalmente gratuito", "providerOpenAITTS": "OpenAI TTS (gpt-4o-mini-tts)", "providerAzureTTS": "Azure TTS", "providerGLMTTS": "GLM TTS", "providerQwenTTS": "Qwen TTS (Alibaba Cloud Bailian)", "providerVoxCPMTTS": "VoxCPM2", "providerDoubaoTTS": "Doubao TTS 2.0 (Volcengine)", "providerElevenLabsTTS": "ElevenLabs TTS", "providerMiniMaxTTS": "MiniMax TTS", "providerLemonadeTTS": "Lemonade TTS (local)", "providerBrowserNativeTTS": "TTS nativo del navegador", "voxcpmBackend": "Backend", "voxcpmBaseUrlPending": "Ingresa una URL base para generar la URL de solicitud", "voxcpmAutoVoiceNoPreview": "La voz automática se genera a partir del contexto del agente y no se puede previsualizar directamente", "voxcpmVoicesTitle": "Voces de VoxCPM", "voxcpmVoicesDescription": "Se guardan en este navegador y se agregan al conjunto de voces compartido de la barra de agentes.", "voxcpmAutoVoicePrivacyNote": "La voz automática envía la persona del agente como prompt de voz a tu backend de VoxCPM configurado.", "voxcpmPromptCount": "Prompt {{count}}", "voxcpmCloneCount": "Clon {{count}}", "voxcpmCloneUnsupported": "El backend actual no admite clonación", "voxcpmVoicePool": "Conjunto de voces", "voxcpmVoiceCount": "{{count}} voces", "voxcpmAutoVoice": "Voz automática", "voxcpmAutoVoiceDescription": "Usa la persona del agente como prompt de voz", "voxcpmUnavailable": "No disponible", "voxcpmClone": "Clonar", "voxcpmCloneUnsupportedDetail": "El backend actual no admite clonación", "voxcpmNoCustomVoices": "Aún no hay voces personalizadas", "voxcpmCloneSaveOnly": "Se guarda solo para este backend", "voxcpmVoiceNamePlaceholder": "Nombre de la voz", "voxcpmPromptPlaceholder": "Ejemplo: voz de maestro clara y natural, con ritmo moderado", "voxcpmAddVoice": "Agregar voz", "voxcpmCloneVoiceNamePlaceholder": "Nombre de la voz clonada", "voxcpmUploadReferenceAudio": "Subir audio de referencia", "voxcpmRecord": "Grabar", "voxcpmReferenceAudioLimitHint": "El audio de referencia debe ser de máximo 10 MB / 60 segundos y se convierte a WAV antes de guardarse.", "voxcpmReferenceTextPlaceholder": "Transcripción del audio de referencia, opcional", "voxcpmVoiceDescriptionPlaceholder": "Descripción de la voz, opcional", "voxcpmAddClone": "Agregar clon", "voxcpmRecordingUnsupported": "Este navegador no admite grabación", "voxcpmRecordedVoiceName": "Voz grabada", "voxcpmRecordingFailed": "Falló la conversión de la grabación", "voxcpmRecordingStartFailed": "No se pudo iniciar la grabación", "voxcpmBaseUrlRequired": "Primero ingresa una URL base de VoxCPM", "voxcpmPreviewFailed": "Falló la vista previa", "voxcpmVoiceSaved": "Voz de VoxCPM guardada", "voxcpmVoiceSaveFailed": "No se pudo guardar la voz", "voxcpmReferenceAudioInvalid": "Audio de referencia no válido", "voxcpmCloneSaved": "Voz clonada de VoxCPM guardada", "voxcpmCloneSaveFailed": "No se pudo guardar la voz clonada", "voxcpmStopPreview": "Detener vista previa", "voxcpmPreviewVoice": "Previsualizar voz", "voxcpmDeleteVoice": "Eliminar voz", "providerOpenAIWhisper": "OpenAI ASR (gpt-4o-mini-transcribe)", "providerBrowserNative": "ASR nativo del navegador", "providerQwenASR": "Qwen ASR (Alibaba Cloud Bailian)", "providerFunASRASR": "FunASR (local)", "providerLemonadeASR": "Lemonade ASR (local)", "providerAzureASR": "Azure STT", "providerUnpdf": "unpdf (integrado)", "providerMinerU": "MinerU", "providerMinerUCloud": "MinerU (nube)", "browserNativeTTSNote": "El TTS nativo del navegador no requiere configuración y es totalmente gratuito; usa las voces integradas del sistema", "testTTS": "Probar TTS", "testASR": "Probar ASR", "testSuccess": "Prueba exitosa", "testFailed": "Prueba fallida", "ttsTestText": "Texto de prueba TTS", "ttsTestSuccess": "Prueba de TTS exitosa, audio reproducido", "ttsTestFailed": "Falló la prueba de TTS", "asrTestSuccess": "Reconocimiento de voz exitoso", "asrTestFailed": "Falló el reconocimiento de voz", "asrProcessing": "Procesando...", "asrResult": "Resultado del reconocimiento", "asrNotSupported": "El navegador no admite la API de reconocimiento de voz", "browserTTSNotSupported": "El navegador no admite la API de síntesis de voz", "browserTTSNoVoices": "El navegador actual no tiene voces TTS disponibles", "microphoneAccessDenied": "Acceso al micrófono denegado", "microphoneAccessFailed": "No se pudo acceder al micrófono", "asrResultPlaceholder": "El resultado del reconocimiento se mostrará después de grabar", "useThisProvider": "Usar este proveedor", "fetchVoices": "Obtener lista de voces", "fetchingVoices": "Obteniendo...", "voicesFetched": "Voces obtenidas", "fetchVoicesFailed": "No se pudieron obtener las voces", "voiceApiKeyRequired": "Se requiere clave API", "voiceBaseUrlRequired": "Se requiere URL base", "ttsTestTextPlaceholder": "Ingresa el texto a convertir", "ttsTestTextDefault": "Hola, esta es una prueba de voz.", "startRecording": "Iniciar grabación", "stopRecording": "Detener grabación", "recording": "Grabando...", "transcribing": "Transcribiendo...", "transcriptionResult": "Resultado de la transcripción", "noTranscriptionResult": "Sin resultado de transcripción", "baseUrlOptional": "URL base (opcional)", "defaultValue": "Predeterminado", "voiceMarin": "Recomendada - mejor calidad", "voiceCedar": "Recomendada - mejor calidad", "voiceAlloy": "Neutral, equilibrada", "voiceAsh": "Firme, profesional", "voiceBallad": "Elegante, lírica", "voiceCoral": "Cálida, amigable", "voiceEcho": "Masculina, clara", "voiceFable": "Narrativa, vívida", "voiceNova": "Femenina, brillante", "voiceOnyx": "Masculina, profunda", "voiceSage": "Sabia, serena", "voiceShimmer": "Femenina, suave", "voiceVerse": "Natural, fluida", "glmVoiceTongtong": "Voz predeterminada", "glmVoiceChuichui": "Voz Chuichui", "glmVoiceXiaochen": "Voz Xiaochen", "glmVoiceJam": "Voz Jam", "glmVoiceKazi": "Voz Kazi", "glmVoiceDouji": "Voz Douji", "glmVoiceLuodo": "Voz Luodo", "qwenVoiceCherry": "Alegre, cálida y natural", "qwenVoiceSerena": "Dulce y suave", "qwenVoiceEthan": "Enérgico y vibrante", "qwenVoiceChelsie": "Novia virtual de anime", "qwenVoiceMomo": "Juguetona y alegre", "qwenVoiceVivian": "Tierna y atrevida", "qwenVoiceMoon": "Sereno y galán", "qwenVoiceMaia": "Intelectual y dulce", "qwenVoiceKai": "Un spa para tus oídos", "qwenVoiceNofish": "Diseñador que no pronuncia los sonidos retroflejos", "qwenVoiceBella": "Pequeña loli que no se emborracha", "qwenVoiceJennifer": "Voz femenina estadounidense, cinematográfica y de nivel publicitario", "qwenVoiceRyan": "Ritmo acelerado y actuación dramática", "qwenVoiceKaterina": "Dama madura con un ritmo inolvidable", "qwenVoiceAiden": "Chico estadounidense que domina la cocina", "qwenVoiceEldricSage": "Anciano sereno y sabio", "qwenVoiceMia": "Suave como agua de manantial, dócil como la nieve", "qwenVoiceMochi": "Pequeño adulto listo con inocencia infantil", "qwenVoiceBellona": "Voz potente, pronunciación clara y personajes vívidos", "qwenVoiceVincent": "Voz ronca única que narra historias de guerra y honor", "qwenVoiceBunny": "Loli súper tierna", "qwenVoiceNeil": "Conductor de noticias profesional", "qwenVoiceElias": "Instructor profesional", "qwenVoiceArthur": "Voz sencilla curtida por los años y el tabaco seco", "qwenVoiceNini": "Voz suave y melosa como un mochi", "qwenVoiceEbona": "Su susurro es como una llave oxidada", "qwenVoiceSeren": "Voz dulce y relajante que te ayuda a dormir", "qwenVoicePip": "Travieso pero lleno de inocencia infantil", "qwenVoiceStella": "Voz de chica dulce y despistada que se vuelve justiciera cuando grita", "qwenVoiceBodega": "Señor español entusiasta", "qwenVoiceSonrisa": "Dama latinoamericana entusiasta", "qwenVoiceAlek": "Frialdad de la nación guerrera, calidez bajo el abrigo de lana", "qwenVoiceDolce": "Señor italiano relajado", "qwenVoiceSohee": "Unnie coreana dulce y alegre", "qwenVoiceOnoAnna": "Amiga de la infancia traviesa", "qwenVoiceLenn": "Joven alemán racional que viste de traje y escucha post-punk", "qwenVoiceEmilien": "Hermano mayor francés y romántico", "qwenVoiceAndre": "Voz masculina magnética, natural y serena", "qwenVoiceRadioGol": "El poeta del futbol ¡Rádio Gol!", "qwenVoiceJada": "Dama animada de Shanghái", "qwenVoiceDylan": "Chico de Beijing", "qwenVoiceLi": "Maestra de yoga paciente", "qwenVoiceMarcus": "Cara ancha, pocas palabras, corazón firme: puro sabor del viejo Shaanxi", "qwenVoiceRoy": "Chico taiwanés directo y con humor", "qwenVoicePeter": "Comediante profesional de xiangsheng de Tianjin", "qwenVoiceSunny": "Dulce chica de Sichuan", "qwenVoiceEric": "Caballero de Chengdu", "qwenVoiceRocky": "Chico divertido de Hong Kong", "qwenVoiceKiki": "Dulce chica de Hong Kong", "lang_auto": "Detección automática", "lang_zh": "中文", "lang_yue": "粤語", "lang_en": "English", "lang_ja": "日本語", "lang_ko": "한국어", "lang_es": "Español", "lang_fr": "Français", "lang_de": "Deutsch", "lang_ru": "Русский", "lang_ar": "العربية", "lang_pt": "Português", "lang_it": "Italiano", "lang_af": "Afrikaans", "lang_hy": "Հայերեն", "lang_az": "Azərbaycan", "lang_be": "Беларуская", "lang_bs": "Bosanski", "lang_bg": "Български", "lang_ca": "Català", "lang_hr": "Hrvatski", "lang_cs": "Čeština", "lang_da": "Dansk", "lang_nl": "Nederlands", "lang_et": "Eesti", "lang_fi": "Suomi", "lang_gl": "Galego", "lang_el": "Ελληνικά", "lang_he": "עברית", "lang_hi": "हिन्दी", "lang_hu": "Magyar", "lang_is": "Íslenska", "lang_id": "Bahasa Indonesia", "lang_kn": "ಕನ್ನಡ", "lang_kk": "Қазақша", "lang_lv": "Latviešu", "lang_lt": "Lietuvių", "lang_mk": "Македонски", "lang_ms": "Bahasa Melayu", "lang_mr": "मराठी", "lang_mi": "Te Reo Māori", "lang_ne": "नेपाली", "lang_no": "Norsk", "lang_fa": "فارسی", "lang_pl": "Polski", "lang_ro": "Română", "lang_sr": "Српски", "lang_sk": "Slovenčina", "lang_sl": "Slovenščina", "lang_sw": "Kiswahili", "lang_sv": "Svenska", "lang_tl": "Tagalog", "lang_fil": "Filipino", "lang_ta": "தமிழ்", "lang_th": "ไทย", "lang_tr": "Türkçe", "lang_uk": "Українська", "lang_ur": "اردو", "lang_vi": "Tiếng Việt", "lang_cy": "Cymraeg", "lang_zh-CN": "中文(简体,中国)", "lang_zh-TW": "中文(繁體,台灣)", "lang_zh-HK": "粵語(香港)", "lang_yue-Hant-HK": "粵語(繁體)", "lang_en-US": "English (United States)", "lang_en-GB": "English (United Kingdom)", "lang_en-AU": "English (Australia)", "lang_en-CA": "English (Canada)", "lang_en-IN": "English (India)", "lang_en-NZ": "English (New Zealand)", "lang_en-ZA": "English (South Africa)", "lang_ja-JP": "日本語(日本)", "lang_ko-KR": "한국어(대한민국)", "lang_de-DE": "Deutsch (Deutschland)", "lang_fr-FR": "Français (France)", "lang_es-ES": "Español (España)", "lang_es-MX": "Español (México)", "lang_es-AR": "Español (Argentina)", "lang_es-CO": "Español (Colombia)", "lang_it-IT": "Italiano (Italia)", "lang_pt-BR": "Português (Brasil)", "lang_pt-PT": "Português (Portugal)", "lang_ru-RU": "Русский (Россия)", "lang_nl-NL": "Nederlands (Nederland)", "lang_pl-PL": "Polski (Polska)", "lang_cs-CZ": "Čeština (Česko)", "lang_da-DK": "Dansk (Danmark)", "lang_fi-FI": "Suomi (Suomi)", "lang_sv-SE": "Svenska (Sverige)", "lang_no-NO": "Norsk (Norge)", "lang_tr-TR": "Türkçe (Türkiye)", "lang_el-GR": "Ελληνικά (Ελλάδα)", "lang_hu-HU": "Magyar (Magyarország)", "lang_ro-RO": "Română (România)", "lang_sk-SK": "Slovenčina (Slovensko)", "lang_bg-BG": "Български (България)", "lang_hr-HR": "Hrvatski (Hrvatska)", "lang_ca-ES": "Català (Espanya)", "lang_ar-SA": "العربية (السعودية)", "lang_ar-EG": "العربية (مصر)", "lang_he-IL": "עברית (ישראל)", "lang_hi-IN": "हिन्दी (भारत)", "lang_th-TH": "ไทย (ประเทศไทย)", "lang_vi-VN": "Tiếng Việt (Việt Nam)", "lang_id-ID": "Bahasa Indonesia (Indonesia)", "lang_ms-MY": "Bahasa Melayu (Malaysia)", "lang_fil-PH": "Filipino (Pilipinas)", "lang_af-ZA": "Afrikaans (Suid-Afrika)", "lang_uk-UA": "Українська (Україна)", "pdfSettings": "Análisis de PDF", "documentParsingSettings": "Análisis de documentos", "supportedFormats": "Formatos compatibles", "mineruSelfHostFormatsNote": "El análisis de PDF e imágenes requiere los extras mineru[pipeline] o mineru[core] en tu servidor MinerU. Las instalaciones ligeras de mineru-api pueden manejar solo documentos de Office.", "pdfParsingSettings": "Configuración de análisis de PDF", "pdfDescription": "Elige el motor de análisis de PDF con soporte para extracción de texto, procesamiento de imágenes y reconocimiento de tablas", "pdfProvider": "Analizador de PDF", "pdfFeatures": "Funciones compatibles", "pdfApiKey": "Clave API", "pdfBaseUrl": "URL base", "mineruDescription": "MinerU es un servicio comercial de análisis de PDF que admite funciones avanzadas como extracción de tablas, reconocimiento de fórmulas y análisis de diseño de página.", "mineruApiKeyRequired": "Debes solicitar una clave API en el sitio web de MinerU antes de usarlo.", "mineruWarning": "Advertencia", "mineruCostWarning": "MinerU es un servicio comercial y puede generar costos. Consulta los precios en el sitio web de MinerU.", "enterMinerUApiKey": "Ingresa la clave API de MinerU", "mineruLocalDescription": "MinerU admite despliegue local con análisis avanzado de PDF (tablas, fórmulas, análisis de diseño de página). Requiere desplegar primero el servicio MinerU.", "mineruServerAddress": "Dirección del servidor MinerU local (p. ej., http://localhost:8080)", "mineruApiKeyOptional": "Solo se requiere si el servidor tiene la autenticación habilitada", "mineruCloudApiKeyPlaceholder": "Ingresa la clave API de MinerU Cloud", "optionalApiKey": "Clave API opcional", "featureText": "Extracción de texto", "featureImages": "Extracción de imágenes", "featureTables": "Extracción de tablas", "featureFormulas": "Reconocimiento de fórmulas", "featureLayoutAnalysis": "Análisis de diseño de página", "featureMetadata": "Metadatos", "enableImageGeneration": "Habilitar generación de imágenes con IA", "imageGenerationDisabledHint": "Al habilitarse, las imágenes se generarán automáticamente durante la creación del curso", "imageSettings": "Generación de imágenes", "imageSection": "Texto a imagen", "imageProvider": "Proveedor de generación de imágenes", "imageModel": "Modelo de generación de imágenes", "providerSeedream": "Seedream (ByteDance)", "providerOpenAIImage": "OpenAI Image", "providerQwenImage": "Qwen Image (Alibaba)", "providerNanoBanana": "Nano Banana (Gemini)", "providerMiniMaxImage": "MiniMax Image", "providerGrokImage": "Grok Image (xAI)", "providerComfyUIImage": "ComfyUI Image", "providerLemonadeImage": "Lemonade Image (local)", "testImageGeneration": "Probar generación de imágenes", "testImageConnectivity": "Probar conexión", "imageConnectivitySuccess": "Servicio de imágenes conectado correctamente", "imageConnectivityFailed": "Falló la conexión con el servicio de imágenes", "imageTestSuccess": "La prueba de generación de imágenes fue exitosa", "imageTestFailed": "La prueba de generación de imágenes falló", "imageTestPromptPlaceholder": "Ingresa una descripción de imagen para probar", "imageTestPromptDefault": "Un gato tierno sentado en un escritorio", "imageGenerating": "Generando imagen...", "imageGenerationFailed": "Falló la generación de la imagen", "enableVideoGeneration": "Habilitar generación de videos con IA", "videoGenerationDisabledHint": "Al habilitarse, los videos se generarán automáticamente durante la creación del curso", "videoSettings": "Generación de videos", "videoSection": "Texto a video", "videoProvider": "Proveedor de generación de videos", "videoModel": "Modelo de generación de videos", "providerSeedance": "Seedance (ByteDance)", "providerKling": "Kling (Kuaishou)", "providerVeo": "Veo (Google)", "providerSora": "Sora (OpenAI)", "providerMiniMaxVideo": "MiniMax Video", "providerGrokVideo": "Grok Video (xAI)", "providerHappyHorse": "HappyHorse (Alibaba Cloud)", "testVideoGeneration": "Probar generación de videos", "testVideoConnectivity": "Probar conexión", "videoConnectivitySuccess": "Servicio de videos conectado correctamente", "videoConnectivityFailed": "Falló la conexión con el servicio de videos", "testingConnection": "Probando...", "videoTestSuccess": "La prueba de generación de videos fue exitosa", "videoTestFailed": "La prueba de generación de videos falló", "videoTestPromptDefault": "Un gato tierno caminando sobre un escritorio", "videoGenerating": "Generando video (aprox. 1-2 min)...", "videoGenerationWarning": "La generación de video suele tardar de 1 a 2 minutos, ten paciencia", "mediaRetry": "Reintentar", "mediaContentSensitive": "Lo sentimos, este contenido activó una verificación de seguridad.", "mediaGenerationDisabled": "Generación deshabilitada en la configuración", "singleAgent": "Agente único", "multiAgent": "Multiagente", "selectAgents": "Seleccionar agentes", "noVisionWarning": "El modelo actual no admite visión. Las imágenes aún pueden colocarse en las diapositivas, pero el modelo no puede entender su contenido para optimizar la selección y el diseño", "serverConfigured": "Servidor", "serverConfiguredNotice": "Este proveedor lo administra el servidor y no puede editarse aquí. Para usar tus propias credenciales, agrega un proveedor aparte.", "ttsProviderEnabledLabel": "Habilitar este proveedor", "ttsProviderEnabledHint": "Al desactivarlo, este proveedor se oculta del selector de voces y nunca se asigna automáticamente.", "ttsProviderUnavailableHint": "Configura este proveedor antes de habilitarlo.", "ttsProviderDisabledByAdmin": "Este proveedor fue deshabilitado por el administrador del servidor y no puede habilitarse.", "optionalOverride": "Opcional — déjalo vacío para usar la configuración del servidor", "setupNeeded": "Configuración requerida", "modelNotConfigured": "Selecciona un modelo para comenzar", "dangerZone": "Zona de peligro", "clearCache": "Borrar caché local", "clearCacheDescription": "Elimina todos los datos almacenados localmente, incluidos registros del aula, historial de chat, caché de audio y configuración de la app. Esta acción no se puede deshacer.", "clearCacheConfirmTitle": "¿Seguro que quieres borrar toda la caché?", "clearCacheConfirmDescription": "Esto eliminará permanentemente todos los datos siguientes y no podrán recuperarse:", "clearCacheConfirmItems": "Aulas y escenas, historial de chat, caché de audio e imágenes, configuración y preferencias de la app", "clearCacheConfirmInput": "Escribe \"ELIMINAR\" para continuar", "clearCacheConfirmPhrase": "ELIMINAR", "clearCacheButton": "Eliminar permanentemente todos los datos", "clearCacheSuccess": "Caché borrada, la página se actualizará en breve", "clearCacheFailed": "No se pudo borrar la caché, inténtalo de nuevo", "clearCacheBlockedByOtherTabs": "Cierra las otras pestañas de la app y vuelve a intentarlo.", "persistUnavailable": "Tus cambios no se están guardando porque la aplicación no puede acceder a sus datos almacenados. Si recargar no ayuda, borra la caché local en Configuración.", "persistChangesLost": "El almacenamiento vuelve a funcionar, pero los cambios que hiciste mientras no estaba disponible no se pudieron guardar y se reemplazaron por la última versión guardada.", "webSearchSettings": "Búsqueda web", "webSearchApiKey": "Clave API de búsqueda", "webSearchApiKeyPlaceholder": "Ingresa tu clave API de búsqueda", "webSearchApiKeyPlaceholderServer": "Clave del servidor configurada; puedes sobrescribirla opcionalmente", "webSearchApiKeyHint": "Obtén una clave API del proveedor de búsqueda seleccionado", "claudeSearchModel": "Modelo de búsqueda", "claudeSearchModelHint": "El modelo de Claude que realiza las búsquedas web y resume los resultados.", "webSearchApiKeyOptional": "La clave API es opcional. Sin ella, se usará el scraping de páginas públicas como alternativa.", "searxngServerOnlyNotice": "SearXNG debe configurarse en el servidor. Define la variable de entorno SEARXNG_BASE_URL (o la sección web-search en server-providers.yml). No se aceptan URLs de instancia proporcionadas por el cliente.", "baiduSubSources": "Fuentes de búsqueda de Baidu", "baiduSubSourcesDescription": "Elige al menos una fuente de Baidu para consultar.", "baiduSubSourceWeb": "Búsqueda web", "baiduSubSourceWebDescription": "Páginas web generales de Baidu AI Search.", "baiduSubSourceBaike": "Baidu Baike", "baiduSubSourceBaikeDescription": "Entradas de enciclopedia de Baidu Baike.", "baiduSubSourceScholar": "Baidu Scholar", "baiduSubSourceScholarDescription": "Artículos académicos de Baidu Scholar.", "viewDocs": "Docs de la API", "webSearchBaseUrl": "URL base", "webSearchServerConfigured": "La clave API de búsqueda está configurada en el servidor", "optional": "Opcional", "selectProvider": "Seleccionar proveedor", "customProvider": "Personalizado", "presetPickHint": "Al elegir un proveedor se autocompletan su URL base y protocolo; ingresa tu clave y haz clic en \"Obtener modelos\". ¿No aparece? Usa \"Personalizado\".", "presetCategory": { "tokenPlan": "Planes de tokens", "aggregator": "Agregadores", "thirdParty": "Terceros", "official": "Oficiales" }, "fetchModels": "Obtener modelos", "fetchModelsResult": "Se obtuvieron {total} modelos, se agregaron {added}", "fetchModelsNoEndpoint": "Este proveedor no tiene endpoint de lista de modelos — agrega los modelos manualmente", "fetchModelsAuthError": "La clave API no es válida o expiró", "fetchModelsFailed": "No se pudieron obtener los modelos", "usage": { "title": "Uso", "refresh": "Actualizar", "disclaimer": "El uso lo registra el sistema; solo se cuentan las llamadas del lado del servidor.", "totalRequests": "Solicitudes", "totalTokens": "Tokens de LLM", "dailyTrend": "Tendencia diaria de tokens", "tokens": "Tokens", "byModel": "Por modelo", "model": "Modelo", "type": "Tipo", "reqs": "Solic.", "usage": "Uso", "empty": "Aún no hay datos de uso", "kindLlm": "LLM", "kindImage": "Imagen", "kindVideo": "Video", "kindTts": "Voz", "kindAsr": "ASR", "unitToken": "tokens", "unitImage": "imágenes", "unitSecond": "seg", "unitCharacter": "caract." }, "tokenPlan": { "nav": "Plan de tokens", "title": "Configuración del plan de tokens", "desc": "Elige tu proveedor de plan de tokens e ingresa la clave — se autoconfigura cada modalidad adaptada (LLM/imagen/video/voz/búsqueda web).", "selectPlan": "Seleccionar proveedor", "apiKey": "Clave API", "enable": "Habilitar", "updateKey": "Actualizar clave", "modelsCount": "{{n}} modelos", "capabilities": "Capacidades ofrecidas", "offeredNote": "Modelos que ofrece este plan. Elige los que quieras en la barra de generación — la disponibilidad depende del nivel de tu plan, y los modelos no compatibles darán error al momento de generar." }, "ttsBrowserNativeTimelineNotice": "El TTS nativo del navegador no admite las funciones de audio de la línea de tiempo del editor (vista previa, regenerar y voz en off masiva). Cambia a un proveedor de TTS administrado para generar y administrar el audio por línea.", "alidocmindAccessKeyId": "AccessKey ID", "alidocmindAccessKeySecret": "AccessKey Secret" }, "profile": { "title": "Perfil", "defaultNickname": "Aprendiz" }, "media": { "imageCapability": "Generación de imágenes", "imageShort": "Imagen", "imageHint": "Genera imágenes en las diapositivas", "videoCapability": "Generación de video", "videoShort": "Video", "videoHint": "Genera videos en las diapositivas", "ttsCapability": "Texto a voz", "ttsShort": "Voz", "ttsHint": "El maestro IA habla en voz alta", "asrCapability": "Reconocimiento de voz", "asrShort": "Micrófono", "asrHint": "Entrada de voz para la discusión", "webSearchShort": "Buscar", "provider": "Proveedor", "model": "Modelo", "voice": "Voz", "speed": "Velocidad", "language": "Idioma" }, "accessCode": { "title": "Ingresa el código de acceso", "placeholder": "Código de acceso", "error": "Código de acceso no válido. Inténtalo de nuevo." } }