Files
SecScore/src/i18n/locales/es-ES.json
T
Yukino_fox a2ec923788 feat(URL协议): 增强URL协议注册健壮性
- 新增check_url_protocol_status命令检测注册状态
- 新增unregister_url_protocol命令取消注册
- 改进register_url_protocol命令增加验证逻辑
- 前端增加状态检测、自动重试和操作日志功能
- 更新多语言翻译支持新功能
2026-05-04 12:11:18 +08:00

741 lines
33 KiB
JSON

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