{
  "common": {
    "you": "Tú",
    "confirm": "Confirmar",
    "cancel": "Cancelar",
    "loading": "Cargando...",
    "errorPrefix": "Error: ",
    "loadingClassroom": "Cargando el aula...",
    "retry": "Reintentar",
    "close": "Cerrar"
  },
  "home": {
    "slogan": "Aprendizaje generativo en un aula interactiva multiagente",
    "greetingWithName": "Hola, {{name}}"
  },
  "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",
    "scriptMd": "Descargar guion (.md)",
    "scriptMdDesc": "Texto de narración como Markdown",
    "script": "Descargar guion",
    "scriptDocx": "Descargar guion (.docx)",
    "scriptDocxDesc": "Documento Word real en formato DOCX",
    "slideFallback": "Diapositiva {{order}}",
    "textOnly": "Exportar guion",
    "mediaPending": "Esperando a que termine la generación de medios",
    "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."
    },
    "elementReference": {
      "button": "Referenciar diapositiva",
      "unavailable": "Solo se puede referenciar la diapositiva PPT actual",
      "instruction": "Haz clic en un elemento · Esc para salir",
      "fallback": "Otros elementos de la diapositiva ({{count}})",
      "clear": "Quitar referencia de diapositiva",
      "summary": {
        "noText": "Sin texto",
        "emptyContent": "Sin contenido",
        "code": "Código",
        "line": "Línea",
        "imageMetadata": "Imagen (solo metadatos)",
        "videoMetadata": "Video (solo metadatos)",
        "audioMetadata": "Audio (solo metadatos)"
      }
    },
    "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"
    },
    "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",
      "collapseToolbar": "Contraer herramientas de inserción",
      "expandToolbar": "Expandir herramientas de inserción",
      "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",
      "addPage": "Agregar página",
      "nextPage": "Página siguiente",
      "prevPage": "Página anterior"
    },
    "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": {
      "cancelPreview": "Cancelar vista previa",
      "preview": "Vista previa",
      "regenerate": "Regenerar voz",
      "statusReady": "Con voz",
      "statusNone": "Sin voz",
      "statusGenerating": "Generando",
      "stopPreview": "Detener vista previa",
      "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",
      "refCapHint": "Límite alcanzado: quita uno para cambiarlo · Esc para terminar",
      "refHint": "Haz clic para agregar o quitar · Esc para terminar",
      "refLead": "Referenciando elementos · {{count}}/{{max}}"
    },
    "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",
      "shortTitle": "Elenco"
    },
    "elementRef": {
      "remove": "移除引用 {{label}}",
      "counts": "{{count}}/{{max}} referenciados",
      "exitPicking": "Terminar selección",
      "startPicking": "Referenciar elementos"
    },
    "dock": {
      "elementRefHint": "Referencias de elementos: elige elementos para enviar con tu próximo mensaje",
      "globalTools": "Herramientas globales"
    }
  },
  "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.",
    "notFound": "Curso no encontrado",
    "notFoundDesc": "Este curso no existe o ha sido eliminado.",
    "backToHome": "Volver al inicio"
  },
  "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": {
    "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",
    "agentGeneration": "Generando roles del aula",
    "agentGenerationDesc": "Generando roles según el contenido del curso...",
    "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",
    "qwenCloneVoicesTitle": "Qwen TTS Cloned Voices",
    "qwenCloneRefText": "Enter the verbatim transcript of the reference audio",
    "qwenCloneRefAudioHint": "Use a clean 1–60 second voice sample. A 10–20 second sample is recommended; audio is converted to 24 kHz mono PCM WAV.",
    "qwenCloneSaved": "Qwen cloned voice registered and saved",
    "qwenCloneSaveFailed": "Failed to register the Qwen cloned voice",
    "qwenCloneUnsupported": "Recording is not supported in this browser; upload an audio file instead.",
    "qwenCloneSpeedHint": "Cloned voices always synthesize at 1× speed.",
    "qwenCloneDeleteWarning": "The voice was removed locally, but provider deletion failed.",
    "qwenCloneNarrationUnavailable": "The assigned voice is unavailable. Narration will use another enabled voice instead.",
    "qwenCloneDiscussionUnavailable": "The assigned voice is unavailable. Discussion will use another enabled voice instead.",
    "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."
    },
    "skills": {
      "nav": "Skills",
      "title": "Ajustes de skills",
      "description": "Explora los skills instalados en tu cuenta, inspecciona uno y descárgalo como zip para compartirlo o respaldarlo.",
      "mySkills": "Mis skills",
      "builtinSkills": "Skills integrados",
      "emptyMySkills": "Aún no tienes skills propios: pide al agente en un chat que cree uno desde el historial.",
      "emptyBuiltinSkills": "No hay skills integrados disponibles.",
      "listFailed": "No se pudo cargar la lista de skills",
      "retry": "Reintentar",
      "badgeBuiltin": "Integrado",
      "badgeOwner": "Mi skill",
      "badgeConstraints": "Restricciones",
      "details": "Detalles",
      "download": "Descargar",
      "detailFailed": "No se pudieron cargar los detalles del skill",
      "contentLabel": "Contenido",
      "builtinDetailNote": "Este skill viene incluido con OpenMAIC. Descárgalo para importarlo a otro espacio de trabajo de agente.",
      "upload": "Subir",
      "uploading": "Subiendo…",
      "uploadFailed": "No se pudo subir el skill. Revisa el archivo e inténtalo de nuevo.",
      "delete": "Eliminar",
      "deleting": "Eliminando…",
      "deleteTitle": "¿Eliminar skill?",
      "deleteConfirm": "Esto elimina el skill de tu cuenta. Esta acción no se puede deshacer.",
      "deleteFailed": "No se pudo eliminar el skill. Inténtalo de nuevo."
    },
    "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"
  },
  "workspace": {
    "untitledCourse": "未命名课堂",
    "sceneCount": "{{count}} 页",
    "sceneCount_one": "{{count}} 页",
    "sceneCount_other": "{{count}} 页",
    "courseLinkHint": "在右侧打开《{{name}}》",
    "courseLinkMore": "还有 {{count}} 节课堂",
    "courseMention": {
      "title": "为这条消息引用课堂",
      "empty": "没有匹配的课堂",
      "alreadyNamed": "已引用",
      "remove": "移除{{name}}",
      "pillHint": "这条消息引用了「{{name}}」",
      "notAccepted": "El servidor no está disponible temporalmente. Vuelve a intentarlo en un momento.",
      "reference": "引用「{{name}}」",
      "capped": "仅显示前 {{count}} 个，继续输入以缩小范围"
    },
    "heroTitle": "What will you create today?",
    "heroSubtitle": "Share an idea and turn it into a learning journey people can step into",
    "newSession": "New chat",
    "sections": {
      "courses": "Courses",
      "sessions": "Chats"
    },
    "coursesEmpty": "No courses yet",
    "sessionsEmpty": "No chats yet",
    "loading": "Loading",
    "loadFailed": "Couldn't load",
    "retry": "Retry",
    "untitledSession": "Untitled chat",
    "pagePosition": "Page {{index}} of {{total}}",
    "exitPro": "Exit Pro",
    "navAria": "Workspace navigation",
    "homeAria": "Back to home",
    "currentSession": "Current chat",
    "startLearning": "Comenzar a aprender",
    "time": {
      "justNow": "Just now",
      "minutesAgo": "{{count}}m ago",
      "hoursAgo": "{{count}}h ago",
      "daysAgo": "{{count}}d ago"
    },
    "sessionStatus": {
      "connecting": "Connecting",
      "queued": "Queued",
      "running": "Running",
      "succeeded": "Ready",
      "failed": "Needs attention",
      "cancelled": "Stopped"
    },
    "backToWorkspace": "Back to workspace",
    "searchPlaceholder": "Filter by name",
    "searchAria": "Search {{section}}",
    "searchEmpty": "No matches",
    "showMore": "Show {{count}} more",
    "showLess": "Show less",
    "utilitiesAria": "Preferences and account",
    "resizeAria": "Drag to resize the sidebar",
    "chatPaneAria": "Chat panel",
    "classroomPaneAria": "Classroom",
    "collapseNav": "Collapse navigation",
    "expandNav": "Expand navigation",
    "expandNavInto": "Expand navigation · {{section}}",
    "collapseChat": "Collapse conversation",
    "expandChat": "Conversation",
    "collapseClassroom": "Collapse classroom",
    "expandClassroom": "Classroom",
    "readOnlyBadge": "Read-only",
    "noCourseTitle": "No course open",
    "noCourseHint": "Ábrelo desde un enlace de curso en la conversación, o elige uno de la lista de la izquierda; la conversación se queda donde está",
    "resizeChatAria": "Drag to resize the conversation pane",
    "firstPageLanding": "The first page is landing…",
    "autoSaving": "Guardando automáticamente…",
    "autoSaved": "Guardado",
    "collapsedTitle": "Both panes are collapsed",
    "collapsedHint": "Use the tabs on the left to bring the conversation or the classroom back",
    "moreUtilities": "More",
    "rowMore": "Más acciones para {{name}}",
    "folderDeleteHint": "Los cursos que contiene vuelven al nivel principal. No se elimina nada.",
    "dropToUnfile": "Suelta aquí para sacarlo de la carpeta",
    "renameInvalid": "El nombre debe tener entre 1 y 120 caracteres",
    "renameForbidden": "No creaste este curso, así que no puedes cambiarle el nombre",
    "renameGone": "Ese curso ya no existe",
    "renameSession": "Renombrar chat",
    "renameSessionAria": "Renombrar el chat «{{name}}»",
    "renameSessionFailed": "No se pudo renombrar, inténtalo de nuevo",
    "delete": "Eliminar",
    "confirmDelete": "Confirmar eliminación",
    "deleting": "Eliminando…",
    "deleteFailed": "No se pudo eliminar. Inténtalo de nuevo.",
    "tabsAria": "Chats and courses",
    "courseTabsAria": "Cursos abiertos",
    "courseTabClose": "Cerrar pestaña: {{name}}",
    "courseTabRunning": "Generando",
    "foldersUnavailable": "Las carpetas no están disponibles en esta versión"
  },
  "profile": {
    "title": "Perfil",
    "defaultNickname": "Aprendiz",
    "chooseAvatar": "Elegir avatar",
    "uploadAvatar": "Subir",
    "bioPlaceholder": "Cuéntanos de ti: el maestro IA personalizará las lecciones para ti...",
    "avatarHint": "Tu avatar aparecerá en las discusiones y chats del aula",
    "fileTooLarge": "La imagen es demasiado grande; elige una de menos de 5 MB",
    "invalidFileType": "Selecciona un archivo de imagen",
    "editTooltip": "Haz clic para editar tu perfil"
  },
  "media": {
    "imageCapability": "Generación de imágenes",
    "imageHint": "Genera imágenes en las diapositivas",
    "videoCapability": "Generación de video",
    "videoHint": "Genera videos en las diapositivas",
    "ttsCapability": "Texto a voz",
    "ttsHint": "El maestro IA habla en voz alta",
    "asrCapability": "Reconocimiento de voz",
    "asrHint": "Entrada de voz para la discusión",
    "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."
  },
  "proMode": {
    "attach": "Adjuntar material",
    "mentionCourse": "引用课堂",
    "loadSkill": "加载 skill",
    "skillMenuTitle": "选择课程设计技能",
    "skillsLoading": "正在加载 skill…",
    "noSkillsAvailable": "暂无可用 skill",
    "userSkillsGroup": "我的 Skill",
    "builtinSkillsGroup": "内置 Skill",
    "skillsLoadFailed": "Skill 加载失败，点击重试",
    "retrySkills": "重试",
    "noSkillMatch": "没有匹配“{{query}}”的 Skill",
    "badgeAria": "Modo Pro",
    "badgeEnter": "Modo Pro",
    "badgeExit": "Volver al modo clásico",
    "launchPlaceholder": "Describe la experiencia de aprendizaje que quieres crear",
    "launchSend": "Iniciar construcción"
  },
  "workbench": {
    "tool": {
      "label": {
        "extractMaterial": null,
        "waitMaterials": null
      },
      "error": {
        "materialExtraction": null
      }
    }
  }
}
