From fcb37c7073495830870e07bcbf39e89e9302abb7 Mon Sep 17 00:00:00 2001 From: James Dean Date: Tue, 30 Dec 2025 09:25:12 -0800 Subject: [PATCH 1/4] Update role descriptions to be more concise --- src/languages/en.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/languages/en.ts b/src/languages/en.ts index a74cfe8786c8..28b2f54d4570 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -3798,9 +3798,9 @@ const translations = { lastSyncDate: ({connectionName, formattedDate}: LastSyncDateParams) => `${connectionName} - Last synced ${formattedDate}`, authenticationError: (connectionName: string) => `Can’t connect to ${connectionName} due to an authentication error.`, learnMore: 'Learn more', - memberAlternateText: 'Members can submit and approve reports.', - adminAlternateText: 'Admins have full edit access to all reports and workspace settings.', - auditorAlternateText: 'Auditors can view and comment on reports.', + memberAlternateText: 'Submit and approve reports.', + adminAlternateText: 'Manage all reports and workspace settings.', + auditorAlternateText: 'View and comment on reports.', roleName: ({role}: OptionalParam = {}) => { switch (role) { case CONST.POLICY.ROLE.ADMIN: From 12d4ac9d382f8698c4e41c2c8140d2a4160bce1c Mon Sep 17 00:00:00 2001 From: James Dean Date: Wed, 31 Dec 2025 10:06:06 -0800 Subject: [PATCH 2/4] Update adminAlternateText for clarity --- src/languages/en.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/languages/en.ts b/src/languages/en.ts index 28b2f54d4570..42c1257b36b3 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -1,4 +1,4 @@ -import {CONST as COMMON_CONST} from 'expensify-common'; + import {CONST as COMMON_CONST} from 'expensify-common'; import startCase from 'lodash/startCase'; import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow'; import StringUtils from '@libs/StringUtils'; @@ -3799,7 +3799,7 @@ const translations = { authenticationError: (connectionName: string) => `Can’t connect to ${connectionName} due to an authentication error.`, learnMore: 'Learn more', memberAlternateText: 'Submit and approve reports.', - adminAlternateText: 'Manage all reports and workspace settings.', + adminAlternateText: 'Manage reports and workspace settings.', auditorAlternateText: 'View and comment on reports.', roleName: ({role}: OptionalParam = {}) => { switch (role) { From 6f549476a5eaa19d12ac95c6af9a3c284703cc71 Mon Sep 17 00:00:00 2001 From: Puneet Lath Date: Wed, 7 Jan 2026 15:24:36 -0500 Subject: [PATCH 3/4] Udpate translations --- src/languages/de.ts | 10 +++++----- src/languages/fr.ts | 6 +++--- src/languages/it.ts | 8 ++++---- src/languages/ja.ts | 10 +++++----- src/languages/nl.ts | 10 +++++----- src/languages/pl.ts | 8 ++++---- src/languages/pt-BR.ts | 10 +++++----- src/languages/zh-hans.ts | 10 +++++----- 8 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index 02f0d2db1ab8..8366613baa7b 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -2011,8 +2011,8 @@ const translations: TranslationDeepObject = { twoFactorAuthIsRequiredForAdminsHeader: 'Zwei-Faktor-Authentifizierung erforderlich', twoFactorAuthIsRequiredForAdminsTitle: 'Bitte aktivieren Sie die Zwei-Faktor-Authentifizierung', twoFactorAuthIsRequiredXero: - 'Ihre Xero-Buchhaltungsverbindung erfordert die Verwendung der Zwei-Faktor-Authentifizierung. Bitte aktivieren Sie sie, um Expensify weiterhin nutzen zu können.', - twoFactorAuthIsRequiredCompany: 'Ihr Unternehmen verlangt die Verwendung von Zwei-Faktor-Authentifizierung. Bitte aktivieren Sie sie, um Expensify weiterhin verwenden zu können.', + 'Ihre Xero-Buchhaltungsverbindung erfordert die Verwendung der Zwei-Faktor-Authentifizierung. Bitte aktivieren Sie diese, um Expensify weiter verwenden zu können.', + twoFactorAuthIsRequiredCompany: 'Ihr Unternehmen verlangt die Verwendung der Zwei-Faktor-Authentifizierung. Um Expensify weiter zu verwenden, aktivieren Sie sie bitte.', twoFactorAuthCannotDisable: '2FA kann nicht deaktiviert werden', twoFactorAuthRequired: 'Für Ihre Xero-Verbindung ist eine Zwei-Faktor-Authentifizierung (2FA) erforderlich und sie kann nicht deaktiviert werden.', }, @@ -3845,9 +3845,9 @@ ${ lastSyncDate: ({connectionName, formattedDate}: LastSyncDateParams) => `${connectionName} – Zuletzt synchronisiert am ${formattedDate}`, authenticationError: (connectionName: string) => `Verbindung mit ${connectionName} aufgrund eines Authentifizierungsfehlers nicht möglich.`, learnMore: 'Mehr erfahren', - memberAlternateText: 'Mitglieder können Berichte einreichen und genehmigen.', - adminAlternateText: 'Admins haben vollen Bearbeitungszugriff auf alle Berichte und Workspace-Einstellungen.', - auditorAlternateText: 'Prüfer können Berichte anzeigen und kommentieren.', + memberAlternateText: 'Berichte einreichen und freigeben.', + adminAlternateText: 'Berichte und Arbeitsbereichseinstellungen verwalten.', + auditorAlternateText: 'Berichte anzeigen und kommentieren.', roleName: ({role}: OptionalParam = {}) => { switch (role) { case CONST.POLICY.ROLE.ADMIN: diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 6e0f0cba9086..2e679533feec 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -3850,9 +3850,9 @@ ${ lastSyncDate: ({connectionName, formattedDate}: LastSyncDateParams) => `${connectionName} - Dernière synchronisation le ${formattedDate}`, authenticationError: (connectionName: string) => `Impossible de se connecter à ${connectionName} en raison d’une erreur d’authentification.`, learnMore: 'En savoir plus', - memberAlternateText: 'Les membres peuvent soumettre et approuver des rapports.', - adminAlternateText: 'Les administrateurs ont un accès complet en modification à tous les rapports et paramètres de l’espace de travail.', - auditorAlternateText: 'Les auditeurs peuvent consulter et commenter les rapports.', + memberAlternateText: 'Soumettre et approuver les rapports.', + adminAlternateText: 'Gérez les rapports et les paramètres de l’espace de travail.', + auditorAlternateText: 'Afficher et commenter des rapports.', roleName: ({role}: OptionalParam = {}) => { switch (role) { case CONST.POLICY.ROLE.ADMIN: diff --git a/src/languages/it.ts b/src/languages/it.ts index 509be999bef2..3924824443c3 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -2004,7 +2004,7 @@ const translations: TranslationDeepObject = { twoFactorAuthIsRequiredDescription: 'Per motivi di sicurezza, Xero richiede l’autenticazione a due fattori per connettere l’integrazione.', twoFactorAuthIsRequiredForAdminsHeader: 'Autenticazione a due fattori richiesta', twoFactorAuthIsRequiredForAdminsTitle: 'Abilita l’autenticazione a due fattori', - twoFactorAuthIsRequiredXero: 'La tua connessione contabile Xero richiede l’uso dell’autenticazione a due fattori. Per continuare a usare Expensify, abilitala.', + twoFactorAuthIsRequiredXero: 'La tua connessione contabile a Xero richiede l’uso dell’autenticazione a due fattori. Per continuare a usare Expensify, abilitala.', //_/\__/_/ \_,_/\__/\__/\_,_/ twoFactorAuthIsRequiredCompany: 'La tua azienda richiede l’uso dell’autenticazione a due fattori. Per continuare a usare Expensify, abilitala.', twoFactorAuthCannotDisable: 'Impossibile disattivare l’autenticazione a due fattori (2FA)', twoFactorAuthRequired: "Per la tua connessione a Xero è richiesta l'autenticazione a due fattori (2FA) e non può essere disattivata.", @@ -3829,9 +3829,9 @@ ${ lastSyncDate: ({connectionName, formattedDate}: LastSyncDateParams) => `${connectionName} - Ultima sincronizzazione ${formattedDate}`, authenticationError: (connectionName: string) => `Impossibile connettersi a ${connectionName} a causa di un errore di autenticazione.`, learnMore: 'Scopri di più', - memberAlternateText: 'I membri possono inviare e approvare i report.', - adminAlternateText: 'Gli amministratori hanno pieno accesso di modifica a tutti i report e alle impostazioni dello spazio di lavoro.', - auditorAlternateText: 'I revisori possono visualizzare e commentare i report.', + memberAlternateText: 'Invia e approva i report.', + adminAlternateText: 'Gestisci i report e le impostazioni dello spazio di lavoro.', + auditorAlternateText: 'Visualizza e commenta i report.', roleName: ({role}: OptionalParam = {}) => { switch (role) { case CONST.POLICY.ROLE.ADMIN: diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 8609b55cb180..bc6660753218 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -2000,8 +2000,8 @@ const translations: TranslationDeepObject = { twoFactorAuthIsRequiredDescription: 'セキュリティ上の理由により、Xero の連携を接続するには二要素認証が必要です。', twoFactorAuthIsRequiredForAdminsHeader: '2 要素認証が必要です', twoFactorAuthIsRequiredForAdminsTitle: '二要素認証を有効にしてください', - twoFactorAuthIsRequiredXero: 'お使いのXero会計連携には二要素認証の利用が必要です。引き続きExpensifyをご利用いただくために、有効にしてください。', - twoFactorAuthIsRequiredCompany: 'ご利用の会社では二要素認証の使用が必須です。引き続きExpensifyを利用するには、二要素認証を有効にしてください。', + twoFactorAuthIsRequiredXero: 'Xero 会計連携には二要素認証の使用が必要です。Expensify を引き続きご利用いただくには、二要素認証を有効にしてください。', + twoFactorAuthIsRequiredCompany: 'あなたの会社では二要素認証の利用が必須となっています。Expensify を引き続き利用するには、二要素認証を有効にしてください。', twoFactorAuthCannotDisable: '2要素認証を無効にできません', twoFactorAuthRequired: 'Xero 連携には二要素認証(2FA)が必須であり、無効にすることはできません。', }, @@ -3819,9 +3819,9 @@ ${ lastSyncDate: ({connectionName, formattedDate}: LastSyncDateParams) => `${connectionName} - 最終同期日 ${formattedDate}`, authenticationError: (connectionName: string) => `認証エラーのため、${connectionName} に接続できません。`, learnMore: '詳細はこちら', - memberAlternateText: 'メンバーはレポートを提出および承認できます。', - adminAlternateText: '管理者は、すべてのレポートとワークスペース設定を完全に編集できます。', - auditorAlternateText: '監査担当者はレポートを閲覧し、コメントすることができます。', + memberAlternateText: 'レポートを提出して承認します。', + adminAlternateText: 'レポートとワークスペースの設定を管理します。', + auditorAlternateText: 'レポートを表示してコメントします。', roleName: ({role}: OptionalParam = {}) => { switch (role) { case CONST.POLICY.ROLE.ADMIN: diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 41f61ce269b9..f1a67f7743d2 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -2002,8 +2002,8 @@ const translations: TranslationDeepObject = { twoFactorAuthIsRequiredDescription: 'Om veiligheidsredenen vereist Xero tweefactorauthenticatie om de integratie te verbinden.', twoFactorAuthIsRequiredForAdminsHeader: 'Authenticatie in twee stappen vereist', twoFactorAuthIsRequiredForAdminsTitle: 'Schakel twee-factor-authenticatie in', - twoFactorAuthIsRequiredXero: 'Je Xero-boekhoudkoppeling vereist het gebruik van tweeledige verificatie. Schakel dit in om Expensify te blijven gebruiken.', - twoFactorAuthIsRequiredCompany: 'Uw bedrijf vereist het gebruik van twee-factor-authenticatie. Schakel dit in om Expensify te kunnen blijven gebruiken.', + twoFactorAuthIsRequiredXero: 'Uw Xero-accountingkoppeling vereist het gebruik van tweestapsverificatie. Schakel dit in om Expensify te blijven gebruiken.', + twoFactorAuthIsRequiredCompany: 'Uw bedrijf vereist het gebruik van tweefactorauthenticatie. Schakel dit in om Expensify te kunnen blijven gebruiken.', twoFactorAuthCannotDisable: 'Kan 2FA niet uitschakelen', twoFactorAuthRequired: 'Tweefactorauthenticatie (2FA) is vereist voor je Xero-verbinding en kan niet worden uitgeschakeld.', }, @@ -3828,9 +3828,9 @@ ${ lastSyncDate: ({connectionName, formattedDate}: LastSyncDateParams) => `${connectionName} - Laatst gesynchroniseerd ${formattedDate}`, authenticationError: (connectionName: string) => `Kan geen verbinding maken met ${connectionName} vanwege een authenticatiefout.`, learnMore: 'Meer informatie', - memberAlternateText: 'Leden kunnen rapporten indienen en goedkeuren.', - adminAlternateText: 'Beheerders hebben volledige bewerkingsrechten voor alle rapporten en werkruimte-instellingen.', - auditorAlternateText: 'Auditors kunnen rapporten bekijken en erop reageren.', + memberAlternateText: 'Dien rapporten in en keur ze goed.', + adminAlternateText: 'Beheer rapporten en werkruimte-instellingen.', + auditorAlternateText: 'Rapporten bekijken en erop reageren.', roleName: ({role}: OptionalParam = {}) => { switch (role) { case CONST.POLICY.ROLE.ADMIN: diff --git a/src/languages/pl.ts b/src/languages/pl.ts index c34bac4230fd..e1e31524b9c2 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -2000,7 +2000,7 @@ const translations: TranslationDeepObject = { twoFactorAuthIsRequiredForAdminsHeader: 'Wymagane uwierzytelnianie dwuskładnikowe', twoFactorAuthIsRequiredForAdminsTitle: 'Włącz uwierzytelnianie dwuskładnikowe', twoFactorAuthIsRequiredXero: 'Twoetapowe uwierzytelnianie jest wymagane dla Twojego połączenia księgowego z Xero. Aby nadal korzystać z Expensify, włącz je.', - twoFactorAuthIsRequiredCompany: 'Twoja firma wymaga używania uwierzytelniania dwuskładnikowego. Aby dalej korzystać z Expensify, włącz je.', + twoFactorAuthIsRequiredCompany: 'Twoja firma wymaga używania uwierzytelniania dwuskładnikowego. Aby nadal korzystać z Expensify, włącz je.', twoFactorAuthCannotDisable: 'Nie można wyłączyć 2FA', twoFactorAuthRequired: 'Dwuskładnikowe uwierzytelnianie (2FA) jest wymagane dla Twojego połączenia z Xero i nie może zostać wyłączone.', }, @@ -3824,9 +3824,9 @@ ${ lastSyncDate: ({connectionName, formattedDate}: LastSyncDateParams) => `${connectionName} – Ostatnia synchronizacja ${formattedDate}`, authenticationError: (connectionName: string) => `Nie można połączyć z ${connectionName} z powodu błędu uwierzytelniania.`, learnMore: 'Dowiedz się więcej', - memberAlternateText: 'Członkowie mogą przesyłać i zatwierdzać raporty.', - adminAlternateText: 'Administratorzy mają pełen dostęp do edycji wszystkich raportów i ustawień przestrzeni roboczej.', - auditorAlternateText: 'Audytorzy mogą przeglądać i komentować raporty.', + memberAlternateText: 'Przesyłaj i zatwierdzaj raporty.', + adminAlternateText: 'Zarządzaj raportami i ustawieniami przestrzeni roboczej.', + auditorAlternateText: 'Przeglądaj i komentuj raporty.', roleName: ({role}: OptionalParam = {}) => { switch (role) { case CONST.POLICY.ROLE.ADMIN: diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 1981d0e210a1..d35ac29bf15e 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -1999,8 +1999,8 @@ const translations: TranslationDeepObject = { twoFactorAuthIsRequiredDescription: 'Por motivos de segurança, a Xero exige autenticação em duas etapas para conectar a integração.', twoFactorAuthIsRequiredForAdminsHeader: 'Autenticação de dois fatores obrigatória', twoFactorAuthIsRequiredForAdminsTitle: 'Ative a autenticação em duas etapas', - twoFactorAuthIsRequiredXero: 'Sua conexão de contabilidade com o Xero requer o uso de autenticação em duas etapas. Para continuar usando o Expensify, ative-a.', - twoFactorAuthIsRequiredCompany: 'Sua empresa exige o uso de autenticação de dois fatores. Para continuar usando o Expensify, ative-a.', + twoFactorAuthIsRequiredXero: 'Sua conexão de contabilidade com a Xero requer o uso de autenticação em duas etapas. Para continuar usando o Expensify, ative-a.', + twoFactorAuthIsRequiredCompany: 'Sua empresa exige o uso de autenticação em duas etapas. Para continuar usando o Expensify, ative esse recurso.', twoFactorAuthCannotDisable: 'Não é possível desativar a 2FA', twoFactorAuthRequired: 'A autenticação de dois fatores (2FA) é obrigatória para sua conexão com o Xero e não pode ser desativada.', }, @@ -3822,9 +3822,9 @@ ${ lastSyncDate: ({connectionName, formattedDate}: LastSyncDateParams) => `${connectionName} - Última sincronização em ${formattedDate}`, authenticationError: (connectionName: string) => `Não é possível conectar a ${connectionName} devido a um erro de autenticação.`, learnMore: 'Saiba mais', - memberAlternateText: 'Os membros podem enviar e aprovar relatórios.', - adminAlternateText: 'Admins têm acesso total de edição a todos os relatórios e configurações do espaço de trabalho.', - auditorAlternateText: 'Auditores podem visualizar e comentar em relatórios.', + memberAlternateText: 'Enviar e aprovar relatórios.', + adminAlternateText: 'Gerencie relatórios e configurações do workspace.', + auditorAlternateText: 'Visualize e comente relatórios.', roleName: ({role}: OptionalParam = {}) => { switch (role) { case CONST.POLICY.ROLE.ADMIN: diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 156959056cce..c000acc012d4 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -1972,8 +1972,8 @@ const translations: TranslationDeepObject = { twoFactorAuthIsRequiredDescription: '出于安全原因,Xero 要求使用双重身份验证才能连接此集成。', twoFactorAuthIsRequiredForAdminsHeader: '需要双重身份验证', twoFactorAuthIsRequiredForAdminsTitle: '请启用双重身份验证', - twoFactorAuthIsRequiredXero: '您的 Xero 会计连接需要使用双重身份验证。要继续使用 Expensify,请启用该功能。', - twoFactorAuthIsRequiredCompany: '您的公司要求使用双重身份验证。要继续使用 Expensify,请启用此功能。', + twoFactorAuthIsRequiredXero: '您的 Xero 会计连接需要使用双重身份验证。若要继续使用 Expensify,请启用该功能。', + twoFactorAuthIsRequiredCompany: '您的公司要求使用双重身份验证。要继续使用 Expensify,请启用该功能。', twoFactorAuthCannotDisable: '无法禁用双重身份验证', twoFactorAuthRequired: '您的 Xero 连接需要启用双重身份验证 (2FA),且无法将其禁用。', }, @@ -3767,9 +3767,9 @@ ${ lastSyncDate: ({connectionName, formattedDate}: LastSyncDateParams) => `${connectionName} - 上次同步时间:${formattedDate}`, authenticationError: (connectionName: string) => `由于身份验证错误,无法连接到 ${connectionName}。`, learnMore: '了解更多', - memberAlternateText: '成员可以提交和批准报表。', - adminAlternateText: '管理员对所有报表和工作区设置拥有完整的编辑权限。', - auditorAlternateText: '审核员可以查看并评论报表。', + memberAlternateText: '提交并审批报表。', + adminAlternateText: '管理报表和工作区设置。', + auditorAlternateText: '查看并评论报表。', roleName: ({role}: OptionalParam = {}) => { switch (role) { case CONST.POLICY.ROLE.ADMIN: From 36ec98f332b109c6cbdf7ae40f472db51c49607c Mon Sep 17 00:00:00 2001 From: Puneet Lath Date: Wed, 7 Jan 2026 15:26:21 -0500 Subject: [PATCH 4/4] Prettier --- src/languages/en.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/en.ts b/src/languages/en.ts index 42c1257b36b3..8f8481ecae36 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -1,4 +1,4 @@ - import {CONST as COMMON_CONST} from 'expensify-common'; +import {CONST as COMMON_CONST} from 'expensify-common'; import startCase from 'lodash/startCase'; import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow'; import StringUtils from '@libs/StringUtils';