Spaces:
Sleeping
Sleeping
| 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.optimizeFromAccommodation': 'Optimizar la ruta desde el alojamiento', | |
| 'settings.optimizeFromAccommodationHint': | |
| 'Al optimizar un día, comienza la ruta en el hotel donde despiertas y termínala en aquel en el que te registras esa noche.', | |
| '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 <your_token> 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 <your_client_id> y <your_client_secret> 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', | |
| 'settings.mapPoiPill': 'Explorar lugares en el mapa', | |
| 'settings.mapPoiPillHint': 'Muestra una píldora de categorías en el mapa del viaje para encontrar restaurantes, alojamientos y más cerca, desde OpenStreetMap.', | |
| 'settings.airtrail.title': 'AirTrail', | |
| 'settings.airtrail.hint': 'Conecta tu AirTrail autoalojado para importar y sincronizar vuelos. Crea una clave de API en AirTrail en Ajustes → Seguridad.', | |
| 'settings.airtrail.url': 'URL de la instancia', | |
| 'settings.airtrail.apiKey': 'Clave de API', | |
| 'settings.airtrail.apiKeyPlaceholder': 'Clave de API Bearer', | |
| 'settings.airtrail.apiKeyHint': 'Generada en AirTrail en Ajustes → Seguridad. Se almacena cifrada.', | |
| 'settings.airtrail.allowInsecureTls': 'Permitir certificados autofirmados', | |
| 'settings.airtrail.allowInsecureTlsHint': 'Actívalo solo para una instancia de confianza en tu propia red.', | |
| 'settings.airtrail.connected': 'Conectado', | |
| 'settings.airtrail.notConnected': 'No conectado', | |
| 'settings.airtrail.toast.saved': 'Conexión con AirTrail guardada', | |
| 'settings.airtrail.toast.saveError': 'No se pudo guardar la conexión', | |
| 'settings.airtrail.test.button': 'Probar conexión', | |
| 'settings.airtrail.test.success': 'Conectado: {count} vuelo(s) encontrado(s)', | |
| 'settings.airtrail.test.failed': 'Error de conexión', | |
| }; | |
| export default settings; | |