From 3621e32a52540a703450df0ef7fa6a483189c5e7 Mon Sep 17 00:00:00 2001 From: "Alex Beaman (via MelvinBot)" Date: Sat, 25 Jul 2026 00:02:03 +0000 Subject: [PATCH 1/6] Sage Intacct: make Default vendor a navigable arrow row with updated copy Co-authored-by: Alex Beaman --- src/languages/en.ts | 5 +- src/languages/es.ts | 5 +- ...SageIntacctNonReimbursableExpensesPage.tsx | 111 +++--------------- .../workspace/accounting/intacct/types.ts | 3 + 4 files changed, 29 insertions(+), 95 deletions(-) diff --git a/src/languages/en.ts b/src/languages/en.ts index 75bfadee2ca7..428d590e58e9 100644 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -5179,8 +5179,11 @@ const translations = { travelInvoicingDescription: 'Travel expenses will export as credit card charges to the Sage Intacct account specified below.', creditCardAccount: 'Credit card account', defaultVendor: 'Default vendor', + defaultVendorNotSet: 'Not set', defaultVendorDescription: (isReimbursable: boolean) => - `Set a default vendor that will apply to ${isReimbursable ? '' : 'non-'}reimbursable expenses that don't have a matching vendor in Sage Intacct.`, + isReimbursable + ? `Set a default vendor that will apply to reimbursable expenses that don't have a matching vendor in Sage Intacct.` + : `Expenses that can't be matched to your Sage Intacct vendors will default to this vendor.`, exportDescription: 'Configure how Expensify data exports to Sage Intacct.', exportPreferredExporterNote: 'The preferred exporter can be any workspace admin, but must also be a Domain Admin if you set different export accounts for individual company cards in Domain Settings.', diff --git a/src/languages/es.ts b/src/languages/es.ts index 5e173ef30b78..0e73480ece66 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -4961,8 +4961,11 @@ ${amount} para ${merchant} - ${date}`, travelInvoicingDescription: 'Los gastos de viaje se exportarán como cargos de tarjeta de crédito a la cuenta de Sage Intacct especificada a continuación.', creditCardAccount: 'Cuenta de tarjeta de crédito', defaultVendor: 'Proveedor por defecto', + defaultVendorNotSet: 'Sin establecer', defaultVendorDescription: (isReimbursable) => - `Establezca un proveedor predeterminado que se aplicará a los gastos ${isReimbursable ? '' : 'no '}reembolsables que no tienen un proveedor coincidente en Sage Intacct.`, + isReimbursable + ? `Establezca un proveedor predeterminado que se aplicará a los gastos reembolsables que no tienen un proveedor coincidente en Sage Intacct.` + : `Los gastos que no puedan asociarse a tus proveedores de Sage Intacct se asignarán a este proveedor por defecto.`, exportDescription: 'Configure cómo se exportan los datos de Expensify a Sage Intacct.', exportPreferredExporterNote: 'El exportador preferido puede ser cualquier administrador del área de trabajo, pero también debe ser un administrador del dominio si establece diferentes cuentas de exportación para tarjetas de empresa individuales en Configuración del dominio.', diff --git a/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx b/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx index ea1c385e782b..0e309c40de83 100644 --- a/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx +++ b/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx @@ -1,26 +1,19 @@ -import Accordion from '@components/Accordion'; import ConnectionLayout from '@components/ConnectionLayout'; import MenuItemWithTopDescription from '@components/MenuItemWithTopDescription'; import OfflineWithFeedback from '@components/OfflineWithFeedback'; -import useAccordionAnimation from '@hooks/useAccordionAnimation'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; -import {getLatestErrorField} from '@libs/ErrorUtils'; import createDynamicRoute from '@libs/Navigation/helpers/dynamicRoutesUtils/createDynamicRoute'; import Navigation from '@libs/Navigation/Navigation'; import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import {areSettingsInErrorFields, getSageIntacctNonReimbursableActiveDefaultVendor, settingsPendingAction} from '@libs/PolicyUtils'; -import type {ExtendedMenuItemWithSubscribedSettings, MenuItemToRender} from '@pages/workspace/accounting/intacct/types'; +import type {MenuItemToRender} from '@pages/workspace/accounting/intacct/types'; import type {WithPolicyConnectionsProps} from '@pages/workspace/withPolicyConnections'; import withPolicyConnections from '@pages/workspace/withPolicyConnections'; -import ToggleSettingOptionRow from '@pages/workspace/workflows/ToggleSettingsOptionRow'; - -import {updateSageIntacctDefaultVendor} from '@userActions/connections/SageIntacct'; -import {clearSageIntacctErrorField} from '@userActions/Policy/Policy'; import CONST from '@src/CONST'; import ROUTES, {DYNAMIC_ROUTES} from '@src/ROUTES'; @@ -39,15 +32,9 @@ function SageIntacctNonReimbursableExpensesPage({policy}: WithPolicyConnectionsP const activeDefaultVendor = getSageIntacctNonReimbursableActiveDefaultVendor(policy); const defaultVendorName = getDefaultVendorName(activeDefaultVendor, intacctData?.vendors); - const expandedCondition = !( - !config?.export.nonReimbursable || - (config?.export.nonReimbursable === CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.CREDIT_CARD_CHARGE && !config?.export.nonReimbursableCreditCardChargeDefaultVendor) - ); const route = useRoute>(); const backTo = route.params?.backTo; - const {isAccordionExpanded, shouldAnimateAccordionSection} = useAccordionAnimation(expandedCondition); - const renderDefault = (item: MenuItemToRender) => { return ( { + type: 'menuitem', + title: defaultVendorName && defaultVendorName !== '' ? defaultVendorName : translate('workspace.sageIntacct.defaultVendorNotSet'), + description: translate('workspace.sageIntacct.defaultVendor'), + helperText: + config?.export.nonReimbursable === CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.CREDIT_CARD_CHARGE + ? translate('workspace.sageIntacct.defaultVendorDescription', false) + : undefined, + onPress: () => { if (!policyID) { return; } - const vendor = enabled ? policy?.connections?.intacct?.data?.vendors?.[0]?.id : ''; - updateSageIntacctDefaultVendor( - policyID, - CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE_CREDIT_CARD_VENDOR, - vendor ?? '', - config?.export.nonReimbursableCreditCardChargeDefaultVendor, - ); - isAccordionExpanded.set(enabled); - shouldAnimateAccordionSection.set(true); + Navigation.navigate(createDynamicRoute(DYNAMIC_ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_DEFAULT_VENDOR.getRoute(CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE.toLowerCase()))); }, - onCloseError: () => clearSageIntacctErrorField(policyID, CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE_CREDIT_CARD_VENDOR), - pendingAction: settingsPendingAction([CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE_CREDIT_CARD_VENDOR], config?.pendingFields), - errors: getLatestErrorField(config, CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE_CREDIT_CARD_VENDOR), - shouldHide: config?.export.nonReimbursable !== CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.CREDIT_CARD_CHARGE, - }, - { - type: 'accordion', - children: [ - { - type: 'menuitem', - title: defaultVendorName && defaultVendorName !== '' ? defaultVendorName : undefined, - description: translate('workspace.sageIntacct.defaultVendor'), - onPress: () => { - if (!policyID) { - return; - } - Navigation.navigate( - createDynamicRoute(DYNAMIC_ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_DEFAULT_VENDOR.getRoute(CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE.toLowerCase())), - ); - }, - subscribedSettings: [ - config?.export.nonReimbursable === CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.VENDOR_BILL - ? CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE_VENDOR - : CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE_CREDIT_CARD_VENDOR, - ], - shouldHide: - !config?.export.nonReimbursable || - (config?.export.nonReimbursable === CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.CREDIT_CARD_CHARGE && - !config?.export.nonReimbursableCreditCardChargeDefaultVendor), - }, + subscribedSettings: [ + config?.export.nonReimbursable === CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.VENDOR_BILL + ? CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE_VENDOR + : CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE_CREDIT_CARD_VENDOR, ], - shouldHide: false, - shouldExpand: isAccordionExpanded, - shouldAnimateSection: shouldAnimateAccordionSection, + shouldHide: !config?.export.nonReimbursable, }, ]; @@ -167,34 +119,7 @@ function SageIntacctNonReimbursableExpensesPage({policy}: WithPolicyConnectionsP titleStyle={styles.ph5} connectionName={CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT} > - {menuItems - .filter((item) => !item.shouldHide) - .map((item) => { - switch (item.type) { - case 'toggle': - // eslint-disable-next-line no-case-declarations - const {type, shouldHide, key, ...rest} = item; - return ( - - ); - case 'accordion': - return ( - - {item.children.map((child) => renderDefault(child))} - - ); - default: - return renderDefault(item); - } - })} + {menuItems.filter((item) => !item.shouldHide).map((item) => renderDefault(item))} ); } diff --git a/src/pages/workspace/accounting/intacct/types.ts b/src/pages/workspace/accounting/intacct/types.ts index 1c75bdc8e2b5..5d80922f8d5f 100644 --- a/src/pages/workspace/accounting/intacct/types.ts +++ b/src/pages/workspace/accounting/intacct/types.ts @@ -14,6 +14,9 @@ type ExtendedMenuItemWithSubscribedSettings = MenuItemToRender | ToggleItemWithK type MenuItemToRender = MenuItemWithSubscribedSettings & { /** Optional hint text passed to the MenuItemWithTopDescription */ hintText?: string; + + /** Optional muted helper text rendered below the MenuItemWithTopDescription */ + helperText?: string; }; type MenuItem = MenuItemProps & { From 316fc02bf8853a68276be9202d9e51eee223f04b Mon Sep 17 00:00:00 2001 From: "Alex Beaman (via MelvinBot)" Date: Sat, 25 Jul 2026 00:12:45 +0000 Subject: [PATCH 2/6] Fix: add missing defaultVendorNotSet key to remaining language files Co-authored-by: Alex Beaman --- src/languages/de.ts | 1 + src/languages/fr.ts | 1 + src/languages/it.ts | 1 + src/languages/ja.ts | 1 + src/languages/nl.ts | 1 + src/languages/pl.ts | 1 + src/languages/pt-BR.ts | 1 + src/languages/zh-hans.ts | 1 + 8 files changed, 8 insertions(+) diff --git a/src/languages/de.ts b/src/languages/de.ts index 1e5a4131ca3a..4d3932446d82 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -5067,6 +5067,7 @@ ${amount} für ${merchant} – ${date}`, travelInvoicingDescription: 'Reisekosten werden als Kreditkartenbelastungen in das unten angegebene Sage Intacct-Konto exportiert.', creditCardAccount: 'Kreditkartenkonto', defaultVendor: 'Standardanbieter', + defaultVendorNotSet: 'Nicht festgelegt', defaultVendorDescription: (isReimbursable: boolean) => `Legen Sie einen Standardlieferanten fest, der auf ${isReimbursable ? '' : 'nicht-'}erstattungsfähige Ausgaben angewendet wird, für die in Sage Intacct kein übereinstimmender Lieferant vorhanden ist.`, exportDescription: 'Konfigurieren Sie, wie Expensify Daten nach Sage Intacct exportiert.', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 664cee6663fb..1055f13a7ace 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -5077,6 +5077,7 @@ ${amount} pour ${merchant} - ${date}`, travelInvoicingDescription: 'Les frais de voyage seront exportés comme des débits de carte de crédit vers le compte Sage Intacct indiqué ci-dessous.', creditCardAccount: 'Compte de carte de crédit', defaultVendor: 'Fournisseur par défaut', + defaultVendorNotSet: 'Non défini', defaultVendorDescription: (isReimbursable: boolean) => `Définissez un fournisseur par défaut qui s’appliquera aux ${isReimbursable ? '' : 'non-'}dépenses remboursables qui n’ont pas de fournisseur correspondant dans Sage Intacct.`, exportDescription: 'Configurez comment les données Expensify sont exportées vers Sage Intacct.', diff --git a/src/languages/it.ts b/src/languages/it.ts index 6dc456a27c0c..f54a6d07f368 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -5046,6 +5046,7 @@ ${amount} per ${merchant} - ${date}`, travelInvoicingDescription: 'Le spese di viaggio verranno esportate come addebiti su carta di credito nel conto Sage Intacct specificato di seguito.', creditCardAccount: 'Conto della carta di credito', defaultVendor: 'Fornitore predefinito', + defaultVendorNotSet: 'Non impostato', defaultVendorDescription: (isReimbursable: boolean) => `Imposta un fornitore predefinito che verrà applicato alle spese rimborsabili ${isReimbursable ? '' : 'non-'} che non hanno un fornitore corrispondente in Sage Intacct.`, exportDescription: 'Configura come i dati di Expensify vengono esportati in Sage Intacct.', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 11db3c3def10..c6ce354460d8 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -5003,6 +5003,7 @@ ${integrationName === CONST.ONBOARDING_ACCOUNTING_MAPPING.other ? 'あなたの' travelInvoicingDescription: '旅費は、以下で指定した Sage Intacct アカウントにクレジットカード請求としてエクスポートされます。', creditCardAccount: 'クレジットカード口座', defaultVendor: 'デフォルトのベンダー', + defaultVendorNotSet: '未設定', defaultVendorDescription: (isReimbursable: boolean) => `Sage Intacct で対応する仕入先がない ${isReimbursable ? '' : '非'}立替精算費用に適用されるデフォルトの仕入先を設定します。`, exportDescription: 'Expensify のデータを Sage Intacct へエクスポートする方法を設定します。', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index c774982e5ffe..9fd6ba732a23 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -5040,6 +5040,7 @@ ${amount} voor ${merchant} - ${date}`, travelInvoicingDescription: 'Reiskosten worden als creditcardkosten geëxporteerd naar het hieronder opgegeven Sage Intacct-account.', creditCardAccount: 'Creditcardrekening', defaultVendor: 'Standaardleverancier', + defaultVendorNotSet: 'Niet ingesteld', defaultVendorDescription: (isReimbursable: boolean) => `Stel een standaardleverancier in die wordt toegepast op ${isReimbursable ? '' : 'niet-'}declarabele uitgaven zonder overeenkomende leverancier in Sage Intacct.`, exportDescription: 'Configureer hoe Expensify-gegevens worden geëxporteerd naar Sage Intacct.', diff --git a/src/languages/pl.ts b/src/languages/pl.ts index ac30cc2c6efc..9f2be028b240 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -5026,6 +5026,7 @@ ${amount} dla ${merchant} - ${date}`, travelInvoicingDescription: 'Wydatki na podróże zostaną wyeksportowane jako obciążenia karty kredytowej na konto Sage Intacct wskazane poniżej.', creditCardAccount: 'Konto karty kredytowej', defaultVendor: 'Domyślny dostawca', + defaultVendorNotSet: 'Nie ustawiono', defaultVendorDescription: (isReimbursable: boolean) => `Ustaw domyślnego dostawcę, który zostanie zastosowany do ${isReimbursable ? '' : 'nie-'}wydatków podlegających zwrotowi, nieposiadających pasującego dostawcy w Sage Intacct.`, exportDescription: 'Skonfiguruj sposób eksportu danych z Expensify do Sage Intacct.', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index fe6a996bfccf..a2348f5fda84 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -5032,6 +5032,7 @@ ${amount} para ${merchant} - ${date}`, travelInvoicingDescription: 'As despesas de viagem serão exportadas como cobranças de cartão de crédito para a conta do Sage Intacct especificada abaixo.', creditCardAccount: 'Conta de cartão de crédito', defaultVendor: 'Fornecedor padrão', + defaultVendorNotSet: 'Não definido', defaultVendorDescription: (isReimbursable: boolean) => `Defina um fornecedor padrão que será aplicado às despesas reembolsáveis ${isReimbursable ? '' : 'não-'} que não tiverem um fornecedor correspondente no Sage Intacct.`, exportDescription: 'Configure como os dados do Expensify são exportados para o Sage Intacct.', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 487d47fe7611..5cac4ea2822e 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -4888,6 +4888,7 @@ ${amount},商户:${merchant} - 日期:${date}`, travelInvoicingDescription: '差旅费用将作为信用卡费用导出到下面指定的 Sage Intacct 账户。', creditCardAccount: '信用卡账户', defaultVendor: '默认供应商', + defaultVendorNotSet: '未设置', defaultVendorDescription: (isReimbursable: boolean) => `为没有在 Sage Intacct 中匹配供应商的${isReimbursable ? '' : '非'}可报销费用设置一个默认供应商。`, exportDescription: '配置 Expensify 数据导出到 Sage Intacct 的方式。', exportPreferredExporterNote: '首选导出人可以是任意工作区管理员,但如果你在“域设置”中为各个公司卡设置了不同的导出账户,则该导出人还必须是域管理员。', From 1dacbf0bb61765e7e4a53d19826ee61818aad25d Mon Sep 17 00:00:00 2001 From: "Alex Beaman (via MelvinBot)" Date: Sat, 25 Jul 2026 00:19:03 +0000 Subject: [PATCH 3/6] Apply Polyglot Parrot translations for Sage Intacct default vendor copy Co-authored-by: Alex Beaman --- src/languages/de.ts | 4 +++- src/languages/es.ts | 8 ++++---- src/languages/fr.ts | 4 +++- src/languages/it.ts | 4 +++- src/languages/ja.ts | 4 +++- src/languages/nl.ts | 4 +++- src/languages/pl.ts | 4 +++- src/languages/pt-BR.ts | 4 +++- src/languages/zh-hans.ts | 3 ++- 9 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index 4d3932446d82..db6442874a7f 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -5069,7 +5069,9 @@ ${amount} für ${merchant} – ${date}`, defaultVendor: 'Standardanbieter', defaultVendorNotSet: 'Nicht festgelegt', defaultVendorDescription: (isReimbursable: boolean) => - `Legen Sie einen Standardlieferanten fest, der auf ${isReimbursable ? '' : 'nicht-'}erstattungsfähige Ausgaben angewendet wird, für die in Sage Intacct kein übereinstimmender Lieferant vorhanden ist.`, + isReimbursable + ? `Legen Sie einen Standardlieferanten fest, der auf erstattungsfähige Ausgaben angewendet wird, für die kein übereinstimmender Lieferant in Sage Intacct vorhanden ist.` + : `Spesen, die keinen Ihrer Sage Intacct-Lieferanten zugeordnet werden können, werden standardmäßig diesem Lieferanten zugeordnet.`, exportDescription: 'Konfigurieren Sie, wie Expensify Daten nach Sage Intacct exportiert.', exportPreferredExporterNote: 'Der bevorzugte Exporteur kann jede Workspace-Adminperson sein, muss jedoch auch Domain-Admin sein, wenn du in den Domaineinstellungen unterschiedliche Exportkonten für einzelne Firmenkarten festlegst.', diff --git a/src/languages/es.ts b/src/languages/es.ts index 0e73480ece66..df5222c0d7e1 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -4961,11 +4961,11 @@ ${amount} para ${merchant} - ${date}`, travelInvoicingDescription: 'Los gastos de viaje se exportarán como cargos de tarjeta de crédito a la cuenta de Sage Intacct especificada a continuación.', creditCardAccount: 'Cuenta de tarjeta de crédito', defaultVendor: 'Proveedor por defecto', - defaultVendorNotSet: 'Sin establecer', - defaultVendorDescription: (isReimbursable) => + defaultVendorNotSet: 'No establecido', + defaultVendorDescription: (isReimbursable: boolean) => isReimbursable - ? `Establezca un proveedor predeterminado que se aplicará a los gastos reembolsables que no tienen un proveedor coincidente en Sage Intacct.` - : `Los gastos que no puedan asociarse a tus proveedores de Sage Intacct se asignarán a este proveedor por defecto.`, + ? `Establece un proveedor predeterminado que se aplicará a los gastos reembolsables que no tengan un proveedor coincidente en Sage Intacct.` + : `Los gastos que no se puedan asociar con tus proveedores de Sage Intacct se asignarán a este proveedor de forma predeterminada.`, exportDescription: 'Configure cómo se exportan los datos de Expensify a Sage Intacct.', exportPreferredExporterNote: 'El exportador preferido puede ser cualquier administrador del área de trabajo, pero también debe ser un administrador del dominio si establece diferentes cuentas de exportación para tarjetas de empresa individuales en Configuración del dominio.', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 1055f13a7ace..0c1aa0d0be37 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -5079,7 +5079,9 @@ ${amount} pour ${merchant} - ${date}`, defaultVendor: 'Fournisseur par défaut', defaultVendorNotSet: 'Non défini', defaultVendorDescription: (isReimbursable: boolean) => - `Définissez un fournisseur par défaut qui s’appliquera aux ${isReimbursable ? '' : 'non-'}dépenses remboursables qui n’ont pas de fournisseur correspondant dans Sage Intacct.`, + isReimbursable + ? `Définissez un fournisseur par défaut qui sera appliqué aux dépenses remboursables n’ayant pas de fournisseur correspondant dans Sage Intacct.` + : `Les dépenses qui ne peuvent pas être rapprochées avec vos fournisseurs Sage Intacct seront, par défaut, associées à ce fournisseur.`, exportDescription: 'Configurez comment les données Expensify sont exportées vers Sage Intacct.', exportPreferredExporterNote: 'L’exportateur préféré peut être n’importe quel administrateur d’espace de travail, mais doit également être un administrateur de domaine si vous définissez des comptes d’exportation différents pour chaque carte d’entreprise individuelle dans les paramètres de domaine.', diff --git a/src/languages/it.ts b/src/languages/it.ts index f54a6d07f368..8caad0a69158 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -5048,7 +5048,9 @@ ${amount} per ${merchant} - ${date}`, defaultVendor: 'Fornitore predefinito', defaultVendorNotSet: 'Non impostato', defaultVendorDescription: (isReimbursable: boolean) => - `Imposta un fornitore predefinito che verrà applicato alle spese rimborsabili ${isReimbursable ? '' : 'non-'} che non hanno un fornitore corrispondente in Sage Intacct.`, + isReimbursable + ? `Imposta un fornitore predefinito che verrà applicato alle spese rimborsabili che non hanno un fornitore corrispondente in Sage Intacct.` + : `Le spese che non possono essere abbinate ai tuoi fornitori Sage Intacct verranno associate per impostazione predefinita a questo fornitore.`, exportDescription: 'Configura come i dati di Expensify vengono esportati in Sage Intacct.', exportPreferredExporterNote: 'L’esportatore preferito può essere qualsiasi amministratore dello spazio di lavoro, ma deve anche essere un Amministratore del dominio se imposti conti di esportazione diversi per le singole carte aziendali nelle Impostazioni del dominio.', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index c6ce354460d8..ecfa859e7779 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -5005,7 +5005,9 @@ ${integrationName === CONST.ONBOARDING_ACCOUNTING_MAPPING.other ? 'あなたの' defaultVendor: 'デフォルトのベンダー', defaultVendorNotSet: '未設定', defaultVendorDescription: (isReimbursable: boolean) => - `Sage Intacct で対応する仕入先がない ${isReimbursable ? '' : '非'}立替精算費用に適用されるデフォルトの仕入先を設定します。`, + isReimbursable + ? `Sage Intacct で一致する取引先がない経費精算対象の経費に適用する、デフォルトの取引先を設定します。` + : `Sage Intacct のベンダーに照合できない経費は、デフォルトでこのベンダーに割り当てられます。`, exportDescription: 'Expensify のデータを Sage Intacct へエクスポートする方法を設定します。', exportPreferredExporterNote: '優先されるエクスポーターは任意のワークスペース管理者にできますが、ドメイン設定で会社カードごとに別々のエクスポート先口座を設定している場合は、ドメイン管理者である必要もあります。', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 9fd6ba732a23..ce5b30aadf49 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -5042,7 +5042,9 @@ ${amount} voor ${merchant} - ${date}`, defaultVendor: 'Standaardleverancier', defaultVendorNotSet: 'Niet ingesteld', defaultVendorDescription: (isReimbursable: boolean) => - `Stel een standaardleverancier in die wordt toegepast op ${isReimbursable ? '' : 'niet-'}declarabele uitgaven zonder overeenkomende leverancier in Sage Intacct.`, + isReimbursable + ? `Stel een standaardleverancier in die wordt toegepast op vergoedbare uitgaven waarvoor geen overeenkomende leverancier in Sage Intacct bestaat.` + : `Declaraties die niet gekoppeld kunnen worden aan je Sage Intacct-leveranciers, worden standaard aan deze leverancier toegewezen.`, exportDescription: 'Configureer hoe Expensify-gegevens worden geëxporteerd naar Sage Intacct.', exportPreferredExporterNote: 'De voorkeurs-exporteur kan elke werkruimtebeheerder zijn, maar moet ook een domeinbeheerder zijn als je in Domeininstellingen verschillende exportrekeningen instelt voor individuele bedrijfskaarten.', diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 9f2be028b240..6ae822152d3d 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -5028,7 +5028,9 @@ ${amount} dla ${merchant} - ${date}`, defaultVendor: 'Domyślny dostawca', defaultVendorNotSet: 'Nie ustawiono', defaultVendorDescription: (isReimbursable: boolean) => - `Ustaw domyślnego dostawcę, który zostanie zastosowany do ${isReimbursable ? '' : 'nie-'}wydatków podlegających zwrotowi, nieposiadających pasującego dostawcy w Sage Intacct.`, + isReimbursable + ? `Ustaw domyślnego kontrahenta, który będzie stosowany do wydatków podlegających zwrotowi, nieposiadających pasującego kontrahenta w Sage Intacct.` + : `Wydatki, których nie da się dopasować do Twoich dostawców Sage Intacct, zostaną domyślnie przypisane do tego dostawcy.`, exportDescription: 'Skonfiguruj sposób eksportu danych z Expensify do Sage Intacct.', exportPreferredExporterNote: 'Preferowanym eksporterem może być dowolny administrator przestrzeni roboczej, ale musi on również być administratorem domeny, jeśli w Ustawieniach domeny ustawisz różne konta eksportu dla poszczególnych kart firmowych.', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index a2348f5fda84..968eda80c604 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -5034,7 +5034,9 @@ ${amount} para ${merchant} - ${date}`, defaultVendor: 'Fornecedor padrão', defaultVendorNotSet: 'Não definido', defaultVendorDescription: (isReimbursable: boolean) => - `Defina um fornecedor padrão que será aplicado às despesas reembolsáveis ${isReimbursable ? '' : 'não-'} que não tiverem um fornecedor correspondente no Sage Intacct.`, + isReimbursable + ? `Defina um fornecedor padrão que será aplicado às despesas reembolsáveis que não tiverem um fornecedor correspondente no Sage Intacct.` + : `As despesas que não puderem ser conciliadas com seus fornecedores do Sage Intacct serão atribuídas a este fornecedor por padrão.`, exportDescription: 'Configure como os dados do Expensify são exportados para o Sage Intacct.', exportPreferredExporterNote: 'O exportador preferencial pode ser qualquer administrador do espaço de trabalho, mas também deve ser um Administrador de Domínio se você definir diferentes contas de exportação para cartões corporativos individuais em Configurações de Domínio.', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 5cac4ea2822e..a9625e46bc04 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -4889,7 +4889,8 @@ ${amount},商户:${merchant} - 日期:${date}`, creditCardAccount: '信用卡账户', defaultVendor: '默认供应商', defaultVendorNotSet: '未设置', - defaultVendorDescription: (isReimbursable: boolean) => `为没有在 Sage Intacct 中匹配供应商的${isReimbursable ? '' : '非'}可报销费用设置一个默认供应商。`, + defaultVendorDescription: (isReimbursable: boolean) => + isReimbursable ? `为报销费用设置一个默认供应商,用于在 Sage Intacct 中找不到匹配供应商的情况。` : `无法与 Sage Intacct 供应商匹配的报销将默认归到此供应商名下。`, exportDescription: '配置 Expensify 数据导出到 Sage Intacct 的方式。', exportPreferredExporterNote: '首选导出人可以是任意工作区管理员,但如果你在“域设置”中为各个公司卡设置了不同的导出账户,则该导出人还必须是域管理员。', exportPreferredExporterSubNote: '设置完成后,首选导出人将在其账户中看到可供导出的报表。', From bef89f6060eb9f92545fca3615b4d5ad88d4dc3d Mon Sep 17 00:00:00 2001 From: Alex Beaman Date: Sat, 25 Jul 2026 17:50:18 -0600 Subject: [PATCH 4/6] Add reusable defaultVendorHelperText/SelectHeader strings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduce two connection-agnostic strings under `workspace.accounting`: - `defaultVendorHelperText({connectionName, isSet})` for the muted description below the "Default vendor" row on export pages. - `defaultVendorSelectHeader({connectionName})` for the "Choose a default … vendor" header above the vendor select list. Both take the integration display name as a parameter so QBO, Sage Intacct, Xero, etc. can share the copy while rendering their own name. --- src/languages/de.ts | 7 +++++++ src/languages/en.ts | 7 +++++++ src/languages/es.ts | 7 +++++++ src/languages/fr.ts | 7 +++++++ src/languages/it.ts | 7 +++++++ src/languages/ja.ts | 7 +++++++ src/languages/nl.ts | 7 +++++++ src/languages/params.ts | 11 +++++++++++ src/languages/pl.ts | 7 +++++++ src/languages/pt-BR.ts | 7 +++++++ src/languages/zh-hans.ts | 7 +++++++ 11 files changed, 81 insertions(+) diff --git a/src/languages/de.ts b/src/languages/de.ts index db6442874a7f..8b01df7e812d 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -26,6 +26,8 @@ import type en from './en'; import type { ChangeFieldParams, ConciergeBrokenCardConnectionParams, + ConnectionDefaultVendorHelperTextParams, + ConnectionDisplayNameParams, ConnectionNameParams, DelegateRoleParams, DeleteActionParams, @@ -6966,6 +6968,11 @@ Der Control-Tarif beginnt bei 9 $ pro aktivem Mitglied und Monat.`, exportCompanyCard: 'Firmenkartenausgaben exportieren als', exportDate: 'Exportdatum', defaultVendor: 'Standardanbieter', + defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => + isSet + ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` + : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, defaultAccount: 'Standardkonto', autoSync: 'Automatische Synchronisierung', autoSyncDescription: 'NetSuite und Expensify automatisch jeden Tag synchronisieren. Finalisierte Berichte in Echtzeit exportieren', diff --git a/src/languages/en.ts b/src/languages/en.ts index 428d590e58e9..152fce890648 100644 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -14,6 +14,8 @@ import startCase from 'lodash/startCase'; import type { ChangeFieldParams, ConciergeBrokenCardConnectionParams, + ConnectionDefaultVendorHelperTextParams, + ConnectionDisplayNameParams, ConnectionNameParams, DelegateRoleParams, DeleteActionParams, @@ -7069,6 +7071,11 @@ const translations = { exportCompanyCard: 'Export company card expenses as', exportDate: 'Export date', defaultVendor: 'Default vendor', + defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => + isSet + ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` + : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, defaultAccount: 'Default account', autoSync: 'Auto-sync', autoSyncDescription: 'Sync NetSuite and Expensify automatically, every day. Export finalized report in realtime', diff --git a/src/languages/es.ts b/src/languages/es.ts index df5222c0d7e1..fea81ed4e7f9 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -17,6 +17,8 @@ import {CONST as COMMON_CONST, Str} from 'expensify-common'; import type en from './en'; import type { ConciergeBrokenCardConnectionParams, + ConnectionDefaultVendorHelperTextParams, + ConnectionDisplayNameParams, EmptyViolationSnapshotResultsSubtitleParams, PaidElsewhereParams, RemoveCopilotAccessConfirmationParams, @@ -6752,6 +6754,11 @@ El plan Controlar empieza en 9 $ por miembro activo al mes.`, exportCompanyCard: 'Exportar gastos de la tarjeta de empresa como', exportDate: 'Fecha de exportación', defaultVendor: 'Proveedor predeterminado', + defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => + isSet + ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` + : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, defaultAccount: 'Cuenta predeterminada', autoSync: 'Autosincronización', autoSyncDescription: 'Sincroniza NetSuite y Expensify automáticamente, todos los días. Exporta el informe finalizado en tiempo real', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 0c1aa0d0be37..af74e5fece52 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -26,6 +26,8 @@ import type en from './en'; import type { ChangeFieldParams, ConciergeBrokenCardConnectionParams, + ConnectionDefaultVendorHelperTextParams, + ConnectionDisplayNameParams, ConnectionNameParams, DelegateRoleParams, DeleteActionParams, @@ -6993,6 +6995,11 @@ Le forfait Control commence à 9 $ par Membre actif et par mois.`, exportCompanyCard: 'Exporter les dépenses de carte d’entreprise en tant que', exportDate: 'Date d’exportation', defaultVendor: 'Fournisseur par défaut', + defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => + isSet + ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` + : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, defaultAccount: 'Compte par défaut', autoSync: 'Synchronisation automatique', autoSyncDescription: 'Synchronisez automatiquement NetSuite et Expensify, chaque jour. Exportez les notes de frais finalisées en temps réel', diff --git a/src/languages/it.ts b/src/languages/it.ts index 8caad0a69158..971de82c01e5 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -26,6 +26,8 @@ import type en from './en'; import type { ChangeFieldParams, ConciergeBrokenCardConnectionParams, + ConnectionDefaultVendorHelperTextParams, + ConnectionDisplayNameParams, ConnectionNameParams, DelegateRoleParams, DeleteActionParams, @@ -6947,6 +6949,11 @@ Il piano Control parte da 9 $ al mese per ogni membro attivo.`, exportCompanyCard: 'Esporta le spese con carta aziendale come', exportDate: 'Data di esportazione', defaultVendor: 'Fornitore predefinito', + defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => + isSet + ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` + : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, defaultAccount: 'Conto predefinito', autoSync: 'Sincronizzazione automatica', autoSyncDescription: 'Sincronizza automaticamente NetSuite ed Expensify ogni giorno. Esporta i report finalizzati in tempo reale', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index ecfa859e7779..81c891fbefa7 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -26,6 +26,8 @@ import type en from './en'; import type { ChangeFieldParams, ConciergeBrokenCardConnectionParams, + ConnectionDefaultVendorHelperTextParams, + ConnectionDisplayNameParams, ConnectionNameParams, DelegateRoleParams, DeleteActionParams, @@ -6869,6 +6871,11 @@ Control プランは、アクティブメンバー1人あたり月額 $9 から exportCompanyCard: '法人カード経費のエクスポート形式', exportDate: 'エクスポート日', defaultVendor: 'デフォルトのベンダー', + defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => + isSet + ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` + : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, defaultAccount: 'デフォルトのアカウント', autoSync: '自動同期', autoSyncDescription: 'NetSuite と Expensify を毎日自動で同期。確定したレポートをリアルタイムでエクスポート', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index ce5b30aadf49..9931f7122027 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -26,6 +26,8 @@ import type en from './en'; import type { ChangeFieldParams, ConciergeBrokenCardConnectionParams, + ConnectionDefaultVendorHelperTextParams, + ConnectionDisplayNameParams, ConnectionNameParams, DelegateRoleParams, DeleteActionParams, @@ -6933,6 +6935,11 @@ Het Control-abonnement begint bij $9 per actieve deelnemer per maand.`, exportCompanyCard: 'Bedrijfspaskosten exporteren als', exportDate: 'Exportdatum', defaultVendor: 'Standaardleverancier', + defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => + isSet + ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` + : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, defaultAccount: 'Standaardrekening', autoSync: 'Automatisch synchroniseren', autoSyncDescription: 'Synchroniseer NetSuite en Expensify automatisch, elke dag. Exporteer een afgerond rapport in realtime', diff --git a/src/languages/params.ts b/src/languages/params.ts index 2c3d07d6ff72..bee26c1531c2 100644 --- a/src/languages/params.ts +++ b/src/languages/params.ts @@ -87,6 +87,15 @@ type ConnectionNameParams = { connectionName: AllConnectionName; }; +type ConnectionDisplayNameParams = { + connectionName: string; +}; + +type ConnectionDefaultVendorHelperTextParams = { + connectionName: string; + isSet: boolean; +}; + type ExportAgainModalDescriptionParams = { reportName: string; connectionName: ConnectionName; @@ -175,6 +184,8 @@ export type { UnshareParams, UnsupportedFormulaValueErrorParams, ConnectionNameParams, + ConnectionDisplayNameParams, + ConnectionDefaultVendorHelperTextParams, ExportAgainModalDescriptionParams, UpdateRoleParams, OptionalParam, diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 6ae822152d3d..451a784c92e7 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -26,6 +26,8 @@ import type en from './en'; import type { ChangeFieldParams, ConciergeBrokenCardConnectionParams, + ConnectionDefaultVendorHelperTextParams, + ConnectionDisplayNameParams, ConnectionNameParams, DelegateRoleParams, DeleteActionParams, @@ -6914,6 +6916,11 @@ Plan Control zaczyna się od 9 USD za aktywnego członka miesięcznie.`, exportCompanyCard: 'Eksportuj wydatki z firmowej karty jako', exportDate: 'Data eksportu', defaultVendor: 'Domyślny dostawca', + defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => + isSet + ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` + : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, defaultAccount: 'Domyślne konto', autoSync: 'Automatyczna synchronizacja', autoSyncDescription: 'Synchronizuj NetSuite i Expensify automatycznie, każdego dnia. Eksportuj sfinalizowany raport w czasie rzeczywistym', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 968eda80c604..17a015b9266e 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -26,6 +26,8 @@ import type en from './en'; import type { ChangeFieldParams, ConciergeBrokenCardConnectionParams, + ConnectionDefaultVendorHelperTextParams, + ConnectionDisplayNameParams, ConnectionNameParams, DelegateRoleParams, DeleteActionParams, @@ -6926,6 +6928,11 @@ O plano Control começa em US$ 9 por membro ativo por mês.`, exportCompanyCard: 'Exportar despesas de cartão corporativo como', exportDate: 'Data de exportação', defaultVendor: 'Fornecedor padrão', + defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => + isSet + ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` + : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, defaultAccount: 'Conta padrão', autoSync: 'Sincronização automática', autoSyncDescription: 'Sincronize NetSuite e Expensify automaticamente, todos os dias. Exporte relatórios finalizados em tempo real', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index a9625e46bc04..371fc36839c9 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -26,6 +26,8 @@ import type en from './en'; import type { ChangeFieldParams, ConciergeBrokenCardConnectionParams, + ConnectionDefaultVendorHelperTextParams, + ConnectionDisplayNameParams, ConnectionNameParams, DelegateRoleParams, DeleteActionParams, @@ -6713,6 +6715,11 @@ _如需更详细的说明,请[访问我们的帮助网站](${CONST.NETSUITE_IM exportCompanyCard: '导出公司卡费用为', exportDate: '导出日期', defaultVendor: '默认供应商', + defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => + isSet + ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` + : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, defaultAccount: '默认账户', autoSync: '自动同步', autoSyncDescription: '每天自动同步 NetSuite 和 Expensify。实时导出已完成报表', From 96ea23b3acaa47b7bd779910884768178d9f405a Mon Sep 17 00:00:00 2001 From: Alex Beaman Date: Sat, 25 Jul 2026 17:50:46 -0600 Subject: [PATCH 5/6] Sage Intacct default vendor row: dynamic helper text + drop "Not set" - Non-reimbursable default vendor row no longer falls back to a "Not set" title. When no vendor is picked, the row title is empty and the muted helper text carries the meaning. - The helper text below the row now reads: "Expenses that don't auto-match will default to this Sage Intacct vendor." When no vendor is set, it appends "Otherwise, they'll export as Credit Card Misc." so admins understand the fallback behavior. - The default vendor select page header (non-reimbursable path) now reads "Choose a default Sage Intacct vendor for expenses that don't match automatically." The reimbursable-path header is unchanged. Both new strings live under `workspace.accounting` and receive the connection display name as a parameter, so QBO and Xero can reuse them later. Removes the now-unused `defaultVendorNotSet` key from all language files. --- src/languages/de.ts | 1 - src/languages/en.ts | 1 - src/languages/es.ts | 1 - src/languages/fr.ts | 1 - src/languages/it.ts | 1 - src/languages/ja.ts | 1 - src/languages/nl.ts | 1 - src/languages/pl.ts | 1 - src/languages/pt-BR.ts | 1 - src/languages/zh-hans.ts | 1 - .../export/DynamicSageIntacctDefaultVendorPage.tsx | 8 +++++++- .../export/SageIntacctNonReimbursableExpensesPage.tsx | 7 +++++-- 12 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index 8b01df7e812d..d4529463136f 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -5069,7 +5069,6 @@ ${amount} für ${merchant} – ${date}`, travelInvoicingDescription: 'Reisekosten werden als Kreditkartenbelastungen in das unten angegebene Sage Intacct-Konto exportiert.', creditCardAccount: 'Kreditkartenkonto', defaultVendor: 'Standardanbieter', - defaultVendorNotSet: 'Nicht festgelegt', defaultVendorDescription: (isReimbursable: boolean) => isReimbursable ? `Legen Sie einen Standardlieferanten fest, der auf erstattungsfähige Ausgaben angewendet wird, für die kein übereinstimmender Lieferant in Sage Intacct vorhanden ist.` diff --git a/src/languages/en.ts b/src/languages/en.ts index 152fce890648..dd26a1bbf836 100644 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -5181,7 +5181,6 @@ const translations = { travelInvoicingDescription: 'Travel expenses will export as credit card charges to the Sage Intacct account specified below.', creditCardAccount: 'Credit card account', defaultVendor: 'Default vendor', - defaultVendorNotSet: 'Not set', defaultVendorDescription: (isReimbursable: boolean) => isReimbursable ? `Set a default vendor that will apply to reimbursable expenses that don't have a matching vendor in Sage Intacct.` diff --git a/src/languages/es.ts b/src/languages/es.ts index fea81ed4e7f9..c8dc6147e717 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -4963,7 +4963,6 @@ ${amount} para ${merchant} - ${date}`, travelInvoicingDescription: 'Los gastos de viaje se exportarán como cargos de tarjeta de crédito a la cuenta de Sage Intacct especificada a continuación.', creditCardAccount: 'Cuenta de tarjeta de crédito', defaultVendor: 'Proveedor por defecto', - defaultVendorNotSet: 'No establecido', defaultVendorDescription: (isReimbursable: boolean) => isReimbursable ? `Establece un proveedor predeterminado que se aplicará a los gastos reembolsables que no tengan un proveedor coincidente en Sage Intacct.` diff --git a/src/languages/fr.ts b/src/languages/fr.ts index af74e5fece52..b7ab143e1425 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -5079,7 +5079,6 @@ ${amount} pour ${merchant} - ${date}`, travelInvoicingDescription: 'Les frais de voyage seront exportés comme des débits de carte de crédit vers le compte Sage Intacct indiqué ci-dessous.', creditCardAccount: 'Compte de carte de crédit', defaultVendor: 'Fournisseur par défaut', - defaultVendorNotSet: 'Non défini', defaultVendorDescription: (isReimbursable: boolean) => isReimbursable ? `Définissez un fournisseur par défaut qui sera appliqué aux dépenses remboursables n’ayant pas de fournisseur correspondant dans Sage Intacct.` diff --git a/src/languages/it.ts b/src/languages/it.ts index 971de82c01e5..caeef78d8fdc 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -5048,7 +5048,6 @@ ${amount} per ${merchant} - ${date}`, travelInvoicingDescription: 'Le spese di viaggio verranno esportate come addebiti su carta di credito nel conto Sage Intacct specificato di seguito.', creditCardAccount: 'Conto della carta di credito', defaultVendor: 'Fornitore predefinito', - defaultVendorNotSet: 'Non impostato', defaultVendorDescription: (isReimbursable: boolean) => isReimbursable ? `Imposta un fornitore predefinito che verrà applicato alle spese rimborsabili che non hanno un fornitore corrispondente in Sage Intacct.` diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 81c891fbefa7..621f53c5a06a 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -5005,7 +5005,6 @@ ${integrationName === CONST.ONBOARDING_ACCOUNTING_MAPPING.other ? 'あなたの' travelInvoicingDescription: '旅費は、以下で指定した Sage Intacct アカウントにクレジットカード請求としてエクスポートされます。', creditCardAccount: 'クレジットカード口座', defaultVendor: 'デフォルトのベンダー', - defaultVendorNotSet: '未設定', defaultVendorDescription: (isReimbursable: boolean) => isReimbursable ? `Sage Intacct で一致する取引先がない経費精算対象の経費に適用する、デフォルトの取引先を設定します。` diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 9931f7122027..d361141298be 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -5042,7 +5042,6 @@ ${amount} voor ${merchant} - ${date}`, travelInvoicingDescription: 'Reiskosten worden als creditcardkosten geëxporteerd naar het hieronder opgegeven Sage Intacct-account.', creditCardAccount: 'Creditcardrekening', defaultVendor: 'Standaardleverancier', - defaultVendorNotSet: 'Niet ingesteld', defaultVendorDescription: (isReimbursable: boolean) => isReimbursable ? `Stel een standaardleverancier in die wordt toegepast op vergoedbare uitgaven waarvoor geen overeenkomende leverancier in Sage Intacct bestaat.` diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 451a784c92e7..dfb872d780ef 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -5028,7 +5028,6 @@ ${amount} dla ${merchant} - ${date}`, travelInvoicingDescription: 'Wydatki na podróże zostaną wyeksportowane jako obciążenia karty kredytowej na konto Sage Intacct wskazane poniżej.', creditCardAccount: 'Konto karty kredytowej', defaultVendor: 'Domyślny dostawca', - defaultVendorNotSet: 'Nie ustawiono', defaultVendorDescription: (isReimbursable: boolean) => isReimbursable ? `Ustaw domyślnego kontrahenta, który będzie stosowany do wydatków podlegających zwrotowi, nieposiadających pasującego kontrahenta w Sage Intacct.` diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 17a015b9266e..090e877c7046 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -5034,7 +5034,6 @@ ${amount} para ${merchant} - ${date}`, travelInvoicingDescription: 'As despesas de viagem serão exportadas como cobranças de cartão de crédito para a conta do Sage Intacct especificada abaixo.', creditCardAccount: 'Conta de cartão de crédito', defaultVendor: 'Fornecedor padrão', - defaultVendorNotSet: 'Não definido', defaultVendorDescription: (isReimbursable: boolean) => isReimbursable ? `Defina um fornecedor padrão que será aplicado às despesas reembolsáveis que não tiverem um fornecedor correspondente no Sage Intacct.` diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 371fc36839c9..c35c41f6c2da 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -4890,7 +4890,6 @@ ${amount},商户:${merchant} - 日期:${date}`, travelInvoicingDescription: '差旅费用将作为信用卡费用导出到下面指定的 Sage Intacct 账户。', creditCardAccount: '信用卡账户', defaultVendor: '默认供应商', - defaultVendorNotSet: '未设置', defaultVendorDescription: (isReimbursable: boolean) => isReimbursable ? `为报销费用设置一个默认供应商,用于在 Sage Intacct 中找不到匹配供应商的情况。` : `无法与 Sage Intacct 供应商匹配的报销将默认归到此供应商名下。`, exportDescription: '配置 Expensify 数据导出到 Sage Intacct 的方式。', diff --git a/src/pages/workspace/accounting/intacct/export/DynamicSageIntacctDefaultVendorPage.tsx b/src/pages/workspace/accounting/intacct/export/DynamicSageIntacctDefaultVendorPage.tsx index 92409656f518..f06bf1861a3f 100644 --- a/src/pages/workspace/accounting/intacct/export/DynamicSageIntacctDefaultVendorPage.tsx +++ b/src/pages/workspace/accounting/intacct/export/DynamicSageIntacctDefaultVendorPage.tsx @@ -72,7 +72,13 @@ function DynamicSageIntacctDefaultVendorPage() { const listHeaderComponent = useMemo( () => ( - {translate('workspace.sageIntacct.defaultVendorDescription', isReimbursable)} + + {isReimbursable + ? translate('workspace.sageIntacct.defaultVendorDescription', true) + : translate('workspace.accounting.defaultVendorSelectHeader', { + connectionName: translate('workspace.accounting.connectionName', {connectionName: CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT}), + })} + ), [translate, styles.pb2, styles.ph5, styles.pb5, styles.textNormal, isReimbursable], diff --git a/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx b/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx index 0e309c40de83..51012db9b203 100644 --- a/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx +++ b/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx @@ -83,11 +83,14 @@ function SageIntacctNonReimbursableExpensesPage({policy}: WithPolicyConnectionsP }, { type: 'menuitem', - title: defaultVendorName && defaultVendorName !== '' ? defaultVendorName : translate('workspace.sageIntacct.defaultVendorNotSet'), + title: defaultVendorName && defaultVendorName !== '' ? defaultVendorName : undefined, description: translate('workspace.sageIntacct.defaultVendor'), helperText: config?.export.nonReimbursable === CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.CREDIT_CARD_CHARGE - ? translate('workspace.sageIntacct.defaultVendorDescription', false) + ? translate('workspace.accounting.defaultVendorHelperText', { + connectionName: translate('workspace.accounting.connectionName', {connectionName: CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT}), + isSet: !!(defaultVendorName && defaultVendorName !== ''), + }) : undefined, onPress: () => { if (!policyID) { From cc5775a0f5253a9e364df7ed0a79f9b9d6c9f824 Mon Sep 17 00:00:00 2001 From: Alex Beaman Date: Sat, 25 Jul 2026 17:55:43 -0600 Subject: [PATCH 6/6] Apply Polyglot Parrot translations for default vendor copy Squawk! Translates the new defaultVendorHelperText and defaultVendorSelectHeader strings into all supported languages, and refines the existing sageIntacct.defaultVendorDescription translations while we are here. --- src/languages/de.ts | 11 ++++++----- src/languages/es.ts | 9 +++++---- src/languages/fr.ts | 11 ++++++----- src/languages/it.ts | 9 +++++---- src/languages/ja.ts | 8 ++++---- src/languages/nl.ts | 11 ++++++----- src/languages/pl.ts | 11 ++++++----- src/languages/pt-BR.ts | 9 +++++---- src/languages/zh-hans.ts | 8 +++----- 9 files changed, 46 insertions(+), 41 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index d4529463136f..93de4f1d5317 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -5071,8 +5071,8 @@ ${amount} für ${merchant} – ${date}`, defaultVendor: 'Standardanbieter', defaultVendorDescription: (isReimbursable: boolean) => isReimbursable - ? `Legen Sie einen Standardlieferanten fest, der auf erstattungsfähige Ausgaben angewendet wird, für die kein übereinstimmender Lieferant in Sage Intacct vorhanden ist.` - : `Spesen, die keinen Ihrer Sage Intacct-Lieferanten zugeordnet werden können, werden standardmäßig diesem Lieferanten zugeordnet.`, + ? `Legen Sie einen Standardlieferanten fest, der auf erstattungsfähige Ausgaben angewendet wird, für die es in Sage Intacct keinen passenden Lieferanten gibt.` + : `Ausgaben, die nicht mit Ihren Sage Intacct-Lieferanten abgeglichen werden können, werden standardmäßig diesem Lieferanten zugeordnet.`, exportDescription: 'Konfigurieren Sie, wie Expensify Daten nach Sage Intacct exportiert.', exportPreferredExporterNote: 'Der bevorzugte Exporteur kann jede Workspace-Adminperson sein, muss jedoch auch Domain-Admin sein, wenn du in den Domaineinstellungen unterschiedliche Exportkonten für einzelne Firmenkarten festlegst.', @@ -6969,9 +6969,10 @@ Der Control-Tarif beginnt bei 9 $ pro aktivem Mitglied und Monat.`, defaultVendor: 'Standardanbieter', defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => isSet - ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` - : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, - defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, + ? `Ausgaben, die nicht automatisch abgeglichen werden, werden standardmäßig diesem ${connectionName}-Lieferanten zugeordnet.` + : `Spesen, die nicht automatisch abgeglichen werden, werden standardmäßig diesem ${connectionName}-Lieferanten zugeordnet. Andernfalls werden sie als „Credit Card Misc.“ exportiert.`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => + `Wählen Sie einen Standard-${connectionName}-Anbieter für Ausgaben, die nicht automatisch zugeordnet werden.`, defaultAccount: 'Standardkonto', autoSync: 'Automatische Synchronisierung', autoSyncDescription: 'NetSuite und Expensify automatisch jeden Tag synchronisieren. Finalisierte Berichte in Echtzeit exportieren', diff --git a/src/languages/es.ts b/src/languages/es.ts index c8dc6147e717..384b57dc02ae 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -4966,7 +4966,7 @@ ${amount} para ${merchant} - ${date}`, defaultVendorDescription: (isReimbursable: boolean) => isReimbursable ? `Establece un proveedor predeterminado que se aplicará a los gastos reembolsables que no tengan un proveedor coincidente en Sage Intacct.` - : `Los gastos que no se puedan asociar con tus proveedores de Sage Intacct se asignarán a este proveedor de forma predeterminada.`, + : `Los gastos que no se puedan asignar a tus proveedores de Sage Intacct se asociarán por defecto a este proveedor.`, exportDescription: 'Configure cómo se exportan los datos de Expensify a Sage Intacct.', exportPreferredExporterNote: 'El exportador preferido puede ser cualquier administrador del área de trabajo, pero también debe ser un administrador del dominio si establece diferentes cuentas de exportación para tarjetas de empresa individuales en Configuración del dominio.', @@ -6755,9 +6755,10 @@ El plan Controlar empieza en 9 $ por miembro activo al mes.`, defaultVendor: 'Proveedor predeterminado', defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => isSet - ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` - : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, - defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, + ? `Los gastos que no se asignen automáticamente se asociarán por defecto a este proveedor de ${connectionName}.` + : `Los gastos que no se concilien automáticamente se asignarán por defecto a este proveedor de ${connectionName}. De lo contrario, se exportarán como Credit Card Misc.`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => + `Elige un proveedor predeterminado de ${connectionName} para los gastos que no se asignen automáticamente.`, defaultAccount: 'Cuenta predeterminada', autoSync: 'Autosincronización', autoSyncDescription: 'Sincroniza NetSuite y Expensify automáticamente, todos los días. Exporta el informe finalizado en tiempo real', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index b7ab143e1425..aae1500ef836 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -5081,8 +5081,8 @@ ${amount} pour ${merchant} - ${date}`, defaultVendor: 'Fournisseur par défaut', defaultVendorDescription: (isReimbursable: boolean) => isReimbursable - ? `Définissez un fournisseur par défaut qui sera appliqué aux dépenses remboursables n’ayant pas de fournisseur correspondant dans Sage Intacct.` - : `Les dépenses qui ne peuvent pas être rapprochées avec vos fournisseurs Sage Intacct seront, par défaut, associées à ce fournisseur.`, + ? `Définissez un fournisseur par défaut qui s’appliquera aux dépenses remboursables qui n’ont pas de fournisseur correspondant dans Sage Intacct.` + : `Les dépenses qui ne peuvent pas être rapprochées de vos fournisseurs Sage Intacct seront par défaut associées à ce fournisseur.`, exportDescription: 'Configurez comment les données Expensify sont exportées vers Sage Intacct.', exportPreferredExporterNote: 'L’exportateur préféré peut être n’importe quel administrateur d’espace de travail, mais doit également être un administrateur de domaine si vous définissez des comptes d’exportation différents pour chaque carte d’entreprise individuelle dans les paramètres de domaine.', @@ -6996,9 +6996,10 @@ Le forfait Control commence à 9 $ par Membre actif et par mois.`, defaultVendor: 'Fournisseur par défaut', defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => isSet - ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` - : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, - defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, + ? `Les dépenses qui ne sont pas associées automatiquement seront par défaut rattachées à ce fournisseur ${connectionName}.` + : `Les dépenses qui ne sont pas appariées automatiquement seront par défaut associées à ce fournisseur ${connectionName}. Sinon, elles seront exportées en tant que « Credit Card Misc ».`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => + `Choisissez un fournisseur ${connectionName} par défaut pour les dépenses qui ne correspondent pas automatiquement.`, defaultAccount: 'Compte par défaut', autoSync: 'Synchronisation automatique', autoSyncDescription: 'Synchronisez automatiquement NetSuite et Expensify, chaque jour. Exportez les notes de frais finalisées en temps réel', diff --git a/src/languages/it.ts b/src/languages/it.ts index caeef78d8fdc..28d48d7bc005 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -5051,7 +5051,7 @@ ${amount} per ${merchant} - ${date}`, defaultVendorDescription: (isReimbursable: boolean) => isReimbursable ? `Imposta un fornitore predefinito che verrà applicato alle spese rimborsabili che non hanno un fornitore corrispondente in Sage Intacct.` - : `Le spese che non possono essere abbinate ai tuoi fornitori Sage Intacct verranno associate per impostazione predefinita a questo fornitore.`, + : `Le spese che non possono essere abbinate ai tuoi fornitori Sage Intacct verranno assegnate per impostazione predefinita a questo fornitore.`, exportDescription: 'Configura come i dati di Expensify vengono esportati in Sage Intacct.', exportPreferredExporterNote: 'L’esportatore preferito può essere qualsiasi amministratore dello spazio di lavoro, ma deve anche essere un Amministratore del dominio se imposti conti di esportazione diversi per le singole carte aziendali nelle Impostazioni del dominio.', @@ -6950,9 +6950,10 @@ Il piano Control parte da 9 $ al mese per ogni membro attivo.`, defaultVendor: 'Fornitore predefinito', defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => isSet - ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` - : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, - defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, + ? `Le spese che non corrispondono automaticamente verranno associate per impostazione predefinita a questo fornitore ${connectionName}.` + : `Le spese che non vengono abbinate automaticamente verranno associate per impostazione predefinita a questo fornitore ${connectionName}. In caso contrario, verranno esportate come “Credit Card Misc.”.`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => + `Scegli un fornitore predefinito ${connectionName} per le spese che non vengono abbinate automaticamente.`, defaultAccount: 'Conto predefinito', autoSync: 'Sincronizzazione automatica', autoSyncDescription: 'Sincronizza automaticamente NetSuite ed Expensify ogni giorno. Esporta i report finalizzati in tempo reale', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 621f53c5a06a..366a29671cf8 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -5007,7 +5007,7 @@ ${integrationName === CONST.ONBOARDING_ACCOUNTING_MAPPING.other ? 'あなたの' defaultVendor: 'デフォルトのベンダー', defaultVendorDescription: (isReimbursable: boolean) => isReimbursable - ? `Sage Intacct で一致する取引先がない経費精算対象の経費に適用する、デフォルトの取引先を設定します。` + ? `Sage Intacct で一致する取引先がない立替経費に適用する、デフォルトの取引先を設定します。` : `Sage Intacct のベンダーに照合できない経費は、デフォルトでこのベンダーに割り当てられます。`, exportDescription: 'Expensify のデータを Sage Intacct へエクスポートする方法を設定します。', exportPreferredExporterNote: @@ -6872,9 +6872,9 @@ Control プランは、アクティブメンバー1人あたり月額 $9 から defaultVendor: 'デフォルトのベンダー', defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => isSet - ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` - : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, - defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, + ? `自動照合されない経費は、デフォルトでこの ${connectionName} のベンダーに紐づきます。` + : `自動照合されない経費は、デフォルトでこの ${connectionName} の仕入先として処理されます。照合される場合は、「Credit Card Misc」としてエクスポートされます。`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `自動的に照合されない経費に対して使用する、デフォルトの ${connectionName} 仕入先を選択します。`, defaultAccount: 'デフォルトのアカウント', autoSync: '自動同期', autoSyncDescription: 'NetSuite と Expensify を毎日自動で同期。確定したレポートをリアルタイムでエクスポート', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index d361141298be..034f882f95cf 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -5044,8 +5044,8 @@ ${amount} voor ${merchant} - ${date}`, defaultVendor: 'Standaardleverancier', defaultVendorDescription: (isReimbursable: boolean) => isReimbursable - ? `Stel een standaardleverancier in die wordt toegepast op vergoedbare uitgaven waarvoor geen overeenkomende leverancier in Sage Intacct bestaat.` - : `Declaraties die niet gekoppeld kunnen worden aan je Sage Intacct-leveranciers, worden standaard aan deze leverancier toegewezen.`, + ? `Stel een standaardleverancier in die wordt toegepast op declarabele uitgaven waarvoor geen overeenkomende leverancier in Sage Intacct is.` + : `Uitgaven die niet kunnen worden gekoppeld aan je Sage Intacct-leveranciers, worden standaard aan deze leverancier toegewezen.`, exportDescription: 'Configureer hoe Expensify-gegevens worden geëxporteerd naar Sage Intacct.', exportPreferredExporterNote: 'De voorkeurs-exporteur kan elke werkruimtebeheerder zijn, maar moet ook een domeinbeheerder zijn als je in Domeininstellingen verschillende exportrekeningen instelt voor individuele bedrijfskaarten.', @@ -6936,9 +6936,10 @@ Het Control-abonnement begint bij $9 per actieve deelnemer per maand.`, defaultVendor: 'Standaardleverancier', defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => isSet - ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` - : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, - defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, + ? `Declaraties die niet automatisch worden gematcht, worden standaard aan deze ${connectionName}-leverancier gekoppeld.` + : `Declaraties die niet automatisch worden gekoppeld, worden standaard aan deze ${connectionName}-leverancier toegewezen. Anders worden ze geëxporteerd als Credit Card Misc.`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => + `Kies een standaard ${connectionName}-leverancier voor onkosten die niet automatisch worden gekoppeld.`, defaultAccount: 'Standaardrekening', autoSync: 'Automatisch synchroniseren', autoSyncDescription: 'Synchroniseer NetSuite en Expensify automatisch, elke dag. Exporteer een afgerond rapport in realtime', diff --git a/src/languages/pl.ts b/src/languages/pl.ts index dfb872d780ef..56b1ae69aac7 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -5030,8 +5030,8 @@ ${amount} dla ${merchant} - ${date}`, defaultVendor: 'Domyślny dostawca', defaultVendorDescription: (isReimbursable: boolean) => isReimbursable - ? `Ustaw domyślnego kontrahenta, który będzie stosowany do wydatków podlegających zwrotowi, nieposiadających pasującego kontrahenta w Sage Intacct.` - : `Wydatki, których nie da się dopasować do Twoich dostawców Sage Intacct, zostaną domyślnie przypisane do tego dostawcy.`, + ? `Ustaw domyślnego dostawcę, który zostanie zastosowany do wydatków podlegających zwrotowi, nieposiadających pasującego dostawcy w Sage Intacct.` + : `Wydatki, których nie da się dopasować do twoich dostawców w Sage Intacct, zostaną domyślnie przypisane do tego dostawcy.`, exportDescription: 'Skonfiguruj sposób eksportu danych z Expensify do Sage Intacct.', exportPreferredExporterNote: 'Preferowanym eksporterem może być dowolny administrator przestrzeni roboczej, ale musi on również być administratorem domeny, jeśli w Ustawieniach domeny ustawisz różne konta eksportu dla poszczególnych kart firmowych.', @@ -6917,9 +6917,10 @@ Plan Control zaczyna się od 9 USD za aktywnego członka miesięcznie.`, defaultVendor: 'Domyślny dostawca', defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => isSet - ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` - : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, - defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, + ? `Wydatki, które nie zostaną automatycznie dopasowane, domyślnie trafią do tego dostawcy ${connectionName}.` + : `Wydatki, które nie zostaną automatycznie dopasowane, domyślnie trafią do tego dostawcy ${connectionName}. W przeciwnym razie zostaną wyeksportowane jako Credit Card Misc.`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => + `Wybierz domyślnego dostawcę ${connectionName} dla wydatków, które nie zostaną dopasowane automatycznie.`, defaultAccount: 'Domyślne konto', autoSync: 'Automatyczna synchronizacja', autoSyncDescription: 'Synchronizuj NetSuite i Expensify automatycznie, każdego dnia. Eksportuj sfinalizowany raport w czasie rzeczywistym', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 090e877c7046..fb5ea3022e9e 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -5037,7 +5037,7 @@ ${amount} para ${merchant} - ${date}`, defaultVendorDescription: (isReimbursable: boolean) => isReimbursable ? `Defina um fornecedor padrão que será aplicado às despesas reembolsáveis que não tiverem um fornecedor correspondente no Sage Intacct.` - : `As despesas que não puderem ser conciliadas com seus fornecedores do Sage Intacct serão atribuídas a este fornecedor por padrão.`, + : `Despesas que não puderem ser correspondidas aos seus fornecedores do Sage Intacct serão atribuídas a este fornecedor por padrão.`, exportDescription: 'Configure como os dados do Expensify são exportados para o Sage Intacct.', exportPreferredExporterNote: 'O exportador preferencial pode ser qualquer administrador do espaço de trabalho, mas também deve ser um Administrador de Domínio se você definir diferentes contas de exportação para cartões corporativos individuais em Configurações de Domínio.', @@ -6929,9 +6929,10 @@ O plano Control começa em US$ 9 por membro ativo por mês.`, defaultVendor: 'Fornecedor padrão', defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => isSet - ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` - : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, - defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, + ? `Despesas que não forem conciliadas automaticamente serão atribuídas por padrão a este fornecedor ${connectionName}.` + : `As despesas que não corresponderem automaticamente serão associadas por padrão a este fornecedor ${connectionName}. Caso contrário, serão exportadas como Credit Card Misc.`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => + `Escolha um fornecedor padrão do ${connectionName} para despesas que não forem correspondidas automaticamente.`, defaultAccount: 'Conta padrão', autoSync: 'Sincronização automática', autoSyncDescription: 'Sincronize NetSuite e Expensify automaticamente, todos os dias. Exporte relatórios finalizados em tempo real', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index c35c41f6c2da..312f626be920 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -4891,7 +4891,7 @@ ${amount},商户:${merchant} - 日期:${date}`, creditCardAccount: '信用卡账户', defaultVendor: '默认供应商', defaultVendorDescription: (isReimbursable: boolean) => - isReimbursable ? `为报销费用设置一个默认供应商,用于在 Sage Intacct 中找不到匹配供应商的情况。` : `无法与 Sage Intacct 供应商匹配的报销将默认归到此供应商名下。`, + isReimbursable ? `为可报销但在 Sage Intacct 中没有匹配供应商的费用设置一个默认供应商。` : `无法匹配到 Sage Intacct 供应商的报销将默认归到此供应商名下。`, exportDescription: '配置 Expensify 数据导出到 Sage Intacct 的方式。', exportPreferredExporterNote: '首选导出人可以是任意工作区管理员,但如果你在“域设置”中为各个公司卡设置了不同的导出账户,则该导出人还必须是域管理员。', exportPreferredExporterSubNote: '设置完成后,首选导出人将在其账户中看到可供导出的报表。', @@ -6715,10 +6715,8 @@ _如需更详细的说明,请[访问我们的帮助网站](${CONST.NETSUITE_IM exportDate: '导出日期', defaultVendor: '默认供应商', defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) => - isSet - ? `Expenses that don't auto-match will default to this ${connectionName} vendor.` - : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`, - defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`, + isSet ? `未自动匹配的报销将默认归入此 ${connectionName} 供应商。` : `未自动匹配的报销将默认归到此 ${connectionName} 供应商。否则,它们将以“Credit Card Misc”导出。`, + defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `为未能自动匹配的报销选择一个默认的 ${connectionName} 供应商。`, defaultAccount: '默认账户', autoSync: '自动同步', autoSyncDescription: '每天自动同步 NetSuite 和 Expensify。实时导出已完成报表',