Files
zitadel/apps/login/locales/es.json
Max Peintner fa524e3b05 fix(login): Return promise from passkey authentication to fix automatic prompt (#10991)
# Which Problems Are Solved

The passkey login page was not rendering properly in production (Cloud
Run) deployments, with the submit button and component content not
appearing. Additionally, the automatic passkey prompt was not triggering
correctly.

# How the Problems Are Solved

Added the missing return statement before navigator.credentials.get() in
the submitLoginAndContinue function. This ensures the promise is
properly returned and chained in the useEffect hook, fixing the
automatic passkey prompt flow.

Removes the recently introduces guides to passkeys that could result in
a hydration error due to the <a> tag being rendered differently on
server / client environement

# Additional Changes

This issue was most probably introduced in PR #10971. The component uses
promise chaining (.then().catch().finally()) which requires the promise
to be returned, unlike the RegisterPasskey component which uses
async/await and works correctly without an explicit return.
2025-10-28 12:35:47 +00:00

458 lines
19 KiB
JSON

{
"common": {
"back": "Atrás",
"title": "Iniciar sesión con Zitadel"
},
"accounts": {
"title": "Cuentas",
"description": "Seleccione la cuenta que desea utilizar.",
"addAnother": "Agregar otra cuenta",
"noResults": "No se encontraron cuentas",
"verified": "verificado",
"expired": "expirado"
},
"logout": {
"title": "Cerrar sesión",
"description": "Selecciona la cuenta que deseas eliminar",
"noResults": "No se encontraron cuentas",
"clear": "Eliminar sesión",
"verifiedAt": "Última actividad: {time}",
"success": {
"title": "Cierre de sesión exitoso",
"description": "Has cerrado sesión correctamente."
}
},
"loginname": {
"title": "¡Bienvenido de nuevo!",
"description": "Introduce tus datos de acceso.",
"register": "Registrar nuevo usuario",
"submit": "Continuar",
"labels": {
"loginname": "Nombre de inicio de sesión",
"username": "Nombre de usuario",
"usernameOrPhoneNumber": "Nombre de usuario o número de teléfono",
"usernameOrEmail": "Nombre de usuario o correo electrónico"
},
"required": {
"loginName": "Este campo es obligatorio"
},
"errors": {
"internalError": "Se produjo un error interno",
"couldNotGetLoginSettings": "No se pudieron obtener los ajustes de inicio de sesión",
"couldNotSearchUsers": "No se pudieron buscar usuarios",
"couldNotGetDomain": "No se pudo obtener el dominio",
"couldNotGetHost": "No se pudo obtener el host",
"couldNotStartIDPFlow": "No se pudo iniciar el flujo de IDP",
"moreThanOneUserFound": "Se encontró más de un usuario. Proporcione un identificador único.",
"userNotFound": "Usuario no encontrado en el sistema",
"couldNotCreateSession": "No se pudo crear la sesión para el usuario",
"initialUserNotSupported": "Usuario inicial no admitido",
"usernamePasswordNotAllowed": "El inicio de sesión con usuario y contraseña no está permitido. Contacte con su administrador para más información.",
"passkeysNotAllowed": "Las passkeys no están permitidas. Contacte con su administrador para más información.",
"couldNotFindIdentityProvider": "No se pudo encontrar el proveedor de identidad.",
"userNotActive": "El usuario no está activo. Contacte con su administrador para más información."
}
},
"zitadel": {
"errors": {
"errorOccured": "Ocurrió un error",
"multipleUsersFound": "Se encontraron varios usuarios",
"userNotFound": "Usuario no encontrado en el sistema"
}
},
"password": {
"verify": {
"title": "Contraseña",
"description": "Introduce tu contraseña.",
"resetPassword": "Restablecer contraseña",
"submit": "Continuar",
"labels": {
"password": "Contraseña"
},
"required": {
"password": "Este campo es obligatorio"
},
"errors": {
"couldNotVerifyPassword": "No se pudo verificar la contraseña",
"couldNotResetPassword": "No se pudo restablecer la contraseña"
},
"info": {
"passwordResetSent": "Se restableció la contraseña. Por favor, revise su correo electrónico"
}
},
"set": {
"title": "Establecer Contraseña",
"description": "Establece la contraseña para tu cuenta",
"codeSent": "Se ha enviado un código a su correo electrónico.",
"noCodeReceived": "¿No recibiste un código?",
"resend": "Reenviar código",
"submit": "Continuar",
"labels": {
"code": "Código",
"newPassword": "Nueva contraseña",
"confirmPassword": "Confirmar contraseña"
},
"required": {
"code": "Este campo es obligatorio",
"newPassword": "¡Debes proporcionar una contraseña!",
"confirmPassword": "Este campo es obligatorio"
},
"errors": {
"couldNotSetPassword": "No se pudo establecer la contraseña",
"couldNotResetPassword": "No se pudo restablecer la contraseña",
"couldNotVerifyPassword": "No se pudo verificar la contraseña"
}
},
"change": {
"title": "Cambiar Contraseña",
"description": "Establece la contraseña para tu cuenta",
"submit": "Continuar",
"labels": {
"newPassword": "Nueva contraseña",
"confirmPassword": "Confirmar contraseña"
},
"required": {
"newPassword": "¡Debes proporcionar una nueva contraseña!",
"confirmPassword": "Este campo es obligatorio"
},
"errors": {
"couldNotChangePassword": "No se pudo cambiar la contraseña",
"couldNotVerifyPassword": "No se pudo verificar la contraseña",
"unknownError": "Error desconocido"
}
},
"complexity": {
"length": "Debe tener al menos {minLength} caracteres de longitud.",
"hasSymbol": "Debe incluir un símbolo.",
"hasNumber": "Debe incluir un número.",
"hasUppercase": "Debe incluir una letra mayúscula.",
"hasLowercase": "Debe incluir una letra minúscula.",
"equals": "La confirmación de la contraseña coincide.",
"matches": "Coincide",
"doesNotMatch": "No coincide"
},
"errors": {
"noHostFound": "No se encontró el host",
"couldNotSendResetLink": "No se pudo enviar el enlace de restablecimiento de contraseña",
"couldNotCreateSessionForUser": "No se pudo crear la sesión para el usuario",
"couldNotVerifyPassword": "No se pudo verificar la contraseña",
"failedToAuthenticate": "Error al autenticar. Tuvo {failedAttempts} de {maxPasswordAttempts} intentos de contraseña.{lockoutMessage}",
"failedToAuthenticateNoLimit": "Error al autenticar.",
"accountLockedContactAdmin": " Comuníquese con su administrador para desbloquear su cuenta",
"userNotFound": "Usuario no encontrado en el sistema",
"initialUserNotSupported": "Usuario inicial no compatible",
"userInitialStateNotSupported": "El estado inicial del usuario no es compatible",
"codeOrVerificationRequired": "Debe proporcionar un código o tener una verificación de usuario válida",
"verificationRequired": "Se debe realizar la verificación de usuario",
"couldNotLoadSession": "No se pudo cargar la sesión",
"couldNotLoadAuthMethods": "No se pudieron cargar los métodos de autenticación",
"failedPrecondition": "Precondición fallida",
"sessionNotValid": "La sesión no es válida"
}
},
"idp": {
"title": "Iniciar sesión con SSO",
"description": "Selecciona uno de los siguientes proveedores para iniciar sesión",
"orSignInWith": "o iniciar sesión con",
"signInWithApple": "Iniciar sesión con Apple",
"signInWithGoogle": "Iniciar sesión con Google",
"signInWithAzureAD": "Iniciar sesión con AzureAD",
"signInWithGithub": "Iniciar sesión con GitHub",
"signInWithGitlab": "Iniciar sesión con GitLab",
"loginError": {
"title": "Error de inicio de sesión",
"description": "Ocurrió un error al intentar iniciar sesión."
},
"linkingError": {
"title": "Error al vincular la cuenta",
"description": "Ocurrió un error al intentar vincular tu cuenta."
},
"completeRegister": {
"title": "Completar registro",
"description": "Para completar el registro, debes establecer una contraseña."
},
"accountNotFound": {
"title": "Cuenta no encontrada",
"description": "No pudimos encontrar una cuenta asociada con tus credenciales del proveedor de identidad.",
"info": "No se encontró ninguna cuenta existente. Por favor, inicia sesión con una cuenta existente o contacta a tu administrador para obtener asistencia.",
"backToLogin": "Volver al inicio de sesión"
},
"registrationFailed": {
"title": "Registro no disponible",
"description": "No pudimos completar el proceso de registro.",
"info": "No se pudo determinar la organización para el registro. Por favor, contacta a tu administrador para obtener asistencia.",
"backToLogin": "Volver al inicio de sesión"
},
"processing": {
"message": "Procesando autenticación...",
"noRedirect": "No se recibió redirección ni error del servidor",
"unexpectedError": "Ocurrió un error inesperado"
},
"errors": {
"missingParameters": "Faltan parámetros requeridos",
"missingIdpInfo": "Falta información del IDP",
"idpNotFound": "Proveedor de identidad no encontrado",
"linkingNotAllowed": "La vinculación no está permitida para este proveedor de identidad",
"linkingFailed": "Error al vincular el proveedor de identidad con la cuenta",
"autoLinkingFailed": "Error al vincular automáticamente la cuenta",
"userCreationFailed": "Error al crear la cuenta de usuario",
"orgResolutionFailed": "No se pudo determinar la organización para el registro",
"sessionCreationFailed": "No se pudo crear la sesión o determinar la redirección",
"unknownError": "Ocurrió un error desconocido"
}
},
"ldap": {
"title": "Iniciar sesión con LDAP",
"description": "Introduce tus credenciales LDAP.",
"submit": "Continuar",
"labels": {
"username": "Nombre de usuario",
"password": "Contraseña"
},
"required": {
"username": "Este campo es obligatorio",
"password": "Este campo es obligatorio"
}
},
"mfa": {
"verify": {
"title": "Verifica tu identidad",
"description": "Elige uno de los siguientes factores.",
"noResults": "No hay factores secundarios disponibles para configurar."
},
"set": {
"title": "Configurar autenticación de 2 factores",
"description": "Elige uno de los siguientes factores secundarios.",
"skip": "Omitir"
}
},
"otp": {
"verify": {
"title": "Verificar autenticación de 2 factores",
"totpDescription": "Introduce el código de tu aplicación de autenticación.",
"smsDescription": "Introduce el código que recibiste por SMS.",
"emailDescription": "Introduce el código que recibiste por correo electrónico.",
"noCodeReceived": "¿No recibiste un código?",
"resendCode": "Reenviar código",
"submit": "Continuar",
"labels": {
"code": "Código"
},
"required": {
"code": "Este campo es obligatorio"
}
},
"set": {
"title": "Configurar autenticación de 2 factores",
"totpDescription": "Escanea el código QR con tu aplicación de autenticación.",
"smsDescription": "Introduce tu número de teléfono para recibir un código por SMS.",
"emailDescription": "Introduce tu dirección de correo electrónico para recibir un código por correo electrónico.",
"totpRegisterDescription": "Escanea el código QR o navega manualmente a la URL.",
"submit": "Continuar",
"labels": {
"code": "Código"
},
"required": {
"code": "Este campo es obligatorio"
}
}
},
"passkey": {
"verify": {
"title": "Autenticar con una clave de acceso",
"description": "Tu dispositivo pedirá tu huella digital, rostro o bloqueo de pantalla",
"usePassword": "Usar contraseña",
"submit": "Continuar",
"errors": {
"couldNotRequestChallenge": "No se pudo solicitar el desafío de clave de acceso",
"couldNotVerifyPasskey": "No se pudo verificar la clave de acceso",
"noResponseReceived": "Verificación de clave de acceso fallida - no se recibió respuesta",
"noRedirectProvided": "Verificación de clave de acceso completada pero no se proporcionó redirección",
"couldNotRetrievePasskey": "Ocurrió un error al recuperar la clave de acceso",
"verificationCancelled": "La verificación de clave de acceso fue cancelada",
"verificationFailed": "Ocurrió un error durante la verificación de clave de acceso",
"couldNotFindSession": "No se pudo encontrar la sesión",
"couldNotUpdateSession": "No se pudo actualizar la sesión",
"userNotFound": "Usuario no encontrado en el sistema",
"couldNotDetermineRedirect": "No se pudo determinar la URL de redirección después de la verificación de clave de acceso",
"couldNotSetSession": "No se pudo establecer la sesión",
"couldNotGetUser": "No se pudieron recuperar los datos del usuario",
"couldNotRetrieveSessionCookie": "No se pudo recuperar la cookie de sesión"
}
},
"set": {
"title": "Configurar una clave de acceso",
"description": "Tu dispositivo pedirá tu huella digital, rostro o bloqueo de pantalla",
"info": {
"description": "Una clave de acceso es un método de autenticación en un dispositivo como tu huella digital, Apple FaceID o similar.",
"link": "Autenticación sin contraseña"
},
"skip": "Omitir",
"submit": "Continuar"
}
},
"u2f": {
"verify": {
"title": "Verificar autenticación de 2 factores",
"description": "Verifica tu cuenta con tu dispositivo."
},
"set": {
"title": "Configurar autenticación de 2 factores",
"description": "Configura un dispositivo como segundo factor.",
"submit": "Continuar"
}
},
"register": {
"methods": {
"passkey": "Clave de acceso",
"password": "Contraseña"
},
"disabled": {
"title": "Registro deshabilitado",
"description": "Registrarse está deshabilitado en este momento."
},
"missingdata": {
"title": "Datos faltantes",
"description": "No se proporcionaron datos suficientes para el registro."
},
"title": "Registrarse",
"description": "Crea tu cuenta ZITADEL.",
"noMethodAvailableWarning": "No hay métodos de autenticación disponibles. Por favor, contacta a tu administrador.",
"selectMethod": "Selecciona el método con el que deseas autenticarte",
"agreeTo": "Para registrarte debes aceptar los términos y condiciones",
"termsOfService": "Términos de Servicio",
"privacyPolicy": "Política de Privacidad",
"submit": "Continuar",
"password": {
"title": "Establecer Contraseña",
"description": "Establece la contraseña para tu cuenta",
"submit": "Continuar",
"labels": {
"password": "Contraseña",
"confirmPassword": "Confirmar contraseña"
},
"required": {
"password": "¡Debes proporcionar una contraseña!",
"confirmPassword": "Este campo es obligatorio"
}
},
"labels": {
"firstname": "Nombre",
"lastname": "Apellidos",
"email": "Correo electrónico"
},
"required": {
"firstname": "Este campo es obligatorio",
"lastname": "Este campo es obligatorio",
"email": "Este campo es obligatorio"
},
"errors": {
"couldNotCreateUser": "No se pudo crear el usuario",
"couldNotCreateSession": "No se pudo crear la sesión",
"userNotFound": "Usuario no encontrado en el sistema",
"couldNotLinkIDP": "No se pudo vincular el IdP al usuario",
"couldNotRegisterUser": "No se pudo registrar el usuario"
}
},
"invite": {
"title": "Invitar usuario",
"description": "Introduce el correo electrónico del usuario que deseas invitar.",
"info": "El usuario recibirá un correo electrónico con un enlace para completar el registro.",
"notAllowed": "No tienes permiso para invitar usuarios.",
"submit": "Invitar usuario",
"success": {
"title": "¡Usuario invitado!",
"description": "El usuario ha sido invitado.",
"verified": "El usuario ha sido invitado y ya ha verificado su correo electrónico.",
"notVerifiedYet": "El usuario ha sido invitado. Recibirá un correo electrónico con más instrucciones.",
"submit": "Invitar a otro usuario"
}
},
"signedin": {
"title": "¡Bienvenido {user}!",
"description": "Has iniciado sesión.",
"continue": "Continuar",
"error": {
"title": "Error",
"description": "Ocurrió un error al iniciar sesión."
}
},
"verify": {
"userIdMissing": "¡No se proporcionó userId!",
"successTitle": "Usuario verificado",
"successDescription": "El usuario ha sido verificado con éxito.",
"setupAuthenticator": "Configurar autenticador",
"verify": {
"title": "Verificar usuario",
"description": "Introduce el código proporcionado en el correo electrónico de verificación.",
"noCodeReceived": "¿No recibiste un código?",
"resendCode": "Reenviar código",
"codeSent": "Se ha enviado un código a tu dirección de correo electrónico.",
"submit": "Continuar",
"labels": {
"code": "Código"
},
"required": {
"code": "Este campo es obligatorio"
}
},
"errors": {
"couldNotResendEmail": "No se pudo reenviar el correo electrónico",
"couldNotVerifyUser": "No se pudo verificar al usuario",
"couldNotVerifyInvite": "No se pudo verificar la invitación",
"couldNotVerifyEmail": "No se pudo verificar el correo electrónico",
"couldNotVerify": "No se pudo verificar",
"couldNotLoadUser": "No se pudo cargar al usuario",
"couldNotLoadAuthenticators": "No se pudieron cargar los autenticadores posibles",
"couldNotCreateSession": "No se pudo crear la sesión",
"noHostFound": "No se encontró el host",
"userAlreadyVerified": "¡El usuario ya está verificado!",
"couldNotResendInvite": "No se pudo reenviar la invitación",
"inviteSendFailed": "No se pudo enviar el correo de invitación",
"emailSendFailed": "No se pudo enviar el correo de verificación"
}
},
"authenticator": {
"title": "Seleccionar método de autenticación",
"description": "Selecciona el método con el que deseas autenticarte",
"noMethodsAvailable": "No hay métodos de autenticación disponibles",
"allSetup": "¡Ya has configurado un autenticador!",
"linkWithIDP": "o vincúlalo con un proveedor de identidad"
},
"device": {
"usercode": {
"title": "Código del dispositivo",
"description": "Introduce el código.",
"submit": "Continuar",
"labels": {
"code": "Código"
},
"required": {
"code": "Este campo es obligatorio"
}
},
"request": {
"title": "{appName} desea conectarse:",
"description": "{appName} tendrá acceso a:",
"disclaimer": "Al hacer clic en Permitir, autorizas a {appName} y a Zitadel a usar tu información de acuerdo con sus respectivos términos de servicio y políticas de privacidad. Puedes revocar este acceso en cualquier momento.",
"submit": "Permitir",
"deny": "Denegar"
},
"scope": {
"openid": "Verifica tu identidad.",
"email": "Accede a tu dirección de correo electrónico.",
"profile": "Accede a la información completa de tu perfil.",
"offline_access": "Permitir acceso sin conexión a tu cuenta."
}
},
"error": {
"noUserCode": "¡No se proporcionó código de usuario!",
"noDeviceRequest": "No se encontró ninguna solicitud de dispositivo.",
"unknownContext": "No se pudo obtener el contexto del usuario. Asegúrate de ingresar primero el nombre de usuario o proporcionar un loginName como parámetro de búsqueda.",
"sessionExpired": "Tu sesión actual ha expirado. Por favor, inicia sesión de nuevo.",
"failedLoading": "No se pudieron cargar los datos. Por favor, inténtalo de nuevo.",
"tryagain": "Intentar de nuevo",
"couldNotContinueSession": "No se pudo continuar con la sesión - falta información del usuario"
}
}