{ "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." } }