From fe5cc919d71d5890b9336f9e8c9b2c1bb1b6a05c Mon Sep 17 00:00:00 2001 From: Logan Rasmussen Date: Wed, 6 May 2026 10:44:03 -0600 Subject: [PATCH 1/4] wip - translations --- src/const/language/es.json | 14 ++ src/const/language/es.po | 73 +++++++- src/const/language/frCa.json | 29 ++++ src/const/language/frCa.po | 161 +++++++++++++++++- .../actionableError/useActionableErrorMap.tsx | 17 ++ 5 files changed, 290 insertions(+), 4 deletions(-) diff --git a/src/const/language/es.json b/src/const/language/es.json index b530c6d907..6510fe4823 100644 --- a/src/const/language/es.json +++ b/src/const/language/es.json @@ -415,6 +415,20 @@ "To complete your connection, please %1share%2 the following after signing in:": "Para completar su conexión, por favor, %1comparta%2 lo siguiente después de iniciar sesión:", "Demo mode active": "Modo de demostración activo", "Live institutions are not available in the demo environment. Please select *MX Bank* to test the connection process.": "Las instituciones en vivo no están disponibles en el entorno de demostración. Seleccione *MX Bank* para probar el proceso de conexión.", + "Connection unavailable": "Conexión no disponible", + "This institution is experiencing issues that prevent successful connections. It's unclear when this will be resolved.": "Esta institución está experimentando problemas que impiden establecer conexiones exitosas. No está claro cuándo se resolverá esta situación.", + "Back": "Retroceder", + "We couldn't find any accounts eligible for transfers. Please link a checking or savings account.": "No pudimos encontrar ninguna cuenta que cumpla con los requisitos para realizar transferencias. Vincule, por favor, una cuenta corriente o de ahorros.", + "This may be due to closed accounts, revoked access, or a connection issue. Please try again later or connect a different institution.": "Esto puede deberse a cuentas cerradas, acceso revocado o un problema de conexión. Intente nuevamente más tarde o conecte una institución diferente.", + "We can’t access your accounts because some required permissions weren't granted.": "No podemos acceder a sus cuentas porque no se otorgaron algunos permisos requeridos.", + "Your code was incorrect or expired. Select an option to receive a new code.": "Su código fue incorrecto o caducó. Seleccione una opción para recibir un nuevo código.", + "Your answer was incorrect or didn't go through. Please try again.": "Su respuesta fue incorrecta o no se envió. Inténtelo de nuevo.", + "We didn’t receive your response in time. Please re-enter your answers.": "Su respuesta no llegó a tiempo. Vuelva a ingresar sus respuestas.", + "Your connection expired or was revoked. Log in to reconnect.": "Su conexión caducó o fue revocada. Inicie sesión para volver a conectarse.", + "The credentials provided are incorrect. Please try again.": "Las credenciales proporcionadas son incorrectas. Inténtelo de nuevo.", + "We’re unable to connect to this institution right now. Please try again later.": "Actualmente no podemos conectarnos a esta institución. Intente nuevamente más tarde.", + "The institution is temporarily unavailable due to maintenance. Please try again later.": "La institución no está disponible temporalmente debido a mantenimiento. Intente nuevamente más tarde.", + "This institution isn't responding right now. Please try again later.": "Esta institución no está respondiendo en este momento. Intente nuevamente más tarde.", "connect/disclosure/button\u0004Continue": "Continuar", "connect/disclosure/policy/text\u0004By clicking Continue, you agree to the ": "Al hacer clic en Continuar, tu aceptas la ", "connect/disclosure/policy/link\u0004MX Privacy Policy.": "Política de privacidad de Money Experience.", diff --git a/src/const/language/es.po b/src/const/language/es.po index 70082c4ff0..38ce53f7cd 100644 --- a/src/const/language/es.po +++ b/src/const/language/es.po @@ -309,8 +309,7 @@ msgstr "Elija una imagen" msgid "Oops! Something went wrong. Please try again later." msgstr "¡Oh, no! Algo salió mal. Inténtelo de nuevo más tarde." -#: src/components/support/SupportMenu.js -#: src/views/actionableError/useActionableErrorMap.tsx src/views/mfa/MFAStep.js +#: src/components/support/SupportMenu.js src/views/mfa/MFAStep.js #: src/views/loginError/SecondaryActions.js #: src/views/credentials/Credentials.js msgid "Get help" @@ -2092,3 +2091,73 @@ msgstr "" #: src/views/institutionStatusDetails/InstitutionStatusDetails.tsx msgid "Back" msgstr "Retroceder" + +#: src/views/oauth/WaitingForOAuth.js +msgid "Failed to synchronize member data" +msgstr "" + +#: src/views/actionableError/useActionableErrorMap.tsx +msgid "" +"We couldn't find any accounts eligible for transfers. Please link a checking " +"or savings account." +msgstr "" +"No pudimos encontrar ninguna cuenta que cumpla con los requisitos para " +"realizar transferencias. Vincule, por favor, una cuenta corriente o de " +"ahorros." + +#: src/views/actionableError/useActionableErrorMap.tsx +msgid "" +"This may be due to closed accounts, revoked access, or a connection issue. " +"Please try again later or connect a different institution." +msgstr "" +"Esto puede deberse a cuentas cerradas, acceso revocado o un problema de " +"conexión. Intente nuevamente más tarde o conecte una institución diferente." + +#: src/views/actionableError/useActionableErrorMap.tsx +msgid "" +"We can’t access your accounts because some required permissions weren't " +"granted." +msgstr "" +"No podemos acceder a sus cuentas porque no se otorgaron algunos permisos " +"requeridos." + +msgid "" +"Your code was incorrect or expired. Select an option to receive a new code." +msgstr "" +"Su código fue incorrecto o caducó. Seleccione una opción para recibir un " +"nuevo código." + +msgid "Your answer was incorrect or didn't go through. Please try again." +msgstr "Su respuesta fue incorrecta o no se envió. Inténtelo de nuevo." + +msgid "We didn’t receive your response in time. Please re-enter your answers." +msgstr "Su respuesta no llegó a tiempo. Vuelva a ingresar sus respuestas." + +msgid "Your connection expired or was revoked. Log in to reconnect." +msgstr "" +"Su conexión caducó o fue revocada. Inicie sesión para volver a conectarse." + +msgid "The credentials provided are incorrect. Please try again." +msgstr "Las credenciales proporcionadas son incorrectas. Inténtelo de nuevo." + +#: src/views/actionableError/useActionableErrorMap.tsx +msgid "" +"We’re unable to connect to this institution right now. Please try again " +"later." +msgstr "" +"Actualmente no podemos conectarnos a esta institución. Intente nuevamente " +"más tarde." + +#: src/views/actionableError/useActionableErrorMap.tsx +msgid "" +"The institution is temporarily unavailable due to maintenance. Please try " +"again later." +msgstr "" +"La institución no está disponible temporalmente debido a mantenimiento. " +"Intente nuevamente más tarde." + +#: src/views/actionableError/useActionableErrorMap.tsx +msgid "This institution isn't responding right now. Please try again later." +msgstr "" +"Esta institución no está respondiendo en este momento. Intente nuevamente " +"más tarde." diff --git a/src/const/language/frCa.json b/src/const/language/frCa.json index 400b296399..0e2b124bba 100644 --- a/src/const/language/frCa.json +++ b/src/const/language/frCa.json @@ -416,6 +416,35 @@ "To complete your connection, please %1share%2 the following after signing in:": "Pour finaliser votre connexion, veuillez %1partager%2 les informations suivantes après vous être connecté :", "Demo mode active": "Mode démo actif", "Live institutions are not available in the demo environment. Please select *MX Bank* to test the connection process.": "Les établissements réels ne sont pas disponibles dans l'environnement de démonstration. Veuillez sélectionner *MX Bank* pour tester la procédure de connexion.", + "Connection unavailable": "Connexion indisponible", + "This institution is experiencing issues that prevent successful connections. It's unclear when this will be resolved.": "Cet établissement rencontre des problèmes qui empêchent d'établir des connexions. Il est difficile de déterminer quand la situation sera résolue.", + "Back": "Reculer", + "We couldn't find any accounts eligible for transfers. Please link a checking or savings account.": "Nous n'avons trouvé aucun compte admissible aux virements. Veuillez lier un compte chèques ou un compte d'épargne.", + "Successfully authenticated but no active or eligible accounts found. Verify account status at institution.": "Authentification réussie, mais aucun compte actif ou éligible trouvé. Vérifiez le statut du compte auprès de l'institution.", + "This may be due to closed accounts, revoked access, or a connection issue. Please try again later or connect a different institution.": "Cela peut être dû à des comptes fermés, un accès révoqué ou un problème de connexion. Veuillez réessayer plus tard ou connecter une autre institution.", + "OAuth access denied to required account data. User likely declined necessary permissions during OAuth flow. User may need to re-authorize and grant permissions.": "Accès OAuth refusé aux données de compte requises. L'utilisateur a probablement refusé les permissions nécessaires pendant le flux OAuth. L'utilisateur devra peut-être ré-autoriser et accorder les permissions.", + "We can’t access your accounts because some required permissions weren't granted.": "Nous ne pouvons pas accéder à vos comptes car certaines permissions requises n'ont pas été accordées.", + "Incorrect code": "Code incorrect", + "One-Time Password (OTP) authentication failed due to incorrect code. User may need to request a new OTP.": "L'authentification par mot de passe à usage unique (OTP) a échoué en raison d'un code incorrect. L'utilisateur devra peut-être demander un nouvel OTP.", + "Your code was incorrect or expired. Select an option to receive a new code.": "Votre code était incorrect ou a expiré. Sélectionnez une option pour recevoir un nouveau code.", + "Incorrect answer": "Réponse incorrecte", + "Multi-factor authentication failed due to incorrect answer. Verify MFA answer. User may need to select a different MFA method.": "L'authentification multifacteur a échoué en raison d'une réponse incorrecte. Vérifiez la réponse MFA. L'utilisateur devra peut-être choisir une méthode MFA différente.", + "Your answer was incorrect or didn't go through. Please try again.": "Votre réponse était incorrecte ou n'a pas été soumise. Veuillez réessayer.", + "Session timed out": "La session a expiré", + "Authentication challenge session timed out. User exceeded allowed time for MFA/OTP response.": "La session de défi d'authentification a expiré. L'utilisateur a dépassé le temps alloué pour la réponse MFA/OTP.", + "We didn’t receive your response in time. Please re-enter your answers.": "Nous n'avons pas reçu votre réponse à temps. Veuillez ressaisir vos réponses.", + "Connection expired": "Connexion expirée", + "OAuth reauthorization is required. User likely needs to re-grant access. Initiate OAuth re-authorization flow.": "Une réautorisation OAuth est requise. L'utilisateur doit probablement accorder à nouveau l'accès. Initiez le flux de réautorisation OAuth.", + "Your connection expired or was revoked. Log in to reconnect.": "Votre connexion a expiré ou a été révoquée. Connectez-vous pour vous reconnecter.", + "Invalid credentials": "Informations d'identification invalides", + "Authentication failed due to invalid credentials.": "L'authentification a échoué en raison de l'invalidité des informations d'identification.", + "The credentials provided are incorrect. Please try again.": "Les informations d'identification fournies sont incorrectes. Veuillez réessayer.", + "Financial institution is current down or unresponsive. Try again later.": "L'institution financière est actuellement hors service ou ne répond pas. Veuillez réessayer plus tard.", + "We’re unable to connect to this institution right now. Please try again later.": "Nous ne parvenons pas à nous connecter à cette institution pour le moment. Veuillez réessayer plus tard.", + "Financial institution is undergoing scheduled maintenance or is temporarily unavailable due to unscheduled maintenance. Try again later.": "L'institution financière subit une maintenance planifiée ou est temporairement indisponible en raison d'une maintenance imprévue. Veuillez réessayer plus tard.", + "The institution is temporarily unavailable due to maintenance. Please try again later.": "L'institution est temporairement indisponible en raison de la maintenance. Veuillez réessayer plus tard.", + "Financial institution is currently unavailable or response requests are timing out. Potential short-term technical issue.": "L'institution financière est actuellement indisponible ou les requêtes ont expiré. Il pourrait s'agir d’un problème technique temporaire.", + "This institution isn't responding right now. Please try again later.": "Cette institution ne répond pas pour le moment. Veuillez réessayer plus tard.", "connect/disclosure/policy/text\u0004By clicking Continue, you agree to the ": "En cliquant sur Continuer, vous acceptez la ", "connect/disclosure/policy/link\u0004MX Privacy Policy.": "Politique de confidentialité de MX.", "connect/disclosure/policy/link\u0004MX Privacy Policy": "Politique de confidentialité de MX.", diff --git a/src/const/language/frCa.po b/src/const/language/frCa.po index edd8c3537c..e103b52d1d 100644 --- a/src/const/language/frCa.po +++ b/src/const/language/frCa.po @@ -462,8 +462,7 @@ msgid "Oops! Something went wrong. Please try again later." msgstr "Attention : un problème est survenu. Veuillez réessayer plus tard." # TRANSLATED -#: src/components/support/SupportMenu.js -#: src/views/actionableError/useActionableErrorMap.tsx src/views/mfa/MFAStep.js +#: src/components/support/SupportMenu.js src/views/mfa/MFAStep.js #: src/views/loginError/SecondaryActions.js #: src/views/credentials/Credentials.js msgid "Get help" @@ -2171,3 +2170,161 @@ msgstr "" #: src/views/institutionStatusDetails/InstitutionStatusDetails.tsx msgid "Back" msgstr "Reculer" + +#: src/views/oauth/WaitingForOAuth.js +msgid "Failed to synchronize member data" +msgstr "" + +#: src/views/actionableError/useActionableErrorMap.tsx +msgid "" +"We couldn't find any accounts eligible for transfers. Please link a checking " +"or savings account." +msgstr "" +"Nous n'avons trouvé aucun compte admissible aux virements. Veuillez lier un " +"compte chèques ou un compte d'épargne." + +msgid "" +"Successfully authenticated but no active or eligible accounts found. Verify " +"account status at institution." +msgstr "" +"Authentification réussie, mais aucun compte actif ou éligible trouvé. " +"Vérifiez le statut du compte auprès de l'institution." + +#: src/views/actionableError/useActionableErrorMap.tsx +msgid "" +"This may be due to closed accounts, revoked access, or a connection issue. " +"Please try again later or connect a different institution." +msgstr "" +"Cela peut être dû à des comptes fermés, un accès révoqué ou un problème de " +"connexion. Veuillez réessayer plus tard ou connecter une autre institution." + +msgid "" +"OAuth access denied to required account data. User likely declined necessary " +"permissions during OAuth flow. User may need to re-authorize and grant " +"permissions." +msgstr "" +"Accès OAuth refusé aux données de compte requises. L'utilisateur a " +"probablement refusé les permissions nécessaires pendant le flux OAuth. " +"L'utilisateur devra peut-être ré-autoriser et accorder les permissions." + +#: src/views/actionableError/useActionableErrorMap.tsx +msgid "" +"We can’t access your accounts because some required permissions weren't " +"granted." +msgstr "" +"Nous ne pouvons pas accéder à vos comptes car certaines permissions requises " +"n'ont pas été accordées." + +msgid "Incorrect code" +msgstr "Code incorrect" + +msgid "" +"One-Time Password (OTP) authentication failed due to incorrect code. User " +"may need to request a new OTP." +msgstr "" +"L'authentification par mot de passe à usage unique (OTP) a échoué en raison " +"d'un code incorrect. L'utilisateur devra peut-être demander un nouvel OTP." + +msgid "" +"Your code was incorrect or expired. Select an option to receive a new code." +msgstr "" +"Votre code était incorrect ou a expiré. Sélectionnez une option pour " +"recevoir un nouveau code." + +msgid "Incorrect answer" +msgstr "Réponse incorrecte" + +msgid "" +"Multi-factor authentication failed due to incorrect answer. Verify MFA " +"answer. User may need to select a different MFA method." +msgstr "" +"L'authentification multifacteur a échoué en raison d'une réponse incorrecte. " +"Vérifiez la réponse MFA. L'utilisateur devra peut-être choisir une méthode " +"MFA différente." + +msgid "Your answer was incorrect or didn't go through. Please try again." +msgstr "" +"Votre réponse était incorrecte ou n'a pas été soumise. Veuillez réessayer." + +msgid "Session timed out" +msgstr "La session a expiré" + +msgid "" +"Authentication challenge session timed out. User exceeded allowed time for " +"MFA/OTP response." +msgstr "" +"La session de défi d'authentification a expiré. L'utilisateur a dépassé le " +"temps alloué pour la réponse MFA/OTP." + +msgid "We didn’t receive your response in time. Please re-enter your answers." +msgstr "" +"Nous n'avons pas reçu votre réponse à temps. Veuillez ressaisir vos réponses." + +msgid "Connection expired" +msgstr "Connexion expirée" + +msgid "" +"OAuth reauthorization is required. User likely needs to re-grant access. " +"Initiate OAuth re-authorization flow." +msgstr "" +"Une réautorisation OAuth est requise. L'utilisateur doit probablement " +"accorder à nouveau l'accès. Initiez le flux de réautorisation OAuth." + +msgid "Your connection expired or was revoked. Log in to reconnect." +msgstr "" +"Votre connexion a expiré ou a été révoquée. Connectez-vous pour vous " +"reconnecter." + +msgid "Invalid credentials" +msgstr "Informations d'identification invalides" + +msgid "Authentication failed due to invalid credentials." +msgstr "" +"L'authentification a échoué en raison de l'invalidité des informations " +"d'identification." + +msgid "The credentials provided are incorrect. Please try again." +msgstr "" +"Les informations d'identification fournies sont incorrectes. Veuillez " +"réessayer." + +msgid "Financial institution is current down or unresponsive. Try again later." +msgstr "" +"L'institution financière est actuellement hors service ou ne répond pas. " +"Veuillez réessayer plus tard." + +#: src/views/actionableError/useActionableErrorMap.tsx +msgid "" +"We’re unable to connect to this institution right now. Please try again " +"later." +msgstr "" +"Nous ne parvenons pas à nous connecter à cette institution pour le moment. " +"Veuillez réessayer plus tard." + +msgid "" +"Financial institution is undergoing scheduled maintenance or is temporarily " +"unavailable due to unscheduled maintenance. Try again later." +msgstr "" +"L'institution financière subit une maintenance planifiée ou est " +"temporairement indisponible en raison d'une maintenance imprévue. Veuillez " +"réessayer plus tard." + +#: src/views/actionableError/useActionableErrorMap.tsx +msgid "" +"The institution is temporarily unavailable due to maintenance. Please try " +"again later." +msgstr "" +"L'institution est temporairement indisponible en raison de la maintenance. " +"Veuillez réessayer plus tard." + +msgid "" +"Financial institution is currently unavailable or response requests are " +"timing out. Potential short-term technical issue." +msgstr "" +"L'institution financière est actuellement indisponible ou les requêtes ont " +"expiré. Il pourrait s'agir d’un problème technique temporaire." + +#: src/views/actionableError/useActionableErrorMap.tsx +msgid "This institution isn't responding right now. Please try again later." +msgstr "" +"Cette institution ne répond pas pour le moment. Veuillez réessayer plus tard." diff --git a/src/views/actionableError/useActionableErrorMap.tsx b/src/views/actionableError/useActionableErrorMap.tsx index 22a86f7f7f..654723b3e7 100644 --- a/src/views/actionableError/useActionableErrorMap.tsx +++ b/src/views/actionableError/useActionableErrorMap.tsx @@ -13,6 +13,7 @@ type ActionableErrorAction = { } type ActionableErrorMapEntry = { title: string + userMessage?: string primaryAction: ActionableErrorAction secondaryActions?: ActionableErrorAction } @@ -37,27 +38,43 @@ export const useActionableErrorMap = (jobDetailCode: number) => { () => ({ [ACTIONABLE_ERROR_CODES.NO_ELIGIBLE_ACCOUNTS]: { title: __('No eligible accounts'), + userMessage: __( + "We couldn't find any accounts eligible for transfers. Please link a checking or savings account.", + ), primaryAction: { label: __('Log in again'), action: goToCredentials }, secondaryActions: { label: __('Connect a different institution'), action: goToSearch }, }, [ACTIONABLE_ERROR_CODES.NO_ACCOUNTS]: { title: __('No accounts found'), + userMessage: __( + 'This may be due to closed accounts, revoked access, or a connection issue. Please try again later or connect a different institution.', + ), primaryAction: { label: __('Return to institution selection'), action: goToSearch }, }, [ACTIONABLE_ERROR_CODES.ACCESS_DENIED]: { title: __('Additional permissions needed'), + userMessage: __( + "We can’t access your accounts because some required permissions weren't granted.", + ), primaryAction: { label: __('Review instructions'), action: goToCredentials }, }, [ACTIONABLE_ERROR_CODES.INSTITUTION_DOWN]: { title: __('Unable to connect'), + userMessage: __( + 'We’re unable to connect to this institution right now. Please try again later.', + ), primaryAction: { label: __('Return to institution selection'), action: goToSearch }, }, [ACTIONABLE_ERROR_CODES.INSTITUTION_MAINTENANCE]: { title: __('Maintenance in progress'), + userMessage: __( + 'The institution is temporarily unavailable due to maintenance. Please try again later.', + ), primaryAction: { label: __('Return to institution selection'), action: goToSearch }, }, [ACTIONABLE_ERROR_CODES.INSTITUTION_UNAVAILABLE]: { title: __('Unable to connect'), + userMessage: __("This institution isn't responding right now. Please try again later."), primaryAction: { label: __('Return to institution selection'), action: goToSearch }, }, }), From 3eabdac0df02f362a1916546dd1c32da91fa71c2 Mon Sep 17 00:00:00 2001 From: Logan Rasmussen Date: Wed, 6 May 2026 13:43:09 -0600 Subject: [PATCH 2/4] fix(i18n): add missing actionable error translations --- src/const/language/es.json | 9 +- src/const/language/es.po | 23 +---- src/const/language/frCa.json | 22 +---- src/const/language/frCa.po | 97 +------------------ .../actionableError/useActionableErrorMap.tsx | 4 +- 5 files changed, 10 insertions(+), 145 deletions(-) diff --git a/src/const/language/es.json b/src/const/language/es.json index 6510fe4823..53f933338d 100644 --- a/src/const/language/es.json +++ b/src/const/language/es.json @@ -420,13 +420,8 @@ "Back": "Retroceder", "We couldn't find any accounts eligible for transfers. Please link a checking or savings account.": "No pudimos encontrar ninguna cuenta que cumpla con los requisitos para realizar transferencias. Vincule, por favor, una cuenta corriente o de ahorros.", "This may be due to closed accounts, revoked access, or a connection issue. Please try again later or connect a different institution.": "Esto puede deberse a cuentas cerradas, acceso revocado o un problema de conexión. Intente nuevamente más tarde o conecte una institución diferente.", - "We can’t access your accounts because some required permissions weren't granted.": "No podemos acceder a sus cuentas porque no se otorgaron algunos permisos requeridos.", - "Your code was incorrect or expired. Select an option to receive a new code.": "Su código fue incorrecto o caducó. Seleccione una opción para recibir un nuevo código.", - "Your answer was incorrect or didn't go through. Please try again.": "Su respuesta fue incorrecta o no se envió. Inténtelo de nuevo.", - "We didn’t receive your response in time. Please re-enter your answers.": "Su respuesta no llegó a tiempo. Vuelva a ingresar sus respuestas.", - "Your connection expired or was revoked. Log in to reconnect.": "Su conexión caducó o fue revocada. Inicie sesión para volver a conectarse.", - "The credentials provided are incorrect. Please try again.": "Las credenciales proporcionadas son incorrectas. Inténtelo de nuevo.", - "We’re unable to connect to this institution right now. Please try again later.": "Actualmente no podemos conectarnos a esta institución. Intente nuevamente más tarde.", + "We can't access your accounts because some required permissions weren't granted.": "No podemos acceder a sus cuentas porque no se otorgaron algunos permisos requeridos.", + "We're unable to connect to this institution right now. Please try again later.": "Actualmente no podemos conectarnos a esta institución. Intente nuevamente más tarde.", "The institution is temporarily unavailable due to maintenance. Please try again later.": "La institución no está disponible temporalmente debido a mantenimiento. Intente nuevamente más tarde.", "This institution isn't responding right now. Please try again later.": "Esta institución no está respondiendo en este momento. Intente nuevamente más tarde.", "connect/disclosure/button\u0004Continue": "Continuar", diff --git a/src/const/language/es.po b/src/const/language/es.po index 38ce53f7cd..c94ba5f486 100644 --- a/src/const/language/es.po +++ b/src/const/language/es.po @@ -2115,34 +2115,15 @@ msgstr "" #: src/views/actionableError/useActionableErrorMap.tsx msgid "" -"We can’t access your accounts because some required permissions weren't " +"We can't access your accounts because some required permissions weren't " "granted." msgstr "" "No podemos acceder a sus cuentas porque no se otorgaron algunos permisos " "requeridos." -msgid "" -"Your code was incorrect or expired. Select an option to receive a new code." -msgstr "" -"Su código fue incorrecto o caducó. Seleccione una opción para recibir un " -"nuevo código." - -msgid "Your answer was incorrect or didn't go through. Please try again." -msgstr "Su respuesta fue incorrecta o no se envió. Inténtelo de nuevo." - -msgid "We didn’t receive your response in time. Please re-enter your answers." -msgstr "Su respuesta no llegó a tiempo. Vuelva a ingresar sus respuestas." - -msgid "Your connection expired or was revoked. Log in to reconnect." -msgstr "" -"Su conexión caducó o fue revocada. Inicie sesión para volver a conectarse." - -msgid "The credentials provided are incorrect. Please try again." -msgstr "Las credenciales proporcionadas son incorrectas. Inténtelo de nuevo." - #: src/views/actionableError/useActionableErrorMap.tsx msgid "" -"We’re unable to connect to this institution right now. Please try again " +"We're unable to connect to this institution right now. Please try again " "later." msgstr "" "Actualmente no podemos conectarnos a esta institución. Intente nuevamente " diff --git a/src/const/language/frCa.json b/src/const/language/frCa.json index 0e2b124bba..71b61c08ca 100644 --- a/src/const/language/frCa.json +++ b/src/const/language/frCa.json @@ -423,27 +423,9 @@ "Successfully authenticated but no active or eligible accounts found. Verify account status at institution.": "Authentification réussie, mais aucun compte actif ou éligible trouvé. Vérifiez le statut du compte auprès de l'institution.", "This may be due to closed accounts, revoked access, or a connection issue. Please try again later or connect a different institution.": "Cela peut être dû à des comptes fermés, un accès révoqué ou un problème de connexion. Veuillez réessayer plus tard ou connecter une autre institution.", "OAuth access denied to required account data. User likely declined necessary permissions during OAuth flow. User may need to re-authorize and grant permissions.": "Accès OAuth refusé aux données de compte requises. L'utilisateur a probablement refusé les permissions nécessaires pendant le flux OAuth. L'utilisateur devra peut-être ré-autoriser et accorder les permissions.", - "We can’t access your accounts because some required permissions weren't granted.": "Nous ne pouvons pas accéder à vos comptes car certaines permissions requises n'ont pas été accordées.", - "Incorrect code": "Code incorrect", - "One-Time Password (OTP) authentication failed due to incorrect code. User may need to request a new OTP.": "L'authentification par mot de passe à usage unique (OTP) a échoué en raison d'un code incorrect. L'utilisateur devra peut-être demander un nouvel OTP.", - "Your code was incorrect or expired. Select an option to receive a new code.": "Votre code était incorrect ou a expiré. Sélectionnez une option pour recevoir un nouveau code.", - "Incorrect answer": "Réponse incorrecte", - "Multi-factor authentication failed due to incorrect answer. Verify MFA answer. User may need to select a different MFA method.": "L'authentification multifacteur a échoué en raison d'une réponse incorrecte. Vérifiez la réponse MFA. L'utilisateur devra peut-être choisir une méthode MFA différente.", - "Your answer was incorrect or didn't go through. Please try again.": "Votre réponse était incorrecte ou n'a pas été soumise. Veuillez réessayer.", - "Session timed out": "La session a expiré", - "Authentication challenge session timed out. User exceeded allowed time for MFA/OTP response.": "La session de défi d'authentification a expiré. L'utilisateur a dépassé le temps alloué pour la réponse MFA/OTP.", - "We didn’t receive your response in time. Please re-enter your answers.": "Nous n'avons pas reçu votre réponse à temps. Veuillez ressaisir vos réponses.", - "Connection expired": "Connexion expirée", - "OAuth reauthorization is required. User likely needs to re-grant access. Initiate OAuth re-authorization flow.": "Une réautorisation OAuth est requise. L'utilisateur doit probablement accorder à nouveau l'accès. Initiez le flux de réautorisation OAuth.", - "Your connection expired or was revoked. Log in to reconnect.": "Votre connexion a expiré ou a été révoquée. Connectez-vous pour vous reconnecter.", - "Invalid credentials": "Informations d'identification invalides", - "Authentication failed due to invalid credentials.": "L'authentification a échoué en raison de l'invalidité des informations d'identification.", - "The credentials provided are incorrect. Please try again.": "Les informations d'identification fournies sont incorrectes. Veuillez réessayer.", - "Financial institution is current down or unresponsive. Try again later.": "L'institution financière est actuellement hors service ou ne répond pas. Veuillez réessayer plus tard.", - "We’re unable to connect to this institution right now. Please try again later.": "Nous ne parvenons pas à nous connecter à cette institution pour le moment. Veuillez réessayer plus tard.", - "Financial institution is undergoing scheduled maintenance or is temporarily unavailable due to unscheduled maintenance. Try again later.": "L'institution financière subit une maintenance planifiée ou est temporairement indisponible en raison d'une maintenance imprévue. Veuillez réessayer plus tard.", + "We can't access your accounts because some required permissions weren't granted.": "Nous ne pouvons pas accéder à vos comptes car certaines permissions requises n'ont pas été accordées.", + "We're unable to connect to this institution right now. Please try again later.": "Nous ne parvenons pas à nous connecter à cette institution pour le moment. Veuillez réessayer plus tard.", "The institution is temporarily unavailable due to maintenance. Please try again later.": "L'institution est temporairement indisponible en raison de la maintenance. Veuillez réessayer plus tard.", - "Financial institution is currently unavailable or response requests are timing out. Potential short-term technical issue.": "L'institution financière est actuellement indisponible ou les requêtes ont expiré. Il pourrait s'agir d’un problème technique temporaire.", "This institution isn't responding right now. Please try again later.": "Cette institution ne répond pas pour le moment. Veuillez réessayer plus tard.", "connect/disclosure/policy/text\u0004By clicking Continue, you agree to the ": "En cliquant sur Continuer, vous acceptez la ", "connect/disclosure/policy/link\u0004MX Privacy Policy.": "Politique de confidentialité de MX.", diff --git a/src/const/language/frCa.po b/src/const/language/frCa.po index e103b52d1d..acbbea266a 100644 --- a/src/const/language/frCa.po +++ b/src/const/language/frCa.po @@ -2209,106 +2209,20 @@ msgstr "" #: src/views/actionableError/useActionableErrorMap.tsx msgid "" -"We can’t access your accounts because some required permissions weren't " +"We can't access your accounts because some required permissions weren't " "granted." msgstr "" "Nous ne pouvons pas accéder à vos comptes car certaines permissions requises " "n'ont pas été accordées." -msgid "Incorrect code" -msgstr "Code incorrect" - -msgid "" -"One-Time Password (OTP) authentication failed due to incorrect code. User " -"may need to request a new OTP." -msgstr "" -"L'authentification par mot de passe à usage unique (OTP) a échoué en raison " -"d'un code incorrect. L'utilisateur devra peut-être demander un nouvel OTP." - -msgid "" -"Your code was incorrect or expired. Select an option to receive a new code." -msgstr "" -"Votre code était incorrect ou a expiré. Sélectionnez une option pour " -"recevoir un nouveau code." - -msgid "Incorrect answer" -msgstr "Réponse incorrecte" - -msgid "" -"Multi-factor authentication failed due to incorrect answer. Verify MFA " -"answer. User may need to select a different MFA method." -msgstr "" -"L'authentification multifacteur a échoué en raison d'une réponse incorrecte. " -"Vérifiez la réponse MFA. L'utilisateur devra peut-être choisir une méthode " -"MFA différente." - -msgid "Your answer was incorrect or didn't go through. Please try again." -msgstr "" -"Votre réponse était incorrecte ou n'a pas été soumise. Veuillez réessayer." - -msgid "Session timed out" -msgstr "La session a expiré" - -msgid "" -"Authentication challenge session timed out. User exceeded allowed time for " -"MFA/OTP response." -msgstr "" -"La session de défi d'authentification a expiré. L'utilisateur a dépassé le " -"temps alloué pour la réponse MFA/OTP." - -msgid "We didn’t receive your response in time. Please re-enter your answers." -msgstr "" -"Nous n'avons pas reçu votre réponse à temps. Veuillez ressaisir vos réponses." - -msgid "Connection expired" -msgstr "Connexion expirée" - -msgid "" -"OAuth reauthorization is required. User likely needs to re-grant access. " -"Initiate OAuth re-authorization flow." -msgstr "" -"Une réautorisation OAuth est requise. L'utilisateur doit probablement " -"accorder à nouveau l'accès. Initiez le flux de réautorisation OAuth." - -msgid "Your connection expired or was revoked. Log in to reconnect." -msgstr "" -"Votre connexion a expiré ou a été révoquée. Connectez-vous pour vous " -"reconnecter." - -msgid "Invalid credentials" -msgstr "Informations d'identification invalides" - -msgid "Authentication failed due to invalid credentials." -msgstr "" -"L'authentification a échoué en raison de l'invalidité des informations " -"d'identification." - -msgid "The credentials provided are incorrect. Please try again." -msgstr "" -"Les informations d'identification fournies sont incorrectes. Veuillez " -"réessayer." - -msgid "Financial institution is current down or unresponsive. Try again later." -msgstr "" -"L'institution financière est actuellement hors service ou ne répond pas. " -"Veuillez réessayer plus tard." - #: src/views/actionableError/useActionableErrorMap.tsx msgid "" -"We’re unable to connect to this institution right now. Please try again " +"We're unable to connect to this institution right now. Please try again " "later." msgstr "" "Nous ne parvenons pas à nous connecter à cette institution pour le moment. " "Veuillez réessayer plus tard." -msgid "" -"Financial institution is undergoing scheduled maintenance or is temporarily " -"unavailable due to unscheduled maintenance. Try again later." -msgstr "" -"L'institution financière subit une maintenance planifiée ou est " -"temporairement indisponible en raison d'une maintenance imprévue. Veuillez " -"réessayer plus tard." - #: src/views/actionableError/useActionableErrorMap.tsx msgid "" "The institution is temporarily unavailable due to maintenance. Please try " @@ -2317,13 +2231,6 @@ msgstr "" "L'institution est temporairement indisponible en raison de la maintenance. " "Veuillez réessayer plus tard." -msgid "" -"Financial institution is currently unavailable or response requests are " -"timing out. Potential short-term technical issue." -msgstr "" -"L'institution financière est actuellement indisponible ou les requêtes ont " -"expiré. Il pourrait s'agir d’un problème technique temporaire." - #: src/views/actionableError/useActionableErrorMap.tsx msgid "This institution isn't responding right now. Please try again later." msgstr "" diff --git a/src/views/actionableError/useActionableErrorMap.tsx b/src/views/actionableError/useActionableErrorMap.tsx index 654723b3e7..9bdae93168 100644 --- a/src/views/actionableError/useActionableErrorMap.tsx +++ b/src/views/actionableError/useActionableErrorMap.tsx @@ -54,14 +54,14 @@ export const useActionableErrorMap = (jobDetailCode: number) => { [ACTIONABLE_ERROR_CODES.ACCESS_DENIED]: { title: __('Additional permissions needed'), userMessage: __( - "We can’t access your accounts because some required permissions weren't granted.", + "We can't access your accounts because some required permissions weren't granted.", ), primaryAction: { label: __('Review instructions'), action: goToCredentials }, }, [ACTIONABLE_ERROR_CODES.INSTITUTION_DOWN]: { title: __('Unable to connect'), userMessage: __( - 'We’re unable to connect to this institution right now. Please try again later.', + "We're unable to connect to this institution right now. Please try again later.", ), primaryAction: { label: __('Return to institution selection'), action: goToSearch }, }, From b336317048a3ea3b8bbe9960e7a868d67b10be8f Mon Sep 17 00:00:00 2001 From: Logan Rasmussen Date: Wed, 6 May 2026 13:43:39 -0600 Subject: [PATCH 3/4] fix(linting): add autoformatting corrections --- docs/APIDOCUMENTATION.md | 2 +- docs/USER_FEATURES.md | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/APIDOCUMENTATION.md b/docs/APIDOCUMENTATION.md index ed330d3445..e51f98fab9 100644 --- a/docs/APIDOCUMENTATION.md +++ b/docs/APIDOCUMENTATION.md @@ -623,7 +623,7 @@ xee > | name | type | data type | description | > | ------------ | -------- | ------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------- | -> | `memberGuid` | optional | string | The GUID of the member to update. If provided, the widget will initiate an OAuth update flow for this member. | +> | `memberGuid` | optional | string | The GUID of the member to update. If provided, the widget will initiate an OAuth update flow for this member. | > | `config` | required | [`ClientConfigType`](../typings/connectProps.d.ts#L19) | The connect widget uses the config to set the initial state and behavior of the widget. [More details](./CLIENT_CONFIG.md) | ##### Responses diff --git a/docs/USER_FEATURES.md b/docs/USER_FEATURES.md index f9977c878b..9ebed82507 100644 --- a/docs/USER_FEATURES.md +++ b/docs/USER_FEATURES.md @@ -33,10 +33,11 @@ const userFeatures = [ When updating a member via OAuth, it is possible for the backend to return a different member GUID (`inbound_member_guid`) than the one used to initiate the flow. This commonly occurs during migrations from non-OAuth to OAuth connections, or when a user signs in with a different set of credentials at the same institution. The Connect Widget handles this synchronization automatically by: + 1. Detecting the GUID change upon successful completion of the OAuth flow. 2. Fetching the new member's full record using the `loadMemberByGuid` callback. 3. Updating the internal Redux state to reflect the new `currentMemberGuid` and including the new member record in the list of active members. 4. Seamlessly transitioning the user to the `Connecting` step with the synchronized member data. -
+
[<-- Back to README](../README.md#props) From 1824c7bc4072955d3a0ea3ef8c57d26ae3b3be6a Mon Sep 17 00:00:00 2001 From: Logan Rasmussen Date: Wed, 6 May 2026 14:05:00 -0600 Subject: [PATCH 4/4] fix: use frontend translations for actionable errors --- src/views/actionableError/ActionableError.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/actionableError/ActionableError.tsx b/src/views/actionableError/ActionableError.tsx index 5a2239f198..349286154b 100644 --- a/src/views/actionableError/ActionableError.tsx +++ b/src/views/actionableError/ActionableError.tsx @@ -72,7 +72,7 @@ export const ActionableError = () => { truncate={false} variant="Paragraph" > - {currentMember.error.user_message} + {errorDetails?.userMessage || currentMember.error.user_message}