import type { TranslationStrings } from '../types'; const settings: TranslationStrings = { 'settings.title': 'Ajustes', 'settings.subtitle': 'Configura tus ajustes personales', 'settings.tabs.display': 'Pantalla', 'settings.tabs.map': 'Mapa', 'settings.tabs.notifications': 'Notificaciones', 'settings.tabs.integrations': 'Integraciones', 'settings.tabs.account': 'Cuenta', 'settings.tabs.offline': 'Offline', 'settings.tabs.about': 'Acerca de', 'settings.map': 'Mapa', 'settings.mapTemplate': 'Plantilla del mapa', 'settings.mapTemplatePlaceholder.select': 'Seleccionar plantilla...', 'settings.mapDefaultHint': 'Déjalo vacío para OpenStreetMap (por defecto)', 'settings.mapTemplatePlaceholder': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', 'settings.mapHint': 'Plantilla de URL para los mosaicos del mapa', 'settings.mapProvider': 'Proveedor de mapa', 'settings.mapProviderHint': 'Afecta a los mapas de Trip Planner y Journey. Atlas siempre usa Leaflet.', 'settings.mapLeafletSubtitle': 'Clásico 2D, cualquier mosaico raster', 'settings.mapMapboxSubtitle': 'Mosaicos vectoriales, edificios 3D y terreno', 'settings.mapExperimental': 'Experimental', 'settings.mapMapboxToken': 'Token de acceso de Mapbox', 'settings.mapMapboxTokenHint': 'Token público (pk.*) de', 'settings.mapMapboxTokenLink': 'mapbox.com → Tokens de acceso', 'settings.mapStyle': 'Estilo de mapa', 'settings.mapStylePlaceholder': 'Seleccionar un estilo de Mapbox', 'settings.mapStyleHint': 'Preset o tu propia URL mapbox://styles/USER/ID', 'settings.map3dBuildings': 'Edificios 3D y terreno', 'settings.map3dHint': 'Inclinación + extrusiones 3D reales de edificios — funciona con todos los estilos, incluyendo satélite.', 'settings.mapHighQuality': 'Modo de alta calidad', 'settings.mapHighQualityHint': 'Antialiasing + proyección global para bordes más nítidos y una vista realista del mundo.', 'settings.mapHighQualityWarning': 'Puede afectar el rendimiento en dispositivos menos potentes.', 'settings.mapTipLabel': 'Consejo:', 'settings.mapTip': 'Clic derecho y arrastrar para rotar/inclinar el mapa. Clic central para añadir un lugar (el clic derecho está reservado para la rotación).', 'settings.latitude': 'Latitud', 'settings.longitude': 'Longitud', 'settings.saveMap': 'Guardar mapa', 'settings.apiKeys': 'Claves API', 'settings.mapsKey': 'Clave API de Google Maps', 'settings.mapsKeyHint': 'Necesaria para buscar lugares. Consíguela en console.cloud.google.com', 'settings.weatherKey': 'Clave API de OpenWeatherMap', 'settings.weatherKeyHint': 'Para datos meteorológicos. Gratis en openweathermap.org/api', 'settings.keyPlaceholder': 'Introduce la clave...', 'settings.configured': 'Configurado', 'settings.saveKeys': 'Guardar claves', 'settings.display': 'Visualización', 'settings.colorMode': 'Modo de color', 'settings.light': 'Claro', 'settings.dark': 'Oscuro', 'settings.auto': 'Automático', 'settings.language': 'Idioma', 'settings.temperature': 'Unidad de temperatura', 'settings.timeFormat': 'Formato de hora', 'settings.blurBookingCodes': 'Difuminar códigos de reserva', 'settings.notifications': 'Notificaciones', 'settings.notifyTripInvite': 'Invitaciones de viaje', 'settings.notifyBookingChange': 'Cambios en reservas', 'settings.notifyTripReminder': 'Recordatorios de viaje', 'settings.notifyTodoDue': 'Tarea próxima', 'settings.notifyVacayInvite': 'Invitaciones de fusión Vacay', 'settings.notifyPhotosShared': 'Fotos compartidas (Immich)', 'settings.notifyCollabMessage': 'Mensajes de chat (Collab)', 'settings.notifyPackingTagged': 'Lista de equipaje: asignaciones', 'settings.notifyWebhook': 'Notificaciones webhook', 'settings.notificationsDisabled': 'Las notificaciones no están configuradas. Pida a un administrador que active las notificaciones por correo o webhook.', 'settings.notificationsActive': 'Canal activo', 'settings.notificationsManagedByAdmin': 'Los eventos de notificación son configurados por el administrador.', 'settings.on': 'Activado', 'settings.off': 'Desactivado', 'settings.mcp.title': 'Configuración MCP', 'settings.mcp.endpoint': 'Endpoint MCP', 'settings.mcp.clientConfig': 'Configuración del cliente', 'settings.mcp.clientConfigHint': 'Reemplaza con un token de la lista de abajo. Es posible que debas ajustar la ruta de npx según tu sistema (p. ej. C:\\PROGRA~1\\nodejs\\npx.cmd en Windows).', 'settings.mcp.clientConfigHintOAuth': 'Reemplaza y con las credenciales del cliente OAuth 2.1 que creaste arriba. mcp-remote abrirá el navegador para completar la autorización la primera vez que te conectes. Es posible que debas ajustar la ruta de npx según tu sistema (p. ej. C:\\PROGRA~1\\nodejs\\npx.cmd en Windows).', 'settings.mcp.copy': 'Copiar', 'settings.mcp.copied': '¡Copiado!', 'settings.mcp.apiTokens': 'Tokens de API', 'settings.mcp.createToken': 'Crear nuevo token', 'settings.mcp.noTokens': 'Sin tokens aún. Crea uno para conectar clientes MCP.', 'settings.mcp.tokenCreatedAt': 'Creado', 'settings.mcp.tokenUsedAt': 'Usado', 'settings.mcp.deleteTokenTitle': 'Eliminar token', 'settings.mcp.deleteTokenMessage': 'Este token dejará de funcionar de inmediato. Cualquier cliente MCP que lo use perderá el acceso.', 'settings.mcp.modal.createTitle': 'Crear token de API', 'settings.mcp.modal.tokenName': 'Nombre del token', 'settings.mcp.modal.tokenNamePlaceholder': 'p. ej. Claude Desktop, Portátil de trabajo', 'settings.mcp.modal.creating': 'Creando…', 'settings.mcp.modal.create': 'Crear token', 'settings.mcp.modal.createdTitle': 'Token creado', 'settings.mcp.modal.createdWarning': 'Este token solo se mostrará una vez. Cópialo y guárdalo ahora — no se podrá recuperar.', 'settings.mcp.modal.done': 'Listo', 'settings.mcp.toast.created': 'Token creado', 'settings.mcp.toast.createError': 'Error al crear el token', 'settings.mcp.toast.deleted': 'Token eliminado', 'settings.mcp.toast.deleteError': 'Error al eliminar el token', 'settings.mcp.apiTokensDeprecated': 'Los tokens de API están obsoletos y se eliminarán en una versión futura. Utilice los clientes OAuth 2.1 en su lugar.', 'settings.oauth.clients': 'Clientes OAuth 2.1', 'settings.oauth.clientsHint': 'Registre clientes OAuth 2.1 para que las aplicaciones MCP de terceros (Claude Web, Cursor, etc.) puedan conectarse sin tokens estáticos.', 'settings.oauth.createClient': 'Nuevo cliente', 'settings.oauth.noClients': 'No hay clientes OAuth registrados.', 'settings.oauth.clientId': 'ID de cliente', 'settings.oauth.clientSecret': 'Secreto de cliente', 'settings.oauth.deleteClient': 'Eliminar cliente', 'settings.oauth.deleteClientMessage': 'Este cliente y todas las sesiones activas se eliminarán permanentemente. Cualquier aplicación que lo use perderá el acceso inmediatamente.', 'settings.oauth.rotateSecret': 'Renovar secreto', 'settings.oauth.rotateSecretMessage': 'Se generará un nuevo secreto de cliente y todas las sesiones existentes se invalidarán de inmediato. Actualice su aplicación antes de cerrar este diálogo.', 'settings.oauth.rotateSecretConfirm': 'Renovar', 'settings.oauth.rotateSecretConfirming': 'Renovando…', 'settings.oauth.rotateSecretDoneTitle': 'Nuevo secreto generado', 'settings.oauth.rotateSecretDoneWarning': 'Este secreto solo se muestra una vez. Cópielo ahora y actualice su aplicación — todas las sesiones anteriores han sido invalidadas.', 'settings.oauth.activeSessions': 'Sesiones OAuth activas', 'settings.oauth.sessionScopes': 'Ámbitos', 'settings.oauth.sessionExpires': 'Expira', 'settings.oauth.revoke': 'Revocar', 'settings.oauth.revokeSession': 'Revocar sesión', 'settings.oauth.revokeSessionMessage': 'Esto revocará inmediatamente el acceso de esta sesión OAuth.', 'settings.oauth.modal.createTitle': 'Registrar cliente OAuth', 'settings.oauth.modal.presets': 'Ajustes rápidos', 'settings.oauth.modal.clientName': 'Nombre de la aplicación', 'settings.oauth.modal.clientNamePlaceholder': 'ej. Claude Web, Mi app MCP', 'settings.oauth.modal.redirectUris': 'URIs de redirección', 'settings.oauth.modal.redirectUrisPlaceholder': 'https://your-app.com/callback\nhttps://your-app.com/auth', 'settings.oauth.modal.redirectUrisHint': 'Un URI por línea. HTTPS obligatorio (localhost exento). Coincidencia exacta.', 'settings.oauth.modal.scopes': 'Ámbitos permitidos', 'settings.oauth.modal.scopesHint': 'list_trips y get_trip_summary siempre están disponibles — sin ámbito requerido. Permiten a la IA descubrir los IDs de viaje necesarios.', 'settings.oauth.modal.selectAll': 'Seleccionar todo', 'settings.oauth.modal.deselectAll': 'Deseleccionar todo', 'settings.oauth.modal.creating': 'Registrando…', 'settings.oauth.modal.create': 'Registrar cliente', 'settings.oauth.modal.createdTitle': 'Cliente registrado', 'settings.oauth.modal.createdWarning': 'El secreto del cliente solo se muestra una vez. Cópielo ahora — no se puede recuperar.', 'settings.oauth.toast.createError': 'Error al registrar el cliente OAuth', 'settings.oauth.toast.deleted': 'Cliente OAuth eliminado', 'settings.oauth.toast.deleteError': 'Error al eliminar el cliente OAuth', 'settings.oauth.toast.revoked': 'Sesión revocada', 'settings.oauth.toast.revokeError': 'Error al revocar la sesión', 'settings.oauth.toast.rotateError': 'Error al renovar el secreto del cliente', 'settings.oauth.modal.machineClient': 'Cliente de máquina (sin inicio de sesión en el navegador)', 'settings.oauth.modal.machineClientHint': 'Usa el grant client_credentials — sin URIs de redirección. El token se emite directamente vía client_id + client_secret y actúa como tú dentro de los alcances seleccionados.', 'settings.oauth.modal.machineClientUsage': 'Obtener token: POST /oauth/token con grant_type=client_credentials, client_id y client_secret. Sin navegador, sin token de actualización.', 'settings.oauth.badge.machine': 'máquina', 'settings.account': 'Cuenta', 'settings.about': 'Acerca de', 'settings.about.reportBug': 'Reportar un error', 'settings.about.reportBugHint': 'Encontraste un problema? Avísanos', 'settings.about.featureRequest': 'Solicitar función', 'settings.about.featureRequestHint': 'Sugiere una nueva función', 'settings.about.wikiHint': 'Documentación y guías', 'settings.about.supporters.badge': 'Patrocinadores Mensuales', 'settings.about.supporters.title': 'Compañía de viaje para TREK', 'settings.about.supporters.subtitle': 'Mientras planeas tu próxima ruta, estas personas ayudan a planear el futuro de TREK. Su aporte mensual va directo al desarrollo y a las horas reales invertidas — para que TREK siga siendo Open Source.', 'settings.about.supporters.since': 'patrocinador desde {date}', 'settings.about.supporters.tierEmpty': 'Sé el primero', 'settings.about.supporter.tier.noReturnTicket': 'No Return Ticket', 'settings.about.supporter.tier.lostLuggageVip': 'Lost Luggage VIP', 'settings.about.supporter.tier.businessClassDreamer': 'Business Class Dreamer', 'settings.about.supporter.tier.budgetTraveller': 'Budget Traveller', 'settings.about.supporter.tier.hostelBunkmate': 'Hostel Bunkmate', 'settings.about.description': 'TREK es un planificador de viajes autoalojado que te ayuda a organizar tus viajes desde la primera idea hasta el último recuerdo. Planificación diaria, presupuesto, listas de equipaje, fotos y mucho más — todo en un solo lugar, en tu propio servidor.', 'settings.about.madeWith': 'Hecho con', 'settings.about.madeBy': 'por Maurice y una creciente comunidad de código abierto.', 'settings.username': 'Usuario', 'settings.email': 'Correo', 'settings.role': 'Rol', 'settings.roleAdmin': 'Administrador', 'settings.oidcLinked': 'Vinculado con', 'settings.changePassword': 'Cambiar contraseña', 'settings.mustChangePassword': 'Debe cambiar su contraseña antes de continuar. Establezca una nueva contraseña a continuación.', 'settings.currentPassword': 'Contraseña actual', 'settings.newPassword': 'Nueva contraseña', 'settings.confirmPassword': 'Confirmar nueva contraseña', 'settings.updatePassword': 'Actualizar contraseña', 'settings.passwordRequired': 'Introduce la contraseña actual y la nueva', 'settings.passwordTooShort': 'La contraseña debe tener al menos 8 caracteres', 'settings.passwordMismatch': 'Las contraseñas no coinciden', 'settings.passwordChanged': 'Contraseña cambiada correctamente', 'settings.deleteAccount': 'Eliminar cuenta', 'settings.deleteAccountTitle': '¿Eliminar tu cuenta?', 'settings.deleteAccountWarning': 'Tu cuenta y todos tus viajes, lugares y archivos se eliminarán permanentemente. Esta acción no se puede deshacer.', 'settings.deleteAccountConfirm': 'Eliminar permanentemente', 'settings.deleteBlockedTitle': 'No es posible eliminarla', 'settings.deleteBlockedMessage': 'Eres el único administrador. Asciende a otro usuario a administrador antes de eliminar tu cuenta.', 'settings.roleUser': 'Usuario', 'settings.saveProfile': 'Guardar perfil', 'settings.mfa.title': 'Autenticación de dos factores (2FA)', 'settings.mfa.description': 'Añade un segundo paso al iniciar sesión. Usa una app de autenticación (Google Authenticator, Authy, etc.).', 'settings.mfa.requiredByPolicy': 'Tu administrador exige autenticación en dos factores. Configura una app de autenticación abajo antes de continuar.', 'settings.mfa.backupTitle': 'Códigos de respaldo', 'settings.mfa.backupDescription': 'Usa estos códigos de un solo uso si pierdes acceso a tu app autenticadora.', 'settings.mfa.backupWarning': 'Guárdalos ahora. Cada código solo se puede usar una vez.', 'settings.mfa.backupCopy': 'Copiar códigos', 'settings.mfa.backupDownload': 'Descargar TXT', 'settings.mfa.backupPrint': 'Imprimir / PDF', 'settings.mfa.backupCopied': 'Códigos de respaldo copiados', 'settings.mfa.enabled': '2FA está activado en tu cuenta.', 'settings.mfa.disabled': '2FA no está activado.', 'settings.mfa.setup': 'Configurar autenticador', 'settings.mfa.scanQr': 'Escanea este código QR con tu app o introduce la clave manualmente.', 'settings.mfa.secretLabel': 'Clave secreta (entrada manual)', 'settings.mfa.codePlaceholder': 'Código de 6 dígitos', 'settings.mfa.enable': 'Activar 2FA', 'settings.mfa.cancelSetup': 'Cancelar', 'settings.mfa.disableTitle': 'Desactivar 2FA', 'settings.mfa.disableHint': 'Introduce tu contraseña y un código actual de tu autenticador.', 'settings.mfa.disable': 'Desactivar 2FA', 'settings.mfa.toastEnabled': 'Autenticación de dos factores activada', 'settings.mfa.toastDisabled': 'Autenticación de dos factores desactivada', 'settings.mfa.demoBlocked': 'No disponible en modo demo', 'settings.toast.mapSaved': 'Ajustes del mapa guardados', 'settings.toast.keysSaved': 'Claves API guardadas', 'settings.toast.displaySaved': 'Ajustes de visualización guardados', 'settings.toast.profileSaved': 'Perfil guardado', 'settings.uploadAvatar': 'Subir foto de perfil', 'settings.removeAvatar': 'Eliminar foto de perfil', 'settings.avatarUploaded': 'Foto de perfil actualizada', 'settings.avatarRemoved': 'Foto de perfil eliminada', 'settings.avatarError': 'Falló la subida', 'settings.bookingLabels': 'Etiquetas de rutas de reservas', 'settings.bookingLabelsHint': 'Muestra nombres de estaciones / aeropuertos en el mapa. Desactivado, solo se muestra el icono.', 'settings.currentPasswordRequired': 'La contraseña actual es obligatoria', 'settings.passwordWeak': 'La contraseña debe contener mayúsculas, minúsculas, números y un carácter especial', 'settings.notifyVersionAvailable': 'Nueva versión disponible', 'settings.notificationPreferences.noChannels': 'No hay canales de notificación configurados. Pide a un administrador que configure notificaciones por correo o webhook.', 'settings.webhookUrl.label': 'URL del webhook', 'settings.webhookUrl.placeholder': 'https://discord.com/api/webhooks/...', 'settings.webhookUrl.hint': 'Introduce tu URL de webhook de Discord, Slack o personalizada para recibir notificaciones.', 'settings.webhookUrl.saved': 'URL del webhook guardada', 'settings.webhookUrl.test': 'Probar', 'settings.webhookUrl.testSuccess': 'Webhook de prueba enviado correctamente', 'settings.webhookUrl.testFailed': 'Error al enviar el webhook de prueba', 'settings.ntfyUrl.topicLabel': 'Tema de Ntfy', 'settings.ntfyUrl.topicPlaceholder': 'my-trek-alerts', 'settings.ntfyUrl.serverLabel': 'URL del servidor Ntfy (opcional)', 'settings.ntfyUrl.serverPlaceholder': 'https://ntfy.sh', 'settings.ntfyUrl.hint': 'Introduce tu tema de Ntfy para recibir notificaciones push. Deja el servidor en blanco para usar el predeterminado configurado por tu administrador.', 'settings.ntfyUrl.tokenLabel': 'Token de acceso (opcional)', 'settings.ntfyUrl.tokenHint': 'Requerido para temas protegidos con contraseña.', 'settings.ntfyUrl.saved': 'Configuración de Ntfy guardada', 'settings.ntfyUrl.test': 'Probar', 'settings.ntfyUrl.testSuccess': 'Notificación de prueba de Ntfy enviada correctamente', 'settings.ntfyUrl.testFailed': 'Error en la notificación de prueba de Ntfy', 'settings.ntfyUrl.tokenCleared': 'Token de acceso eliminado', 'settings.notificationPreferences.inapp': 'In-App', 'settings.notificationPreferences.webhook': 'Webhook', 'settings.notificationPreferences.email': 'Email', 'settings.notificationPreferences.ntfy': 'Ntfy', "settings.currency": "Currency", "settings.currencyHint": "All amounts in Costs are converted to and shown in this currency.", 'settings.passkey.title': 'Passkeys', 'settings.passkey.description': 'Inicia sesión más rápido y con protección frente al phishing usando una passkey: tu huella, tu cara, tu PIN o una llave de seguridad física. Tu contraseña sigue disponible como respaldo.', 'settings.passkey.notConfigured': 'Las passkeys están habilitadas, pero aún no están del todo configuradas en este servidor. Pide a tu administrador que defina el dominio de WebAuthn.', 'settings.passkey.add': 'Añadir una passkey', 'settings.passkey.addTitle': 'Añadir una passkey', 'settings.passkey.passwordPrompt': 'Confirma tu contraseña actual y luego sigue las indicaciones de tu dispositivo.', 'settings.passkey.passwordRequired': 'Se requiere tu contraseña actual.', 'settings.passkey.namePlaceholder': 'Nombre (opcional, p. ej. "iPhone")', 'settings.passkey.addedToast': 'Passkey añadida', 'settings.passkey.added': 'Añadida', 'settings.passkey.addError': 'No se pudo añadir la passkey', 'settings.passkey.cancelled': 'Configuración de la passkey cancelada', 'settings.passkey.deleted': 'Passkey eliminada', 'settings.passkey.deleteConfirm': '¿Eliminar esta passkey? Confírmalo con tu contraseña.', 'settings.passkey.rename': 'Renombrar', 'settings.passkey.defaultName': 'Passkey', 'settings.passkey.synced': 'Sincronizada', 'settings.passkey.deviceBound': 'Este dispositivo', 'settings.passkey.lastUsed': 'Último uso', 'settings.passkey.neverUsed': 'Nunca usada', }; export default settings;