{
  "common": {
    "next": "Siguiente",
    "prev": "Anterior",
    "finish": "Finalizar",
    "cancel": "Cancelar",
    "save": "Guardar",
    "loading": "Cargando...",
    "confirm": "Confirmar",
    "success": "Éxito",
    "error": "Error",
    "delete": "Eliminar",
    "edit": "Editar",
    "add": "Añadir",
    "search": "Buscar",
    "clear": "Borrar",
    "close": "Cerrar",
    "yes": "Sí",
    "no": "No",
    "submit": "Enviar",
    "reset": "Reiniciar",
    "import": "Importar",
    "export": "Exportar",
    "create": "Crear",
    "update": "Actualizar",
    "refresh": "Actualizar",
    "view": "Ver",
    "name": "Nombre",
    "status": "Estado",
    "operation": "Operación",
    "description": "Descripción",
    "total": "Total {{count}} elementos",
    "noData": "Sin datos",
    "pleaseSelect": "Por favor seleccione",
    "pleaseEnter": "Por favor ingrese",
    "readOnly": "Modo de solo lectura",
    "none": "Ninguno",
    "more": "Más"
  },
  "oobe": {
    "title": "Bienvenido a SecScore",
    "subtitle": "Experto en gestión de puntos educativos",
    "step": "Paso {{current}}/{{total}}",
    "skip": "Saltar",
    "steps": {
      "entry": {
        "title": "Comenzar",
        "description": "Elija el procedimiento a seguir",
        "enterOobe": "Entrar en el OOBE",
        "connectPostgresAutoSync": "Conectar PostgreSQL con sincronización automática",
        "skipDirect": "Saltar OOBE y entrar directamente"
      },
      "postgresql": {
        "title": "Conectar PostgreSQL",
        "description": "Ingrese la cadena de conexión PostgreSQL. El sistema se conectará y sincronizará automáticamente.",
        "connectionPlaceholder": "postgresql://user:password@host:port/database?sslmode=require",
        "autoSyncAndEnter": "Conectar y sincronizar automáticamente"
      },
      "language": {
        "title": "Elegir idioma",
        "description": "Por favor elija su idioma preferido"
      },
      "theme": {
        "title": "Configurar tema",
        "description": "Elija la apariencia de la interfaz",
        "mode": "Modo",
        "lightMode": "Claro",
        "darkMode": "Oscuro",
        "primaryColor": "Color principal",
        "backgroundGradient": "Degradado de fondo"
      },
      "password": {
        "title": "Configurar contraseña",
        "description": "Configure una contraseña para proteger sus datos (opcional)",
        "adminPassword": "Contraseña de administrador",
        "adminPasswordHint": "Acceso a todas las funciones, 6 dígitos",
        "pointsPassword": "Contraseña de puntos",
        "pointsPasswordHint": "Operaciones de puntos únicamente, 6 dígitos",
        "passwordPlaceholder": "Ingrese 6 dígitos",
        "hint": "Dejar vacío para omitir, configurar más tarde en configuraciones"
      },
      "students": {
        "title": "Importar lista de estudiantes",
        "description": "Agregue una lista de estudiantes para comenzar la gestión de puntos",
        "import": "Importar lista",
        "manual": "Añadir manualmente",
        "importHint": "Soporta archivos Excel (.xlsx) o JSON",
        "manualHint": "Pegue varias líneas, un nombre de estudiante por línea",
        "dragDrop": "Arrastre y suelte archivos aquí o haga clic para seleccionar",
        "supportedFormats": "Formatos soportados: .xlsx, .json",
        "studentName": "Nombre del estudiante",
        "addStudent": "Añadir estudiante",
        "noStudents": "Sin estudiantes por el momento, por favor añada o importe",
        "studentCount": "{{count}} estudiantes añadidos",
        "studentExists": "El estudiante ya existe",
        "importSuccess": "{{count}} estudiantes importados con éxito",
        "noNewStudents": "Sin nuevos estudiantes para importar",
        "parseFailed": "Fallo al analizar el archivo",
        "unsupportedFormat": "Formato de archivo no soportado"
      },
      "reasons": {
        "title": "Configurar razones",
        "description": "Agregue las razones comunes de modificación de puntos",
        "addReason": "Añadir razón",
        "reasonName": "Nombre de la razón",
        "points": "Puntos",
        "positive": "Añadir puntos",
        "negative": "Retirar puntos",
        "noReasons": "Sin razones por el momento, por favor agregue razones comunes",
        "reasonCount": "{{count}} razones añadidas",
        "reasonExists": "La razón ya existe"
      },
      "start": {
        "title": "Listo para usar",
        "description": "Todo está listo. ¡Comencemos a usar SecScore!",
        "features": {
          "score": "Gestione fácilmente los puntos de los estudiantes",
          "history": "Historial completo de modificaciones de puntos",
          "settlement": "Soporta liquidación y archivado"
        },
        "startButton": "Comenzar"
      }
    }
  },
  "settings": {
    "title": "Configuraciones del sistema",
    "tabs": {
      "appearance": "Apariencia",
      "security": "Seguridad",
      "account": "Cuenta",
      "database": "Sincronización en la nube",
      "dataManagement": "Gestión de datos",
      "urlProtocol": "Protocolo URL",
      "about": "Acerca de"
    },
    "language": "Idioma",
    "languageHint": "Elegir el idioma de visualización de la interfaz",
    "fontFamily": "Fuente global",
    "fontFamilyHint": "Elegir la fuente de la interfaz (requiere actualización)",
    "theme": "Tema",
    "password": "Configurar contraseña",
    "themeMode": "Modo",
    "lightMode": "Claro",
    "darkMode": "Oscuro",
    "primaryColor": "Color principal",
    "backgroundGradient": "Degradado de fondo",
    "searchKeyboard": {
      "title": "Teclado de búsqueda",
      "hint": "Elegir la disposición del teclado bajo el campo de búsqueda",
      "disableToggle": "Desactivar teclado de búsqueda",
      "disableHint": "El teclado ya no se mostrará bajo el campo de búsqueda",
      "options": {
        "qwerty26": "26 teclas (QWERTY)",
        "t9": "9 teclas (T9)"
      }
    },
    "interfaceZoom": "Zoom de la interfaz",
    "zoomOptions": {
      "small70": "Pequeño (70%)",
      "default100": "Predeterminado (100%)",
      "large150": "Grande (150%)"
    },
    "general": {
      "saved": "Guardado",
      "saveFailed": "Fallo al guardar"
    },
    "zoomHint": "Ajustar el tamaño global de la interfaz",
    "mobile": {
      "navigationTitle": "Entradas de página",
      "bottomNav": {
        "label": "Funciones de navegación inferior",
        "hint": "Elegir las funciones a mostrar en la barra inferior del móvil. La barra muestra un máximo de 4 elementos, los demás van en «Más»."
      },
      "dragHint": "Arrastre para reorganizar. Los primeros 4 elementos aparecen en la barra inferior, los demás en «Más».",
      "dropHere": "Suelte aquí",
      "bottomSection": "Barra inferior (máx. 4)",
      "moreSection": "Más",
      "moveToMore": "Mover a Más",
      "moveToBottom": "Mover abajo"
    },
    "zoomUpdated": "Zoom de la interfaz actualizado",
    "updateFailed": "Fallo al actualizar",
    "security": {
      "title": "Sistema de protección por contraseña",
      "adminPassword": "Contraseña de administrador",
      "pointsPassword": "Contraseña de puntos",
      "recoveryString": "Frase de recuperación",
      "set": "Configurado",
      "notSet": "No configurado",
      "generated": "Generado",
      "notGenerated": "No generado",
      "enterPassword": "Ingrese 6 dígitos (dejar vacío para no modificar)",
      "adminPasswordPlaceholder": "Ingrese 6 dígitos para la contraseña de administrador (dejar vacío para no modificar)",
      "pointsPasswordPlaceholder": "Ingrese 6 dígitos para la contraseña de puntos (dejar vacío para no modificar)",
      "recoveryPlaceholder": "Ingrese la frase de recuperación",
      "savePassword": "Guardar contraseña",
      "savePasswords": "Guardar contraseñas",
      "generateRecovery": "Generar frase de recuperación",
      "clearAllPasswords": "Borrar todas las contraseñas",
      "recoveryReset": "Reiniciar frase de recuperación",
      "enterRecovery": "Ingrese la frase de recuperación",
      "resetPassword": "Reiniciar contraseña",
      "resetHint": "El reinicio borrará las contraseñas de administrador y puntos, y generará una nueva frase de recuperación.",
      "confirmClear": "¿Confirmar el borrado de todas las contraseñas?",
      "clearHint": "Después del borrado, la protección se desactivará (sin contraseña = permiso de administrador por defecto).",
      "saved": "Contraseña actualizada",
      "saveFailed": "Fallo al actualizar",
      "generateFailed": "Fallo al generar",
      "resetFailed": "Fallo al reiniciar",
      "cleared": "Borrado",
      "clearFailed": "Fallo al borrar",
      "passwordClearedNewRecovery": "Contraseña borrada, nueva frase de recuperación",
      "newRecoveryString": "Nueva frase de recuperación (por favor guárdela)"
    },
    "account": {
      "title": "Cuenta SECTL Auth",
      "notLoggedIn": "No conectado a SECTL Auth",
      "oauthHint": "Conéctese con su cuenta SECTL Auth para disfrutar de la autenticación unificada y la desconexión remota",
      "loginButton": "Conectar con SECTL Auth",
      "loginSuccess": "Conexión exitosa",
      "logout": "Desconectar",
      "userId": "ID de usuario",
      "permission": "Nivel de permiso"
    },
    "database": {
      "title": "Conexión a base de datos",
      "currentStatus": "Estado actual de la base de datos",
      "sqliteLocal": "Base de datos SQLite local",
      "postgresqlRemote": "Base de datos PostgreSQL remota",
      "connected": "Conectado",
      "disconnected": "Desconectado",
      "postgresqlConnection": "Conexión PostgreSQL remota",
      "connectionHint": "Ingrese la cadena de conexión PostgreSQL para conectarse a una base de datos remota, soporta sincronización multiplataforma.",
      "testConnection": "Probar conexión",
      "switchToPostgreSQL": "Cambiar a PostgreSQL",
      "switchToSQLite": "Cambiar a SQLite local",
      "connectionTestSuccess": "Prueba de conexión exitosa",
      "connectionTestFailed": "Fallo en la prueba de conexión",
      "switchedTo": "Cambiado a la base de datos {{type}}",
      "switchedToSQLite": "Cambiado a la base de datos SQLite local",
      "switchFailed": "Fallo al cambiar",
      "syncDescription": "Instrucciones de sincronización multiplataforma",
      "syncPoint1": "El uso de una base de datos PostgreSQL remota permite la sincronización de datos multiplataforma.",
      "syncPoint2": "Mecanismo de cola de operaciones integrado para garantizar la coherencia de los datos durante las operaciones simultáneas.",
      "syncPoint3": "Es necesario reiniciar la aplicación después del cambio de base de datos.",
      "syncPoint4": "Servicios de base de datos en la nube recomendados: Neon, Supabase, AWS RDS, etc.",
      "enterConnectionString": "Por favor ingrese la cadena de conexión PostgreSQL",
      "connectionExample": "Ejemplo: postgresql://xxxxxx_xxxxx:xxxxxxxx@xx-xxx.xxx.neon.xxxx/xxxxdxx?sslmode=require",
      "uploadButton": "Cargar datos locales al servidor remoto",
      "uploadHint": "Después de conectarse a la base de datos remota, cargue y fusione el historial SQLite local al servidor remoto.",
      "uploadNeedRemote": "Por favor primero cambie y conecte a la base de datos PostgreSQL remota",
      "noNeedUpload": "Los datos locales y remotos ya son coherentes",
      "uploadConfirmTitle": "¿Confirmar la carga de datos locales al servidor remoto?",
      "uploadConfirmContent": "La sincronización priorizará los datos locales. Detectado: local-solo {{localOnly}}, remoto-solo {{remoteOnly}}, conflictos {{conflicts}}.",
      "uploadSuccess": "Datos locales cargados al servidor remoto",
      "uploadFailed": "Fallo al cargar"
    },
    "cloudSync": {
      "title": "Sincronización en la nube",
      "selectMethod": "Seleccionar método de sincronización",
      "selectMethodHint": "Elija un método de sincronización de datos. Los dos métodos son mutuamente excluyentes.",
      "postgresql": "PostgreSQL auto-alojado",
      "postgresqlDesc": "Conéctese a su propia base de datos PostgreSQL para control total. Ideal para usuarios con servidor propio.",
      "sectlCloud": "SECTL Cloud Sync",
      "sectlCloudDesc": "Sincronice datos a través de la plataforma cloud SECTL. Sin base de datos propia necesaria.",
      "loginRequired": "Por favor, inicie sesión en SECTL Auth primero",
      "loginHint": "La sincronización cloud SECTL requiere una cuenta SECTL Auth. Inicie sesión en la pestaña 'Cuenta'.",
      "statusTitle": "Estado de sincronización",
      "configured": "Listo",
      "notConfigured": "No listo",
      "syncing": "Sincronizando...",
      "lastSync": "Última sincronización",
      "never": "Nunca sincronizado",
      "syncActions": "Acciones de sincronización",
      "syncDirection": "Dirección de sincronización",
      "bidirectional": "Bidireccional (Recomendado) — Fusionar automáticamente datos locales y en la nube",
      "pushOnly": "Solo subir — Sobrescribir datos en la nube con datos locales",
      "pullOnly": "Solo descargar — Sobrescribir datos locales con datos en la nube",
      "startSync": "Iniciar sincronización",
      "uploadToCloud": "Subir a la nube",
      "downloadFromCloud": "Descargar de la nube",
      "fullSync": "Sincronización bidireccional",
      "syncInProgress": "Sincronización en progreso, por favor espere",
      "syncConfirm": "¿Confirmar {{direction}}?",
      "storageUsage": "Uso de almacenamiento",
      "usedStorage": "Usado",
      "table": "Tabla",
      "records": "Registros",
      "size": "Tamaño",
      "clickToLoadStats": "Haga clic en actualizar para cargar estadísticas",
      "description": "Guía de sincronización cloud SECTL",
      "descriptionPoint1": "Sincronice datos a través del servicio cloud SECTL. Sin base de datos propia. Los datos se aíslan por cuenta SECTL Auth.",
      "descriptionPoint2": "Basado en arquitectura de almacenamiento KV. Cada tabla se almacena como par clave-valor.",
      "descriptionPoint3": "Soporta modos bidireccional, solo subida y solo descarga.",
      "descriptionPoint4": "Los datos se transmiten por HTTPS con autenticación OAuth 2.0."
    },
    "data": {
      "title": "Gestión de datos",
      "settlement": "Liquidación",
      "settlementAndRestart": "Liquidar y reiniciar",
      "settlementHint": "Clasifica los registros no liquidados en una fase y restablece todos los puntos de los estudiantes a cero.",
      "importExport": "Importar / Exportar",
      "exportJson": "Exportar JSON",
      "importJson": "Importar JSON",
      "importHint": "La importación sobrescribirá los estudiantes/razones/registros/ajustes existentes (los ajustes de seguridad están excluidos).",
      "logs": "Registros",
      "logLevel": "Nivel de registro",
      "logOperation": "Operación en registros",
      "viewLogs": "Ver registros",
      "exportLogs": "Exportar registros",
      "clearLogs": "Borrar registros",
      "logsCleared": "Registros borrados",
      "systemLogs": "Registros del sistema (últimos 200)",
      "noLogs": "Sin registros",
      "logLevelUpdated": "Nivel de registro actualizado",
      "readLogsFailed": "Fallo al leer los registros",
      "logsExported": "Registros exportados",
      "exportFailed": "Fallo al exportar",
      "exportSuccess": "Exportación exitosa",
      "importSuccess": "Importación exitosa, actualizando",
      "importFailed": "Fallo al importar",
      "clearFailed": "Fallo al borrar",
      "confirmSettlement": "¿Confirmar la liquidación y reinicio?",
      "settlementConfirm1": "Esto archivará los registros no liquidados en una fase y restablecerá todos los puntos de los estudiantes a cero.",
      "settlementConfirm2": "La lista de estudiantes permanece sin cambios; el historial de liquidación es consultable en la página «Historial de liquidaciones».",
      "settlementSuccess": "Liquidación exitosa, puntos reiniciados",
      "settlementFailed": "Fallo en la liquidación",
      "settle": "Liquidar",
      "logLevels": {
        "debug": "DEBUG (depuración)",
        "info": "INFO (información)",
        "warn": "WARN (advertencia)",
        "error": "ERROR (error)"
      }
    },
    "url": {
      "title": "Protocolo URL (secscore://)",
      "protocol": "Protocolo URL",
      "description": "Puede invocar SecScore a través de una URL para realizar operaciones, por ejemplo:",
      "register": "Registrar protocolo URL",
      "registered": "Protocolo URL registrado",
      "registerFailed": "Fallo al registrar",
      "installerRequired": "Requiere la versión instalada de SecScore, puede no funcionar en modo desarrollo.",
      "checkStatus": "Verificar estado",
      "reRegister": "Re-registrar",
      "unregister": "Anular registro",
      "unregistered": "Registro del protocolo URL anulado",
      "unregisterFailed": "Error al anular el registro",
      "statusRegistered": "Registrado",
      "statusNotRegistered": "No registrado",
      "statusCheckFailed": "Error al verificar el estado",
      "retrying": "Reintentando ({{current}}/{{max}})",
      "retryFailed": "Se alcanzó el máximo de reintentos, fallo en el registro",
      "retrySuccess": "Reintento #{{n}} exitoso",
      "operationLog": "Registro de operaciones",
      "logRegisterStart": "Iniciando registro del protocolo URL...",
      "logRegisterVerify": "Comando de registro ejecutado, verificando...",
      "logRegisterSuccess": "Registro verificado exitosamente",
      "logRegisterFailed": "Error en la verificación del registro",
      "logUnregisterStart": "Anulando registro...",
      "logUnregisterSuccess": "Registro anulado exitosamente",
      "logUnregisterFailed": "Error al anular el registro",
      "logMaxRetries": "Se alcanzó el máximo de reintentos (7)"
    },
    "elevation": {
      "title": "Privilegios de administrador",
      "description": "Verificar si la aplicación se ejecuta con privilegios de administrador/root. Algunas funciones (escucha de puertos, operaciones de sistema) requieren privilegios elevados.",
      "elevated": "Elevado",
      "notElevated": "No elevado",
      "request": "Solicitar privilegios de admin",
      "requestSuccess": "Privilegios de admin solicitados, la aplicación se reiniciará",
      "requestFailed": "Error al solicitar privilegios de admin",
      "windowsHint": "Windows: Aparecerá un prompt UAC. Después de confirmar, la app se reiniciará como administrador.",
      "macosHint": "macOS: Aparecerá un diálogo de autenticación del sistema. Ingrese la contraseña de admin para reiniciar.",
      "linuxHint": "Linux: Usa pkexec para solicitar privilegios root. Ingrese la contraseña para reiniciar."
    },
    "mcp": {
      "title": "Servicio MCP",
      "description": "Gestionar el servicio HTTP MCP integrado para clientes MCP externos.",
      "running": "En ejecución",
      "stopped": "Detenido",
      "noUrl": "Sin URL",
      "host": "Host",
      "port": "Puerto",
      "start": "Iniciar",
      "stop": "Detener",
      "refresh": "Actualizar estado",
      "hint": "Recomendado para vincular solo a 127.0.0.1; después del inicio, el punto final es http://host:port/mcp",
      "hostRequired": "Por favor ingrese el host MCP",
      "portInvalid": "Por favor ingrese un puerto válido (1-65535)",
      "startSuccess": "Servidor MCP iniciado con éxito",
      "startFailed": "Fallo al iniciar el servidor MCP",
      "stopSuccess": "Servidor MCP detenido",
      "stopFailed": "Fallo al detener el servidor MCP",
      "startTimeout": "Tiempo de espera agotado al iniciar el servidor MCP, por favor inténtelo de nuevo",
      "stopTimeout": "Tiempo de espera agotado al detener el servidor MCP, por favor inténtelo de nuevo"
    },
    "app": {
      "title": "Controles de la aplicación",
      "description": "Reiniciar o cerrar rápidamente la aplicación.",
      "restart": "Reiniciar aplicación",
      "quit": "Cerrar aplicación",
      "confirmRestartTitle": "¿Confirmar el reinicio de la aplicación?",
      "confirmRestartContent": "La aplicación se cerrará y reiniciará inmediatamente.",
      "confirmQuitTitle": "¿Confirmar el cierre de la aplicación?",
      "confirmQuitContent": "La aplicación se cerrará inmediatamente.",
      "restartFailed": "Fallo al reiniciar",
      "quitFailed": "Fallo al cerrar"
    },
    "about": {
      "title": "Acerca de",
      "appName": "Gestión de puntos educativos",
      "version": "Versión",
      "copyright": "Copyright",
      "ipcStatus": "Estado IPC",
      "ipcConnected": "Conectado",
      "ipcDisconnected": "Desconectado (Preload fallido)",
      "environment": "Entorno",
      "toggleDevTools": "Activar/desactivar herramientas de desarrollo",
      "license": "SecScore está bajo licencia GPL3.0",
      "copyRightText": "CopyRight © 2025-{{year}} SECTL"
    }
  },
  "sidebar": {
    "home": "Inicio",
    "students": "Gestión de estudiantes",
    "score": "Operaciones de puntos",
    "boards": "Tableros",
    "leaderboard": "Clasificación",
    "settlements": "Historial de liquidaciones",
    "reasons": "Gestión de razones",
    "autoScore": "Añadir puntos automáticamente",
    "rewardExchange": "Intercambio de recompensas",
    "rewardSettings": "Ajustes de recompensa",
    "settings": "Configuraciones del sistema",
    "remoteDb": "Base de datos remota",
    "refreshStatus": "Actualizar estado",
    "syncNow": "Sincronizar ahora",
    "syncSuccess": "Sincronización exitosa",
    "syncFailed": "Fallo en la sincronización",
    "getDbStatusFailed": "Fallo al obtener el estado de la base de datos",
    "notRemoteMode": "Modo base de datos remota no activado, por favor reinicie la aplicación",
    "dbNotConnected": "Base de datos no conectada"
  },
  "auth": {
    "unlock": "Desbloquear permiso",
    "unlockHint": "Ingrese la contraseña de 6 dígitos: contraseña de administrador = acceso completo, contraseña de puntos = operaciones de puntos únicamente.",
    "unlockButton": "Desbloquear",
    "unlocked": "Permiso desbloqueado",
    "logout": "Pasado a solo lectura",
    "passwordPlaceholder": "ej. 123456",
    "passwordError": "Contraseña incorrecta",
    "enterPassword": "Ingresar contraseña",
    "lock": "Bloquear"
  },
  "languages": {
    "zh-CN": "简体中文",
    "en-US": "English",
    "ja-JP": "日本語",
    "fr-FR": "Français",
    "es-ES": "Español",
    "ko-KR": "한국어",
    "ru-RU": "Русский",
    "de-DE": "Deutsch",
    "pt-BR": "Português",
    "ar-SA": "العربية"
  },
  "theme": {
    "colorAndBackground": "Color y fondo",
    "gradientLabels": {
      "blue": "Azul fresco",
      "pink": "Rosa suave",
      "cyan": "Cian",
      "purple": "Violeta"
    },
    "gradientDirections": {
      "vertical": "Vertical",
      "horizontal": "Horizontal",
      "diagonal": "Diagonal"
    },
    "generate": "Generar",
    "saved": "Guardado",
    "saveFailed": "Fallo al guardar",
    "mode": "Modo",
    "myTheme": "Mi tema"
  },
  "permissions": {
    "admin": "Permiso de administrador",
    "points": "Permiso de puntos",
    "view": "Solo lectura"
  },
  "home": {
    "title": "Página de inicio de puntos de estudiantes",
    "subtitle": "{{count}} estudiantes en total, haga clic en la tarjeta para realizar operaciones",
    "searchPlaceholder": "Buscar nombre/pinyin...",
    "sortBy": {
      "alphabet": "Ordenar por nombre",
      "surname": "Agrupar por apellido",
      "group": "Ordenar por grupo",
      "score": "Clasificación por puntos"
    },
    "layoutBy": {
      "grouped": "Lista agrupada",
      "squareGrid": "Cuadrícula cuadrada",
      "largeAvatar": "Avatar grande"
    },
    "noStudents": "Sin datos de estudiantes, por favor añada en gestión de estudiantes",
    "noMatch": "Sin estudiantes coincidentes encontrados",
    "clearSearch": "Borrar búsqueda",
    "points": "pts",
    "currentScore": "Puntos actuales",
    "quickOptions": "Opciones rápidas",
    "adjustPoints": "Ajustar puntos",
    "customPoints": "Puntos personalizados",
    "customPointsHint": "Ingrese cualquier valor en el campo de entrada",
    "reason": "Razón",
    "reasonPlaceholder": "Ingrese la razón de la modificación de puntos (opcional)",
    "preview": "Vista previa de la modificación",
    "noReason": "(Sin razón)",
    "ungrouped": "No agrupado",
    "category": {
      "others": "Otros"
    },
    "scoreAdded": "{{points}} puntos añadidos a {{name}}",
    "scoreDeducted": "{{points}} puntos retirados a {{name}}",
    "submitFailed": "Fallo al enviar",
    "pleaseSelectPoints": "Por favor seleccione o ingrese puntos",
    "reasonDefault": "{{action}} {{points}} puntos",
    "studentCount": "{{count}} estudiantes",
    "operationTitle": "Operación de puntos: {{name}}",
    "submitOperation": "Enviar operación",
    "operationTitleBatch": "Operación de puntos: {{count}} seleccionados",
    "undoLastAction": "Deshacer",
    "undoLastHint": "Deshacer último: {{name}} {{delta}}",
    "undoUnavailable": "Sin operación de puntos para deshacer",
    "undoLastSuccess": "Última operación de puntos deshecha",
    "multiSelect": "Selección múltiple",
    "batchMode": "Modo por lotes",
    "selectAll": "Seleccionar todo",
    "clearSelected": "Borrar selección",
    "batchOperate": "Puntos por lotes",
    "selected": "Seleccionado",
    "selectedCount": "{{count}} seleccionados",
    "batchSuccess": "Puntos enviados para {{count}} estudiantes",
    "batchPartial": "{{success}}/{{total}} estudiantes enviados con éxito",
    "selectStudentFirst": "Por favor primero seleccione uno o más estudiantes",
    "addPoints": "Añadir puntos",
    "deductPoints": "Retirar puntos",
    "pointsChange": "Modificación de puntos",
    "reasonLabel": "Razón: "
  },
  "students": {
    "title": "Gestión de estudiantes",
    "importList": "Importar lista",
    "addStudent": "Añadir estudiante",
    "name": "Nombre",
    "group": "Grupo",
    "avatar": "Avatar",
    "currentScore": "Puntos actuales",
    "tags": "Etiquetas",
    "noTags": "Sin etiquetas",
    "editTags": "Editar etiquetas",
    "editAvatar": "Configurar avatar",
    "deleteConfirm": "¿Confirmar la eliminación de este estudiante?",
    "addTitle": "Añadir estudiante",
    "addConfirm": "Añadir",
    "namePlaceholder": "Ingrese el nombre del estudiante",
    "groupPlaceholder": "Ingrese el nombre del grupo (opcional)",
    "nameRequired": "Por favor ingrese el nombre",
    "nameExists": "El nombre del estudiante ya existe",
    "addSuccess": "Añadido con éxito",
    "addFailed": "Fallo al añadir",
    "deleteSuccess": "Eliminado con éxito",
    "deleteFailed": "Fallo al eliminar",
    "tagSaveSuccess": "Etiquetas guardadas con éxito",
    "tagSaveFailed": "Fallo al guardar etiquetas",
    "importTitle": "Importar lista",
    "importTextHint": "Pegue varias líneas, un nombre de estudiante por línea",
    "importTextPlaceholder": "Ejemplo:\nJuan\nMaría\nPablo",
    "importByText": "Importar desde texto",
    "importByXlsx": "Importar via xlsx",
    "importByBanyou": "Importar desde BanYou",
    "xlsxPreview": "Vista previa e importación xlsx",
    "file": "Archivo",
    "selectNameCol": "Haga clic en el encabezado para seleccionar la columna de nombre",
    "previewRows": "Vista previa de las 50 primeras líneas",
    "importConfirm": "Importar",
    "importComplete": "Importación terminada: {{inserted}} añadidos, {{skipped}} ignorados",
    "workerNotReady": "Worker no inicializado",
    "parseXlsxFailed": "Fallo al analizar xlsx",
    "selectNameColFirst": "Por favor primero seleccione la « Columna de nombre »",
    "noNamesFound": "Sin nombres importables encontrados en la columna seleccionada",
    "importFailed": "Fallo al importar",
    "banyouCookieHint": "Después de iniciar sesión en BanYou Web, copie la cookie completa y péguela a continuación.",
    "banyouCookiePlaceholder": "uid=...; accessToken=...; ...",
    "banyouCookieRequired": "Por favor primero pegue la cookie",
    "banyouFetch": "Obtener lista de clases",
    "banyouFetchSuccess": "{{count}} clases obtenidas",
    "banyouFetchFailed": "Fallo al obtener clases BanYou",
    "banyouCreatedClasses": "Clases que he creado",
    "banyouJoinedClasses": "Clases que he unido",
    "banyouNoClasses": "Sin datos de clases por el momento"
  },
  "boards": {
    "title": "Gestión de tableros",
    "addBoard": "Añadir tablero",
    "editBoard": "Editar tablero",
    "deleteBoard": "Eliminar tablero",
    "name": "Nombre del tablero",
    "description": "Descripción",
    "visibility": "Visibilidad",
    "public": "Público",
    "private": "Privado",
    "studentsCount": "{{count}} estudiantes",
    "noBoards": "Sin tableros por el momento",
    "addTitle": "Añadir tablero",
    "editTitle": "Editar tablero",
    "namePlaceholder": "Ingrese el nombre del tablero",
    "descriptionPlaceholder": "Ingrese la descripción",
    "confirmDelete": "¿Confirmar la eliminación de este tablero?",
    "saved": "Guardado",
    "saveFailed": "Fallo al guardar",
    "deleted": "Eliminado",
    "deleteFailed": "Fallo al eliminar",
    "boardExists": "El tablero ya existe"
  },
  "leaderboard": {
    "title": "Clasificación",
    "sortBy": "Ordenar por",
    "score": "Puntos",
    "name": "Nombre",
    "rank": "Rango",
    "student": "Estudiante",
    "points": "Puntos",
    "noData": "Sin datos de clasificación",
    "topStudents": "Mejores estudiantes",
    "rankChanged": "Rango: {{rank}}"
  },
  "settlements": {
    "title": "Historial de liquidaciones",
    "phase": "Fase",
    "date": "Fecha",
    "studentCount": "Número de estudiantes",
    "totalPoints": "Puntos totales",
    "actions": "Acciones",
    "viewDetails": "Ver detalles",
    "noSettlements": "Sin liquidaciones por el momento",
    "phaseDetail": "Detalles de la fase {{phase}}",
    "settlementDate": "Fecha de liquidación: {{date}}",
    "totalStudents": "Total de estudiantes: {{count}}",
    "totalPointsChange": "Modificación total de puntos: {{points}}"
  },
  "reasons": {
    "title": "Gestión de razones",
    "addReason": "Añadir razón",
    "editReason": "Editar razón",
    "name": "Nombre de la razón",
    "points": "Puntos",
    "positive": "Positivo",
    "negative": "Negativo",
    "noReasons": "Sin razones por el momento",
    "addTitle": "Añadir razón",
    "editTitle": "Editar razón",
    "namePlaceholder": "Ingrese el nombre de la razón",
    "pointsPlaceholder": "Ingrese los puntos",
    "confirmDelete": "¿Confirmar la eliminación de esta razón?",
    "saved": "Guardado",
    "saveFailed": "Fallo al guardar",
    "deleted": "Eliminado",
    "deleteFailed": "Fallo al eliminar",
    "reasonExists": "La razón ya existe"
  },
  "autoScore": {
    "title": "Añadir puntos automáticamente",
    "addRule": "Añadir regla",
    "editRule": "Editar regla",
    "deleteRule": "Eliminar regla",
    "ruleName": "Nombre de la regla",
    "trigger": "Disparador",
    "action": "Acción",
    "interval": "Intervalo",
    "enabled": "Habilitado",
    "noRules": "Sin reglas por el momento",
    "addTitle": "Añadir regla",
    "editTitle": "Editar regla",
    "namePlaceholder": "Ingrese el nombre de la regla",
    "triggerPlaceholder": "Seleccione el disparador",
    "actionPlaceholder": "Seleccione la acción",
    "intervalPlaceholder": "Seleccione el intervalo",
    "confirmDelete": "¿Confirmar la eliminación de esta regla?",
    "saved": "Guardado",
    "saveFailed": "Fallo al guardar",
    "deleted": "Eliminado",
    "deleteFailed": "Fallo al eliminar",
    "ruleExists": "La regla ya existe"
  },
  "rewardExchange": {
    "title": "Intercambio de recompensas",
    "rewards": "Recompensas",
    "exchange": "Intercambiar",
    "history": "Historial",
    "noRewards": "Sin recompensas por el momento",
    "noHistory": "Sin historial por el momento",
    "rewardName": "Nombre de la recompensa",
    "cost": "Costo",
    "stock": "Stock",
    "exchangeSuccess": "Intercambio exitoso",
    "exchangeFailed": "Fallo al intercambiar",
    "insufficientPoints": "Puntos insuficientes",
    "outOfStock": "Agotado"
  },
  "rewardSettings": {
    "title": "Ajustes de recompensa",
    "addReward": "Añadir recompensa",
    "editReward": "Editar recompensa",
    "deleteReward": "Eliminar recompensa",
    "name": "Nombre",
    "cost": "Costo",
    "stock": "Stock",
    "noRewards": "Sin recompensas por el momento",
    "addTitle": "Añadir recompensa",
    "editTitle": "Editar recompensa",
    "namePlaceholder": "Ingrese el nombre",
    "costPlaceholder": "Ingrese el costo",
    "stockPlaceholder": "Ingrese el stock",
    "confirmDelete": "¿Confirmar la eliminación de esta recompensa?",
    "saved": "Guardado",
    "saveFailed": "Fallo al guardar",
    "deleted": "Eliminado",
    "deleteFailed": "Fallo al eliminar",
    "rewardExists": "La recompensa ya existe"
  },
  "recovery": {
    "title": "Frase de recuperación SecScore",
    "saved": "He guardado",
    "export": "Exportar archivo de texto",
    "exportHint": "Se recomienda exportar y almacenar fuera de línea. En caso de pérdida, no podrá ser recuperado.",
    "hint": "Se recomienda exportar y almacenar fuera de línea después de la exportación. En caso de pérdida, no podrá ser recuperado."
  }
}
