mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-19 13:21:46 +00:00
a876fb2634
* feat(auth): passkey (WebAuthn) login — server endpoints, schema + admin toggle Add @simplewebauthn/server registration and primary (discoverable) login ceremonies under /api/auth/passkey, a webauthn_credentials + single-use webauthn_challenges schema (migration), the instance-wide passkey_login toggle (default off) enforced before auth by a guard, and require_mfa satisfaction via a verified passkey. RP ID/origin come only from server config (webauthn_rp_id/origins -> APP_URL), never request headers. * feat(auth): passkey enrolment, login button + admin settings UI PasskeysSection in account settings (add/rename/remove with a current-password step-up), a 'Sign in with a passkey' button on the login page, the admin enable + RP-ID/origins controls, and a per-user admin reset action. * i18n(auth): passkey strings across all locales Add login/settings/admin passkey keys to en and all 19 translated locales.
327 lines
19 KiB
TypeScript
327 lines
19 KiB
TypeScript
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 <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',
|
|
};
|
|
|
|
export default settings;
|