From 0bd2665f728c81d369a64b0791a93b6f24a634f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Rejdak?= Date: Tue, 16 Dec 2025 16:42:30 +0100 Subject: [PATCH 1/4] 5th batch of changes - wip --- src/languages/en.ts | 97 +++++++++---------- src/languages/es.ts | 22 ++--- src/libs/PolicyUtils.ts | 5 +- src/libs/ReportActionsUtils.ts | 10 +- src/libs/ReportUtils.ts | 20 ++-- src/libs/actions/IOU.ts | 2 +- .../TermsPage/LongTermsForm.tsx | 2 +- .../MissingPersonalDetailsMagicCodePage.tsx | 2 +- .../Contacts/ContactMethodDetailsPage.tsx | 2 +- .../NewContactMethodConfirmMagicCodePage.tsx | 2 +- .../ConfirmDelegateMagicCodePage.tsx | 2 +- .../UpdateDelegateMagicCodePage.tsx | 2 +- .../BillingBanner/EarlyDiscountBanner.tsx | 19 +--- src/pages/settings/VerifyAccountPageBase.tsx | 2 +- ...pensifyCardMissingDetailsMagicCodePage.tsx | 2 +- .../ExpensifyCardVerifyAccountPage.tsx | 2 +- .../ReportCardLostConfirmMagicCodePage.tsx | 2 +- ...eportVirtualCardFraudVerifyAccountPage.tsx | 2 +- .../accounting/PolicyAccountingPage.tsx | 2 +- .../reconciliation/CardReconciliationPage.tsx | 7 +- .../categories/WorkspaceCategoriesPage.tsx | 6 +- .../IssueNewCardConfirmMagicCodePage.tsx | 2 +- .../perDiem/EditPerDiemCurrencyPage.tsx | 2 +- .../perDiem/EditPerDiemDestinationPage.tsx | 4 +- .../rules/ExpenseReportRulesSection.tsx | 4 +- .../workspace/tags/WorkspaceTagsPage.tsx | 4 +- 26 files changed, 95 insertions(+), 133 deletions(-) diff --git a/src/languages/en.ts b/src/languages/en.ts index 8f20c1f98ff57..b8401468e0c06 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -42,8 +42,7 @@ import type { ContactMethodsRouteParams, CreateExpensesParams, CurrencyCodeParams, - CurrencyInputDisabledTextParams, - CustomersOrJobsLabelParams, + CurrencyInputDisabledTextParams, // CustomersOrJobsLabelParams, DateParams, DateShouldBeAfterParams, DateShouldBeBeforeParams, @@ -52,29 +51,23 @@ import type { DelegateRoleParams, DelegatorParams, DeleteActionParams, - DeleteConfirmationParams, - DeleteTransactionParams, - DemotedFromWorkspaceParams, - DependentMultiLevelTagsSubtitleParams, - DidSplitAmountMessageParams, + DeleteConfirmationParams, // DeleteTransactionParams, + // DemotedFromWorkspaceParams, + DependentMultiLevelTagsSubtitleParams, // DidSplitAmountMessageParams, DisconnectYourBankAccountParams, DomainPermissionInfoRestrictionParams, - DuplicateTransactionParams, - EarlyDiscountSubtitleParams, - EarlyDiscountTitleParams, - EditActionParams, - EditDestinationSubtitleParams, - ElectronicFundsParams, - EmployeeInviteMessageParams, - EmptyCategoriesSubtitleWithAccountingParams, - EmptyTagsSubtitleWithAccountingParams, - EnableContinuousReconciliationParams, - EnterMagicCodeParams, - ErrorODIntegrationParams, - ExportAgainModalDescriptionParams, - ExportedToIntegrationParams, - ExportIntegrationSelectedParams, - FeatureNameParams, + DuplicateTransactionParams, // EarlyDiscountSubtitleParams, + // EarlyDiscountTitleParams, + EditActionParams, // EditDestinationSubtitleParams, + // ElectronicFundsParams, + // EmployeeInviteMessageParams, + // EmptyCategoriesSubtitleWithAccountingParams, + // EmptyTagsSubtitleWithAccountingParams, + // EnableContinuousReconciliationParams, + // EnterMagicCodeParams, + // ErrorODIntegrationParams, + ExportAgainModalDescriptionParams, // ExportedToIntegrationParams, + ExportIntegrationSelectedParams, // FeatureNameParams, FileLimitParams, FileTypeParams, FiltersAmountBetweenParams, @@ -161,8 +154,7 @@ import type { ReportFieldParams, ReportPolicyNameParams, RequestAmountParams, - RequestCountParams, - RequestedAmountMessageParams, + RequestCountParams, // RequestedAmountMessageParams, RequiredFieldParams, ResolutionConstraintsParams, ReviewParams, @@ -1181,7 +1173,7 @@ const translations = { posted: 'Posted', deleteReceipt: 'Delete receipt', findExpense: 'Find expense', - deletedTransaction: ({amount, merchant}: DeleteTransactionParams) => `deleted an expense (${amount} for ${merchant})`, + deletedTransaction: (amount: string, merchant: string) => `deleted an expense (${amount} for ${merchant})`, movedFromReport: ({reportName}: MovedFromReportParams) => `moved an expense${reportName ? ` from ${reportName}` : ''}`, movedTransactionTo: ({reportUrl, reportName}: MovedTransactionParams) => `moved this expense${reportName ? ` to ${reportName}` : ''}`, movedTransactionFrom: ({reportUrl, reportName}: MovedTransactionParams) => `moved this expense${reportName ? ` from ${reportName}` : ''}`, @@ -1286,12 +1278,12 @@ const translations = { finished: 'Finished', flip: 'Flip', sendInvoice: ({amount}: RequestAmountParams) => `Send ${amount} invoice`, - expenseAmount: ({formattedAmount, comment}: RequestedAmountMessageParams) => `${formattedAmount}${comment ? ` for ${comment}` : ''}`, + expenseAmount: (formattedAmount: string, comment?: string) => `${formattedAmount}${comment ? ` for ${comment}` : ''}`, submitted: ({memo}: SubmittedWithMemoParams) => `submitted${memo ? `, saying ${memo}` : ''}`, automaticallySubmitted: `submitted via delay submissions`, - trackedAmount: ({formattedAmount, comment}: RequestedAmountMessageParams) => `tracking ${formattedAmount}${comment ? ` for ${comment}` : ''}`, + trackedAmount: (formattedAmount: string, comment?: string) => `tracking ${formattedAmount}${comment ? ` for ${comment}` : ''}`, splitAmount: ({amount}: SplitAmountParams) => `split ${amount}`, - didSplitAmount: ({formattedAmount, comment}: DidSplitAmountMessageParams) => `split ${formattedAmount}${comment ? ` for ${comment}` : ''}`, + didSplitAmount: (formattedAmount: string, comment: string) => `split ${formattedAmount}${comment ? ` for ${comment}` : ''}`, yourSplit: ({amount}: UserSplitParams) => `Your split ${amount}`, payerOwesAmount: ({payer, amount, comment}: PayerOwesAmountParams) => `${payer} owes ${amount}${comment ? ` for ${comment}` : ''}`, payerOwes: ({payer}: PayerOwesParams) => `${payer} owes: `, @@ -1758,7 +1750,7 @@ const translations = { `Add more ways to log in and send receipts to Expensify.

Add an email address to forward receipts to ${email} or add a phone number to text receipts to 47777 (US numbers only).`, pleaseVerify: 'Please verify this contact method.', getInTouch: "We'll use this method to contact you.", - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Please enter the magic code sent to ${contactMethod}. It should arrive within a minute or two.`, + enterMagicCode: (contactMethod: string) => `Please enter the magic code sent to ${contactMethod}. It should arrive within a minute or two.`, setAsDefault: 'Set as default', yourDefaultContactMethod: "This is your current default contact method. Before you can delete it, you'll need to choose another contact method and click “Set as default”.", removeContactMethod: 'Remove contact method', @@ -2199,7 +2191,7 @@ const translations = { cardAddedToWallet: ({platform}: {platform: 'Google' | 'Apple'}) => `Added to ${platform} Wallet`, cardDetailsLoadingFailure: 'An error occurred while loading the card details. Please check your internet connection and try again.', validateCardTitle: "Let's make sure it's you", - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Please enter the magic code sent to ${contactMethod} to view your card details. It should arrive within a minute or two.`, + enterMagicCode: (contactMethod: string) => `Please enter the magic code sent to ${contactMethod} to view your card details. It should arrive within a minute or two.`, missingPrivateDetails: ({missingDetailsLink}: {missingDetailsLink: string}) => `Please add your personal details, then try again.`, unexpectedError: 'There was an error trying to get your Expensify card details. Please try again.', cardFraudAlert: { @@ -3212,7 +3204,7 @@ const translations = { sendingFundsDetails: "There's no fee to send funds to another account holder using your balance, bank account, or debit card.", electronicFundsStandardDetails: "There's no fee to transfer funds from your Expensify Wallet to your bank account using the standard option. This transfer usually completes within 1-3 business days.", - electronicFundsInstantDetails: ({percentage, amount}: ElectronicFundsParams) => + electronicFundsInstantDetails: (percentage: string, amount: string) => "There's a fee to transfer funds from your Expensify Wallet to your linked debit card using the instant transfer option. This transfer usually completes within several minutes." + ` The fee is ${percentage}% of the transfer amount (with a minimum fee of ${amount}).`, fdicInsuranceBancorp: ({amount}: TermsParams) => @@ -3926,8 +3918,8 @@ const translations = { importPerDiemRates: 'Import per diem rates', editPerDiemRate: 'Edit per diem rate', editPerDiemRates: 'Edit per diem rates', - editDestinationSubtitle: ({destination}: EditDestinationSubtitleParams) => `Updating this destination will change it for all ${destination} per diem subrates.`, - editCurrencySubtitle: ({destination}: EditDestinationSubtitleParams) => `Updating this currency will change it for all ${destination} per diem subrates.`, + editDestinationSubtitle: (destination: string) => `Updating this destination will change it for all ${destination} per diem subrates.`, + editCurrencySubtitle: (destination: string) => `Updating this currency will change it for all ${destination} per diem subrates.`, }, qbd: { exportOutOfPocketExpensesDescription: 'Set how out-of-pocket expenses export to QuickBooks Desktop.', @@ -4529,7 +4521,7 @@ const translations = { importJobs: 'Import projects', customers: 'customers', jobs: 'projects', - label: ({importFields, importType}: CustomersOrJobsLabelParams) => `${importFields.join(' and ')}, ${importType}`, + label: (importFields: string[], importType: string) => `${importFields.join(' and ')}, ${importType}`, }, importTaxDescription: 'Import tax groups from NetSuite.', importCustomFields: { @@ -4877,7 +4869,7 @@ const translations = { emptyCategories: { title: "You haven't created any categories", subtitle: 'Add a category to organize your spend.', - subtitleWithAccounting: ({accountingPageURL}: EmptyCategoriesSubtitleWithAccountingParams) => + subtitleWithAccounting: (accountingPageURL: string) => `Your categories are currently importing from an accounting connection. Head over to accounting to make any changes.`, }, updateFailureMessage: 'An error occurred while updating the category, please try again', @@ -5164,7 +5156,7 @@ const translations = { // We need to remove the subtitle and use the below one when we remove the canUseMultiLevelTags beta subtitle: 'Add a tag to track projects, locations, departments, and more.', subtitleHTML: `Import a spreadsheet to add tags for tracking projects, locations, departments, and more. Learn more about formatting tag files.`, - subtitleWithAccounting: ({accountingPageURL}: EmptyTagsSubtitleWithAccountingParams) => + subtitleWithAccounting: (accountingPageURL: string) => `Your tags are currently importing from an accounting connection. Head over to accounting to make any changes.`, }, deleteTag: 'Delete tag', @@ -5424,7 +5416,7 @@ const translations = { } } }, - errorODIntegration: ({oldDotPolicyConnectionsURL}: ErrorODIntegrationParams) => + errorODIntegration: (oldDotPolicyConnectionsURL: string) => `There's an error with a connection that's been set up in Expensify Classic. [Go to Expensify Classic to fix this issue.](${oldDotPolicyConnectionsURL})`, goToODToSettings: 'Go to Expensify Classic to manage your settings.', setup: 'Connect', @@ -5635,7 +5627,7 @@ const translations = { continuousReconciliation: 'Continuous Reconciliation', saveHoursOnReconciliation: 'Save hours on reconciliation each accounting period by having Expensify continuously reconcile Expensify Card statements and settlements on your behalf.', - enableContinuousReconciliation: ({accountingAdvancedSettingsLink, connectionName}: EnableContinuousReconciliationParams) => + enableContinuousReconciliation: (accountingAdvancedSettingsLink: string, connectionName: string) => `In order to enable Continuous Reconciliation, please enable auto-sync for ${connectionName}.`, chooseReconciliationAccount: { chooseBankAccount: 'Choose the bank account that your Expensify Card payments will be reconciled against.', @@ -6068,8 +6060,8 @@ const translations = { autoPayApprovedReportsLockedSubtitle: 'Go to more features and enable workflows, then add payments to unlock this feature.', autoPayReportsUnderTitle: 'Auto-pay reports under', autoPayReportsUnderDescription: 'Fully compliant expense reports under this amount will be automatically paid.', - unlockFeatureEnableWorkflowsSubtitle: ({featureName}: FeatureNameParams) => `Add ${featureName} to unlock this feature.`, - enableFeatureSubtitle: ({featureName, moreFeaturesLink}: FeatureNameParams) => `Go to [more features](${moreFeaturesLink}) and enable ${featureName} to unlock this feature.`, + unlockFeatureEnableWorkflowsSubtitle: (featureName: string) => `Add ${featureName} to unlock this feature.`, + enableFeatureSubtitle: (featureName: string, moreFeaturesLink?: string) => `Go to [more features](${moreFeaturesLink}) and enable ${featureName} to unlock this feature.`, }, categoryRules: { title: 'Category rules', @@ -6345,7 +6337,7 @@ const translations = { other: `removed you from ${joinedNames}'s approval workflows and expense chats. Previously submitted reports will remain available for approval in your Inbox.`, }; }, - demotedFromWorkspace: ({policyName, oldRole}: DemotedFromWorkspaceParams) => + demotedFromWorkspace: (policyName: string, oldRole: string) => `updated your role in ${policyName} from ${oldRole} to user. You have been removed from all submitter expense chats except for you own.`, updatedWorkspaceCurrencyAction: ({oldCurrency, newCurrency}: UpdatedPolicyCurrencyParams) => `updated the default currency to ${newCurrency} (previously ${oldCurrency})`, updatedWorkspaceFrequencyAction: ({oldFrequency, newFrequency}: UpdatedPolicyFrequencyParams) => @@ -6843,7 +6835,7 @@ const translations = { changeType: ({oldType, newType}: ChangeTypeParams) => `changed type from ${oldType} to ${newType}`, exportedToCSV: `exported to CSV`, exportedToIntegration: { - automatic: ({label}: ExportedToIntegrationParams) => { + automatic: (label: string) => { const labelTranslations: Record = { [CONST.REPORT.EXPORT_OPTION_LABELS.EXPENSE_LEVEL_EXPORT]: translations.export.expenseLevelExport, [CONST.REPORT.EXPORT_OPTION_LABELS.REPORT_LEVEL_EXPORT]: translations.export.reportLevelExport, @@ -6851,13 +6843,13 @@ const translations = { const translatedLabel = labelTranslations[label] || label; return `exported to ${translatedLabel}`; }, - automaticActionOne: ({label}: ExportedToIntegrationParams) => `exported to ${label} via`, + automaticActionOne: (label: string) => `exported to ${label} via`, automaticActionTwo: 'accounting settings', - manual: ({label}: ExportedToIntegrationParams) => `marked this report as manually exported to ${label}.`, + manual: (label: string) => `marked this report as manually exported to ${label}.`, automaticActionThree: 'and successfully created a record for', reimburseableLink: 'out-of-pocket expenses', nonReimbursableLink: 'company card expenses', - pending: ({label}: ExportedToIntegrationParams) => `started exporting this report to ${label}...`, + pending: (label: string) => `started exporting this report to ${label}...`, }, integrationsMessage: ({errorMessage, label, linkText, linkURL}: IntegrationSyncFailedParams) => `failed to export this report to ${label} ("${errorMessage}${linkText ? ` ${linkText}` : ''}")`, @@ -7371,10 +7363,9 @@ const translations = { }, earlyDiscount: { claimOffer: 'Claim offer', - subscriptionPageTitle: ({discountType}: EarlyDiscountTitleParams) => - `${discountType}% off your first year! Just add a payment card and start an annual subscription.`, - onboardingChatTitle: ({discountType}: EarlyDiscountTitleParams) => `Limited-time offer: ${discountType}% off your first year!`, - subtitle: ({days, hours, minutes, seconds}: EarlyDiscountSubtitleParams) => `Claim within ${days > 0 ? `${days}d : ` : ''}${hours}h : ${minutes}m : ${seconds}s`, + subscriptionPageTitle: (discountType: number) => `${discountType}% off your first year! Just add a payment card and start an annual subscription.`, + onboardingChatTitle: (discountType: number) => `Limited-time offer: ${discountType}% off your first year!`, + subtitle: (days: number, hours: number, minutes: number, seconds: number) => `Claim within ${days > 0 ? `${days}d : ` : ''}${hours}h : ${minutes}m : ${seconds}s`, }, }, cardSection: { @@ -7575,8 +7566,8 @@ const translations = { removeCopilotConfirmation: 'Are you sure you want to remove this copilot?', changeAccessLevel: 'Change access level', makeSureItIsYou: "Let's make sure it's you", - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Please enter the magic code sent to ${contactMethod} to add a copilot. It should arrive within a minute or two.`, - enterMagicCodeUpdate: ({contactMethod}: EnterMagicCodeParams) => `Please enter the magic code sent to ${contactMethod} to update your copilot.`, + enterMagicCode: (contactMethod: string) => `Please enter the magic code sent to ${contactMethod} to add a copilot. It should arrive within a minute or two.`, + enterMagicCodeUpdate: (contactMethod: string) => `Please enter the magic code sent to ${contactMethod} to update your copilot.`, notAllowed: 'Not so fast...', noAccessMessage: dedent(` As a copilot, you don't have access to @@ -7743,7 +7734,7 @@ const translations = { readyForTheRealThing: 'Ready for the real thing?', getStarted: 'Get started', }, - employeeInviteMessage: ({name}: EmployeeInviteMessageParams) => + employeeInviteMessage: (name: string) => `# ${name} invited you to test drive Expensify\nHey! I just got us *3 months free* to test drive Expensify, the fastest way to do expenses.\n\nHere’s a *test receipt* to show you how it works:`, }, export: { diff --git a/src/languages/es.ts b/src/languages/es.ts index 174909a229363..20e6c92ddf553 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -845,7 +845,7 @@ const translations: TranslationDeepObject = { markAsCash: 'Marcar como efectivo', routePending: 'Ruta pendiente...', findExpense: 'Buscar gasto', - deletedTransaction: ({amount, merchant}) => `eliminó un gasto (${amount} para ${merchant})`, + deletedTransaction: (amount, merchant) => `eliminó un gasto (${amount} para ${merchant})`, movedFromReport: ({reportName}) => `movió un gasto${reportName ? ` desde ${reportName}` : ''}`, movedTransactionTo: ({reportUrl, reportName}) => `movió este gasto${reportName ? ` a ${reportName}` : ''}`, movedTransactionFrom: ({reportUrl, reportName}) => `movió este gasto${reportName ? ` desde ${reportName}` : ''}`, @@ -944,12 +944,12 @@ const translations: TranslationDeepObject = { finished: 'Finalizado', flip: 'Cambiar', sendInvoice: ({amount}) => `Enviar factura de ${amount}`, - expenseAmount: ({formattedAmount, comment}) => `${formattedAmount}${comment ? ` para ${comment}` : ''}`, + expenseAmount: (formattedAmount, comment) => `${formattedAmount}${comment ? ` para ${comment}` : ''}`, submitted: ({memo}) => `enviado${memo ? `, dijo ${memo}` : ''}`, automaticallySubmitted: `envió mediante retrasar envíos`, - trackedAmount: ({formattedAmount, comment}) => `realizó un seguimiento de ${formattedAmount}${comment ? ` para ${comment}` : ''}`, + trackedAmount: (formattedAmount, comment) => `realizó un seguimiento de ${formattedAmount}${comment ? ` para ${comment}` : ''}`, splitAmount: ({amount}) => `dividir ${amount}`, - didSplitAmount: ({formattedAmount, comment}) => `dividió ${formattedAmount}${comment ? ` para ${comment}` : ''}`, + didSplitAmount: (formattedAmount, comment) => `dividió ${formattedAmount}${comment ? ` para ${comment}` : ''}`, yourSplit: ({amount}) => `Tu parte ${amount}`, payerOwesAmount: ({payer, amount, comment}) => `${payer} debe ${amount}${comment ? ` para ${comment}` : ''}`, payerOwes: ({payer}) => `${payer} debe: `, @@ -3568,8 +3568,8 @@ ${amount} para ${merchant} - ${date}`, importPerDiemRates: 'Importar tasas de per diem', editPerDiemRate: 'Editar la tasa de per diem', editPerDiemRates: 'Editar las tasas de per diem', - editDestinationSubtitle: ({destination}) => `Actualizar este destino lo modificará para todas las subtasas per diem de ${destination}.`, - editCurrencySubtitle: ({destination}) => `Actualizar esta moneda la modificará para todas las subtasas per diem de ${destination}.`, + editDestinationSubtitle: (destination) => `Actualizar este destino lo modificará para todas las subtasas per diem de ${destination}.`, + editCurrencySubtitle: (destination) => `Actualizar esta moneda la modificará para todas las subtasas per diem de ${destination}.`, }, qbd: { exportOutOfPocketExpensesDescription: 'Establezca cómo se exportan los gastos de bolsillo a QuickBooks Desktop.', @@ -4186,7 +4186,7 @@ ${amount} para ${merchant} - ${date}`, importJobs: 'Importar proyectos', customers: 'clientes', jobs: 'proyectos', - label: ({importFields, importType}) => `${importFields.join(' y ')}, ${importType}`, + label: (importFields, importType) => `${importFields.join(' y ')}, ${importType}`, }, importTaxDescription: 'Importar grupos de impuestos desde NetSuite.', importCustomFields: { @@ -6005,7 +6005,7 @@ ${amount} para ${merchant} - ${date}`, other: `te eliminó de los flujos de trabajo de aprobaciones y de los chats de gastos de ${joinedNames}. Los informes enviados anteriormente seguirán estando disponibles para su aprobación en tu bandeja de entrada.`, }; }, - demotedFromWorkspace: ({policyName, oldRole}) => `cambió tu rol en ${policyName} de ${oldRole} a miembro. Te eliminamos de todos los chats de gastos, excepto el suyo.`, + demotedFromWorkspace: (policyName, oldRole) => `cambió tu rol en ${policyName} de ${oldRole} a miembro. Te eliminamos de todos los chats de gastos, excepto el suyo.`, updatedWorkspaceCurrencyAction: ({oldCurrency, newCurrency}) => `actualizó la moneda predeterminada a ${newCurrency} (previamente ${oldCurrency})`, updatedWorkspaceFrequencyAction: ({oldFrequency, newFrequency}) => `actualizó la frecuencia de generación automática de informes a "${newFrequency}" (previamente "${oldFrequency}")`, updateApprovalMode: ({newValue, oldValue}) => `actualizó el modo de aprobación a "${newValue}" (previamente "${oldValue}")`, @@ -7490,10 +7490,10 @@ ${amount} para ${merchant} - ${date}`, }, earlyDiscount: { claimOffer: 'Solicitar oferta', - subscriptionPageTitle: ({discountType}) => + subscriptionPageTitle: (discountType) => `¡${discountType}% de descuento en tu primer año! ¡Solo añade una tarjeta de pago y comienza una suscripción anual!`, - onboardingChatTitle: ({discountType}) => `Oferta por tiempo limitado: ¡${discountType}% de descuento en tu primer año!`, - subtitle: ({days, hours, minutes, seconds}) => `Solicítala en ${days > 0 ? `${days}d : ` : ''}${hours}h : ${minutes}m : ${seconds}s`, + onboardingChatTitle: (discountType) => `Oferta por tiempo limitado: ¡${discountType}% de descuento en tu primer año!`, + subtitle: (days, hours, minutes, seconds) => `Solicítala en ${days > 0 ? `${days}d : ` : ''}${hours}h : ${minutes}m : ${seconds}s`, }, }, cardSection: { diff --git a/src/libs/PolicyUtils.ts b/src/libs/PolicyUtils.ts index 833a76fcad172..58b8793ad0e34 100644 --- a/src/libs/PolicyUtils.ts +++ b/src/libs/PolicyUtils.ts @@ -1164,10 +1164,7 @@ function getCustomersOrJobsLabelNetSuite(policy: Policy | undefined, translate: importFields.push(translate('workspace.netsuite.import.customersOrJobs.jobs')); } - const importedValueLabel = translate(`workspace.netsuite.import.customersOrJobs.label`, { - importFields, - importType: translate(`workspace.accounting.importTypes.${importedValue}`).toLowerCase(), - }); + const importedValueLabel = translate(`workspace.netsuite.import.customersOrJobs.label`, importFields, translate(`workspace.accounting.importTypes.${importedValue}`).toLowerCase()); return importedValueLabel.charAt(0).toUpperCase() + importedValueLabel.slice(1); } diff --git a/src/libs/ReportActionsUtils.ts b/src/libs/ReportActionsUtils.ts index 5573b2e6fa196..7a121894bda80 100644 --- a/src/libs/ReportActionsUtils.ts +++ b/src/libs/ReportActionsUtils.ts @@ -2197,19 +2197,19 @@ function getExportIntegrationActionFragments(reportAction: OnyxEntry) { diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 5c4dfe5d95aaf..fbbcb5a9ec6fc 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -5187,7 +5187,7 @@ function getReportPreviewMessage( const amount = getTransactionAmount(linkedTransaction, !isEmptyObject(report) && isExpenseReport(report), linkedTransaction?.reportID === CONST.REPORT.UNREPORTED_REPORT_ID) ?? 0; const formattedAmount = convertToDisplayString(amount, getCurrency(linkedTransaction)) ?? ''; // eslint-disable-next-line @typescript-eslint/no-deprecated - return translateLocal('iou.didSplitAmount', {formattedAmount, comment: getMerchantOrDescription(linkedTransaction)}); + return translateLocal('iou.didSplitAmount', formattedAmount, getMerchantOrDescription(linkedTransaction)); } } @@ -5203,7 +5203,7 @@ function getReportPreviewMessage( if (amount && currency) { const formattedAmount = convertToDisplayString(amount, currency); // eslint-disable-next-line @typescript-eslint/no-deprecated - return translateLocal('iou.trackedAmount', {formattedAmount, comment}); + return translateLocal('iou.trackedAmount', formattedAmount, comment); } return reportActionMessage; @@ -5223,7 +5223,7 @@ function getReportPreviewMessage( const amount = getTransactionAmount(linkedTransaction, !isEmptyObject(report) && isExpenseReport(report), linkedTransaction?.reportID === CONST.REPORT.UNREPORTED_REPORT_ID) ?? 0; const formattedAmount = convertToDisplayString(amount, getCurrency(linkedTransaction)) ?? ''; // eslint-disable-next-line @typescript-eslint/no-deprecated - return translateLocal('iou.trackedAmount', {formattedAmount, comment: getMerchantOrDescription(linkedTransaction)}); + return translateLocal('iou.trackedAmount', formattedAmount, getMerchantOrDescription(linkedTransaction)); } } @@ -5347,7 +5347,7 @@ function getReportPreviewMessage( ? getDisplayNameForParticipant({accountID: lastActorID, shouldUseShortForm: !isPreviewMessageForParentChatReport, formatPhoneNumber: formatPhoneNumberPhoneUtils}) : ''; // eslint-disable-next-line @typescript-eslint/no-deprecated - return `${requestorName ? `${requestorName}: ` : ''}${translateLocal('iou.expenseAmount', {formattedAmount: amountToDisplay, comment})}`; + return `${requestorName ? `${requestorName}: ` : ''}${translateLocal('iou.expenseAmount', amountToDisplay, comment)}`; } if (containsNonReimbursable) { @@ -7026,10 +7026,7 @@ function getDeletedTransactionMessage(action: ReportAction) { const currency = deletedTransactionOriginalMessage.currency ?? ''; const formattedAmount = convertToDisplayString(amount, currency) ?? ''; // eslint-disable-next-line @typescript-eslint/no-deprecated - const message = translateLocal('iou.deletedTransaction', { - amount: formattedAmount, - merchant: deletedTransactionOriginalMessage.merchant ?? '', - }); + const message = translateLocal('iou.deletedTransaction', formattedAmount, deletedTransactionOriginalMessage.merchant ?? ''); return message; } @@ -7199,7 +7196,7 @@ function getIOUReportActionMessage( break; case CONST.REPORT.ACTIONS.TYPE.SUBMITTED: // eslint-disable-next-line @typescript-eslint/no-deprecated - iouMessage = translateLocal('iou.expenseAmount', {formattedAmount: amount}); + iouMessage = translateLocal('iou.expenseAmount', amount); break; default: break; @@ -10541,10 +10538,7 @@ function getIOUReportActionDisplayMessage(reportAction: OnyxEntry, translationKey = 'iou.expenseAmount'; } // eslint-disable-next-line @typescript-eslint/no-deprecated - return translateLocal(translationKey, { - formattedAmount, - comment: getMerchantOrDescription(transaction), - }); + return translateLocal(translationKey, formattedAmount, getMerchantOrDescription(transaction)); } /** diff --git a/src/libs/actions/IOU.ts b/src/libs/actions/IOU.ts index dba7dcc17af54..8a2398272233d 100644 --- a/src/libs/actions/IOU.ts +++ b/src/libs/actions/IOU.ts @@ -1558,7 +1558,7 @@ function buildOnyxDataForTestDriveIOU(testDriveIOUParams: BuildOnyxDataForTestDr reportActionID: testDriveIOUParams.iouOptimisticParams.action.reportActionID, }); // eslint-disable-next-line @typescript-eslint/no-deprecated - const text = Localize.translateLocal('testDrive.employeeInviteMessage', {name: personalDetailsList?.[userAccountID]?.firstName ?? ''}); + const text = Localize.translateLocal('testDrive.employeeInviteMessage', personalDetailsList?.[userAccountID]?.firstName ?? ''); const textComment = buildOptimisticAddCommentReportAction(text, undefined, userAccountID, undefined, undefined, undefined, testDriveIOUParams.testDriveCommentReportActionID); textComment.reportAction.created = DateUtils.subtractMillisecondsFromDateTime(testDriveIOUParams.iouOptimisticParams.createdAction.created, 1); diff --git a/src/pages/EnablePayments/TermsPage/LongTermsForm.tsx b/src/pages/EnablePayments/TermsPage/LongTermsForm.tsx index f2db9499de437..5138bd5e25cd8 100644 --- a/src/pages/EnablePayments/TermsPage/LongTermsForm.tsx +++ b/src/pages/EnablePayments/TermsPage/LongTermsForm.tsx @@ -61,7 +61,7 @@ function LongTermsForm() { subTitle: translate('termsStep.longTermsForm.instant'), rightText: `${numberFormat(1.5)}%`, subRightText: translate('termsStep.longTermsForm.electronicFundsInstantFeeMin', {amount: convertToDisplayString(25, 'USD')}), - details: translate('termsStep.longTermsForm.electronicFundsInstantDetails', {percentage: numberFormat(1.5), amount: convertToDisplayString(25, 'USD')}), + details: translate('termsStep.longTermsForm.electronicFundsInstantDetails', numberFormat(1.5), convertToDisplayString(25, 'USD')), }, ]; diff --git a/src/pages/MissingPersonalDetails/MissingPersonalDetailsMagicCodePage.tsx b/src/pages/MissingPersonalDetails/MissingPersonalDetailsMagicCodePage.tsx index 965035ab40551..4e61c069140c9 100644 --- a/src/pages/MissingPersonalDetails/MissingPersonalDetailsMagicCodePage.tsx +++ b/src/pages/MissingPersonalDetails/MissingPersonalDetailsMagicCodePage.tsx @@ -64,7 +64,7 @@ function MissingPersonalDetailsMagicCodePage() { return ( requestValidateCodeAction()} validateCodeActionErrorField="personalDetails" handleSubmitForm={handleSubmitForm} diff --git a/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.tsx b/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.tsx index a67851209c07c..e715daec9b691 100644 --- a/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.tsx +++ b/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.tsx @@ -347,7 +347,7 @@ function ContactMethodDetailsPage({route}: ContactMethodDetailsPageProps) { } requestContactMethodValidateCode(contactMethod); }} - descriptionPrimary={translate('contacts.enterMagicCode', {contactMethod: formattedContactMethod})} + descriptionPrimary={translate('contacts.enterMagicCode', formattedContactMethod)} ref={validateCodeFormRef} shouldSkipInitialValidation={shouldSkipInitialValidation} /> diff --git a/src/pages/settings/Profile/Contacts/NewContactMethodConfirmMagicCodePage.tsx b/src/pages/settings/Profile/Contacts/NewContactMethodConfirmMagicCodePage.tsx index cac8ece71d47c..477e7b4b46772 100644 --- a/src/pages/settings/Profile/Contacts/NewContactMethodConfirmMagicCodePage.tsx +++ b/src/pages/settings/Profile/Contacts/NewContactMethodConfirmMagicCodePage.tsx @@ -51,7 +51,7 @@ function NewContactMethodConfirmMagicCodePage({route}: NewContactMethodConfirmMa requestValidateCodeAction()} - descriptionPrimary={translate('contacts.enterMagicCode', {contactMethod})} + descriptionPrimary={translate('contacts.enterMagicCode', contactMethod)} validateCodeActionErrorField="addedLogin" validateError={validateLoginError} handleSubmitForm={addNewContactMethod} diff --git a/src/pages/settings/Security/AddDelegate/ConfirmDelegateMagicCodePage.tsx b/src/pages/settings/Security/AddDelegate/ConfirmDelegateMagicCodePage.tsx index 091657e5e5c9c..c0ea6e220b779 100644 --- a/src/pages/settings/Security/AddDelegate/ConfirmDelegateMagicCodePage.tsx +++ b/src/pages/settings/Security/AddDelegate/ConfirmDelegateMagicCodePage.tsx @@ -53,7 +53,7 @@ function ConfirmDelegateMagicCodePage({route}: ConfirmDelegateMagicCodePageProps title={translate('delegate.makeSureItIsYou')} sendValidateCode={() => requestValidateCodeAction()} handleSubmitForm={(validateCode) => addDelegate({email: login, role, validateCode, delegatedAccess: account?.delegatedAccess})} - descriptionPrimary={translate('delegate.enterMagicCode', {contactMethod: account?.primaryLogin ?? session?.email ?? ''})} + descriptionPrimary={translate('delegate.enterMagicCode', account?.primaryLogin ?? session?.email ?? '')} /> ); } diff --git a/src/pages/settings/Security/AddDelegate/UpdateDelegateRole/UpdateDelegateMagicCodePage.tsx b/src/pages/settings/Security/AddDelegate/UpdateDelegateRole/UpdateDelegateMagicCodePage.tsx index 80312f10bbeb6..9f430bb92b97e 100644 --- a/src/pages/settings/Security/AddDelegate/UpdateDelegateRole/UpdateDelegateMagicCodePage.tsx +++ b/src/pages/settings/Security/AddDelegate/UpdateDelegateRole/UpdateDelegateMagicCodePage.tsx @@ -50,7 +50,7 @@ function UpdateDelegateMagicCodePage({route}: UpdateDelegateMagicCodePageProps) title={translate('delegate.makeSureItIsYou')} sendValidateCode={() => requestValidateCodeAction()} handleSubmitForm={(validateCode) => updateDelegateRole({email: login, role: newRole, validateCode, delegatedAccess: account?.delegatedAccess})} - descriptionPrimary={translate('delegate.enterMagicCode', {contactMethod: account?.primaryLogin ?? session?.email ?? ''})} + descriptionPrimary={translate('delegate.enterMagicCode', account?.primaryLogin ?? session?.email ?? '')} /> ); } diff --git a/src/pages/settings/Subscription/CardSection/BillingBanner/EarlyDiscountBanner.tsx b/src/pages/settings/Subscription/CardSection/BillingBanner/EarlyDiscountBanner.tsx index 7eb4fdc95815c..0afa68b8c9f78 100644 --- a/src/pages/settings/Subscription/CardSection/BillingBanner/EarlyDiscountBanner.tsx +++ b/src/pages/settings/Subscription/CardSection/BillingBanner/EarlyDiscountBanner.tsx @@ -118,18 +118,10 @@ function EarlyDiscountBanner({isSubscriptionPage, onboardingHelpDropdownButton, } const title = isSubscriptionPage ? ( - + ) : ( - + {shouldUseNarrowLayout && dismissButton} ); @@ -138,12 +130,7 @@ function EarlyDiscountBanner({isSubscriptionPage, onboardingHelpDropdownButton, requestValidateCodeAction()} validateCodeActionErrorField="personalDetails" handleSubmitForm={handleSubmitForm} diff --git a/src/pages/settings/Wallet/ExpensifyCardPage/ExpensifyCardVerifyAccountPage.tsx b/src/pages/settings/Wallet/ExpensifyCardPage/ExpensifyCardVerifyAccountPage.tsx index f679cba73677a..f6f0a5350ee16 100644 --- a/src/pages/settings/Wallet/ExpensifyCardPage/ExpensifyCardVerifyAccountPage.tsx +++ b/src/pages/settings/Wallet/ExpensifyCardPage/ExpensifyCardVerifyAccountPage.tsx @@ -73,7 +73,7 @@ function ExpensifyCardVerifyAccountPage({route}: ExpensifyCardVerifyAccountPageP return ( requestValidateCodeAction()} validateCodeActionErrorField="revealExpensifyCardDetails" handleSubmitForm={handleRevealCardDetails} diff --git a/src/pages/settings/Wallet/ReportCardLostConfirmMagicCodePage.tsx b/src/pages/settings/Wallet/ReportCardLostConfirmMagicCodePage.tsx index be1889ba8dbdb..41e786c982d0c 100644 --- a/src/pages/settings/Wallet/ReportCardLostConfirmMagicCodePage.tsx +++ b/src/pages/settings/Wallet/ReportCardLostConfirmMagicCodePage.tsx @@ -83,7 +83,7 @@ function ReportCardLostConfirmMagicCodePage({ handleSubmitForm={handleValidateCodeEntered} isLoading={formData?.isLoading} title={translate('cardPage.validateCardTitle')} - descriptionPrimary={translate('cardPage.enterMagicCode', {contactMethod: primaryLogin})} + descriptionPrimary={translate('cardPage.enterMagicCode', primaryLogin)} sendValidateCode={() => requestValidateCodeAction()} validateError={validateError} clearError={() => { diff --git a/src/pages/settings/Wallet/ReportVirtualCardFraudVerifyAccountPage.tsx b/src/pages/settings/Wallet/ReportVirtualCardFraudVerifyAccountPage.tsx index f9c626a7c3bb4..d1e3c4db890a4 100644 --- a/src/pages/settings/Wallet/ReportVirtualCardFraudVerifyAccountPage.tsx +++ b/src/pages/settings/Wallet/ReportVirtualCardFraudVerifyAccountPage.tsx @@ -72,7 +72,7 @@ function ReportVirtualCardFraudVerifyAccountPage({ return ( requestValidateCodeAction()} validateCodeActionErrorField="reportVirtualCard" handleSubmitForm={handleValidateCodeEntered} diff --git a/src/pages/workspace/accounting/PolicyAccountingPage.tsx b/src/pages/workspace/accounting/PolicyAccountingPage.tsx index 890f20a2f35b4..104adec3198d0 100644 --- a/src/pages/workspace/accounting/PolicyAccountingPage.tsx +++ b/src/pages/workspace/accounting/PolicyAccountingPage.tsx @@ -577,7 +577,7 @@ function PolicyAccountingPage({policy}: PolicyAccountingPageProps) { )} diff --git a/src/pages/workspace/accounting/reconciliation/CardReconciliationPage.tsx b/src/pages/workspace/accounting/reconciliation/CardReconciliationPage.tsx index 7ca7a873060be..70655940bb244 100644 --- a/src/pages/workspace/accounting/reconciliation/CardReconciliationPage.tsx +++ b/src/pages/workspace/accounting/reconciliation/CardReconciliationPage.tsx @@ -154,10 +154,11 @@ function CardReconciliationPage({policy, route}: CardReconciliationPageProps) { {!autoSync && ( )} diff --git a/src/pages/workspace/categories/WorkspaceCategoriesPage.tsx b/src/pages/workspace/categories/WorkspaceCategoriesPage.tsx index 5aa1104670bd2..06e1a2cff4a78 100644 --- a/src/pages/workspace/categories/WorkspaceCategoriesPage.tsx +++ b/src/pages/workspace/categories/WorkspaceCategoriesPage.tsx @@ -535,11 +535,7 @@ function WorkspaceCategoriesPage({route}: WorkspaceCategoriesPageProps) { } return ( - + ); }, [policyHasAccountingConnections, styles.renderHTML, styles.textAlignCenter, styles.textSupporting, styles.textNormal, translate, environmentURL, policyId]); diff --git a/src/pages/workspace/expensifyCard/issueNew/IssueNewCardConfirmMagicCodePage.tsx b/src/pages/workspace/expensifyCard/issueNew/IssueNewCardConfirmMagicCodePage.tsx index 9971896ff353f..0a6e3ad81ce33 100644 --- a/src/pages/workspace/expensifyCard/issueNew/IssueNewCardConfirmMagicCodePage.tsx +++ b/src/pages/workspace/expensifyCard/issueNew/IssueNewCardConfirmMagicCodePage.tsx @@ -62,7 +62,7 @@ function IssueNewCardConfirmMagicCodePage({route}: IssueNewCardConfirmMagicCodeP requestValidateCodeAction()} validateCodeActionErrorField={data?.cardType === CONST.EXPENSIFY_CARD.CARD_TYPE.PHYSICAL ? 'createExpensifyCard' : 'createAdminIssuedVirtualCard'} handleSubmitForm={handleSubmit} diff --git a/src/pages/workspace/perDiem/EditPerDiemCurrencyPage.tsx b/src/pages/workspace/perDiem/EditPerDiemCurrencyPage.tsx index 48e255f569018..4ed8fcd9136c0 100644 --- a/src/pages/workspace/perDiem/EditPerDiemCurrencyPage.tsx +++ b/src/pages/workspace/perDiem/EditPerDiemCurrencyPage.tsx @@ -62,7 +62,7 @@ function EditPerDiemCurrencyPage({route}: EditPerDiemCurrencyPageProps) { onBackButtonPress={() => Navigation.goBack(ROUTES.WORKSPACE_PER_DIEM_DETAILS.getRoute(policyID, rateID, subRateID))} /> - {translate('workspace.perDiem.editCurrencySubtitle', {destination: selectedRate?.name ?? ''})} + {translate('workspace.perDiem.editCurrencySubtitle', selectedRate?.name ?? '')} - - {translate('workspace.perDiem.editDestinationSubtitle', {destination: selectedRate?.name ?? ''})} - + {translate('workspace.perDiem.editDestinationSubtitle', selectedRate?.name ?? '')} { const moreFeaturesLink = `${environmentURL}/${ROUTES.WORKSPACE_MORE_FEATURES.getRoute(policyID)}`; if (variant === 'unlock') { - return translate('workspace.rules.expenseReportRules.unlockFeatureEnableWorkflowsSubtitle', {featureName}); + return translate('workspace.rules.expenseReportRules.unlockFeatureEnableWorkflowsSubtitle', featureName); } - return translate('workspace.rules.expenseReportRules.enableFeatureSubtitle', {featureName, moreFeaturesLink}); + return translate('workspace.rules.expenseReportRules.enableFeatureSubtitle', featureName, moreFeaturesLink); }; const optionItems = [ diff --git a/src/pages/workspace/tags/WorkspaceTagsPage.tsx b/src/pages/workspace/tags/WorkspaceTagsPage.tsx index 1ee498d84cd8e..9a9d359f6d6ad 100644 --- a/src/pages/workspace/tags/WorkspaceTagsPage.tsx +++ b/src/pages/workspace/tags/WorkspaceTagsPage.tsx @@ -644,9 +644,7 @@ function WorkspaceTagsPage({route}: WorkspaceTagsPageProps) { const subtitleText = useMemo(() => { const emptyTagsSubtitle = hasAccountingConnections - ? translate('workspace.tags.emptyTags.subtitleWithAccounting', { - accountingPageURL: `${environmentURL}/${ROUTES.POLICY_ACCOUNTING.getRoute(policyID)}`, - }) + ? translate('workspace.tags.emptyTags.subtitleWithAccounting', `${environmentURL}/${ROUTES.POLICY_ACCOUNTING.getRoute(policyID)}`) : translate('workspace.tags.emptyTags.subtitleHTML'); return ( From 87bfc59eec9937d7ee2e1d1d7d0efae5058bdf67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Rejdak?= Date: Tue, 16 Dec 2025 17:33:49 +0100 Subject: [PATCH 2/4] es.ts changes --- src/languages/es.ts | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/languages/es.ts b/src/languages/es.ts index 20e6c92ddf553..a4ba3e4be5712 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -1402,7 +1402,7 @@ const translations: TranslationDeepObject = { `Agrega más formas de iniciar sesión y enviar recibos a Expensify.

Agrega una dirección de correo electrónico para reenviar recibos a ${email} o agrega un número de teléfono para enviar recibos por mensaje de texto al 47777 (solo números de EE. UU.).`, pleaseVerify: 'Por favor, verifica este método de contacto.', getInTouch: 'Usaremos este método para comunicarnos contigo.', - enterMagicCode: ({contactMethod}) => `Por favor, introduce el código mágico enviado a ${contactMethod}. Debería llegar en un par de minutos.`, + enterMagicCode: (contactMethod) => `Por favor, introduce el código mágico enviado a ${contactMethod}. Debería llegar en un par de minutos.`, setAsDefault: 'Establecer como predeterminado', yourDefaultContactMethod: 'Este es tu método de contacto predeterminado. Antes de poder eliminarlo, tendrás que elegir otro método de contacto y haz clic en "Establecer como predeterminado".', @@ -1837,7 +1837,7 @@ const translations: TranslationDeepObject = { cardAddedToWallet: ({platform}) => `Añadida a ${platform} Wallet`, cardDetailsLoadingFailure: 'Se ha producido un error al cargar los datos de la tarjeta. Comprueba tu conexión a Internet e inténtalo de nuevo.', validateCardTitle: 'Asegurémonos de que eres tú', - enterMagicCode: ({contactMethod}) => `Introduzca el código mágico enviado a ${contactMethod} para ver los datos de su tarjeta. Debería llegar en un par de minutos.`, + enterMagicCode: (contactMethod) => `Introduzca el código mágico enviado a ${contactMethod} para ver los datos de su tarjeta. Debería llegar en un par de minutos.`, missingPrivateDetails: ({missingDetailsLink}: {missingDetailsLink: string}) => `Por favor, agrega tus datos personales y vuelve a intentarlo.`, unexpectedError: 'Se produjo un error al intentar obtener los detalles de tu tarjeta Expensify. Vuelve a intentarlo.', cardFraudAlert: { @@ -2858,7 +2858,7 @@ ${amount} para ${merchant} - ${date}`, sendingFundsDetails: 'No se aplica ningún cargo por enviar fondos a otro titular de cuenta utilizando tu saldo cuenta bancaria o tarjeta de débito', electronicFundsStandardDetails: "'No hay cargo por transferir fondos desde tu Billetera Expensify a tu cuenta bancaria utilizando la opción estándar. Esta transferencia generalmente se completa en 1-3 días laborables.", - electronicFundsInstantDetails: ({percentage, amount}) => + electronicFundsInstantDetails: (percentage, amount) => dedent(` Hay una tarifa para transferir fondos desde tu Billetera Expensify a la tarjeta de débito vinculada utilizando la opción de transferencia instantánea. Esta transferencia generalmente se completa dentro de varios minutos. La tarifa es el ${percentage}% del importe de la transferencia (con una tarifa mínima de ${amount}). `), @@ -4538,7 +4538,7 @@ ${amount} para ${merchant} - ${date}`, emptyCategories: { title: 'No has creado ninguna categoría', subtitle: 'Añade una categoría para organizar tu gasto.', - subtitleWithAccounting: ({accountingPageURL}) => + subtitleWithAccounting: (accountingPageURL) => `Tus categorías se están importando actualmente desde una conexión de contabilidad. Dirígete a contabilidad para hacer cualquier cambio.`, }, updateFailureMessage: 'Se ha producido un error al intentar eliminar la categoría. Por favor, inténtalo más tarde.', @@ -4825,7 +4825,7 @@ ${amount} para ${merchant} - ${date}`, title: 'No has creado ninguna etiqueta', subtitle: 'Añade una etiqueta para realizar el seguimiento de proyectos, ubicaciones, departamentos y otros.', subtitleHTML: `Importa una hoja de cálculo para añadir etiquetas y organizar proyectos, ubicaciones, departamentos y más. Obtén más información sobre cómo dar formato a los archivos de etiquetas.`, - subtitleWithAccounting: ({accountingPageURL}) => + subtitleWithAccounting: (accountingPageURL) => `Tus etiquetas se están importando actualmente desde una conexión de contabilidad. Dirígete a contabilidad para hacer cualquier cambio.`, }, deleteTag: 'Eliminar etiqueta', @@ -5047,7 +5047,7 @@ ${amount} para ${merchant} - ${date}`, } } }, - errorODIntegration: ({oldDotPolicyConnectionsURL}) => + errorODIntegration: (oldDotPolicyConnectionsURL) => `Hay un error con una conexión que se ha configurado en Expensify Classic. [Ve a Expensify Classic para solucionar este problema.](${oldDotPolicyConnectionsURL})`, goToODToSettings: 'Ve a Expensify Classic para gestionar tus configuraciones.', setup: 'Configurar', @@ -5257,7 +5257,7 @@ ${amount} para ${merchant} - ${date}`, continuousReconciliation: 'Conciliación continua', saveHoursOnReconciliation: 'Ahorra horas de conciliación en cada período contable haciendo que Expensify concilie continuamente los extractos y liquidaciones de la Tarjeta Expensify en tu nombre.', - enableContinuousReconciliation: ({accountingAdvancedSettingsLink, connectionName}) => + enableContinuousReconciliation: (accountingAdvancedSettingsLink, connectionName) => `Para activar la Conciliación Continua, activa la auto-sync para ${connectionName}.`, chooseReconciliationAccount: { chooseBankAccount: 'Elige la cuenta bancaria con la que se conciliarán los pagos de tu Tarjeta Expensify.', @@ -5752,8 +5752,8 @@ ${amount} para ${merchant} - ${date}`, autoPayApprovedReportsLockedSubtitle: 'Ve a más funciones y habilita flujos de trabajo, luego agrega pagos para desbloquear esta función.', autoPayReportsUnderTitle: 'Pagar automáticamente informes por debajo de', autoPayReportsUnderDescription: 'Los informes de gastos totalmente conformes por debajo de esta cantidad se pagarán automáticamente.', - unlockFeatureEnableWorkflowsSubtitle: ({featureName}) => `Añade ${featureName} para desbloquear esta función.`, - enableFeatureSubtitle: ({featureName, moreFeaturesLink}) => `Ir a [más características](${moreFeaturesLink}) y habilita ${featureName} para desbloquear esta función.`, + unlockFeatureEnableWorkflowsSubtitle: (featureName) => `Añade ${featureName} para desbloquear esta función.`, + enableFeatureSubtitle: (featureName, moreFeaturesLink) => `Ir a [más características](${moreFeaturesLink}) y habilita ${featureName} para desbloquear esta función.`, }, categoryRules: { title: 'Reglas de categoría', @@ -6496,7 +6496,7 @@ ${amount} para ${merchant} - ${date}`, changeType: ({oldType, newType}) => `cambió type de ${oldType} a ${newType}`, exportedToCSV: `exportado a CSV`, exportedToIntegration: { - automatic: ({label}) => { + automatic: (label) => { // The label will always be in English, so we need to translate it const labelTranslations: Record = { [CONST.REPORT.EXPORT_OPTION_LABELS.EXPENSE_LEVEL_EXPORT]: translations.export.expenseLevelExport, @@ -6505,13 +6505,13 @@ ${amount} para ${merchant} - ${date}`, const translatedLabel = labelTranslations[label] || label; return `exportado a ${translatedLabel}`; }, - automaticActionOne: ({label}) => `exportado a ${label} mediante`, + automaticActionOne: (label) => `exportado a ${label} mediante`, automaticActionTwo: 'configuración contable', - manual: ({label}) => `marcó este informe como exportado manualmente a ${label}.`, + manual: (label) => `marcó este informe como exportado manualmente a ${label}.`, automaticActionThree: 'y creó un registro con éxito para', reimburseableLink: 'Exportar gastos por cuenta propia como', nonReimbursableLink: 'gastos de la tarjeta de empresa', - pending: ({label}) => `comenzó a exportar este informe a ${label}...`, + pending: (label) => `comenzó a exportar este informe a ${label}...`, }, integrationsMessage: ({label, errorMessage, linkText, linkURL}) => `no se pudo exportar este informe a ${label} ("${errorMessage}${linkText ? ` ${linkText}` : ''}")`, @@ -7694,8 +7694,8 @@ ${amount} para ${merchant} - ${date}`, removeCopilotConfirmation: '¿Estás seguro de que quieres eliminar este copiloto?', changeAccessLevel: 'Cambiar nivel de acceso', makeSureItIsYou: 'Vamos a asegurarnos de que eres tú', - enterMagicCode: ({contactMethod}) => `Por favor, introduce el código mágico enviado a ${contactMethod} para agregar un copiloto. Debería llegar en un par de minutos.`, - enterMagicCodeUpdate: ({contactMethod}) => `Por favor, introduce el código mágico enviado a ${contactMethod} para actualizar el nivel de acceso de tu copiloto.`, + enterMagicCode: (contactMethod) => `Por favor, introduce el código mágico enviado a ${contactMethod} para agregar un copiloto. Debería llegar en un par de minutos.`, + enterMagicCodeUpdate: (contactMethod) => `Por favor, introduce el código mágico enviado a ${contactMethod} para actualizar el nivel de acceso de tu copiloto.`, notAllowed: 'No tan rápido...', noAccessMessage: 'Como copiloto, no tienes acceso a esta página. ¡Lo sentimos!', notAllowedMessage: (accountOwnerEmail) => @@ -7860,7 +7860,7 @@ ${amount} para ${merchant} - ${date}`, readyForTheRealThing: '¿Listo para la versión real?', getStarted: 'Comenzar', }, - employeeInviteMessage: ({name}) => + employeeInviteMessage: (name) => `# ${name} te invitó a probar Expensify\n\n¡Hola! Acabo de conseguirnos *3 meses gratis* para probar Expensify, la forma más rápida de gestionar gastos.\n\nAquí tienes un *recibo de prueba* para mostrarte cómo funciona:`, }, export: { From dc91898c505d7c4446d93a16f57b964244de1455 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Rejdak?= Date: Tue, 16 Dec 2025 17:48:21 +0100 Subject: [PATCH 3/4] updated types in generated languages --- src/languages/de.ts | 72 +++++++++++++++------------------------ src/languages/fr.ts | 72 +++++++++++++++------------------------ src/languages/it.ts | 73 +++++++++++++++------------------------- src/languages/ja.ts | 72 +++++++++++++++------------------------ src/languages/nl.ts | 71 +++++++++++++++----------------------- src/languages/pl.ts | 73 +++++++++++++++------------------------- src/languages/pt-BR.ts | 72 +++++++++++++++------------------------ src/languages/zh-hans.ts | 73 +++++++++++++++------------------------- 8 files changed, 216 insertions(+), 362 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index 30f483b71a786..d09031218b6d2 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -55,7 +55,6 @@ import type { CreateExpensesParams, CurrencyCodeParams, CurrencyInputDisabledTextParams, - CustomersOrJobsLabelParams, DateParams, DateShouldBeAfterParams, DateShouldBeBeforeParams, @@ -65,28 +64,13 @@ import type { DelegatorParams, DeleteActionParams, DeleteConfirmationParams, - DeleteTransactionParams, - DemotedFromWorkspaceParams, DependentMultiLevelTagsSubtitleParams, - DidSplitAmountMessageParams, DisconnectYourBankAccountParams, DomainPermissionInfoRestrictionParams, DuplicateTransactionParams, - EarlyDiscountSubtitleParams, - EarlyDiscountTitleParams, EditActionParams, - EditDestinationSubtitleParams, - ElectronicFundsParams, - EmployeeInviteMessageParams, - EmptyCategoriesSubtitleWithAccountingParams, - EmptyTagsSubtitleWithAccountingParams, - EnableContinuousReconciliationParams, - EnterMagicCodeParams, - ErrorODIntegrationParams, ExportAgainModalDescriptionParams, - ExportedToIntegrationParams, ExportIntegrationSelectedParams, - FeatureNameParams, FileLimitParams, FileTypeParams, FiltersAmountBetweenParams, @@ -174,7 +158,6 @@ import type { ReportPolicyNameParams, RequestAmountParams, RequestCountParams, - RequestedAmountMessageParams, RequiredFieldParams, ResolutionConstraintsParams, ReviewParams, @@ -1204,7 +1187,7 @@ const translations: TranslationDeepObject = { posted: 'Gebucht', deleteReceipt: 'Beleg löschen', findExpense: 'Ausgabe finden', - deletedTransaction: ({amount, merchant}: DeleteTransactionParams) => `hat eine Ausgabe gelöscht (${amount} für ${merchant})`, + deletedTransaction: (amount: string, merchant: string) => `hat eine Ausgabe gelöscht (${amount} für ${merchant})`, movedFromReport: ({reportName}: MovedFromReportParams) => `hat eine Ausgabe verschoben${reportName ? `von ${reportName}` : ''}`, movedTransactionTo: ({reportUrl, reportName}: MovedTransactionParams) => `hat diese Ausgabe verschoben${reportName ? `zu ${reportName}` : ''}`, movedTransactionFrom: ({reportUrl, reportName}: MovedTransactionParams) => `hat diese Ausgabe verschoben${reportName ? `von ${reportName}` : ''}`, @@ -1313,12 +1296,12 @@ const translations: TranslationDeepObject = { finished: 'Fertig', flip: 'Drehen', sendInvoice: ({amount}: RequestAmountParams) => `${amount} Rechnung senden`, - expenseAmount: ({formattedAmount, comment}: RequestedAmountMessageParams) => `${formattedAmount}${comment ? `für ${comment}` : ''}`, + expenseAmount: (formattedAmount: string, comment?: string) => `${formattedAmount}${comment ? `für ${comment}` : ''}`, submitted: ({memo}: SubmittedWithMemoParams) => `Eingereicht${memo ? `, mit dem Hinweis ${memo}` : ''}`, automaticallySubmitted: `eingereicht über verspätete Einreichungen`, - trackedAmount: ({formattedAmount, comment}: RequestedAmountMessageParams) => `Verfolgung von ${formattedAmount}${comment ? `für ${comment}` : ''}`, + trackedAmount: (formattedAmount: string, comment?: string) => `Verfolgung von ${formattedAmount}${comment ? `für ${comment}` : ''}`, splitAmount: ({amount}: SplitAmountParams) => `Split ${amount}`, - didSplitAmount: ({formattedAmount, comment}: DidSplitAmountMessageParams) => `aufteilen ${formattedAmount}${comment ? `für ${comment}` : ''}`, + didSplitAmount: (formattedAmount: string, comment: string) => `aufteilen ${formattedAmount}${comment ? `für ${comment}` : ''}`, yourSplit: ({amount}: UserSplitParams) => `Dein Anteil ${amount}`, payerOwesAmount: ({payer, amount, comment}: PayerOwesAmountParams) => `${payer} schuldet ${amount}${comment ? `für ${comment}` : ''}`, payerOwes: ({payer}: PayerOwesParams) => `${payer} schuldet:`, @@ -1786,8 +1769,7 @@ const translations: TranslationDeepObject = { `Füge weitere Möglichkeiten hinzu, dich anzumelden und Belege an Expensify zu senden.

Füge eine E‑Mail-Adresse hinzu, um Belege an ${email} weiterzuleiten, oder füge eine Telefonnummer hinzu, um Belege per SMS an 47777 zu senden (nur US-Nummern).`, pleaseVerify: 'Bitte verifiziere diese Kontaktmethode.', getInTouch: 'Wir verwenden diese Methode, um Sie zu kontaktieren.', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => - `Bitte gib den magischen Code ein, der an ${contactMethod} gesendet wurde. Er sollte innerhalb ein bis zwei Minuten ankommen.`, + enterMagicCode: (contactMethod: string) => `Bitte gib den magischen Code ein, der an ${contactMethod} gesendet wurde. Er sollte innerhalb ein bis zwei Minuten ankommen.`, setAsDefault: 'Als Standard festlegen', yourDefaultContactMethod: 'Dies ist Ihre aktuelle Standardkontaktmethode. Bevor Sie sie löschen können, müssen Sie eine andere Kontaktmethode auswählen und auf „Als Standard festlegen“ klicken.', @@ -2233,7 +2215,7 @@ const translations: TranslationDeepObject = { cardAddedToWallet: ({platform}: {platform: 'Google' | 'Apple'}) => `Zum ${platform}-Wallet hinzugefügt`, cardDetailsLoadingFailure: 'Beim Laden der Kartendetails ist ein Fehler aufgetreten. Bitte überprüfe deine Internetverbindung und versuche es erneut.', validateCardTitle: 'Stellen wir sicher, dass du es bist', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => + enterMagicCode: (contactMethod: string) => `Bitte gib den magischen Code ein, der an ${contactMethod} gesendet wurde, um deine Kartendaten anzusehen. Er sollte innerhalb von ein bis zwei Minuten ankommen.`, missingPrivateDetails: ({missingDetailsLink}: {missingDetailsLink: string}) => `Bitte füge deine persönlichen Daten hinzu und versuche es dann erneut.`, @@ -3256,7 +3238,7 @@ ${ sendingFundsDetails: 'Es fällt keine Gebühr an, wenn du mit deinem Guthaben, Bankkonto oder deiner Debitkarte Geld an einen anderen Kontoinhaber sendest.', electronicFundsStandardDetails: 'Für Überweisungen von deinem Expensify Wallet auf dein Bankkonto mit der Standardoption fällt keine Gebühr an. Diese Überweisung wird in der Regel innerhalb von 1–3 Werktagen abgeschlossen.', - electronicFundsInstantDetails: ({percentage, amount}: ElectronicFundsParams) => + electronicFundsInstantDetails: (percentage: string, amount: string) => 'Für Überweisungen von deinem Expensify Wallet auf deine verknüpfte Debitkarte per Sofortüberweisung fällt eine Gebühr an. Diese Überweisung wird in der Regel innerhalb weniger Minuten abgeschlossen.' + `Die Gebühr beträgt ${percentage}% des Überweisungsbetrags (mit einer Mindestgebühr von ${amount}).`, fdicInsuranceBancorp: ({amount}: TermsParams) => @@ -3976,8 +3958,8 @@ ${ importPerDiemRates: 'Tagespauschalen importieren', editPerDiemRate: 'Tagessatz bearbeiten', editPerDiemRates: 'Tagessätze bearbeiten', - editDestinationSubtitle: ({destination}: EditDestinationSubtitleParams) => `Wenn dieses Ziel aktualisiert wird, ändert es sich für alle ${destination}-Tagessatz-Untersätze.`, - editCurrencySubtitle: ({destination}: EditDestinationSubtitleParams) => `Wenn Sie diese Währung aktualisieren, wird sie für alle ${destination} Tagegeld-Teilbeträge geändert.`, + editDestinationSubtitle: (destination: string) => `Wenn dieses Ziel aktualisiert wird, ändert es sich für alle ${destination}-Tagessatz-Untersätze.`, + editCurrencySubtitle: (destination: string) => `Wenn Sie diese Währung aktualisieren, wird sie für alle ${destination} Tagegeld-Teilbeträge geändert.`, }, qbd: { exportOutOfPocketExpensesDescription: 'Legen Sie fest, wie Auslagen in QuickBooks Desktop exportiert werden.', @@ -4588,7 +4570,7 @@ ${ importJobs: 'Projekte importieren', customers: 'Kunden', jobs: 'Projekte', - label: ({importFields, importType}: CustomersOrJobsLabelParams) => `${importFields.join('und')}, ${importType}`, + label: (importFields: string[], importType: string) => `${importFields.join('und')}, ${importType}`, }, importTaxDescription: 'Steuergruppen aus NetSuite importieren.', importCustomFields: { @@ -4998,7 +4980,7 @@ _Für ausführlichere Anweisungen [besuchen Sie unsere Hilfeseite](${CONST.NETSU emptyCategories: { title: 'Du hast noch keine Kategorien erstellt', subtitle: 'Fügen Sie eine Kategorie hinzu, um Ihre Ausgaben zu organisieren.', - subtitleWithAccounting: ({accountingPageURL}: EmptyCategoriesSubtitleWithAccountingParams) => + subtitleWithAccounting: (accountingPageURL: string) => `Ihre Kategorien werden derzeit über eine Buchhaltungsanbindung importiert. Gehen Sie zu Buchhaltung, um Änderungen vorzunehmen.`, }, updateFailureMessage: 'Beim Aktualisieren der Kategorie ist ein Fehler aufgetreten. Bitte versuche es erneut.', @@ -5289,7 +5271,7 @@ _Für ausführlichere Anweisungen [besuchen Sie unsere Hilfeseite](${CONST.NETSU // We need to remove the subtitle and use the below one when we remove the canUseMultiLevelTags beta subtitle: 'Füge ein Tag hinzu, um Projekte, Standorte, Abteilungen und mehr zu verfolgen.', subtitleHTML: `Importieren Sie eine Tabelle, um Tags für die Nachverfolgung von Projekten, Standorten, Abteilungen und mehr hinzuzufügen. Erfahren Sie mehr über die Formatierung von Tag-Dateien.`, - subtitleWithAccounting: ({accountingPageURL}: EmptyTagsSubtitleWithAccountingParams) => + subtitleWithAccounting: (accountingPageURL: string) => `Ihre Tags werden derzeit über eine Buchhaltungsverbindung importiert. Gehen Sie zu Buchhaltung, um Änderungen vorzunehmen.`, }, deleteTag: 'Tag löschen', @@ -5550,7 +5532,7 @@ _Für ausführlichere Anweisungen [besuchen Sie unsere Hilfeseite](${CONST.NETSU } } }, - errorODIntegration: ({oldDotPolicyConnectionsURL}: ErrorODIntegrationParams) => + errorODIntegration: (oldDotPolicyConnectionsURL: string) => `Bei einer in Expensify Classic eingerichteten Verbindung ist ein Fehler aufgetreten. [Gehe zu Expensify Classic, um dieses Problem zu beheben.](${oldDotPolicyConnectionsURL})`, goToODToSettings: 'Gehe zu Expensify Classic, um deine Einstellungen zu verwalten.', setup: 'Verbinden', @@ -5758,7 +5740,7 @@ _Für ausführlichere Anweisungen [besuchen Sie unsere Hilfeseite](${CONST.NETSU continuousReconciliation: 'Kontinuierliche Abstimmung', saveHoursOnReconciliation: 'Sparen Sie bei jedem Abrechnungszeitraum Stunden bei der Abstimmung, indem Sie Expensify die Auszüge und Ausgleichszahlungen der Expensify Card fortlaufend automatisch für Sie abstimmen lassen.', - enableContinuousReconciliation: ({accountingAdvancedSettingsLink, connectionName}: EnableContinuousReconciliationParams) => + enableContinuousReconciliation: (accountingAdvancedSettingsLink: string, connectionName: string) => `Um die kontinuierliche Abstimmung zu aktivieren, aktiviere bitte die automatische Synchronisierung für ${connectionName}.`, chooseReconciliationAccount: { chooseBankAccount: 'Wählen Sie das Bankkonto aus, mit dem Ihre Expensify Card-Zahlungen abgeglichen werden.', @@ -6214,8 +6196,8 @@ Fordere Spesendetails wie Belege und Beschreibungen an, lege Limits und Standard autoPayApprovedReportsLockedSubtitle: 'Gehen Sie zu „Weitere Funktionen“ und aktivieren Sie „Workflows“, dann fügen Sie „Zahlungen“ hinzu, um diese Funktion freizuschalten.', autoPayReportsUnderTitle: 'Berichte automatisch bezahlen unter', autoPayReportsUnderDescription: 'Vollständig konforme Spesenabrechnungen unter diesem Betrag werden automatisch bezahlt.', - unlockFeatureEnableWorkflowsSubtitle: ({featureName}: FeatureNameParams) => `Fügen Sie ${featureName} hinzu, um diese Funktion freizuschalten.`, - enableFeatureSubtitle: ({featureName, moreFeaturesLink}: FeatureNameParams) => + unlockFeatureEnableWorkflowsSubtitle: (featureName: string) => `Fügen Sie ${featureName} hinzu, um diese Funktion freizuschalten.`, + enableFeatureSubtitle: (featureName: string, moreFeaturesLink?: string) => `Gehe zu [Weitere Funktionen](${moreFeaturesLink}) und aktiviere ${featureName}, um diese Funktion freizuschalten.`, }, categoryRules: { @@ -6490,7 +6472,7 @@ Fordere Spesendetails wie Belege und Beschreibungen an, lege Limits und Standard other: `hat dich aus den Genehmigungsabläufen und Spesen-Chats von ${joinedNames} entfernt. Bereits eingereichte Reports bleiben in deinem Posteingang zur Genehmigung verfügbar.`, }; }, - demotedFromWorkspace: ({policyName, oldRole}: DemotedFromWorkspaceParams) => + demotedFromWorkspace: (policyName: string, oldRole: string) => `hat deine Rolle in ${policyName} von ${oldRole} zu Nutzer aktualisiert. Du wurdest aus allen Ausgabenchats von Einreichenden entfernt, außer aus deinen eigenen.`, updatedWorkspaceCurrencyAction: ({oldCurrency, newCurrency}: UpdatedPolicyCurrencyParams) => `Standardwährung auf ${newCurrency} aktualisiert (zuvor ${oldCurrency})`, updatedWorkspaceFrequencyAction: ({oldFrequency, newFrequency}: UpdatedPolicyFrequencyParams) => @@ -6989,7 +6971,7 @@ Fordere Spesendetails wie Belege und Beschreibungen an, lege Limits und Standard changeType: ({oldType, newType}: ChangeTypeParams) => `Typ von ${oldType} in ${newType} geändert`, exportedToCSV: `in CSV exportiert`, exportedToIntegration: { - automatic: ({label}: ExportedToIntegrationParams) => { + automatic: (label: string) => { const labelTranslations: Record = { [CONST.REPORT.EXPORT_OPTION_LABELS.EXPENSE_LEVEL_EXPORT]: translations.export.expenseLevelExport, [CONST.REPORT.EXPORT_OPTION_LABELS.REPORT_LEVEL_EXPORT]: translations.export.reportLevelExport, @@ -6997,13 +6979,13 @@ Fordere Spesendetails wie Belege und Beschreibungen an, lege Limits und Standard const translatedLabel = labelTranslations[label] || label; return `exportiert nach ${translatedLabel}`; }, - automaticActionOne: ({label}: ExportedToIntegrationParams) => `exportiert nach ${label} über`, + automaticActionOne: (label: string) => `exportiert nach ${label} über`, automaticActionTwo: 'Buchhaltungseinstellungen', - manual: ({label}: ExportedToIntegrationParams) => `hat diesen Bericht als manuell exportiert nach ${label} markiert.`, + manual: (label: string) => `hat diesen Bericht als manuell exportiert nach ${label} markiert.`, automaticActionThree: 'und erfolgreich einen Datensatz erstellt für', reimburseableLink: 'Auslagen', nonReimbursableLink: 'Firmenkarten-Ausgaben', - pending: ({label}: ExportedToIntegrationParams) => `Begann mit dem Exportieren dieses Berichts nach ${label}...`, + pending: (label: string) => `Begann mit dem Exportieren dieses Berichts nach ${label}...`, }, integrationsMessage: ({errorMessage, label, linkText, linkURL}: IntegrationSyncFailedParams) => `Fehler beim Exportieren dieses Berichts nach ${label} („${errorMessage}${linkText ? `${linkText}` : ''}“)`, @@ -7519,10 +7501,10 @@ Fordere Spesendetails wie Belege und Beschreibungen an, lege Limits und Standard }, earlyDiscount: { claimOffer: 'Angebot einlösen', - subscriptionPageTitle: ({discountType}: EarlyDiscountTitleParams) => + subscriptionPageTitle: (discountType: number) => `${discountType}% Rabatt im ersten Jahr! Fügen Sie einfach eine Zahlungsmethode hinzu und starten Sie ein Jahresabonnement.`, - onboardingChatTitle: ({discountType}: EarlyDiscountTitleParams) => `Zeitlich begrenztes Angebot: ${discountType}% Rabatt auf dein erstes Jahr!`, - subtitle: ({days, hours, minutes, seconds}: EarlyDiscountSubtitleParams) => + onboardingChatTitle: (discountType: number) => `Zeitlich begrenztes Angebot: ${discountType}% Rabatt auf dein erstes Jahr!`, + subtitle: (days: number, hours: number, minutes: number, seconds: number) => `Einlösen innerhalb von ${days > 0 ? `${days}T :` : ''}${hours}Std : ${minutes}Min : ${seconds}Sek`, }, }, @@ -7724,9 +7706,9 @@ Fordere Spesendetails wie Belege und Beschreibungen an, lege Limits und Standard removeCopilotConfirmation: 'Möchten Sie diesen Copilot wirklich entfernen?', changeAccessLevel: 'Zugriffsebene ändern', makeSureItIsYou: 'Stellen wir sicher, dass du es bist', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => + enterMagicCode: (contactMethod: string) => `Bitte gib den magischen Code ein, der an ${contactMethod} gesendet wurde, um einen Copilot hinzuzufügen. Er sollte innerhalb von ein bis zwei Minuten ankommen.`, - enterMagicCodeUpdate: ({contactMethod}: EnterMagicCodeParams) => `Bitte gib den magischen Code ein, der an ${contactMethod} gesendet wurde, um deinen Copilot zu aktualisieren.`, + enterMagicCodeUpdate: (contactMethod: string) => `Bitte gib den magischen Code ein, der an ${contactMethod} gesendet wurde, um deinen Copilot zu aktualisieren.`, notAllowed: 'Nicht so schnell …', noAccessMessage: dedent(` Als Copilot hast du keinen Zugriff auf @@ -7894,7 +7876,7 @@ Fordere Spesendetails wie Belege und Beschreibungen an, lege Limits und Standard readyForTheRealThing: 'Bereit für das Richtige?', getStarted: 'Loslegen', }, - employeeInviteMessage: ({name}: EmployeeInviteMessageParams) => `# ${name} hat dich eingeladen, Expensify auszuprobieren + employeeInviteMessage: (name: string) => `# ${name} hat dich eingeladen, Expensify auszuprobieren Hey! Ich habe uns gerade *3 kostenlose Monate* gesichert, um Expensify auszuprobieren, den schnellsten Weg, Spesen abzurechnen. Hier ist ein *Testbeleg*, um dir zu zeigen, wie es funktioniert:`, diff --git a/src/languages/fr.ts b/src/languages/fr.ts index ae7522060d88e..c1fae541364f5 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -55,7 +55,6 @@ import type { CreateExpensesParams, CurrencyCodeParams, CurrencyInputDisabledTextParams, - CustomersOrJobsLabelParams, DateParams, DateShouldBeAfterParams, DateShouldBeBeforeParams, @@ -65,28 +64,13 @@ import type { DelegatorParams, DeleteActionParams, DeleteConfirmationParams, - DeleteTransactionParams, - DemotedFromWorkspaceParams, DependentMultiLevelTagsSubtitleParams, - DidSplitAmountMessageParams, DisconnectYourBankAccountParams, DomainPermissionInfoRestrictionParams, DuplicateTransactionParams, - EarlyDiscountSubtitleParams, - EarlyDiscountTitleParams, EditActionParams, - EditDestinationSubtitleParams, - ElectronicFundsParams, - EmployeeInviteMessageParams, - EmptyCategoriesSubtitleWithAccountingParams, - EmptyTagsSubtitleWithAccountingParams, - EnableContinuousReconciliationParams, - EnterMagicCodeParams, - ErrorODIntegrationParams, ExportAgainModalDescriptionParams, - ExportedToIntegrationParams, ExportIntegrationSelectedParams, - FeatureNameParams, FileLimitParams, FileTypeParams, FiltersAmountBetweenParams, @@ -174,7 +158,6 @@ import type { ReportPolicyNameParams, RequestAmountParams, RequestCountParams, - RequestedAmountMessageParams, RequiredFieldParams, ResolutionConstraintsParams, ReviewParams, @@ -1203,7 +1186,7 @@ const translations: TranslationDeepObject = { posted: 'Publié', deleteReceipt: 'Supprimer le reçu', findExpense: 'Trouver une dépense', - deletedTransaction: ({amount, merchant}: DeleteTransactionParams) => `a supprimé une dépense (${amount} pour ${merchant})`, + deletedTransaction: (amount: string, merchant: string) => `a supprimé une dépense (${amount} pour ${merchant})`, movedFromReport: ({reportName}: MovedFromReportParams) => `a déplacé une dépense${reportName ? `de ${reportName}` : ''}`, movedTransactionTo: ({reportUrl, reportName}: MovedTransactionParams) => `a déplacé cette dépense${reportName ? `à ${reportName}` : ''}`, movedTransactionFrom: ({reportUrl, reportName}: MovedTransactionParams) => `a déplacé cette dépense${reportName ? `de ${reportName}` : ''}`, @@ -1314,12 +1297,12 @@ const translations: TranslationDeepObject = { finished: 'Terminé', flip: 'Retourner', sendInvoice: ({amount}: RequestAmountParams) => `Envoyer ${amount} facture`, - expenseAmount: ({formattedAmount, comment}: RequestedAmountMessageParams) => `${formattedAmount}${comment ? `pour ${comment}` : ''}`, + expenseAmount: (formattedAmount: string, comment?: string) => `${formattedAmount}${comment ? `pour ${comment}` : ''}`, submitted: ({memo}: SubmittedWithMemoParams) => `envoyé${memo ? `, indiquant ${memo}` : ''}`, automaticallySubmitted: `soumis via retarder les soumissions`, - trackedAmount: ({formattedAmount, comment}: RequestedAmountMessageParams) => `suivi de ${formattedAmount}${comment ? `pour ${comment}` : ''}`, + trackedAmount: (formattedAmount: string, comment?: string) => `suivi de ${formattedAmount}${comment ? `pour ${comment}` : ''}`, splitAmount: ({amount}: SplitAmountParams) => `diviser ${amount}`, - didSplitAmount: ({formattedAmount, comment}: DidSplitAmountMessageParams) => `Diviser ${formattedAmount}${comment ? `pour ${comment}` : ''}`, + didSplitAmount: (formattedAmount: string, comment: string) => `Diviser ${formattedAmount}${comment ? `pour ${comment}` : ''}`, yourSplit: ({amount}: UserSplitParams) => `Votre part de ${amount}`, payerOwesAmount: ({payer, amount, comment}: PayerOwesAmountParams) => `${payer} doit ${amount}${comment ? `pour ${comment}` : ''}`, payerOwes: ({payer}: PayerOwesParams) => `${payer} doit :`, @@ -1788,7 +1771,7 @@ const translations: TranslationDeepObject = { `Ajoutez davantage de moyens de vous connecter et d’envoyer des reçus à Expensify.

Ajoutez une adresse e-mail pour transférer des reçus à ${email} ou ajoutez un numéro de téléphone pour envoyer des reçus par SMS au 47777 (numéros américains uniquement).`, pleaseVerify: 'Veuillez vérifier cette méthode de contact.', getInTouch: 'Nous utiliserons cette méthode pour vous contacter.', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Veuillez saisir le code magique envoyé à ${contactMethod}. Il devrait arriver d’ici une à deux minutes.`, + enterMagicCode: (contactMethod: string) => `Veuillez saisir le code magique envoyé à ${contactMethod}. Il devrait arriver d’ici une à deux minutes.`, setAsDefault: 'Définir par défaut', yourDefaultContactMethod: 'C’est votre méthode de contact par défaut actuelle. Avant de pouvoir la supprimer, vous devez choisir une autre méthode de contact et cliquer sur « Définir par défaut ».', @@ -2237,7 +2220,7 @@ const translations: TranslationDeepObject = { cardAddedToWallet: ({platform}: {platform: 'Google' | 'Apple'}) => `Ajouté au portefeuille ${platform}`, cardDetailsLoadingFailure: 'Une erreur s’est produite lors du chargement des détails de la carte. Veuillez vérifier votre connexion Internet et réessayer.', validateCardTitle: 'Vérifions que c’est bien vous', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => + enterMagicCode: (contactMethod: string) => `Veuillez saisir le code magique envoyé à ${contactMethod} pour afficher les détails de votre carte. Il devrait arriver d’ici une à deux minutes.`, missingPrivateDetails: ({missingDetailsLink}: {missingDetailsLink: string}) => `Veuillez ajouter vos informations personnelles, puis réessayer.`, unexpectedError: 'Une erreur s’est produite lors de la récupération des détails de votre carte Expensify. Veuillez réessayer.', @@ -3262,7 +3245,7 @@ ${ sendingFundsDetails: 'Il n’y a aucuns frais pour envoyer des fonds à un autre titulaire de compte en utilisant votre solde, votre compte bancaire ou votre carte de débit.', electronicFundsStandardDetails: 'Il n’y a aucun frais pour transférer des fonds de votre portefeuille Expensify vers votre compte bancaire en utilisant l’option standard. Ce virement est généralement effectué sous 1 à 3 jours ouvrables.', - electronicFundsInstantDetails: ({percentage, amount}: ElectronicFundsParams) => + electronicFundsInstantDetails: (percentage: string, amount: string) => 'Des frais s’appliquent pour transférer des fonds depuis votre Portefeuille Expensify vers votre carte de débit liée en utilisant l’option de transfert instantané. Ce transfert est généralement effectué en quelques minutes.' + `Les frais correspondent à ${percentage} % du montant du transfert (avec des frais minimum de ${amount}).`, fdicInsuranceBancorp: ({amount}: TermsParams) => @@ -3981,8 +3964,8 @@ ${ importPerDiemRates: 'Importer des taux de per diem', editPerDiemRate: 'Modifier le taux de per diem', editPerDiemRates: 'Modifier les indemnités journalières', - editDestinationSubtitle: ({destination}: EditDestinationSubtitleParams) => `La mise à jour de cette destination la modifiera pour tous les sous-taux de per diem ${destination}.`, - editCurrencySubtitle: ({destination}: EditDestinationSubtitleParams) => `La mise à jour de cette devise la modifiera pour tous les sous-taux de per diem ${destination}.`, + editDestinationSubtitle: (destination: string) => `La mise à jour de cette destination la modifiera pour tous les sous-taux de per diem ${destination}.`, + editCurrencySubtitle: (destination: string) => `La mise à jour de cette devise la modifiera pour tous les sous-taux de per diem ${destination}.`, }, qbd: { exportOutOfPocketExpensesDescription: 'Définissez la façon dont les dépenses remboursables sont exportées vers QuickBooks Desktop.', @@ -4592,7 +4575,7 @@ ${ importJobs: 'Importer des projets', customers: 'clients', jobs: 'Projets', - label: ({importFields, importType}: CustomersOrJobsLabelParams) => `${importFields.join('et')}, ${importType}`, + label: (importFields: string[], importType: string) => `${importFields.join('et')}, ${importType}`, }, importTaxDescription: 'Importer des groupes de taxes depuis NetSuite.', importCustomFields: { @@ -5003,7 +4986,7 @@ _Pour des instructions plus détaillées, [visitez notre site d’aide](${CONST. emptyCategories: { title: 'Vous n’avez créé aucune catégorie', subtitle: 'Ajoutez une catégorie pour organiser vos dépenses.', - subtitleWithAccounting: ({accountingPageURL}: EmptyCategoriesSubtitleWithAccountingParams) => + subtitleWithAccounting: (accountingPageURL: string) => `Vos catégories sont actuellement importées depuis une connexion comptable. Rendez-vous dans la section Comptabilité pour effectuer des modifications.`, }, updateFailureMessage: "Une erreur s'est produite lors de la mise à jour de la catégorie, veuillez réessayer", @@ -5295,7 +5278,7 @@ _Pour des instructions plus détaillées, [visitez notre site d’aide](${CONST. // We need to remove the subtitle and use the below one when we remove the canUseMultiLevelTags beta subtitle: 'Ajoutez une étiquette pour suivre les projets, les lieux, les services et plus encore.', subtitleHTML: `Importez une feuille de calcul pour ajouter des tags afin de suivre les projets, les sites, les services, et plus encore. En savoir plus sur le formatage des fichiers de tags.`, - subtitleWithAccounting: ({accountingPageURL}: EmptyTagsSubtitleWithAccountingParams) => + subtitleWithAccounting: (accountingPageURL: string) => `Vos tags sont actuellement importés depuis une connexion comptable. Rendez-vous dans la section Comptabilité pour effectuer des modifications.`, }, deleteTag: 'Supprimer le tag', @@ -5557,7 +5540,7 @@ _Pour des instructions plus détaillées, [visitez notre site d’aide](${CONST. } } }, - errorODIntegration: ({oldDotPolicyConnectionsURL}: ErrorODIntegrationParams) => + errorODIntegration: (oldDotPolicyConnectionsURL: string) => `Une erreur s’est produite avec une connexion configurée dans Expensify Classic. [Allez sur Expensify Classic pour résoudre ce problème.](${oldDotPolicyConnectionsURL})`, goToODToSettings: 'Accédez à Expensify Classic pour gérer vos paramètres.', setup: 'Connecter', @@ -5765,7 +5748,7 @@ _Pour des instructions plus détaillées, [visitez notre site d’aide](${CONST. continuousReconciliation: 'Rapprochement continu', saveHoursOnReconciliation: 'Gagnez des heures à chaque période comptable en laissant Expensify rapprocher en continu, pour vous, les relevés et règlements de la carte Expensify.', - enableContinuousReconciliation: ({accountingAdvancedSettingsLink, connectionName}: EnableContinuousReconciliationParams) => + enableContinuousReconciliation: (accountingAdvancedSettingsLink: string, connectionName: string) => `Pour activer la Réconciliation continue, veuillez activer la synchronisation automatique pour ${connectionName}.`, chooseReconciliationAccount: { chooseBankAccount: 'Choisissez le compte bancaire sur lequel les paiements de votre carte Expensify seront rapprochés.', @@ -6221,8 +6204,8 @@ Exigez des informations de dépense comme les reçus et les descriptions, défin autoPayApprovedReportsLockedSubtitle: 'Allez dans « Plus de fonctionnalités » et activez les workflows, puis ajoutez les paiements pour déverrouiller cette fonctionnalité.', autoPayReportsUnderTitle: 'Rapports de paiement automatique sous', autoPayReportsUnderDescription: 'Les notes de frais entièrement conformes en dessous de ce montant seront automatiquement réglées.', - unlockFeatureEnableWorkflowsSubtitle: ({featureName}: FeatureNameParams) => `Ajoutez ${featureName} pour débloquer cette fonctionnalité.`, - enableFeatureSubtitle: ({featureName, moreFeaturesLink}: FeatureNameParams) => + unlockFeatureEnableWorkflowsSubtitle: (featureName: string) => `Ajoutez ${featureName} pour débloquer cette fonctionnalité.`, + enableFeatureSubtitle: (featureName: string, moreFeaturesLink?: string) => `Allez dans [plus de fonctionnalités](${moreFeaturesLink}) et activez ${featureName} pour déverrouiller cette fonctionnalité.`, }, categoryRules: { @@ -6500,7 +6483,7 @@ Exigez des informations de dépense comme les reçus et les descriptions, défin other: `vous a retiré des workflows d’approbation et des discussions de dépenses de ${joinedNames}. Les rapports précédemment soumis resteront disponibles pour approbation dans votre boîte de réception.`, }; }, - demotedFromWorkspace: ({policyName, oldRole}: DemotedFromWorkspaceParams) => + demotedFromWorkspace: (policyName: string, oldRole: string) => `a mis à jour votre rôle dans ${policyName} de ${oldRole} à utilisateur. Vous avez été retiré de toutes les discussions de dépenses des déclarants, à l’exception de la vôtre.`, updatedWorkspaceCurrencyAction: ({oldCurrency, newCurrency}: UpdatedPolicyCurrencyParams) => `a mis à jour la devise par défaut en ${newCurrency} (auparavant ${oldCurrency})`, updatedWorkspaceFrequencyAction: ({oldFrequency, newFrequency}: UpdatedPolicyFrequencyParams) => @@ -6998,7 +6981,7 @@ Exigez des informations de dépense comme les reçus et les descriptions, défin changeType: ({oldType, newType}: ChangeTypeParams) => `type modifié de ${oldType} à ${newType}`, exportedToCSV: `exporté en CSV`, exportedToIntegration: { - automatic: ({label}: ExportedToIntegrationParams) => { + automatic: (label: string) => { const labelTranslations: Record = { [CONST.REPORT.EXPORT_OPTION_LABELS.EXPENSE_LEVEL_EXPORT]: translations.export.expenseLevelExport, [CONST.REPORT.EXPORT_OPTION_LABELS.REPORT_LEVEL_EXPORT]: translations.export.reportLevelExport, @@ -7006,13 +6989,13 @@ Exigez des informations de dépense comme les reçus et les descriptions, défin const translatedLabel = labelTranslations[label] || label; return `exporté vers ${translatedLabel}`; }, - automaticActionOne: ({label}: ExportedToIntegrationParams) => `exporté vers ${label} via`, + automaticActionOne: (label: string) => `exporté vers ${label} via`, automaticActionTwo: 'paramètres de comptabilité', - manual: ({label}: ExportedToIntegrationParams) => `a marqué ce rapport comme exporté manuellement vers ${label}.`, + manual: (label: string) => `a marqué ce rapport comme exporté manuellement vers ${label}.`, automaticActionThree: 'et a créé avec succès un enregistrement pour', reimburseableLink: 'dépenses personnelles', nonReimbursableLink: 'dépenses de carte d’entreprise', - pending: ({label}: ExportedToIntegrationParams) => `a commencé à exporter ce rapport vers ${label}...`, + pending: (label: string) => `a commencé à exporter ce rapport vers ${label}...`, }, integrationsMessage: ({errorMessage, label, linkText, linkURL}: IntegrationSyncFailedParams) => `échec de l’exportation de ce rapport vers ${label} (« ${errorMessage}${linkText ? `${linkText}` : ''} »)`, @@ -7527,10 +7510,10 @@ Exigez des informations de dépense comme les reçus et les descriptions, défin }, earlyDiscount: { claimOffer: 'Réclamer l’offre', - subscriptionPageTitle: ({discountType}: EarlyDiscountTitleParams) => + subscriptionPageTitle: (discountType: number) => `${discountType} % de réduction sur votre première année ! Ajoutez simplement une carte de paiement et démarrez un abonnement annuel.`, - onboardingChatTitle: ({discountType}: EarlyDiscountTitleParams) => `Offre à durée limitée : ${discountType} % de réduction sur votre première année !`, - subtitle: ({days, hours, minutes, seconds}: EarlyDiscountSubtitleParams) => `Réclamer dans ${days > 0 ? `${days}j :` : ''}${hours}h : ${minutes}m : ${seconds}s`, + onboardingChatTitle: (discountType: number) => `Offre à durée limitée : ${discountType} % de réduction sur votre première année !`, + subtitle: (days: number, hours: number, minutes: number, seconds: number) => `Réclamer dans ${days > 0 ? `${days}j :` : ''}${hours}h : ${minutes}m : ${seconds}s`, }, }, cardSection: { @@ -7732,9 +7715,8 @@ Exigez des informations de dépense comme les reçus et les descriptions, défin removeCopilotConfirmation: 'Êtes-vous sûr de vouloir supprimer ce copilote ?', changeAccessLevel: 'Modifier le niveau d’accès', makeSureItIsYou: 'Vérifions que c’est bien vous', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => - `Veuillez saisir le code magique envoyé à ${contactMethod} pour ajouter un copilote. Il devrait arriver d’ici une à deux minutes.`, - enterMagicCodeUpdate: ({contactMethod}: EnterMagicCodeParams) => `Veuillez saisir le code magique envoyé à ${contactMethod} pour mettre à jour votre copilote.`, + enterMagicCode: (contactMethod: string) => `Veuillez saisir le code magique envoyé à ${contactMethod} pour ajouter un copilote. Il devrait arriver d’ici une à deux minutes.`, + enterMagicCodeUpdate: (contactMethod: string) => `Veuillez saisir le code magique envoyé à ${contactMethod} pour mettre à jour votre copilote.`, notAllowed: 'Pas si vite...', noAccessMessage: dedent(` En tant que copilote, vous n’avez pas accès à @@ -7902,7 +7884,7 @@ Exigez des informations de dépense comme les reçus et les descriptions, défin readyForTheRealThing: 'Prêt pour de vrai ?', getStarted: 'Commencer', }, - employeeInviteMessage: ({name}: EmployeeInviteMessageParams) => `# ${name} vous a invité à essayer Expensify + employeeInviteMessage: (name: string) => `# ${name} vous a invité à essayer Expensify Salut ! Je viens de nous obtenir *3 mois gratuits* pour essayer Expensify, la façon la plus rapide de gérer les notes de frais. Voici un *reçu test* pour vous montrer comment cela fonctionne :`, diff --git a/src/languages/it.ts b/src/languages/it.ts index f60d9a6e83ff3..6b6effb92b311 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -55,7 +55,6 @@ import type { CreateExpensesParams, CurrencyCodeParams, CurrencyInputDisabledTextParams, - CustomersOrJobsLabelParams, DateParams, DateShouldBeAfterParams, DateShouldBeBeforeParams, @@ -65,28 +64,13 @@ import type { DelegatorParams, DeleteActionParams, DeleteConfirmationParams, - DeleteTransactionParams, - DemotedFromWorkspaceParams, DependentMultiLevelTagsSubtitleParams, - DidSplitAmountMessageParams, DisconnectYourBankAccountParams, DomainPermissionInfoRestrictionParams, DuplicateTransactionParams, - EarlyDiscountSubtitleParams, - EarlyDiscountTitleParams, EditActionParams, - EditDestinationSubtitleParams, - ElectronicFundsParams, - EmployeeInviteMessageParams, - EmptyCategoriesSubtitleWithAccountingParams, - EmptyTagsSubtitleWithAccountingParams, - EnableContinuousReconciliationParams, - EnterMagicCodeParams, - ErrorODIntegrationParams, ExportAgainModalDescriptionParams, - ExportedToIntegrationParams, ExportIntegrationSelectedParams, - FeatureNameParams, FileLimitParams, FileTypeParams, FiltersAmountBetweenParams, @@ -174,7 +158,6 @@ import type { ReportPolicyNameParams, RequestAmountParams, RequestCountParams, - RequestedAmountMessageParams, RequiredFieldParams, ResolutionConstraintsParams, ReviewParams, @@ -1199,7 +1182,7 @@ const translations: TranslationDeepObject = { posted: 'Pubblicato', deleteReceipt: 'Elimina ricevuta', findExpense: 'Trova spesa', - deletedTransaction: ({amount, merchant}: DeleteTransactionParams) => `ha eliminato una spesa (${amount} per ${merchant})`, + deletedTransaction: (amount: string, merchant: string) => `ha eliminato una spesa (${amount} per ${merchant})`, movedFromReport: ({reportName}: MovedFromReportParams) => `ha spostato una spesa${reportName ? `da ${reportName}` : ''}`, movedTransactionTo: ({reportUrl, reportName}: MovedTransactionParams) => `spostato questa spesa${reportName ? `a ${reportName}` : ''}`, movedTransactionFrom: ({reportUrl, reportName}: MovedTransactionParams) => `ha spostato questa spesa${reportName ? `da ${reportName}` : ''}`, @@ -1309,12 +1292,12 @@ const translations: TranslationDeepObject = { finished: 'Completato', flip: 'Capovolgi', sendInvoice: ({amount}: RequestAmountParams) => `Invia fattura di ${amount}`, - expenseAmount: ({formattedAmount, comment}: RequestedAmountMessageParams) => `${formattedAmount}${comment ? `per ${comment}` : ''}`, + expenseAmount: (formattedAmount: string, comment?: string) => `${formattedAmount}${comment ? `per ${comment}` : ''}`, submitted: ({memo}: SubmittedWithMemoParams) => `inviato${memo ? `, dicendo ${memo}` : ''}`, automaticallySubmitted: `inviato tramite invio ritardato`, - trackedAmount: ({formattedAmount, comment}: RequestedAmountMessageParams) => `monitoraggio ${formattedAmount}${comment ? `per ${comment}` : ''}`, + trackedAmount: (formattedAmount: string, comment?: string) => `monitoraggio ${formattedAmount}${comment ? `per ${comment}` : ''}`, splitAmount: ({amount}: SplitAmountParams) => `dividi ${amount}`, - didSplitAmount: ({formattedAmount, comment}: DidSplitAmountMessageParams) => `dividi ${formattedAmount}${comment ? `per ${comment}` : ''}`, + didSplitAmount: (formattedAmount: string, comment: string) => `dividi ${formattedAmount}${comment ? `per ${comment}` : ''}`, yourSplit: ({amount}: UserSplitParams) => `La tua quota ${amount}`, payerOwesAmount: ({payer, amount, comment}: PayerOwesAmountParams) => `${payer} deve ${amount}${comment ? `per ${comment}` : ''}`, payerOwes: ({payer}: PayerOwesParams) => `${payer} deve:`, @@ -1782,7 +1765,7 @@ const translations: TranslationDeepObject = { `Aggiungi altri modi per accedere e inviare ricevute a Expensify.

Aggiungi un indirizzo email per inoltrare le ricevute a ${email} o aggiungi un numero di telefono per inviare le ricevute tramite SMS al 47777 (solo numeri degli Stati Uniti).`, pleaseVerify: 'Verifica questo metodo di contatto.', getInTouch: 'Useremo questo metodo per contattarti.', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Inserisci il codice magico inviato a ${contactMethod}. Dovrebbe arrivare entro uno o due minuti.`, + enterMagicCode: (contactMethod: string) => `Inserisci il codice magico inviato a ${contactMethod}. Dovrebbe arrivare entro uno o due minuti.`, setAsDefault: 'Imposta come predefinito', yourDefaultContactMethod: 'Questo è il tuo metodo di contatto predefinito. Prima di poterlo eliminare, devi scegliere un altro metodo di contatto e fare clic su “Imposta come predefinito”.', @@ -2227,7 +2210,7 @@ const translations: TranslationDeepObject = { cardAddedToWallet: ({platform}: {platform: 'Google' | 'Apple'}) => `Aggiunto al Wallet ${platform}`, cardDetailsLoadingFailure: 'Si è verificato un errore durante il caricamento dei dettagli della carta. Controlla la tua connessione a Internet e riprova.', validateCardTitle: 'Verifichiamo che tu sia davvero tu', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => + enterMagicCode: (contactMethod: string) => `Inserisci il codice magico inviato a ${contactMethod} per visualizzare i dettagli della tua carta. Dovrebbe arrivare entro uno o due minuti.`, missingPrivateDetails: ({missingDetailsLink}: {missingDetailsLink: string}) => `Per favore aggiungi i tuoi dati personali, poi riprova.`, unexpectedError: 'Si è verificato un errore durante il tentativo di recuperare i dettagli della tua carta Expensify. Riprova.', @@ -3243,7 +3226,7 @@ ${ sendingFundsDetails: 'Non è prevista alcuna commissione per inviare fondi a un altro titolare di conto utilizzando il tuo saldo, conto bancario o carta di debito.', electronicFundsStandardDetails: 'Non ci sono commissioni per trasferire fondi dal tuo Expensify Wallet al tuo conto bancario utilizzando l’opzione standard. Questo trasferimento di solito viene completato entro 1-3 giorni lavorativi.', - electronicFundsInstantDetails: ({percentage, amount}: ElectronicFundsParams) => + electronicFundsInstantDetails: (percentage: string, amount: string) => 'È prevista una commissione per trasferire fondi dal tuo Wallet Expensify alla carta di debito collegata utilizzando l’opzione di trasferimento istantaneo. Questo trasferimento di solito viene completato entro pochi minuti.' + `La commissione è pari al ${percentage}% dell'importo del trasferimento (con una commissione minima di ${amount}).`, fdicInsuranceBancorp: ({amount}: TermsParams) => @@ -3960,9 +3943,8 @@ ${ importPerDiemRates: 'Importa tariffe di diaria', editPerDiemRate: 'Modifica tariffa diaria', editPerDiemRates: 'Modifica tariffe di diaria', - editDestinationSubtitle: ({destination}: EditDestinationSubtitleParams) => - `L’aggiornamento di questa destinazione la modificherà per tutte le sottotariffe di diaria ${destination}.`, - editCurrencySubtitle: ({destination}: EditDestinationSubtitleParams) => `L’aggiornamento di questa valuta la modificherà per tutte le sottotariffe di diaria ${destination}.`, + editDestinationSubtitle: (destination: string) => `L’aggiornamento di questa destinazione la modificherà per tutte le sottotariffe di diaria ${destination}.`, + editCurrencySubtitle: (destination: string) => `L’aggiornamento di questa valuta la modificherà per tutte le sottotariffe di diaria ${destination}.`, }, qbd: { exportOutOfPocketExpensesDescription: 'Imposta come le spese anticipate vengono esportate in QuickBooks Desktop.', @@ -4573,7 +4555,7 @@ ${ importJobs: 'Importa progetti', customers: 'clienti', jobs: 'progetti', - label: ({importFields, importType}: CustomersOrJobsLabelParams) => `${importFields.join('e')}, ${importType}`, + label: (importFields: string[], importType: string) => `${importFields.join('e')}, ${importType}`, }, importTaxDescription: 'Importa gruppi di imposte da NetSuite.', importCustomFields: { @@ -4982,7 +4964,7 @@ _Per istruzioni più dettagliate, [visita il nostro sito di assistenza](${CONST. emptyCategories: { title: 'Non hai ancora creato nessuna categoria', subtitle: 'Aggiungi una categoria per organizzare le tue spese.', - subtitleWithAccounting: ({accountingPageURL}: EmptyCategoriesSubtitleWithAccountingParams) => + subtitleWithAccounting: (accountingPageURL: string) => `Le tue categorie sono attualmente in fase di importazione da una connessione contabile. Vai alla pagina contabilità per apportare modifiche.`, }, updateFailureMessage: 'Si è verificato un errore durante l’aggiornamento della categoria, riprova per favore', @@ -5271,7 +5253,7 @@ _Per istruzioni più dettagliate, [visita il nostro sito di assistenza](${CONST. // We need to remove the subtitle and use the below one when we remove the canUseMultiLevelTags beta subtitle: 'Aggiungi un tag per tenere traccia di progetti, sedi, reparti e altro.', subtitleHTML: `Importa un foglio di calcolo per aggiungere tag per tenere traccia di progetti, sedi, reparti e altro ancora. Scopri di più sulla formattazione dei file dei tag.`, - subtitleWithAccounting: ({accountingPageURL}: EmptyTagsSubtitleWithAccountingParams) => + subtitleWithAccounting: (accountingPageURL: string) => `I tuoi tag vengono attualmente importati da una connessione contabile. Vai su contabilità per apportare eventuali modifiche.`, }, deleteTag: 'Elimina etichetta', @@ -5532,7 +5514,7 @@ _Per istruzioni più dettagliate, [visita il nostro sito di assistenza](${CONST. } } }, - errorODIntegration: ({oldDotPolicyConnectionsURL}: ErrorODIntegrationParams) => + errorODIntegration: (oldDotPolicyConnectionsURL: string) => `Si è verificato un errore con una connessione configurata in Expensify Classic. [Vai a Expensify Classic per risolvere questo problema.](${oldDotPolicyConnectionsURL})`, goToODToSettings: 'Vai a Expensify Classic per gestire le tue impostazioni.', setup: 'Connetti', @@ -5740,7 +5722,7 @@ _Per istruzioni più dettagliate, [visita il nostro sito di assistenza](${CONST. continuousReconciliation: 'Riconciliazione continua', saveHoursOnReconciliation: 'Risparmia ore di riconciliazione a ogni periodo contabile facendo sì che Expensify riconcili in modo continuo, per tuo conto, gli estratti conto e i regolamenti della Expensify Card.', - enableContinuousReconciliation: ({accountingAdvancedSettingsLink, connectionName}: EnableContinuousReconciliationParams) => + enableContinuousReconciliation: (accountingAdvancedSettingsLink: string, connectionName: string) => `Per abilitare la Riconciliazione continua, abilita la sincronizzazione automatica per ${connectionName}.`, chooseReconciliationAccount: { chooseBankAccount: 'Scegli il conto bancario con cui verranno riconciliati i pagamenti della tua Expensify Card.', @@ -6193,8 +6175,8 @@ Richiedi dettagli di spesa come ricevute e descrizioni, imposta limiti e valori autoPayApprovedReportsLockedSubtitle: 'Vai su Altre funzionalità e abilita i workflow, quindi aggiungi i pagamenti per sbloccare questa funzionalità.', autoPayReportsUnderTitle: 'Pagamento automatico dei report inferiori a', autoPayReportsUnderDescription: 'Le note spese completamente conformi inferiori a questo importo verranno rimborsate automaticamente.', - unlockFeatureEnableWorkflowsSubtitle: ({featureName}: FeatureNameParams) => `Aggiungi ${featureName} per sbloccare questa funzionalità.`, - enableFeatureSubtitle: ({featureName, moreFeaturesLink}: FeatureNameParams) => + unlockFeatureEnableWorkflowsSubtitle: (featureName: string) => `Aggiungi ${featureName} per sbloccare questa funzionalità.`, + enableFeatureSubtitle: (featureName: string, moreFeaturesLink?: string) => `Vai a [altre funzionalità](${moreFeaturesLink}) e abilita ${featureName} per sbloccare questa funzione.`, }, categoryRules: { @@ -6472,7 +6454,7 @@ Richiedi dettagli di spesa come ricevute e descrizioni, imposta limiti e valori other: `ti ha rimosso dai workflow di approvazione e dalle chat delle spese di ${joinedNames}. I report inviati in precedenza resteranno disponibili per l’approvazione nella tua Inbox.`, }; }, - demotedFromWorkspace: ({policyName, oldRole}: DemotedFromWorkspaceParams) => + demotedFromWorkspace: (policyName: string, oldRole: string) => `ha aggiornato il tuo ruolo in ${policyName} da ${oldRole} a utente. Sei stato rimosso da tutte le chat di spesa dei presentatori tranne che dalla tua.`, updatedWorkspaceCurrencyAction: ({oldCurrency, newCurrency}: UpdatedPolicyCurrencyParams) => `ha aggiornato la valuta predefinita in ${newCurrency} (precedentemente ${oldCurrency})`, updatedWorkspaceFrequencyAction: ({oldFrequency, newFrequency}: UpdatedPolicyFrequencyParams) => @@ -6971,7 +6953,7 @@ Richiedi dettagli di spesa come ricevute e descrizioni, imposta limiti e valori changeType: ({oldType, newType}: ChangeTypeParams) => `ha cambiato il tipo da ${oldType} a ${newType}`, exportedToCSV: `esportato in CSV`, exportedToIntegration: { - automatic: ({label}: ExportedToIntegrationParams) => { + automatic: (label: string) => { const labelTranslations: Record = { [CONST.REPORT.EXPORT_OPTION_LABELS.EXPENSE_LEVEL_EXPORT]: translations.export.expenseLevelExport, [CONST.REPORT.EXPORT_OPTION_LABELS.REPORT_LEVEL_EXPORT]: translations.export.reportLevelExport, @@ -6979,13 +6961,13 @@ Richiedi dettagli di spesa come ricevute e descrizioni, imposta limiti e valori const translatedLabel = labelTranslations[label] || label; return `esportato in ${translatedLabel}`; }, - automaticActionOne: ({label}: ExportedToIntegrationParams) => `esportato in ${label} tramite`, + automaticActionOne: (label: string) => `esportato in ${label} tramite`, automaticActionTwo: 'impostazioni contabili', - manual: ({label}: ExportedToIntegrationParams) => `ha contrassegnato questo report come esportato manualmente in ${label}.`, + manual: (label: string) => `ha contrassegnato questo report come esportato manualmente in ${label}.`, automaticActionThree: 'e ha creato correttamente un record per', reimburseableLink: 'spese vive', nonReimbursableLink: 'spese su carta aziendale', - pending: ({label}: ExportedToIntegrationParams) => `ha iniziato l’esportazione di questo report in ${label}...`, + pending: (label: string) => `ha iniziato l’esportazione di questo report in ${label}...`, }, integrationsMessage: ({errorMessage, label, linkText, linkURL}: IntegrationSyncFailedParams) => `impossibile esportare questo report su ${label} ("${errorMessage}${linkText ? `${linkText}` : ''}")`, @@ -7501,10 +7483,10 @@ Richiedi dettagli di spesa come ricevute e descrizioni, imposta limiti e valori }, earlyDiscount: { claimOffer: 'Riscatta offerta', - subscriptionPageTitle: ({discountType}: EarlyDiscountTitleParams) => + subscriptionPageTitle: (discountType: number) => `${discountType}% di sconto sul tuo primo anno! Ti basta aggiungere una carta di pagamento e attivare un abbonamento annuale.`, - onboardingChatTitle: ({discountType}: EarlyDiscountTitleParams) => `Offerta a tempo limitato: ${discountType}% di sconto sul primo anno!`, - subtitle: ({days, hours, minutes, seconds}: EarlyDiscountSubtitleParams) => `Richiedi entro ${days > 0 ? `${days}g :` : ''}${hours}h : ${minutes}m : ${seconds}s`, + onboardingChatTitle: (discountType: number) => `Offerta a tempo limitato: ${discountType}% di sconto sul primo anno!`, + subtitle: (days: number, hours: number, minutes: number, seconds: number) => `Richiedi entro ${days > 0 ? `${days}g :` : ''}${hours}h : ${minutes}m : ${seconds}s`, }, }, cardSection: { @@ -7706,9 +7688,8 @@ Richiedi dettagli di spesa come ricevute e descrizioni, imposta limiti e valori removeCopilotConfirmation: 'Sei sicuro di voler rimuovere questo copilot?', changeAccessLevel: 'Modifica livello di accesso', makeSureItIsYou: 'Verifichiamo che tu sia davvero tu', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => - `Inserisci il codice magico inviato a ${contactMethod} per aggiungere un copilota. Dovrebbe arrivare entro uno o due minuti.`, - enterMagicCodeUpdate: ({contactMethod}: EnterMagicCodeParams) => `Inserisci il codice magico inviato a ${contactMethod} per aggiornare il tuo copilota.`, + enterMagicCode: (contactMethod: string) => `Inserisci il codice magico inviato a ${contactMethod} per aggiungere un copilota. Dovrebbe arrivare entro uno o due minuti.`, + enterMagicCodeUpdate: (contactMethod: string) => `Inserisci il codice magico inviato a ${contactMethod} per aggiornare il tuo copilota.`, notAllowed: 'Non così in fretta...', noAccessMessage: dedent(` Come copilota, non hai accesso @@ -7876,7 +7857,7 @@ Richiedi dettagli di spesa come ricevute e descrizioni, imposta limiti e valori readyForTheRealThing: 'Pronto per la cosa reale?', getStarted: 'Inizia', }, - employeeInviteMessage: ({name}: EmployeeInviteMessageParams) => `# ${name} ti ha invitato a provare Expensify + employeeInviteMessage: (name: string) => `# ${name} ti ha invitato a provare Expensify Ehi! Ho appena ottenuto per noi *3 mesi gratis* per provare Expensify, il modo più veloce per gestire le spese. Ecco una *ricevuta di prova* per mostrarti come funziona:`, diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 6bcbcba270c10..c4c5e2d34e247 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -55,7 +55,6 @@ import type { CreateExpensesParams, CurrencyCodeParams, CurrencyInputDisabledTextParams, - CustomersOrJobsLabelParams, DateParams, DateShouldBeAfterParams, DateShouldBeBeforeParams, @@ -65,28 +64,13 @@ import type { DelegatorParams, DeleteActionParams, DeleteConfirmationParams, - DeleteTransactionParams, - DemotedFromWorkspaceParams, DependentMultiLevelTagsSubtitleParams, - DidSplitAmountMessageParams, DisconnectYourBankAccountParams, DomainPermissionInfoRestrictionParams, DuplicateTransactionParams, - EarlyDiscountSubtitleParams, - EarlyDiscountTitleParams, EditActionParams, - EditDestinationSubtitleParams, - ElectronicFundsParams, - EmployeeInviteMessageParams, - EmptyCategoriesSubtitleWithAccountingParams, - EmptyTagsSubtitleWithAccountingParams, - EnableContinuousReconciliationParams, - EnterMagicCodeParams, - ErrorODIntegrationParams, ExportAgainModalDescriptionParams, - ExportedToIntegrationParams, ExportIntegrationSelectedParams, - FeatureNameParams, FileLimitParams, FileTypeParams, FiltersAmountBetweenParams, @@ -174,7 +158,6 @@ import type { ReportPolicyNameParams, RequestAmountParams, RequestCountParams, - RequestedAmountMessageParams, RequiredFieldParams, ResolutionConstraintsParams, ReviewParams, @@ -1201,7 +1184,7 @@ const translations: TranslationDeepObject = { posted: '投稿済み', deleteReceipt: '領収書を削除', findExpense: '経費を検索', - deletedTransaction: ({amount, merchant}: DeleteTransactionParams) => `経費を削除しました(${merchant} への ${amount})`, + deletedTransaction: (amount: string, merchant: string) => `経費を削除しました(${merchant} への ${amount})`, movedFromReport: ({reportName}: MovedFromReportParams) => `経費を移動しました${reportName ? `${reportName} から` : ''}`, movedTransactionTo: ({reportUrl, reportName}: MovedTransactionParams) => `この経費を移動しました${reportName ? `${reportName} へ` : ''}`, movedTransactionFrom: ({reportUrl, reportName}: MovedTransactionParams) => `この経費を移動しました${reportName ? `${reportName} から` : ''}`, @@ -1312,12 +1295,12 @@ const translations: TranslationDeepObject = { finished: '完了', flip: '反転', sendInvoice: ({amount}: RequestAmountParams) => `${amount} の請求書を送信`, - expenseAmount: ({formattedAmount, comment}: RequestedAmountMessageParams) => `${formattedAmount}${comment ? `${comment} 用` : ''}`, + expenseAmount: (formattedAmount: string, comment?: string) => `${formattedAmount}${comment ? `${comment} 用` : ''}`, submitted: ({memo}: SubmittedWithMemoParams) => `送信済み${memo ? `、メモ「${memo}」と述べています` : ''}`, automaticallySubmitted: `提出を遅らせるを通じて送信されました`, - trackedAmount: ({formattedAmount, comment}: RequestedAmountMessageParams) => `${formattedAmount}${comment ? `${comment} 用` : ''} を追跡中`, + trackedAmount: (formattedAmount: string, comment?: string) => `${formattedAmount}${comment ? `${comment} 用` : ''} を追跡中`, splitAmount: ({amount}: SplitAmountParams) => `${amount} を分割`, - didSplitAmount: ({formattedAmount, comment}: DidSplitAmountMessageParams) => `分割 ${formattedAmount}${comment ? `${comment} 用` : ''}`, + didSplitAmount: (formattedAmount: string, comment: string) => `分割 ${formattedAmount}${comment ? `${comment} 用` : ''}`, yourSplit: ({amount}: UserSplitParams) => `あなたの分担額 ${amount}`, payerOwesAmount: ({payer, amount, comment}: PayerOwesAmountParams) => `${payer} の未払い金額は ${amount}${comment ? `${comment} 用` : ''}`, payerOwes: ({payer}: PayerOwesParams) => `${payer} の負担額:`, @@ -1783,7 +1766,7 @@ const translations: TranslationDeepObject = { `Expensify にログインしたり、領収書を送信したりする方法をさらに追加しましょう。

${email} に領収書を転送するメールアドレスを追加するか、電話番号を追加して領収書を 47777 にテキスト送信してください(米国の電話番号のみ)。`, pleaseVerify: 'この連絡方法を確認してください。', getInTouch: '今後のご連絡はこの方法で行います。', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `${contactMethod} に送信されたマジックコードを入力してください。1~2分以内に届きます。`, + enterMagicCode: (contactMethod: string) => `${contactMethod} に送信されたマジックコードを入力してください。1~2分以内に届きます。`, setAsDefault: 'デフォルトに設定', yourDefaultContactMethod: 'これは現在の既定の連絡方法です。削除する前に、別の連絡方法を選択して「既定として設定」をクリックする必要があります。', removeContactMethod: '連絡方法を削除', @@ -2222,7 +2205,7 @@ const translations: TranslationDeepObject = { cardAddedToWallet: ({platform}: {platform: 'Google' | 'Apple'}) => `${platform}ウォレットに追加しました`, cardDetailsLoadingFailure: 'カードの詳細を読み込む際にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。', validateCardTitle: 'あなた本人であることを確認しましょう', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `カード情報を表示するには、${contactMethod} に送信されたマジックコードを入力してください。1~2分以内に届くはずです。`, + enterMagicCode: (contactMethod: string) => `カード情報を表示するには、${contactMethod} に送信されたマジックコードを入力してください。1~2分以内に届くはずです。`, missingPrivateDetails: ({missingDetailsLink}: {missingDetailsLink: string}) => `個人情報を追加してから、もう一度お試しください。`, unexpectedError: 'Expensifyカードの詳細を取得中にエラーが発生しました。もう一度お試しください。', cardFraudAlert: { @@ -3235,7 +3218,7 @@ ${ sendingFundsTitle: '別のアカウント保有者への送金', sendingFundsDetails: '残高、銀行口座、またはデビットカードを使って他のアカウント保有者に送金しても、手数料はかかりません。', electronicFundsStandardDetails: '標準オプションを利用してExpensifyウォレットから銀行口座へ資金を振り込む場合、手数料はかかりません。通常、この振込は1~3営業日以内に完了します。', - electronicFundsInstantDetails: ({percentage, amount}: ElectronicFundsParams) => + electronicFundsInstantDetails: (percentage: string, amount: string) => '即時振込オプションを使用して、Expensifyウォレットからリンク済みデビットカードへ資金を振り替える場合、手数料が発生します。通常、この振込は数分以内に完了します。' + `手数料は送金額の${percentage}%(最低手数料${amount})です。`, fdicInsuranceBancorp: ({amount}: TermsParams) => @@ -3950,8 +3933,8 @@ ${ importPerDiemRates: '日当レートをインポート', editPerDiemRate: '日当レートを編集', editPerDiemRates: '日当レートを編集', - editDestinationSubtitle: ({destination}: EditDestinationSubtitleParams) => `この宛先を更新すると、すべての${destination}の日当サブレートに適用されます。`, - editCurrencySubtitle: ({destination}: EditDestinationSubtitleParams) => `この通貨を更新すると、すべての${destination}の日当サブレートが変更されます。`, + editDestinationSubtitle: (destination: string) => `この宛先を更新すると、すべての${destination}の日当サブレートに適用されます。`, + editCurrencySubtitle: (destination: string) => `この通貨を更新すると、すべての${destination}の日当サブレートが変更されます。`, }, qbd: { exportOutOfPocketExpensesDescription: '自己負担経費を QuickBooks Desktop にどのようにエクスポートするかを設定します。', @@ -4548,7 +4531,7 @@ ${ importJobs: 'プロジェクトをインポート', customers: '顧客', jobs: 'プロジェクト', - label: ({importFields, importType}: CustomersOrJobsLabelParams) => `${importFields.join('と')}, ${importType}`, + label: (importFields: string[], importType: string) => `${importFields.join('と')}, ${importType}`, }, importTaxDescription: 'NetSuite から税グループをインポートします。', importCustomFields: { @@ -4954,7 +4937,7 @@ _より詳しい手順については、[ヘルプサイトをご覧ください emptyCategories: { title: 'まだカテゴリを作成していません', subtitle: '支出を整理するためにカテゴリを追加してください。', - subtitleWithAccounting: ({accountingPageURL}: EmptyCategoriesSubtitleWithAccountingParams) => + subtitleWithAccounting: (accountingPageURL: string) => `現在、カテゴリーは会計接続からインポートされています。変更を加えるには、会計に移動してください。`, }, updateFailureMessage: 'カテゴリーの更新中にエラーが発生しました。もう一度お試しください', @@ -5243,7 +5226,7 @@ _より詳しい手順については、[ヘルプサイトをご覧ください // We need to remove the subtitle and use the below one when we remove the canUseMultiLevelTags beta subtitle: 'タグを追加して、プロジェクト、勤務地、部門などを追跡しましょう。', subtitleHTML: `スプレッドシートをインポートして、プロジェクト、所在地、部署などを追跡するためのタグを追加します。タグファイルの書式設定については、詳細はこちらをご覧ください。`, - subtitleWithAccounting: ({accountingPageURL}: EmptyTagsSubtitleWithAccountingParams) => + subtitleWithAccounting: (accountingPageURL: string) => `現在、タグは会計連携からインポートされています。変更を行うには、会計に移動してください。`, }, deleteTag: 'タグを削除', @@ -5503,7 +5486,7 @@ _より詳しい手順については、[ヘルプサイトをご覧ください } } }, - errorODIntegration: ({oldDotPolicyConnectionsURL}: ErrorODIntegrationParams) => + errorODIntegration: (oldDotPolicyConnectionsURL: string) => `Expensify Classic で設定された接続にエラーがあります。[この問題を解決するには Expensify Classic に移動してください。](${oldDotPolicyConnectionsURL})`, goToODToSettings: '設定を管理するには、Expensify Classic に移動してください。', setup: '接続', @@ -5709,7 +5692,7 @@ _より詳しい手順については、[ヘルプサイトをご覧ください reconciliationAccount: '照合勘定', continuousReconciliation: '継続的な照合', saveHoursOnReconciliation: '各会計期間ごとの照合作業にかかる時間を大幅に削減できます。Expensify が、あなたに代わって Expensify Card の明細と精算を継続的に照合します。', - enableContinuousReconciliation: ({accountingAdvancedSettingsLink, connectionName}: EnableContinuousReconciliationParams) => + enableContinuousReconciliation: (accountingAdvancedSettingsLink: string, connectionName: string) => `継続的な照合を有効にするには、${connectionName} の自動同期を有効にしてください。`, chooseReconciliationAccount: { chooseBankAccount: 'Expensify Card の支払いを照合する銀行口座を選択してください。', @@ -6156,8 +6139,8 @@ ${reportName} autoPayApprovedReportsLockedSubtitle: '「その他の機能」に移動してワークフローを有効にし、その後「支払い」を追加してこの機能を有効化してください。', autoPayReportsUnderTitle: '以下のレポートを自動支払い', autoPayReportsUnderDescription: 'この金額以下の、要件を完全に満たした経費精算書は自動的に支払われます。', - unlockFeatureEnableWorkflowsSubtitle: ({featureName}: FeatureNameParams) => `${featureName} を追加して、この機能を有効にしてください。`, - enableFeatureSubtitle: ({featureName, moreFeaturesLink}: FeatureNameParams) => + unlockFeatureEnableWorkflowsSubtitle: (featureName: string) => `${featureName} を追加して、この機能を有効にしてください。`, + enableFeatureSubtitle: (featureName: string, moreFeaturesLink?: string) => `[その他の機能](${moreFeaturesLink})に移動し、${featureName} を有効にしてこの機能をアンロックしてください。`, }, categoryRules: { @@ -6425,7 +6408,7 @@ ${reportName} other: `${joinedNames} の承認ワークフローと経費チャットからあなたを削除しました。以前に提出されたレポートは、引き続き受信トレイで承認可能な状態で残ります。`, }; }, - demotedFromWorkspace: ({policyName, oldRole}: DemotedFromWorkspaceParams) => + demotedFromWorkspace: (policyName: string, oldRole: string) => `${policyName} 内でのあなたのロールが、${oldRole} からユーザーに更新されました。あなた自身のものを除き、すべての精算者の経費チャットから削除されています。`, updatedWorkspaceCurrencyAction: ({oldCurrency, newCurrency}: UpdatedPolicyCurrencyParams) => `デフォルト通貨を${newCurrency}(以前は${oldCurrency})に更新しました`, updatedWorkspaceFrequencyAction: ({oldFrequency, newFrequency}: UpdatedPolicyFrequencyParams) => `自動レポート頻度を「${newFrequency}」(以前は「${oldFrequency}」)に更新しました`, @@ -6920,7 +6903,7 @@ ${reportName} changeType: ({oldType, newType}: ChangeTypeParams) => `${oldType} から ${newType} に変更しました`, exportedToCSV: `CSV にエクスポート済み`, exportedToIntegration: { - automatic: ({label}: ExportedToIntegrationParams) => { + automatic: (label: string) => { const labelTranslations: Record = { [CONST.REPORT.EXPORT_OPTION_LABELS.EXPENSE_LEVEL_EXPORT]: translations.export.expenseLevelExport, [CONST.REPORT.EXPORT_OPTION_LABELS.REPORT_LEVEL_EXPORT]: translations.export.reportLevelExport, @@ -6928,13 +6911,13 @@ ${reportName} const translatedLabel = labelTranslations[label] || label; return `${translatedLabel} にエクスポートしました`; }, - automaticActionOne: ({label}: ExportedToIntegrationParams) => `${label} にエクスポート済み(経由)`, + automaticActionOne: (label: string) => `${label} にエクスポート済み(経由)`, automaticActionTwo: '会計設定', - manual: ({label}: ExportedToIntegrationParams) => `このレポートを、${label} へ手動エクスポート済みとしてマークしました。`, + manual: (label: string) => `このレポートを、${label} へ手動エクスポート済みとしてマークしました。`, automaticActionThree: 'のレコードを正常に作成しました', reimburseableLink: '立替経費', nonReimbursableLink: '会社カード経費', - pending: ({label}: ExportedToIntegrationParams) => `このレポートの${label}へのエクスポートを開始しました…`, + pending: (label: string) => `このレポートの${label}へのエクスポートを開始しました…`, }, integrationsMessage: ({errorMessage, label, linkText, linkURL}: IntegrationSyncFailedParams) => `このレポートを${label}にエクスポートできませんでした("${errorMessage}${linkText ? `${linkText}` : ''}")`, @@ -7447,10 +7430,9 @@ ${reportName} }, earlyDiscount: { claimOffer: 'オファーを獲得', - subscriptionPageTitle: ({discountType}: EarlyDiscountTitleParams) => - `初年度が${discountType}%オフ! 支払いカードを追加して、年額サブスクリプションを開始しましょう。`, - onboardingChatTitle: ({discountType}: EarlyDiscountTitleParams) => `期間限定オファー:初年度が${discountType}%オフ!`, - subtitle: ({days, hours, minutes, seconds}: EarlyDiscountSubtitleParams) => `${days > 0 ? `${days}日 :` : ''}${hours}時間 : ${minutes}分 : ${seconds}秒以内に申請`, + subscriptionPageTitle: (discountType: number) => `初年度が${discountType}%オフ! 支払いカードを追加して、年額サブスクリプションを開始しましょう。`, + onboardingChatTitle: (discountType: number) => `期間限定オファー:初年度が${discountType}%オフ!`, + subtitle: (days: number, hours: number, minutes: number, seconds: number) => `${days > 0 ? `${days}日 :` : ''}${hours}時間 : ${minutes}分 : ${seconds}秒以内に申請`, }, }, cardSection: { @@ -7655,8 +7637,8 @@ ${reportName} removeCopilotConfirmation: 'このコパイロットを削除してもよろしいですか?', changeAccessLevel: 'アクセス権限レベルを変更', makeSureItIsYou: 'あなた本人であることを確認しましょう', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `コパイロットを追加するために、${contactMethod} に送信されたマジックコードを入力してください。1~2分以内に届くはずです。`, - enterMagicCodeUpdate: ({contactMethod}: EnterMagicCodeParams) => `${contactMethod} に送信されたマジックコードを入力して、あなたのコパイロットを更新してください。`, + enterMagicCode: (contactMethod: string) => `コパイロットを追加するために、${contactMethod} に送信されたマジックコードを入力してください。1~2分以内に届くはずです。`, + enterMagicCodeUpdate: (contactMethod: string) => `${contactMethod} に送信されたマジックコードを入力して、あなたのコパイロットを更新してください。`, notAllowed: 'ちょっと待ってください…', noAccessMessage: dedent(` このページには、コパイロットとしてアクセスできません。申し訳ありません。 @@ -7823,7 +7805,7 @@ ${reportName} readyForTheRealThing: '本番の準備はできましたか?', getStarted: 'はじめる', }, - employeeInviteMessage: ({name}: EmployeeInviteMessageParams) => `# ${name} があなたを Expensify のお試しに招待しました + employeeInviteMessage: (name: string) => `# ${name} があなたを Expensify のお試しに招待しました やあ!経費処理を最速で行える Expensify を、*3 か月無料* でお試しできるようにしておいたよ。 Expensify の使い方をお見せするための*テストレシート*がこちらです。`, diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 396f75b963bde..cc49ac81ef1a5 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -55,7 +55,6 @@ import type { CreateExpensesParams, CurrencyCodeParams, CurrencyInputDisabledTextParams, - CustomersOrJobsLabelParams, DateParams, DateShouldBeAfterParams, DateShouldBeBeforeParams, @@ -65,28 +64,13 @@ import type { DelegatorParams, DeleteActionParams, DeleteConfirmationParams, - DeleteTransactionParams, - DemotedFromWorkspaceParams, DependentMultiLevelTagsSubtitleParams, - DidSplitAmountMessageParams, DisconnectYourBankAccountParams, DomainPermissionInfoRestrictionParams, DuplicateTransactionParams, - EarlyDiscountSubtitleParams, - EarlyDiscountTitleParams, EditActionParams, - EditDestinationSubtitleParams, - ElectronicFundsParams, - EmployeeInviteMessageParams, - EmptyCategoriesSubtitleWithAccountingParams, - EmptyTagsSubtitleWithAccountingParams, - EnableContinuousReconciliationParams, - EnterMagicCodeParams, - ErrorODIntegrationParams, ExportAgainModalDescriptionParams, - ExportedToIntegrationParams, ExportIntegrationSelectedParams, - FeatureNameParams, FileLimitParams, FileTypeParams, FiltersAmountBetweenParams, @@ -174,7 +158,6 @@ import type { ReportPolicyNameParams, RequestAmountParams, RequestCountParams, - RequestedAmountMessageParams, RequiredFieldParams, ResolutionConstraintsParams, ReviewParams, @@ -1198,7 +1181,7 @@ const translations: TranslationDeepObject = { posted: 'Geplaatst', deleteReceipt: 'Bon verwijderen', findExpense: 'Uitgave zoeken', - deletedTransaction: ({amount, merchant}: DeleteTransactionParams) => `heeft een uitgave verwijderd (${amount} voor ${merchant})`, + deletedTransaction: (amount: string, merchant: string) => `heeft een uitgave verwijderd (${amount} voor ${merchant})`, movedFromReport: ({reportName}: MovedFromReportParams) => `heeft een uitgave verplaatst${reportName ? `van ${reportName}` : ''}`, movedTransactionTo: ({reportUrl, reportName}: MovedTransactionParams) => `heeft deze uitgave verplaatst${reportName ? `naar ${reportName}` : ''}`, movedTransactionFrom: ({reportUrl, reportName}: MovedTransactionParams) => `heeft deze uitgave verplaatst${reportName ? `van ${reportName}` : ''}`, @@ -1308,12 +1291,12 @@ const translations: TranslationDeepObject = { finished: 'Voltooid', flip: 'Omdraaien', sendInvoice: ({amount}: RequestAmountParams) => `${amount} factuur verzenden`, - expenseAmount: ({formattedAmount, comment}: RequestedAmountMessageParams) => `${formattedAmount}${comment ? `voor ${comment}` : ''}`, + expenseAmount: (formattedAmount: string, comment?: string) => `${formattedAmount}${comment ? `voor ${comment}` : ''}`, submitted: ({memo}: SubmittedWithMemoParams) => `ingediend${memo ? `, met de melding ${memo}` : ''}`, automaticallySubmitted: `ingediend via indiening uitstellen`, - trackedAmount: ({formattedAmount, comment}: RequestedAmountMessageParams) => `bijhouden ${formattedAmount}${comment ? `voor ${comment}` : ''}`, + trackedAmount: (formattedAmount: string, comment?: string) => `bijhouden ${formattedAmount}${comment ? `voor ${comment}` : ''}`, splitAmount: ({amount}: SplitAmountParams) => `${amount} splits`, - didSplitAmount: ({formattedAmount, comment}: DidSplitAmountMessageParams) => `splitsen ${formattedAmount}${comment ? `voor ${comment}` : ''}`, + didSplitAmount: (formattedAmount: string, comment: string) => `splitsen ${formattedAmount}${comment ? `voor ${comment}` : ''}`, yourSplit: ({amount}: UserSplitParams) => `Jouw deel ${amount}`, payerOwesAmount: ({payer, amount, comment}: PayerOwesAmountParams) => `${payer} is ${amount}${comment ? `voor ${comment}` : ''} verschuldigd`, payerOwes: ({payer}: PayerOwesParams) => `${payer} is verschuldigd:`, @@ -1780,7 +1763,7 @@ const translations: TranslationDeepObject = { `Voeg meer manieren toe om in te loggen en bonnen naar Expensify te sturen.

Voeg een e-mailadres toe om bonnen door te sturen naar ${email} of voeg een telefoonnummer toe om bonnen te sms’en naar 47777 (alleen Amerikaanse telefoonnummers).`, pleaseVerify: 'Verifieer deze contactmethode.', getInTouch: 'We gebruiken deze methode om contact met je op te nemen.', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Voer de magische code in die is verzonden naar ${contactMethod}. Deze zou binnen een of twee minuten moeten aankomen.`, + enterMagicCode: (contactMethod: string) => `Voer de magische code in die is verzonden naar ${contactMethod}. Deze zou binnen een of twee minuten moeten aankomen.`, setAsDefault: 'Instellen als standaard', yourDefaultContactMethod: 'Dit is je huidige standaardcontactmethode. Voordat je deze kunt verwijderen, moet je een andere contactmethode kiezen en op “Als standaard instellen” klikken.', @@ -2224,7 +2207,7 @@ const translations: TranslationDeepObject = { cardAddedToWallet: ({platform}: {platform: 'Google' | 'Apple'}) => `Toegevoegd aan ${platform}-wallet`, cardDetailsLoadingFailure: 'Er is een fout opgetreden bij het laden van de kaartgegevens. Controleer je internetverbinding en probeer het opnieuw.', validateCardTitle: 'Laten we zeker weten dat jij het bent', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => + enterMagicCode: (contactMethod: string) => `Voer de magische code in die is verzonden naar ${contactMethod} om je kaartgegevens te bekijken. Deze zou binnen een of twee minuten moeten aankomen.`, missingPrivateDetails: ({missingDetailsLink}: {missingDetailsLink: string}) => `Voeg alsjeblieft je persoonlijke gegevens toe en probeer het daarna opnieuw.`, @@ -3240,7 +3223,7 @@ ${ sendingFundsDetails: 'Er worden geen kosten in rekening gebracht om geld naar een andere rekeninghouder te sturen met je saldo, bankrekening of betaalpas.', electronicFundsStandardDetails: 'Er zijn geen kosten verbonden aan het overboeken van geld van je Expensify Wallet naar je bankrekening met de standaardoptie. Deze overboeking wordt meestal binnen 1–3 werkdagen voltooid.', - electronicFundsInstantDetails: ({percentage, amount}: ElectronicFundsParams) => + electronicFundsInstantDetails: (percentage: string, amount: string) => 'Er zijn kosten verbonden aan het overmaken van geld van je Expensify Wallet naar je gekoppelde debitcard met de optie voor directe overboeking. Deze overboeking wordt meestal binnen enkele minuten voltooid.' + `De vergoeding is ${percentage}% van het over te maken bedrag (met een minimumvergoeding van ${amount}).`, fdicInsuranceBancorp: ({amount}: TermsParams) => @@ -3957,8 +3940,8 @@ ${ importPerDiemRates: 'Dagvergoedingsbedragen importeren', editPerDiemRate: 'Dagvergoedingstarief bewerken', editPerDiemRates: 'Vergoedingen voor dagverblijf bewerken', - editDestinationSubtitle: ({destination}: EditDestinationSubtitleParams) => `Als je deze bestemming bijwerkt, wordt deze gewijzigd voor alle ${destination} daggeldsubtarieven.`, - editCurrencySubtitle: ({destination}: EditDestinationSubtitleParams) => `Het bijwerken van deze valuta zal deze wijzigen voor alle ${destination} per diem-subtarieven.`, + editDestinationSubtitle: (destination: string) => `Als je deze bestemming bijwerkt, wordt deze gewijzigd voor alle ${destination} daggeldsubtarieven.`, + editCurrencySubtitle: (destination: string) => `Het bijwerken van deze valuta zal deze wijzigen voor alle ${destination} per diem-subtarieven.`, }, qbd: { exportOutOfPocketExpensesDescription: 'Stel in hoe uit eigen zak betaalde onkosten worden geëxporteerd naar QuickBooks Desktop.', @@ -4566,7 +4549,7 @@ ${ importJobs: 'Projecten importeren', customers: 'klanten', jobs: 'projecten', - label: ({importFields, importType}: CustomersOrJobsLabelParams) => `${importFields.join('en')}, ${importType}`, + label: (importFields: string[], importType: string) => `${importFields.join('en')}, ${importType}`, }, importTaxDescription: 'Belastinggroepen uit NetSuite importeren.', importCustomFields: { @@ -4975,7 +4958,7 @@ _Voor gedetailleerdere instructies, [bezoek onze helpsite](${CONST.NETSUITE_IMPO emptyCategories: { title: 'Je hebt nog geen categorieën aangemaakt', subtitle: 'Voeg een categorie toe om je uitgaven te organiseren.', - subtitleWithAccounting: ({accountingPageURL}: EmptyCategoriesSubtitleWithAccountingParams) => + subtitleWithAccounting: (accountingPageURL: string) => `Je categorieën worden momenteel geïmporteerd vanuit een boekhoudkoppeling. Ga naar Boekhouding om wijzigingen aan te brengen.`, }, updateFailureMessage: 'Er is een fout opgetreden bij het bijwerken van de categorie, probeer het opnieuw', @@ -5262,7 +5245,7 @@ _Voor gedetailleerdere instructies, [bezoek onze helpsite](${CONST.NETSUITE_IMPO // We need to remove the subtitle and use the below one when we remove the canUseMultiLevelTags beta subtitle: 'Voeg een tag toe om projecten, locaties, afdelingen en meer bij te houden.', subtitleHTML: `Importeer een spreadsheet om tags toe te voegen voor het bijhouden van projecten, locaties, afdelingen en meer. Meer informatie over het formatteren van tagbestanden.`, - subtitleWithAccounting: ({accountingPageURL}: EmptyTagsSubtitleWithAccountingParams) => + subtitleWithAccounting: (accountingPageURL: string) => `Je tags worden momenteel geïmporteerd vanuit een boekhoudkoppeling. Ga naar Boekhouding om wijzigingen aan te brengen.`, }, deleteTag: 'Tag verwijderen', @@ -5522,7 +5505,7 @@ _Voor gedetailleerdere instructies, [bezoek onze helpsite](${CONST.NETSUITE_IMPO } } }, - errorODIntegration: ({oldDotPolicyConnectionsURL}: ErrorODIntegrationParams) => + errorODIntegration: (oldDotPolicyConnectionsURL: string) => `Er is een fout opgetreden met een koppeling die is ingesteld in Expensify Classic. [Ga naar Expensify Classic om dit probleem op te lossen.](${oldDotPolicyConnectionsURL})`, goToODToSettings: 'Ga naar Expensify Classic om je instellingen te beheren.', setup: 'Verbinden', @@ -5730,7 +5713,7 @@ _Voor gedetailleerdere instructies, [bezoek onze helpsite](${CONST.NETSUITE_IMPO continuousReconciliation: 'Doorlopende afstemming', saveHoursOnReconciliation: 'Bespaar uren aan reconciliatie in elke boekhoudperiode door Expensify automatisch Expensify Card-afschriften en -verrekeningen voor je te laten afstemmen.', - enableContinuousReconciliation: ({accountingAdvancedSettingsLink, connectionName}: EnableContinuousReconciliationParams) => + enableContinuousReconciliation: (accountingAdvancedSettingsLink: string, connectionName: string) => `Om Continue Reconciliëren in te schakelen, schakel je auto-sync in voor ${connectionName}.`, chooseReconciliationAccount: { chooseBankAccount: 'Kies de bankrekening waarmee je Expensify Card-betalingen worden afgeletterd.', @@ -6181,8 +6164,8 @@ Vraag verplichte uitgavedetails zoals bonnetjes en beschrijvingen, stel limieten autoPayApprovedReportsLockedSubtitle: 'Ga naar Meer functies en schakel Workflows in, voeg vervolgens Betalingen toe om deze functie te ontgrendelen.', autoPayReportsUnderTitle: 'Rapporten automatisch betalen onder', autoPayReportsUnderDescription: 'Volledig conforme onkostendeclaraties onder dit bedrag worden automatisch betaald.', - unlockFeatureEnableWorkflowsSubtitle: ({featureName}: FeatureNameParams) => `Voeg ${featureName} toe om deze functie te ontgrendelen.`, - enableFeatureSubtitle: ({featureName, moreFeaturesLink}: FeatureNameParams) => + unlockFeatureEnableWorkflowsSubtitle: (featureName: string) => `Voeg ${featureName} toe om deze functie te ontgrendelen.`, + enableFeatureSubtitle: (featureName: string, moreFeaturesLink?: string) => `Ga naar [meer functies](${moreFeaturesLink}) en schakel ${featureName} in om deze functie te ontgrendelen.`, }, categoryRules: { @@ -6458,7 +6441,7 @@ Vraag verplichte uitgavedetails zoals bonnetjes en beschrijvingen, stel limieten other: `heeft je verwijderd uit de goedkeuringsworkflows en onkostenchats van ${joinedNames}. Eerder ingediende rapporten blijven beschikbaar voor goedkeuring in je Inbox.`, }; }, - demotedFromWorkspace: ({policyName, oldRole}: DemotedFromWorkspaceParams) => + demotedFromWorkspace: (policyName: string, oldRole: string) => `heeft je rol in ${policyName} gewijzigd van ${oldRole} naar gebruiker. Je bent verwijderd uit alle onkostenchats van indieners, behalve uit je eigen.`, updatedWorkspaceCurrencyAction: ({oldCurrency, newCurrency}: UpdatedPolicyCurrencyParams) => `standaardvaluta bijgewerkt naar ${newCurrency} (voorheen ${oldCurrency})`, updatedWorkspaceFrequencyAction: ({oldFrequency, newFrequency}: UpdatedPolicyFrequencyParams) => @@ -6957,7 +6940,7 @@ Vraag verplichte uitgavedetails zoals bonnetjes en beschrijvingen, stel limieten changeType: ({oldType, newType}: ChangeTypeParams) => `type gewijzigd van ${oldType} naar ${newType}`, exportedToCSV: `geëxporteerd naar CSV`, exportedToIntegration: { - automatic: ({label}: ExportedToIntegrationParams) => { + automatic: (label: string) => { const labelTranslations: Record = { [CONST.REPORT.EXPORT_OPTION_LABELS.EXPENSE_LEVEL_EXPORT]: translations.export.expenseLevelExport, [CONST.REPORT.EXPORT_OPTION_LABELS.REPORT_LEVEL_EXPORT]: translations.export.reportLevelExport, @@ -6965,13 +6948,13 @@ Vraag verplichte uitgavedetails zoals bonnetjes en beschrijvingen, stel limieten const translatedLabel = labelTranslations[label] || label; return `geëxporteerd naar ${translatedLabel}`; }, - automaticActionOne: ({label}: ExportedToIntegrationParams) => `geëxporteerd naar ${label} via`, + automaticActionOne: (label: string) => `geëxporteerd naar ${label} via`, automaticActionTwo: 'boekhoudinstellingen', - manual: ({label}: ExportedToIntegrationParams) => `heeft dit rapport gemarkeerd als handmatig geëxporteerd naar ${label}.`, + manual: (label: string) => `heeft dit rapport gemarkeerd als handmatig geëxporteerd naar ${label}.`, automaticActionThree: 'en succesvol een record gemaakt voor', reimburseableLink: 'kosten uit eigen zak', nonReimbursableLink: 'bedrijfskaartuitgaven', - pending: ({label}: ExportedToIntegrationParams) => `bezig met het exporteren van dit rapport naar ${label}...`, + pending: (label: string) => `bezig met het exporteren van dit rapport naar ${label}...`, }, integrationsMessage: ({errorMessage, label, linkText, linkURL}: IntegrationSyncFailedParams) => `het is niet gelukt om dit rapport te exporteren naar ${label} ("${errorMessage}${linkText ? `${linkText}` : ''}")`, @@ -7486,10 +7469,10 @@ Vraag verplichte uitgavedetails zoals bonnetjes en beschrijvingen, stel limieten }, earlyDiscount: { claimOffer: 'Aanbieding verzilveren', - subscriptionPageTitle: ({discountType}: EarlyDiscountTitleParams) => + subscriptionPageTitle: (discountType: number) => `${discountType}% korting op je eerste jaar! Voeg gewoon een betaalkaart toe en start een jaarlijks abonnement.`, - onboardingChatTitle: ({discountType}: EarlyDiscountTitleParams) => `Aanbieding voor beperkte tijd: ${discountType}% korting op je eerste jaar!`, - subtitle: ({days, hours, minutes, seconds}: EarlyDiscountSubtitleParams) => `Declareren binnen ${days > 0 ? `${days}d :` : ''}${hours}u : ${minutes}m : ${seconds}s`, + onboardingChatTitle: (discountType: number) => `Aanbieding voor beperkte tijd: ${discountType}% korting op je eerste jaar!`, + subtitle: (days: number, hours: number, minutes: number, seconds: number) => `Declareren binnen ${days > 0 ? `${days}d :` : ''}${hours}u : ${minutes}m : ${seconds}s`, }, }, cardSection: { @@ -7690,9 +7673,9 @@ Vraag verplichte uitgavedetails zoals bonnetjes en beschrijvingen, stel limieten removeCopilotConfirmation: 'Weet je zeker dat je deze copilot wilt verwijderen?', changeAccessLevel: 'Toegangsniveau wijzigen', makeSureItIsYou: 'Laten we zeker weten dat jij het bent', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => + enterMagicCode: (contactMethod: string) => `Voer de magische code in die naar ${contactMethod} is gestuurd om een copilot toe te voegen. Deze zou binnen een minuut of twee moeten aankomen.`, - enterMagicCodeUpdate: ({contactMethod}: EnterMagicCodeParams) => `Voer de magische code in die naar ${contactMethod} is gestuurd om je copilot bij te werken.`, + enterMagicCodeUpdate: (contactMethod: string) => `Voer de magische code in die naar ${contactMethod} is gestuurd om je copilot bij te werken.`, notAllowed: 'Niet zo snel...', noAccessMessage: dedent(` Als copiloot heb je geen toegang tot @@ -7860,7 +7843,7 @@ Vraag verplichte uitgavedetails zoals bonnetjes en beschrijvingen, stel limieten readyForTheRealThing: 'Klaar voor het echte werk?', getStarted: 'Aan de slag', }, - employeeInviteMessage: ({name}: EmployeeInviteMessageParams) => `# ${name} heeft je uitgenodigd om Expensify uit te proberen + employeeInviteMessage: (name: string) => `# ${name} heeft je uitgenodigd om Expensify uit te proberen Hoi! Ik heb zojuist *3 maanden gratis* geregeld zodat we Expensify kunnen uitproberen, de snelste manier om onkosten te doen. Hier is een *testbon* om je te laten zien hoe het werkt:`, diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 9646789eeb388..ef1045d792b71 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -55,7 +55,6 @@ import type { CreateExpensesParams, CurrencyCodeParams, CurrencyInputDisabledTextParams, - CustomersOrJobsLabelParams, DateParams, DateShouldBeAfterParams, DateShouldBeBeforeParams, @@ -65,28 +64,13 @@ import type { DelegatorParams, DeleteActionParams, DeleteConfirmationParams, - DeleteTransactionParams, - DemotedFromWorkspaceParams, DependentMultiLevelTagsSubtitleParams, - DidSplitAmountMessageParams, DisconnectYourBankAccountParams, DomainPermissionInfoRestrictionParams, DuplicateTransactionParams, - EarlyDiscountSubtitleParams, - EarlyDiscountTitleParams, EditActionParams, - EditDestinationSubtitleParams, - ElectronicFundsParams, - EmployeeInviteMessageParams, - EmptyCategoriesSubtitleWithAccountingParams, - EmptyTagsSubtitleWithAccountingParams, - EnableContinuousReconciliationParams, - EnterMagicCodeParams, - ErrorODIntegrationParams, ExportAgainModalDescriptionParams, - ExportedToIntegrationParams, ExportIntegrationSelectedParams, - FeatureNameParams, FileLimitParams, FileTypeParams, FiltersAmountBetweenParams, @@ -174,7 +158,6 @@ import type { ReportPolicyNameParams, RequestAmountParams, RequestCountParams, - RequestedAmountMessageParams, RequiredFieldParams, ResolutionConstraintsParams, ReviewParams, @@ -1198,7 +1181,7 @@ const translations: TranslationDeepObject = { posted: 'Opublikowano', deleteReceipt: 'Usuń paragon', findExpense: 'Znajdź wydatek', - deletedTransaction: ({amount, merchant}: DeleteTransactionParams) => `usunął wydatek (${amount} dla ${merchant})`, + deletedTransaction: (amount: string, merchant: string) => `usunął wydatek (${amount} dla ${merchant})`, movedFromReport: ({reportName}: MovedFromReportParams) => `przeniesiono wydatek${reportName ? `z ${reportName}` : ''}`, movedTransactionTo: ({reportUrl, reportName}: MovedTransactionParams) => `przeniósł ten wydatek${reportName ? `do ${reportName}` : ''}`, movedTransactionFrom: ({reportUrl, reportName}: MovedTransactionParams) => `przeniósł ten wydatek${reportName ? `z ${reportName}` : ''}`, @@ -1308,12 +1291,12 @@ const translations: TranslationDeepObject = { finished: 'Zakończono', flip: 'Odwróć', sendInvoice: ({amount}: RequestAmountParams) => `Wyślij fakturę na kwotę ${amount}`, - expenseAmount: ({formattedAmount, comment}: RequestedAmountMessageParams) => `${formattedAmount}${comment ? `dla ${comment}` : ''}`, + expenseAmount: (formattedAmount: string, comment?: string) => `${formattedAmount}${comment ? `dla ${comment}` : ''}`, submitted: ({memo}: SubmittedWithMemoParams) => `wysłano${memo ? `, mówiąc ${memo}` : ''}`, automaticallySubmitted: `wysłane przez opóźnij przesyłanie`, - trackedAmount: ({formattedAmount, comment}: RequestedAmountMessageParams) => `śledzenie ${formattedAmount}${comment ? `dla ${comment}` : ''}`, + trackedAmount: (formattedAmount: string, comment?: string) => `śledzenie ${formattedAmount}${comment ? `dla ${comment}` : ''}`, splitAmount: ({amount}: SplitAmountParams) => `podziel ${amount}`, - didSplitAmount: ({formattedAmount, comment}: DidSplitAmountMessageParams) => `podziel ${formattedAmount}${comment ? `dla ${comment}` : ''}`, + didSplitAmount: (formattedAmount: string, comment: string) => `podziel ${formattedAmount}${comment ? `dla ${comment}` : ''}`, yourSplit: ({amount}: UserSplitParams) => `Twój podział ${amount}`, payerOwesAmount: ({payer, amount, comment}: PayerOwesAmountParams) => `${payer} jest winien ${amount}${comment ? `dla ${comment}` : ''}`, payerOwes: ({payer}: PayerOwesParams) => `${payer} jest winien:`, @@ -1779,7 +1762,7 @@ const translations: TranslationDeepObject = { `Dodaj więcej sposobów logowania i wysyłania paragonów do Expensify.

Dodaj adres e-mail, aby przekazywać paragony na ${email}, lub dodaj numer telefonu, aby wysyłać paragony SMS-em na numer 47777 (tylko numery z USA).`, pleaseVerify: 'Zweryfikuj tę metodę kontaktu.', getInTouch: 'Będziemy używać tej metody, aby się z Tobą kontaktować.', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Wprowadź magiczny kod wysłany na ${contactMethod}. Powinien dotrzeć w ciągu minuty lub dwóch.`, + enterMagicCode: (contactMethod: string) => `Wprowadź magiczny kod wysłany na ${contactMethod}. Powinien dotrzeć w ciągu minuty lub dwóch.`, setAsDefault: 'Ustaw jako domyślne', yourDefaultContactMethod: 'To jest Twoja domyślna metoda kontaktu. Zanim będziesz mógł ją usunąć, musisz wybrać inną metodę kontaktu i kliknąć „Ustaw jako domyślną”.', removeContactMethod: 'Usuń metodę kontaktu', @@ -2222,8 +2205,7 @@ const translations: TranslationDeepObject = { cardAddedToWallet: ({platform}: {platform: 'Google' | 'Apple'}) => `Dodano do portfela ${platform}`, cardDetailsLoadingFailure: 'Wystąpił błąd podczas ładowania szczegółów karty. Sprawdź swoje połączenie internetowe i spróbuj ponownie.', validateCardTitle: 'Upewnijmy się, że to naprawdę Ty', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => - `Wprowadź magiczny kod wysłany na ${contactMethod}, aby wyświetlić szczegóły karty. Powinien dotrzeć w ciągu minuty lub dwóch.`, + enterMagicCode: (contactMethod: string) => `Wprowadź magiczny kod wysłany na ${contactMethod}, aby wyświetlić szczegóły karty. Powinien dotrzeć w ciągu minuty lub dwóch.`, missingPrivateDetails: ({missingDetailsLink}: {missingDetailsLink: string}) => `Prosimy dodaj swoje dane osobowe, a następnie spróbuj ponownie.`, unexpectedError: 'Wystąpił błąd podczas pobierania szczegółów Twojej karty Expensify. Spróbuj ponownie.', cardFraudAlert: { @@ -3237,7 +3219,7 @@ ${ sendingFundsDetails: 'Wysyłanie środków do innego posiadacza konta za pomocą salda, konta bankowego lub karty debetowej jest bez opłat.', electronicFundsStandardDetails: 'Przy użyciu standardowej opcji nie jest pobierana żadna opłata za przelanie środków z Twojego portfela Expensify na konto bankowe. Taki przelew zazwyczaj zostaje zrealizowany w ciągu 1–3 dni roboczych.', - electronicFundsInstantDetails: ({percentage, amount}: ElectronicFundsParams) => + electronicFundsInstantDetails: (percentage: string, amount: string) => 'Przy korzystaniu z opcji natychmiastowego przelewu z portfela Expensify na powiązaną kartę debetową pobierana jest opłata. Ten przelew zazwyczaj zostaje zrealizowany w ciągu kilku minut.' + `Opłata wynosi ${percentage}% kwoty przelewu (z minimalną opłatą ${amount}).`, fdicInsuranceBancorp: ({amount}: TermsParams) => @@ -3955,8 +3937,8 @@ ${ importPerDiemRates: 'Importuj stawki diet', editPerDiemRate: 'Edytuj stawkę ryczałtową', editPerDiemRates: 'Edytuj stawki diet', - editDestinationSubtitle: ({destination}: EditDestinationSubtitleParams) => `Zaktualizowanie tego miejsca docelowego zmieni je dla wszystkich podstawek diet ${destination}.`, - editCurrencySubtitle: ({destination}: EditDestinationSubtitleParams) => `Aktualizacja tej waluty zmieni ją dla wszystkich stawek dziennych ${destination}.`, + editDestinationSubtitle: (destination: string) => `Zaktualizowanie tego miejsca docelowego zmieni je dla wszystkich podstawek diet ${destination}.`, + editCurrencySubtitle: (destination: string) => `Aktualizacja tej waluty zmieni ją dla wszystkich stawek dziennych ${destination}.`, }, qbd: { exportOutOfPocketExpensesDescription: 'Ustaw sposób eksportu wydatków z własnej kieszeni do QuickBooks Desktop.', @@ -4560,7 +4542,7 @@ ${ importJobs: 'Importuj projekty', customers: 'klienci', jobs: 'projekty', - label: ({importFields, importType}: CustomersOrJobsLabelParams) => `${importFields.join('i')}, ${importType}`, + label: (importFields: string[], importType: string) => `${importFields.join('i')}, ${importType}`, }, importTaxDescription: 'Importuj grupy podatkowe z NetSuite.', importCustomFields: { @@ -4966,7 +4948,7 @@ _Aby uzyskać bardziej szczegółowe instrukcje, [odwiedź naszą stronę pomocy emptyCategories: { title: 'Nie utworzyłeś żadnych kategorii', subtitle: 'Dodaj kategorię, aby uporządkować swoje wydatki.', - subtitleWithAccounting: ({accountingPageURL}: EmptyCategoriesSubtitleWithAccountingParams) => + subtitleWithAccounting: (accountingPageURL: string) => `Twoje kategorie są obecnie importowane z połączenia księgowego. Przejdź do strony księgowości, aby wprowadzić zmiany.`, }, updateFailureMessage: 'Wystąpił błąd podczas aktualizowania kategorii, spróbuj ponownie', @@ -5254,7 +5236,7 @@ _Aby uzyskać bardziej szczegółowe instrukcje, [odwiedź naszą stronę pomocy // We need to remove the subtitle and use the below one when we remove the canUseMultiLevelTags beta subtitle: 'Dodaj znacznik, aby śledzić projekty, lokalizacje, działy i nie tylko.', subtitleHTML: `Zaimportuj arkusz kalkulacyjny, aby dodać tagi do śledzenia projektów, lokalizacji, działów i nie tylko. Dowiedz się więcej o formatowaniu plików tagów.`, - subtitleWithAccounting: ({accountingPageURL}: EmptyTagsSubtitleWithAccountingParams) => + subtitleWithAccounting: (accountingPageURL: string) => `Twoje tagi są obecnie importowane z połączenia księgowego. Przejdź do księgowości, aby wprowadzić zmiany.`, }, deleteTag: 'Usuń tag', @@ -5514,7 +5496,7 @@ _Aby uzyskać bardziej szczegółowe instrukcje, [odwiedź naszą stronę pomocy } } }, - errorODIntegration: ({oldDotPolicyConnectionsURL}: ErrorODIntegrationParams) => + errorODIntegration: (oldDotPolicyConnectionsURL: string) => `Wystąpił błąd z połączeniem skonfigurowanym w Expensify Classic. [Przejdź do Expensify Classic, aby rozwiązać ten problem.](${oldDotPolicyConnectionsURL})`, goToODToSettings: 'Przejdź do Expensify Classic, aby zarządzać swoimi ustawieniami.', setup: 'Połącz', @@ -5722,7 +5704,7 @@ _Aby uzyskać bardziej szczegółowe instrukcje, [odwiedź naszą stronę pomocy continuousReconciliation: 'Ciągłe uzgadnianie', saveHoursOnReconciliation: 'Oszczędzaj godziny przy uzgadnianiu kont w każdym okresie rozliczeniowym, dzięki temu że Expensify będzie na bieżąco uzgadniać w Twoim imieniu zestawienia i rozliczenia kart Expensify Card.', - enableContinuousReconciliation: ({accountingAdvancedSettingsLink, connectionName}: EnableContinuousReconciliationParams) => + enableContinuousReconciliation: (accountingAdvancedSettingsLink: string, connectionName: string) => `Aby włączyć Ciągłą Rekonsyliację, włącz automatyczną synchronizację dla ${connectionName}.`, chooseReconciliationAccount: { chooseBankAccount: 'Wybierz konto bankowe, z którym będą uzgadniane płatności kartą Expensify.', @@ -6174,8 +6156,8 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i autoPayApprovedReportsLockedSubtitle: 'Przejdź do „Więcej funkcji” i włącz „Workflowy”, a następnie dodaj „Płatności”, aby odblokować tę funkcję.', autoPayReportsUnderTitle: 'Automatycznie opłacaj raporty poniżej', autoPayReportsUnderDescription: 'W pełni zgodne raporty wydatków poniżej tej kwoty zostaną automatycznie opłacone.', - unlockFeatureEnableWorkflowsSubtitle: ({featureName}: FeatureNameParams) => `Dodaj ${featureName}, aby odblokować tę funkcję.`, - enableFeatureSubtitle: ({featureName, moreFeaturesLink}: FeatureNameParams) => + unlockFeatureEnableWorkflowsSubtitle: (featureName: string) => `Dodaj ${featureName}, aby odblokować tę funkcję.`, + enableFeatureSubtitle: (featureName: string, moreFeaturesLink?: string) => `Przejdź do [więcej funkcji](${moreFeaturesLink}) i włącz ${featureName}, aby odblokować tę funkcję.`, }, categoryRules: { @@ -6448,7 +6430,7 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i other: `usunął Cię z przepływów zatwierdzania i czatów wydatków ${joinedNames}. Poprzednio złożone raporty pozostaną dostępne do zatwierdzenia w Twojej Skrzynce odbiorczej.`, }; }, - demotedFromWorkspace: ({policyName, oldRole}: DemotedFromWorkspaceParams) => + demotedFromWorkspace: (policyName: string, oldRole: string) => `zaktualizował(a) Twoją rolę w ${policyName} z ${oldRole} na użytkownika. Zostałeś/Zostałaś usunięty(a) ze wszystkich czatów wydatków przesyłających, z wyjątkiem własnych.`, updatedWorkspaceCurrencyAction: ({oldCurrency, newCurrency}: UpdatedPolicyCurrencyParams) => `zaktualizowano domyślną walutę na ${newCurrency} (wcześniej ${oldCurrency})`, updatedWorkspaceFrequencyAction: ({oldFrequency, newFrequency}: UpdatedPolicyFrequencyParams) => @@ -6947,7 +6929,7 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i changeType: ({oldType, newType}: ChangeTypeParams) => `zmieniono typ z ${oldType} na ${newType}`, exportedToCSV: `wyeksportowano do CSV`, exportedToIntegration: { - automatic: ({label}: ExportedToIntegrationParams) => { + automatic: (label: string) => { const labelTranslations: Record = { [CONST.REPORT.EXPORT_OPTION_LABELS.EXPENSE_LEVEL_EXPORT]: translations.export.expenseLevelExport, [CONST.REPORT.EXPORT_OPTION_LABELS.REPORT_LEVEL_EXPORT]: translations.export.reportLevelExport, @@ -6955,13 +6937,13 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i const translatedLabel = labelTranslations[label] || label; return `wyeksportowano do ${translatedLabel}`; }, - automaticActionOne: ({label}: ExportedToIntegrationParams) => `wyeksportowano do ${label} przez`, + automaticActionOne: (label: string) => `wyeksportowano do ${label} przez`, automaticActionTwo: 'ustawienia księgowości', - manual: ({label}: ExportedToIntegrationParams) => `oznaczył ten raport jako ręcznie wyeksportowany do ${label}.`, + manual: (label: string) => `oznaczył ten raport jako ręcznie wyeksportowany do ${label}.`, automaticActionThree: 'i pomyślnie utworzył rekord dla', reimburseableLink: 'wydatki z własnej kieszeni', nonReimbursableLink: 'wydatki z firmowej karty', - pending: ({label}: ExportedToIntegrationParams) => `rozpoczęto eksportowanie tego raportu do ${label}...`, + pending: (label: string) => `rozpoczęto eksportowanie tego raportu do ${label}...`, }, integrationsMessage: ({errorMessage, label, linkText, linkURL}: IntegrationSyncFailedParams) => `nie udało się wyeksportować tego raportu do ${label} („${errorMessage}${linkText ? `${linkText}` : ''}”)`, @@ -7476,10 +7458,9 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i }, earlyDiscount: { claimOffer: 'Odbierz ofertę', - subscriptionPageTitle: ({discountType}: EarlyDiscountTitleParams) => - `${discountType}% zniżki na pierwszy rok! Po prostu dodaj kartę płatniczą i rozpocznij roczną subskrypcję.`, - onboardingChatTitle: ({discountType}: EarlyDiscountTitleParams) => `Oferta ograniczona czasowo: ${discountType}% zniżki na pierwszy rok!`, - subtitle: ({days, hours, minutes, seconds}: EarlyDiscountSubtitleParams) => `Zgłoś w ciągu ${days > 0 ? `${days}d :` : ''}${hours}g : ${minutes}m : ${seconds}s`, + subscriptionPageTitle: (discountType: number) => `${discountType}% zniżki na pierwszy rok! Po prostu dodaj kartę płatniczą i rozpocznij roczną subskrypcję.`, + onboardingChatTitle: (discountType: number) => `Oferta ograniczona czasowo: ${discountType}% zniżki na pierwszy rok!`, + subtitle: (days: number, hours: number, minutes: number, seconds: number) => `Zgłoś w ciągu ${days > 0 ? `${days}d :` : ''}${hours}g : ${minutes}m : ${seconds}s`, }, }, cardSection: { @@ -7680,8 +7661,8 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i removeCopilotConfirmation: 'Czy na pewno chcesz usunąć tego copilota?', changeAccessLevel: 'Zmień poziom dostępu', makeSureItIsYou: 'Upewnijmy się, że to naprawdę Ty', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Wprowadź magiczny kod wysłany na ${contactMethod}, aby dodać współpilota. Powinien dotrzeć w ciągu minuty lub dwóch.`, - enterMagicCodeUpdate: ({contactMethod}: EnterMagicCodeParams) => `Wprowadź magiczny kod wysłany na ${contactMethod}, aby zaktualizować swojego copilota.`, + enterMagicCode: (contactMethod: string) => `Wprowadź magiczny kod wysłany na ${contactMethod}, aby dodać współpilota. Powinien dotrzeć w ciągu minuty lub dwóch.`, + enterMagicCodeUpdate: (contactMethod: string) => `Wprowadź magiczny kod wysłany na ${contactMethod}, aby zaktualizować swojego copilota.`, notAllowed: 'Nie tak szybko...', noAccessMessage: dedent(` Jako kopilot nie masz dostępu do @@ -7849,7 +7830,7 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i readyForTheRealThing: 'Gotowy na prawdziwą wersję?', getStarted: 'Rozpocznij', }, - employeeInviteMessage: ({name}: EmployeeInviteMessageParams) => `# ${name} zaprosił Cię do wypróbowania Expensify + employeeInviteMessage: (name: string) => `# ${name} zaprosił Cię do wypróbowania Expensify Cześć! Właśnie załatwiłem(-am) nam *3 miesiące za darmo*, żebyś mógł/mogła wypróbować Expensify – najszybszy sposób rozliczania wydatków. Oto *paragon testowy*, który pokazuje, jak to działa:`, diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index ea50d4c11e42f..940d2efc94473 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -55,7 +55,6 @@ import type { CreateExpensesParams, CurrencyCodeParams, CurrencyInputDisabledTextParams, - CustomersOrJobsLabelParams, DateParams, DateShouldBeAfterParams, DateShouldBeBeforeParams, @@ -65,28 +64,13 @@ import type { DelegatorParams, DeleteActionParams, DeleteConfirmationParams, - DeleteTransactionParams, - DemotedFromWorkspaceParams, DependentMultiLevelTagsSubtitleParams, - DidSplitAmountMessageParams, DisconnectYourBankAccountParams, DomainPermissionInfoRestrictionParams, DuplicateTransactionParams, - EarlyDiscountSubtitleParams, - EarlyDiscountTitleParams, EditActionParams, - EditDestinationSubtitleParams, - ElectronicFundsParams, - EmployeeInviteMessageParams, - EmptyCategoriesSubtitleWithAccountingParams, - EmptyTagsSubtitleWithAccountingParams, - EnableContinuousReconciliationParams, - EnterMagicCodeParams, - ErrorODIntegrationParams, ExportAgainModalDescriptionParams, - ExportedToIntegrationParams, ExportIntegrationSelectedParams, - FeatureNameParams, FileLimitParams, FileTypeParams, FiltersAmountBetweenParams, @@ -174,7 +158,6 @@ import type { ReportPolicyNameParams, RequestAmountParams, RequestCountParams, - RequestedAmountMessageParams, RequiredFieldParams, ResolutionConstraintsParams, ReviewParams, @@ -1197,7 +1180,7 @@ const translations: TranslationDeepObject = { posted: 'Lançado', deleteReceipt: 'Excluir recibo', findExpense: 'Encontrar despesa', - deletedTransaction: ({amount, merchant}: DeleteTransactionParams) => `excluiu uma despesa (${amount} para ${merchant})`, + deletedTransaction: (amount: string, merchant: string) => `excluiu uma despesa (${amount} para ${merchant})`, movedFromReport: ({reportName}: MovedFromReportParams) => `moveu uma despesa${reportName ? `de ${reportName}` : ''}`, movedTransactionTo: ({reportUrl, reportName}: MovedTransactionParams) => `moveu esta despesa${reportName ? `para ${reportName}` : ''}`, movedTransactionFrom: ({reportUrl, reportName}: MovedTransactionParams) => `moveu esta despesa${reportName ? `de ${reportName}` : ''}`, @@ -1307,12 +1290,12 @@ const translations: TranslationDeepObject = { finished: 'Concluído', flip: 'Virar', sendInvoice: ({amount}: RequestAmountParams) => `Enviar fatura de ${amount}`, - expenseAmount: ({formattedAmount, comment}: RequestedAmountMessageParams) => `${formattedAmount}${comment ? `para ${comment}` : ''}`, + expenseAmount: (formattedAmount: string, comment?: string) => `${formattedAmount}${comment ? `para ${comment}` : ''}`, submitted: ({memo}: SubmittedWithMemoParams) => `enviado${memo ? `, dizendo ${memo}` : ''}`, automaticallySubmitted: `enviado via atrasar envios`, - trackedAmount: ({formattedAmount, comment}: RequestedAmountMessageParams) => `rastreamento de ${formattedAmount}${comment ? `para ${comment}` : ''}`, + trackedAmount: (formattedAmount: string, comment?: string) => `rastreamento de ${formattedAmount}${comment ? `para ${comment}` : ''}`, splitAmount: ({amount}: SplitAmountParams) => `dividir ${amount}`, - didSplitAmount: ({formattedAmount, comment}: DidSplitAmountMessageParams) => `dividir ${formattedAmount}${comment ? `para ${comment}` : ''}`, + didSplitAmount: (formattedAmount: string, comment: string) => `dividir ${formattedAmount}${comment ? `para ${comment}` : ''}`, yourSplit: ({amount}: UserSplitParams) => `Sua parte ${amount}`, payerOwesAmount: ({payer, amount, comment}: PayerOwesAmountParams) => `${payer} deve ${amount}${comment ? `para ${comment}` : ''}`, payerOwes: ({payer}: PayerOwesParams) => `${payer} deve:`, @@ -1778,7 +1761,7 @@ const translations: TranslationDeepObject = { `Adicione mais maneiras de fazer login e enviar recibos para o Expensify.

Adicione um endereço de e-mail para encaminhar recibos para ${email} ou adicione um número de telefone para enviar recibos por SMS para 47777 (apenas números dos EUA).`, pleaseVerify: 'Verifique este método de contato.', getInTouch: 'Usaremos este método para entrar em contato com você.', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Insira o código mágico enviado para ${contactMethod}. Ele deve chegar em um ou dois minutos.`, + enterMagicCode: (contactMethod: string) => `Insira o código mágico enviado para ${contactMethod}. Ele deve chegar em um ou dois minutos.`, setAsDefault: 'Definir como padrão', yourDefaultContactMethod: 'Este é o seu método de contato padrão atual. Antes de poder excluí-lo, você precisará escolher outro método de contato e clicar em “Definir como padrão”.', removeContactMethod: 'Remover método de contato', @@ -2222,8 +2205,7 @@ const translations: TranslationDeepObject = { cardAddedToWallet: ({platform}: {platform: 'Google' | 'Apple'}) => `Adicionado à carteira ${platform}`, cardDetailsLoadingFailure: 'Ocorreu um erro ao carregar os detalhes do cartão. Verifique sua conexão com a internet e tente novamente.', validateCardTitle: 'Vamos confirmar que é você', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => - `Insira o código mágico enviado para ${contactMethod} para ver os detalhes do seu cartão. Ele deve chegar em um ou dois minutos.`, + enterMagicCode: (contactMethod: string) => `Insira o código mágico enviado para ${contactMethod} para ver os detalhes do seu cartão. Ele deve chegar em um ou dois minutos.`, missingPrivateDetails: ({missingDetailsLink}: {missingDetailsLink: string}) => `Por favor, adicione seus dados pessoais e tente novamente.`, unexpectedError: 'Ocorreu um erro ao tentar obter os detalhes do seu cartão Expensify. Tente novamente.', cardFraudAlert: { @@ -3237,7 +3219,7 @@ ${ sendingFundsDetails: 'Não há tarifa para enviar fundos para outro titular de conta usando seu saldo, conta bancária ou cartão de débito.', electronicFundsStandardDetails: 'Não há taxa para transferir fundos da sua Expensify Wallet para a sua conta bancária usando a opção padrão. Essa transferência geralmente é concluída em 1 a 3 dias úteis.', - electronicFundsInstantDetails: ({percentage, amount}: ElectronicFundsParams) => + electronicFundsInstantDetails: (percentage: string, amount: string) => 'Há uma taxa para transferir fundos da sua Carteira Expensify para o seu cartão de débito vinculado usando a opção de transferência instantânea. Essa transferência geralmente é concluída em alguns minutos.' + `A taxa é de ${percentage}% do valor da transferência (com uma taxa mínima de ${amount}).`, fdicInsuranceBancorp: ({amount}: TermsParams) => @@ -3952,8 +3934,8 @@ ${ importPerDiemRates: 'Importar taxas de diária', editPerDiemRate: 'Editar taxa de diária', editPerDiemRates: 'Editar diárias', - editDestinationSubtitle: ({destination}: EditDestinationSubtitleParams) => `Atualizar este destino irá alterá-lo para todas as subtarifas de diária de ${destination}.`, - editCurrencySubtitle: ({destination}: EditDestinationSubtitleParams) => `Atualizar esta moeda irá alterá-la para todas as subdiárias de ${destination}.`, + editDestinationSubtitle: (destination: string) => `Atualizar este destino irá alterá-lo para todas as subtarifas de diária de ${destination}.`, + editCurrencySubtitle: (destination: string) => `Atualizar esta moeda irá alterá-la para todas as subdiárias de ${destination}.`, }, qbd: { exportOutOfPocketExpensesDescription: 'Defina como as despesas reembolsáveis serão exportadas para o QuickBooks Desktop.', @@ -4558,7 +4540,7 @@ ${ importJobs: 'Importar projetos', customers: 'clientes', jobs: 'projetos', - label: ({importFields, importType}: CustomersOrJobsLabelParams) => `${importFields.join('e')}, ${importType}`, + label: (importFields: string[], importType: string) => `${importFields.join('e')}, ${importType}`, }, importTaxDescription: 'Importar grupos de impostos do NetSuite.', importCustomFields: { @@ -4966,7 +4948,7 @@ _Para instruções mais detalhadas, [visite nosso site de ajuda](${CONST.NETSUIT emptyCategories: { title: 'Você não criou nenhuma categoria', subtitle: 'Adicione uma categoria para organizar seus gastos.', - subtitleWithAccounting: ({accountingPageURL}: EmptyCategoriesSubtitleWithAccountingParams) => + subtitleWithAccounting: (accountingPageURL: string) => `Suas categorias estão sendo importadas de uma conexão de contabilidade. Vá até contabilidade para fazer qualquer alteração.`, }, updateFailureMessage: 'Ocorreu um erro ao atualizar a categoria, tente novamente', @@ -5254,7 +5236,7 @@ _Para instruções mais detalhadas, [visite nosso site de ajuda](${CONST.NETSUIT // We need to remove the subtitle and use the below one when we remove the canUseMultiLevelTags beta subtitle: 'Adicione uma tag para acompanhar projetos, locais, departamentos e muito mais.', subtitleHTML: `Importe uma planilha para adicionar tags para rastrear projetos, locais, departamentos e muito mais. Saiba mais sobre a formatação de arquivos de tags.`, - subtitleWithAccounting: ({accountingPageURL}: EmptyTagsSubtitleWithAccountingParams) => + subtitleWithAccounting: (accountingPageURL: string) => `Suas tags estão sendo importadas de uma conexão contábil. Vá até contabilidade para fazer qualquer alteração.`, }, deleteTag: 'Excluir etiqueta', @@ -5515,7 +5497,7 @@ _Para instruções mais detalhadas, [visite nosso site de ajuda](${CONST.NETSUIT } } }, - errorODIntegration: ({oldDotPolicyConnectionsURL}: ErrorODIntegrationParams) => + errorODIntegration: (oldDotPolicyConnectionsURL: string) => `Há um erro em uma conexão configurada no Expensify Classic. [Vá para o Expensify Classic para corrigir esse problema.](${oldDotPolicyConnectionsURL})`, goToODToSettings: 'Vá para o Expensify Classic para gerenciar suas configurações.', setup: 'Conectar', @@ -5723,7 +5705,7 @@ _Para instruções mais detalhadas, [visite nosso site de ajuda](${CONST.NETSUIT continuousReconciliation: 'Conciliação Contínua', saveHoursOnReconciliation: 'Economize horas em cada período contábil de conciliação fazendo com que a Expensify reconcilie continuamente, em seu nome, os extratos e liquidações do Expensify Card.', - enableContinuousReconciliation: ({accountingAdvancedSettingsLink, connectionName}: EnableContinuousReconciliationParams) => + enableContinuousReconciliation: (accountingAdvancedSettingsLink: string, connectionName: string) => `Para ativar a Conciliação Contínua, ative a sincronização automática para ${connectionName}.`, chooseReconciliationAccount: { chooseBankAccount: 'Escolha a conta bancária na qual os pagamentos do seu Cartão Expensify serão conciliados.', @@ -6176,8 +6158,8 @@ Exija detalhes de despesas como recibos e descrições, defina limites e padrõe autoPayApprovedReportsLockedSubtitle: 'Vá para Mais recursos e ative Fluxos de trabalho, depois adicione Pagamentos para desbloquear este recurso.', autoPayReportsUnderTitle: 'Relatórios de pagamento automático sob', autoPayReportsUnderDescription: 'Relatórios de despesas totalmente compatíveis abaixo deste valor serão pagos automaticamente.', - unlockFeatureEnableWorkflowsSubtitle: ({featureName}: FeatureNameParams) => `Adicione ${featureName} para desbloquear esse recurso.`, - enableFeatureSubtitle: ({featureName, moreFeaturesLink}: FeatureNameParams) => + unlockFeatureEnableWorkflowsSubtitle: (featureName: string) => `Adicione ${featureName} para desbloquear esse recurso.`, + enableFeatureSubtitle: (featureName: string, moreFeaturesLink?: string) => `Vá para [mais recursos](${moreFeaturesLink}) e ative ${featureName} para desbloquear este recurso.`, }, categoryRules: { @@ -6453,7 +6435,7 @@ Exija detalhes de despesas como recibos e descrições, defina limites e padrõe other: `removeu você dos fluxos de aprovação e chats de despesas de ${joinedNames}. Relatórios enviados anteriormente continuarão disponíveis para aprovação na sua Caixa de entrada.`, }; }, - demotedFromWorkspace: ({policyName, oldRole}: DemotedFromWorkspaceParams) => + demotedFromWorkspace: (policyName: string, oldRole: string) => `atualizou seu papel em ${policyName} de ${oldRole} para usuário. Você foi removido de todos os chats de despesas de solicitantes, exceto do seu próprio.`, updatedWorkspaceCurrencyAction: ({oldCurrency, newCurrency}: UpdatedPolicyCurrencyParams) => `atualizou a moeda padrão para ${newCurrency} (anteriormente ${oldCurrency})`, updatedWorkspaceFrequencyAction: ({oldFrequency, newFrequency}: UpdatedPolicyFrequencyParams) => @@ -6952,7 +6934,7 @@ Exija detalhes de despesas como recibos e descrições, defina limites e padrõe changeType: ({oldType, newType}: ChangeTypeParams) => `tipo alterado de ${oldType} para ${newType}`, exportedToCSV: `exportado para CSV`, exportedToIntegration: { - automatic: ({label}: ExportedToIntegrationParams) => { + automatic: (label: string) => { const labelTranslations: Record = { [CONST.REPORT.EXPORT_OPTION_LABELS.EXPENSE_LEVEL_EXPORT]: translations.export.expenseLevelExport, [CONST.REPORT.EXPORT_OPTION_LABELS.REPORT_LEVEL_EXPORT]: translations.export.reportLevelExport, @@ -6960,13 +6942,13 @@ Exija detalhes de despesas como recibos e descrições, defina limites e padrõe const translatedLabel = labelTranslations[label] || label; return `exportado para ${translatedLabel}`; }, - automaticActionOne: ({label}: ExportedToIntegrationParams) => `exportado para ${label} via`, + automaticActionOne: (label: string) => `exportado para ${label} via`, automaticActionTwo: 'configurações de contabilidade', - manual: ({label}: ExportedToIntegrationParams) => `marcou este relatório como exportado manualmente para ${label}.`, + manual: (label: string) => `marcou este relatório como exportado manualmente para ${label}.`, automaticActionThree: 'e criou com sucesso um registro para', reimburseableLink: 'despesas desembolsadas', nonReimbursableLink: 'despesas de cartão corporativo', - pending: ({label}: ExportedToIntegrationParams) => `começou a exportar este relatório para ${label}...`, + pending: (label: string) => `começou a exportar este relatório para ${label}...`, }, integrationsMessage: ({errorMessage, label, linkText, linkURL}: IntegrationSyncFailedParams) => `falha ao exportar este relatório para ${label} ("${errorMessage}${linkText ? `${linkText}` : ''}")`, @@ -7480,10 +7462,10 @@ Exija detalhes de despesas como recibos e descrições, defina limites e padrõe }, earlyDiscount: { claimOffer: 'Resgatar oferta', - subscriptionPageTitle: ({discountType}: EarlyDiscountTitleParams) => + subscriptionPageTitle: (discountType: number) => `${discountType}% de desconto no seu primeiro ano! Basta adicionar um cartão de pagamento e iniciar uma assinatura anual.`, - onboardingChatTitle: ({discountType}: EarlyDiscountTitleParams) => `Oferta por tempo limitado: ${discountType}% de desconto no seu primeiro ano!`, - subtitle: ({days, hours, minutes, seconds}: EarlyDiscountSubtitleParams) => `Reivindique dentro de ${days > 0 ? `${days}d :` : ''}${hours}h : ${minutes}m : ${seconds}s`, + onboardingChatTitle: (discountType: number) => `Oferta por tempo limitado: ${discountType}% de desconto no seu primeiro ano!`, + subtitle: (days: number, hours: number, minutes: number, seconds: number) => `Reivindique dentro de ${days > 0 ? `${days}d :` : ''}${hours}h : ${minutes}m : ${seconds}s`, }, }, cardSection: { @@ -7684,8 +7666,8 @@ Exija detalhes de despesas como recibos e descrições, defina limites e padrõe removeCopilotConfirmation: 'Tem certeza de que deseja remover este copiloto?', changeAccessLevel: 'Alterar nível de acesso', makeSureItIsYou: 'Vamos confirmar que é você', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Insira o código mágico enviado para ${contactMethod} para adicionar um copiloto. Ele deve chegar em um ou dois minutos.`, - enterMagicCodeUpdate: ({contactMethod}: EnterMagicCodeParams) => `Insira o código mágico enviado para ${contactMethod} para atualizar seu copiloto.`, + enterMagicCode: (contactMethod: string) => `Insira o código mágico enviado para ${contactMethod} para adicionar um copiloto. Ele deve chegar em um ou dois minutos.`, + enterMagicCodeUpdate: (contactMethod: string) => `Insira o código mágico enviado para ${contactMethod} para atualizar seu copiloto.`, notAllowed: 'Não tão rápido...', noAccessMessage: dedent(` Como copiloto, você não tem acesso @@ -7853,7 +7835,7 @@ Exija detalhes de despesas como recibos e descrições, defina limites e padrõe readyForTheRealThing: 'Pronto para a coisa de verdade?', getStarted: 'Começar', }, - employeeInviteMessage: ({name}: EmployeeInviteMessageParams) => `# ${name} convidou você para fazer um test drive do Expensify + employeeInviteMessage: (name: string) => `# ${name} convidou você para fazer um test drive do Expensify Ei! Acabei de conseguir *3 meses grátis* para fazermos um test drive do Expensify, a maneira mais rápida de lidar com despesas. Aqui está um *recibo de teste* para mostrar como funciona:`, diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 28c1c108c05cf..a73a18bf1b8a8 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -55,7 +55,6 @@ import type { CreateExpensesParams, CurrencyCodeParams, CurrencyInputDisabledTextParams, - CustomersOrJobsLabelParams, DateParams, DateShouldBeAfterParams, DateShouldBeBeforeParams, @@ -65,28 +64,13 @@ import type { DelegatorParams, DeleteActionParams, DeleteConfirmationParams, - DeleteTransactionParams, - DemotedFromWorkspaceParams, DependentMultiLevelTagsSubtitleParams, - DidSplitAmountMessageParams, DisconnectYourBankAccountParams, DomainPermissionInfoRestrictionParams, DuplicateTransactionParams, - EarlyDiscountSubtitleParams, - EarlyDiscountTitleParams, EditActionParams, - EditDestinationSubtitleParams, - ElectronicFundsParams, - EmployeeInviteMessageParams, - EmptyCategoriesSubtitleWithAccountingParams, - EmptyTagsSubtitleWithAccountingParams, - EnableContinuousReconciliationParams, - EnterMagicCodeParams, - ErrorODIntegrationParams, ExportAgainModalDescriptionParams, - ExportedToIntegrationParams, ExportIntegrationSelectedParams, - FeatureNameParams, FileLimitParams, FileTypeParams, FiltersAmountBetweenParams, @@ -174,7 +158,6 @@ import type { ReportPolicyNameParams, RequestAmountParams, RequestCountParams, - RequestedAmountMessageParams, RequiredFieldParams, ResolutionConstraintsParams, ReviewParams, @@ -1183,7 +1166,7 @@ const translations: TranslationDeepObject = { posted: '已发布', deleteReceipt: '删除收据', findExpense: '查找报销', - deletedTransaction: ({amount, merchant}: DeleteTransactionParams) => `删除了一笔费用(${amount},商家:${merchant})`, + deletedTransaction: (amount: string, merchant: string) => `删除了一笔费用(${amount},商家:${merchant})`, movedFromReport: ({reportName}: MovedFromReportParams) => `移动了一笔报销${reportName ? `来自 ${reportName}` : ''}`, movedTransactionTo: ({reportUrl, reportName}: MovedTransactionParams) => `已移动此报销${reportName ? `到 ${reportName}` : ''}`, movedTransactionFrom: ({reportUrl, reportName}: MovedTransactionParams) => `已移动此报销${reportName ? `来自 ${reportName}` : ''}`, @@ -1290,12 +1273,12 @@ const translations: TranslationDeepObject = { finished: '已完成', flip: '翻转', sendInvoice: ({amount}: RequestAmountParams) => `发送发票:${amount}`, - expenseAmount: ({formattedAmount, comment}: RequestedAmountMessageParams) => `${formattedAmount}${comment ? `为 ${comment}` : ''}`, + expenseAmount: (formattedAmount: string, comment?: string) => `${formattedAmount}${comment ? `为 ${comment}` : ''}`, submitted: ({memo}: SubmittedWithMemoParams) => `已提交${memo ? `,备注为 ${memo}` : ''}`, automaticallySubmitted: `通过 延迟提交 提交`, - trackedAmount: ({formattedAmount, comment}: RequestedAmountMessageParams) => `正在跟踪 ${formattedAmount}${comment ? `为 ${comment}` : ''}`, + trackedAmount: (formattedAmount: string, comment?: string) => `正在跟踪 ${formattedAmount}${comment ? `为 ${comment}` : ''}`, splitAmount: ({amount}: SplitAmountParams) => `拆分 ${amount}`, - didSplitAmount: ({formattedAmount, comment}: DidSplitAmountMessageParams) => `拆分 ${formattedAmount}${comment ? `为 ${comment}` : ''}`, + didSplitAmount: (formattedAmount: string, comment: string) => `拆分 ${formattedAmount}${comment ? `为 ${comment}` : ''}`, yourSplit: ({amount}: UserSplitParams) => `您分摊的金额 ${amount}`, payerOwesAmount: ({payer, amount, comment}: PayerOwesAmountParams) => `${payer} 欠 ${amount}${comment ? `为 ${comment}` : ''}`, payerOwes: ({payer}: PayerOwesParams) => `${payer} 欠款:`, @@ -1756,7 +1739,7 @@ const translations: TranslationDeepObject = { `添加更多方式登录并向 Expensify 发送收据。

添加一个电子邮箱地址,将收据转发至 ${email},或添加一个电话号码,将收据短信发送至 47777(仅限美国号码)。`, pleaseVerify: '请验证此联系方式。', getInTouch: '我们将通过此方式联系你。', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `请输入发送到 ${contactMethod} 的验证码。它应在一两分钟内送达。`, + enterMagicCode: (contactMethod: string) => `请输入发送到 ${contactMethod} 的验证码。它应在一两分钟内送达。`, setAsDefault: '设为默认', yourDefaultContactMethod: '这是您当前的默认联系方法。在您删除它之前,您需要先选择另一种联系方法并点击“设为默认”。', removeContactMethod: '移除联系方式', @@ -2193,7 +2176,7 @@ const translations: TranslationDeepObject = { cardAddedToWallet: ({platform}: {platform: 'Google' | 'Apple'}) => `已添加到 ${platform} 钱包`, cardDetailsLoadingFailure: '加载卡片详情时出错。请检查您的互联网连接,然后重试。', validateCardTitle: '让我们确认是你', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `请输入发送到 ${contactMethod} 的魔法验证码以查看您的卡片详情。它通常会在一两分钟内送达。`, + enterMagicCode: (contactMethod: string) => `请输入发送到 ${contactMethod} 的魔法验证码以查看您的卡片详情。它通常会在一两分钟内送达。`, missingPrivateDetails: ({missingDetailsLink}: {missingDetailsLink: string}) => `请先添加您的个人信息,然后再试一次。`, unexpectedError: '尝试获取您的 Expensify 卡片详情时出错。请重试。', cardFraudAlert: { @@ -3194,7 +3177,7 @@ ${ sendingFundsTitle: '向另一位账户持有人转账', sendingFundsDetails: '使用您的余额、银行账户或借记卡向其他账户持有人转账不收取任何费用。', electronicFundsStandardDetails: '使用标准选项从你的 Expensify 钱包转账到你的银行账户是免费的。此类转账通常会在 1–3 个工作日内完成。', - electronicFundsInstantDetails: ({percentage, amount}: ElectronicFundsParams) => + electronicFundsInstantDetails: (percentage: string, amount: string) => `使用即时转账选项从您的 Expensify 钱包转账到已关联借记卡将收取手续费。此类转账通常会在几分钟内完成。费用为转账金额的 ${percentage}%(最低费用为 ${amount})。`, fdicInsuranceBancorp: ({amount}: TermsParams) => `您的资金符合 FDIC 保险资格。您的资金将由 ${CONST.WALLET.PROGRAM_ISSUERS.BANCORP_BANK}(一家受 FDIC 保险保障的机构)托管或转入。` + @@ -3897,8 +3880,8 @@ ${ importPerDiemRates: '导入每日补贴费率', editPerDiemRate: '编辑日津贴费率', editPerDiemRates: '编辑每日补贴费率', - editDestinationSubtitle: ({destination}: EditDestinationSubtitleParams) => `更新此目的地将会更改所有 ${destination} 伙食津贴子费率的设置。`, - editCurrencySubtitle: ({destination}: EditDestinationSubtitleParams) => `更新此货币将会更改所有 ${destination} 按日津贴子费率的货币。`, + editDestinationSubtitle: (destination: string) => `更新此目的地将会更改所有 ${destination} 伙食津贴子费率的设置。`, + editCurrencySubtitle: (destination: string) => `更新此货币将会更改所有 ${destination} 按日津贴子费率的货币。`, }, qbd: { exportOutOfPocketExpensesDescription: '设置自掏腰包报销如何导出到 QuickBooks Desktop。', @@ -4480,7 +4463,7 @@ ${ importJobs: '导入项目', customers: '客户', jobs: '项目', - label: ({importFields, importType}: CustomersOrJobsLabelParams) => `${importFields.join('和')}, ${importType}`, + label: (importFields: string[], importType: string) => `${importFields.join('和')}, ${importType}`, }, importTaxDescription: '从 NetSuite 导入税务组。', importCustomFields: { @@ -4881,7 +4864,7 @@ _如需更详细的说明,请[访问我们的帮助网站](${CONST.NETSUITE_IM emptyCategories: { title: '您尚未创建任何类别', subtitle: '添加一个类别来整理您的支出。', - subtitleWithAccounting: ({accountingPageURL}: EmptyCategoriesSubtitleWithAccountingParams) => + subtitleWithAccounting: (accountingPageURL: string) => `您的类别当前正从会计连接中导入。请前往会计进行任何更改。`, }, updateFailureMessage: '更新类别时发生错误,请重试', @@ -5166,7 +5149,7 @@ _如需更详细的说明,请[访问我们的帮助网站](${CONST.NETSUITE_IM // We need to remove the subtitle and use the below one when we remove the canUseMultiLevelTags beta subtitle: '添加标签以跟踪项目、地点、部门等。', subtitleHTML: `导入电子表格以添加标签,用于跟踪项目、地点、部门等。了解详情,以获取有关标记文件格式的更多信息。`, - subtitleWithAccounting: ({accountingPageURL}: EmptyTagsSubtitleWithAccountingParams) => + subtitleWithAccounting: (accountingPageURL: string) => `您的标签当前正从会计连接中导入。请前往会计页面进行任何更改。`, }, deleteTag: '删除标签', @@ -5423,8 +5406,7 @@ _如需更详细的说明,请[访问我们的帮助网站](${CONST.NETSUITE_IM } } }, - errorODIntegration: ({oldDotPolicyConnectionsURL}: ErrorODIntegrationParams) => - `Expensify Classic 中已设置的连接出现错误。[前往 Expensify Classic 解决此问题。](${oldDotPolicyConnectionsURL})`, + errorODIntegration: (oldDotPolicyConnectionsURL: string) => `Expensify Classic 中已设置的连接出现错误。[前往 Expensify Classic 解决此问题。](${oldDotPolicyConnectionsURL})`, goToODToSettings: '前往 Expensify Classic 管理您的设置。', setup: '连接', lastSync: ({relativeDate}: LastSyncAccountingParams) => `上次同步时间:${relativeDate}`, @@ -5628,7 +5610,7 @@ _如需更详细的说明,请[访问我们的帮助网站](${CONST.NETSUITE_IM reconciliationAccount: '对账科目', continuousReconciliation: '持续对账', saveHoursOnReconciliation: '通过让 Expensify 持续为你对账 Expensify Card 的对账单和结算,每个会计期间都能节省数小时的对账时间。', - enableContinuousReconciliation: ({accountingAdvancedSettingsLink, connectionName}: EnableContinuousReconciliationParams) => + enableContinuousReconciliation: (accountingAdvancedSettingsLink: string, connectionName: string) => `要启用持续对账,请为 ${connectionName} 启用自动同步`, chooseReconciliationAccount: { chooseBankAccount: '选择用于对账 Expensify Card 付款的银行账户。', @@ -6065,8 +6047,8 @@ ${reportName} autoPayApprovedReportsLockedSubtitle: '前往“更多功能”并启用“工作流”,然后添加“付款”以解锁此功能。', autoPayReportsUnderTitle: '自动支付报表至', autoPayReportsUnderDescription: '金额低于此数且完全合规的报销单将自动支付。', - unlockFeatureEnableWorkflowsSubtitle: ({featureName}: FeatureNameParams) => `添加 ${featureName} 以解锁此功能。`, - enableFeatureSubtitle: ({featureName, moreFeaturesLink}: FeatureNameParams) => `前往[更多功能](${moreFeaturesLink})并启用 ${featureName} 以解锁此功能。`, + unlockFeatureEnableWorkflowsSubtitle: (featureName: string) => `添加 ${featureName} 以解锁此功能。`, + enableFeatureSubtitle: (featureName: string, moreFeaturesLink?: string) => `前往[更多功能](${moreFeaturesLink})并启用 ${featureName} 以解锁此功能。`, }, categoryRules: { title: '类别规则', @@ -6328,8 +6310,7 @@ ${reportName} other: `已将你从${joinedNames}的审批流程和报销聊天中移除。先前提交的报表仍可在你的收件箱中进行审批。`, }; }, - demotedFromWorkspace: ({policyName, oldRole}: DemotedFromWorkspaceParams) => - `已将你在 ${policyName} 中的角色从 ${oldRole} 更新为用户。你已从所有报销提交人的聊天中被移除,只保留你自己的聊天。`, + demotedFromWorkspace: (policyName: string, oldRole: string) => `已将你在 ${policyName} 中的角色从 ${oldRole} 更新为用户。你已从所有报销提交人的聊天中被移除,只保留你自己的聊天。`, updatedWorkspaceCurrencyAction: ({oldCurrency, newCurrency}: UpdatedPolicyCurrencyParams) => `已将默认货币更新为 ${newCurrency}(之前为 ${oldCurrency})`, updatedWorkspaceFrequencyAction: ({oldFrequency, newFrequency}: UpdatedPolicyFrequencyParams) => `已将自动报表频率更新为“${newFrequency}”(之前为“${oldFrequency}”)`, updateApprovalMode: ({newValue, oldValue}: ChangeFieldParams) => `已将审批模式更新为“${newValue}”(之前为“${oldValue}”)`, @@ -6818,7 +6799,7 @@ ${reportName} changeType: ({oldType, newType}: ChangeTypeParams) => `将类型从 ${oldType} 更改为 ${newType}`, exportedToCSV: `已导出为 CSV`, exportedToIntegration: { - automatic: ({label}: ExportedToIntegrationParams) => { + automatic: (label: string) => { const labelTranslations: Record = { [CONST.REPORT.EXPORT_OPTION_LABELS.EXPENSE_LEVEL_EXPORT]: translations.export.expenseLevelExport, [CONST.REPORT.EXPORT_OPTION_LABELS.REPORT_LEVEL_EXPORT]: translations.export.reportLevelExport, @@ -6826,13 +6807,13 @@ ${reportName} const translatedLabel = labelTranslations[label] || label; return `已导出到 ${translatedLabel}`; }, - automaticActionOne: ({label}: ExportedToIntegrationParams) => `已通过 ${label} 导出`, + automaticActionOne: (label: string) => `已通过 ${label} 导出`, automaticActionTwo: '会计设置', - manual: ({label}: ExportedToIntegrationParams) => `已将此报表标记为手动导出到 ${label}。`, + manual: (label: string) => `已将此报表标记为手动导出到 ${label}。`, automaticActionThree: '并成功创建了记录给', reimburseableLink: '自付费用', nonReimbursableLink: '公司信用卡报销', - pending: ({label}: ExportedToIntegrationParams) => `已开始将此报表导出到${label}…`, + pending: (label: string) => `已开始将此报表导出到${label}…`, }, integrationsMessage: ({errorMessage, label, linkText, linkURL}: IntegrationSyncFailedParams) => `未能将此报表导出到 ${label}(“${errorMessage}${linkText ? `${linkText}` : ''}”)`, @@ -7331,9 +7312,9 @@ ${reportName} }, earlyDiscount: { claimOffer: '领取优惠', - subscriptionPageTitle: ({discountType}: EarlyDiscountTitleParams) => `首年优惠 ${discountType}%! 只需添加一张支付卡并开始年度订阅。`, - onboardingChatTitle: ({discountType}: EarlyDiscountTitleParams) => `限时优惠:首年立减 ${discountType}%!`, - subtitle: ({days, hours, minutes, seconds}: EarlyDiscountSubtitleParams) => `在 ${days > 0 ? `${days}天 :` : ''}${hours} 小时 ${minutes} 分钟 ${seconds} 秒内申请`, + subscriptionPageTitle: (discountType: number) => `首年优惠 ${discountType}%! 只需添加一张支付卡并开始年度订阅。`, + onboardingChatTitle: (discountType: number) => `限时优惠:首年立减 ${discountType}%!`, + subtitle: (days: number, hours: number, minutes: number, seconds: number) => `在 ${days > 0 ? `${days}天 :` : ''}${hours} 小时 ${minutes} 分钟 ${seconds} 秒内申请`, }, }, cardSection: { @@ -7531,8 +7512,8 @@ ${reportName} removeCopilotConfirmation: '您确定要移除这个副驾驶吗?', changeAccessLevel: '更改访问级别', makeSureItIsYou: '让我们确认是你', - enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `请输入发送到 ${contactMethod} 的魔法验证码以添加副驾驶。验证码应会在一两分钟内送达。`, - enterMagicCodeUpdate: ({contactMethod}: EnterMagicCodeParams) => `请输入发送到 ${contactMethod} 的验证码以更新您的 Copilot。`, + enterMagicCode: (contactMethod: string) => `请输入发送到 ${contactMethod} 的魔法验证码以添加副驾驶。验证码应会在一两分钟内送达。`, + enterMagicCodeUpdate: (contactMethod: string) => `请输入发送到 ${contactMethod} 的验证码以更新您的 Copilot。`, notAllowed: '没那么快……', noAccessMessage: dedent(` 作为协助者,你无权访问此页面。抱歉! @@ -7697,7 +7678,7 @@ ${reportName} readyForTheRealThing: '准备好来点真正的吗?', getStarted: '开始使用', }, - employeeInviteMessage: ({name}: EmployeeInviteMessageParams) => `# ${name} 邀请你试用 Expensify + employeeInviteMessage: (name: string) => `# ${name} 邀请你试用 Expensify 嘿!我刚为我们拿到 *3 个月免费* 试用 Expensify 的机会,这是处理报销最快的方式。 这里有一张 *测试收据*,来向你展示它是如何工作的:`, From 9d60f4d57e2135555555f8ba19e66f60f77b2238 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Rejdak?= Date: Tue, 16 Dec 2025 18:01:14 +0100 Subject: [PATCH 4/4] removed the replaced types from params.ts --- src/languages/params.ts | 73 ----------------------------------------- 1 file changed, 73 deletions(-) diff --git a/src/languages/params.ts b/src/languages/params.ts index 96dfa56afe962..5df002265bc82 100644 --- a/src/languages/params.ts +++ b/src/languages/params.ts @@ -130,11 +130,6 @@ type RequestCountParams = { pendingReceipts: number; }; -type DeleteTransactionParams = { - amount: string; - merchant: string; -}; - type MovedTransactionParams = { reportUrl: string; reportName?: string; @@ -176,12 +171,8 @@ type RequestAmountParams = {amount: string}; type ReportFieldParams = {name: string; value: string}; -type RequestedAmountMessageParams = {formattedAmount: string; comment?: string}; - type SplitAmountParams = {amount: string}; -type DidSplitAmountMessageParams = {formattedAmount: string; comment: string}; - type UserSplitParams = {amount: string}; type PayerOwesAmountParams = {payer: string; amount: number | string; comment?: string}; @@ -224,8 +215,6 @@ type ResolutionConstraintsParams = {minHeightInPx: number; minWidthInPx: number; type NotAllowedExtensionParams = {allowedExtensions: string[]}; -type EnterMagicCodeParams = {contactMethod: string}; - type TransferParams = {amount: string}; type InstantSummaryParams = {rate: string; minAmount: string}; @@ -327,8 +316,6 @@ type OptionalParam = Partial; type TermsParams = {amount: string}; -type ElectronicFundsParams = {percentage: string; amount: string}; - type LogSizeParams = {size: number}; type LogSizeAndDateParams = {size: number; date: string}; @@ -464,11 +451,6 @@ type LastSyncDateParams = { formattedDate: string; }; -type CustomersOrJobsLabelParams = { - importFields: string[]; - importType: string; -}; - type ExportAgainModalDescriptionParams = { reportName: string; connectionName: ConnectionName; @@ -528,10 +510,6 @@ type BillingBannerCardOnDisputeParams = {amountOwed: string; cardEnding: string} type TrialStartedTitleParams = {numOfDays: number}; -type EarlyDiscountTitleParams = {discountType: number}; - -type EarlyDiscountSubtitleParams = {days: number; hours: number; minutes: number; seconds: number}; - type CardInfoParams = {name: string; expiration: string; currency: string}; type YourPlanPriceParams = {lower: string; upper: string}; @@ -593,11 +571,6 @@ type AssignedCardParams = { link: string; }; -type FeatureNameParams = { - featureName: string; - moreFeaturesLink?: string; -}; - type DefaultAmountParams = { defaultAmount: string; }; @@ -606,11 +579,6 @@ type RemovedFromApprovalWorkflowParams = { submittersNames: string[]; }; -type DemotedFromWorkspaceParams = { - policyName: string; - oldRole: string; -}; - type IntegrationExportParams = { integration: string; type?: string; @@ -711,10 +679,6 @@ type ChatWithAccountManagerParams = { accountManagerDisplayName: string; }; -type EditDestinationSubtitleParams = { - destination: string; -}; - type FlightLayoverParams = { layover: string; }; @@ -757,10 +721,6 @@ type TotalAmountGreaterOrLessThanOriginalParams = { amount: string; }; -type EmployeeInviteMessageParams = { - name: string; -}; - type FlightParams = { startDate: string; airlineCode: string; @@ -798,14 +758,6 @@ type QBDSetupErrorBodyParams = { conciergeLink: string; }; -type EmptyCategoriesSubtitleWithAccountingParams = { - accountingPageURL: string; -}; - -type EmptyTagsSubtitleWithAccountingParams = { - accountingPageURL: string; -}; - type SettlementAccountInfoParams = { reconciliationAccountSettingsLink: string; accountNumber: string; @@ -825,11 +777,6 @@ type MergeFailureDescriptionGenericParams = { email: string; }; -type EnableContinuousReconciliationParams = { - connectionName: string; - accountingAdvancedSettingsLink: string; -}; - type WorkspaceUpgradeNoteParams = { subscriptionLink: string; }; @@ -874,10 +821,6 @@ type WalletAgreementParams = { walletAgreementUrl: string; }; -type ErrorODIntegrationParams = { - oldDotPolicyConnectionsURL: string; -}; - type SettlementAccountReconciliationParams = { settlementAccountUrl: string; lastFourPAN: string; @@ -923,9 +866,7 @@ export type { ConnectionParams, IntegrationExportParams, RemovedFromApprovalWorkflowParams, - DemotedFromWorkspaceParams, DefaultAmountParams, - FeatureNameParams, FileLimitParams, FileTypeParams, SpreadSheetColumnParams, @@ -954,8 +895,6 @@ export type { BillingBannerDisputePendingParams, BillingBannerCardOnDisputeParams, TrialStartedTitleParams, - EarlyDiscountTitleParams, - EarlyDiscountSubtitleParams, RemoveMemberPromptParams, StatementTitleParams, RenamedWorkspaceNameActionParams, @@ -981,10 +920,7 @@ export type { DateShouldBeBeforeParams, DeleteActionParams, DeleteConfirmationParams, - DidSplitAmountMessageParams, EditActionParams, - ElectronicFundsParams, - EnterMagicCodeParams, FormattedMaxLengthParams, GoBackMessageParams, SubmittedToVacationDelegateParams, @@ -1027,9 +963,7 @@ export type { ReportArchiveReasonsRemovedFromPolicyParams, RequestAmountParams, RequestCountParams, - DeleteTransactionParams, MovedTransactionParams, - RequestedAmountMessageParams, ResolutionConstraintsParams, RoomNameReservedErrorParams, RoomRenamedToParams, @@ -1088,7 +1022,6 @@ export type { ApprovalWorkflowErrorParams, ConnectionNameParams, LastSyncDateParams, - CustomersOrJobsLabelParams, ExportAgainModalDescriptionParams, IntegrationSyncFailedParams, AddEmployeeParams, @@ -1122,7 +1055,6 @@ export type { UpdatedPolicyFieldWithNewAndOldValueParams, UpdatedPolicyFieldWithValueParam, UpdatedPolicyDescriptionParams, - EditDestinationSubtitleParams, FlightLayoverParams, WorkEmailResendCodeParams, WorkEmailMergingBlockedParams, @@ -1163,7 +1095,6 @@ export type { CreateExpensesParams, WorkspaceMembersCountParams, CurrencyInputDisabledTextParams, - EmployeeInviteMessageParams, FlightParams, AirlineParams, RailTicketParams, @@ -1172,13 +1103,10 @@ export type { WorkspacesListRouteParams, WorkspaceRouteParams, QBDSetupErrorBodyParams, - EmptyCategoriesSubtitleWithAccountingParams, - EmptyTagsSubtitleWithAccountingParams, SettlementAccountInfoParams, MergeSuccessDescriptionParams, MergeFailureUncreatedAccountDescriptionParams, MergeFailureDescriptionGenericParams, - EnableContinuousReconciliationParams, WorkspaceUpgradeNoteParams, WorkflowSettingsParam, MovedActionParams, @@ -1192,7 +1120,6 @@ export type { DependentMultiLevelTagsSubtitleParams, PayAndDowngradeDescriptionParams, WalletAgreementParams, - ErrorODIntegrationParams, DisconnectYourBankAccountParams, MergeAccountIntoParams, NextStepParams,