From c5a2fbcba7ca2e1d86ad0c8113e49c14155e6fd9 Mon Sep 17 00:00:00 2001 From: SherlynS Date: Sun, 21 Jun 2026 20:59:34 -0400 Subject: [PATCH 1/4] creating new es-ES file --- packages/i18n/src/translations/es-ES.ts | 192 ++++++++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 packages/i18n/src/translations/es-ES.ts diff --git a/packages/i18n/src/translations/es-ES.ts b/packages/i18n/src/translations/es-ES.ts new file mode 100644 index 000000000..dd12f1a11 --- /dev/null +++ b/packages/i18n/src/translations/es-ES.ts @@ -0,0 +1,192 @@ +/** + * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com). + * + * WSO2 LLC. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/* eslint-disable sort-keys */ +/* eslint-disable @typescript-eslint/naming-convention */ + +import {I18nTranslations, I18nMetadata, I18nBundle} from '../models/i18n'; + +const translations: I18nTranslations = { + /* |---------------------------------------------------------------| */ + /* | Elements | */ + /* |---------------------------------------------------------------| */ + + /* Buttons */ + 'elements.buttons.signin.text': 'Sign In', + 'elements.buttons.signout.text': 'Sign Out', + 'elements.buttons.signup.text': 'Sign Up', + 'elements.buttons.submit.text': 'Continue', + 'elements.buttons.facebook.text': 'Continue with Facebook', + 'elements.buttons.google.text': 'Continue with Google', + 'elements.buttons.github.text': 'Continue with GitHub', + 'elements.buttons.microsoft.text': 'Continue with Microsoft', + 'elements.buttons.linkedin.text': 'Continue with LinkedIn', + 'elements.buttons.ethereum.text': 'Continue with Sign In Ethereum', + 'elements.buttons.smsotp.text': 'Continue with SMS OTP', + 'elements.buttons.multi.option.text': 'Continue with {connection}', + 'elements.buttons.social.text': 'Continue with {connection}', + + /* Display */ + 'elements.display.divider.or_separator': 'OR', + 'elements.display.copyable_text.copy': 'Copy', + 'elements.display.copyable_text.copied': 'Copied!', + + /* Fields */ + 'elements.fields.generic.placeholder': 'Enter your {field}', + 'elements.fields.username.label': 'Username', + 'elements.fields.username.placeholder': 'Enter your username', + 'elements.fields.password.label': 'Password', + 'elements.fields.password.placeholder': 'Enter your password', + 'elements.fields.first_name.label': 'First Name', + 'elements.fields.first_name.placeholder': 'Enter your first name', + 'elements.fields.last_name.label': 'Last Name', + 'elements.fields.last_name.placeholder': 'Enter your last name', + 'elements.fields.email.label': 'Email', + 'elements.fields.email.placeholder': 'Enter your email', + 'elements.fields.organization.name.label': 'Organization Name', + 'elements.fields.organization.handle.label': 'Organization Handle', + 'elements.fields.organization.description.label': 'Organization Description', + 'elements.fields.organization.select.label': 'Select Organization', + 'elements.fields.organization.select.placeholder': 'Choose an organization', + + /* Validation */ + 'validations.required.field.error': 'This field is required', + + /* |---------------------------------------------------------------| */ + /* | Widgets | */ + /* |---------------------------------------------------------------| */ + + /* Base Sign In */ + 'signin.heading': 'Sign In', + 'signin.subheading': 'Welcome back! Please sign in to continue.', + + /* Base Sign Up */ + 'signup.heading': 'Sign Up', + 'signup.subheading': 'Create a new account to get started.', + + /* Email OTP */ + 'email.otp.heading': 'OTP Verification', + 'email.otp.subheading': 'Enter the code sent to your email address.', + 'email.otp.buttons.submit.text': 'Continue', + + /* Identifier First */ + 'identifier.first.heading': 'Sign In', + 'identifier.first.subheading': 'Enter your username or email address.', + 'identifier.first.buttons.submit.text': 'Continue', + + /* SMS OTP */ + 'sms.otp.heading': 'OTP Verification', + 'sms.otp.subheading': 'Enter the code sent to your phone number.', + 'sms.otp.buttons.submit.text': 'Continue', + + /* TOTP */ + 'totp.heading': 'Verify Your Identity', + 'totp.subheading': 'Enter the code from your authenticator app.', + 'totp.buttons.submit.text': 'Continue', + + /* Username Password */ + 'username.password.heading': 'Sign In', + 'username.password.subheading': 'Enter your username and password to continue.', + 'username.password.buttons.submit.text': 'Continue', + + /* Passkeys */ + 'passkey.button.use': 'Sign in with Passkey', + 'passkey.signin.heading': 'Sign in with Passkey', + 'passkey.register.heading': 'Register Passkey', + 'passkey.register.description': 'Create a passkey to securely sign in to your account without a password.', + + /* |---------------------------------------------------------------| */ + /* | User Profile | */ + /* |---------------------------------------------------------------| */ + + 'user.profile.heading': 'Profile', + 'user.profile.update.generic.error': 'An error occurred while updating your profile. Please try again.', + + /* |---------------------------------------------------------------| */ + /* | Organization Switcher | */ + /* |---------------------------------------------------------------| */ + + 'organization.switcher.switch.organization': 'Switch Organization', + 'organization.switcher.loading.placeholder.organizations': 'Loading organizations...', + 'organization.switcher.members': 'members', + 'organization.switcher.member': 'member', + 'organization.switcher.create.organization': 'Create Organization', + 'organization.switcher.manage.organizations': 'Manage Organizations', + 'organization.switcher.buttons.manage.text': 'Manage', + 'organization.switcher.organizations.heading': 'Organizations', + 'organization.switcher.buttons.switch.text': 'Switch', + 'organization.switcher.no.access': 'No Access', + 'organization.switcher.status.label': 'Status:', + 'organization.switcher.showing.count': 'Showing {showing} of {total} organizations', + 'organization.switcher.buttons.refresh.text': 'Refresh', + 'organization.switcher.buttons.load_more.text': 'Load More Organizations', + 'organization.switcher.loading.more': 'Loading...', + 'organization.switcher.no.organizations': 'No organizations found', + 'organization.switcher.error.prefix': 'Error:', + + 'organization.profile.heading': 'Organization Profile', + 'organization.profile.loading': 'Loading organization...', + 'organization.profile.error': 'Failed to load organization', + + 'organization.create.heading': 'Create Organization', + 'organization.create.buttons.create_organization.text': 'Create Organization', + 'organization.create.buttons.create_organization.loading.text': 'Creating...', + 'organization.create.buttons.cancel.text': 'Cancel', + + /* |---------------------------------------------------------------| */ + /* | Messages | */ + /* |---------------------------------------------------------------| */ + + 'messages.loading.placeholder': 'Loading...', + + /* |---------------------------------------------------------------| */ + /* | Errors | */ + /* |---------------------------------------------------------------| */ + + 'errors.heading': 'Error', + 'errors.signin.components.not.available': 'Sign-in form is not available at the moment. Please try again later.', + 'errors.signin.initialization': 'An error occurred while initializing. Please try again later.', + 'errors.signin.flow.failure': 'An error occurred during the sign-in flow. Please try again later.', + 'errors.signin.flow.completion.failure': + 'An error occurred while completing the sign-in flow. Please try again later.', + 'errors.signin.flow.passkeys.failure': 'An error occurred while signing in with passkeys. Please try again later.', + 'errors.signin.flow.passkeys.completion.failure': + 'An error occurred while completing the passkeys sign-in flow. Please try again later.', + 'errors.signin.timeout': 'Time allowed to complete the step has expired.', + + 'errors.signup.initialization': 'An error occurred while initializing. Please try again later.', + 'errors.signup.flow.failure': 'An error occurred during the sign-up flow. Please try again later.', + 'errors.signup.flow.initialization.failure': + 'An error occurred while initializing the sign-up flow. Please try again later.', + 'errors.signup.components.not.available': 'Sign-up form is not available at the moment. Please try again later.', +}; + +const metadata: I18nMetadata = { + localeCode: 'en-US', + countryCode: 'US', + languageCode: 'en', + displayName: 'English (United States)', + direction: 'ltr', +}; + +const en_US: I18nBundle = { + metadata, + translations, +}; + +export default en_US; From d886e643b680a94a3127dc537ff5f4a0985a1c78 Mon Sep 17 00:00:00 2001 From: SherlynS Date: Sun, 21 Jun 2026 22:48:31 -0400 Subject: [PATCH 2/4] made changes to translation for button section, along with meta data obj and export bundle section --- packages/i18n/src/translations/es-ES.ts | 40 ++++++++++++------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/packages/i18n/src/translations/es-ES.ts b/packages/i18n/src/translations/es-ES.ts index dd12f1a11..04caf1dc8 100644 --- a/packages/i18n/src/translations/es-ES.ts +++ b/packages/i18n/src/translations/es-ES.ts @@ -19,7 +19,7 @@ /* eslint-disable sort-keys */ /* eslint-disable @typescript-eslint/naming-convention */ -import {I18nTranslations, I18nMetadata, I18nBundle} from '../models/i18n'; +import { I18nTranslations, I18nMetadata, I18nBundle } from '../models/i18n'; const translations: I18nTranslations = { /* |---------------------------------------------------------------| */ @@ -27,19 +27,19 @@ const translations: I18nTranslations = { /* |---------------------------------------------------------------| */ /* Buttons */ - 'elements.buttons.signin.text': 'Sign In', - 'elements.buttons.signout.text': 'Sign Out', - 'elements.buttons.signup.text': 'Sign Up', - 'elements.buttons.submit.text': 'Continue', - 'elements.buttons.facebook.text': 'Continue with Facebook', - 'elements.buttons.google.text': 'Continue with Google', - 'elements.buttons.github.text': 'Continue with GitHub', - 'elements.buttons.microsoft.text': 'Continue with Microsoft', - 'elements.buttons.linkedin.text': 'Continue with LinkedIn', - 'elements.buttons.ethereum.text': 'Continue with Sign In Ethereum', - 'elements.buttons.smsotp.text': 'Continue with SMS OTP', - 'elements.buttons.multi.option.text': 'Continue with {connection}', - 'elements.buttons.social.text': 'Continue with {connection}', + 'elements.buttons.signin.text': 'Iniciar sesión', + 'elements.buttons.signout.text': 'Cerrar sesión', + 'elements.buttons.signup.text': 'Registrarse', + 'elements.buttons.submit.text': 'Continuar', + 'elements.buttons.facebook.text': 'Continuar con Facebook', + 'elements.buttons.google.text': 'Continuar con Google', + 'elements.buttons.github.text': 'Continuar con GitHub', + 'elements.buttons.microsoft.text': 'Continuar con Microsoft', + 'elements.buttons.linkedin.text': 'Continuar con LinkedIn', + 'elements.buttons.ethereum.text': 'Continuar con Iniciar sesión con Ethereum', + 'elements.buttons.smsotp.text': 'Continuar con SMS OTP', + 'elements.buttons.multi.option.text': 'Continuar con {connection}', + 'elements.buttons.social.text': 'Continuar con {connection}', /* Display */ 'elements.display.divider.or_separator': 'OR', @@ -177,16 +177,16 @@ const translations: I18nTranslations = { }; const metadata: I18nMetadata = { - localeCode: 'en-US', - countryCode: 'US', - languageCode: 'en', - displayName: 'English (United States)', + localeCode: 'es-ES', + countryCode: 'ES', + languageCode: 'es', + displayName: 'Español (España)', direction: 'ltr', }; -const en_US: I18nBundle = { +const es_ES: I18nBundle = { metadata, translations, }; -export default en_US; +export default es_ES; From 62d29b985558d0b6f07475cb98d6be36e6721115 Mon Sep 17 00:00:00 2001 From: SherlynS Date: Tue, 23 Jun 2026 23:56:15 -0400 Subject: [PATCH 3/4] simple modification to start testing translation --- packages/i18n/src/translations/index.ts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/packages/i18n/src/translations/index.ts b/packages/i18n/src/translations/index.ts index ebb1a139c..c95692c5a 100644 --- a/packages/i18n/src/translations/index.ts +++ b/packages/i18n/src/translations/index.ts @@ -16,11 +16,12 @@ * under the License. */ -export {default as en_US} from './en-US'; -export {default as fr_FR} from './fr-FR'; -export {default as te_IN} from './te-IN'; -export {default as hi_IN} from './hi-IN'; -export {default as pt_BR} from './pt-BR'; -export {default as pt_PT} from './pt-PT'; -export {default as ta_IN} from './ta-IN'; -export {default as si_LK} from './si-LK'; +export { default as es_ES } from './es-ES'; +export { default as en_US } from './en-US'; +export { default as fr_FR } from './fr-FR'; +export { default as te_IN } from './te-IN'; +export { default as hi_IN } from './hi-IN'; +export { default as pt_BR } from './pt-BR'; +export { default as pt_PT } from './pt-PT'; +export { default as ta_IN } from './ta-IN'; +export { default as si_LK } from './si-LK'; From 0203a29ddb99fa059cbd2e944fb7f9c2a0eca2b1 Mon Sep 17 00:00:00 2001 From: SherlynS Date: Sun, 28 Jun 2026 23:57:30 -0400 Subject: [PATCH 4/4] full spanish support for Asgardeo JavaScript SDK --- .changeset/spanish-translation-bundle.md | 5 + packages/i18n/src/translations/es-ES.ts | 158 +++++++++++------------ 2 files changed, 84 insertions(+), 79 deletions(-) create mode 100644 .changeset/spanish-translation-bundle.md diff --git a/.changeset/spanish-translation-bundle.md b/.changeset/spanish-translation-bundle.md new file mode 100644 index 000000000..aeac9cf17 --- /dev/null +++ b/.changeset/spanish-translation-bundle.md @@ -0,0 +1,5 @@ +--- +"@asgardeo/i18n": minor +--- + +Added to the Asgardeo JavaScript SDK support for Spanish (Español - es-ES). Overall accessibility for Spanish-speaking users. \ No newline at end of file diff --git a/packages/i18n/src/translations/es-ES.ts b/packages/i18n/src/translations/es-ES.ts index 04caf1dc8..acdf2ea5c 100644 --- a/packages/i18n/src/translations/es-ES.ts +++ b/packages/i18n/src/translations/es-ES.ts @@ -42,138 +42,138 @@ const translations: I18nTranslations = { 'elements.buttons.social.text': 'Continuar con {connection}', /* Display */ - 'elements.display.divider.or_separator': 'OR', - 'elements.display.copyable_text.copy': 'Copy', - 'elements.display.copyable_text.copied': 'Copied!', + 'elements.display.divider.or_separator': 'O', + 'elements.display.copyable_text.copy': 'Copiar', + 'elements.display.copyable_text.copied': 'Copiado!', /* Fields */ - 'elements.fields.generic.placeholder': 'Enter your {field}', - 'elements.fields.username.label': 'Username', - 'elements.fields.username.placeholder': 'Enter your username', - 'elements.fields.password.label': 'Password', - 'elements.fields.password.placeholder': 'Enter your password', - 'elements.fields.first_name.label': 'First Name', - 'elements.fields.first_name.placeholder': 'Enter your first name', - 'elements.fields.last_name.label': 'Last Name', - 'elements.fields.last_name.placeholder': 'Enter your last name', + 'elements.fields.generic.placeholder': 'Ingresa tu {field}', + 'elements.fields.username.label': 'Nombre de usuario', + 'elements.fields.username.placeholder': 'Ingresa tu nombre de usuario', + 'elements.fields.password.label': 'Contraseña', + 'elements.fields.password.placeholder': 'Ingresa tu Contraseña', + 'elements.fields.first_name.label': 'Nombre', + 'elements.fields.first_name.placeholder': 'Ingresa tu nombre', + 'elements.fields.last_name.label': 'Apellido', + 'elements.fields.last_name.placeholder': 'Ingresa tu apellido', 'elements.fields.email.label': 'Email', - 'elements.fields.email.placeholder': 'Enter your email', - 'elements.fields.organization.name.label': 'Organization Name', - 'elements.fields.organization.handle.label': 'Organization Handle', - 'elements.fields.organization.description.label': 'Organization Description', - 'elements.fields.organization.select.label': 'Select Organization', - 'elements.fields.organization.select.placeholder': 'Choose an organization', + 'elements.fields.email.placeholder': 'Correo electrónico', + 'elements.fields.organization.name.label': 'Nombre de la organización', + 'elements.fields.organization.handle.label': 'Identificador de la organización', + 'elements.fields.organization.description.label': 'Descripción de la organización', + 'elements.fields.organization.select.label': 'Seleccionar organización', + 'elements.fields.organization.select.placeholder': 'Elige una organización', /* Validation */ - 'validations.required.field.error': 'This field is required', + 'validations.required.field.error': 'Este campo es obligatorio', /* |---------------------------------------------------------------| */ /* | Widgets | */ /* |---------------------------------------------------------------| */ /* Base Sign In */ - 'signin.heading': 'Sign In', - 'signin.subheading': 'Welcome back! Please sign in to continue.', + 'signin.heading': 'Iniciar sesión', + 'signin.subheading': 'Bienvenido de nuevo! Por favor, inicia sesión para continuar.', /* Base Sign Up */ - 'signup.heading': 'Sign Up', - 'signup.subheading': 'Create a new account to get started.', + 'signup.heading': 'Regístrate', + 'signup.subheading': 'Crea una nueva cuenta para empezar.', /* Email OTP */ - 'email.otp.heading': 'OTP Verification', - 'email.otp.subheading': 'Enter the code sent to your email address.', - 'email.otp.buttons.submit.text': 'Continue', + 'email.otp.heading': 'Verificación de OTP', + 'email.otp.subheading': 'Ingresa el código que te enviamos a tu correo electrónico.', + 'email.otp.buttons.submit.text': 'Continuar', /* Identifier First */ - 'identifier.first.heading': 'Sign In', - 'identifier.first.subheading': 'Enter your username or email address.', - 'identifier.first.buttons.submit.text': 'Continue', + 'identifier.first.heading': 'Iniciar sesión', + 'identifier.first.subheading': 'Ingresa tu nombre de usuario o dirección de correo.', + 'identifier.first.buttons.submit.text': 'Continuar', /* SMS OTP */ - 'sms.otp.heading': 'OTP Verification', - 'sms.otp.subheading': 'Enter the code sent to your phone number.', - 'sms.otp.buttons.submit.text': 'Continue', + 'sms.otp.heading': 'Verificación de OTP', + 'sms.otp.subheading': 'Ingresa el código que te enviaron a tu número de teléfono.', + 'sms.otp.buttons.submit.text': 'Continuar', /* TOTP */ - 'totp.heading': 'Verify Your Identity', - 'totp.subheading': 'Enter the code from your authenticator app.', - 'totp.buttons.submit.text': 'Continue', + 'totp.heading': 'Verifica tu identidad', + 'totp.subheading': 'Introduce el código de tu aplicación de autenticación.', + 'totp.buttons.submit.text': 'Continuar', /* Username Password */ - 'username.password.heading': 'Sign In', - 'username.password.subheading': 'Enter your username and password to continue.', - 'username.password.buttons.submit.text': 'Continue', + 'username.password.heading': 'Iniciar sesión', + 'username.password.subheading': 'Ingresa tu usuario y contraseña para continuar.', + 'username.password.buttons.submit.text': 'Continuar', /* Passkeys */ - 'passkey.button.use': 'Sign in with Passkey', - 'passkey.signin.heading': 'Sign in with Passkey', - 'passkey.register.heading': 'Register Passkey', - 'passkey.register.description': 'Create a passkey to securely sign in to your account without a password.', + 'passkey.button.use': 'Iniciar sesión con clave de acceso', + 'passkey.signin.heading': 'Iniciar sesión con clave de acceso', + 'passkey.register.heading': 'Registrar clave de acceso', + 'passkey.register.description': 'Crea una clave de acceso para iniciar sesión en tu cuenta de manera segura sin contraseña.', /* |---------------------------------------------------------------| */ /* | User Profile | */ /* |---------------------------------------------------------------| */ - 'user.profile.heading': 'Profile', - 'user.profile.update.generic.error': 'An error occurred while updating your profile. Please try again.', + 'user.profile.heading': 'Perfil', + 'user.profile.update.generic.error': 'Ocurrió un error al actualizar tu perfil. Por favor, inténtalo de nuevo.', /* |---------------------------------------------------------------| */ /* | Organization Switcher | */ /* |---------------------------------------------------------------| */ - 'organization.switcher.switch.organization': 'Switch Organization', - 'organization.switcher.loading.placeholder.organizations': 'Loading organizations...', - 'organization.switcher.members': 'members', - 'organization.switcher.member': 'member', - 'organization.switcher.create.organization': 'Create Organization', - 'organization.switcher.manage.organizations': 'Manage Organizations', - 'organization.switcher.buttons.manage.text': 'Manage', - 'organization.switcher.organizations.heading': 'Organizations', - 'organization.switcher.buttons.switch.text': 'Switch', - 'organization.switcher.no.access': 'No Access', - 'organization.switcher.status.label': 'Status:', - 'organization.switcher.showing.count': 'Showing {showing} of {total} organizations', - 'organization.switcher.buttons.refresh.text': 'Refresh', - 'organization.switcher.buttons.load_more.text': 'Load More Organizations', - 'organization.switcher.loading.more': 'Loading...', - 'organization.switcher.no.organizations': 'No organizations found', + 'organization.switcher.switch.organization': 'Cambiar de organización', + 'organization.switcher.loading.placeholder.organizations': 'Cargando organizaciones...', + 'organization.switcher.members': 'miembros', + 'organization.switcher.member': 'miembro', + 'organization.switcher.create.organization': 'Crear organización', + 'organization.switcher.manage.organizations': 'Administrar organizaciones', + 'organization.switcher.buttons.manage.text': 'Administrar', + 'organization.switcher.organizations.heading': 'Organizaciones', + 'organization.switcher.buttons.switch.text': 'Cambiar', + 'organization.switcher.no.access': 'Sin Acceso', + 'organization.switcher.status.label': 'Estatus:', + 'organization.switcher.showing.count': 'Mostrando {showing} de {total} organizaciones', + 'organization.switcher.buttons.refresh.text': 'Actualizar', + 'organization.switcher.buttons.load_more.text': 'Cargar más organizaciones', + 'organization.switcher.loading.more': 'Cargando...', + 'organization.switcher.no.organizations': 'No se encontraron organizaciones', 'organization.switcher.error.prefix': 'Error:', - 'organization.profile.heading': 'Organization Profile', - 'organization.profile.loading': 'Loading organization...', - 'organization.profile.error': 'Failed to load organization', + 'organization.profile.heading': 'Perfil de la organización', + 'organization.profile.loading': 'Cargando organización...', + 'organization.profile.error': 'No se pudo cargar la organización', - 'organization.create.heading': 'Create Organization', - 'organization.create.buttons.create_organization.text': 'Create Organization', - 'organization.create.buttons.create_organization.loading.text': 'Creating...', - 'organization.create.buttons.cancel.text': 'Cancel', + 'organization.create.heading': 'Crear organización', + 'organization.create.buttons.create_organization.text': 'Crear organización', + 'organization.create.buttons.create_organization.loading.text': 'Creando...', + 'organization.create.buttons.cancel.text': 'Cancelar', /* |---------------------------------------------------------------| */ /* | Messages | */ /* |---------------------------------------------------------------| */ - 'messages.loading.placeholder': 'Loading...', + 'messages.loading.placeholder': 'Cargando...', /* |---------------------------------------------------------------| */ /* | Errors | */ /* |---------------------------------------------------------------| */ 'errors.heading': 'Error', - 'errors.signin.components.not.available': 'Sign-in form is not available at the moment. Please try again later.', - 'errors.signin.initialization': 'An error occurred while initializing. Please try again later.', - 'errors.signin.flow.failure': 'An error occurred during the sign-in flow. Please try again later.', + 'errors.signin.components.not.available': 'El formulario de inicio de sesión no está disponible en este momento. Por favor, inténtalo de nuevo más tarde.', + 'errors.signin.initialization': 'Ocurrió un error al iniciar. Por favor, inténtalo de nuevo más tarde.', + 'errors.signin.flow.failure': 'Ocurrió un error durante el proceso de inicio de sesión. Por favor, inténtalo de nuevo más tarde.', 'errors.signin.flow.completion.failure': - 'An error occurred while completing the sign-in flow. Please try again later.', - 'errors.signin.flow.passkeys.failure': 'An error occurred while signing in with passkeys. Please try again later.', + 'Ocurrió un error al completar el proceso de inicio de sesión. Por favor, inténtalo de nuevo más tarde.', + 'errors.signin.flow.passkeys.failure': 'Ocurrió un error al iniciar sesión con clave de acceso. Por favor, inténtalo de nuevo más tarde.', 'errors.signin.flow.passkeys.completion.failure': - 'An error occurred while completing the passkeys sign-in flow. Please try again later.', - 'errors.signin.timeout': 'Time allowed to complete the step has expired.', + 'Ocurrió un error al completar el inicio de sesión con claves de acceso. Por favor, intenta de nuevo más tarde.', + 'errors.signin.timeout': 'Se terminó el tiempo para completar el paso.', - 'errors.signup.initialization': 'An error occurred while initializing. Please try again later.', - 'errors.signup.flow.failure': 'An error occurred during the sign-up flow. Please try again later.', + 'errors.signup.initialization': 'Ocurrió un error al iniciar. Por favor, inténtalo de nuevo más tarde.', + 'errors.signup.flow.failure': 'Ocurrió un error durante el proceso de registro. Por favor, inténtalo de nuevo más tarde.', 'errors.signup.flow.initialization.failure': - 'An error occurred while initializing the sign-up flow. Please try again later.', - 'errors.signup.components.not.available': 'Sign-up form is not available at the moment. Please try again later.', + 'Ocurrió un error al iniciar el proceso de registro. Por favor, inténtalo de nuevo más tarde.', + 'errors.signup.components.not.available': 'El formulario de registro no está disponible en este momento. Por favor, inténtalo de nuevo más tarde.', }; const metadata: I18nMetadata = {