{
  "chat": {
    "title": "Asistente AI",
    "tabAssistant": "Chat",
    "tabGenerate": "Generar modelo 3D",
    "sessionsTooltip": "Sesiones de chat",
    "sessionsLocked": "Sesiones de chat (bloqueado mientras responde)",
    "placeholder": "Describe qué quieres crear o arreglar...",
    "send": "Enviar",
    "stop": "Detener",
    "newChat": "+ Nuevo chat",
    "discordLink": "¿Necesitas ayuda? Únete a nuestro Discord",
    "thinking": "ParallaxPro AI está pensando...",
    "sessionIdCopied": "¡Copiado!",
    "sessionIdTooltip": "Haz clic para copiar el ID de sesión",
    "changesApplied": "Cambios aplicados",
    "revertBefore": "Revertir a antes de",
    "revertHere": "Revertir a aquí",
    "templateBanner": "Se cargó una plantilla — tus archivos de proyecto anteriores fueron reemplazados.",
    "templateRestore": "Restaurar mi proyecto anterior",
    "createScratch": "Crear desde cero en vez de usar esta plantilla (20-30 min)",
    "createScratchRecommended": "Normalmente da mejores resultados que las plantillas",
    "fixerHint": "Esto puede tomar hasta 10 minutos — puedes dejar la página abierta, pero no la cierres.",
    "continue": "Continuar",
    "rawFilesTitle": "Diálogo sin procesar de la sesión",
    "rawFilesEmpty": "Aún no hay archivos en esta sesión.",
    "buildingPlan": "Plan de construcción",
    "todoPaused": "Pausado",
    "tabSoundEffects": "Efectos de sonido"
  },
  "feedback": {
    "titleCreate": "¡Gracias por probar el constructor!",
    "titleFix": "¡Gracias por usar el asistente AI!",
    "thankYou": "Tu opinión es increíblemente valiosa y nos ayuda directamente a mejorar el producto para todos. ¡Apreciamos mucho que te tomes un momento para compartir tu experiencia!",
    "promptLabelCreate": "Le pediste al constructor:",
    "promptLabelFix": "Le pediste al agente:",
    "rateLabel": "¿Funcionó?",
    "worked": "Funcionó",
    "notWorked": "No funcionó",
    "notesLabel": "¿Algo roto o que se pueda mejorar?",
    "notesPlaceholder": "¿Qué funcionó? ¿Qué no? ¿Qué cambiarías?",
    "restoreNote": "¿No quieres conservar esta construcción? Puedes restaurar tu proyecto a como estaba antes.",
    "restoreButton": "Restaurar proyecto a antes de esta construcción",
    "restoring": "Restaurando…",
    "dismiss": "Cerrar",
    "dismissTooltip": "Cerrar este formulario de feedback. No volverá a aparecer para este cambio.",
    "submit": "Enviar feedback",
    "submitting": "Enviando…",
    "noPrompt": "(no hay registro del prompt)"
  },
  "signup": {
    "createGame": "Para crear un juego desde cero en vez de usar esta plantilla, necesito que te registres primero.",
    "fixGame": "Para ejecutar una corrección en tu juego, necesito que te registres primero.",
    "budget": "Agotaste tu presupuesto anónimo gratuito — regístrate para continuar.",
    "default": "Necesito que te registres primero.",
    "button": "Registrarse gratis"
  },
  "toolbar": {
    "backToProjects": "Volver a Proyectos",
    "untitled": "Proyecto sin título",
    "renameTooltip": "Haz clic para renombrar",
    "save": "Guardar (Ctrl+S)",
    "undo": "Deshacer (Ctrl+Z)",
    "redo": "Rehacer (Ctrl+Y / Ctrl+Shift+Z)",
    "translate": "Mover (1)",
    "rotate": "Rotar (2)",
    "scale": "Escalar (3)",
    "cameraMode": "Alternar Orbit / Fly (4)",
    "gizmoSpace": "Alternar Global / Local (5)",
    "play": "Jugar",
    "stop": "Detener",
    "loading": "Cargando...",
    "publish": "Publicar",
    "feedback": "Feedback",
    "settings": "Configuración",
    "multiplayer": "Multijugador",
    "multiplayerTooltip": "Enlace de sala multijugador",
    "shareLink": "Comparte este enlace para invitar jugadores:",
    "copyLink": "Copiar enlace",
    "copied": "¡Copiado!",
    "previewClient": "+ Client",
    "previewClientTooltip": "Abrir otra ventana de este proyecto para probar multijugador localmente",
    "teamChat": "Chat de equipo",
    "teamChatPlaceholder": "Escribe un mensaje...",
    "unsavedConfirm": "Tienes cambios sin guardar. ¿Salir sin guardar?",
    "moveLabel": "Mover",
    "rotateLabel": "Rotar",
    "scaleLabel": "Escalar",
    "orbitLabel": "Orbit",
    "flyLabel": "Fly",
    "globalLabel": "Global",
    "localLabel": "Local",
    "flyMode": "Modo Fly (4)",
    "orbitMode": "Modo Orbit (4)",
    "localSpace": "Espacio Local (5)",
    "globalSpace": "Espacio Global (5)",
    "playCtrlP": "Jugar (Ctrl+P)",
    "loadingAssets": "Cargando assets",
    "projectSaved": "Proyecto guardado",
    "projectRenamed": "Proyecto renombrado",
    "renameFailed": "Error al renombrar",
    "renameProject": "Renombrar proyecto",
    "projectNamePlaceholder": "Nombre del proyecto",
    "playerConnected": "{count} jugador conectado",
    "playersConnected": "{count} jugadores conectados",
    "joined": "se unió",
    "left": "salió",
    "you": "Tú",
    "startedMultiplayer": "inició una sesión multijugador"
  },
  "settings": {
    "chatAgent": "Agente de chat",
    "editingAgent": "Agente de edición",
    "graphicsQuality": "Calidad gráfica",
    "cloudSync": "Sincronización en la nube",
    "cloudSignIn": "Iniciar sesión",
    "cloudSigningIn": "Iniciando sesión…",
    "cloudSynced": "Este proyecto se sincroniza con parallaxpro.ai en cada guardado.",
    "cloudHint": "Sincroniza este proyecto con parallaxpro.ai para continuar donde lo dejaste desde cualquier computadora.",
    "cloudPromote": "Promover a la nube",
    "cloudPromoting": "Sincronizando…",
    "cloudSignedOutHint": "Inicia sesión en parallaxpro.ai para habilitar la sincronización en la nube para este proyecto.",
    "cloudSignedOutCloudHint": "Este es un proyecto en la nube pero cerraste sesión — los guardados no llegan a parallaxpro.ai. Inicia sesión para reanudar la sincronización.",
    "cloudSyncedCheck": "✓ Este proyecto se sincroniza con parallaxpro.ai en cada guardado.",
    "cloudProjectSynced": "Proyecto sincronizado con parallaxpro.ai.",
    "signedInToast": "Sesión iniciada en parallaxpro.ai.",
    "cancel": "Cancelar",
    "save": "Guardar",
    "chatAgentHint": "Recomendado: LLM API — más rápido (<1s vs 10-20s por mensaje, porque el CLI se reinicia en cada turno), más económico y produce resultados más limpios. Los agentes CLI son una conveniencia cuando no tienes una clave API, pero se ejecutan en modo agente en vez de modo chat y pueden funcionar muy mal — ocasionalmente emitiendo llamadas a herramientas en vez de respuestas de chat.",
    "editingAgentHint": "Agente que se inicia cuando el AI decide editar los archivos de tu proyecto.",
    "qualityLow": "Baja",
    "qualityMedium": "Media",
    "qualityHigh": "Alta",
    "qualityLowHint": "Renderizado básico, sin sombras",
    "qualityMediumHint": "Sombras, FXAA anti-aliasing, HBAO",
    "qualityHighHint": "Sombras, MSAA anti-aliasing, HBAO, reflejos de espacio de pantalla, bloom"
  },
  "editor": {
    "systemUpdated": "Sistema actualizado — intenta refrescar",
    "connectionLost": "Conexión perdida — edición deshabilitada hasta la reconexión",
    "reconnecting": "Conexión perdida. Reconectando...",
    "reconnected": "Reconectado",
    "reconnectFailed": "No se pudo reconectar. Por favor verifica tu conexión y refresca la página.",
    "disconnectOverlay": "Edición deshabilitada mientras se reconecta...",
    "disconnectRefresh": "Conexión perdida. Por favor refresca la página para continuar editando."
  },
  "projectList": {
    "newProject": "+ Nuevo Proyecto",
    "exit": "Salir",
    "backToLanding": "Volver a la página principal",
    "searchPlaceholder": "Buscar proyectos...",
    "tabAll": "Todos",
    "tabLocal": "Proyectos locales",
    "tabCloud": "Proyectos en la nube",
    "emptyDefault": "Aún no hay proyectos. ¡Crea tu primer juego!",
    "emptySearch": "Ningún proyecto coincide con tu búsqueda.",
    "emptyCloud": "Aún no hay proyectos en la nube. Publicar o promover un proyecto lo pondrá aquí.",
    "cloudSignIn": "Inicia sesión en parallaxpro.ai para acceder a tus proyectos en la nube.",
    "cloudSignInButton": "Iniciar sesión",
    "selectAll": "Seleccionar todo",
    "deleteSelected": "Eliminar seleccionados",
    "prev": "‹ Anterior",
    "next": "Siguiente ›",
    "draft": "Borrador",
    "published": "PUBLICADO",
    "deprecated": "OBSOLETO",
    "buildFailed": "CONSTRUCCIÓN FALLIDA",
    "justBuilt": "✓ RECIÉN CONSTRUIDO",
    "stopBuild": "Detener",
    "stopTooltip": "Detener esta construcción (el proceso se detendrá y el proyecto se desbloqueará)",
    "anonBanner": "Estás navegando anónimamente — tus proyectos solo existen en este navegador. Regístrate (gratis) para guardarlos en múltiples dispositivos y desbloquear más funciones.",
    "anonSignup": "Registrarse",
    "anonLogin": "Iniciar sesión",
    "restartNotice": "Podemos reiniciar los servidores en cualquier momento mientras iteramos y resolvemos problemas — ¡disculpa las molestias! Tus proyectos siempre se guardan, pero una construcción AI larga podría interrumpirse y tendrás que reintentarlo.",
    "newProjectModal": "Nuevo Proyecto",
    "generateFromPrompt": "Generar desde prompt",
    "generateHint": "Describe tu idea de juego y el AI la construirá por ti.",
    "generatePlaceholder": "Ej. Un platformer 3D con doble salto y recolección de monedas...",
    "buildFromTemplate": "Crear desde plantilla",
    "templateHint": "Comienza con una plantilla de juego lista que puedes personalizar.",
    "templateSearch": "Buscar plantillas...",
    "login": "Iniciar sesión",
    "loginTooltip": "Inicia sesión en parallaxpro.ai para poder publicar este proyecto",
    "logout": "Cerrar sesión",
    "generate": "Generar",
    "or": "o",
    "noTemplatesMatch": "Ninguna plantilla coincide con tu búsqueda",
    "loadingTemplates": "Cargando...",
    "statusAll": "Todos",
    "statusPublished": "Publicados",
    "statusDraft": "Borradores",
    "untitled": "Sin título",
    "moreActions": "Más acciones",
    "open": "Abrir",
    "rename": "Renombrar",
    "duplicate": "Duplicar",
    "changeThumbnail": "Cambiar miniatura",
    "setThumbnail": "Establecer miniatura",
    "removeThumbnail": "Eliminar miniatura",
    "viewPublishedGame": "Ver juego publicado",
    "updatePublish": "Publicar nueva versión",
    "unpublish": "Despublicar",
    "delete": "Eliminar",
    "clickToOpen": "Haz clic en la tarjeta para abrir",
    "renameProject": "Renombrar proyecto",
    "newNamePlaceholder": "Nuevo nombre",
    "deleteProject": "Eliminar proyecto",
    "deleteCloudProject": "Eliminar proyecto en la nube",
    "deleteLocalCopy": "Eliminar copia local",
    "stopBuildConfirmTitle": "¿Detener esta construcción?",
    "stopBuildConfirmMsg": "El proceso se detendrá y todo el progreso de este intento se descartará. El proyecto se desbloqueará — puedes empezar de nuevo con un prompt diferente.",
    "unpublishGame": "Despublicar juego",
    "cloudCopyDeleted": "Copia en la nube eliminada",
    "keepAsLocalOnly": "Mantener solo como local",
    "deleteLocalToo": "Eliminar local también"
  },
  "share": {
    "title": "Compartir proyecto",
    "addPeople": "Agregar personas",
    "emailPlaceholder": "Email o nombre de usuario",
    "editor": "Editor",
    "viewer": "Visor",
    "share": "Compartir",
    "peopleWithAccess": "Personas con acceso",
    "owner": "Propietario",
    "removeAccess": "Quitar acceso",
    "notSharedYet": "Aún no se ha compartido con nadie.",
    "couldNotLoad": "No se pudieron cargar los datos de acceso.",
    "enterEmailOrUsername": "Ingresa un email o nombre de usuario.",
    "invitationSent": "Invitación enviada a {email}",
    "sharedWith": "Compartido con {email}",
    "done": "Listo"
  },
  "feedbackModal": {
    "title": "Enviar feedback",
    "whatFeedback": "¿Qué feedback tienes?",
    "placeholder": "Describe el problema, sugerencia o feedback...",
    "screenshotsLabel": "Capturas de pantalla (opcional, máx. 5 imágenes, 5MB cada una)",
    "addImage": "+ Agregar imagen",
    "exceedsLimit": "{name} excede el límite de 5MB.",
    "enterFeedback": "Por favor ingresa tu feedback.",
    "sendFailed": "Error al enviar feedback.",
    "sent": "¡Feedback enviado! Gracias.",
    "cancel": "Cancelar",
    "send": "Enviar"
  },
  "assets": {
    "title": "Assets & Máquinas de Estado Finito & Rendimiento",
    "projectFiles": "Archivos del proyecto",
    "assetLibrary": "Biblioteca de assets",
    "fsm": "FSM",
    "performance": "Rendimiento",
    "scenes": "Escenas",
    "untitledScene": "Escena sin título",
    "usedAssets": "Assets usados",
    "searchAssets": "Buscar assets...",
    "allTypes": "Todos los tipos",
    "assetLibraryBreadcrumb": "Biblioteca de assets",
    "noItemsFound": "No se encontraron elementos",
    "noAssetsFound": "No se encontraron assets",
    "prevPage": "‹ Anterior",
    "nextPage": "Siguiente ›"
  },
  "hierarchy": {
    "title": "Jerarquía",
    "addEntity": "Agregar entidad",
    "searchEntities": "Buscar entidades...",
    "noSceneLoaded": "No hay escena cargada",
    "newScene": "Nueva escena",
    "emptyEntity": "Entidad vacía",
    "rename": "Renombrar",
    "deleteScene": "Eliminar escena",
    "createChild": "Crear hijo",
    "deleteLocked": "Eliminar (bloqueado)",
    "show": "Mostrar",
    "hide": "Ocultar"
  },
  "properties": {
    "title": "Propiedades",
    "noSelection": "Ninguna entidad seleccionada",
    "entitiesSelected": "{count} entidades seleccionadas",
    "active": "Activo",
    "enabled": "Habilitado",
    "addComponent": "Agregar componente",
    "addComponentToAll": "Agregar componente a todos",
    "removeComponent": "Eliminar componente",
    "removeFromEntities": "Eliminar de {count} entidades",
    "reset": "Restablecer",
    "copyValues": "Copiar valores",
    "pasteValues": "Pegar valores",
    "addTag": "Agregar etiqueta",
    "enterTagName": "Ingresa el nombre de la etiqueta:",
    "scriptProperties": "Propiedades",
    "viewFSMs": "Ver FSMs",
    "viewFSMsTooltip": "Cambiar a la pestaña FSM y mostrar las máquinas de estado de esta entidad",
    "sculptTerrain": "Esculpir terreno",
    "stopSculpting": "Dejar de esculpir",
    "brush": "Pincel",
    "raise": "Elevar",
    "lower": "Bajar",
    "smooth": "Suavizar",
    "flatten": "Aplanar",
    "radius": "Radio",
    "strength": "Fuerza"
  },
  "publish": {
    "title": "Publicar juego",
    "manage": "Administrar juego publicado",
    "gameName": "Nombre del juego",
    "gameNamePlaceholder": "Mi juego genial",
    "urlSlug": "URL Slug",
    "urlSlugPlaceholder": "my-awesome-game",
    "version": "Versión",
    "changelogLabel": "Registro de cambios (opcional)",
    "changelogPlaceholder": "Qué hay en esta versión...",
    "visibility": "Visibilidad",
    "visibilityPublic": "Público",
    "visibilityUnlisted": "No listado",
    "thumbnail": "Miniatura (opcional)",
    "noImage": "Sin imagen",
    "upload": "Subir",
    "change": "Cambiar",
    "cancel": "Cancelar",
    "publish": "Publicar",
    "gameNameRequired": "El nombre del juego es obligatorio.",
    "slugInvalid": "El slug debe tener 3-64 caracteres, minúsculas y guiones.",
    "versionInvalid": "Ingresa una versión válida (ej. 1.0.0).",
    "publishNewVersion": "Publicar nueva versión",
    "changelogOptional": "Registro de cambios (opcional)",
    "versionRequired": "Ingresa una versión válida.",
    "setLive": "Activar",
    "checkout": "Checkout",
    "revertConfirm": "¿Revertir proyecto a v{version}? Tu estado actual del editor será reemplazado.",
    "unpublishGame": "Despublicar juego",
    "unpublishConfirm": "¿Despublicar este juego? Ya no será accesible para los jugadores.",
    "successTitle": "¡Publicado!",
    "successMessage": "¡La versión {version} está activa!",
    "done": "Listo",
    "close": "Cerrar",
    "mismatchTitle": "Versión del motor no soportada",
    "gotIt": "Entendido",
    "saving": "Guardando…",
    "saved": "Guardado"
  },
  "profiler": {
    "title": "Rendimiento",
    "engineNotRunning": "Motor no ejecutándose",
    "copyStats": "Copiar estadísticas",
    "copied": "¡Copiado!",
    "copyFailed": "Error al copiar",
    "smoothness": "Fluidez (últimos 2 segundos)",
    "smoothnessHint": "Más bajo y plano es mejor. La línea roja marca 60 fps fluidos.",
    "frameBudget": "A dónde va el tiempo de tu frame",
    "frameBudgetHint": "Vista agrupada de en qué gasta tiempo el motor cada frame.",
    "onScreen": "Lo que hay en pantalla",
    "drawCalls": "Draw calls",
    "triangles": "Triángulos",
    "entities": "Entidades",
    "showDetails": "Mostrar detalles",
    "cpuPhases": "Fases CPU (por tickOneFrame)",
    "cpuPhasesHint": "Cada fase medida por separado — la barra muestra la proporción del tiempo total del tick.",
    "renderPasses": "Pasadas de renderizado (CPU submit, ms)",
    "renderPassesHint": "Costo aproximado por pasada — tiempo CPU armando y enviando comandos. No es tiempo GPU real.",
    "renderer": "Renderer (último frame)",
    "meshesDrawn": "Meshes dibujados",
    "scripts": "Scripts",
    "meshesTotal": "Meshes totales",
    "scriptCost": "Costo por script (este frame)",
    "scriptCostHint": "Suma de onUpdate / onFixedUpdate / onLateUpdate en todas las entidades que comparten el mismo script.",
    "jsHeap": "JS heap (MB)",
    "jsHeapHint": "Solo Chrome — útil para detectar fugas de memoria.",
    "noDataYet": "Sin datos aún.",
    "noRenderPasses": "No se midieron pasadas de renderizado.",
    "noScriptsActive": "No hay scripts activos (presiona Play para ver tiempos).",
    "labelSmooth": "Fluido",
    "labelOK": "OK",
    "labelChoppy": "Irregular",
    "labelLaggy": "Con lag",
    "scripts_budget": "Scripts",
    "physics_budget": "Física",
    "animation_budget": "Animación",
    "rendering_budget": "Renderizado",
    "other_budget": "Otro"
  },
  "modal": {
    "cancel": "Cancelar",
    "ok": "OK",
    "confirm": "Confirmar"
  },
  "modelGen": {
    "health": {
      "checking": "comprobando…",
      "unavailable": "Servicio de GPU no disponible",
      "offline": "Sin conexión — no hay workers disponibles",
      "onlineSingular": "En línea · {count} worker disponible",
      "onlinePlural": "En línea · {count} workers disponibles",
      "queuedSuffix": " · {count} en cola"
    },
    "notice": {
      "searchFirstBold": "Busca primero en la Comunidad.",
      "searchFirstBody": "Explora los modelos 3D existentes en la biblioteca de la comunidad antes de generar — es instantáneo y ahorra tiempo de GPU.",
      "publicBold": "Podemos hacer públicas tus generaciones.",
      "publicBody": "Una vez revisado y recomendado, tu prompt y el modelo resultante son visibles para otros usuarios. No incluyas información personal ni contenido con derechos de autor."
    },
    "mode": {
      "fromText": "Desde texto",
      "fromImage": "Desde imagen"
    },
    "text": {
      "label": "Describe un modelo 3D:",
      "placeholder": "p. ej. \"barril de madera\", \"árbol low-poly\", \"espada de anime\"",
      "previewBtn": "Previsualizar imagen",
      "needPrompt": "Introduce un prompt primero.",
      "tooShort": "El prompt debe tener al menos {min} caracteres.",
      "generating": "Generando vista previa…",
      "previewFailed": "vista previa fallida"
    },
    "image": {
      "label": "Sube una imagen del sujeto:",
      "dropPrimary": "Haz clic para elegir o arrastra una imagen",
      "dropHint": "PNG, JPG o WEBP — hasta 8 MB",
      "tooLarge": "La imagen debe pesar menos de 8 MB.",
      "uploading": "Subiendo…",
      "uploadFailed": "subida fallida",
      "labelInputLabel": "Etiqueta esta imagen (para poder buscarla):",
      "labelInputPlaceholder": "p. ej. \"manzana roja\", \"casco medieval\""
    },
    "preview": {
      "labelText": "Vista previa — confirma para generar el modelo 3D a partir de esta imagen:",
      "labelImage": "Vista previa — confirma para generar:",
      "refinePrompt": "Ajustar prompt",
      "chooseDifferent": "Elegir otro archivo",
      "confirm": "Confirmar y generar 3D"
    },
    "submit": {
      "submitting": "Enviando…",
      "submitFailed": "envío fallido",
      "cacheHit": "✓ Se encontró un modelo compartido coincidente — añadido a la biblioteca."
    },
    "active": {
      "header": "En curso",
      "uploadedImage": "(imagen subida)",
      "stageQueued": "en cola",
      "stageStarting": "iniciando",
      "stageFetching": "obteniendo imagen",
      "stageGenerating": "generando",
      "stageUploading": "subiendo",
      "stageOrienting": "orientando",
      "failedLabel": "Falló",
      "failedUnknown": "error desconocido",
      "dismissFailed": "Descartar"
    },
    "library": {
      "scopeMine": "Mis generaciones",
      "scopeCommunity": "Comunidad",
      "refresh": "Actualizar biblioteca",
      "search": "Buscar generaciones…",
      "empty": "Aún no hay generaciones.",
      "emptyMatches": "Sin coincidencias.",
      "emptyCommunity": "Aún no hay generaciones de la comunidad.",
      "notAvailable": "La generación de modelos 3D no está disponible en este backend."
    },
    "errorPrefix": "Error: {message}"
  },
  "soundFx": {
    "header": "Efectos de sonido",
    "usageTooltip": "Subidas diarias. Se reinicia a medianoche UTC.",
    "daily": "Hoy: {today}/{limit}",
    "notice": {
      "privateBold": "No listado, no privado.",
      "privateBody": "Solo tú puedes usar estos clips en el chat o en tus juegos — pero los archivos de audio en sí no están protegidos por autenticación.",
      "extract": "Cualquier persona con la URL (un amigo con quien la compartiste, alguien que obtenga el enlace o cualquiera que juegue un juego publicado tuyo que use el clip) puede descargar y reutilizar el audio.",
      "tokenHint": "Las URL usan tokens aleatorios largos, así que son difíciles de adivinar, pero trata todo lo que subas aquí como efectivamente público — no subas audio que no quieras que se extraiga."
    },
    "mode": {
      "upload": "Subir",
      "record": "Grabar"
    },
    "upload": {
      "dropPrimary": "Arrastra un archivo de audio o haz clic para elegir",
      "dropHint": "≤10s · wav, mp3, ogg, flac · máx 2 MB",
      "reading": "Leyendo archivo…",
      "parseFailed": "No se pudo leer el archivo de audio. Prueba con otro formato.",
      "tooLarge": "Archivo demasiado grande ({mb} MB > 2 MB).",
      "tooLong": "Clip demasiado largo ({s}s > {max}s)."
    },
    "record": {
      "btnStart": "Grabar",
      "btnStop": "Detener",
      "hint": "La grabación se detiene automáticamente a los 10s. Haz clic de nuevo para detenerla antes.",
      "micDenied": "Acceso al micrófono denegado: {reason}",
      "recorderUnavailable": "Grabador no disponible: {reason}",
      "encoding": "Codificando…",
      "encodeFailed": "Falló la codificación: {reason}",
      "noAudio": "No se capturó audio."
    },
    "staged": {
      "headerUpload": "Clip seleccionado",
      "headerRecording": "Clip grabado",
      "labelPlaceholder": "Etiqueta (p. ej. \"explosión\", \"salto\", \"ay\")",
      "cancel": "Cancelar",
      "save": "Guardar",
      "needLabel": "Por favor introduce una etiqueta.",
      "labelTooLong": "Etiqueta demasiado larga (máx. {max})."
    },
    "library": {
      "header": "Mis clips",
      "refresh": "Actualizar",
      "empty": "Sube o graba para añadir tu primer clip.",
      "loading": "Cargando…",
      "couldNotLoad": "No se pudo cargar: {reason}",
      "deleteConfirm": "¿Eliminar \"{label}\"?",
      "deleteFailed": "Falló al eliminar: {reason}",
      "addToChatTooltip": "Añadir este clip como pista para el AI Assistant",
      "deleteTooltip": "Eliminar"
    },
    "save": {
      "uploading": "Subiendo…",
      "saved": "Guardado.",
      "failed": "Falló al guardar: {reason}"
    }
  }
}
