From 7e3ad7b119e4d6194d884a98142d1a85fc6c5338 Mon Sep 17 00:00:00 2001 From: jakubstec Date: Wed, 4 Mar 2026 10:39:26 +0100 Subject: [PATCH 01/11] (refactor): (refactor): simplify translation param types to standalone params part3 --- .../AuthenticationMethodDescription.tsx | 2 +- src/components/TestToolMenu.tsx | 2 +- src/languages/de.ts | 55 ++++++++++--------- src/languages/en.ts | 54 ++++++++++-------- src/languages/es.ts | 14 ++--- src/languages/fr.ts | 54 ++++++++++-------- src/languages/it.ts | 53 ++++++++++-------- src/languages/ja.ts | 54 ++++++++++-------- src/languages/nl.ts | 55 ++++++++++--------- src/languages/params.ts | 50 ++++++++--------- src/languages/pl.ts | 53 ++++++++++-------- src/languages/pt-BR.ts | 53 ++++++++++-------- src/languages/zh-hans.ts | 54 ++++++++++-------- src/libs/ReportActionsUtils.ts | 14 ++--- 14 files changed, 311 insertions(+), 256 deletions(-) diff --git a/src/components/MultifactorAuthentication/components/AuthenticationMethodDescription.tsx b/src/components/MultifactorAuthentication/components/AuthenticationMethodDescription.tsx index 05d0909d709d3..8d4e7df8c0458 100644 --- a/src/components/MultifactorAuthentication/components/AuthenticationMethodDescription.tsx +++ b/src/components/MultifactorAuthentication/components/AuthenticationMethodDescription.tsx @@ -26,7 +26,7 @@ function AuthenticationMethodDescription() { const authType = translate(AUTH_TYPE_TRANSLATION_KEY[authenticationMethod?.name ?? SECURE_STORE_VALUES.AUTH_TYPE.UNKNOWN.NAME]); - return {translate('multifactorAuthentication.biometricsTest.successfullyAuthenticatedUsing', {authType})}; + return {translate('multifactorAuthentication.biometricsTest.successfullyAuthenticatedUsing', authType)}; } AuthenticationMethodDescription.displayName = 'AuthenticationMethodDescription'; diff --git a/src/components/TestToolMenu.tsx b/src/components/TestToolMenu.tsx index c326342f36be5..1901825e06a6c 100644 --- a/src/components/TestToolMenu.tsx +++ b/src/components/TestToolMenu.tsx @@ -52,7 +52,7 @@ function TestToolMenu() { const isAuthenticated = useIsAuthenticated(); // Temporary hardcoded false, expected behavior: status fetched from the MultifactorAuthenticationContext - const biometricsTitle = translate('multifactorAuthentication.biometricsTest.troubleshootBiometricsStatus', {registered: hasBiometricsRegistered}); + const biometricsTitle = translate('multifactorAuthentication.biometricsTest.troubleshootBiometricsStatus', hasBiometricsRegistered); return ( <> diff --git a/src/languages/de.ts b/src/languages/de.ts index a5bebe9551e02..1ebc68d441b96 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -41,7 +41,6 @@ import type { MarkReimbursedFromIntegrationParams, MissingPropertyParams, MovedFromPersonalSpaceParams, - MultifactorAuthenticationTranslationParams, NextStepParams, NotAllowedExtensionParams, OptionalParam, @@ -62,18 +61,14 @@ import type { UpdatedBudgetParams, UpdatedPolicyApprovalRuleParams, UpdatedPolicyAutoHarvestingParams, - UpdatedPolicyBudgetNotificationParams, UpdatedPolicyCategoriesParams, UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCustomUnitSubRateParams, - UpdatedPolicyDefaultTitleParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyOwnershipParams, UpdatedPolicyPreventSelfApprovalParams, - UpdatedPolicyReimbursementChoiceParams, UpdatedPolicyReimbursementEnabledParams, UpdatedPolicyReimburserParams, UpdatedPolicyReportFieldDefaultValueParams, @@ -649,8 +644,8 @@ const translations: TranslationDeepObject = { biometricsTest: { biometricsTest: 'Biometrie-Test', authenticationSuccessful: 'Authentifizierung erfolgreich', - successfullyAuthenticatedUsing: ({authType}: MultifactorAuthenticationTranslationParams) => `Du hast dich erfolgreich mit ${authType} authentifiziert.`, - troubleshootBiometricsStatus: ({registered}: MultifactorAuthenticationTranslationParams) => `Biometrie (${registered ? 'Registriert' : 'Nicht registriert'})`, + successfullyAuthenticatedUsing: (authType?: string) => `Du hast dich erfolgreich mit ${authType} authentifiziert.`, + troubleshootBiometricsStatus: (registered?: boolean) => `Biometrie (${registered ? 'Registriert' : 'Nicht registriert'})`, yourAttemptWasUnsuccessful: 'Dein Authentifizierungsversuch war nicht erfolgreich.', youCouldNotBeAuthenticated: 'Du konntest nicht authentifiziert werden', areYouSureToReject: 'Sind Sie sicher? Der Authentifizierungsversuch wird abgelehnt, wenn Sie diesen Bildschirm schließen.', @@ -6953,13 +6948,11 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und }, addedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `„${prohibitedExpense}“ zu verbotenen Ausgaben hinzugefügt`, removedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `„${prohibitedExpense}“ aus verbotenen Ausgaben entfernt`, - updatedReimbursementChoice: ({newReimbursementChoice, oldReimbursementChoice}: UpdatedPolicyReimbursementChoiceParams) => + updatedReimbursementChoice: (newReimbursementChoice: string, oldReimbursementChoice: string) => `Erstattungmethode zu „${newReimbursementChoice}“ geändert (vorher „${oldReimbursementChoice}“)`, setAutoJoin: ({enabled}: {enabled: boolean}) => `${enabled ? 'aktiviert' : 'deaktiviert'} Vorabgenehmigung von Arbeitsbereich-Beitrittsanfragen`, - updatedDefaultTitle: ({newDefaultTitle, oldDefaultTitle}: UpdatedPolicyDefaultTitleParams) => - `benutzerdefinierte Berichtstitelformel in „${newDefaultTitle}“ geändert (zuvor „${oldDefaultTitle}“)`, - updatedOwnership: ({oldOwnerEmail, oldOwnerName, policyName}: UpdatedPolicyOwnershipParams) => - `hat die Inhaberschaft von ${policyName} von ${oldOwnerName} (${oldOwnerEmail}) übernommen`, + updatedDefaultTitle: (newDefaultTitle: string, oldDefaultTitle: string) => `benutzerdefinierte Berichtstitelformel in „${newDefaultTitle}“ geändert (zuvor „${oldDefaultTitle}“)`, + updatedOwnership: (oldOwnerEmail: string, oldOwnerName: string, policyName: string) => `hat die Inhaberschaft von ${policyName} von ${oldOwnerName} (${oldOwnerEmail}) übernommen`, updatedAutoHarvesting: ({enabled}: UpdatedPolicyAutoHarvestingParams) => `${enabled ? 'aktiviert' : 'deaktiviert'} geplante Einreichung`, updatedIndividualBudgetNotification: ({ budgetAmount, @@ -6973,20 +6966,32 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und userEmail, awaitingApprovalSpend, approvedReimbursedClosedSpend, - }: UpdatedPolicyBudgetNotificationParams) => + }: { + budgetAmount: string; + budgetFrequency: string; + budgetName: string; + budgetTypeForNotificationMessage: string; + summaryLink?: string; + thresholdPercentage: number; + totalSpend: number; + unsubmittedSpend: number; + userEmail?: string; + awaitingApprovalSpend: number; + approvedReimbursedClosedSpend: number; + }) => `Achtung! Dieser Workspace hat ein ${budgetFrequency}-Budget von „${budgetAmount}“ für den/die/das ${budgetTypeForNotificationMessage} „${budgetName}“. ${userEmail} liegt derzeit bei ${approvedReimbursedClosedSpend}, was über ${thresholdPercentage}% des Budgets liegt. Außerdem warten ${awaitingApprovalSpend} noch auf Genehmigung und ${unsubmittedSpend} wurden noch nicht eingereicht, für insgesamt ${totalSpend}.${summaryLink ? `Hier ist ein Bericht mit all diesen Ausgaben für Ihre Unterlagen!` : ''}`, - updatedSharedBudgetNotification: ({ - budgetAmount, - budgetFrequency, - budgetName, - budgetTypeForNotificationMessage, - summaryLink, - thresholdPercentage, - totalSpend, - unsubmittedSpend, - awaitingApprovalSpend, - approvedReimbursedClosedSpend, - }: UpdatedPolicyBudgetNotificationParams) => + updatedSharedBudgetNotification: ( + budgetAmount: string, + budgetFrequency: string, + budgetName: string, + budgetTypeForNotificationMessage: string, + summaryLink: string | undefined, + thresholdPercentage: number, + totalSpend: number, + unsubmittedSpend: number, + awaitingApprovalSpend: number, + approvedReimbursedClosedSpend: number, + ) => `Achtung! Dieser Workspace hat ein ${budgetFrequency}-Budget von „${budgetAmount}“ für den ${budgetTypeForNotificationMessage} „${budgetName}“. Du liegst derzeit bei ${approvedReimbursedClosedSpend}, was über ${thresholdPercentage}% des Budgets liegt. Außerdem warten ${awaitingApprovalSpend} auf Genehmigung und ${unsubmittedSpend} wurden noch nicht eingereicht, für insgesamt ${totalSpend}. ${summaryLink ? `Hier ist ein Bericht mit all diesen Ausgaben für Ihre Unterlagen!` : ''}`, removedMaxExpenseAge: (oldValue: string) => `maximales Spesenalter entfernt (zuvor „${oldValue}“ Tage)`, }, diff --git a/src/languages/en.ts b/src/languages/en.ts index c353385d26a6e..e69be0ee9609b 100644 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -29,7 +29,6 @@ import type { MarkReimbursedFromIntegrationParams, MissingPropertyParams, MovedFromPersonalSpaceParams, - MultifactorAuthenticationTranslationParams, NextStepParams, NotAllowedExtensionParams, OptionalParam, @@ -50,18 +49,14 @@ import type { UpdatedBudgetParams, UpdatedPolicyApprovalRuleParams, UpdatedPolicyAutoHarvestingParams, - UpdatedPolicyBudgetNotificationParams, UpdatedPolicyCategoriesParams, UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCustomUnitSubRateParams, - UpdatedPolicyDefaultTitleParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyOwnershipParams, UpdatedPolicyPreventSelfApprovalParams, - UpdatedPolicyReimbursementChoiceParams, UpdatedPolicyReimbursementEnabledParams, UpdatedPolicyReimburserParams, UpdatedPolicyReportFieldDefaultValueParams, @@ -668,8 +663,8 @@ const translations = { biometricsTest: { biometricsTest: 'Biometrics test', authenticationSuccessful: 'Authentication successful', - successfullyAuthenticatedUsing: ({authType}: MultifactorAuthenticationTranslationParams) => `You’ve successfully authenticated using ${authType}.`, - troubleshootBiometricsStatus: ({registered}: MultifactorAuthenticationTranslationParams) => `Biometrics (${registered ? 'Registered' : 'Not registered'})`, + successfullyAuthenticatedUsing: (authType?: string) => `You’ve successfully authenticated using ${authType}.`, + troubleshootBiometricsStatus: (registered?: boolean) => `Biometrics (${registered ? 'Registered' : 'Not registered'})`, yourAttemptWasUnsuccessful: 'Your authentication attempt was unsuccessful.', youCouldNotBeAuthenticated: 'You couldn’t be authenticated', areYouSureToReject: 'Are you sure? The authentication attempt will be rejected if you close this screen.', @@ -6774,14 +6769,13 @@ const translations = { }, addedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `added "${prohibitedExpense}" to prohibited expenses`, removedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `removed "${prohibitedExpense}" from prohibited expenses`, - updatedReimbursementChoice: ({newReimbursementChoice, oldReimbursementChoice}: UpdatedPolicyReimbursementChoiceParams) => + updatedReimbursementChoice: (newReimbursementChoice: string, oldReimbursementChoice: string) => `changed reimbursement method to "${newReimbursementChoice}" (previously "${oldReimbursementChoice}")`, setAutoJoin: ({enabled}: {enabled: boolean}) => `${enabled ? 'enabled' : 'disabled'} pre-approval of workspace join requests`, - updatedDefaultTitle: ({newDefaultTitle, oldDefaultTitle}: UpdatedPolicyDefaultTitleParams) => - `changed custom report name formula to "${newDefaultTitle}" (previously "${oldDefaultTitle}")`, + updatedDefaultTitle: (newDefaultTitle: string, oldDefaultTitle: string) => `changed custom report name formula to "${newDefaultTitle}" (previously "${oldDefaultTitle}")`, - updatedOwnership: ({oldOwnerEmail, oldOwnerName, policyName}: UpdatedPolicyOwnershipParams) => `took over ownership of ${policyName} from ${oldOwnerName} (${oldOwnerEmail})`, + updatedOwnership: (oldOwnerEmail: string, oldOwnerName: string, policyName: string) => `took over ownership of ${policyName} from ${oldOwnerName} (${oldOwnerEmail})`, updatedAutoHarvesting: ({enabled}: UpdatedPolicyAutoHarvestingParams) => `${enabled ? 'enabled' : 'disabled'} scheduled submit`, updatedIndividualBudgetNotification: ({ @@ -6796,20 +6790,32 @@ const translations = { userEmail, awaitingApprovalSpend, approvedReimbursedClosedSpend, - }: UpdatedPolicyBudgetNotificationParams) => + }: { + budgetAmount: string; + budgetFrequency: string; + budgetName: string; + budgetTypeForNotificationMessage: string; + summaryLink?: string; + thresholdPercentage: number; + totalSpend: number; + unsubmittedSpend: number; + userEmail?: string; + awaitingApprovalSpend: number; + approvedReimbursedClosedSpend: number; + }) => `Heads up! This workspace has a ${budgetFrequency} budget of "${budgetAmount}" for the ${budgetTypeForNotificationMessage} "${budgetName}". ${userEmail} is currently at ${approvedReimbursedClosedSpend}, which is over ${thresholdPercentage}% of the budget. There's also ${awaitingApprovalSpend} awaiting approval, and ${unsubmittedSpend} that hasn't been submitted yet, for a total of ${totalSpend}.${summaryLink ? ` Here's a report with all those expenses for your records!` : ''}`, - updatedSharedBudgetNotification: ({ - budgetAmount, - budgetFrequency, - budgetName, - budgetTypeForNotificationMessage, - summaryLink, - thresholdPercentage, - totalSpend, - unsubmittedSpend, - awaitingApprovalSpend, - approvedReimbursedClosedSpend, - }: UpdatedPolicyBudgetNotificationParams) => + updatedSharedBudgetNotification: ( + budgetAmount: string, + budgetFrequency: string, + budgetName: string, + budgetTypeForNotificationMessage: string, + summaryLink: string | undefined, + thresholdPercentage: number, + totalSpend: number, + unsubmittedSpend: number, + awaitingApprovalSpend: number, + approvedReimbursedClosedSpend: number, + ) => `Heads up! This workspace has a ${budgetFrequency} budget of "${budgetAmount}" for the ${budgetTypeForNotificationMessage} "${budgetName}". You're currently at ${approvedReimbursedClosedSpend}, which is over ${thresholdPercentage}% of the budget. There's also ${awaitingApprovalSpend} awaiting approval, and ${unsubmittedSpend} that hasn't been submitted yet, for a total of ${totalSpend}. ${summaryLink ? `Here's a report with all those expenses for your records!` : ''}`, updatedFeatureEnabled: ({enabled, featureName}: {enabled: boolean; featureName: string}) => { switch (featureName) { diff --git a/src/languages/es.ts b/src/languages/es.ts index b105685bfa65a..7cf3776beccb0 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -513,8 +513,8 @@ const translations: TranslationDeepObject = { biometricsTest: { biometricsTest: 'Prueba de biometría', authenticationSuccessful: 'Autenticación exitosa', - successfullyAuthenticatedUsing: ({authType}) => `Te has autenticado exitosamente con ${authType}.`, - troubleshootBiometricsStatus: ({registered}) => `Biometría (${registered ? 'Registrada' : 'No registrada'})`, + successfullyAuthenticatedUsing: (authType) => `Te has autenticado exitosamente con ${authType}.`, + troubleshootBiometricsStatus: (registered) => `Biometría (${registered ? 'Registrada' : 'No registrada'})`, yourAttemptWasUnsuccessful: 'Tu intento de autenticación fue fallido.', youCouldNotBeAuthenticated: 'No se pudo autenticar', areYouSureToReject: '¿Estás seguro? El intento de autenticación será rechazado si cierras esta pantalla.', @@ -6645,11 +6645,11 @@ ${amount} para ${merchant} - ${date}`, updatedTimeRate: ({newRate, oldRate}) => `cambió la tarifa por hora a "${newRate}" (anteriormente "${oldRate}")`, addedProhibitedExpense: ({prohibitedExpense}) => `añadió "${prohibitedExpense}" a los gastos prohibidos`, removedProhibitedExpense: ({prohibitedExpense}) => `eliminó "${prohibitedExpense}" de los gastos prohibidos`, - updatedReimbursementChoice: ({newReimbursementChoice, oldReimbursementChoice}) => + updatedReimbursementChoice: (newReimbursementChoice, oldReimbursementChoice) => `cambió el método de reembolso a "${newReimbursementChoice}" (previamente "${oldReimbursementChoice}")`, setAutoJoin: ({enabled}) => `${enabled ? 'habilitó' : 'deshabilitó'} la aprobación previa de solicitudes para unirse al espacio de trabajo`, - updatedDefaultTitle: ({newDefaultTitle, oldDefaultTitle}) => `cambió la fórmula personalizada del nombre del informe a "${newDefaultTitle}" (previamente "${oldDefaultTitle}")`, - updatedOwnership: ({oldOwnerEmail, oldOwnerName, policyName}) => `asumió la propiedad del espacio de trabajo ${policyName} de ${oldOwnerName} (${oldOwnerEmail})`, + updatedDefaultTitle: (newDefaultTitle, oldDefaultTitle) => `cambió la fórmula personalizada del nombre del informe a "${newDefaultTitle}" (previamente "${oldDefaultTitle}")`, + updatedOwnership: (oldOwnerEmail, oldOwnerName, policyName) => `asumió la propiedad del espacio de trabajo ${policyName} de ${oldOwnerName} (${oldOwnerEmail})`, updatedAutoHarvesting: ({enabled}) => `${enabled ? 'habilitó' : 'deshabilitó'} el envío programado`, updatedIndividualBudgetNotification: ({ budgetAmount, @@ -6665,7 +6665,7 @@ ${amount} para ${merchant} - ${date}`, approvedReimbursedClosedSpend, }) => `¡Atención! Este espacio de trabajo tiene un presupuesto ${budgetFrequency} ${budgetTypeForNotificationMessage} de "${budgetAmount}" para la categoría "${budgetName}". ${userEmail} está actualmente en ${approvedReimbursedClosedSpend}, lo que supera el ${thresholdPercentage}% del presupuesto. También hay ${awaitingApprovalSpend} en espera de aprobación y ${unsubmittedSpend} que aún no se ha enviado, para un total de ${totalSpend}.${summaryLink ? ` Aquí hay un informe con todos esos gastos para tus registros.` : ''}`, - updatedSharedBudgetNotification: ({ + updatedSharedBudgetNotification: ( budgetAmount, budgetFrequency, budgetName, @@ -6676,7 +6676,7 @@ ${amount} para ${merchant} - ${date}`, unsubmittedSpend, awaitingApprovalSpend, approvedReimbursedClosedSpend, - }) => + ) => `¡Atención! Este espacio de trabajo tiene un presupuesto ${budgetFrequency} ${budgetTypeForNotificationMessage} de "${budgetAmount}" para la categoría "${budgetName}". Actualmente estás en ${approvedReimbursedClosedSpend}, lo que supera el ${thresholdPercentage}% del presupuesto. También hay ${awaitingApprovalSpend} en espera de aprobación y ${unsubmittedSpend} que aún no se ha enviado, para un total de ${totalSpend}.${summaryLink ? ` Aquí hay un informe con todos esos gastos para tus registros.` : ''}`, updatedFeatureEnabled: ({enabled, featureName}) => { switch (featureName) { diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 9b2d67a19d6bf..d8ef5472c9924 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -41,7 +41,6 @@ import type { MarkReimbursedFromIntegrationParams, MissingPropertyParams, MovedFromPersonalSpaceParams, - MultifactorAuthenticationTranslationParams, NextStepParams, NotAllowedExtensionParams, OptionalParam, @@ -62,18 +61,14 @@ import type { UpdatedBudgetParams, UpdatedPolicyApprovalRuleParams, UpdatedPolicyAutoHarvestingParams, - UpdatedPolicyBudgetNotificationParams, UpdatedPolicyCategoriesParams, UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCustomUnitSubRateParams, - UpdatedPolicyDefaultTitleParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyOwnershipParams, UpdatedPolicyPreventSelfApprovalParams, - UpdatedPolicyReimbursementChoiceParams, UpdatedPolicyReimbursementEnabledParams, UpdatedPolicyReimburserParams, UpdatedPolicyReportFieldDefaultValueParams, @@ -651,8 +646,8 @@ const translations: TranslationDeepObject = { biometricsTest: { biometricsTest: 'Test biométrique', authenticationSuccessful: 'Authentification réussie', - successfullyAuthenticatedUsing: ({authType}: MultifactorAuthenticationTranslationParams) => `Vous vous êtes authentifié avec succès en utilisant ${authType}.`, - troubleshootBiometricsStatus: ({registered}: MultifactorAuthenticationTranslationParams) => `Données biométriques (${registered ? 'Enregistré' : 'Non inscrit'})`, + successfullyAuthenticatedUsing: (authType?: string) => `Vous vous êtes authentifié avec succès en utilisant ${authType}.`, + troubleshootBiometricsStatus: (registered?: boolean) => `Données biométriques (${registered ? 'Enregistré' : 'Non inscrit'})`, yourAttemptWasUnsuccessful: 'Votre tentative d’authentification a échoué.', youCouldNotBeAuthenticated: 'Vous n’avez pas pu être authentifié', areYouSureToReject: 'Voulez-vous vraiment continuer ? La tentative d’authentification sera rejetée si vous fermez cet écran.', @@ -6976,13 +6971,12 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip }, addedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `a ajouté « ${prohibitedExpense} » aux dépenses interdites`, removedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `a supprimé « ${prohibitedExpense} » des dépenses interdites`, - updatedReimbursementChoice: ({newReimbursementChoice, oldReimbursementChoice}: UpdatedPolicyReimbursementChoiceParams) => + updatedReimbursementChoice: (newReimbursementChoice: string, oldReimbursementChoice: string) => `a modifié le mode de remboursement en « ${newReimbursementChoice} » (auparavant « ${oldReimbursementChoice} »)`, setAutoJoin: ({enabled}: {enabled: boolean}) => `${enabled ? 'activé' : 'désactivé'} pré-approbation des demandes de rejoindre l’espace de travail`, - updatedDefaultTitle: ({newDefaultTitle, oldDefaultTitle}: UpdatedPolicyDefaultTitleParams) => + updatedDefaultTitle: (newDefaultTitle: string, oldDefaultTitle: string) => `a modifié la formule du nom de note de frais personnalisée en « ${newDefaultTitle} » (précédemment « ${oldDefaultTitle} »)`, - updatedOwnership: ({oldOwnerEmail, oldOwnerName, policyName}: UpdatedPolicyOwnershipParams) => - `a pris la responsabilité de ${policyName} à la place de ${oldOwnerName} (${oldOwnerEmail})`, + updatedOwnership: (oldOwnerEmail: string, oldOwnerName: string, policyName: string) => `a pris la responsabilité de ${policyName} à la place de ${oldOwnerName} (${oldOwnerEmail})`, updatedAutoHarvesting: ({enabled}: UpdatedPolicyAutoHarvestingParams) => `Soumission planifiée pour ${enabled ? 'activé' : 'désactivé'}`, updatedIndividualBudgetNotification: ({ budgetAmount, @@ -6996,20 +6990,32 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip userEmail, awaitingApprovalSpend, approvedReimbursedClosedSpend, - }: UpdatedPolicyBudgetNotificationParams) => + }: { + budgetAmount: string; + budgetFrequency: string; + budgetName: string; + budgetTypeForNotificationMessage: string; + summaryLink?: string; + thresholdPercentage: number; + totalSpend: number; + unsubmittedSpend: number; + userEmail?: string; + awaitingApprovalSpend: number; + approvedReimbursedClosedSpend: number; + }) => `Attention ! Cet espace de travail a un budget ${budgetFrequency} de « ${budgetAmount} » pour le/la ${budgetTypeForNotificationMessage} « ${budgetName} ». ${userEmail} est actuellement à ${approvedReimbursedClosedSpend}, ce qui dépasse ${thresholdPercentage}% du budget. Il y a aussi ${awaitingApprovalSpend} en attente d’approbation, et ${unsubmittedSpend} qui n’a pas encore été soumise, pour un total de ${totalSpend}.${summaryLink ? `Voici une note de frais avec toutes ces dépenses pour vos dossiers !` : ''}`, - updatedSharedBudgetNotification: ({ - budgetAmount, - budgetFrequency, - budgetName, - budgetTypeForNotificationMessage, - summaryLink, - thresholdPercentage, - totalSpend, - unsubmittedSpend, - awaitingApprovalSpend, - approvedReimbursedClosedSpend, - }: UpdatedPolicyBudgetNotificationParams) => + updatedSharedBudgetNotification: ( + budgetAmount: string, + budgetFrequency: string, + budgetName: string, + budgetTypeForNotificationMessage: string, + summaryLink: string | undefined, + thresholdPercentage: number, + totalSpend: number, + unsubmittedSpend: number, + awaitingApprovalSpend: number, + approvedReimbursedClosedSpend: number, + ) => `Attention ! Cet espace de travail a un budget ${budgetFrequency} de « ${budgetAmount} » pour le/la ${budgetTypeForNotificationMessage} « ${budgetName} ». Vous en êtes actuellement à ${approvedReimbursedClosedSpend}, ce qui dépasse ${thresholdPercentage}% du budget. Il y a aussi ${awaitingApprovalSpend} en attente d’approbation et ${unsubmittedSpend} qui n’a pas encore été soumis, pour un total de ${totalSpend}. ${summaryLink ? `Voici une note de frais avec toutes ces dépenses pour vos dossiers !` : ''}`, }, roomMembersPage: { diff --git a/src/languages/it.ts b/src/languages/it.ts index 0c9f5fb84bf83..45a7578808a82 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -41,7 +41,6 @@ import type { MarkReimbursedFromIntegrationParams, MissingPropertyParams, MovedFromPersonalSpaceParams, - MultifactorAuthenticationTranslationParams, NextStepParams, NotAllowedExtensionParams, OptionalParam, @@ -62,18 +61,14 @@ import type { UpdatedBudgetParams, UpdatedPolicyApprovalRuleParams, UpdatedPolicyAutoHarvestingParams, - UpdatedPolicyBudgetNotificationParams, UpdatedPolicyCategoriesParams, UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCustomUnitSubRateParams, - UpdatedPolicyDefaultTitleParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyOwnershipParams, UpdatedPolicyPreventSelfApprovalParams, - UpdatedPolicyReimbursementChoiceParams, UpdatedPolicyReimbursementEnabledParams, UpdatedPolicyReimburserParams, UpdatedPolicyReportFieldDefaultValueParams, @@ -649,8 +644,8 @@ const translations: TranslationDeepObject = { biometricsTest: { biometricsTest: 'Test biometrico', authenticationSuccessful: 'Autenticazione riuscita', - successfullyAuthenticatedUsing: ({authType}: MultifactorAuthenticationTranslationParams) => `Autenticazione completata correttamente tramite ${authType}.`, - troubleshootBiometricsStatus: ({registered}: MultifactorAuthenticationTranslationParams) => `Dati biometrici (${registered ? 'Registrato' : 'Non registrato'})`, + successfullyAuthenticatedUsing: (authType?: string) => `Autenticazione completata correttamente tramite ${authType}.`, + troubleshootBiometricsStatus: (registered?: boolean) => `Dati biometrici (${registered ? 'Registrato' : 'Non registrato'})`, yourAttemptWasUnsuccessful: 'Il tentativo di autenticazione non è andato a buon fine.', youCouldNotBeAuthenticated: 'Autenticazione non riuscita', areYouSureToReject: 'Sei sicuro? Il tentativo di autenticazione verrà rifiutato se chiudi questa schermata.', @@ -6941,12 +6936,12 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo }, addedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `ha aggiunto "${prohibitedExpense}" alle spese vietate`, removedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `ha rimosso "${prohibitedExpense}" dalle spese vietate`, - updatedReimbursementChoice: ({newReimbursementChoice, oldReimbursementChoice}: UpdatedPolicyReimbursementChoiceParams) => + updatedReimbursementChoice: (newReimbursementChoice: string, oldReimbursementChoice: string) => `ha cambiato il metodo di rimborso in "${newReimbursementChoice}" (in precedenza "${oldReimbursementChoice}")`, setAutoJoin: ({enabled}: {enabled: boolean}) => `${enabled ? 'abilitato' : 'disabilitato'} pre-approvazione delle richieste di adesione allo spazio di lavoro`, - updatedDefaultTitle: ({newDefaultTitle, oldDefaultTitle}: UpdatedPolicyDefaultTitleParams) => + updatedDefaultTitle: (newDefaultTitle: string, oldDefaultTitle: string) => `ha modificato la formula del nome del report personalizzato in "${newDefaultTitle}" (in precedenza "${oldDefaultTitle}")`, - updatedOwnership: ({oldOwnerEmail, oldOwnerName, policyName}: UpdatedPolicyOwnershipParams) => `ha assunto la proprietà di ${policyName} da ${oldOwnerName} (${oldOwnerEmail})`, + updatedOwnership: (oldOwnerEmail: string, oldOwnerName: string, policyName: string) => `ha assunto la proprietà di ${policyName} da ${oldOwnerName} (${oldOwnerEmail})`, updatedAutoHarvesting: ({enabled}: UpdatedPolicyAutoHarvestingParams) => `Invio pianificato ${enabled ? 'abilitato' : 'disabilitato'}`, updatedIndividualBudgetNotification: ({ budgetAmount, @@ -6960,20 +6955,32 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo userEmail, awaitingApprovalSpend, approvedReimbursedClosedSpend, - }: UpdatedPolicyBudgetNotificationParams) => + }: { + budgetAmount: string; + budgetFrequency: string; + budgetName: string; + budgetTypeForNotificationMessage: string; + summaryLink?: string; + thresholdPercentage: number; + totalSpend: number; + unsubmittedSpend: number; + userEmail?: string; + awaitingApprovalSpend: number; + approvedReimbursedClosedSpend: number; + }) => `Attenzione! Questo spazio di lavoro ha un budget ${budgetFrequency} di “${budgetAmount}” per il/la ${budgetTypeForNotificationMessage} “${budgetName}”. ${userEmail} è attualmente a ${approvedReimbursedClosedSpend}, che supera il ${thresholdPercentage}% del budget. Ci sono anche ${awaitingApprovalSpend} in attesa di approvazione e ${unsubmittedSpend} non ancora inviati, per un totale di ${totalSpend}.${summaryLink ? `Ecco un report con tutte quelle spese per i tuoi archivi!` : ''}`, - updatedSharedBudgetNotification: ({ - budgetAmount, - budgetFrequency, - budgetName, - budgetTypeForNotificationMessage, - summaryLink, - thresholdPercentage, - totalSpend, - unsubmittedSpend, - awaitingApprovalSpend, - approvedReimbursedClosedSpend, - }: UpdatedPolicyBudgetNotificationParams) => + updatedSharedBudgetNotification: ( + budgetAmount: string, + budgetFrequency: string, + budgetName: string, + budgetTypeForNotificationMessage: string, + summaryLink: string | undefined, + thresholdPercentage: number, + totalSpend: number, + unsubmittedSpend: number, + awaitingApprovalSpend: number, + approvedReimbursedClosedSpend: number, + ) => `Attenzione! Questo spazio di lavoro ha un budget ${budgetFrequency} di "${budgetAmount}" per il ${budgetTypeForNotificationMessage} "${budgetName}". Al momento sei a ${approvedReimbursedClosedSpend}, che supera il ${thresholdPercentage}% del budget. Ci sono anche ${awaitingApprovalSpend} in attesa di approvazione e ${unsubmittedSpend} non ancora inviati, per un totale di ${totalSpend}. ${summaryLink ? `Ecco un resoconto con tutte quelle spese per i tuoi archivi!` : ''}`, }, roomMembersPage: { diff --git a/src/languages/ja.ts b/src/languages/ja.ts index dd0dce0bc271b..ec3a53b5f166d 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -41,7 +41,6 @@ import type { MarkReimbursedFromIntegrationParams, MissingPropertyParams, MovedFromPersonalSpaceParams, - MultifactorAuthenticationTranslationParams, NextStepParams, NotAllowedExtensionParams, OptionalParam, @@ -62,18 +61,14 @@ import type { UpdatedBudgetParams, UpdatedPolicyApprovalRuleParams, UpdatedPolicyAutoHarvestingParams, - UpdatedPolicyBudgetNotificationParams, UpdatedPolicyCategoriesParams, UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCustomUnitSubRateParams, - UpdatedPolicyDefaultTitleParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyOwnershipParams, UpdatedPolicyPreventSelfApprovalParams, - UpdatedPolicyReimbursementChoiceParams, UpdatedPolicyReimbursementEnabledParams, UpdatedPolicyReimburserParams, UpdatedPolicyReportFieldDefaultValueParams, @@ -648,8 +643,8 @@ const translations: TranslationDeepObject = { biometricsTest: { biometricsTest: '生体認証テスト', authenticationSuccessful: '認証に成功しました', - successfullyAuthenticatedUsing: ({authType}: MultifactorAuthenticationTranslationParams) => `${authType} を使用して正常に認証されました。`, - troubleshootBiometricsStatus: ({registered}: MultifactorAuthenticationTranslationParams) => `生体認証(${registered ? '登録済み' : '未登録'})`, + successfullyAuthenticatedUsing: (authType?: string) => `${authType} を使用して正常に認証されました。`, + troubleshootBiometricsStatus: (registered?: boolean) => `生体認証(${registered ? '登録済み' : '未登録'})`, yourAttemptWasUnsuccessful: '認証を試みましたが、成功しませんでした。', youCouldNotBeAuthenticated: '認証できませんでした', areYouSureToReject: '本当に終了しますか?この画面を閉じると、認証の試行は拒否されます。', @@ -6867,12 +6862,11 @@ ${reportName} }, addedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `禁止経費に「${prohibitedExpense}」を追加しました`, removedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `禁止経費から「${prohibitedExpense}」を削除しました`, - updatedReimbursementChoice: ({newReimbursementChoice, oldReimbursementChoice}: UpdatedPolicyReimbursementChoiceParams) => + updatedReimbursementChoice: (newReimbursementChoice: string, oldReimbursementChoice: string) => `精算方法を「${newReimbursementChoice}」(以前は「${oldReimbursementChoice}」)に変更しました`, setAutoJoin: ({enabled}: {enabled: boolean}) => `${enabled ? '有効' : '無効'} ワークスペース参加リクエストの事前承認`, - updatedDefaultTitle: ({newDefaultTitle, oldDefaultTitle}: UpdatedPolicyDefaultTitleParams) => - `カスタムレポート名の数式を「${newDefaultTitle}」に変更しました(以前は「${oldDefaultTitle}」)`, - updatedOwnership: ({oldOwnerEmail, oldOwnerName, policyName}: UpdatedPolicyOwnershipParams) => `${oldOwnerName}(${oldOwnerEmail})から${policyName}の所有権を引き継ぎました`, + updatedDefaultTitle: (newDefaultTitle: string, oldDefaultTitle: string) => `カスタムレポート名の数式を「${newDefaultTitle}」に変更しました(以前は「${oldDefaultTitle}」)`, + updatedOwnership: (oldOwnerEmail: string, oldOwnerName: string, policyName: string) => `${oldOwnerName}(${oldOwnerEmail})から${policyName}の所有権を引き継ぎました`, updatedAutoHarvesting: ({enabled}: UpdatedPolicyAutoHarvestingParams) => `${enabled ? '有効' : '無効'} の送信を予約しました`, updatedIndividualBudgetNotification: ({ budgetAmount, @@ -6886,20 +6880,32 @@ ${reportName} userEmail, awaitingApprovalSpend, approvedReimbursedClosedSpend, - }: UpdatedPolicyBudgetNotificationParams) => + }: { + budgetAmount: string; + budgetFrequency: string; + budgetName: string; + budgetTypeForNotificationMessage: string; + summaryLink?: string; + thresholdPercentage: number; + totalSpend: number; + unsubmittedSpend: number; + userEmail?: string; + awaitingApprovalSpend: number; + approvedReimbursedClosedSpend: number; + }) => `お知らせです!このワークスペースには、${budgetTypeForNotificationMessage}「${budgetName}」に対して、${budgetFrequency}あたり「${budgetAmount}」の予算が設定されています。${userEmail} は現在 ${approvedReimbursedClosedSpend} を利用しており、これは予算の ${thresholdPercentage}% を超えています。さらに承認待ちが ${awaitingApprovalSpend}、未申請が ${unsubmittedSpend} あり、合計で ${totalSpend} になります。${summaryLink ? `こちらがレポートです。これらすべての経費の記録としてご利用ください!` : ''}`, - updatedSharedBudgetNotification: ({ - budgetAmount, - budgetFrequency, - budgetName, - budgetTypeForNotificationMessage, - summaryLink, - thresholdPercentage, - totalSpend, - unsubmittedSpend, - awaitingApprovalSpend, - approvedReimbursedClosedSpend, - }: UpdatedPolicyBudgetNotificationParams) => + updatedSharedBudgetNotification: ( + budgetAmount: string, + budgetFrequency: string, + budgetName: string, + budgetTypeForNotificationMessage: string, + summaryLink: string | undefined, + thresholdPercentage: number, + totalSpend: number, + unsubmittedSpend: number, + awaitingApprovalSpend: number, + approvedReimbursedClosedSpend: number, + ) => `お知らせです!このワークスペースには、${budgetTypeForNotificationMessage}「${budgetName}」に対して、${budgetFrequency}の予算額「${budgetAmount}」が設定されています。現在の金額は${approvedReimbursedClosedSpend}で、予算の${thresholdPercentage}%を超えています。さらに承認待ちの金額が${awaitingApprovalSpend}あり、まだ提出されていない金額が${unsubmittedSpend}あるため、合計は${totalSpend}になります。${summaryLink ? `こちらがレポートです。これらすべての経費が記録用にまとめられています!` : ''}`, }, roomMembersPage: { diff --git a/src/languages/nl.ts b/src/languages/nl.ts index a39f1fa5c45a5..4f9914683ba4e 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -41,7 +41,6 @@ import type { MarkReimbursedFromIntegrationParams, MissingPropertyParams, MovedFromPersonalSpaceParams, - MultifactorAuthenticationTranslationParams, NextStepParams, NotAllowedExtensionParams, OptionalParam, @@ -62,18 +61,14 @@ import type { UpdatedBudgetParams, UpdatedPolicyApprovalRuleParams, UpdatedPolicyAutoHarvestingParams, - UpdatedPolicyBudgetNotificationParams, UpdatedPolicyCategoriesParams, UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCustomUnitSubRateParams, - UpdatedPolicyDefaultTitleParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyOwnershipParams, UpdatedPolicyPreventSelfApprovalParams, - UpdatedPolicyReimbursementChoiceParams, UpdatedPolicyReimbursementEnabledParams, UpdatedPolicyReimburserParams, UpdatedPolicyReportFieldDefaultValueParams, @@ -648,8 +643,8 @@ const translations: TranslationDeepObject = { biometricsTest: { biometricsTest: 'Biometrische test', authenticationSuccessful: 'Verificatie geslaagd', - successfullyAuthenticatedUsing: ({authType}: MultifactorAuthenticationTranslationParams) => `Je bent succesvol geauthenticeerd met ${authType}.`, - troubleshootBiometricsStatus: ({registered}: MultifactorAuthenticationTranslationParams) => `Biometrie (${registered ? 'Geregistreerd' : 'Niet geregistreerd'})`, + successfullyAuthenticatedUsing: (authType?: string) => `Je bent succesvol geauthenticeerd met ${authType}.`, + troubleshootBiometricsStatus: (registered?: boolean) => `Biometrie (${registered ? 'Geregistreerd' : 'Niet geregistreerd'})`, yourAttemptWasUnsuccessful: 'Je verificatiepoging is niet gelukt.', youCouldNotBeAuthenticated: 'Je kon niet worden geverifieerd', areYouSureToReject: 'Weet je het zeker? De authenticatiepoging wordt geweigerd als je dit scherm sluit.', @@ -6920,13 +6915,11 @@ Vereis onkostendetails zoals bonnen en beschrijvingen, stel limieten en standaar }, addedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `heeft ‘${prohibitedExpense}’ toegevoegd aan verboden uitgaven`, removedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `heeft „${prohibitedExpense}” verwijderd uit verboden uitgaven`, - updatedReimbursementChoice: ({newReimbursementChoice, oldReimbursementChoice}: UpdatedPolicyReimbursementChoiceParams) => + updatedReimbursementChoice: (newReimbursementChoice: string, oldReimbursementChoice: string) => `vergoedingsmethode gewijzigd naar ‘${newReimbursementChoice}’ (voorheen ‘${oldReimbursementChoice}’)`, setAutoJoin: ({enabled}: {enabled: boolean}) => `${enabled ? 'ingeschakeld' : 'uitgeschakeld'} vooraf goedkeuren van werkruimte-toevoegingsverzoeken`, - updatedDefaultTitle: ({newDefaultTitle, oldDefaultTitle}: UpdatedPolicyDefaultTitleParams) => - `heeft aangepaste rapportnaamformule gewijzigd in "${newDefaultTitle}" (voorheen "${oldDefaultTitle}")`, - updatedOwnership: ({oldOwnerEmail, oldOwnerName, policyName}: UpdatedPolicyOwnershipParams) => - `heeft het eigendom van ${policyName} overgenomen van ${oldOwnerName} (${oldOwnerEmail})`, + updatedDefaultTitle: (newDefaultTitle: string, oldDefaultTitle: string) => `heeft aangepaste rapportnaamformule gewijzigd in "${newDefaultTitle}" (voorheen "${oldDefaultTitle}")`, + updatedOwnership: (oldOwnerEmail: string, oldOwnerName: string, policyName: string) => `heeft het eigendom van ${policyName} overgenomen van ${oldOwnerName} (${oldOwnerEmail})`, updatedAutoHarvesting: ({enabled}: UpdatedPolicyAutoHarvestingParams) => `${enabled ? 'ingeschakeld' : 'uitgeschakeld'} gepland indienen`, updatedIndividualBudgetNotification: ({ budgetAmount, @@ -6940,20 +6933,32 @@ Vereis onkostendetails zoals bonnen en beschrijvingen, stel limieten en standaar userEmail, awaitingApprovalSpend, approvedReimbursedClosedSpend, - }: UpdatedPolicyBudgetNotificationParams) => + }: { + budgetAmount: string; + budgetFrequency: string; + budgetName: string; + budgetTypeForNotificationMessage: string; + summaryLink?: string; + thresholdPercentage: number; + totalSpend: number; + unsubmittedSpend: number; + userEmail?: string; + awaitingApprovalSpend: number; + approvedReimbursedClosedSpend: number; + }) => `Let op! Deze workspace heeft een ${budgetFrequency}-budget van '${budgetAmount}' voor de ${budgetTypeForNotificationMessage} '${budgetName}'. ${userEmail} zit momenteel op ${approvedReimbursedClosedSpend}, wat meer is dan ${thresholdPercentage}% van het budget. Er staat ook nog ${awaitingApprovalSpend} in afwachting van goedkeuring en ${unsubmittedSpend} dat nog niet is ingediend, voor een totaal van ${totalSpend}.${summaryLink ? `Hier is een rapport met al die uitgaven voor jouw administratie!` : ''}`, - updatedSharedBudgetNotification: ({ - budgetAmount, - budgetFrequency, - budgetName, - budgetTypeForNotificationMessage, - summaryLink, - thresholdPercentage, - totalSpend, - unsubmittedSpend, - awaitingApprovalSpend, - approvedReimbursedClosedSpend, - }: UpdatedPolicyBudgetNotificationParams) => + updatedSharedBudgetNotification: ( + budgetAmount: string, + budgetFrequency: string, + budgetName: string, + budgetTypeForNotificationMessage: string, + summaryLink: string | undefined, + thresholdPercentage: number, + totalSpend: number, + unsubmittedSpend: number, + awaitingApprovalSpend: number, + approvedReimbursedClosedSpend: number, + ) => `Let op! Deze workspace heeft een ${budgetFrequency}-budget van ‘${budgetAmount}’ voor de ${budgetTypeForNotificationMessage} ‘${budgetName}’. Je zit nu op ${approvedReimbursedClosedSpend}, wat meer is dan ${thresholdPercentage}% van het budget. Er staat ook nog ${awaitingApprovalSpend} in afwachting van goedkeuring en ${unsubmittedSpend} is nog niet ingediend, voor een totaal van ${totalSpend}. ${summaryLink ? `Hier is een rapport met al die onkosten voor je administratie!` : ''}`, }, roomMembersPage: { diff --git a/src/languages/params.ts b/src/languages/params.ts index 8a5112bbb527d..456a5cadb055b 100644 --- a/src/languages/params.ts +++ b/src/languages/params.ts @@ -5,10 +5,10 @@ import type {DelegateRole} from '@src/types/onyx/Account'; import type {AllConnectionName, ConnectionName, PolicyConnectionSyncStage, SageIntacctMappingName} from '@src/types/onyx/Policy'; import type {ViolationDataType} from '@src/types/onyx/TransactionViolation'; -type MultifactorAuthenticationTranslationParams = { - authType?: string; - registered?: boolean; -}; +// type MultifactorAuthenticationTranslationParams = { +// authType?: string; +// registered?: boolean; +// }; type ZipCodeExampleFormatParams = { zipSampleFormat: string; @@ -184,7 +184,7 @@ type UpdatedPolicyApprovalRuleParams = {oldApproverEmail: string; oldApproverNam type UpdatedPolicyPreventSelfApprovalParams = {oldValue: string; newValue: string}; -type UpdatedPolicyOwnershipParams = {oldOwnerEmail: string; oldOwnerName: string; policyName: string}; +// type UpdatedPolicyOwnershipParams = {oldOwnerEmail: string; oldOwnerName: string; policyName: string}; type UpdatedPolicyTimeEnabledParams = {enabled?: boolean}; @@ -192,23 +192,23 @@ type UpdatedPolicyTimeRateParams = {newRate?: string; oldRate?: string}; type UpdatedPolicyAutoHarvestingParams = {enabled: boolean}; -type UpdatedPolicyBudgetNotificationParams = { - budgetAmount: string; - budgetFrequency: string; - budgetName: string; - budgetTypeForNotificationMessage: string; - summaryLink?: string; - thresholdPercentage: number; - totalSpend: number; - unsubmittedSpend: number; - userEmail?: string; - awaitingApprovalSpend: number; - approvedReimbursedClosedSpend: number; -}; +// type UpdatedPolicyBudgetNotificationParams = { +// budgetAmount: string; +// budgetFrequency: string; +// budgetName: string; +// budgetTypeForNotificationMessage: string; +// summaryLink?: string; +// thresholdPercentage: number; +// totalSpend: number; +// unsubmittedSpend: number; +// userEmail?: string; +// awaitingApprovalSpend: number; +// approvedReimbursedClosedSpend: number; +// }; -type UpdatedPolicyReimbursementChoiceParams = {newReimbursementChoice: string; oldReimbursementChoice: string}; +// type UpdatedPolicyReimbursementChoiceParams = {newReimbursementChoice: string; oldReimbursementChoice: string}; -type UpdatedPolicyDefaultTitleParams = {newDefaultTitle: string; oldDefaultTitle: string}; +// type UpdatedPolicyDefaultTitleParams = {newDefaultTitle: string; oldDefaultTitle: string}; type UpdatedPolicyManualApprovalThresholdParams = {oldLimit: string; newLimit: string}; @@ -506,10 +506,10 @@ export type { UpgradeSuccessMessageParams, WalletAgreementParams, NextStepParams, - UpdatedPolicyOwnershipParams, + // UpdatedPolicyOwnershipParams, UpdatedPolicyAutoHarvestingParams, - UpdatedPolicyBudgetNotificationParams, - UpdatedPolicyReimbursementChoiceParams, - UpdatedPolicyDefaultTitleParams, - MultifactorAuthenticationTranslationParams, + // UpdatedPolicyBudgetNotificationParams, + // UpdatedPolicyReimbursementChoiceParams, + // UpdatedPolicyDefaultTitleParams, + // MultifactorAuthenticationTranslationParams, }; diff --git a/src/languages/pl.ts b/src/languages/pl.ts index eff540d830f58..29e651b6efc8b 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -41,7 +41,6 @@ import type { MarkReimbursedFromIntegrationParams, MissingPropertyParams, MovedFromPersonalSpaceParams, - MultifactorAuthenticationTranslationParams, NextStepParams, NotAllowedExtensionParams, OptionalParam, @@ -62,18 +61,14 @@ import type { UpdatedBudgetParams, UpdatedPolicyApprovalRuleParams, UpdatedPolicyAutoHarvestingParams, - UpdatedPolicyBudgetNotificationParams, UpdatedPolicyCategoriesParams, UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCustomUnitSubRateParams, - UpdatedPolicyDefaultTitleParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyOwnershipParams, UpdatedPolicyPreventSelfApprovalParams, - UpdatedPolicyReimbursementChoiceParams, UpdatedPolicyReimbursementEnabledParams, UpdatedPolicyReimburserParams, UpdatedPolicyReportFieldDefaultValueParams, @@ -648,8 +643,8 @@ const translations: TranslationDeepObject = { biometricsTest: { biometricsTest: 'Test biometrii', authenticationSuccessful: 'Uwierzytelnianie powiodło się', - successfullyAuthenticatedUsing: ({authType}: MultifactorAuthenticationTranslationParams) => `Pomyślnie uwierzytelniono przy użyciu ${authType}.`, - troubleshootBiometricsStatus: ({registered}: MultifactorAuthenticationTranslationParams) => `Dane biometryczne (${registered ? 'Zarejestrowano' : 'Nie zarejestrowano'})`, + successfullyAuthenticatedUsing: (authType?: string) => `Pomyślnie uwierzytelniono przy użyciu ${authType}.`, + troubleshootBiometricsStatus: (registered?: boolean) => `Dane biometryczne (${registered ? 'Zarejestrowano' : 'Nie zarejestrowano'})`, yourAttemptWasUnsuccessful: 'Twoja próba uwierzytelnienia nie powiodła się.', youCouldNotBeAuthenticated: 'Nie udało się uwierzytelnić użytkownika', areYouSureToReject: 'Na pewno? Próba uwierzytelnienia zostanie odrzucona, jeśli zamkniesz ten ekran.', @@ -6909,12 +6904,12 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i }, addedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `dodano „${prohibitedExpense}” do zabronionych wydatków`, removedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `usunięto „${prohibitedExpense}” z wydatków zabronionych`, - updatedReimbursementChoice: ({newReimbursementChoice, oldReimbursementChoice}: UpdatedPolicyReimbursementChoiceParams) => + updatedReimbursementChoice: (newReimbursementChoice: string, oldReimbursementChoice: string) => `zmieniono metodę zwrotu kosztów na „${newReimbursementChoice}” (wcześniej „${oldReimbursementChoice}”)`, setAutoJoin: ({enabled}: {enabled: boolean}) => `${enabled ? 'włączone' : 'wyłączone'} wstępna akceptacja próśb o dołączenie do przestrzeni workspace`, - updatedDefaultTitle: ({newDefaultTitle, oldDefaultTitle}: UpdatedPolicyDefaultTitleParams) => + updatedDefaultTitle: (newDefaultTitle: string, oldDefaultTitle: string) => `zmieniono formułę nazwy niestandardowego raportu na „${newDefaultTitle}” (wcześniej „${oldDefaultTitle}”)`, - updatedOwnership: ({oldOwnerEmail, oldOwnerName, policyName}: UpdatedPolicyOwnershipParams) => `przejął(a) własność ${policyName} od ${oldOwnerName} (${oldOwnerEmail})`, + updatedOwnership: (oldOwnerEmail: string, oldOwnerName: string, policyName: string) => `przejął(a) własność ${policyName} od ${oldOwnerName} (${oldOwnerEmail})`, updatedAutoHarvesting: ({enabled}: UpdatedPolicyAutoHarvestingParams) => `Zaplanowane przesłanie ${enabled ? 'włączone' : 'wyłączone'}`, updatedIndividualBudgetNotification: ({ budgetAmount, @@ -6928,20 +6923,32 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i userEmail, awaitingApprovalSpend, approvedReimbursedClosedSpend, - }: UpdatedPolicyBudgetNotificationParams) => + }: { + budgetAmount: string; + budgetFrequency: string; + budgetName: string; + budgetTypeForNotificationMessage: string; + summaryLink?: string; + thresholdPercentage: number; + totalSpend: number; + unsubmittedSpend: number; + userEmail?: string; + awaitingApprovalSpend: number; + approvedReimbursedClosedSpend: number; + }) => `Uwaga! Ta przestrzeń robocza ma ${budgetFrequency} budżet w wysokości „${budgetAmount}” dla ${budgetTypeForNotificationMessage} „${budgetName}”. ${userEmail} jest obecnie na poziomie ${approvedReimbursedClosedSpend}, co przekracza ${thresholdPercentage}% budżetu. Jest też ${awaitingApprovalSpend} oczekujące na zatwierdzenie oraz ${unsubmittedSpend}, które nie zostały jeszcze przesłane, co daje łączną kwotę ${totalSpend}.${summaryLink ? `Oto raport ze wszystkimi tymi wydatkami do Twojej dokumentacji!` : ''}`, - updatedSharedBudgetNotification: ({ - budgetAmount, - budgetFrequency, - budgetName, - budgetTypeForNotificationMessage, - summaryLink, - thresholdPercentage, - totalSpend, - unsubmittedSpend, - awaitingApprovalSpend, - approvedReimbursedClosedSpend, - }: UpdatedPolicyBudgetNotificationParams) => + updatedSharedBudgetNotification: ( + budgetAmount: string, + budgetFrequency: string, + budgetName: string, + budgetTypeForNotificationMessage: string, + summaryLink: string | undefined, + thresholdPercentage: number, + totalSpend: number, + unsubmittedSpend: number, + awaitingApprovalSpend: number, + approvedReimbursedClosedSpend: number, + ) => `Uwaga! Ta przestrzeń robocza ma ${budgetFrequency} budżet w wysokości „${budgetAmount}” dla ${budgetTypeForNotificationMessage} „${budgetName}”. Obecnie wykorzystano ${approvedReimbursedClosedSpend}, co przekracza ${thresholdPercentage}% budżetu. Dodatkowo ${awaitingApprovalSpend} czeka na zatwierdzenie, a ${unsubmittedSpend} nie zostało jeszcze przesłane, co daje łącznie ${totalSpend}. ${summaryLink ? `Oto raport ze wszystkimi tymi wydatkami do Twoich dokumentów!` : ''}`, }, roomMembersPage: { diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index a98b7a4af5567..7d66dabf6650d 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -41,7 +41,6 @@ import type { MarkReimbursedFromIntegrationParams, MissingPropertyParams, MovedFromPersonalSpaceParams, - MultifactorAuthenticationTranslationParams, NextStepParams, NotAllowedExtensionParams, OptionalParam, @@ -62,18 +61,14 @@ import type { UpdatedBudgetParams, UpdatedPolicyApprovalRuleParams, UpdatedPolicyAutoHarvestingParams, - UpdatedPolicyBudgetNotificationParams, UpdatedPolicyCategoriesParams, UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCustomUnitSubRateParams, - UpdatedPolicyDefaultTitleParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyOwnershipParams, UpdatedPolicyPreventSelfApprovalParams, - UpdatedPolicyReimbursementChoiceParams, UpdatedPolicyReimbursementEnabledParams, UpdatedPolicyReimburserParams, UpdatedPolicyReportFieldDefaultValueParams, @@ -647,8 +642,8 @@ const translations: TranslationDeepObject = { biometricsTest: { biometricsTest: 'Teste de biometria', authenticationSuccessful: 'Autenticação bem-sucedida', - successfullyAuthenticatedUsing: ({authType}: MultifactorAuthenticationTranslationParams) => `Você se autenticou com sucesso usando ${authType}.`, - troubleshootBiometricsStatus: ({registered}: MultifactorAuthenticationTranslationParams) => `Biometria (${registered ? 'Registrado' : 'Não registrado'})`, + successfullyAuthenticatedUsing: (authType?: string) => `Você se autenticou com sucesso usando ${authType}.`, + troubleshootBiometricsStatus: (registered?: boolean) => `Biometria (${registered ? 'Registrado' : 'Não registrado'})`, yourAttemptWasUnsuccessful: 'Sua tentativa de autenticação não foi bem-sucedida.', youCouldNotBeAuthenticated: 'Não foi possível autenticar você', areYouSureToReject: 'Tem certeza? A tentativa de autenticação será rejeitada se você fechar esta tela.', @@ -6912,12 +6907,12 @@ Exija dados de despesas como recibos e descrições, defina limites e padrões e }, addedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `adicionou "${prohibitedExpense}" às despesas proibidas`, removedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `removeu "${prohibitedExpense}" das despesas proibidas`, - updatedReimbursementChoice: ({newReimbursementChoice, oldReimbursementChoice}: UpdatedPolicyReimbursementChoiceParams) => + updatedReimbursementChoice: (newReimbursementChoice: string, oldReimbursementChoice: string) => `alterou o método de reembolso para "${newReimbursementChoice}" (antes "${oldReimbursementChoice}")`, setAutoJoin: ({enabled}: {enabled: boolean}) => `${enabled ? 'ativado' : 'desativado'} pré-aprovação de solicitações para entrar no workspace`, - updatedDefaultTitle: ({newDefaultTitle, oldDefaultTitle}: UpdatedPolicyDefaultTitleParams) => + updatedDefaultTitle: (newDefaultTitle: string, oldDefaultTitle: string) => `alterou a fórmula do nome do relatório personalizado para "${newDefaultTitle}" (antes "${oldDefaultTitle}")`, - updatedOwnership: ({oldOwnerEmail, oldOwnerName, policyName}: UpdatedPolicyOwnershipParams) => `assumiu a propriedade de ${policyName} de ${oldOwnerName} (${oldOwnerEmail})`, + updatedOwnership: (oldOwnerEmail: string, oldOwnerName: string, policyName: string) => `assumiu a propriedade de ${policyName} de ${oldOwnerName} (${oldOwnerEmail})`, updatedAutoHarvesting: ({enabled}: UpdatedPolicyAutoHarvestingParams) => `Envio agendado ${enabled ? 'ativado' : 'desativado'}`, updatedIndividualBudgetNotification: ({ budgetAmount, @@ -6931,20 +6926,32 @@ Exija dados de despesas como recibos e descrições, defina limites e padrões e userEmail, awaitingApprovalSpend, approvedReimbursedClosedSpend, - }: UpdatedPolicyBudgetNotificationParams) => + }: { + budgetAmount: string; + budgetFrequency: string; + budgetName: string; + budgetTypeForNotificationMessage: string; + summaryLink?: string; + thresholdPercentage: number; + totalSpend: number; + unsubmittedSpend: number; + userEmail?: string; + awaitingApprovalSpend: number; + approvedReimbursedClosedSpend: number; + }) => `Atenção! Este espaço de trabalho tem um orçamento ${budgetFrequency} de “${budgetAmount}” para o ${budgetTypeForNotificationMessage} “${budgetName}”. ${userEmail} está atualmente em ${approvedReimbursedClosedSpend}, o que ultrapassa ${thresholdPercentage}% do orçamento. Também há ${awaitingApprovalSpend} aguardando aprovação e ${unsubmittedSpend} que ainda não foi enviado, totalizando ${totalSpend}.${summaryLink ? `Aqui está um relatório com todas essas despesas para o seu controle!` : ''}`, - updatedSharedBudgetNotification: ({ - budgetAmount, - budgetFrequency, - budgetName, - budgetTypeForNotificationMessage, - summaryLink, - thresholdPercentage, - totalSpend, - unsubmittedSpend, - awaitingApprovalSpend, - approvedReimbursedClosedSpend, - }: UpdatedPolicyBudgetNotificationParams) => + updatedSharedBudgetNotification: ( + budgetAmount: string, + budgetFrequency: string, + budgetName: string, + budgetTypeForNotificationMessage: string, + summaryLink: string | undefined, + thresholdPercentage: number, + totalSpend: number, + unsubmittedSpend: number, + awaitingApprovalSpend: number, + approvedReimbursedClosedSpend: number, + ) => `Atenção! Este workspace tem um orçamento ${budgetFrequency} de "${budgetAmount}" para o(a) ${budgetTypeForNotificationMessage} "${budgetName}". No momento você está em ${approvedReimbursedClosedSpend}, o que está acima de ${thresholdPercentage}% do orçamento. Há também ${awaitingApprovalSpend} aguardando aprovação e ${unsubmittedSpend} que ainda não foi enviado, totalizando ${totalSpend}. ${summaryLink ? `Aqui está um relatório com todas essas despesas para o seu controle!` : ''}`, }, roomMembersPage: { diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 86ee5da0881d8..b82c7bd8d3e16 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -41,7 +41,6 @@ import type { MarkReimbursedFromIntegrationParams, MissingPropertyParams, MovedFromPersonalSpaceParams, - MultifactorAuthenticationTranslationParams, NextStepParams, NotAllowedExtensionParams, OptionalParam, @@ -62,18 +61,14 @@ import type { UpdatedBudgetParams, UpdatedPolicyApprovalRuleParams, UpdatedPolicyAutoHarvestingParams, - UpdatedPolicyBudgetNotificationParams, UpdatedPolicyCategoriesParams, UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCustomUnitSubRateParams, - UpdatedPolicyDefaultTitleParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyOwnershipParams, UpdatedPolicyPreventSelfApprovalParams, - UpdatedPolicyReimbursementChoiceParams, UpdatedPolicyReimbursementEnabledParams, UpdatedPolicyReimburserParams, UpdatedPolicyReportFieldDefaultValueParams, @@ -643,8 +638,8 @@ const translations: TranslationDeepObject = { biometricsTest: { biometricsTest: '生物识别测试', authenticationSuccessful: '验证成功', - successfullyAuthenticatedUsing: ({authType}: MultifactorAuthenticationTranslationParams) => `您已成功使用 ${authType} 完成验证。`, - troubleshootBiometricsStatus: ({registered}: MultifactorAuthenticationTranslationParams) => `生物识别(${registered ? '已注册' : '未注册'})`, + successfullyAuthenticatedUsing: (authType?: string) => `您已成功使用 ${authType} 完成验证。`, + troubleshootBiometricsStatus: (registered?: boolean) => `生物识别(${registered ? '已注册' : '未注册'})`, yourAttemptWasUnsuccessful: '您的身份验证尝试未成功。', youCouldNotBeAuthenticated: '无法验证您的身份', areYouSureToReject: '您确定吗?如果您关闭此界面,此次身份验证尝试将被拒绝。', @@ -6756,11 +6751,10 @@ ${reportName} }, addedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `已将“${prohibitedExpense}”添加到禁止报销的费用中`, removedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `已从禁用报销类别中移除“${prohibitedExpense}”`, - updatedReimbursementChoice: ({newReimbursementChoice, oldReimbursementChoice}: UpdatedPolicyReimbursementChoiceParams) => - `将报销方式更改为“${newReimbursementChoice}”(原为“${oldReimbursementChoice}”)`, + updatedReimbursementChoice: (newReimbursementChoice: string, oldReimbursementChoice: string) => `将报销方式更改为“${newReimbursementChoice}”(原为“${oldReimbursementChoice}”)`, setAutoJoin: ({enabled}: {enabled: boolean}) => `${enabled ? '已启用' : '已禁用'} 预先批准加入工作区的请求`, - updatedDefaultTitle: ({newDefaultTitle, oldDefaultTitle}: UpdatedPolicyDefaultTitleParams) => `将自定义报表名称公式更改为“${newDefaultTitle}”(之前为“${oldDefaultTitle}”)`, - updatedOwnership: ({oldOwnerEmail, oldOwnerName, policyName}: UpdatedPolicyOwnershipParams) => `从 ${oldOwnerName}(${oldOwnerEmail})接管了 ${policyName} 的所有权`, + updatedDefaultTitle: (newDefaultTitle: string, oldDefaultTitle: string) => `将自定义报表名称公式更改为“${newDefaultTitle}”(之前为“${oldDefaultTitle}”)`, + updatedOwnership: (oldOwnerEmail: string, oldOwnerName: string, policyName: string) => `从 ${oldOwnerName}(${oldOwnerEmail})接管了 ${policyName} 的所有权`, updatedAutoHarvesting: ({enabled}: UpdatedPolicyAutoHarvestingParams) => `已计划提交 ${enabled ? '已启用' : '已禁用'}`, updatedIndividualBudgetNotification: ({ budgetAmount, @@ -6774,20 +6768,32 @@ ${reportName} userEmail, awaitingApprovalSpend, approvedReimbursedClosedSpend, - }: UpdatedPolicyBudgetNotificationParams) => + }: { + budgetAmount: string; + budgetFrequency: string; + budgetName: string; + budgetTypeForNotificationMessage: string; + summaryLink?: string; + thresholdPercentage: number; + totalSpend: number; + unsubmittedSpend: number; + userEmail?: string; + awaitingApprovalSpend: number; + approvedReimbursedClosedSpend: number; + }) => `注意!此工作区的「${budgetTypeForNotificationMessage}:${budgetName}」有一项${budgetFrequency}预算,金额为「${budgetAmount}」。${userEmail} 当前支出为 ${approvedReimbursedClosedSpend},已超过预算的 ${thresholdPercentage}%。另外还有 ${awaitingApprovalSpend} 正在等待审批,以及 ${unsubmittedSpend} 尚未提交,总计为 ${totalSpend}。${summaryLink ? `这里有一份报表,包含了所有这些报销,供你留档!` : ''}`, - updatedSharedBudgetNotification: ({ - budgetAmount, - budgetFrequency, - budgetName, - budgetTypeForNotificationMessage, - summaryLink, - thresholdPercentage, - totalSpend, - unsubmittedSpend, - awaitingApprovalSpend, - approvedReimbursedClosedSpend, - }: UpdatedPolicyBudgetNotificationParams) => + updatedSharedBudgetNotification: ( + budgetAmount: string, + budgetFrequency: string, + budgetName: string, + budgetTypeForNotificationMessage: string, + summaryLink: string | undefined, + thresholdPercentage: number, + totalSpend: number, + unsubmittedSpend: number, + awaitingApprovalSpend: number, + approvedReimbursedClosedSpend: number, + ) => `提醒!此工作区的${budgetTypeForNotificationMessage}“${budgetName}”设有${budgetFrequency}预算“${budgetAmount}”。你当前已花费${approvedReimbursedClosedSpend},已超过预算的${thresholdPercentage}%。另外还有${awaitingApprovalSpend}在等待审批,以及${unsubmittedSpend}尚未提交,总计${totalSpend}。${summaryLink ? `这里有一份报表,包含了所有相关报销记录,供你留档保存!` : ''}`, }, roomMembersPage: { diff --git a/src/libs/ReportActionsUtils.ts b/src/libs/ReportActionsUtils.ts index 2f9ba2aaf85d0..ad0b50660d438 100644 --- a/src/libs/ReportActionsUtils.ts +++ b/src/libs/ReportActionsUtils.ts @@ -3790,7 +3790,7 @@ function getUpdatedReimbursementChoiceMessage(translate: LocalizedTranslate, rep const newReimbursementChoice = translate(`workspace.common.reimbursementChoice.${newChoice}`); const oldReimbursementChoice = translate(`workspace.common.reimbursementChoice.${oldChoice}`); - return translate('workspaceActions.updatedReimbursementChoice', {newReimbursementChoice, oldReimbursementChoice}); + return translate('workspaceActions.updatedReimbursementChoice', newReimbursementChoice, oldReimbursementChoice); } function getSetAutoJoinMessage(translate: LocalizedTranslate, reportAction: OnyxEntry) { @@ -3810,7 +3810,7 @@ function getUpdatedDefaultTitleMessage(translate: LocalizedTranslate, reportActi return getReportActionText(reportAction); } - return translate('workspaceActions.updatedDefaultTitle', {newDefaultTitle, oldDefaultTitle}); + return translate('workspaceActions.updatedDefaultTitle', newDefaultTitle, oldDefaultTitle); } function getUpdatedAutoHarvestingMessage(translate: LocalizedTranslate, reportAction: OnyxEntry) { @@ -3905,18 +3905,18 @@ function getUpdatedSharedBudgetNotificationMessage(translate: LocalizedTranslate summaryLink = extractLinksFromMessageHtmlString(summaryLinkMessage); } - return translate('workspaceActions.updatedSharedBudgetNotification', { + return translate('workspaceActions.updatedSharedBudgetNotification', budgetAmount, - budgetFrequency: translate(`workspace.common.budgetFrequency.${budgetFrequency}` as TranslationPaths), + translate(`workspace.common.budgetFrequency.${budgetFrequency}` as TranslationPaths), budgetName, - budgetTypeForNotificationMessage: translate(`workspace.common.budgetTypeForNotificationMessage.${budgetTypeForNotificationMessage}`), + translate(`workspace.common.budgetTypeForNotificationMessage.${budgetTypeForNotificationMessage}`), summaryLink, thresholdPercentage, totalSpend, unsubmittedSpend, awaitingApprovalSpend, approvedReimbursedClosedSpend, - }); + ); } function getUpdatedOwnershipMessage(translate: LocalizedTranslate, reportAction: OnyxEntry, policy: OnyxEntry) { @@ -3926,7 +3926,7 @@ function getUpdatedOwnershipMessage(translate: LocalizedTranslate, reportAction: return getReportActionText(reportAction); } - return translate('workspaceActions.updatedOwnership', {oldOwnerEmail, oldOwnerName, policyName: policy?.name ?? ''}); + return translate('workspaceActions.updatedOwnership', oldOwnerEmail, oldOwnerName, policy?.name ?? ''); } function getChangedApproverActionMessage( From ef8311f49c33464089bbb1e04f7aa4f1612d42d7 Mon Sep 17 00:00:00 2001 From: jakubstec Date: Wed, 4 Mar 2026 13:13:16 +0100 Subject: [PATCH 02/11] (refactor): simplify translation param types to standalone params part3 --- src/languages/de.ts | 54 ++++++++++++++++++++++++--------------- src/languages/en.ts | 44 ++++++++++++++++---------------- src/languages/es.ts | 32 +++++++++++------------ src/languages/fr.ts | 54 ++++++++++++++++++++++++--------------- src/languages/it.ts | 54 ++++++++++++++++++++++++--------------- src/languages/ja.ts | 54 ++++++++++++++++++++++++--------------- src/languages/nl.ts | 54 ++++++++++++++++++++++++--------------- src/languages/params.ts | 44 ++++++++++++++++---------------- src/languages/pl.ts | 54 ++++++++++++++++++++++++--------------- src/languages/pt-BR.ts | 54 ++++++++++++++++++++++++--------------- src/languages/zh-hans.ts | 55 ++++++++++++++++++++++++---------------- 11 files changed, 324 insertions(+), 229 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index 1ebc68d441b96..bba81da2a90ab 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -11,6 +11,7 @@ */ import {CONST as COMMON_CONST} from 'expensify-common'; import startCase from 'lodash/startCase'; +import type {ValueOf} from 'type-fest'; import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow'; import StringUtils from '@libs/StringUtils'; import dedent from '@libs/StringUtils/dedent'; @@ -41,7 +42,6 @@ import type { MarkReimbursedFromIntegrationParams, MissingPropertyParams, MovedFromPersonalSpaceParams, - NextStepParams, NotAllowedExtensionParams, OptionalParam, PaidElsewhereParams, @@ -86,7 +86,6 @@ import type { UpdatePolicyCustomUnitParams, UpdatePolicyCustomUnitTaxEnabledParams, UpdateRoleParams, - UpgradeSuccessMessageParams, UsePlusButtonParams, UserIsAlreadyMemberParams, UserSplitParams, @@ -107,20 +106,17 @@ import type { ViolationsTagOutOfPolicyParams, ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, - WalletAgreementParams, WalletProgramParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, WeSentYouMagicSignInLinkParams, WorkEmailMergingBlockedParams, WorkEmailResendCodeParams, - WorkflowSettingsParam, WorkspaceLockedPlanTypeParams, WorkspaceMemberList, WorkspaceMembersCountParams, WorkspaceOwnerWillNeedToAddOrUpdatePaymentCardParams, WorkspaceRouteParams, - WorkspaceShareNoteParams, WorkspacesListRouteParams, WorkspaceUpgradeNoteParams, WorkspaceYouMayJoin, @@ -1475,7 +1471,7 @@ const translations: TranslationDeepObject = { moveExpensesError: 'Sie können Pauschalspesen nicht in Berichte anderer Arbeitsbereiche verschieben, da die Pauschalsätze je nach Arbeitsbereich unterschiedlich sein können.', changeApprover: { title: 'Genehmigende Person ändern', - header: ({workflowSettingLink}: WorkflowSettingsParam) => + header: (workflowSettingLink: string) => `Wähle eine Option, um die approvierende Person für diesen Bericht zu ändern. (Aktualisiere deine Workspace-Einstellungen, um dies dauerhaft für alle Berichte zu ändern.)`, changedApproverMessage: (managerID: number) => `Genehmigenden in geändert`, actions: { @@ -1583,7 +1579,8 @@ const translations: TranslationDeepObject = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Warten darauf, dass du Ausgaben hinzufügst.`; @@ -1593,7 +1590,8 @@ const translations: TranslationDeepObject = { return `Warten auf eine*n Admin, der Ausgaben hinzufügt.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Warte darauf, dass du Spesen einreichst.`; @@ -1603,8 +1601,10 @@ const translations: TranslationDeepObject = { return `Warten darauf, dass ein Admin Spesen einreicht.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: (_: NextStepParams) => `Keine weiteren Schritte erforderlich!`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ({actor, actorType}: NextStepParams) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `Keine weiteren Schritte erforderlich!`, + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Warten darauf, dass du ein Bankkonto hinzufügst.`; @@ -1614,11 +1614,17 @@ const translations: TranslationDeepObject = { return `Warten auf eine:n Admin, um ein Bankkonto hinzuzufügen.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ({actor, actorType, eta, etaType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ( + actor: string, + actorType: ValueOf, + eta?: string, + etaType?: ValueOf, + ) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` am ${eta}. eines jeden Monats` : ` ${eta}`; } + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Warte, bis deine Ausgaben automatisch eingereicht werden${formattedETA}.`; @@ -1628,7 +1634,8 @@ const translations: TranslationDeepObject = { return `Warten, bis die Spesen eines Admins automatisch eingereicht werden${formattedETA}.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Warten auf dich, um die Probleme zu beheben.`; @@ -1638,7 +1645,8 @@ const translations: TranslationDeepObject = { return `Warten auf eine*n Admin, um die Probleme zu beheben.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Warte darauf, dass du Spesen genehmigst.`; @@ -1648,7 +1656,8 @@ const translations: TranslationDeepObject = { return `Warte darauf, dass eine Admin-Person Spesen genehmigt.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Warte darauf, dass du diesen Bericht exportierst.`; @@ -1658,7 +1667,8 @@ const translations: TranslationDeepObject = { return `Warten auf eine*n Admin, um diesen Bericht zu exportieren.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Warte auf dich, um Spesen zu bezahlen.`; @@ -1668,7 +1678,8 @@ const translations: TranslationDeepObject = { return `Warten darauf, dass ein Admin Spesen bezahlt.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Warten darauf, dass du die Einrichtung eines Geschäftskontos abschließt.`; @@ -1678,14 +1689,15 @@ const translations: TranslationDeepObject = { return `Warten, bis ein Admin die Einrichtung eines Geschäftskontos abgeschlossen hat.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ({eta, etaType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta?: string, etaType?: ValueOf) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` bis ${eta}` : ` ${eta}`; } return `Warte, bis die Zahlung abgeschlossen ist${formattedETA}.`; }, - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: (_: NextStepParams) => + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => `Ups! Sie scheinen diesen Bericht an sich selbst einzureichen. Die Genehmigung eigener Berichte ist in Ihrem Arbeitsbereich verboten. Bitte reichen Sie diesen Bericht bei einer anderen Person ein oder wenden Sie sich an Ihre Admin, um die empfangende Person zu ändern.`, }, eta: { @@ -3249,7 +3261,7 @@ ${ haveReadAndAgreePlain: 'Ich habe die Informationen gelesen und bin damit einverstanden, elektronische Hinweise zu erhalten.', haveReadAndAgree: `Ich habe die elektronischen Hinweise gelesen und stimme zu, sie zu erhalten.`, agreeToThePlain: 'Ich stimme der Datenschutz- und Wallet-Vereinbarung zu.', - agreeToThe: ({walletAgreementUrl}: WalletAgreementParams) => + agreeToThe: (walletAgreementUrl: string) => `Ich stimme der Datenschutzerklärung und der Wallet-Vereinbarung zu.`, enablePayments: 'Zahlungen aktivieren', monthlyFee: 'Monatliche Gebühr', @@ -3914,7 +3926,7 @@ ${ appliedOnExport: 'Nicht in Expensify importiert, beim Export angewendet', shareNote: { header: 'Teile deinen Workspace mit anderen Mitgliedern', - content: ({adminsRoomLink}: WorkspaceShareNoteParams) => + content: (adminsRoomLink: string) => `Teile diesen QR-Code oder kopiere den Link unten, damit Mitglieder ganz einfach Zugriff auf deinen Workspace anfordern können. Alle Anfragen zum Beitritt zum Workspace werden zur Überprüfung im Raum ${CONST.REPORT.WORKSPACE_CHAT_ROOMS.ADMINS} angezeigt.`, }, connectTo: ({connectionName}: ConnectionNameParams) => `Mit ${CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY[connectionName]} verbinden`, @@ -6232,7 +6244,7 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und upgradeToUnlock: 'Diese Funktion freischalten', completed: { headline: `Du hast deinen Arbeitsbereich aktualisiert!`, - successMessage: ({policyName, subscriptionLink}: UpgradeSuccessMessageParams) => + successMessage: (policyName: string, subscriptionLink: string) => `Du hast ${policyName} erfolgreich auf den Control-Tarif hochgestuft! Abonnement ansehen für mehr Details.`, categorizeMessage: `Du hast erfolgreich auf den Collect‑Tarif upgegradet. Jetzt kannst du deine Ausgaben kategorisieren!`, travelMessage: `Du hast erfolgreich auf den Collect‑Tarif upgegradet. Jetzt kannst du mit dem Buchen und Verwalten von Reisen beginnen!`, diff --git a/src/languages/en.ts b/src/languages/en.ts index e69be0ee9609b..d5e532dad6341 100644 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -1,5 +1,6 @@ import {CONST as COMMON_CONST} from 'expensify-common'; import startCase from 'lodash/startCase'; +import type {ValueOf} from 'type-fest'; import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow'; import StringUtils from '@libs/StringUtils'; import dedent from '@libs/StringUtils/dedent'; @@ -29,7 +30,6 @@ import type { MarkReimbursedFromIntegrationParams, MissingPropertyParams, MovedFromPersonalSpaceParams, - NextStepParams, NotAllowedExtensionParams, OptionalParam, PaidElsewhereParams, @@ -74,7 +74,6 @@ import type { UpdatePolicyCustomUnitParams, UpdatePolicyCustomUnitTaxEnabledParams, UpdateRoleParams, - UpgradeSuccessMessageParams, UsePlusButtonParams, UserIsAlreadyMemberParams, UserSplitParams, @@ -95,20 +94,17 @@ import type { ViolationsTagOutOfPolicyParams, ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, - WalletAgreementParams, WalletProgramParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, WeSentYouMagicSignInLinkParams, WorkEmailMergingBlockedParams, WorkEmailResendCodeParams, - WorkflowSettingsParam, WorkspaceLockedPlanTypeParams, WorkspaceMemberList, WorkspaceMembersCountParams, WorkspaceOwnerWillNeedToAddOrUpdatePaymentCardParams, WorkspaceRouteParams, - WorkspaceShareNoteParams, WorkspacesListRouteParams, WorkspaceUpgradeNoteParams, WorkspaceYouMayJoin, @@ -1489,7 +1485,7 @@ const translations = { moveExpensesError: "You can't move per diem expenses to reports on other workspaces, because the per diem rates may differ between workspaces.", changeApprover: { title: 'Change approver', - header: ({workflowSettingLink}: WorkflowSettingsParam) => + header: (workflowSettingLink: string) => `Choose an option to change the approver for this report. (Update your workspace settings to change this permanently for all reports.)`, changedApproverMessage: (managerID: number) => `changed the approver to `, actions: { @@ -1597,7 +1593,7 @@ const translations = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor: string, actorType: ValueOf) => { // Disabling the default-case lint rule here is actually safer as this forces us to make the switch cases exhaustive // eslint-disable-next-line default-case switch (actorType) { @@ -1609,7 +1605,7 @@ const translations = { return `Waiting for an admin to add expenses.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor: string, actorType: ValueOf) => { // Disabling the default-case lint rule here is actually safer as this forces us to make the switch cases exhaustive // eslint-disable-next-line default-case switch (actorType) { @@ -1622,8 +1618,8 @@ const translations = { } }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: (_: NextStepParams) => `No further action required!`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `No further action required!`, + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor: string, actorType: ValueOf) => { // Disabling the default-case lint rule here is actually safer as this forces us to make the switch cases exhaustive // eslint-disable-next-line default-case switch (actorType) { @@ -1635,7 +1631,12 @@ const translations = { return `Waiting for an admin to add a bank account.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ({actor, actorType, eta, etaType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ( + actor: string, + actorType: ValueOf, + eta?: string, + etaType?: ValueOf, + ) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` on the ${eta} of each month` : ` ${eta}`; @@ -1652,7 +1653,7 @@ const translations = { return `Waiting for an admin's expenses to automatically submit${formattedETA}.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor: string, actorType: ValueOf) => { // Disabling the default-case lint rule here is actually safer as this forces us to make the switch cases exhaustive // eslint-disable-next-line default-case switch (actorType) { @@ -1664,7 +1665,7 @@ const translations = { return `Waiting for an admin to fix the issues.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor: string, actorType: ValueOf) => { // Disabling the default-case lint rule here is actually safer as this forces us to make the switch cases exhaustive // eslint-disable-next-line default-case switch (actorType) { @@ -1676,7 +1677,7 @@ const translations = { return `Waiting for an admin to approve expenses.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor: string, actorType: ValueOf) => { // Disabling the default-case lint rule here is actually safer as this forces us to make the switch cases exhaustive // eslint-disable-next-line default-case switch (actorType) { @@ -1688,7 +1689,7 @@ const translations = { return `Waiting for an admin to export this report.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor: string, actorType: ValueOf) => { // Disabling the default-case lint rule here is actually safer as this forces us to make the switch cases exhaustive // eslint-disable-next-line default-case switch (actorType) { @@ -1700,7 +1701,7 @@ const translations = { return `Waiting for an admin to pay expenses.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor: string, actorType: ValueOf) => { // Disabling the default-case lint rule here is actually safer as this forces us to make the switch cases exhaustive // eslint-disable-next-line default-case switch (actorType) { @@ -1712,7 +1713,7 @@ const translations = { return `Waiting for an admin to finish setting up a business bank account.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ({eta, etaType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta?: string, etaType?: ValueOf) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` by ${eta}` : ` ${eta}`; @@ -1721,7 +1722,7 @@ const translations = { return `Waiting for payment to complete${formattedETA}.`; }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: (_: NextStepParams) => + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => `Oops! Looks like you're submitting to yourself. Approving your own reports is forbidden by your workspace. Please submit this report to someone else or contact your admin to change the person you submit to.`, }, eta: { @@ -3275,8 +3276,7 @@ const translations = { haveReadAndAgreePlain: 'I have read and agree to receive electronic disclosures.', haveReadAndAgree: `I have read and agree to receive electronic disclosures.`, agreeToThePlain: 'I agree to the Privacy and Wallet agreement.', - agreeToThe: ({walletAgreementUrl}: WalletAgreementParams) => - `I agree to the Privacy and Wallet agreement.`, + agreeToThe: (walletAgreementUrl: string) => `I agree to the Privacy and Wallet agreement.`, enablePayments: 'Enable payments', monthlyFee: 'Monthly fee', inactivity: 'Inactivity', @@ -3941,7 +3941,7 @@ const translations = { appliedOnExport: 'Not imported into Expensify, applied on export', shareNote: { header: 'Share your workspace with other members', - content: ({adminsRoomLink}: WorkspaceShareNoteParams) => + content: (adminsRoomLink: string) => `Share this QR code or copy the link below to make it easy for members to request access to your workspace. All requests to join the workspace will show up in the ${CONST.REPORT.WORKSPACE_CHAT_ROOMS.ADMINS} room for your review.`, }, connectTo: ({connectionName}: ConnectionNameParams) => `Connect to ${CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY[connectionName]}`, @@ -6183,7 +6183,7 @@ const translations = { upgradeToUnlock: 'Unlock this feature', completed: { headline: `You've upgraded your workspace!`, - successMessage: ({policyName, subscriptionLink}: UpgradeSuccessMessageParams) => + successMessage: (policyName: string, subscriptionLink: string) => `You've successfully upgraded ${policyName} to the Control plan! View your subscription for more details.`, categorizeMessage: `You've successfully upgraded to the Collect plan. Now you can categorize your expenses!`, travelMessage: `You've successfully upgraded to the Collect plan. Now you can start booking and managing travel!`, diff --git a/src/languages/es.ts b/src/languages/es.ts index 7cf3776beccb0..f63866222ae51 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -1328,7 +1328,7 @@ const translations: TranslationDeepObject = { moveExpensesError: 'No puedes mover gastos per diem a informes de otros espacios de trabajo, porque las tarifas de dietas pueden diferir entre espacios de trabajo.', changeApprover: { title: 'Cambiar aprobador', - header: ({workflowSettingLink}) => + header: (workflowSettingLink) => `Elige una opción para cambiar el aprobador de este informe. (Actualiza la configuración del espacio de trabajo para cambiarlo de forma permanente en todos los informes.)`, changedApproverMessage: (managerID) => `cambió el aprobador a `, actions: { @@ -1431,7 +1431,7 @@ const translations: TranslationDeepObject = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ({actor, actorType}) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor, actorType) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1442,7 +1442,7 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador añada gastos.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ({actor, actorType}) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor, actorType) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1454,8 +1454,8 @@ const translations: TranslationDeepObject = { } }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: (_) => `¡No se requiere ninguna acción adicional!`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ({actor, actorType}) => { + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `¡No se requiere ninguna acción adicional!`, + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor, actorType) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1466,7 +1466,7 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador añada una cuenta bancaria.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ({actor, actorType, eta, etaType}) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: (actor, actorType, eta, etaType) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` el ${eta} de cada mes` : ` ${eta}`; @@ -1482,7 +1482,7 @@ const translations: TranslationDeepObject = { return `Esperando a que los gastos de un administrador se envíen automáticamente${formattedETA}.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ({actor, actorType}) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor, actorType) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1493,7 +1493,7 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador solucione ellos problemas.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ({actor, actorType}) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor, actorType) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1504,7 +1504,7 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador apruebe los gastos.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ({actor, actorType}) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor, actorType) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1515,7 +1515,7 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador exporte este informe.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ({actor, actorType}) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor, actorType) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1526,7 +1526,7 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador pague los gastos.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ({actor, actorType}) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor, actorType) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1537,7 +1537,7 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador termine de configurar una cuenta bancaria de empresa.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ({eta, etaType}) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta, etaType) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` para el ${eta}` : ` ${eta}`; @@ -1546,7 +1546,7 @@ const translations: TranslationDeepObject = { return `Esperando a que se complete el pago${formattedETA}.`; }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: (_) => + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => `¡Ups! Parece que estás enviando el informe a ti mismo. Aprobar tus propios informes está prohibido por tu espacio de trabajo. Por favor, envía este informe a otra persona o contacta a tu administrador para cambiar la persona a la que lo envías.`, }, eta: { @@ -3108,7 +3108,7 @@ ${amount} para ${merchant} - ${date}`, haveReadAndAgreePlain: 'He leído y acepto recibir divulgaciones electrónicas.', haveReadAndAgree: `He leído y acepto recibir divulgaciones electrónicas.`, agreeToThePlain: 'Estoy de acuerdo con el Privacidad y Acuerdo de la billetera.', - agreeToThe: ({walletAgreementUrl}) => + agreeToThe: (walletAgreementUrl) => `Estoy de acuerdo con el Privacidad y Acuerdo de la billetera.`, enablePayments: 'Habilitar pagos', monthlyFee: 'Cuota mensual', @@ -3769,7 +3769,7 @@ ${amount} para ${merchant} - ${date}`, appliedOnExport: 'No se importa en Expensify, se aplica en la exportación', shareNote: { header: 'Comparte tu espacio de trabajo con otros miembros', - content: ({adminsRoomLink}) => + content: (adminsRoomLink) => `Comparte este código QR o copia el enlace de abajo para facilitar que los miembros soliciten acceso a tu espacio de trabajo. Todas las solicitudes para unirse al espacio de trabajo aparecerán en la sala ${CONST.REPORT.WORKSPACE_CHAT_ROOMS.ADMINS} para tu revisión.`, }, connectTo: ({connectionName}) => `Conéctate a ${CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY[connectionName]}`, @@ -6060,7 +6060,7 @@ ${amount} para ${merchant} - ${date}`, headline: 'Has mejorado tu espacio de trabajo.', categorizeMessage: `Has actualizado con éxito al plan Recopilar. ¡Ahora puedes categorizar tus gastos!`, travelMessage: 'Has actualizado con éxito al plan Recopilar. ¡Ahora puedes comenzar a reservar y gestionar viajes!', - successMessage: ({policyName, subscriptionLink}) => + successMessage: (policyName, subscriptionLink) => `Has actualizado con éxito ${policyName} al plan Controlar. Ver su suscripción para obtener más información.`, distanceRateMessage: 'Has actualizado correctamente al plan Recopilar. ¡Ahora puedes cambiar la tasa de distancia!', gotIt: 'Entendido, gracias.', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index d8ef5472c9924..bba45b42734a3 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -11,6 +11,7 @@ */ import {CONST as COMMON_CONST} from 'expensify-common'; import startCase from 'lodash/startCase'; +import type {ValueOf} from 'type-fest'; import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow'; import StringUtils from '@libs/StringUtils'; import dedent from '@libs/StringUtils/dedent'; @@ -41,7 +42,6 @@ import type { MarkReimbursedFromIntegrationParams, MissingPropertyParams, MovedFromPersonalSpaceParams, - NextStepParams, NotAllowedExtensionParams, OptionalParam, PaidElsewhereParams, @@ -86,7 +86,6 @@ import type { UpdatePolicyCustomUnitParams, UpdatePolicyCustomUnitTaxEnabledParams, UpdateRoleParams, - UpgradeSuccessMessageParams, UsePlusButtonParams, UserIsAlreadyMemberParams, UserSplitParams, @@ -107,20 +106,17 @@ import type { ViolationsTagOutOfPolicyParams, ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, - WalletAgreementParams, WalletProgramParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, WeSentYouMagicSignInLinkParams, WorkEmailMergingBlockedParams, WorkEmailResendCodeParams, - WorkflowSettingsParam, WorkspaceLockedPlanTypeParams, WorkspaceMemberList, WorkspaceMembersCountParams, WorkspaceOwnerWillNeedToAddOrUpdatePaymentCardParams, WorkspaceRouteParams, - WorkspaceShareNoteParams, WorkspacesListRouteParams, WorkspaceUpgradeNoteParams, WorkspaceYouMayJoin, @@ -1480,7 +1476,7 @@ const translations: TranslationDeepObject = { 'Vous ne pouvez pas déplacer des frais de per diem vers des notes de frais d’autres espaces de travail, car les taux de per diem peuvent varier d’un espace de travail à l’autre.', changeApprover: { title: 'Modifier l’approbateur', - header: ({workflowSettingLink}: WorkflowSettingsParam) => + header: (workflowSettingLink: string) => `Choisissez une option pour modifier l’approbateur de cette note de frais. (Mettez à jour vos paramètres d’espace de travail pour changer cela définitivement pour toutes les notes de frais.)`, changedApproverMessage: (managerID: number) => `a changé l'approbateur en `, actions: { @@ -1588,7 +1584,8 @@ const translations: TranslationDeepObject = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `En attente de vous pour ajouter des dépenses.`; @@ -1598,7 +1595,8 @@ const translations: TranslationDeepObject = { return `En attente qu’un administrateur ajoute des dépenses.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `En attente que vous soumettiez des dépenses.`; @@ -1608,8 +1606,10 @@ const translations: TranslationDeepObject = { return `En attente qu’un administrateur soumette des dépenses.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: (_: NextStepParams) => `Aucune autre action requise !`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ({actor, actorType}: NextStepParams) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `Aucune autre action requise !`, + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `En attente que vous ajoutiez un compte bancaire.`; @@ -1619,11 +1619,17 @@ const translations: TranslationDeepObject = { return `En attente qu’un administrateur ajoute un compte bancaire.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ({actor, actorType, eta, etaType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ( + actor: string, + actorType: ValueOf, + eta?: string, + etaType?: ValueOf, + ) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` le ${eta} de chaque mois` : ` ${eta}`; } + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `En attente que vos dépenses soient automatiquement soumises${formattedETA}.`; @@ -1633,7 +1639,8 @@ const translations: TranslationDeepObject = { return `En attente de la soumission automatique des dépenses d’un administrateur${formattedETA}.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `En attente que vous corrigiez les problèmes.`; @@ -1643,7 +1650,8 @@ const translations: TranslationDeepObject = { return `En attente qu’un administrateur corrige les problèmes.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `En attente que vous approuviez des dépenses.`; @@ -1653,7 +1661,8 @@ const translations: TranslationDeepObject = { return `En attente de l’approbation des dépenses par un administrateur.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `En attente que vous exportiez cette note de frais.`; @@ -1663,7 +1672,8 @@ const translations: TranslationDeepObject = { return `En attente qu’un administrateur exporte cette note de frais.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `En attente que vous payiez les dépenses.`; @@ -1673,7 +1683,8 @@ const translations: TranslationDeepObject = { return `En attente qu’un administrateur paie les dépenses.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `En attente que vous terminiez la configuration d’un compte bancaire professionnel.`; @@ -1683,14 +1694,15 @@ const translations: TranslationDeepObject = { return `En attente qu’un administrateur termine la configuration d’un compte bancaire professionnel.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ({eta, etaType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta?: string, etaType?: ValueOf) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` le ${eta}` : ` ${eta}`; } return `En attente de la finalisation du paiement${formattedETA}.`; }, - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: (_: NextStepParams) => + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => `Oups ! On dirait que vous soumettez cette note de frais à vous-même. Approuver vos propres notes de frais est interdit par votre espace de travail. Veuillez soumettre cette note de frais à quelqu’un d’autre ou contacter votre administrateur pour changer la personne à qui vous la soumettez.`, }, eta: { @@ -3258,7 +3270,7 @@ ${ haveReadAndAgreePlain: 'J’ai lu et j’accepte de recevoir les communications électroniques.', haveReadAndAgree: `J’ai lu et j’accepte de recevoir les notifications électroniques.`, agreeToThePlain: "J'accepte la politique de confidentialité et l'accord de portefeuille.", - agreeToThe: ({walletAgreementUrl}: WalletAgreementParams) => + agreeToThe: (walletAgreementUrl: string) => `J’accepte la politique de confidentialité et le contrat du portefeuille.`, enablePayments: 'Activer les paiements', monthlyFee: 'Frais mensuels', @@ -3922,7 +3934,7 @@ ${ appliedOnExport: 'Non importé dans Expensify, appliqué à l’export', shareNote: { header: 'Partagez votre espace de travail avec d’autres membres', - content: ({adminsRoomLink}: WorkspaceShareNoteParams) => + content: (adminsRoomLink: string) => `Partagez ce code QR ou copiez le lien ci-dessous pour permettre aux membres de demander facilement l’accès à votre espace de travail. Toutes les demandes pour rejoindre l’espace de travail apparaîtront dans le salon ${CONST.REPORT.WORKSPACE_CHAT_ROOMS.ADMINS} pour votre examen.`, }, connectTo: ({connectionName}: ConnectionNameParams) => `Se connecter à ${CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY[connectionName]}`, @@ -6254,7 +6266,7 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip upgradeToUnlock: 'Débloquer cette fonctionnalité', completed: { headline: `Vous avez mis à niveau votre espace de travail !`, - successMessage: ({policyName, subscriptionLink}: UpgradeSuccessMessageParams) => + successMessage: (policyName: string, subscriptionLink: string) => `Vous avez réussi à passer ${policyName} au plan Control ! Afficher votre abonnement pour plus de détails.`, categorizeMessage: `Vous êtes passé avec succès au forfait Collect. Vous pouvez maintenant catégoriser vos dépenses !`, travelMessage: `Vous êtes passé avec succès au plan Collect. Vous pouvez maintenant commencer à réserver et gérer vos voyages !`, diff --git a/src/languages/it.ts b/src/languages/it.ts index 45a7578808a82..10f5ec706f05a 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -11,6 +11,7 @@ */ import {CONST as COMMON_CONST} from 'expensify-common'; import startCase from 'lodash/startCase'; +import type {ValueOf} from 'type-fest'; import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow'; import StringUtils from '@libs/StringUtils'; import dedent from '@libs/StringUtils/dedent'; @@ -41,7 +42,6 @@ import type { MarkReimbursedFromIntegrationParams, MissingPropertyParams, MovedFromPersonalSpaceParams, - NextStepParams, NotAllowedExtensionParams, OptionalParam, PaidElsewhereParams, @@ -86,7 +86,6 @@ import type { UpdatePolicyCustomUnitParams, UpdatePolicyCustomUnitTaxEnabledParams, UpdateRoleParams, - UpgradeSuccessMessageParams, UsePlusButtonParams, UserIsAlreadyMemberParams, UserSplitParams, @@ -107,20 +106,17 @@ import type { ViolationsTagOutOfPolicyParams, ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, - WalletAgreementParams, WalletProgramParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, WeSentYouMagicSignInLinkParams, WorkEmailMergingBlockedParams, WorkEmailResendCodeParams, - WorkflowSettingsParam, WorkspaceLockedPlanTypeParams, WorkspaceMemberList, WorkspaceMembersCountParams, WorkspaceOwnerWillNeedToAddOrUpdatePaymentCardParams, WorkspaceRouteParams, - WorkspaceShareNoteParams, WorkspacesListRouteParams, WorkspaceUpgradeNoteParams, WorkspaceYouMayJoin, @@ -1472,7 +1468,7 @@ const translations: TranslationDeepObject = { moveExpensesError: 'Non puoi spostare le spese di diaria nei report di altri spazi di lavoro, perché le tariffe di diaria possono variare tra gli spazi di lavoro.', changeApprover: { title: 'Cambia approvatore', - header: ({workflowSettingLink}: WorkflowSettingsParam) => + header: (workflowSettingLink: string) => `Scegli un'opzione per cambiare l'approvatore di questo report. (Aggiorna le impostazioni dello spazio di lavoro per cambiarlo in modo permanente per tutti i report.)`, changedApproverMessage: (managerID: number) => `ha cambiato l’approvatore in `, actions: { @@ -1579,7 +1575,8 @@ const translations: TranslationDeepObject = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `In attesa che tu aggiunga delle spese.`; @@ -1589,7 +1586,8 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore aggiunga delle spese.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `In attesa che tu invii le note spese.`; @@ -1599,8 +1597,10 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore invii le spese.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: (_: NextStepParams) => `Nessun’altra azione richiesta!`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ({actor, actorType}: NextStepParams) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `Nessun’altra azione richiesta!`, + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `In attesa che tu aggiunga un conto bancario.`; @@ -1610,11 +1610,17 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore aggiunga un conto bancario.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ({actor, actorType, eta, etaType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ( + actor: string, + actorType: ValueOf, + eta?: string, + etaType?: ValueOf, + ) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` il ${eta} di ogni mese` : ` ${eta}`; } + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `In attesa che le tue spese vengano inviate automaticamente${formattedETA}.`; @@ -1624,7 +1630,8 @@ const translations: TranslationDeepObject = { return `In attesa che le note spese di un amministratore vengano inviate automaticamente${formattedETA}.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `In attesa che tu risolva i problemi.`; @@ -1634,7 +1641,8 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore risolva i problemi.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `In attesa che tu approvi le spese.`; @@ -1644,7 +1652,8 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore approvi le spese.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `In attesa che tu esporti questo report.`; @@ -1654,7 +1663,8 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore esporti questo resoconto.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `In attesa che tu rimborsi le spese.`; @@ -1664,7 +1674,8 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore rimborsi le spese.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `In attesa che tu completi la configurazione di un conto bancario aziendale.`; @@ -1674,14 +1685,15 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore completi la configurazione di un conto bancario aziendale.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ({eta, etaType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta?: string, etaType?: ValueOf) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` entro le ${eta}` : ` ${eta}`; } return `In attesa che il pagamento venga completato${formattedETA}.`; }, - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: (_: NextStepParams) => + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => `Ops! Sembra che tu stia inviando il report a te stessə. L’approvazione dei propri report è vietata nel tuo spazio di lavoro. Invia questo report a un’altra persona oppure contatta il tuo amministratore per cambiare la persona a cui lo invii.`, }, eta: { @@ -3238,7 +3250,7 @@ ${ haveReadAndAgreePlain: 'Ho letto e accetto di ricevere comunicazioni elettroniche.', haveReadAndAgree: `Ho letto e accetto di ricevere le informative elettroniche.`, agreeToThePlain: 'Accetto l’Informativa sulla privacy e l’Accordo sul portafoglio.', - agreeToThe: ({walletAgreementUrl}: WalletAgreementParams) => + agreeToThe: (walletAgreementUrl: string) => `Accetto l’informativa sulla privacy e il contratto del Wallet.`, enablePayments: 'Abilita pagamenti', monthlyFee: 'Commissione mensile', @@ -3899,7 +3911,7 @@ ${ appliedOnExport: 'Non importato in Expensify, applicato all’esportazione', shareNote: { header: 'Condividi il tuo spazio di lavoro con altri membri', - content: ({adminsRoomLink}: WorkspaceShareNoteParams) => + content: (adminsRoomLink: string) => `Condividi questo codice QR o copia il link qui sotto per facilitare ai membri la richiesta di accesso al tuo spazio di lavoro. Tutte le richieste di adesione allo spazio di lavoro verranno visualizzate nella stanza ${CONST.REPORT.WORKSPACE_CHAT_ROOMS.ADMINS} per la tua revisione.`, }, connectTo: ({connectionName}: ConnectionNameParams) => `Connetti a ${CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY[connectionName]}`, @@ -6218,7 +6230,7 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo upgradeToUnlock: 'Sblocca questa funzionalità', completed: { headline: `Hai aggiornato il tuo spazio di lavoro!`, - successMessage: ({policyName, subscriptionLink}: UpgradeSuccessMessageParams) => + successMessage: (policyName: string, subscriptionLink: string) => `Hai effettuato l'upgrade di ${policyName} al piano Control! Visualizza il tuo abbonamento per maggiori dettagli.`, categorizeMessage: `Hai eseguito l’upgrade al piano Collect. Ora puoi categorizzare le tue spese!`, travelMessage: `Hai eseguito correttamente l’upgrade al piano Collect. Ora puoi iniziare a prenotare e gestire i viaggi!`, diff --git a/src/languages/ja.ts b/src/languages/ja.ts index ec3a53b5f166d..50f23d316693c 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -11,6 +11,7 @@ */ import {CONST as COMMON_CONST} from 'expensify-common'; import startCase from 'lodash/startCase'; +import type {ValueOf} from 'type-fest'; import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow'; import StringUtils from '@libs/StringUtils'; import dedent from '@libs/StringUtils/dedent'; @@ -41,7 +42,6 @@ import type { MarkReimbursedFromIntegrationParams, MissingPropertyParams, MovedFromPersonalSpaceParams, - NextStepParams, NotAllowedExtensionParams, OptionalParam, PaidElsewhereParams, @@ -86,7 +86,6 @@ import type { UpdatePolicyCustomUnitParams, UpdatePolicyCustomUnitTaxEnabledParams, UpdateRoleParams, - UpgradeSuccessMessageParams, UsePlusButtonParams, UserIsAlreadyMemberParams, UserSplitParams, @@ -107,20 +106,17 @@ import type { ViolationsTagOutOfPolicyParams, ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, - WalletAgreementParams, WalletProgramParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, WeSentYouMagicSignInLinkParams, WorkEmailMergingBlockedParams, WorkEmailResendCodeParams, - WorkflowSettingsParam, WorkspaceLockedPlanTypeParams, WorkspaceMemberList, WorkspaceMembersCountParams, WorkspaceOwnerWillNeedToAddOrUpdatePaymentCardParams, WorkspaceRouteParams, - WorkspaceShareNoteParams, WorkspacesListRouteParams, WorkspaceUpgradeNoteParams, WorkspaceYouMayJoin, @@ -1465,7 +1461,7 @@ const translations: TranslationDeepObject = { moveExpensesError: '日当経費は、ワークスペースごとに日当レートが異なる場合があるため、他のワークスペースのレポートに移動することはできません。', changeApprover: { title: '承認者を変更', - header: ({workflowSettingLink}: WorkflowSettingsParam) => + header: (workflowSettingLink: string) => `このレポートの承認者を変更する方法を選択してください。(すべてのレポートで恒久的に変更するには、ワークスペース設定を更新してください。)`, changedApproverMessage: (managerID: number) => `承認者を に変更しました`, actions: { @@ -1572,7 +1568,8 @@ const translations: TranslationDeepObject = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `経費の追加をあなたが行うのを待機中です。`; @@ -1582,7 +1579,8 @@ const translations: TranslationDeepObject = { return `管理者が経費を追加するのを待機しています。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `経費の提出をあなたが行うのを待っています。`; @@ -1592,8 +1590,10 @@ const translations: TranslationDeepObject = { return `管理者が経費を送信するのを待機中です。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: (_: NextStepParams) => `これ以上の操作は不要です。`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ({actor, actorType}: NextStepParams) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `これ以上の操作は不要です。`, + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `銀行口座の追加をあなたが行うのを待っています。`; @@ -1603,11 +1603,17 @@ const translations: TranslationDeepObject = { return `管理者が銀行口座を追加するのを待機しています。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ({actor, actorType, eta, etaType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ( + actor: string, + actorType: ValueOf, + eta?: string, + etaType?: ValueOf, + ) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` 毎月${eta}に` : ` ${eta}`; } + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `あなたの経費が自動送信されるまでお待ちください${formattedETA}。`; @@ -1617,7 +1623,8 @@ const translations: TranslationDeepObject = { return `管理者の経費が自動送信されるのを待機中です${formattedETA}。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `問題の修正をあなたが行うのを待っています。`; @@ -1627,7 +1634,8 @@ const translations: TranslationDeepObject = { return `管理者が問題を修正するのを待機しています。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `経費の承認をあなたが行うのを待っています。`; @@ -1637,7 +1645,8 @@ const translations: TranslationDeepObject = { return `管理者が経費を承認するのを待機しています。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `このレポートのエクスポートをあなたが行うのを待っています。`; @@ -1647,7 +1656,8 @@ const translations: TranslationDeepObject = { return `管理者がこのレポートをエクスポートするのを待っています。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `経費の支払いをあなたが行うのを待っています。`; @@ -1657,7 +1667,8 @@ const translations: TranslationDeepObject = { return `管理者が経費を支払うのを待っています。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `ビジネス銀行口座の設定が完了するのをあなたが行うのを待っています。`; @@ -1667,14 +1678,15 @@ const translations: TranslationDeepObject = { return `管理者がビジネス銀行口座の設定を完了するのを待っています。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ({eta, etaType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta?: string, etaType?: ValueOf) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` ${eta}まで` : ` ${eta}`; } return `支払いの完了を待機しています${formattedETA}。`; }, - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: (_: NextStepParams) => + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => `おっと!自分自身に提出しようとしているようです。自分のレポートを承認することは、ワークスペースのルールで禁止されています。このレポートは他の人に提出するか、提出先を変更してもらうよう管理者に連絡してください。`, }, eta: { @@ -3220,7 +3232,7 @@ ${ haveReadAndAgreePlain: '電子開示を受け取ることを読み理解し、同意します。', haveReadAndAgree: `電子開示書面を受け取ることを確認し、同意します。`, agreeToThePlain: 'プライバシーおよびウォレット規約に同意します。', - agreeToThe: ({walletAgreementUrl}: WalletAgreementParams) => + agreeToThe: (walletAgreementUrl: string) => `プライバシーポリシーおよびウォレット利用規約に同意します。`, enablePayments: '支払いを有効にする', monthlyFee: '月額料金', @@ -3880,7 +3892,7 @@ ${ appliedOnExport: 'Expensify にはインポートされず、エクスポート時に適用されます', shareNote: { header: 'ワークスペースを他のメンバーと共有する', - content: ({adminsRoomLink}: WorkspaceShareNoteParams) => + content: (adminsRoomLink: string) => `このQRコードを共有するか、以下のリンクをコピーしてメンバーがあなたのワークスペースへのアクセスを簡単にリクエストできるようにしましょう。ワークスペースへの参加リクエストはすべて、あなたが確認できるように${CONST.REPORT.WORKSPACE_CHAT_ROOMS.ADMINS}ルームに表示されます。`, }, connectTo: ({connectionName}: ConnectionNameParams) => `${CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY[connectionName]} に接続`, @@ -6159,7 +6171,7 @@ ${reportName} upgradeToUnlock: 'この機能を有効にする', completed: { headline: `ワークスペースをアップグレードしました!`, - successMessage: ({policyName, subscriptionLink}: UpgradeSuccessMessageParams) => + successMessage: (policyName: string, subscriptionLink: string) => `${policyName}をControlプランにアップグレードしました!詳しくはサブスクリプションを表示してください。`, categorizeMessage: `Collectプランへのアップグレードが完了しました。これで経費をカテゴリー分けできるようになりました!`, travelMessage: `Collectプランへのアップグレードが完了しました。さっそく出張の予約や管理を始めましょう!`, diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 4f9914683ba4e..7987fd717f0dd 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -11,6 +11,7 @@ */ import {CONST as COMMON_CONST} from 'expensify-common'; import startCase from 'lodash/startCase'; +import type {ValueOf} from 'type-fest'; import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow'; import StringUtils from '@libs/StringUtils'; import dedent from '@libs/StringUtils/dedent'; @@ -41,7 +42,6 @@ import type { MarkReimbursedFromIntegrationParams, MissingPropertyParams, MovedFromPersonalSpaceParams, - NextStepParams, NotAllowedExtensionParams, OptionalParam, PaidElsewhereParams, @@ -86,7 +86,6 @@ import type { UpdatePolicyCustomUnitParams, UpdatePolicyCustomUnitTaxEnabledParams, UpdateRoleParams, - UpgradeSuccessMessageParams, UsePlusButtonParams, UserIsAlreadyMemberParams, UserSplitParams, @@ -107,20 +106,17 @@ import type { ViolationsTagOutOfPolicyParams, ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, - WalletAgreementParams, WalletProgramParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, WeSentYouMagicSignInLinkParams, WorkEmailMergingBlockedParams, WorkEmailResendCodeParams, - WorkflowSettingsParam, WorkspaceLockedPlanTypeParams, WorkspaceMemberList, WorkspaceMembersCountParams, WorkspaceOwnerWillNeedToAddOrUpdatePaymentCardParams, WorkspaceRouteParams, - WorkspaceShareNoteParams, WorkspacesListRouteParams, WorkspaceUpgradeNoteParams, WorkspaceYouMayJoin, @@ -1470,7 +1466,7 @@ const translations: TranslationDeepObject = { moveExpensesError: 'Je kunt dagvergoedingdeclaraties niet naar rapporten in andere werkruimten verplaatsen, omdat de dagvergoedingsbedragen per werkruimte kunnen verschillen.', changeApprover: { title: 'Goedkeurder wijzigen', - header: ({workflowSettingLink}: WorkflowSettingsParam) => + header: (workflowSettingLink: string) => `Kies een optie om de fiatteur voor dit rapport te wijzigen. (Werk je werkruimteninstellingen bij om dit permanent voor alle rapporten te wijzigen.)`, changedApproverMessage: (managerID: number) => `heeft de goedkeurder gewijzigd naar `, actions: { @@ -1577,7 +1573,8 @@ const translations: TranslationDeepObject = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `In afwachting tot jij uitgaven toevoegt.`; @@ -1587,7 +1584,8 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder onkosten toevoegt.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Wachten tot jij onkosten indient.`; @@ -1597,8 +1595,10 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder onkosten indient.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: (_: NextStepParams) => `Geen verdere actie vereist!`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ({actor, actorType}: NextStepParams) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `Geen verdere actie vereist!`, + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `We wachten op jou om een bankrekening toe te voegen.`; @@ -1608,11 +1608,17 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder een bankrekening toevoegt.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ({actor, actorType, eta, etaType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ( + actor: string, + actorType: ValueOf, + eta?: string, + etaType?: ValueOf, + ) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` op de ${eta} van elke maand` : ` ${eta}`; } + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Wachten tot jouw declaraties automatisch worden ingediend${formattedETA}.`; @@ -1622,7 +1628,8 @@ const translations: TranslationDeepObject = { return `Wachten tot de onkostendeclaraties van een beheerder automatisch worden ingediend${formattedETA}.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `We wachten op jou om de problemen op te lossen.`; @@ -1632,7 +1639,8 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder de problemen oplost.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Wachten tot jij de declaraties goedkeurt.`; @@ -1642,7 +1650,8 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder de onkosten goedkeurt.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Wachten tot jij dit rapport exporteert.`; @@ -1652,7 +1661,8 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder dit rapport exporteert.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Wachten tot jij de onkosten betaalt.`; @@ -1662,7 +1672,8 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder de onkosten betaalt.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Wachten tot jij het instellen van een zakelijke bankrekening afrondt.`; @@ -1672,14 +1683,15 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder klaar is met het instellen van een zakelijke bankrekening.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ({eta, etaType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta?: string, etaType?: ValueOf) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` vóór ${eta}` : ` ${eta}`; } return `Wachten tot de betaling is voltooid${formattedETA}.`; }, - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: (_: NextStepParams) => + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => `Oeps! Het lijkt erop dat je deze verklaring naar jezelf indient. Het goedkeuren van je eigen rapporten is verboden door je werkruimte. Dien dit rapport in bij iemand anders of neem contact op met je beheerder om de persoon te wijzigen bij wie je indient.`, }, eta: { @@ -3236,7 +3248,7 @@ ${ haveReadAndAgreePlain: 'Ik heb gelezen en ga ermee akkoord elektronische bekendmakingen te ontvangen.', haveReadAndAgree: `Ik heb gelezen en ga ermee akkoord om elektronische openbaarmakingen te ontvangen.`, agreeToThePlain: 'Ik ga akkoord met het privacy- en walletcontract.', - agreeToThe: ({walletAgreementUrl}: WalletAgreementParams) => + agreeToThe: (walletAgreementUrl: string) => `Ik ga akkoord met het privacybeleid en de walletovereenkomst.`, enablePayments: 'Betalingen inschakelen', monthlyFee: 'Maandelijkse vergoeding', @@ -3897,7 +3909,7 @@ ${ appliedOnExport: 'Niet geïmporteerd in Expensify, toegepast bij export', shareNote: { header: 'Deel je werkruimte met andere leden', - content: ({adminsRoomLink}: WorkspaceShareNoteParams) => + content: (adminsRoomLink: string) => `Deel deze QR-code of kopieer de link hieronder om het leden makkelijk te maken toegang tot je werkruimte aan te vragen. Alle verzoeken om lid te worden van de werkruimte verschijnen in de ${CONST.REPORT.WORKSPACE_CHAT_ROOMS.ADMINS}-ruimte ter beoordeling.`, }, connectTo: ({connectionName}: ConnectionNameParams) => `Verbind met ${CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY[connectionName]}`, @@ -6199,7 +6211,7 @@ Vereis onkostendetails zoals bonnen en beschrijvingen, stel limieten en standaar upgradeToUnlock: 'Deze functie ontgrendelen', completed: { headline: `Je hebt je workspace geüpgraded!`, - successMessage: ({policyName, subscriptionLink}: UpgradeSuccessMessageParams) => + successMessage: (policyName: string, subscriptionLink: string) => `Je hebt ${policyName} succesvol geüpgraded naar het Control-abonnement! Bekijk je abonnement voor meer details.`, categorizeMessage: `Je bent succesvol overgestapt naar het Collect-abonnement. Nu kun je je uitgaven categoriseren!`, travelMessage: `Je bent succesvol geüpgraded naar het Collect-abonnement. Je kunt nu beginnen met het boeken en beheren van reizen!`, diff --git a/src/languages/params.ts b/src/languages/params.ts index 456a5cadb055b..3aa49f00dc121 100644 --- a/src/languages/params.ts +++ b/src/languages/params.ts @@ -360,27 +360,27 @@ type WorkspaceUpgradeNoteParams = { subscriptionLink: string; }; -type WorkflowSettingsParam = {workflowSettingLink: string}; +// type WorkflowSettingsParam = {workflowSettingLink: string}; -type WorkspaceShareNoteParams = { - adminsRoomLink: string; -}; +// type WorkspaceShareNoteParams = { +// adminsRoomLink: string; +// }; -type UpgradeSuccessMessageParams = { - policyName: string; - subscriptionLink: string; -}; +// type UpgradeSuccessMessageParams = { +// policyName: string; +// subscriptionLink: string; +// }; -type WalletAgreementParams = { - walletAgreementUrl: string; -}; +// type WalletAgreementParams = { +// walletAgreementUrl: string; +// }; -type NextStepParams = { - actor: string; - actorType: ValueOf; - eta?: string; - etaType?: ValueOf; -}; +// type NextStepParams = { +// actor: string; +// actorType: ValueOf; +// eta?: string; +// etaType?: ValueOf; +// }; type ConciergeBrokenCardConnectionParams = { cardName: string; @@ -501,11 +501,11 @@ export type { DeleteBudgetParams, AddOrDeletePolicyCustomUnitRateParams, WorkspaceUpgradeNoteParams, - WorkflowSettingsParam, - WorkspaceShareNoteParams, - UpgradeSuccessMessageParams, - WalletAgreementParams, - NextStepParams, + // WorkflowSettingsParam, + // WorkspaceShareNoteParams, + // UpgradeSuccessMessageParams, + // WalletAgreementParams, + // NextStepParams, // UpdatedPolicyOwnershipParams, UpdatedPolicyAutoHarvestingParams, // UpdatedPolicyBudgetNotificationParams, diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 29e651b6efc8b..983862cb39f5b 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -11,6 +11,7 @@ */ import {CONST as COMMON_CONST} from 'expensify-common'; import startCase from 'lodash/startCase'; +import type {ValueOf} from 'type-fest'; import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow'; import StringUtils from '@libs/StringUtils'; import dedent from '@libs/StringUtils/dedent'; @@ -41,7 +42,6 @@ import type { MarkReimbursedFromIntegrationParams, MissingPropertyParams, MovedFromPersonalSpaceParams, - NextStepParams, NotAllowedExtensionParams, OptionalParam, PaidElsewhereParams, @@ -86,7 +86,6 @@ import type { UpdatePolicyCustomUnitParams, UpdatePolicyCustomUnitTaxEnabledParams, UpdateRoleParams, - UpgradeSuccessMessageParams, UsePlusButtonParams, UserIsAlreadyMemberParams, UserSplitParams, @@ -107,20 +106,17 @@ import type { ViolationsTagOutOfPolicyParams, ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, - WalletAgreementParams, WalletProgramParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, WeSentYouMagicSignInLinkParams, WorkEmailMergingBlockedParams, WorkEmailResendCodeParams, - WorkflowSettingsParam, WorkspaceLockedPlanTypeParams, WorkspaceMemberList, WorkspaceMembersCountParams, WorkspaceOwnerWillNeedToAddOrUpdatePaymentCardParams, WorkspaceRouteParams, - WorkspaceShareNoteParams, WorkspacesListRouteParams, WorkspaceUpgradeNoteParams, WorkspaceYouMayJoin, @@ -1469,7 +1465,7 @@ const translations: TranslationDeepObject = { moveExpensesError: 'Nie możesz przenosić diet do raportów w innych przestrzeniach roboczych, ponieważ stawki diet mogą się różnić między przestrzeniami roboczymi.', changeApprover: { title: 'Zmień osobę zatwierdzającą', - header: ({workflowSettingLink}: WorkflowSettingsParam) => + header: (workflowSettingLink: string) => `Wybierz opcję, aby zmienić osobę zatwierdzającą ten raport. (Zaktualizuj swoje ustawienia przestrzeni roboczej, aby zmienić to na stałe dla wszystkich raportów).`, changedApproverMessage: (managerID: number) => `zmienił(a) akceptującego na `, actions: { @@ -1577,7 +1573,8 @@ const translations: TranslationDeepObject = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Czekamy, aż Ty dodasz wydatki.`; @@ -1587,7 +1584,8 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na dodanie wydatków przez administratora.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Oczekiwanie, aż ty zgłosisz wydatki.`; @@ -1597,8 +1595,10 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na zgłoszenie wydatków przez administratora.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: (_: NextStepParams) => `Nie są wymagane dalsze działania!`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ({actor, actorType}: NextStepParams) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `Nie są wymagane dalsze działania!`, + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Czekamy, aż Ty dodasz konto bankowe.`; @@ -1608,11 +1608,17 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na dodanie konta bankowego przez administratora.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ({actor, actorType, eta, etaType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ( + actor: string, + actorType: ValueOf, + eta?: string, + etaType?: ValueOf, + ) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` ${eta} dnia każdego miesiąca` : ` ${eta}`; } + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Oczekiwanie, aż Twoje wydatki zostaną automatycznie przesłane${formattedETA}.`; @@ -1622,7 +1628,8 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na automatyczne przesłanie wydatków administratora${formattedETA}.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Czekamy, aż Ty naprawisz problemy.`; @@ -1632,7 +1639,8 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na administratora, który naprawi problemy.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Oczekiwanie na Twoje zatwierdzenie wydatków.`; @@ -1642,7 +1650,8 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na zatwierdzenie wydatków przez administratora.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Oczekujemy, aż ty wyeksportujesz ten raport.`; @@ -1652,7 +1661,8 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na administratora, który wyeksportuje ten raport.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Czekamy, aż Ty opłacisz wydatki.`; @@ -1662,7 +1672,8 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na opłacenie wydatków przez administratora.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Czekamy, aż Ty zakończysz konfigurację firmowego konta bankowego.`; @@ -1672,14 +1683,15 @@ const translations: TranslationDeepObject = { return `Oczekiwanie, aż administrator zakończy konfigurację firmowego konta bankowego.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ({eta, etaType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta?: string, etaType?: ValueOf) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` do ${eta}` : ` ${eta}`; } return `Oczekiwanie na zakończenie płatności${formattedETA}.`; }, - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: (_: NextStepParams) => + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => `Ups! Wygląda na to, że wysyłasz zgłoszenie do siebie. Zatwierdzanie własnych raportów jest zabronione w Twojej przestrzeni roboczej. Wyślij ten raport do kogoś innego lub skontaktuj się z administratorem, aby zmienić osobę, do której wysyłasz zgłoszenia.`, }, eta: { @@ -3228,7 +3240,7 @@ ${ haveReadAndAgreePlain: 'Przeczytałem(-am) i zgadzam się na otrzymywanie ujawnień w formie elektronicznej.', haveReadAndAgree: `Przeczytałem(-am) i wyrażam zgodę na otrzymywanie elektronicznych powiadomień.`, agreeToThePlain: 'Zgadzam się na Politykę prywatności i warunki portfela.', - agreeToThe: ({walletAgreementUrl}: WalletAgreementParams) => + agreeToThe: (walletAgreementUrl: string) => `Zgadzam się z polityką prywatności oraz warunkami korzystania z portfela.`, enablePayments: 'Włącz płatności', monthlyFee: 'Miesięczna opłata', @@ -3890,7 +3902,7 @@ ${ appliedOnExport: 'Nie zaimportowano do Expensify, zastosowane przy eksporcie', shareNote: { header: 'Udostępnij swoją przestrzeń roboczą innym członkom', - content: ({adminsRoomLink}: WorkspaceShareNoteParams) => + content: (adminsRoomLink: string) => `Udostępnij ten kod QR lub skopiuj poniższy link, aby członkowie mogli łatwo poprosić o dostęp do Twojego obszaru roboczego. Wszystkie prośby o dołączenie do obszaru roboczego pojawią się w pokoju ${CONST.REPORT.WORKSPACE_CHAT_ROOMS.ADMINS} do Twojej weryfikacji.`, }, connectTo: ({connectionName}: ConnectionNameParams) => `Połącz z ${CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY[connectionName]}`, @@ -6192,7 +6204,7 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i upgradeToUnlock: 'Odblokuj tę funkcję', completed: { headline: `Zaktualizowano Twoją przestrzeń roboczą!`, - successMessage: ({policyName, subscriptionLink}: UpgradeSuccessMessageParams) => + successMessage: (policyName: string, subscriptionLink: string) => `Udało Ci się uaktualnić ${policyName} do planu Control! Wyświetl swoją subskrypcję, aby uzyskać więcej szczegółów.`, categorizeMessage: `Pomyślnie uaktualniono do planu Collect. Teraz możesz kategoryzować swoje wydatki!`, travelMessage: `Pomyślnie uaktualniono do planu Collect. Teraz możesz zacząć rezerwować i zarządzać podróżami!`, diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 7d66dabf6650d..50ed771e664c3 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -11,6 +11,7 @@ */ import {CONST as COMMON_CONST} from 'expensify-common'; import startCase from 'lodash/startCase'; +import type {ValueOf} from 'type-fest'; import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow'; import StringUtils from '@libs/StringUtils'; import dedent from '@libs/StringUtils/dedent'; @@ -41,7 +42,6 @@ import type { MarkReimbursedFromIntegrationParams, MissingPropertyParams, MovedFromPersonalSpaceParams, - NextStepParams, NotAllowedExtensionParams, OptionalParam, PaidElsewhereParams, @@ -86,7 +86,6 @@ import type { UpdatePolicyCustomUnitParams, UpdatePolicyCustomUnitTaxEnabledParams, UpdateRoleParams, - UpgradeSuccessMessageParams, UsePlusButtonParams, UserIsAlreadyMemberParams, UserSplitParams, @@ -107,20 +106,17 @@ import type { ViolationsTagOutOfPolicyParams, ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, - WalletAgreementParams, WalletProgramParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, WeSentYouMagicSignInLinkParams, WorkEmailMergingBlockedParams, WorkEmailResendCodeParams, - WorkflowSettingsParam, WorkspaceLockedPlanTypeParams, WorkspaceMemberList, WorkspaceMembersCountParams, WorkspaceOwnerWillNeedToAddOrUpdatePaymentCardParams, WorkspaceRouteParams, - WorkspaceShareNoteParams, WorkspacesListRouteParams, WorkspaceUpgradeNoteParams, WorkspaceYouMayJoin, @@ -1467,7 +1463,7 @@ const translations: TranslationDeepObject = { moveExpensesError: 'Você não pode mover despesas de diária para relatórios em outros workspaces, porque as tarifas de diária podem ser diferentes entre os workspaces.', changeApprover: { title: 'Alterar aprovador', - header: ({workflowSettingLink}: WorkflowSettingsParam) => + header: (workflowSettingLink: string) => `Escolha uma opção para alterar o aprovador deste relatório. (Atualize as configurações do espaço de trabalho para alterar isso permanentemente para todos os relatórios.)`, changedApproverMessage: (managerID: number) => `alterou o aprovador para `, actions: { @@ -1574,7 +1570,8 @@ const translations: TranslationDeepObject = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Aguardando você adicionar despesas.`; @@ -1584,7 +1581,8 @@ const translations: TranslationDeepObject = { return `Aguardando um administrador adicionar despesas.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Aguardando que você envie despesas.`; @@ -1594,8 +1592,10 @@ const translations: TranslationDeepObject = { return `Aguardando um administrador enviar as despesas.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: (_: NextStepParams) => `Nenhuma ação adicional necessária!`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ({actor, actorType}: NextStepParams) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `Nenhuma ação adicional necessária!`, + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Aguardando você adicionar uma conta bancária.`; @@ -1605,11 +1605,17 @@ const translations: TranslationDeepObject = { return `Aguardando um administrador adicionar uma conta bancária.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ({actor, actorType, eta, etaType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ( + actor: string, + actorType: ValueOf, + eta?: string, + etaType?: ValueOf, + ) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` no dia ${eta} de cada mês` : ` ${eta}`; } + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Aguardando as suas despesas serem enviadas automaticamente${formattedETA}.`; @@ -1619,7 +1625,8 @@ const translations: TranslationDeepObject = { return `Aguardando as despesas de um administrador serem enviadas automaticamente${formattedETA}.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Aguardando você corrigir os problemas.`; @@ -1629,7 +1636,8 @@ const translations: TranslationDeepObject = { return `Aguardando que um administrador corrija os problemas.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Aguardando que você aprove as despesas.`; @@ -1639,7 +1647,8 @@ const translations: TranslationDeepObject = { return `Aguardando um administrador aprovar as despesas.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Aguardando você exportar este relatório.`; @@ -1649,7 +1658,8 @@ const translations: TranslationDeepObject = { return `Aguardando um admin exportar este relatório.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Aguardando você pagar as despesas.`; @@ -1659,7 +1669,8 @@ const translations: TranslationDeepObject = { return `Aguardando um administrador pagar as despesas.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `Aguardando que você termine de configurar uma conta bancária empresarial.`; @@ -1669,14 +1680,15 @@ const translations: TranslationDeepObject = { return `Aguardando um administrador concluir a configuração de uma conta bancária empresarial.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ({eta, etaType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta?: string, etaType?: ValueOf) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` até ${eta}` : ` ${eta}`; } return `Aguardando o pagamento ser concluído${formattedETA}.`; }, - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: (_: NextStepParams) => + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => `Opa! Parece que você está enviando para você mesmo. Aprovar seus próprios relatórios é proibido pelo seu espaço de trabalho. Envie este relatório para outra pessoa ou entre em contato com o seu administrador para alterar a pessoa para quem você envia.`, }, eta: { @@ -3228,7 +3240,7 @@ ${ haveReadAndAgreePlain: 'Li e concordo em receber divulgações eletrônicas.', haveReadAndAgree: `Li e concordo em receber comunicados eletrônicos.`, agreeToThePlain: 'Eu concordo com o contrato de Privacidade e Carteira.', - agreeToThe: ({walletAgreementUrl}: WalletAgreementParams) => + agreeToThe: (walletAgreementUrl: string) => `Concordo com a Política de Privacidade e com o Contrato da carteira.`, enablePayments: 'Ativar pagamentos', monthlyFee: 'Taxa mensal', @@ -3890,7 +3902,7 @@ ${ appliedOnExport: 'Não importado para o Expensify, aplicado na exportação', shareNote: { header: 'Compartilhe seu workspace com outras pessoas', - content: ({adminsRoomLink}: WorkspaceShareNoteParams) => + content: (adminsRoomLink: string) => `Compartilhe este código QR ou copie o link abaixo para facilitar que membros solicitem acesso ao seu espaço de trabalho. Todas as solicitações para entrar no espaço de trabalho aparecerão na sala ${CONST.REPORT.WORKSPACE_CHAT_ROOMS.ADMINS} para sua análise.`, }, connectTo: ({connectionName}: ConnectionNameParams) => `Conectar a ${CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY[connectionName]}`, @@ -6198,7 +6210,7 @@ Exija dados de despesas como recibos e descrições, defina limites e padrões e upgradeToUnlock: 'Desbloquear este recurso', completed: { headline: `Você atualizou seu workspace!`, - successMessage: ({policyName, subscriptionLink}: UpgradeSuccessMessageParams) => + successMessage: (policyName: string, subscriptionLink: string) => `Você atualizou o plano ${policyName} para o Control com sucesso! Veja sua assinatura para mais detalhes.`, categorizeMessage: `Você fez upgrade com sucesso para o plano Collect. Agora você pode categorizar suas despesas!`, travelMessage: `Você fez upgrade com sucesso para o plano Collect. Agora você pode começar a reservar e gerenciar viagens!`, diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index b82c7bd8d3e16..4b13133ba971f 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -11,6 +11,7 @@ */ import {CONST as COMMON_CONST} from 'expensify-common'; import startCase from 'lodash/startCase'; +import type {ValueOf} from 'type-fest'; import type {OnboardingTask} from '@libs/actions/Welcome/OnboardingFlow'; import StringUtils from '@libs/StringUtils'; import dedent from '@libs/StringUtils/dedent'; @@ -41,7 +42,6 @@ import type { MarkReimbursedFromIntegrationParams, MissingPropertyParams, MovedFromPersonalSpaceParams, - NextStepParams, NotAllowedExtensionParams, OptionalParam, PaidElsewhereParams, @@ -86,7 +86,6 @@ import type { UpdatePolicyCustomUnitParams, UpdatePolicyCustomUnitTaxEnabledParams, UpdateRoleParams, - UpgradeSuccessMessageParams, UsePlusButtonParams, UserIsAlreadyMemberParams, UserSplitParams, @@ -107,20 +106,17 @@ import type { ViolationsTagOutOfPolicyParams, ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, - WalletAgreementParams, WalletProgramParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, WeSentYouMagicSignInLinkParams, WorkEmailMergingBlockedParams, WorkEmailResendCodeParams, - WorkflowSettingsParam, WorkspaceLockedPlanTypeParams, WorkspaceMemberList, WorkspaceMembersCountParams, WorkspaceOwnerWillNeedToAddOrUpdatePaymentCardParams, WorkspaceRouteParams, - WorkspaceShareNoteParams, WorkspacesListRouteParams, WorkspaceUpgradeNoteParams, WorkspaceYouMayJoin, @@ -1441,8 +1437,7 @@ const translations: TranslationDeepObject = { moveExpensesError: '您无法将每日津贴报销移动到其他工作区的报表中,因为不同工作区的每日津贴标准可能不同。', changeApprover: { title: '更改审批人', - header: ({workflowSettingLink}: WorkflowSettingsParam) => - `选择一个选项来更改此报表的审批人。(更新你的工作区设置,以将其永久应用于所有报表。)`, + header: (workflowSettingLink: string) => `选择一个选项来更改此报表的审批人。(更新你的工作区设置,以将其永久应用于所有报表。)`, changedApproverMessage: (managerID: number) => `已将审批人更改为 `, actions: { addApprover: '添加审批人', @@ -1548,7 +1543,8 @@ const translations: TranslationDeepObject = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `正在等待添加报销。`; @@ -1558,7 +1554,8 @@ const translations: TranslationDeepObject = { return `正在等待管理员添加报销。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `正在等待提交报销。`; @@ -1568,8 +1565,10 @@ const translations: TranslationDeepObject = { return `正在等待管理员提交报销。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: (_: NextStepParams) => `无需采取进一步操作!`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ({actor, actorType}: NextStepParams) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `无需采取进一步操作!`, + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `正在等待添加银行账户。`; @@ -1579,11 +1578,17 @@ const translations: TranslationDeepObject = { return `正在等待管理员添加银行账户。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ({actor, actorType, eta, etaType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_AUTOMATIC_SUBMIT]: ( + actor: string, + actorType: ValueOf, + eta?: string, + etaType?: ValueOf, + ) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` 在每个月的第 ${eta} 天` : ` ${eta}`; } + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `正在等待你的报销自动提交${formattedETA}。`; @@ -1593,7 +1598,8 @@ const translations: TranslationDeepObject = { return `正在等待管理员的报销在${formattedETA}自动提交。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `正在等待来修复这些问题。`; @@ -1603,7 +1609,8 @@ const translations: TranslationDeepObject = { return `正在等待管理员修复这些问题。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `正在等待批准报销。`; @@ -1613,7 +1620,8 @@ const translations: TranslationDeepObject = { return `正在等待管理员批准报销。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `正在等待导出此报表。`; @@ -1623,7 +1631,8 @@ const translations: TranslationDeepObject = { return `正在等待管理员导出此报表。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `正在等待报销费用。`; @@ -1633,7 +1642,8 @@ const translations: TranslationDeepObject = { return `正在等待管理员报销费用。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ({actor, actorType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: return `等待完成企业银行账户的设置。`; @@ -1643,14 +1653,15 @@ const translations: TranslationDeepObject = { return `正在等待管理员完成企业银行账户的设置。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ({eta, etaType}: NextStepParams) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta?: string, etaType?: ValueOf) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` 在 ${eta} 前` : ` ${eta}`; } return `正在等待付款完成${formattedETA}。`; }, - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: (_: NextStepParams) => + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => `哎呀!看起来你正在将报销单提交给自己。根据你的工作区规定,审批自己的报销单是禁止的。请将此报销单提交给其他人,或联系管理员更改你的报销单提交对象。`, }, eta: { @@ -3175,7 +3186,7 @@ ${ haveReadAndAgreePlain: '我已阅读并同意接收电子披露文件。', haveReadAndAgree: `我已阅读并同意接收电子披露文件。`, agreeToThePlain: '我同意《隐私和钱包协议》。', - agreeToThe: ({walletAgreementUrl}: WalletAgreementParams) => `我同意隐私政策钱包协议。`, + agreeToThe: (walletAgreementUrl: string) => `我同意隐私政策钱包协议。`, enablePayments: '启用付款', monthlyFee: '月费', inactivity: '不活跃', @@ -3825,7 +3836,7 @@ ${ appliedOnExport: '未导入 Expensify,在导出时应用', shareNote: { header: '与其他成员共享你的工作区', - content: ({adminsRoomLink}: WorkspaceShareNoteParams) => + content: (adminsRoomLink: string) => `将此二维码分享给他人或复制下方链接,方便成员请求访问你的工作区。所有加入工作区的请求都会显示在 ${CONST.REPORT.WORKSPACE_CHAT_ROOMS.ADMINS} 聊天室中,供你审核。`, }, connectTo: ({connectionName}: ConnectionNameParams) => `连接到 ${CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY[connectionName]}`, @@ -6063,7 +6074,7 @@ ${reportName} upgradeToUnlock: '解锁此功能', completed: { headline: `您已升级您的工作区!`, - successMessage: ({policyName, subscriptionLink}: UpgradeSuccessMessageParams) => + successMessage: (policyName: string, subscriptionLink: string) => `您已成功将 ${policyName} 升级到 Control 方案!有关更多详情,请查看您的订阅`, categorizeMessage: `您已成功升级至 Collect 方案。现在您可以为报销费用分类了!`, travelMessage: `您已成功升级到 Collect 方案。现在可以开始预订和管理行程了!`, From 42739b1f8192a6690a14ea30405838422027971c Mon Sep 17 00:00:00 2001 From: jakubstec Date: Thu, 5 Mar 2026 09:33:01 +0100 Subject: [PATCH 03/11] (refactor): simplify translation param types to standalone params part4, normalize params in nextStep.message.* --- src/languages/de.ts | 85 ++++++++++++++++--- src/languages/en.ts | 85 ++++++++++++++++--- src/languages/es.ts | 30 ++++--- src/languages/fr.ts | 85 ++++++++++++++++--- src/languages/it.ts | 85 ++++++++++++++++--- src/languages/ja.ts | 85 ++++++++++++++++--- src/languages/nl.ts | 85 ++++++++++++++++--- src/languages/pl.ts | 85 ++++++++++++++++--- src/languages/pt-BR.ts | 85 ++++++++++++++++--- src/languages/zh-hans.ts | 85 ++++++++++++++++--- src/libs/NextStepUtils.ts | 2 +- src/libs/ReportActionsUtils.ts | 3 +- .../FeesAndTerms/substeps/TermsStep.tsx | 2 +- src/pages/EnablePayments/TermsStep.tsx | 2 +- src/pages/ReportChangeApproverPage.tsx | 6 +- .../workspace/WorkspaceOverviewSharePage.tsx | 2 +- .../workspace/upgrade/UpgradeConfirmation.tsx | 2 +- 17 files changed, 693 insertions(+), 121 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index bba81da2a90ab..0f95ece1c239a 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -1579,7 +1579,13 @@ const translations: TranslationDeepObject = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1590,7 +1596,13 @@ const translations: TranslationDeepObject = { return `Warten auf eine*n Admin, der Ausgaben hinzufügt.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1602,8 +1614,19 @@ const translations: TranslationDeepObject = { } }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `Keine weiteren Schritte erforderlich!`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor: string, actorType: ValueOf) => { + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: ( + _actor: string, + _actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => `Keine weiteren Schritte erforderlich!`, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1634,7 +1657,13 @@ const translations: TranslationDeepObject = { return `Warten, bis die Spesen eines Admins automatisch eingereicht werden${formattedETA}.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1645,7 +1674,13 @@ const translations: TranslationDeepObject = { return `Warten auf eine*n Admin, um die Probleme zu beheben.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1656,7 +1691,13 @@ const translations: TranslationDeepObject = { return `Warte darauf, dass eine Admin-Person Spesen genehmigt.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1667,7 +1708,13 @@ const translations: TranslationDeepObject = { return `Warten auf eine*n Admin, um diesen Bericht zu exportieren.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1678,7 +1725,13 @@ const translations: TranslationDeepObject = { return `Warten darauf, dass ein Admin Spesen bezahlt.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1689,7 +1742,12 @@ const translations: TranslationDeepObject = { return `Warten, bis ein Admin die Einrichtung eines Geschäftskontos abgeschlossen hat.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta?: string, etaType?: ValueOf) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ( + _actor: string, + _actorType: ValueOf, + eta?: string, + etaType?: ValueOf, + ) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` bis ${eta}` : ` ${eta}`; @@ -1697,7 +1755,12 @@ const translations: TranslationDeepObject = { return `Warte, bis die Zahlung abgeschlossen ist${formattedETA}.`; }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: ( + _actor: string, + _actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => `Ups! Sie scheinen diesen Bericht an sich selbst einzureichen. Die Genehmigung eigener Berichte ist in Ihrem Arbeitsbereich verboten. Bitte reichen Sie diesen Bericht bei einer anderen Person ein oder wenden Sie sich an Ihre Admin, um die empfangende Person zu ändern.`, }, eta: { diff --git a/src/languages/en.ts b/src/languages/en.ts index d5e532dad6341..fdfe412a161ef 100644 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -1593,7 +1593,13 @@ const translations = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // Disabling the default-case lint rule here is actually safer as this forces us to make the switch cases exhaustive // eslint-disable-next-line default-case switch (actorType) { @@ -1605,7 +1611,13 @@ const translations = { return `Waiting for an admin to add expenses.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // Disabling the default-case lint rule here is actually safer as this forces us to make the switch cases exhaustive // eslint-disable-next-line default-case switch (actorType) { @@ -1618,8 +1630,19 @@ const translations = { } }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `No further action required!`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor: string, actorType: ValueOf) => { + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: ( + _actor: string, + _actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => `No further action required!`, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // Disabling the default-case lint rule here is actually safer as this forces us to make the switch cases exhaustive // eslint-disable-next-line default-case switch (actorType) { @@ -1653,7 +1676,13 @@ const translations = { return `Waiting for an admin's expenses to automatically submit${formattedETA}.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // Disabling the default-case lint rule here is actually safer as this forces us to make the switch cases exhaustive // eslint-disable-next-line default-case switch (actorType) { @@ -1665,7 +1694,13 @@ const translations = { return `Waiting for an admin to fix the issues.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // Disabling the default-case lint rule here is actually safer as this forces us to make the switch cases exhaustive // eslint-disable-next-line default-case switch (actorType) { @@ -1677,7 +1712,13 @@ const translations = { return `Waiting for an admin to approve expenses.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // Disabling the default-case lint rule here is actually safer as this forces us to make the switch cases exhaustive // eslint-disable-next-line default-case switch (actorType) { @@ -1689,7 +1730,13 @@ const translations = { return `Waiting for an admin to export this report.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // Disabling the default-case lint rule here is actually safer as this forces us to make the switch cases exhaustive // eslint-disable-next-line default-case switch (actorType) { @@ -1701,7 +1748,13 @@ const translations = { return `Waiting for an admin to pay expenses.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // Disabling the default-case lint rule here is actually safer as this forces us to make the switch cases exhaustive // eslint-disable-next-line default-case switch (actorType) { @@ -1713,7 +1766,12 @@ const translations = { return `Waiting for an admin to finish setting up a business bank account.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta?: string, etaType?: ValueOf) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ( + _actor: string, + _actorType: ValueOf, + eta?: string, + etaType?: ValueOf, + ) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` by ${eta}` : ` ${eta}`; @@ -1722,7 +1780,12 @@ const translations = { return `Waiting for payment to complete${formattedETA}.`; }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: ( + _actor: string, + _actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => `Oops! Looks like you're submitting to yourself. Approving your own reports is forbidden by your workspace. Please submit this report to someone else or contact your admin to change the person you submit to.`, }, eta: { diff --git a/src/languages/es.ts b/src/languages/es.ts index f63866222ae51..25f05c1fe447b 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -1431,7 +1431,8 @@ const translations: TranslationDeepObject = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor, actorType) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor, actorType, _eta, _etaType) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1442,7 +1443,8 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador añada gastos.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor, actorType) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor, actorType, _eta, _etaType) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1454,8 +1456,9 @@ const translations: TranslationDeepObject = { } }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `¡No se requiere ninguna acción adicional!`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor, actorType) => { + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: (_actor, _actorType, _eta, _etaType) => `¡No se requiere ninguna acción adicional!`, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor, actorType, _eta, _etaType) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1482,7 +1485,8 @@ const translations: TranslationDeepObject = { return `Esperando a que los gastos de un administrador se envíen automáticamente${formattedETA}.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor, actorType) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor, actorType, _eta, _etaType) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1493,7 +1497,8 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador solucione ellos problemas.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor, actorType) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor, actorType, _eta, _etaType) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1504,7 +1509,8 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador apruebe los gastos.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor, actorType) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor, actorType, _eta, _etaType) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1515,7 +1521,8 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador exporte este informe.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor, actorType) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor, actorType, _eta, _etaType) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1526,7 +1533,8 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador pague los gastos.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor, actorType) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor, actorType, _eta, _etaType) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1537,7 +1545,7 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador termine de configurar una cuenta bancaria de empresa.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta, etaType) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (_actor, _actorType, eta, etaType) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` para el ${eta}` : ` ${eta}`; @@ -1546,7 +1554,7 @@ const translations: TranslationDeepObject = { return `Esperando a que se complete el pago${formattedETA}.`; }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: (_actor, _actorType, _eta, _etaType) => `¡Ups! Parece que estás enviando el informe a ti mismo. Aprobar tus propios informes está prohibido por tu espacio de trabajo. Por favor, envía este informe a otra persona o contacta a tu administrador para cambiar la persona a la que lo envías.`, }, eta: { diff --git a/src/languages/fr.ts b/src/languages/fr.ts index bba45b42734a3..a3843e1fd1941 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -1584,7 +1584,13 @@ const translations: TranslationDeepObject = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1595,7 +1601,13 @@ const translations: TranslationDeepObject = { return `En attente qu’un administrateur ajoute des dépenses.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1607,8 +1619,19 @@ const translations: TranslationDeepObject = { } }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `Aucune autre action requise !`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor: string, actorType: ValueOf) => { + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: ( + _actor: string, + _actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => `Aucune autre action requise !`, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1639,7 +1662,13 @@ const translations: TranslationDeepObject = { return `En attente de la soumission automatique des dépenses d’un administrateur${formattedETA}.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1650,7 +1679,13 @@ const translations: TranslationDeepObject = { return `En attente qu’un administrateur corrige les problèmes.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1661,7 +1696,13 @@ const translations: TranslationDeepObject = { return `En attente de l’approbation des dépenses par un administrateur.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1672,7 +1713,13 @@ const translations: TranslationDeepObject = { return `En attente qu’un administrateur exporte cette note de frais.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1683,7 +1730,13 @@ const translations: TranslationDeepObject = { return `En attente qu’un administrateur paie les dépenses.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1694,7 +1747,12 @@ const translations: TranslationDeepObject = { return `En attente qu’un administrateur termine la configuration d’un compte bancaire professionnel.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta?: string, etaType?: ValueOf) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ( + _actor: string, + _actorType: ValueOf, + eta?: string, + etaType?: ValueOf, + ) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` le ${eta}` : ` ${eta}`; @@ -1702,7 +1760,12 @@ const translations: TranslationDeepObject = { return `En attente de la finalisation du paiement${formattedETA}.`; }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: ( + _actor: string, + _actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => `Oups ! On dirait que vous soumettez cette note de frais à vous-même. Approuver vos propres notes de frais est interdit par votre espace de travail. Veuillez soumettre cette note de frais à quelqu’un d’autre ou contacter votre administrateur pour changer la personne à qui vous la soumettez.`, }, eta: { diff --git a/src/languages/it.ts b/src/languages/it.ts index 10f5ec706f05a..0444ebc69b010 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -1575,7 +1575,13 @@ const translations: TranslationDeepObject = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1586,7 +1592,13 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore aggiunga delle spese.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1598,8 +1610,19 @@ const translations: TranslationDeepObject = { } }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `Nessun’altra azione richiesta!`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor: string, actorType: ValueOf) => { + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: ( + _actor: string, + _actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => `Nessun’altra azione richiesta!`, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1630,7 +1653,13 @@ const translations: TranslationDeepObject = { return `In attesa che le note spese di un amministratore vengano inviate automaticamente${formattedETA}.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1641,7 +1670,13 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore risolva i problemi.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1652,7 +1687,13 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore approvi le spese.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1663,7 +1704,13 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore esporti questo resoconto.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1674,7 +1721,13 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore rimborsi le spese.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1685,7 +1738,12 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore completi la configurazione di un conto bancario aziendale.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta?: string, etaType?: ValueOf) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ( + _actor: string, + _actorType: ValueOf, + eta?: string, + etaType?: ValueOf, + ) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` entro le ${eta}` : ` ${eta}`; @@ -1693,7 +1751,12 @@ const translations: TranslationDeepObject = { return `In attesa che il pagamento venga completato${formattedETA}.`; }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: ( + _actor: string, + _actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => `Ops! Sembra che tu stia inviando il report a te stessə. L’approvazione dei propri report è vietata nel tuo spazio di lavoro. Invia questo report a un’altra persona oppure contatta il tuo amministratore per cambiare la persona a cui lo invii.`, }, eta: { diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 50f23d316693c..c20cf35864372 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -1568,7 +1568,13 @@ const translations: TranslationDeepObject = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1579,7 +1585,13 @@ const translations: TranslationDeepObject = { return `管理者が経費を追加するのを待機しています。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1591,8 +1603,19 @@ const translations: TranslationDeepObject = { } }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `これ以上の操作は不要です。`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor: string, actorType: ValueOf) => { + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: ( + _actor: string, + _actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => `これ以上の操作は不要です。`, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1623,7 +1646,13 @@ const translations: TranslationDeepObject = { return `管理者の経費が自動送信されるのを待機中です${formattedETA}。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1634,7 +1663,13 @@ const translations: TranslationDeepObject = { return `管理者が問題を修正するのを待機しています。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1645,7 +1680,13 @@ const translations: TranslationDeepObject = { return `管理者が経費を承認するのを待機しています。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1656,7 +1697,13 @@ const translations: TranslationDeepObject = { return `管理者がこのレポートをエクスポートするのを待っています。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1667,7 +1714,13 @@ const translations: TranslationDeepObject = { return `管理者が経費を支払うのを待っています。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1678,7 +1731,12 @@ const translations: TranslationDeepObject = { return `管理者がビジネス銀行口座の設定を完了するのを待っています。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta?: string, etaType?: ValueOf) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ( + _actor: string, + _actorType: ValueOf, + eta?: string, + etaType?: ValueOf, + ) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` ${eta}まで` : ` ${eta}`; @@ -1686,7 +1744,12 @@ const translations: TranslationDeepObject = { return `支払いの完了を待機しています${formattedETA}。`; }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: ( + _actor: string, + _actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => `おっと!自分自身に提出しようとしているようです。自分のレポートを承認することは、ワークスペースのルールで禁止されています。このレポートは他の人に提出するか、提出先を変更してもらうよう管理者に連絡してください。`, }, eta: { diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 7987fd717f0dd..7c5ccbc826aeb 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -1573,7 +1573,13 @@ const translations: TranslationDeepObject = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1584,7 +1590,13 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder onkosten toevoegt.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1596,8 +1608,19 @@ const translations: TranslationDeepObject = { } }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `Geen verdere actie vereist!`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor: string, actorType: ValueOf) => { + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: ( + _actor: string, + _actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => `Geen verdere actie vereist!`, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1628,7 +1651,13 @@ const translations: TranslationDeepObject = { return `Wachten tot de onkostendeclaraties van een beheerder automatisch worden ingediend${formattedETA}.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1639,7 +1668,13 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder de problemen oplost.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1650,7 +1685,13 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder de onkosten goedkeurt.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1661,7 +1702,13 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder dit rapport exporteert.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1672,7 +1719,13 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder de onkosten betaalt.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1683,7 +1736,12 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder klaar is met het instellen van een zakelijke bankrekening.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta?: string, etaType?: ValueOf) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ( + _actor: string, + _actorType: ValueOf, + eta?: string, + etaType?: ValueOf, + ) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` vóór ${eta}` : ` ${eta}`; @@ -1691,7 +1749,12 @@ const translations: TranslationDeepObject = { return `Wachten tot de betaling is voltooid${formattedETA}.`; }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: ( + _actor: string, + _actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => `Oeps! Het lijkt erop dat je deze verklaring naar jezelf indient. Het goedkeuren van je eigen rapporten is verboden door je werkruimte. Dien dit rapport in bij iemand anders of neem contact op met je beheerder om de persoon te wijzigen bij wie je indient.`, }, eta: { diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 983862cb39f5b..a2c96f9243d08 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -1573,7 +1573,13 @@ const translations: TranslationDeepObject = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1584,7 +1590,13 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na dodanie wydatków przez administratora.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1596,8 +1608,19 @@ const translations: TranslationDeepObject = { } }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `Nie są wymagane dalsze działania!`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor: string, actorType: ValueOf) => { + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: ( + _actor: string, + _actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => `Nie są wymagane dalsze działania!`, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1628,7 +1651,13 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na automatyczne przesłanie wydatków administratora${formattedETA}.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1639,7 +1668,13 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na administratora, który naprawi problemy.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1650,7 +1685,13 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na zatwierdzenie wydatków przez administratora.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1661,7 +1702,13 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na administratora, który wyeksportuje ten raport.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1672,7 +1719,13 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na opłacenie wydatków przez administratora.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1683,7 +1736,12 @@ const translations: TranslationDeepObject = { return `Oczekiwanie, aż administrator zakończy konfigurację firmowego konta bankowego.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta?: string, etaType?: ValueOf) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ( + _actor: string, + _actorType: ValueOf, + eta?: string, + etaType?: ValueOf, + ) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` do ${eta}` : ` ${eta}`; @@ -1691,7 +1749,12 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na zakończenie płatności${formattedETA}.`; }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: ( + _actor: string, + _actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => `Ups! Wygląda na to, że wysyłasz zgłoszenie do siebie. Zatwierdzanie własnych raportów jest zabronione w Twojej przestrzeni roboczej. Wyślij ten raport do kogoś innego lub skontaktuj się z administratorem, aby zmienić osobę, do której wysyłasz zgłoszenia.`, }, eta: { diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 50ed771e664c3..c96ce5c5c492a 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -1570,7 +1570,13 @@ const translations: TranslationDeepObject = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1581,7 +1587,13 @@ const translations: TranslationDeepObject = { return `Aguardando um administrador adicionar despesas.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1593,8 +1605,19 @@ const translations: TranslationDeepObject = { } }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `Nenhuma ação adicional necessária!`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor: string, actorType: ValueOf) => { + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: ( + _actor: string, + _actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => `Nenhuma ação adicional necessária!`, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1625,7 +1648,13 @@ const translations: TranslationDeepObject = { return `Aguardando as despesas de um administrador serem enviadas automaticamente${formattedETA}.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1636,7 +1665,13 @@ const translations: TranslationDeepObject = { return `Aguardando que um administrador corrija os problemas.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1647,7 +1682,13 @@ const translations: TranslationDeepObject = { return `Aguardando um administrador aprovar as despesas.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1658,7 +1699,13 @@ const translations: TranslationDeepObject = { return `Aguardando um admin exportar este relatório.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1669,7 +1716,13 @@ const translations: TranslationDeepObject = { return `Aguardando um administrador pagar as despesas.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1680,7 +1733,12 @@ const translations: TranslationDeepObject = { return `Aguardando um administrador concluir a configuração de uma conta bancária empresarial.`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta?: string, etaType?: ValueOf) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ( + _actor: string, + _actorType: ValueOf, + eta?: string, + etaType?: ValueOf, + ) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` até ${eta}` : ` ${eta}`; @@ -1688,7 +1746,12 @@ const translations: TranslationDeepObject = { return `Aguardando o pagamento ser concluído${formattedETA}.`; }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: ( + _actor: string, + _actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => `Opa! Parece que você está enviando para você mesmo. Aprovar seus próprios relatórios é proibido pelo seu espaço de trabalho. Envie este relatório para outra pessoa ou entre em contato com o seu administrador para alterar a pessoa para quem você envia.`, }, eta: { diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 4b13133ba971f..1fbd774b28900 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -1543,7 +1543,13 @@ const translations: TranslationDeepObject = { }, nextStep: { message: { - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1554,7 +1560,13 @@ const translations: TranslationDeepObject = { return `正在等待管理员添加报销。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1566,8 +1578,19 @@ const translations: TranslationDeepObject = { } }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: () => `无需采取进一步操作!`, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor: string, actorType: ValueOf) => { + [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: ( + _actor: string, + _actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => `无需采取进一步操作!`, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1598,7 +1621,13 @@ const translations: TranslationDeepObject = { return `正在等待管理员的报销在${formattedETA}自动提交。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1609,7 +1638,13 @@ const translations: TranslationDeepObject = { return `正在等待管理员修复这些问题。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1620,7 +1655,13 @@ const translations: TranslationDeepObject = { return `正在等待管理员批准报销。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1631,7 +1672,13 @@ const translations: TranslationDeepObject = { return `正在等待管理员导出此报表。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1642,7 +1689,13 @@ const translations: TranslationDeepObject = { return `正在等待管理员报销费用。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor: string, actorType: ValueOf) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ( + actor: string, + actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => { // eslint-disable-next-line default-case switch (actorType) { case CONST.NEXT_STEP.ACTOR_TYPE.CURRENT_USER: @@ -1653,7 +1706,12 @@ const translations: TranslationDeepObject = { return `正在等待管理员完成企业银行账户的设置。`; } }, - [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: (eta?: string, etaType?: ValueOf) => { + [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_PAYMENT]: ( + _actor: string, + _actorType: ValueOf, + eta?: string, + etaType?: ValueOf, + ) => { let formattedETA = ''; if (eta) { formattedETA = etaType === CONST.NEXT_STEP.ETA_TYPE.DATE_TIME ? ` 在 ${eta} 前` : ` ${eta}`; @@ -1661,7 +1719,12 @@ const translations: TranslationDeepObject = { return `正在等待付款完成${formattedETA}。`; }, // eslint-disable-next-line @typescript-eslint/no-unused-vars - [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: () => + [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: ( + _actor: string, + _actorType: ValueOf, + _eta?: string, + _etaType?: ValueOf, + ) => `哎呀!看起来你正在将报销单提交给自己。根据你的工作区规定,审批自己的报销单是禁止的。请将此报销单提交给其他人,或联系管理员更改你的报销单提交对象。`, }, eta: { diff --git a/src/libs/NextStepUtils.ts b/src/libs/NextStepUtils.ts index d8939417ddd31..8f5ffb0518129 100644 --- a/src/libs/NextStepUtils.ts +++ b/src/libs/NextStepUtils.ts @@ -66,7 +66,7 @@ function buildNextStepMessage(nextStep: ReportNextStep, translate: LocaleContext etaType = CONST.NEXT_STEP.ETA_TYPE.DATE_TIME; } - return `${translate(`nextStep.message.${nextStep.messageKey}`, {actor, actorType, eta, etaType})}`; + return `${translate(`nextStep.message.${nextStep.messageKey}`, actor, actorType, eta, etaType)}`; } function buildOptimisticNextStep(params: BuildNextStepNewParams): ReportNextStep | null { diff --git a/src/libs/ReportActionsUtils.ts b/src/libs/ReportActionsUtils.ts index ad0b50660d438..4c9c6cd8b5791 100644 --- a/src/libs/ReportActionsUtils.ts +++ b/src/libs/ReportActionsUtils.ts @@ -3905,7 +3905,8 @@ function getUpdatedSharedBudgetNotificationMessage(translate: LocalizedTranslate summaryLink = extractLinksFromMessageHtmlString(summaryLinkMessage); } - return translate('workspaceActions.updatedSharedBudgetNotification', + return translate( + 'workspaceActions.updatedSharedBudgetNotification', budgetAmount, translate(`workspace.common.budgetFrequency.${budgetFrequency}` as TranslationPaths), budgetName, diff --git a/src/pages/EnablePayments/FeesAndTerms/substeps/TermsStep.tsx b/src/pages/EnablePayments/FeesAndTerms/substeps/TermsStep.tsx index 743424719e048..429af610158c0 100644 --- a/src/pages/EnablePayments/FeesAndTerms/substeps/TermsStep.tsx +++ b/src/pages/EnablePayments/FeesAndTerms/substeps/TermsStep.tsx @@ -26,7 +26,7 @@ function AgreeToTheLabel() { ? CONST.OLD_DOT_PUBLIC_URLS.BANCORP_WALLET_AGREEMENT_URL : CONST.OLD_DOT_PUBLIC_URLS.WALLET_AGREEMENT_URL; - return ; + return ; } function TermsStep({onNext}: SubStepProps) { diff --git a/src/pages/EnablePayments/TermsStep.tsx b/src/pages/EnablePayments/TermsStep.tsx index 9a2aae858ef1f..472ce0b23e172 100644 --- a/src/pages/EnablePayments/TermsStep.tsx +++ b/src/pages/EnablePayments/TermsStep.tsx @@ -35,7 +35,7 @@ function AgreeToTheLabel() { ? CONST.OLD_DOT_PUBLIC_URLS.BANCORP_WALLET_AGREEMENT_URL : CONST.OLD_DOT_PUBLIC_URLS.WALLET_AGREEMENT_URL; - return ; + return ; } function TermsStep(props: TermsStepProps) { diff --git a/src/pages/ReportChangeApproverPage.tsx b/src/pages/ReportChangeApproverPage.tsx index 3a806ab334e37..11b9635a44576 100644 --- a/src/pages/ReportChangeApproverPage.tsx +++ b/src/pages/ReportChangeApproverPage.tsx @@ -128,11 +128,7 @@ function ReportChangeApproverPage({report, policy, isLoadingReportData}: ReportC const listHeader = useMemo( () => ( - + ), [environmentURL, policy?.id, styles.flexRow, styles.mb5, styles.ph5, styles.renderHTML, translate], diff --git a/src/pages/workspace/WorkspaceOverviewSharePage.tsx b/src/pages/workspace/WorkspaceOverviewSharePage.tsx index a939711a4c861..ded73caa01829 100644 --- a/src/pages/workspace/WorkspaceOverviewSharePage.tsx +++ b/src/pages/workspace/WorkspaceOverviewSharePage.tsx @@ -90,7 +90,7 @@ function WorkspaceOverviewSharePage({policy}: WithPolicyProps) { {translate('workspace.common.shareNote.header')} - + diff --git a/src/pages/workspace/upgrade/UpgradeConfirmation.tsx b/src/pages/workspace/upgrade/UpgradeConfirmation.tsx index 35563e7013534..931f8d81a99ce 100644 --- a/src/pages/workspace/upgrade/UpgradeConfirmation.tsx +++ b/src/pages/workspace/upgrade/UpgradeConfirmation.tsx @@ -50,7 +50,7 @@ function UpgradeConfirmation({policyName, afterUpgradeAcknowledged, isReporting, return ( - + ); }, [isDistanceRateUpgrade, isCategorizing, isReporting, isTravelUpgrade, policyName, styles.renderHTML, styles.textAlignCenter, styles.w100, translate, subscriptionLink]); From 9890a4ac865879e801a48ce241789ec87f5b979b Mon Sep 17 00:00:00 2001 From: jakubstec Date: Thu, 5 Mar 2026 10:21:38 +0100 Subject: [PATCH 04/11] (fix): fix ESLint errors --- src/languages/de.ts | 12 ++---------- src/languages/en.ts | 12 ++---------- src/languages/es.ts | 12 ++---------- src/languages/fr.ts | 12 ++---------- src/languages/it.ts | 12 ++---------- src/languages/ja.ts | 12 ++---------- src/languages/nl.ts | 12 ++---------- src/languages/pl.ts | 12 ++---------- src/languages/pt-BR.ts | 12 ++---------- src/languages/zh-hans.ts | 12 ++---------- 10 files changed, 20 insertions(+), 100 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index 0f95ece1c239a..5f23fa8857491 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -1578,8 +1578,8 @@ const translations: TranslationDeepObject = { backdropLabel: 'Modal-Hintergrund', }, nextStep: { + /* eslint-disable @typescript-eslint/no-unused-vars */ message: { - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ( actor: string, actorType: ValueOf, @@ -1596,7 +1596,6 @@ const translations: TranslationDeepObject = { return `Warten auf eine*n Admin, der Ausgaben hinzufügt.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ( actor: string, actorType: ValueOf, @@ -1613,14 +1612,12 @@ const translations: TranslationDeepObject = { return `Warten darauf, dass ein Admin Spesen einreicht.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: ( _actor: string, _actorType: ValueOf, _eta?: string, _etaType?: ValueOf, ) => `Keine weiteren Schritte erforderlich!`, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ( actor: string, actorType: ValueOf, @@ -1657,7 +1654,6 @@ const translations: TranslationDeepObject = { return `Warten, bis die Spesen eines Admins automatisch eingereicht werden${formattedETA}.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ( actor: string, actorType: ValueOf, @@ -1674,7 +1670,6 @@ const translations: TranslationDeepObject = { return `Warten auf eine*n Admin, um die Probleme zu beheben.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ( actor: string, actorType: ValueOf, @@ -1691,7 +1686,6 @@ const translations: TranslationDeepObject = { return `Warte darauf, dass eine Admin-Person Spesen genehmigt.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ( actor: string, actorType: ValueOf, @@ -1708,7 +1702,6 @@ const translations: TranslationDeepObject = { return `Warten auf eine*n Admin, um diesen Bericht zu exportieren.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ( actor: string, actorType: ValueOf, @@ -1725,7 +1718,6 @@ const translations: TranslationDeepObject = { return `Warten darauf, dass ein Admin Spesen bezahlt.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ( actor: string, actorType: ValueOf, @@ -1754,7 +1746,6 @@ const translations: TranslationDeepObject = { } return `Warte, bis die Zahlung abgeschlossen ist${formattedETA}.`; }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: ( _actor: string, _actorType: ValueOf, @@ -1763,6 +1754,7 @@ const translations: TranslationDeepObject = { ) => `Ups! Sie scheinen diesen Bericht an sich selbst einzureichen. Die Genehmigung eigener Berichte ist in Ihrem Arbeitsbereich verboten. Bitte reichen Sie diesen Bericht bei einer anderen Person ein oder wenden Sie sich an Ihre Admin, um die empfangende Person zu ändern.`, }, + /* eslint-enable @typescript-eslint/no-unused-vars */ eta: { [CONST.NEXT_STEP.ETA_KEY.SHORTLY]: 'in Kürze', [CONST.NEXT_STEP.ETA_KEY.TODAY]: 'heute später', diff --git a/src/languages/en.ts b/src/languages/en.ts index fdfe412a161ef..4a3552a10eeab 100644 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -1592,8 +1592,8 @@ const translations = { backdropLabel: 'Modal Backdrop', }, nextStep: { + /* eslint-disable @typescript-eslint/no-unused-vars */ message: { - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ( actor: string, actorType: ValueOf, @@ -1611,7 +1611,6 @@ const translations = { return `Waiting for an admin to add expenses.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ( actor: string, actorType: ValueOf, @@ -1629,14 +1628,12 @@ const translations = { return `Waiting for an admin to submit expenses.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: ( _actor: string, _actorType: ValueOf, _eta?: string, _etaType?: ValueOf, ) => `No further action required!`, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ( actor: string, actorType: ValueOf, @@ -1676,7 +1673,6 @@ const translations = { return `Waiting for an admin's expenses to automatically submit${formattedETA}.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ( actor: string, actorType: ValueOf, @@ -1694,7 +1690,6 @@ const translations = { return `Waiting for an admin to fix the issues.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ( actor: string, actorType: ValueOf, @@ -1712,7 +1707,6 @@ const translations = { return `Waiting for an admin to approve expenses.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ( actor: string, actorType: ValueOf, @@ -1730,7 +1724,6 @@ const translations = { return `Waiting for an admin to export this report.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ( actor: string, actorType: ValueOf, @@ -1748,7 +1741,6 @@ const translations = { return `Waiting for an admin to pay expenses.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ( actor: string, actorType: ValueOf, @@ -1779,7 +1771,6 @@ const translations = { return `Waiting for payment to complete${formattedETA}.`; }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: ( _actor: string, _actorType: ValueOf, @@ -1788,6 +1779,7 @@ const translations = { ) => `Oops! Looks like you're submitting to yourself. Approving your own reports is forbidden by your workspace. Please submit this report to someone else or contact your admin to change the person you submit to.`, }, + /* eslint-enable @typescript-eslint/no-unused-vars */ eta: { [CONST.NEXT_STEP.ETA_KEY.SHORTLY]: 'shortly', [CONST.NEXT_STEP.ETA_KEY.TODAY]: 'later today', diff --git a/src/languages/es.ts b/src/languages/es.ts index 25f05c1fe447b..e57c6d9669a24 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -1430,8 +1430,8 @@ const translations: TranslationDeepObject = { backdropLabel: 'Fondo del Modal', }, nextStep: { + /* eslint-disable @typescript-eslint/no-unused-vars */ message: { - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: (actor, actorType, _eta, _etaType) => { // eslint-disable-next-line default-case switch (actorType) { @@ -1443,7 +1443,6 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador añada gastos.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: (actor, actorType, _eta, _etaType) => { // eslint-disable-next-line default-case switch (actorType) { @@ -1455,9 +1454,7 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador envíe los gastos.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: (_actor, _actorType, _eta, _etaType) => `¡No se requiere ninguna acción adicional!`, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: (actor, actorType, _eta, _etaType) => { // eslint-disable-next-line default-case switch (actorType) { @@ -1485,7 +1482,6 @@ const translations: TranslationDeepObject = { return `Esperando a que los gastos de un administrador se envíen automáticamente${formattedETA}.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: (actor, actorType, _eta, _etaType) => { // eslint-disable-next-line default-case switch (actorType) { @@ -1497,7 +1493,6 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador solucione ellos problemas.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: (actor, actorType, _eta, _etaType) => { // eslint-disable-next-line default-case switch (actorType) { @@ -1509,7 +1504,6 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador apruebe los gastos.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: (actor, actorType, _eta, _etaType) => { // eslint-disable-next-line default-case switch (actorType) { @@ -1521,7 +1515,6 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador exporte este informe.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: (actor, actorType, _eta, _etaType) => { // eslint-disable-next-line default-case switch (actorType) { @@ -1533,7 +1526,6 @@ const translations: TranslationDeepObject = { return `Esperando a que un administrador pague los gastos.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: (actor, actorType, _eta, _etaType) => { // eslint-disable-next-line default-case switch (actorType) { @@ -1553,10 +1545,10 @@ const translations: TranslationDeepObject = { return `Esperando a que se complete el pago${formattedETA}.`; }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: (_actor, _actorType, _eta, _etaType) => `¡Ups! Parece que estás enviando el informe a ti mismo. Aprobar tus propios informes está prohibido por tu espacio de trabajo. Por favor, envía este informe a otra persona o contacta a tu administrador para cambiar la persona a la que lo envías.`, }, + /* eslint-enable @typescript-eslint/no-unused-vars */ eta: { [CONST.NEXT_STEP.ETA_KEY.SHORTLY]: 'en breve', [CONST.NEXT_STEP.ETA_KEY.TODAY]: 'más tarde hoy', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index a3843e1fd1941..935869c3d049f 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -1583,8 +1583,8 @@ const translations: TranslationDeepObject = { backdropLabel: 'Arrière-plan de la fenêtre modale', }, nextStep: { + /* eslint-disable @typescript-eslint/no-unused-vars */ message: { - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ( actor: string, actorType: ValueOf, @@ -1601,7 +1601,6 @@ const translations: TranslationDeepObject = { return `En attente qu’un administrateur ajoute des dépenses.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ( actor: string, actorType: ValueOf, @@ -1618,14 +1617,12 @@ const translations: TranslationDeepObject = { return `En attente qu’un administrateur soumette des dépenses.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: ( _actor: string, _actorType: ValueOf, _eta?: string, _etaType?: ValueOf, ) => `Aucune autre action requise !`, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ( actor: string, actorType: ValueOf, @@ -1662,7 +1659,6 @@ const translations: TranslationDeepObject = { return `En attente de la soumission automatique des dépenses d’un administrateur${formattedETA}.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ( actor: string, actorType: ValueOf, @@ -1679,7 +1675,6 @@ const translations: TranslationDeepObject = { return `En attente qu’un administrateur corrige les problèmes.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ( actor: string, actorType: ValueOf, @@ -1696,7 +1691,6 @@ const translations: TranslationDeepObject = { return `En attente de l’approbation des dépenses par un administrateur.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ( actor: string, actorType: ValueOf, @@ -1713,7 +1707,6 @@ const translations: TranslationDeepObject = { return `En attente qu’un administrateur exporte cette note de frais.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ( actor: string, actorType: ValueOf, @@ -1730,7 +1723,6 @@ const translations: TranslationDeepObject = { return `En attente qu’un administrateur paie les dépenses.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ( actor: string, actorType: ValueOf, @@ -1759,7 +1751,6 @@ const translations: TranslationDeepObject = { } return `En attente de la finalisation du paiement${formattedETA}.`; }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: ( _actor: string, _actorType: ValueOf, @@ -1768,6 +1759,7 @@ const translations: TranslationDeepObject = { ) => `Oups ! On dirait que vous soumettez cette note de frais à vous-même. Approuver vos propres notes de frais est interdit par votre espace de travail. Veuillez soumettre cette note de frais à quelqu’un d’autre ou contacter votre administrateur pour changer la personne à qui vous la soumettez.`, }, + /* eslint-enable @typescript-eslint/no-unused-vars */ eta: { [CONST.NEXT_STEP.ETA_KEY.SHORTLY]: 'bientôt', [CONST.NEXT_STEP.ETA_KEY.TODAY]: 'plus tard aujourd’hui', diff --git a/src/languages/it.ts b/src/languages/it.ts index 0444ebc69b010..85278dbc8e4b3 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -1574,8 +1574,8 @@ const translations: TranslationDeepObject = { backdropLabel: 'Sfondo modale', }, nextStep: { + /* eslint-disable @typescript-eslint/no-unused-vars */ message: { - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ( actor: string, actorType: ValueOf, @@ -1592,7 +1592,6 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore aggiunga delle spese.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ( actor: string, actorType: ValueOf, @@ -1609,14 +1608,12 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore invii le spese.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: ( _actor: string, _actorType: ValueOf, _eta?: string, _etaType?: ValueOf, ) => `Nessun’altra azione richiesta!`, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ( actor: string, actorType: ValueOf, @@ -1653,7 +1650,6 @@ const translations: TranslationDeepObject = { return `In attesa che le note spese di un amministratore vengano inviate automaticamente${formattedETA}.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ( actor: string, actorType: ValueOf, @@ -1670,7 +1666,6 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore risolva i problemi.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ( actor: string, actorType: ValueOf, @@ -1687,7 +1682,6 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore approvi le spese.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ( actor: string, actorType: ValueOf, @@ -1704,7 +1698,6 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore esporti questo resoconto.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ( actor: string, actorType: ValueOf, @@ -1721,7 +1714,6 @@ const translations: TranslationDeepObject = { return `In attesa che un amministratore rimborsi le spese.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ( actor: string, actorType: ValueOf, @@ -1750,7 +1742,6 @@ const translations: TranslationDeepObject = { } return `In attesa che il pagamento venga completato${formattedETA}.`; }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: ( _actor: string, _actorType: ValueOf, @@ -1759,6 +1750,7 @@ const translations: TranslationDeepObject = { ) => `Ops! Sembra che tu stia inviando il report a te stessə. L’approvazione dei propri report è vietata nel tuo spazio di lavoro. Invia questo report a un’altra persona oppure contatta il tuo amministratore per cambiare la persona a cui lo invii.`, }, + /* eslint-enable @typescript-eslint/no-unused-vars */ eta: { [CONST.NEXT_STEP.ETA_KEY.SHORTLY]: 'presto', [CONST.NEXT_STEP.ETA_KEY.TODAY]: 'più tardi oggi', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index c20cf35864372..1060c74813b21 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -1567,8 +1567,8 @@ const translations: TranslationDeepObject = { backdropLabel: 'モーダルの背景', }, nextStep: { + /* eslint-disable @typescript-eslint/no-unused-vars */ message: { - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ( actor: string, actorType: ValueOf, @@ -1585,7 +1585,6 @@ const translations: TranslationDeepObject = { return `管理者が経費を追加するのを待機しています。`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ( actor: string, actorType: ValueOf, @@ -1602,14 +1601,12 @@ const translations: TranslationDeepObject = { return `管理者が経費を送信するのを待機中です。`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: ( _actor: string, _actorType: ValueOf, _eta?: string, _etaType?: ValueOf, ) => `これ以上の操作は不要です。`, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ( actor: string, actorType: ValueOf, @@ -1646,7 +1643,6 @@ const translations: TranslationDeepObject = { return `管理者の経費が自動送信されるのを待機中です${formattedETA}。`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ( actor: string, actorType: ValueOf, @@ -1663,7 +1659,6 @@ const translations: TranslationDeepObject = { return `管理者が問題を修正するのを待機しています。`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ( actor: string, actorType: ValueOf, @@ -1680,7 +1675,6 @@ const translations: TranslationDeepObject = { return `管理者が経費を承認するのを待機しています。`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ( actor: string, actorType: ValueOf, @@ -1697,7 +1691,6 @@ const translations: TranslationDeepObject = { return `管理者がこのレポートをエクスポートするのを待っています。`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ( actor: string, actorType: ValueOf, @@ -1714,7 +1707,6 @@ const translations: TranslationDeepObject = { return `管理者が経費を支払うのを待っています。`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ( actor: string, actorType: ValueOf, @@ -1743,7 +1735,6 @@ const translations: TranslationDeepObject = { } return `支払いの完了を待機しています${formattedETA}。`; }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: ( _actor: string, _actorType: ValueOf, @@ -1752,6 +1743,7 @@ const translations: TranslationDeepObject = { ) => `おっと!自分自身に提出しようとしているようです。自分のレポートを承認することは、ワークスペースのルールで禁止されています。このレポートは他の人に提出するか、提出先を変更してもらうよう管理者に連絡してください。`, }, + /* eslint-enable @typescript-eslint/no-unused-vars */ eta: { [CONST.NEXT_STEP.ETA_KEY.SHORTLY]: 'まもなく', [CONST.NEXT_STEP.ETA_KEY.TODAY]: '今日の後ほど', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 7c5ccbc826aeb..f6b58cfd35ebe 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -1572,8 +1572,8 @@ const translations: TranslationDeepObject = { backdropLabel: 'Modale achtergrond', }, nextStep: { + /* eslint-disable @typescript-eslint/no-unused-vars */ message: { - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ( actor: string, actorType: ValueOf, @@ -1590,7 +1590,6 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder onkosten toevoegt.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ( actor: string, actorType: ValueOf, @@ -1607,14 +1606,12 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder onkosten indient.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: ( _actor: string, _actorType: ValueOf, _eta?: string, _etaType?: ValueOf, ) => `Geen verdere actie vereist!`, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ( actor: string, actorType: ValueOf, @@ -1651,7 +1648,6 @@ const translations: TranslationDeepObject = { return `Wachten tot de onkostendeclaraties van een beheerder automatisch worden ingediend${formattedETA}.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ( actor: string, actorType: ValueOf, @@ -1668,7 +1664,6 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder de problemen oplost.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ( actor: string, actorType: ValueOf, @@ -1685,7 +1680,6 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder de onkosten goedkeurt.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ( actor: string, actorType: ValueOf, @@ -1702,7 +1696,6 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder dit rapport exporteert.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ( actor: string, actorType: ValueOf, @@ -1719,7 +1712,6 @@ const translations: TranslationDeepObject = { return `Wachten tot een beheerder de onkosten betaalt.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ( actor: string, actorType: ValueOf, @@ -1748,7 +1740,6 @@ const translations: TranslationDeepObject = { } return `Wachten tot de betaling is voltooid${formattedETA}.`; }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: ( _actor: string, _actorType: ValueOf, @@ -1757,6 +1748,7 @@ const translations: TranslationDeepObject = { ) => `Oeps! Het lijkt erop dat je deze verklaring naar jezelf indient. Het goedkeuren van je eigen rapporten is verboden door je werkruimte. Dien dit rapport in bij iemand anders of neem contact op met je beheerder om de persoon te wijzigen bij wie je indient.`, }, + /* eslint-enable @typescript-eslint/no-unused-vars */ eta: { [CONST.NEXT_STEP.ETA_KEY.SHORTLY]: 'binnenkort', [CONST.NEXT_STEP.ETA_KEY.TODAY]: 'later vandaag', diff --git a/src/languages/pl.ts b/src/languages/pl.ts index a2c96f9243d08..25934db25fa85 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -1572,8 +1572,8 @@ const translations: TranslationDeepObject = { backdropLabel: 'Tło modalu', }, nextStep: { + /* eslint-disable @typescript-eslint/no-unused-vars */ message: { - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ( actor: string, actorType: ValueOf, @@ -1590,7 +1590,6 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na dodanie wydatków przez administratora.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ( actor: string, actorType: ValueOf, @@ -1607,14 +1606,12 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na zgłoszenie wydatków przez administratora.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: ( _actor: string, _actorType: ValueOf, _eta?: string, _etaType?: ValueOf, ) => `Nie są wymagane dalsze działania!`, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ( actor: string, actorType: ValueOf, @@ -1651,7 +1648,6 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na automatyczne przesłanie wydatków administratora${formattedETA}.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ( actor: string, actorType: ValueOf, @@ -1668,7 +1664,6 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na administratora, który naprawi problemy.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ( actor: string, actorType: ValueOf, @@ -1685,7 +1680,6 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na zatwierdzenie wydatków przez administratora.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ( actor: string, actorType: ValueOf, @@ -1702,7 +1696,6 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na administratora, który wyeksportuje ten raport.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ( actor: string, actorType: ValueOf, @@ -1719,7 +1712,6 @@ const translations: TranslationDeepObject = { return `Oczekiwanie na opłacenie wydatków przez administratora.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ( actor: string, actorType: ValueOf, @@ -1748,7 +1740,6 @@ const translations: TranslationDeepObject = { } return `Oczekiwanie na zakończenie płatności${formattedETA}.`; }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: ( _actor: string, _actorType: ValueOf, @@ -1757,6 +1748,7 @@ const translations: TranslationDeepObject = { ) => `Ups! Wygląda na to, że wysyłasz zgłoszenie do siebie. Zatwierdzanie własnych raportów jest zabronione w Twojej przestrzeni roboczej. Wyślij ten raport do kogoś innego lub skontaktuj się z administratorem, aby zmienić osobę, do której wysyłasz zgłoszenia.`, }, + /* eslint-enable @typescript-eslint/no-unused-vars */ eta: { [CONST.NEXT_STEP.ETA_KEY.SHORTLY]: 'wkrótce', [CONST.NEXT_STEP.ETA_KEY.TODAY]: 'później dzisiaj', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index c96ce5c5c492a..b689e5485a794 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -1569,8 +1569,8 @@ const translations: TranslationDeepObject = { backdropLabel: 'Pano de fundo do modal', }, nextStep: { + /* eslint-disable @typescript-eslint/no-unused-vars */ message: { - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ( actor: string, actorType: ValueOf, @@ -1587,7 +1587,6 @@ const translations: TranslationDeepObject = { return `Aguardando um administrador adicionar despesas.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ( actor: string, actorType: ValueOf, @@ -1604,14 +1603,12 @@ const translations: TranslationDeepObject = { return `Aguardando um administrador enviar as despesas.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: ( _actor: string, _actorType: ValueOf, _eta?: string, _etaType?: ValueOf, ) => `Nenhuma ação adicional necessária!`, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ( actor: string, actorType: ValueOf, @@ -1648,7 +1645,6 @@ const translations: TranslationDeepObject = { return `Aguardando as despesas de um administrador serem enviadas automaticamente${formattedETA}.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ( actor: string, actorType: ValueOf, @@ -1665,7 +1661,6 @@ const translations: TranslationDeepObject = { return `Aguardando que um administrador corrija os problemas.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ( actor: string, actorType: ValueOf, @@ -1682,7 +1677,6 @@ const translations: TranslationDeepObject = { return `Aguardando um administrador aprovar as despesas.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ( actor: string, actorType: ValueOf, @@ -1699,7 +1693,6 @@ const translations: TranslationDeepObject = { return `Aguardando um admin exportar este relatório.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ( actor: string, actorType: ValueOf, @@ -1716,7 +1709,6 @@ const translations: TranslationDeepObject = { return `Aguardando um administrador pagar as despesas.`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ( actor: string, actorType: ValueOf, @@ -1745,7 +1737,6 @@ const translations: TranslationDeepObject = { } return `Aguardando o pagamento ser concluído${formattedETA}.`; }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: ( _actor: string, _actorType: ValueOf, @@ -1754,6 +1745,7 @@ const translations: TranslationDeepObject = { ) => `Opa! Parece que você está enviando para você mesmo. Aprovar seus próprios relatórios é proibido pelo seu espaço de trabalho. Envie este relatório para outra pessoa ou entre em contato com o seu administrador para alterar a pessoa para quem você envia.`, }, + /* eslint-enable @typescript-eslint/no-unused-vars */ eta: { [CONST.NEXT_STEP.ETA_KEY.SHORTLY]: 'em breve', [CONST.NEXT_STEP.ETA_KEY.TODAY]: 'mais tarde hoje', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 1fbd774b28900..34cea22d8ea65 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -1542,8 +1542,8 @@ const translations: TranslationDeepObject = { backdropLabel: '模态背景', }, nextStep: { + /* eslint-disable @typescript-eslint/no-unused-vars */ message: { - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_ADD_TRANSACTIONS]: ( actor: string, actorType: ValueOf, @@ -1560,7 +1560,6 @@ const translations: TranslationDeepObject = { return `正在等待管理员添加报销。`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_SUBMIT]: ( actor: string, actorType: ValueOf, @@ -1577,14 +1576,12 @@ const translations: TranslationDeepObject = { return `正在等待管理员提交报销。`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.NO_FURTHER_ACTION]: ( _actor: string, _actorType: ValueOf, _eta?: string, _etaType?: ValueOf, ) => `无需采取进一步操作!`, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_SUBMITTER_ACCOUNT]: ( actor: string, actorType: ValueOf, @@ -1621,7 +1618,6 @@ const translations: TranslationDeepObject = { return `正在等待管理员的报销在${formattedETA}自动提交。`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_FIX_ISSUES]: ( actor: string, actorType: ValueOf, @@ -1638,7 +1634,6 @@ const translations: TranslationDeepObject = { return `正在等待管理员修复这些问题。`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_APPROVE]: ( actor: string, actorType: ValueOf, @@ -1655,7 +1650,6 @@ const translations: TranslationDeepObject = { return `正在等待管理员批准报销。`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_EXPORT]: ( actor: string, actorType: ValueOf, @@ -1672,7 +1666,6 @@ const translations: TranslationDeepObject = { return `正在等待管理员导出此报表。`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_TO_PAY]: ( actor: string, actorType: ValueOf, @@ -1689,7 +1682,6 @@ const translations: TranslationDeepObject = { return `正在等待管理员报销费用。`; } }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.WAITING_FOR_POLICY_BANK_ACCOUNT]: ( actor: string, actorType: ValueOf, @@ -1718,7 +1710,6 @@ const translations: TranslationDeepObject = { } return `正在等待付款完成${formattedETA}。`; }, - // eslint-disable-next-line @typescript-eslint/no-unused-vars [CONST.NEXT_STEP.MESSAGE_KEY.SUBMITTING_TO_SELF]: ( _actor: string, _actorType: ValueOf, @@ -1727,6 +1718,7 @@ const translations: TranslationDeepObject = { ) => `哎呀!看起来你正在将报销单提交给自己。根据你的工作区规定,审批自己的报销单是禁止的。请将此报销单提交给其他人,或联系管理员更改你的报销单提交对象。`, }, + /* eslint-enable @typescript-eslint/no-unused-vars */ eta: { [CONST.NEXT_STEP.ETA_KEY.SHORTLY]: '很快', [CONST.NEXT_STEP.ETA_KEY.TODAY]: '今天稍后', From cf6b54ea2d13e3b9b8317dc329f62f2a6e0b3ea7 Mon Sep 17 00:00:00 2001 From: jakubstec Date: Thu, 5 Mar 2026 16:37:18 +0100 Subject: [PATCH 05/11] (refactor): simplify translation param types to standalone params part1 --- src/languages/de.ts | 79 ++++++------- src/languages/en.ts | 76 ++++++------- src/languages/es.ts | 50 ++++----- src/languages/fr.ts | 80 ++++++------- src/languages/it.ts | 78 ++++++------- src/languages/ja.ts | 79 ++++++------- src/languages/nl.ts | 79 ++++++------- src/languages/params.ts | 106 +++++++++--------- src/languages/pl.ts | 77 ++++++------- src/languages/pt-BR.ts | 78 ++++++------- src/languages/zh-hans.ts | 76 ++++++------- src/libs/ReportActionsUtils.ts | 78 +++---------- src/libs/Violations/ViolationsUtils.ts | 21 ++-- .../BaseOnboardingPrivateDomain.tsx | 2 +- .../BaseOnboardingWorkspaces.tsx | 2 +- tests/unit/ViolationUtilsTest.ts | 22 ++-- 16 files changed, 419 insertions(+), 564 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index 5f23fa8857491..7f4f2d3ec0f37 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -47,7 +47,6 @@ import type { PaidElsewhereParams, ParentNavigationSummaryParams, RemovedFromApprovalWorkflowParams, - RemovedPolicyCustomUnitSubRateParams, ReportArchiveReasonsClosedParams, ReportArchiveReasonsInvoiceReceiverPolicyDeletedParams, ReportArchiveReasonsMergedParams, @@ -65,21 +64,12 @@ import type { UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, - UpdatedPolicyCustomUnitSubRateParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyPreventSelfApprovalParams, UpdatedPolicyReimbursementEnabledParams, UpdatedPolicyReimburserParams, - UpdatedPolicyReportFieldDefaultValueParams, - UpdatedPolicyTagFieldParams, UpdatedPolicyTagListParams, - UpdatedPolicyTagListRequiredParams, - UpdatedPolicyTagNameParams, - UpdatedPolicyTagParams, - UpdatedPolicyTaxParams, UpdatedPolicyTimeEnabledParams, - UpdatedPolicyTimeRateParams, UpdatedTheDistanceMerchantParams, UpdatedTheRequestParams, UpdatePolicyCustomUnitDefaultCategoryParams, @@ -100,26 +90,18 @@ import type { ViolationsOverCategoryLimitParams, ViolationsOverLimitParams, ViolationsPerDayLimitParams, - ViolationsProhibitedExpenseParams, - ViolationsReceiptRequiredParams, - ViolationsRterParams, - ViolationsTagOutOfPolicyParams, - ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, WalletProgramParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, - WeSentYouMagicSignInLinkParams, WorkEmailMergingBlockedParams, WorkEmailResendCodeParams, WorkspaceLockedPlanTypeParams, - WorkspaceMemberList, WorkspaceMembersCountParams, WorkspaceOwnerWillNeedToAddOrUpdatePaymentCardParams, WorkspaceRouteParams, WorkspacesListRouteParams, WorkspaceUpgradeNoteParams, - WorkspaceYouMayJoin, YourPlanPriceParams, YourPlanPriceValueParams, ZipCodeExampleFormatParams, @@ -2648,11 +2630,11 @@ ${amount} für ${merchant} – ${date}`, getStarted: 'Loslegen', whatsYourName: 'Wie heißt du?', peopleYouMayKnow: 'Personen, die du vielleicht kennst, sind bereits hier! Bestätige deine E-Mail-Adresse, um dich ihnen anzuschließen.', - workspaceYouMayJoin: ({domain, email}: WorkspaceYouMayJoin) => + workspaceYouMayJoin: (domain: string, email: string) => `Jemand von ${domain} hat bereits einen Workspace erstellt. Bitte gib den magischen Code ein, der an ${email} gesendet wurde.`, joinAWorkspace: 'Einem Arbeitsbereich beitreten', listOfWorkspaces: 'Hier ist die Liste der Arbeitsbereiche, denen du beitreten kannst. Keine Sorge, du kannst ihnen auch später jederzeit beitreten, wenn du möchtest.', - workspaceMemberList: ({employeeCount, policyOwner}: WorkspaceMemberList) => `${employeeCount} Mitglied${employeeCount > 1 ? 's' : ''} • ${policyOwner}`, + workspaceMemberList: (employeeCount: number, policyOwner: string) => `${employeeCount} Mitglied${employeeCount > 1 ? 's' : ''} • ${policyOwner}`, whereYouWork: 'Wo arbeitest du?', errorSelection: 'Wähle eine Option, um fortzufahren', purpose: { @@ -3027,8 +3009,7 @@ ${ }, resendValidationForm: { linkHasBeenResent: 'Link wurde erneut gesendet', - weSentYouMagicSignInLink: ({login, loginType}: WeSentYouMagicSignInLinkParams) => - `Ich habe einen magischen Anmeldelink an ${login} gesendet. Bitte überprüfe dein ${loginType}, um dich anzumelden.`, + weSentYouMagicSignInLink: (login: string, loginType: string) => `Ich habe einen magischen Anmeldelink an ${login} gesendet. Bitte überprüfe dein ${loginType}, um dich anzumelden.`, resendLink: 'Link erneut senden', }, unlinkLoginForm: { @@ -6697,13 +6678,13 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und : `hat den Hinweis zur Beschreibung der Kategorie „${categoryName}“ in „${newValue}“ geändert (zuvor „${oldValue}“)`; }, updateTagListName: (oldName: string, newName: string) => `hat den Schlagwortlistennamen in „${newName}“ geändert (zuvor „${oldName}“)`, - addTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `den Tag „${tagName}“ zur Liste „${tagListName}“ hinzugefügt`, - updateTagName: ({tagListName, newName, oldName}: UpdatedPolicyTagNameParams) => + addTag: (tagListName: string, tagName?: string) => `den Tag „${tagName}“ zur Liste „${tagListName}“ hinzugefügt`, + updateTagName: (tagListName: string, newName: string, oldName: string) => `hat die Tag-Liste „${tagListName}“ aktualisiert, indem der Tag „${oldName}“ in „${newName}“ geändert wurde`, - updateTagEnabled: ({tagListName, tagName, enabled}: UpdatedPolicyTagParams) => `${enabled ? 'aktiviert' : 'deaktiviert'} das Tag „${tagName}“ in der Liste „${tagListName}“`, - deleteTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `hat das Tag „${tagName}“ aus der Liste „${tagListName}“ entfernt`, - deleteMultipleTags: ({count, tagListName}: UpdatedPolicyTagParams) => `„${count}“ Tags aus der Liste „${tagListName}“ entfernt`, - updateTag: ({tagListName, newValue, tagName, updatedField, oldValue}: UpdatedPolicyTagFieldParams) => { + updateTagEnabled: (tagListName: string, tagName?: string, enabled?: boolean) => `${enabled ? 'aktiviert' : 'deaktiviert'} das Tag „${tagName}“ in der Liste „${tagListName}“`, + deleteTag: (tagListName: string, tagName?: string) => `hat das Tag „${tagName}“ aus der Liste „${tagListName}“ entfernt`, + deleteMultipleTags: (count?: string, tagListName?: string) => `„${count}“ Tags aus der Liste „${tagListName}“ entfernt`, + updateTag: (tagListName: string, newValue: string, tagName: string, updatedField: string, oldValue?: string) => { if (oldValue) { return `hat das Tag „${tagName}“ in der Liste „${tagListName}“ aktualisiert, indem das Feld ${updatedField} auf „${newValue}“ geändert wurde (zuvor „${oldValue}“)`; } @@ -6732,8 +6713,7 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und }, deleteCustomUnitRate: ({customUnitName, rateName}: AddOrDeletePolicyCustomUnitRateParams) => `hat den „${customUnitName}“-Satz „${rateName}“ entfernt`, addedReportField: ({fieldType, fieldName}: AddedOrDeletedPolicyReportFieldParams) => `${fieldType}-Berichtsfenster „${fieldName}“ hinzugefügt`, - updateReportFieldDefaultValue: ({defaultValue, fieldName}: UpdatedPolicyReportFieldDefaultValueParams) => - `Standardwert des Berichts­feldes „${fieldName}“ auf „${defaultValue}“ festlegen`, + updateReportFieldDefaultValue: (defaultValue?: string, fieldName?: string) => `Standardwert des Berichts­feldes „${fieldName}“ auf „${defaultValue}“ festlegen`, addedReportFieldOption: (fieldName: string, optionName: string) => `die Option „${optionName}“ zum Berichtsfeld „${fieldName}“ hinzugefügt`, removedReportFieldOption: (fieldName: string, optionName: string) => `hat die Option „${optionName}“ aus dem Berichtsfeld „${fieldName}“ entfernt`, updateReportFieldOptionDisabled: (fieldName: string, optionName: string, optionEnabled: boolean) => @@ -6745,7 +6725,7 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und return `${allEnabled ? 'aktiviert' : 'deaktiviert'} die Option „${optionName}“ für das Berichtsfeld „${fieldName}“, wodurch alle Optionen ${allEnabled ? 'aktiviert' : 'deaktiviert'}`; }, deleteReportField: ({fieldType, fieldName}: {fieldType: string; fieldName?: string}) => `${fieldType}-Berichts-Feld „${fieldName}“ entfernt`, - preventSelfApproval: ({oldValue, newValue}: UpdatedPolicyPreventSelfApprovalParams) => + preventSelfApproval: (oldValue: string, newValue: string) => `aktualisierte „Selbstgenehmigung verhindern“ auf „${newValue === 'true' ? 'Aktiviert' : 'Deaktiviert'}“ (zuvor „${oldValue === 'true' ? 'Aktiviert' : 'Deaktiviert'}“)`, updateMonthlyOffset: (oldValue: string, newValue: string) => { if (!oldValue) { @@ -6893,9 +6873,9 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und updateCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyCurrencyDefaultTaxParams) => `Standard-Steuerbetrag der Workspace-Währung auf „${newName}" geändert (zuvor „${oldName}")`, updateForeignCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyForeignCurrencyDefaultTaxParams) => `den Standardsteuersatz für Fremdwährungen in „${newName}" geändert (zuvor „${oldName}")`, - addTax: ({taxName}: UpdatedPolicyTaxParams) => `die Steuer „${taxName}" hinzugefügt`, - deleteTax: ({taxName}: UpdatedPolicyTaxParams) => `hat die Steuer „${taxName}“ entfernt`, - updateTax: ({oldValue, taxName, updatedField, newValue}: UpdatedPolicyTaxParams) => { + addTax: (taxName: string) => `die Steuer „${taxName}" hinzugefügt`, + deleteTax: (taxName: string) => `hat die Steuer „${taxName}“ entfernt`, + updateTax: (oldValue?: string | boolean | number, taxName?: string, updatedField?: string, newValue?: string | boolean | number) => { if (!updatedField) { return ''; } @@ -6927,16 +6907,15 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und changedMaxExpenseAge: (oldValue: string, newValue: string) => `maximales Ausgabenalter auf „${newValue}“ Tage geändert (zuvor „${oldValue}“)`, updateCategories: ({count}: UpdatedPolicyCategoriesParams) => `${count} Kategorien aktualisiert`, updateTagList: ({tagListName}: UpdatedPolicyTagListParams) => `Tags in der Liste „${tagListName}“ aktualisiert`, - updateTagListRequired: ({tagListsName, isRequired}: UpdatedPolicyTagListRequiredParams) => - `Tag-Liste „${tagListsName}“ in ${isRequired ? 'erforderlich' : 'nicht erforderlich'} geändert`, + updateTagListRequired: (tagListsName: string, isRequired: boolean) => `Tag-Liste „${tagListsName}“ in ${isRequired ? 'erforderlich' : 'nicht erforderlich'} geändert`, importTags: 'Tags aus einer Tabelle importiert', deletedAllTags: 'alle Tags gelöscht', updateCustomUnitDefaultCategory: ({customUnitName, newValue, oldValue}: UpdatePolicyCustomUnitDefaultCategoryParams) => `hat die Standardkategorie für ${customUnitName} in „${newValue}“ geändert ${oldValue ? `(zuvor „${oldValue}“)` : ''}`, importCustomUnitRates: ({customUnitName}: ImportPolicyCustomUnitRatesParams) => `importierte Preise für benutzerdefinierte Einheit „${customUnitName}“`, - updateCustomUnitSubRate: ({customUnitName, customUnitRateName, customUnitSubRateName, oldValue, newValue, updatedField}: UpdatedPolicyCustomUnitSubRateParams) => + updateCustomUnitSubRate: (customUnitName: string, customUnitRateName: string, customUnitSubRateName: string, oldValue: string, newValue: string, updatedField: string) => `hat Tarif „${customUnitName}“ mit Satz „${customUnitRateName}“ und Untersatz „${customUnitSubRateName}“ ${updatedField} auf „${newValue}“ geändert (zuvor „${oldValue}“)`, - removedCustomUnitSubRate: ({customUnitName, customUnitRateName, removedSubRateName}: RemovedPolicyCustomUnitSubRateParams) => + removedCustomUnitSubRate: (customUnitName: string, customUnitRateName: string, removedSubRateName: string) => `entfernte „${customUnitName}“-Rate „${customUnitRateName}“ Unterrate „${removedSubRateName}“`, addBudget: ({frequency, entityName, entityType, shared, individual, notificationThreshold}: AddBudgetParams) => { const thresholdSuffix = typeof notificationThreshold === 'number' ? `mit Benachrichtigungsschwelle von „${notificationThreshold}%“` : ''; @@ -7010,7 +6989,7 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und updatedTimeEnabled: ({enabled}: UpdatedPolicyTimeEnabledParams) => { return `${enabled ? 'aktiviert' : 'deaktiviert'} Zeiterfassung`; }, - updatedTimeRate: ({newRate, oldRate}: UpdatedPolicyTimeRateParams) => { + updatedTimeRate: (newRate?: string, oldRate?: string) => { return `Stundensatz auf „${newRate}“ geändert (zuvor „${oldRate}“)`; }, addedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `„${prohibitedExpense}“ zu verbotenen Ausgaben hinzugefügt`, @@ -7804,7 +7783,7 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und overLimitAttendee: ({formattedLimit}: ViolationsOverLimitParams) => `Betrag über dem Limit von ${formattedLimit}/Person`, perDayLimit: ({formattedLimit}: ViolationsPerDayLimitParams) => `Betrag über dem täglichen Kategorienlimit von ${formattedLimit}/Person`, receiptNotSmartScanned: 'Beleg- und Ausgabendetails manuell hinzugefügt.', - receiptRequired: ({formattedLimit, category}: ViolationsReceiptRequiredParams) => { + receiptRequired: (formattedLimit?: string, category?: string) => { if (formattedLimit && category) { return `Beleg erforderlich bei Überschreitung der Kategoriegrenze von ${formattedLimit}`; } @@ -7817,7 +7796,7 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und return 'Beleg erforderlich'; }, itemizedReceiptRequired: ({formattedLimit}: {formattedLimit?: string}) => `Einzelpostenbeleg erforderlich${formattedLimit ? `über ${formattedLimit}` : ''}`, - prohibitedExpense: ({prohibitedExpenseTypes}: ViolationsProhibitedExpenseParams) => { + prohibitedExpense: (prohibitedExpenseTypes: string | string[]) => { const preMessage = 'Unzulässige Ausgabe:'; const getProhibitedExpenseTypeText = (prohibitedExpenseType: string) => { switch (prohibitedExpenseType) { @@ -7848,7 +7827,17 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und }, customRules: ({message}: ViolationsCustomRulesParams) => message, reviewRequired: 'Überprüfung erforderlich', - rter: ({brokenBankConnection, isAdmin, isTransactionOlderThan7Days, member, rterType, companyCardPageURL, connectionLink, isPersonalCard, isMarkAsCash}: ViolationsRterParams) => { + rter: ( + brokenBankConnection: boolean, + isAdmin: boolean, + isTransactionOlderThan7Days: boolean, + member?: string, + rterType?: ValueOf, + companyCardPageURL?: string, + connectionLink?: string, + isPersonalCard?: boolean, + isMarkAsCash?: boolean, + ) => { if (rterType === CONST.RTER_VIOLATION_TYPES.BROKEN_CARD_CONNECTION_530) { return 'Beleg kann wegen unterbrochener Bankverbindung nicht automatisch zugeordnet werden.'; } @@ -7877,10 +7866,10 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und markAsCashToIgnore: 'Als Barzahlung markieren, um sie zu ignorieren und Zahlung anzufordern.', smartscanFailed: ({canEdit = true}) => `Beleg-Scan fehlgeschlagen.${canEdit ? 'Details manuell eingeben.' : ''}`, receiptGeneratedWithAI: 'Mögliche KI-generierte Quittung', - someTagLevelsRequired: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `Fehlende ${tagName ?? 'Tag'}`, - tagOutOfPolicy: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `${tagName ?? 'Tag'} nicht mehr gültig`, + someTagLevelsRequired: (tagName?: string) => `Fehlende ${tagName ?? 'Tag'}`, + tagOutOfPolicy: (tagName?: string) => `${tagName ?? 'Tag'} nicht mehr gültig`, taxAmountChanged: 'Steuerbetrag wurde geändert', - taxOutOfPolicy: ({taxName}: ViolationsTaxOutOfPolicyParams = {}) => `${taxName ?? 'Steuer'} nicht mehr gültig`, + taxOutOfPolicy: (taxName?: string) => `${taxName ?? 'Steuer'} nicht mehr gültig`, taxRateChanged: 'Steuersatz wurde geändert', taxRequired: 'Fehlender Steuersatz', none: 'Keine', diff --git a/src/languages/en.ts b/src/languages/en.ts index 4a3552a10eeab..290bed243930b 100644 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -35,7 +35,6 @@ import type { PaidElsewhereParams, ParentNavigationSummaryParams, RemovedFromApprovalWorkflowParams, - RemovedPolicyCustomUnitSubRateParams, ReportArchiveReasonsClosedParams, ReportArchiveReasonsInvoiceReceiverPolicyDeletedParams, ReportArchiveReasonsMergedParams, @@ -53,21 +52,12 @@ import type { UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, - UpdatedPolicyCustomUnitSubRateParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyPreventSelfApprovalParams, UpdatedPolicyReimbursementEnabledParams, UpdatedPolicyReimburserParams, - UpdatedPolicyReportFieldDefaultValueParams, - UpdatedPolicyTagFieldParams, UpdatedPolicyTagListParams, - UpdatedPolicyTagListRequiredParams, - UpdatedPolicyTagNameParams, - UpdatedPolicyTagParams, - UpdatedPolicyTaxParams, UpdatedPolicyTimeEnabledParams, - UpdatedPolicyTimeRateParams, UpdatedTheDistanceMerchantParams, UpdatedTheRequestParams, UpdatePolicyCustomUnitDefaultCategoryParams, @@ -88,26 +78,18 @@ import type { ViolationsOverCategoryLimitParams, ViolationsOverLimitParams, ViolationsPerDayLimitParams, - ViolationsProhibitedExpenseParams, - ViolationsReceiptRequiredParams, - ViolationsRterParams, - ViolationsTagOutOfPolicyParams, - ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, WalletProgramParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, - WeSentYouMagicSignInLinkParams, WorkEmailMergingBlockedParams, WorkEmailResendCodeParams, WorkspaceLockedPlanTypeParams, - WorkspaceMemberList, WorkspaceMembersCountParams, WorkspaceOwnerWillNeedToAddOrUpdatePaymentCardParams, WorkspaceRouteParams, WorkspacesListRouteParams, WorkspaceUpgradeNoteParams, - WorkspaceYouMayJoin, YourPlanPriceParams, YourPlanPriceValueParams, ZipCodeExampleFormatParams, @@ -2656,10 +2638,10 @@ const translations = { getStarted: 'Get started', whatsYourName: "What's your name?", peopleYouMayKnow: 'People you may know are already here! Verify your email to join them.', - workspaceYouMayJoin: ({domain, email}: WorkspaceYouMayJoin) => `Someone from ${domain} has already created a workspace. Please enter the magic code sent to ${email}.`, + workspaceYouMayJoin: (domain: string, email: string) => `Someone from ${domain} has already created a workspace. Please enter the magic code sent to ${email}.`, joinAWorkspace: 'Join a workspace', listOfWorkspaces: "Here's the list of workspaces you can join. Don't worry, you can always join them later if you prefer.", - workspaceMemberList: ({employeeCount, policyOwner}: WorkspaceMemberList) => `${employeeCount} member${employeeCount > 1 ? 's' : ''} • ${policyOwner}`, + workspaceMemberList: (employeeCount: number, policyOwner: string) => `${employeeCount} member${employeeCount > 1 ? 's' : ''} • ${policyOwner}`, whereYouWork: 'Where do you work?', errorSelection: 'Select an option to move forward', purpose: { @@ -3046,7 +3028,7 @@ const translations = { }, resendValidationForm: { linkHasBeenResent: 'Link has been re-sent', - weSentYouMagicSignInLink: ({login, loginType}: WeSentYouMagicSignInLinkParams) => `I've sent a magic sign-in link to ${login}. Please check your ${loginType} to sign in.`, + weSentYouMagicSignInLink: (login: string, loginType: string) => `I've sent a magic sign-in link to ${login}. Please check your ${loginType} to sign in.`, resendLink: 'Resend link', }, unlinkLoginForm: { @@ -6640,15 +6622,15 @@ const translations = { updateCategories: ({count}: UpdatedPolicyCategoriesParams) => `updated ${count} categories`, updateTagListName: (oldName: string, newName: string) => `changed the tag list name to "${newName}" (previously "${oldName}")`, updateTagList: ({tagListName}: UpdatedPolicyTagListParams) => `updated tags on the list "${tagListName}"`, - updateTagListRequired: ({tagListsName, isRequired}: UpdatedPolicyTagListRequiredParams) => `changed tag list "${tagListsName}" to ${isRequired ? 'required' : 'not required'}`, + updateTagListRequired: (tagListsName: string, isRequired: boolean) => `changed tag list "${tagListsName}" to ${isRequired ? 'required' : 'not required'}`, importTags: 'imported tags from a spreadsheet', deletedAllTags: 'deleted all tags', - addTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `added the tag "${tagName}" to the list "${tagListName}"`, - updateTagName: ({tagListName, newName, oldName}: UpdatedPolicyTagNameParams) => `updated the tag list "${tagListName}" by changing the tag "${oldName}" to "${newName}"`, - updateTagEnabled: ({tagListName, tagName, enabled}: UpdatedPolicyTagParams) => `${enabled ? 'enabled' : 'disabled'} the tag "${tagName}" on the list "${tagListName}"`, - deleteTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `removed the tag "${tagName}" from the list "${tagListName}"`, - deleteMultipleTags: ({count, tagListName}: UpdatedPolicyTagParams) => `removed "${count}" tags from the list "${tagListName}"`, - updateTag: ({tagListName, newValue, tagName, updatedField, oldValue}: UpdatedPolicyTagFieldParams) => { + addTag: (tagListName: string, tagName?: string) => `added the tag "${tagName}" to the list "${tagListName}"`, + updateTagName: (tagListName: string, newName: string, oldName: string) => `updated the tag list "${tagListName}" by changing the tag "${oldName}" to "${newName}"`, + updateTagEnabled: (tagListName: string, tagName?: string, enabled?: boolean) => `${enabled ? 'enabled' : 'disabled'} the tag "${tagName}" on the list "${tagListName}"`, + deleteTag: (tagListName: string, tagName?: string) => `removed the tag "${tagName}" from the list "${tagListName}"`, + deleteMultipleTags: (count?: string, tagListName?: string) => `removed "${count}" tags from the list "${tagListName}"`, + updateTag: (tagListName: string, newValue: string, tagName: string, updatedField: string, oldValue?: string) => { if (oldValue) { return `updated the tag "${tagName}" on the list "${tagListName}" by changing the ${updatedField} to "${newValue}" (previously "${oldValue}")`; } @@ -6662,9 +6644,9 @@ const translations = { importCustomUnitRates: ({customUnitName}: ImportPolicyCustomUnitRatesParams) => `imported rates for custom unit "${customUnitName}"`, addCustomUnitRate: (customUnitName: string, rateName: string) => `added a new ${customUnitName} rate "${rateName}"`, deleteCustomUnitRate: ({customUnitName, rateName}: AddOrDeletePolicyCustomUnitRateParams) => `removed the "${customUnitName}" rate "${rateName}"`, - updateCustomUnitSubRate: ({customUnitName, customUnitRateName, customUnitSubRateName, oldValue, newValue, updatedField}: UpdatedPolicyCustomUnitSubRateParams) => + updateCustomUnitSubRate: (customUnitName: string, customUnitRateName: string, customUnitSubRateName: string, oldValue: string, newValue: string, updatedField: string) => `changed "${customUnitName}" rate "${customUnitRateName}" sub-rate "${customUnitSubRateName}" ${updatedField} to "${newValue}" (previously "${oldValue}")`, - removedCustomUnitSubRate: ({customUnitName, customUnitRateName, removedSubRateName}: RemovedPolicyCustomUnitSubRateParams) => + removedCustomUnitSubRate: (customUnitName: string, customUnitRateName: string, removedSubRateName: string) => `removed "${customUnitName}" rate "${customUnitRateName}" sub-rate "${removedSubRateName}"`, addedReportField: ({fieldType, fieldName}: AddedOrDeletedPolicyReportFieldParams) => `added ${fieldType} Report Field "${fieldName}"`, updatedCustomUnitRate: (customUnitName: string, customUnitRateName: string, updatedField: string, newValue: string, oldValue: string) => @@ -6684,7 +6666,7 @@ const translations = { updatedCustomUnitRateEnabled: (customUnitName: string, customUnitRateName: string, newValue: boolean) => { return `${newValue ? 'enabled' : 'disabled'} the ${customUnitName} rate "${customUnitRateName}"`; }, - updateReportFieldDefaultValue: ({defaultValue, fieldName}: UpdatedPolicyReportFieldDefaultValueParams) => `set the default value of report field "${fieldName}" to "${defaultValue}"`, + updateReportFieldDefaultValue: (defaultValue?: string, fieldName?: string) => `set the default value of report field "${fieldName}" to "${defaultValue}"`, addedReportFieldOption: (fieldName: string, optionName: string) => `added the option "${optionName}" to the report field "${fieldName}"`, removedReportFieldOption: (fieldName: string, optionName: string) => `removed the option "${optionName}" from the report field "${fieldName}"`, updateReportFieldOptionDisabled: (fieldName: string, optionName: string, optionEnabled: boolean) => @@ -6696,7 +6678,7 @@ const translations = { return `${allEnabled ? 'enabled' : 'disabled'} the option "${optionName}" for the report field "${fieldName}", making all options ${allEnabled ? 'enabled' : 'disabled'}`; }, deleteReportField: ({fieldType, fieldName}: {fieldType: string; fieldName?: string}) => `removed ${fieldType} Report Field "${fieldName}"`, - preventSelfApproval: ({oldValue, newValue}: UpdatedPolicyPreventSelfApprovalParams) => + preventSelfApproval: (oldValue: string, newValue: string) => `updated "Prevent self-approval" to "${newValue === 'true' ? 'Enabled' : 'Disabled'}" (previously "${oldValue === 'true' ? 'Enabled' : 'Disabled'}")`, updateMonthlyOffset: (oldValue: string, newValue: string) => { if (!oldValue) { @@ -6819,7 +6801,7 @@ const translations = { return `${enabled ? 'enabled' : 'disabled'} time tracking`; }, - updatedTimeRate: ({newRate, oldRate}: UpdatedPolicyTimeRateParams) => { + updatedTimeRate: (newRate?: string, oldRate?: string) => { return `changed hourly rate to "${newRate}" (previously "${oldRate}")`; }, addedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `added "${prohibitedExpense}" to prohibited expenses`, @@ -6973,9 +6955,9 @@ const translations = { updateCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyCurrencyDefaultTaxParams) => `changed the workspace currency default tax rate to "${newName}" (previously "${oldName}")`, updateForeignCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyForeignCurrencyDefaultTaxParams) => `changed the foreign currency default tax rate to "${newName}" (previously "${oldName}")`, - addTax: ({taxName}: UpdatedPolicyTaxParams) => `added the tax "${taxName}"`, - deleteTax: ({taxName}: UpdatedPolicyTaxParams) => `removed the tax "${taxName}"`, - updateTax: ({oldValue, taxName, updatedField, newValue}: UpdatedPolicyTaxParams) => { + addTax: (taxName: string) => `added the tax "${taxName}"`, + deleteTax: (taxName: string) => `removed the tax "${taxName}"`, + updateTax: (oldValue?: string | boolean | number, taxName?: string, updatedField?: string, newValue?: string | boolean | number) => { if (!updatedField) { return ''; } @@ -7747,7 +7729,7 @@ const translations = { overLimitAttendee: ({formattedLimit}: ViolationsOverLimitParams) => `Amount over ${formattedLimit}/person limit`, perDayLimit: ({formattedLimit}: ViolationsPerDayLimitParams) => `Amount over daily ${formattedLimit}/person category limit`, receiptNotSmartScanned: 'Receipt and expense details added manually.', - receiptRequired: ({formattedLimit, category}: ViolationsReceiptRequiredParams) => { + receiptRequired: (formattedLimit?: string, category?: string) => { if (formattedLimit && category) { return `Receipt required over ${formattedLimit} category limit`; } @@ -7763,7 +7745,7 @@ const translations = { return 'Receipt required'; }, itemizedReceiptRequired: ({formattedLimit}: {formattedLimit?: string}) => `Itemized receipt required${formattedLimit ? ` over ${formattedLimit}` : ''}`, - prohibitedExpense: ({prohibitedExpenseTypes}: ViolationsProhibitedExpenseParams) => { + prohibitedExpense: (prohibitedExpenseTypes: string | string[]) => { const preMessage = 'Prohibited expense:'; const getProhibitedExpenseTypeText = (prohibitedExpenseType: string) => { switch (prohibitedExpenseType) { @@ -7794,7 +7776,17 @@ const translations = { }, customRules: ({message}: ViolationsCustomRulesParams) => message, reviewRequired: 'Review required', - rter: ({brokenBankConnection, isAdmin, isTransactionOlderThan7Days, member, rterType, companyCardPageURL, connectionLink, isPersonalCard, isMarkAsCash}: ViolationsRterParams) => { + rter: ( + brokenBankConnection: boolean, + isAdmin: boolean, + isTransactionOlderThan7Days: boolean, + member?: string, + rterType?: ValueOf, + companyCardPageURL?: string, + connectionLink?: string, + isPersonalCard?: boolean, + isMarkAsCash?: boolean, + ) => { if (rterType === CONST.RTER_VIOLATION_TYPES.BROKEN_CARD_CONNECTION_530) { return "Can't auto-match receipt due to broken bank connection."; } @@ -7824,10 +7816,10 @@ const translations = { markAsCashToIgnore: 'Mark as cash to ignore and request payment.', smartscanFailed: ({canEdit = true}) => `Receipt scanning failed.${canEdit ? ' Enter details manually.' : ''}`, receiptGeneratedWithAI: 'Potential AI-generated receipt', - someTagLevelsRequired: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `Missing ${tagName ?? 'Tag'}`, - tagOutOfPolicy: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `${tagName ?? 'Tag'} no longer valid`, + someTagLevelsRequired: (tagName?: string) => `Missing ${tagName ?? 'Tag'}`, + tagOutOfPolicy: (tagName?: string) => `${tagName ?? 'Tag'} no longer valid`, taxAmountChanged: 'Tax amount was modified', - taxOutOfPolicy: ({taxName}: ViolationsTaxOutOfPolicyParams = {}) => `${taxName ?? 'Tax'} no longer valid`, + taxOutOfPolicy: (taxName?: string) => `${taxName ?? 'Tax'} no longer valid`, taxRateChanged: 'Tax rate was modified', taxRequired: 'Missing tax rate', none: 'None', diff --git a/src/languages/es.ts b/src/languages/es.ts index e57c6d9669a24..e2e046a882eef 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -3,7 +3,7 @@ import dedent from '@libs/StringUtils/dedent'; import CONST from '@src/CONST'; import type {OriginalMessageSettlementAccountLocked, PolicyRulesModifiedFields} from '@src/types/onyx/OriginalMessage'; import type en from './en'; -import type {ConciergeBrokenCardConnectionParams, CreatedReportForUnapprovedTransactionsParams, PaidElsewhereParams, UpdatedPolicyTagParams, ViolationsRterParams} from './params'; +import type {ConciergeBrokenCardConnectionParams, CreatedReportForUnapprovedTransactionsParams, PaidElsewhereParams} from './params'; import type {TranslationDeepObject} from './types'; /* eslint-disable max-len */ @@ -2425,8 +2425,8 @@ ${amount} para ${merchant} - ${date}`, getStarted: 'Comenzar', whatsYourName: '¿Cómo te llamas?', peopleYouMayKnow: 'Las personas que tal vez conozcas ya están aquí. Verifica tu correo electrónico para unirte a ellos.', - workspaceMemberList: ({employeeCount, policyOwner}) => `${employeeCount} miembro${employeeCount > 1 ? 's' : ''} • ${policyOwner}`, - workspaceYouMayJoin: ({domain, email}) => `Alguien de ${domain} ya ha creado un espacio de trabajo. Por favor, introduce el código mágico enviado a ${email}.`, + workspaceMemberList: (employeeCount, policyOwner) => `${employeeCount} miembro${employeeCount > 1 ? 's' : ''} • ${policyOwner}`, + workspaceYouMayJoin: (domain, email) => `Alguien de ${domain} ya ha creado un espacio de trabajo. Por favor, introduce el código mágico enviado a ${email}.`, joinAWorkspace: 'Unirse a un espacio de trabajo', listOfWorkspaces: 'Aquí está la lista de espacios de trabajo a los que puedes unirte. No te preocupes, siempre puedes unirte a ellos más tarde si lo prefieres.', whereYouWork: '¿Dónde trabajas?', @@ -2810,7 +2810,7 @@ ${amount} para ${merchant} - ${date}`, }, resendValidationForm: { linkHasBeenResent: 'El enlace se ha reenviado', - weSentYouMagicSignInLink: ({login, loginType}) => `Te he enviado un hiperenlace mágico para iniciar sesión a ${login}. Por favor, revisa tu ${loginType}`, + weSentYouMagicSignInLink: (login, loginType) => `Te he enviado un hiperenlace mágico para iniciar sesión a ${login}. Por favor, revisa tu ${loginType}`, resendLink: 'Reenviar enlace', }, unlinkLoginForm: { @@ -6440,15 +6440,15 @@ ${amount} para ${merchant} - ${date}`, updateCategories: ({count}) => `actualizó ${count} categorías`, updateTagListName: (oldName, newName) => `cambió el nombre de la lista de etiquetas a "${newName}" (previamente "${oldName}")`, updateTagList: ({tagListName}) => `actualizó las etiquetas de la lista "${tagListName}"`, - updateTagListRequired: ({tagListsName, isRequired}) => `cambió la lista de etiquetas "${tagListsName}" a ${isRequired ? 'requerida' : 'no requerida'}`, + updateTagListRequired: (tagListsName, isRequired) => `cambió la lista de etiquetas "${tagListsName}" a ${isRequired ? 'requerida' : 'no requerida'}`, importTags: 'importó etiquetas desde una hoja de cálculo', deletedAllTags: 'eliminó todas las etiquetas', - addTag: ({tagListName, tagName}) => `añadió la etiqueta "${tagName}" a la lista "${tagListName}"`, - updateTagName: ({tagListName, newName, oldName}) => `actualizó la lista de etiquetas "${tagListName}" cambiando la etiqueta "${oldName}" a "${newName}"`, - updateTagEnabled: ({tagListName, tagName, enabled}: UpdatedPolicyTagParams) => `${enabled ? 'habilitó' : 'deshabilitó'} la etiqueta "${tagName}" en la lista "${tagListName}"`, - deleteTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `eliminó la etiqueta "${tagName}" de la lista "${tagListName}"`, - deleteMultipleTags: ({count, tagListName}) => `eliminó "${count}" etiquetas de la lista "${tagListName}"`, - updateTag: ({tagListName, newValue, tagName, updatedField, oldValue}) => { + addTag: (tagListName, tagName) => `añadió la etiqueta "${tagName}" a la lista "${tagListName}"`, + updateTagName: (tagListName, newName, oldName) => `actualizó la lista de etiquetas "${tagListName}" cambiando la etiqueta "${oldName}" a "${newName}"`, + updateTagEnabled: (tagListName, tagName, enabled) => `${enabled ? 'habilitó' : 'deshabilitó'} la etiqueta "${tagName}" en la lista "${tagListName}"`, + deleteTag: (tagListName, tagName) => `eliminó la etiqueta "${tagName}" de la lista "${tagListName}"`, + deleteMultipleTags: (count, tagListName) => `eliminó "${count}" etiquetas de la lista "${tagListName}"`, + updateTag: (tagListName, newValue, tagName, updatedField, oldValue) => { if (oldValue) { return `actualizó la etiqueta "${tagName}" en la lista "${tagListName}" cambiando el ${updatedField} a "${newValue}" (previamente "${oldValue}")`; } @@ -6461,9 +6461,9 @@ ${amount} para ${merchant} - ${date}`, importCustomUnitRates: ({customUnitName}) => `importó tasas para la unidad personalizada "${customUnitName}"`, addCustomUnitRate: (customUnitName, rateName) => `añadió una nueva tasa de "${rateName}" para "${customUnitName}"`, deleteCustomUnitRate: ({customUnitName, rateName}) => `eliminó la tasa "${rateName}" de "${customUnitName}"`, - updateCustomUnitSubRate: ({customUnitName, customUnitRateName, customUnitSubRateName, oldValue, newValue, updatedField}) => + updateCustomUnitSubRate: (customUnitName, customUnitRateName, customUnitSubRateName, oldValue, newValue, updatedField) => `cambió la sub-tasa "${customUnitSubRateName}" de la tasa "${customUnitRateName}" de "${customUnitName}" ${updatedField} a "${newValue}" (anteriormente "${oldValue}")`, - removedCustomUnitSubRate: ({customUnitName, customUnitRateName, removedSubRateName}) => + removedCustomUnitSubRate: (customUnitName, customUnitRateName, removedSubRateName) => `eliminó la sub-tasa "${removedSubRateName}" de la tasa "${customUnitRateName}" de "${customUnitName}"`, addedReportField: ({fieldType, fieldName}) => `añadió el campo de informe ${fieldType} "${fieldName}"`, updatedCustomUnitRate: (customUnitName, customUnitRateName, updatedField, newValue, oldValue) => @@ -6483,7 +6483,7 @@ ${amount} para ${merchant} - ${date}`, updatedCustomUnitRateEnabled: (customUnitName, customUnitRateName, newValue) => { return `${newValue ? 'habilitó' : 'deshabilitó'} la tasa de ${customUnitName} "${customUnitRateName}"`; }, - updateReportFieldDefaultValue: ({defaultValue, fieldName}) => `estableció el valor predeterminado del campo de informe "${fieldName}" en "${defaultValue}"`, + updateReportFieldDefaultValue: (defaultValue, fieldName) => `estableció el valor predeterminado del campo de informe "${fieldName}" en "${defaultValue}"`, addedReportFieldOption: (fieldName, optionName) => `añadió la opción "${optionName}" al campo de informe "${fieldName}"`, removedReportFieldOption: (fieldName, optionName) => `eliminó la opción "${optionName}" del campo de informe "${fieldName}"`, updateReportFieldOptionDisabled: (fieldName, optionName, optionEnabled) => @@ -6497,7 +6497,7 @@ ${amount} para ${merchant} - ${date}`, }`; }, deleteReportField: ({fieldType, fieldName}: {fieldType: string; fieldName?: string}) => `eliminó el campo de informe ${fieldType} "${fieldName}"`, - preventSelfApproval: ({oldValue, newValue}) => + preventSelfApproval: (oldValue, newValue) => `actualizó "Evitar la autoaprobación" a "${newValue === 'true' ? 'Habilitada' : 'Deshabilitada'}" (previamente "${oldValue === 'true' ? 'Habilitada' : 'Deshabilitada'}")`, setReceiptRequiredAmount: (newValue) => `estableció el importe requerido del recibo en "${newValue}"`, changedReceiptRequiredAmount: (oldValue, newValue) => `cambió el importe requerido del recibo a "${newValue}" (antes "${oldValue}")`, @@ -6642,7 +6642,7 @@ ${amount} para ${merchant} - ${date}`, return `eliminó el presupuesto de ${entityLabel} "${entityName}"`; }, updatedTimeEnabled: ({enabled}) => `${enabled ? 'habilitó' : 'deshabilitó'} el seguimiento de tiempo`, - updatedTimeRate: ({newRate, oldRate}) => `cambió la tarifa por hora a "${newRate}" (anteriormente "${oldRate}")`, + updatedTimeRate: (newRate, oldRate) => `cambió la tarifa por hora a "${newRate}" (anteriormente "${oldRate}")`, addedProhibitedExpense: ({prohibitedExpense}) => `añadió "${prohibitedExpense}" a los gastos prohibidos`, removedProhibitedExpense: ({prohibitedExpense}) => `eliminó "${prohibitedExpense}" de los gastos prohibidos`, updatedReimbursementChoice: (newReimbursementChoice, oldReimbursementChoice) => @@ -6777,9 +6777,9 @@ ${amount} para ${merchant} - ${date}`, oldValue ? `cambió el sitio web de la empresa de la factura a "${newValue}" (previamente "${oldValue}")` : `estableció el sitio web de la empresa de la factura como "${newValue}"`, - addTax: ({taxName}) => `añadió el impuesto "${taxName}"`, - deleteTax: ({taxName}) => `eliminó el impuesto "${taxName}"`, - updateTax: ({oldValue, taxName, updatedField, newValue}) => { + addTax: (taxName) => `añadió el impuesto "${taxName}"`, + deleteTax: (taxName) => `eliminó el impuesto "${taxName}"`, + updateTax: (oldValue, taxName, updatedField, newValue) => { if (!updatedField) { return ''; } @@ -7925,7 +7925,7 @@ ${amount} para ${merchant} - ${date}`, overLimitAttendee: ({formattedLimit}) => `Importe supera el límite${formattedLimit ? ` de ${formattedLimit}/persona` : ''}`, perDayLimit: ({formattedLimit}) => `Importe supera el límite diario de la categoría${formattedLimit ? ` de ${formattedLimit}/persona` : ''}`, receiptNotSmartScanned: 'Detalles del recibo y del gasto añadidos manualmente.', - receiptRequired: ({formattedLimit, category}) => { + receiptRequired: (formattedLimit, category) => { if (formattedLimit && category) { return `Recibo obligatorio para importes sobre ${formattedLimit} el límite de la categoría`; } @@ -7941,7 +7941,7 @@ ${amount} para ${merchant} - ${date}`, return 'Recibo obligatorio'; }, itemizedReceiptRequired: ({formattedLimit}) => `Recibo detallado requerido${formattedLimit ? ` para importes sobre ${formattedLimit}` : ''}`, - prohibitedExpense: ({prohibitedExpenseTypes}) => { + prohibitedExpense: (prohibitedExpenseTypes) => { const preMessage = 'Gastos prohibidos:'; const getProhibitedExpenseTypeText = (prohibitedExpenseType: string) => { switch (prohibitedExpenseType) { @@ -7972,7 +7972,7 @@ ${amount} para ${merchant} - ${date}`, }, customRules: ({message}) => message, reviewRequired: 'Revisión requerida', - rter: ({brokenBankConnection, isAdmin, isTransactionOlderThan7Days, member, rterType, companyCardPageURL, connectionLink, isPersonalCard, isMarkAsCash}: ViolationsRterParams) => { + rter: (brokenBankConnection, isAdmin, isTransactionOlderThan7Days, member, rterType, companyCardPageURL, connectionLink, isPersonalCard, isMarkAsCash) => { if (rterType === CONST.RTER_VIOLATION_TYPES.BROKEN_CARD_CONNECTION_530) { return 'No se puede emparejar automáticamente el recibo debido a una conexión bancaria interrumpida.'; } @@ -8003,10 +8003,10 @@ ${amount} para ${merchant} - ${date}`, markAsCashToIgnore: 'Márcalo como efectivo para ignorar y solicitar el pago.', smartscanFailed: ({canEdit = true}) => `No se pudo escanear el recibo.${canEdit ? ' Introduce los datos manualmente.' : ''}`, receiptGeneratedWithAI: 'Posible recibo generado por IA', - someTagLevelsRequired: ({tagName} = {}) => `Falta ${tagName ?? 'Tag'}`, - tagOutOfPolicy: ({tagName} = {}) => `La etiqueta ${tagName ? `${tagName} ` : ''}ya no es válida`, + someTagLevelsRequired: (tagName) => `Falta ${tagName ?? 'Tag'}`, + tagOutOfPolicy: (tagName) => `La etiqueta ${tagName ? `${tagName} ` : ''}ya no es válida`, taxAmountChanged: 'El importe del impuesto fue modificado', - taxOutOfPolicy: ({taxName} = {}) => `${taxName ?? 'El impuesto'} ya no es válido`, + taxOutOfPolicy: (taxName) => `${taxName ?? 'El impuesto'} ya no es válido`, taxRateChanged: 'La tasa de impuesto fue modificada', taxRequired: 'Falta la tasa de impuesto', none: 'Ninguno', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 935869c3d049f..f5e85295f350d 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -47,7 +47,6 @@ import type { PaidElsewhereParams, ParentNavigationSummaryParams, RemovedFromApprovalWorkflowParams, - RemovedPolicyCustomUnitSubRateParams, ReportArchiveReasonsClosedParams, ReportArchiveReasonsInvoiceReceiverPolicyDeletedParams, ReportArchiveReasonsMergedParams, @@ -65,21 +64,12 @@ import type { UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, - UpdatedPolicyCustomUnitSubRateParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyPreventSelfApprovalParams, UpdatedPolicyReimbursementEnabledParams, UpdatedPolicyReimburserParams, - UpdatedPolicyReportFieldDefaultValueParams, - UpdatedPolicyTagFieldParams, UpdatedPolicyTagListParams, - UpdatedPolicyTagListRequiredParams, - UpdatedPolicyTagNameParams, - UpdatedPolicyTagParams, - UpdatedPolicyTaxParams, UpdatedPolicyTimeEnabledParams, - UpdatedPolicyTimeRateParams, UpdatedTheDistanceMerchantParams, UpdatedTheRequestParams, UpdatePolicyCustomUnitDefaultCategoryParams, @@ -100,26 +90,18 @@ import type { ViolationsOverCategoryLimitParams, ViolationsOverLimitParams, ViolationsPerDayLimitParams, - ViolationsProhibitedExpenseParams, - ViolationsReceiptRequiredParams, - ViolationsRterParams, - ViolationsTagOutOfPolicyParams, - ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, WalletProgramParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, - WeSentYouMagicSignInLinkParams, WorkEmailMergingBlockedParams, WorkEmailResendCodeParams, WorkspaceLockedPlanTypeParams, - WorkspaceMemberList, WorkspaceMembersCountParams, WorkspaceOwnerWillNeedToAddOrUpdatePaymentCardParams, WorkspaceRouteParams, WorkspacesListRouteParams, WorkspaceUpgradeNoteParams, - WorkspaceYouMayJoin, YourPlanPriceParams, YourPlanPriceValueParams, ZipCodeExampleFormatParams, @@ -2654,10 +2636,10 @@ ${amount} pour ${merchant} - ${date}`, getStarted: 'Commencer', whatsYourName: 'Comment vous appelez-vous ?', peopleYouMayKnow: 'Des personnes que vous connaissez probablement sont déjà ici ! Vérifiez votre adresse e-mail pour les rejoindre.', - workspaceYouMayJoin: ({domain, email}: WorkspaceYouMayJoin) => `Quelqu’un de ${domain} a déjà créé un espace de travail. Veuillez saisir le code magique envoyé à ${email}.`, + workspaceYouMayJoin: (domain: string, email: string) => `Quelqu’un de ${domain} a déjà créé un espace de travail. Veuillez saisir le code magique envoyé à ${email}.`, joinAWorkspace: 'Rejoindre un espace de travail', listOfWorkspaces: 'Voici la liste des espaces de travail que vous pouvez rejoindre. Ne vous inquiétez pas, vous pourrez toujours les rejoindre plus tard si vous préférez.', - workspaceMemberList: ({employeeCount, policyOwner}: WorkspaceMemberList) => `${employeeCount} membre${employeeCount > 1 ? 's' : ''} • ${policyOwner}`, + workspaceMemberList: (employeeCount: number, policyOwner: string) => `${employeeCount} membre${employeeCount > 1 ? 's' : ''} • ${policyOwner}`, whereYouWork: 'Où travaillez-vous ?', errorSelection: 'Sélectionnez une option pour continuer', purpose: { @@ -3032,8 +3014,7 @@ ${ }, resendValidationForm: { linkHasBeenResent: 'Le lien a été renvoyé', - weSentYouMagicSignInLink: ({login, loginType}: WeSentYouMagicSignInLinkParams) => - `J’ai envoyé un lien magique de connexion à ${login}. Veuillez consulter votre ${loginType} pour vous connecter.`, + weSentYouMagicSignInLink: (login: string, loginType: string) => `J’ai envoyé un lien magique de connexion à ${login}. Veuillez consulter votre ${loginType} pour vous connecter.`, resendLink: 'Renvoyer le lien', }, unlinkLoginForm: { @@ -6719,13 +6700,12 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip : `a modifié l’aide à la description de la catégorie « ${categoryName} » en « ${newValue} » (auparavant « ${oldValue} »)`; }, updateTagListName: (oldName: string, newName: string) => `a changé le nom de la liste de tags en « ${newName} » (précédemment « ${oldName} »)`, - addTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `a ajouté le tag « ${tagName} » à la liste « ${tagListName} »`, - updateTagName: ({tagListName, newName, oldName}: UpdatedPolicyTagNameParams) => - `a mis à jour la liste de tags « ${tagListName} » en remplaçant le tag « ${oldName} » par « ${newName} »`, - updateTagEnabled: ({tagListName, tagName, enabled}: UpdatedPolicyTagParams) => `${enabled ? 'activé' : 'Désactivé'} l’étiquette « ${tagName} » sur la liste « ${tagListName} »`, - deleteTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `a supprimé la balise « ${tagName} » de la liste « ${tagListName} »`, - deleteMultipleTags: ({count, tagListName}: UpdatedPolicyTagParams) => `a supprimé les balises « ${count} » de la liste « ${tagListName} »`, - updateTag: ({tagListName, newValue, tagName, updatedField, oldValue}: UpdatedPolicyTagFieldParams) => { + addTag: (tagListName: string, tagName?: string) => `a ajouté le tag « ${tagName} » à la liste « ${tagListName} »`, + updateTagName: (tagListName: string, newName: string, oldName: string) => `a mis à jour la liste de tags « ${tagListName} » en remplaçant le tag « ${oldName} » par « ${newName} »`, + updateTagEnabled: (tagListName: string, tagName?: string, enabled?: boolean) => `${enabled ? 'activé' : 'Désactivé'} l’étiquette « ${tagName} » sur la liste « ${tagListName} »`, + deleteTag: (tagListName: string, tagName?: string) => `a supprimé la balise « ${tagName} » de la liste « ${tagListName} »`, + deleteMultipleTags: (count?: string, tagListName?: string) => `a supprimé les balises « ${count} » de la liste « ${tagListName} »`, + updateTag: (tagListName: string, newValue: string, tagName: string, updatedField: string, oldValue?: string) => { if (oldValue) { return `a mis à jour le tag « ${tagName} » dans la liste « ${tagListName} » en modifiant ${updatedField} en « ${newValue} » (auparavant « ${oldValue} »)`; } @@ -6754,8 +6734,7 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip }, deleteCustomUnitRate: ({customUnitName, rateName}: AddOrDeletePolicyCustomUnitRateParams) => `a supprimé le taux « ${customUnitName} » « ${rateName} »`, addedReportField: ({fieldType, fieldName}: AddedOrDeletedPolicyReportFieldParams) => `a ajouté le champ de note de frais ${fieldType} « ${fieldName} »`, - updateReportFieldDefaultValue: ({defaultValue, fieldName}: UpdatedPolicyReportFieldDefaultValueParams) => - `définir la valeur par défaut du champ de note de frais « ${fieldName} » sur « ${defaultValue} »`, + updateReportFieldDefaultValue: (defaultValue?: string, fieldName?: string) => `définir la valeur par défaut du champ de note de frais « ${fieldName} » sur « ${defaultValue} »`, addedReportFieldOption: (fieldName: string, optionName: string) => `a ajouté l’option « ${optionName} » au champ de note de frais « ${fieldName} »`, removedReportFieldOption: (fieldName: string, optionName: string) => `a supprimé l’option « ${optionName} » du champ de note de frais « ${fieldName} »`, updateReportFieldOptionDisabled: (fieldName: string, optionName: string, optionEnabled: boolean) => @@ -6767,7 +6746,7 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip return `${allEnabled ? 'Activé' : 'Désactivé'} l’option « ${optionName} » pour le champ de note de frais « ${fieldName} », rendant toutes les options ${allEnabled ? 'Activé' : 'Désactivé'}`; }, deleteReportField: ({fieldType, fieldName}: {fieldType: string; fieldName?: string}) => `a supprimé le champ de note de frais ${fieldType} « ${fieldName} »`, - preventSelfApproval: ({oldValue, newValue}: UpdatedPolicyPreventSelfApprovalParams) => + preventSelfApproval: (oldValue: string, newValue: string) => `mis à jour « Empêcher l’auto-approbation » vers « ${newValue === 'true' ? 'Activé' : 'Désactivé'} » (auparavant « ${oldValue === 'true' ? 'Activé' : 'Désactivé'} »)`, updateMonthlyOffset: (oldValue: string, newValue: string) => { if (!oldValue) { @@ -6915,9 +6894,9 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip `a modifié le taux de taxe par défaut de la devise de l'espace de travail en « ${newName} » (auparavant « ${oldName} »)`, updateForeignCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyForeignCurrencyDefaultTaxParams) => `a modifié le taux de taxe par défaut en devise étrangère en « ${newName} » (auparavant « ${oldName} »)`, - addTax: ({taxName}: UpdatedPolicyTaxParams) => `a ajouté la taxe « ${taxName} »`, - deleteTax: ({taxName}: UpdatedPolicyTaxParams) => `a supprimé la taxe « ${taxName} »`, - updateTax: ({oldValue, taxName, updatedField, newValue}: UpdatedPolicyTaxParams) => { + addTax: (taxName: string) => `a ajouté la taxe « ${taxName} »`, + deleteTax: (taxName: string) => `a supprimé la taxe « ${taxName} »`, + updateTax: (oldValue?: string | boolean | number, taxName?: string, updatedField?: string, newValue?: string | boolean | number) => { if (!updatedField) { return ''; } @@ -6950,16 +6929,15 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip removedMaxExpenseAge: (oldValue: string) => `âge maximal de dépense supprimé (auparavant « ${oldValue} » jours)`, updateCategories: ({count}: UpdatedPolicyCategoriesParams) => `${count} catégories mises à jour`, updateTagList: ({tagListName}: UpdatedPolicyTagListParams) => `a mis à jour les tags dans la liste « ${tagListName} »`, - updateTagListRequired: ({tagListsName, isRequired}: UpdatedPolicyTagListRequiredParams) => - `a modifié la liste de tags « ${tagListsName} » en ${isRequired ? 'obligatoire' : 'non obligatoire'}`, + updateTagListRequired: (tagListsName: string, isRequired: boolean) => `a modifié la liste de tags « ${tagListsName} » en ${isRequired ? 'obligatoire' : 'non obligatoire'}`, importTags: 'tags importés depuis une feuille de calcul', deletedAllTags: 'a supprimé tous les tags', updateCustomUnitDefaultCategory: ({customUnitName, newValue, oldValue}: UpdatePolicyCustomUnitDefaultCategoryParams) => `a modifié la catégorie par défaut pour ${customUnitName} en « ${newValue} » ${oldValue ? `(auparavant « ${oldValue} »)` : ''}`, importCustomUnitRates: ({customUnitName}: ImportPolicyCustomUnitRatesParams) => `taux importés pour l’unité personnalisée « ${customUnitName} »`, - updateCustomUnitSubRate: ({customUnitName, customUnitRateName, customUnitSubRateName, oldValue, newValue, updatedField}: UpdatedPolicyCustomUnitSubRateParams) => + updateCustomUnitSubRate: (customUnitName: string, customUnitRateName: string, customUnitSubRateName: string, oldValue: string, newValue: string, updatedField: string) => `a modifié le taux « ${customUnitName} », le sous-taux « ${customUnitRateName} », le sous-taux « ${customUnitSubRateName} » ${updatedField} en « ${newValue} » (auparavant « ${oldValue} »)`, - removedCustomUnitSubRate: ({customUnitName, customUnitRateName, removedSubRateName}: RemovedPolicyCustomUnitSubRateParams) => + removedCustomUnitSubRate: (customUnitName: string, customUnitRateName: string, removedSubRateName: string) => `a supprimé le taux « ${customUnitName} », le sous-taux « ${customUnitRateName} », le sous-taux « ${removedSubRateName} »`, addBudget: ({frequency, entityName, entityType, shared, individual, notificationThreshold}: AddBudgetParams) => { const thresholdSuffix = typeof notificationThreshold === 'number' ? `avec un seuil de notification de « ${notificationThreshold}% »` : ''; @@ -7033,7 +7011,7 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip updatedTimeEnabled: ({enabled}: UpdatedPolicyTimeEnabledParams) => { return `Suivi du temps ${enabled ? 'activé' : 'désactivé'}`; }, - updatedTimeRate: ({newRate, oldRate}: UpdatedPolicyTimeRateParams) => { + updatedTimeRate: (newRate?: string, oldRate?: string) => { return `a modifié le taux horaire à « ${newRate} » (auparavant « ${oldRate} »)`; }, addedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `a ajouté « ${prohibitedExpense} » aux dépenses interdites`, @@ -7828,7 +7806,7 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip overLimitAttendee: ({formattedLimit}: ViolationsOverLimitParams) => `Montant dépassant la limite de ${formattedLimit}/personne`, perDayLimit: ({formattedLimit}: ViolationsPerDayLimitParams) => `Montant dépassant la limite quotidienne de catégorie de ${formattedLimit}/personne`, receiptNotSmartScanned: 'Détails du reçu et de la dépense ajoutés manuellement.', - receiptRequired: ({formattedLimit, category}: ViolationsReceiptRequiredParams) => { + receiptRequired: (formattedLimit?: string, category?: string) => { if (formattedLimit && category) { return `Reçu requis au-delà de la limite de catégorie de ${formattedLimit}`; } @@ -7841,7 +7819,7 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip return 'Reçu obligatoire'; }, itemizedReceiptRequired: ({formattedLimit}: {formattedLimit?: string}) => `Reçu détaillé requis${formattedLimit ? `au-delà de ${formattedLimit}` : ''}`, - prohibitedExpense: ({prohibitedExpenseTypes}: ViolationsProhibitedExpenseParams) => { + prohibitedExpense: (prohibitedExpenseTypes: string | string[]) => { const preMessage = 'Dépense interdite :'; const getProhibitedExpenseTypeText = (prohibitedExpenseType: string) => { switch (prohibitedExpenseType) { @@ -7872,7 +7850,17 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip }, customRules: ({message}: ViolationsCustomRulesParams) => message, reviewRequired: 'Examen requis', - rter: ({brokenBankConnection, isAdmin, isTransactionOlderThan7Days, member, rterType, companyCardPageURL, connectionLink, isPersonalCard, isMarkAsCash}: ViolationsRterParams) => { + rter: ( + brokenBankConnection: boolean, + isAdmin: boolean, + isTransactionOlderThan7Days: boolean, + member?: string, + rterType?: ValueOf, + companyCardPageURL?: string, + connectionLink?: string, + isPersonalCard?: boolean, + isMarkAsCash?: boolean, + ) => { if (rterType === CONST.RTER_VIOLATION_TYPES.BROKEN_CARD_CONNECTION_530) { return 'Impossible d’apparier automatiquement le reçu en raison d’une connexion bancaire rompue.'; } @@ -7901,10 +7889,10 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip markAsCashToIgnore: 'Marquer comme paiement en espèces pour l’ignorer et demander un paiement.', smartscanFailed: ({canEdit = true}) => `L’analyse du reçu a échoué.${canEdit ? 'Saisir les détails manuellement.' : ''}`, receiptGeneratedWithAI: 'Reçu potentiellement généré par IA', - someTagLevelsRequired: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `${tagName ?? 'Tag'} manquant`, - tagOutOfPolicy: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `${tagName ?? 'Tag'} n’est plus valide`, + someTagLevelsRequired: (tagName?: string) => `${tagName ?? 'Tag'} manquant`, + tagOutOfPolicy: (tagName?: string) => `${tagName ?? 'Tag'} n’est plus valide`, taxAmountChanged: 'Le montant de la taxe a été modifié', - taxOutOfPolicy: ({taxName}: ViolationsTaxOutOfPolicyParams = {}) => `${taxName ?? 'Tax'} n’est plus valide`, + taxOutOfPolicy: (taxName?: string) => `${taxName ?? 'Tax'} n’est plus valide`, taxRateChanged: 'Le taux de taxe a été modifié', taxRequired: 'Taux de taxe manquant', none: 'Aucun', diff --git a/src/languages/it.ts b/src/languages/it.ts index 85278dbc8e4b3..733f6aeadbc3b 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -47,7 +47,6 @@ import type { PaidElsewhereParams, ParentNavigationSummaryParams, RemovedFromApprovalWorkflowParams, - RemovedPolicyCustomUnitSubRateParams, ReportArchiveReasonsClosedParams, ReportArchiveReasonsInvoiceReceiverPolicyDeletedParams, ReportArchiveReasonsMergedParams, @@ -65,21 +64,12 @@ import type { UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, - UpdatedPolicyCustomUnitSubRateParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyPreventSelfApprovalParams, UpdatedPolicyReimbursementEnabledParams, UpdatedPolicyReimburserParams, - UpdatedPolicyReportFieldDefaultValueParams, - UpdatedPolicyTagFieldParams, UpdatedPolicyTagListParams, - UpdatedPolicyTagListRequiredParams, - UpdatedPolicyTagNameParams, - UpdatedPolicyTagParams, - UpdatedPolicyTaxParams, UpdatedPolicyTimeEnabledParams, - UpdatedPolicyTimeRateParams, UpdatedTheDistanceMerchantParams, UpdatedTheRequestParams, UpdatePolicyCustomUnitDefaultCategoryParams, @@ -100,26 +90,18 @@ import type { ViolationsOverCategoryLimitParams, ViolationsOverLimitParams, ViolationsPerDayLimitParams, - ViolationsProhibitedExpenseParams, - ViolationsReceiptRequiredParams, - ViolationsRterParams, - ViolationsTagOutOfPolicyParams, - ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, WalletProgramParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, - WeSentYouMagicSignInLinkParams, WorkEmailMergingBlockedParams, WorkEmailResendCodeParams, WorkspaceLockedPlanTypeParams, - WorkspaceMemberList, WorkspaceMembersCountParams, WorkspaceOwnerWillNeedToAddOrUpdatePaymentCardParams, WorkspaceRouteParams, WorkspacesListRouteParams, WorkspaceUpgradeNoteParams, - WorkspaceYouMayJoin, YourPlanPriceParams, YourPlanPriceValueParams, ZipCodeExampleFormatParams, @@ -2642,10 +2624,10 @@ ${amount} per ${merchant} - ${date}`, getStarted: 'Inizia', whatsYourName: 'Come ti chiami?', peopleYouMayKnow: 'Alcune persone che potresti conoscere sono già qui! Verifica la tua email per unirti a loro.', - workspaceYouMayJoin: ({domain, email}: WorkspaceYouMayJoin) => `Qualcuno di ${domain} ha già creato uno spazio di lavoro. Inserisci il codice magico inviato a ${email}.`, + workspaceYouMayJoin: (domain: string, email: string) => `Qualcuno di ${domain} ha già creato uno spazio di lavoro. Inserisci il codice magico inviato a ${email}.`, joinAWorkspace: 'Unisciti a uno spazio di lavoro', listOfWorkspaces: "Ecco l'elenco degli spazi di lavoro a cui puoi unirti. Non preoccuparti, potrai sempre unirti anche in un secondo momento, se preferisci.", - workspaceMemberList: ({employeeCount, policyOwner}: WorkspaceMemberList) => `${employeeCount} membro${employeeCount > 1 ? 's' : ''} • ${policyOwner}`, + workspaceMemberList: (employeeCount: number, policyOwner: string) => `${employeeCount} membro${employeeCount > 1 ? 's' : ''} • ${policyOwner}`, whereYouWork: 'Dove lavori?', errorSelection: 'Seleziona un’opzione per procedere', purpose: { @@ -3019,7 +3001,7 @@ ${ }, resendValidationForm: { linkHasBeenResent: 'Il link è stato reinviato', - weSentYouMagicSignInLink: ({login, loginType}: WeSentYouMagicSignInLinkParams) => `Ho inviato un link magico di accesso a ${login}. Controlla il tuo ${loginType} per accedere.`, + weSentYouMagicSignInLink: (login: string, loginType: string) => `Ho inviato un link magico di accesso a ${login}. Controlla il tuo ${loginType} per accedere.`, resendLink: 'Invia di nuovo il link', }, unlinkLoginForm: { @@ -6683,12 +6665,12 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo : `ha modificato il suggerimento della descrizione della categoria "${categoryName}" in “${newValue}” (in precedenza “${oldValue}”)`; }, updateTagListName: (oldName: string, newName: string) => `ha modificato il nome dell’elenco di tag in "${newName}" (in precedenza "${oldName}")`, - addTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `ha aggiunto l’etichetta "${tagName}" all’elenco "${tagListName}"`, - updateTagName: ({tagListName, newName, oldName}: UpdatedPolicyTagNameParams) => `ha aggiornato l'elenco dei tag "${tagListName}" cambiando il tag "${oldName}" in "${newName}"`, - updateTagEnabled: ({tagListName, tagName, enabled}: UpdatedPolicyTagParams) => `${enabled ? 'abilitato' : 'disabilitato'} il tag "${tagName}" nella lista "${tagListName}"`, - deleteTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `ha rimosso il tag "${tagName}" dall'elenco "${tagListName}"`, - deleteMultipleTags: ({count, tagListName}: UpdatedPolicyTagParams) => `rimosse le etichette "${count}" dall’elenco "${tagListName}"`, - updateTag: ({tagListName, newValue, tagName, updatedField, oldValue}: UpdatedPolicyTagFieldParams) => { + addTag: (tagListName: string, tagName?: string) => `ha aggiunto l’etichetta "${tagName}" all’elenco "${tagListName}"`, + updateTagName: (tagListName: string, newName: string, oldName: string) => `ha aggiornato l'elenco dei tag "${tagListName}" cambiando il tag "${oldName}" in "${newName}"`, + updateTagEnabled: (tagListName: string, tagName?: string, enabled?: boolean) => `${enabled ? 'abilitato' : 'disabilitato'} il tag "${tagName}" nella lista "${tagListName}"`, + deleteTag: (tagListName: string, tagName?: string) => `ha rimosso il tag "${tagName}" dall'elenco "${tagListName}"`, + deleteMultipleTags: (count?: string, tagListName?: string) => `rimosse le etichette "${count}" dall’elenco "${tagListName}"`, + updateTag: (tagListName: string, newValue: string, tagName: string, updatedField: string, oldValue?: string) => { if (oldValue) { return `ha aggiornato l’etichetta "${tagName}" nell’elenco "${tagListName}" cambiando ${updatedField} in "${newValue}" (precedentemente "${oldValue}")`; } @@ -6717,8 +6699,7 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo }, deleteCustomUnitRate: ({customUnitName, rateName}: AddOrDeletePolicyCustomUnitRateParams) => `ha rimosso la tariffa "${rateName}" per l'unità personalizzata "${customUnitName}"`, addedReportField: ({fieldType, fieldName}: AddedOrDeletedPolicyReportFieldParams) => `aggiunto il campo di report ${fieldType} "${fieldName}"`, - updateReportFieldDefaultValue: ({defaultValue, fieldName}: UpdatedPolicyReportFieldDefaultValueParams) => - `imposta il valore predefinito del campo report "${fieldName}" su "${defaultValue}"`, + updateReportFieldDefaultValue: (defaultValue?: string, fieldName?: string) => `imposta il valore predefinito del campo report "${fieldName}" su "${defaultValue}"`, addedReportFieldOption: (fieldName: string, optionName: string) => `ha aggiunto l’opzione «${optionName}» al campo del rendiconto «${fieldName}»`, removedReportFieldOption: (fieldName: string, optionName: string) => `ha rimosso l’opzione «${optionName}» dal campo del report «${fieldName}»`, updateReportFieldOptionDisabled: (fieldName: string, optionName: string, optionEnabled: boolean) => @@ -6730,7 +6711,7 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo return `${allEnabled ? 'abilitato' : 'disattivato'} l’opzione “${optionName}” per il campo del report “${fieldName}”, rendendo tutte le opzioni ${allEnabled ? 'abilitato' : 'disattivato'}`; }, deleteReportField: ({fieldType, fieldName}: {fieldType: string; fieldName?: string}) => `ha rimosso il campo del report ${fieldType} "${fieldName}"`, - preventSelfApproval: ({oldValue, newValue}: UpdatedPolicyPreventSelfApprovalParams) => + preventSelfApproval: (oldValue: string, newValue: string) => `aggiornato "Impedisci auto-approvazione" a "${newValue === 'true' ? 'Abilitato' : 'Disattivato'}" (precedentemente "${oldValue === 'true' ? 'Abilitato' : 'Disattivato'}")`, updateMonthlyOffset: (oldValue: string, newValue: string) => { if (!oldValue) { @@ -6880,9 +6861,9 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo `ha modificato l'aliquota fiscale predefinita della valuta dello spazio di lavoro in "${newName}" (in precedenza "${oldName}")`, updateForeignCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyForeignCurrencyDefaultTaxParams) => `ha modificato l'aliquota fiscale predefinita per valuta estera in "${newName}" (in precedenza "${oldName}")`, - addTax: ({taxName}: UpdatedPolicyTaxParams) => `ha aggiunto l’imposta “${taxName}”`, - deleteTax: ({taxName}: UpdatedPolicyTaxParams) => `ha rimosso l'imposta "${taxName}"`, - updateTax: ({oldValue, taxName, updatedField, newValue}: UpdatedPolicyTaxParams) => { + addTax: (taxName: string) => `ha aggiunto l’imposta “${taxName}”`, + deleteTax: (taxName: string) => `ha rimosso l'imposta "${taxName}"`, + updateTax: (oldValue?: string | boolean | number, taxName?: string, updatedField?: string, newValue?: string | boolean | number) => { if (!updatedField) { return ''; } @@ -6915,16 +6896,15 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo removedMaxExpenseAge: (oldValue: string) => `età massima spesa rimossa (precedentemente "${oldValue}" giorni)`, updateCategories: ({count}: UpdatedPolicyCategoriesParams) => `categorie aggiornate: ${count}`, updateTagList: ({tagListName}: UpdatedPolicyTagListParams) => `tag aggiornati nell’elenco "${tagListName}"`, - updateTagListRequired: ({tagListsName, isRequired}: UpdatedPolicyTagListRequiredParams) => - `ha modificato l’elenco tag "${tagListsName}" in ${isRequired ? 'obbligatorio' : 'non obbligatorio'}`, + updateTagListRequired: (tagListsName: string, isRequired: boolean) => `ha modificato l’elenco tag "${tagListsName}" in ${isRequired ? 'obbligatorio' : 'non obbligatorio'}`, importTags: 'tag importati da un foglio di calcolo', deletedAllTags: 'ha eliminato tutti i tag', updateCustomUnitDefaultCategory: ({customUnitName, newValue, oldValue}: UpdatePolicyCustomUnitDefaultCategoryParams) => `ha cambiato la categoria predefinita di ${customUnitName} in "${newValue}" ${oldValue ? `(precedentemente "${oldValue}")` : ''}`, importCustomUnitRates: ({customUnitName}: ImportPolicyCustomUnitRatesParams) => `tariffe importate per l'unità personalizzata "${customUnitName}"`, - updateCustomUnitSubRate: ({customUnitName, customUnitRateName, customUnitSubRateName, oldValue, newValue, updatedField}: UpdatedPolicyCustomUnitSubRateParams) => + updateCustomUnitSubRate: (customUnitName: string, customUnitRateName: string, customUnitSubRateName: string, oldValue: string, newValue: string, updatedField: string) => `ha modificato l’aliquota di "${customUnitName}", tariffa "${customUnitRateName}", sotto-tariffa "${customUnitSubRateName}" ${updatedField} in "${newValue}" (precedentemente "${oldValue}")`, - removedCustomUnitSubRate: ({customUnitName, customUnitRateName, removedSubRateName}: RemovedPolicyCustomUnitSubRateParams) => + removedCustomUnitSubRate: (customUnitName: string, customUnitRateName: string, removedSubRateName: string) => `rimossa tariffa "${customUnitName}" tariffa "${customUnitRateName}" sottotariffa "${removedSubRateName}"`, addBudget: ({frequency, entityName, entityType, shared, individual, notificationThreshold}: AddBudgetParams) => { const thresholdSuffix = typeof notificationThreshold === 'number' ? `con soglia di notifica pari al "${notificationThreshold}%"` : ''; @@ -6998,7 +6978,7 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo updatedTimeEnabled: ({enabled}: UpdatedPolicyTimeEnabledParams) => { return `${enabled ? 'abilitato' : 'disabilitato'} monitoraggio del tempo`; }, - updatedTimeRate: ({newRate, oldRate}: UpdatedPolicyTimeRateParams) => { + updatedTimeRate: (newRate?: string, oldRate?: string) => { return `ha modificato la tariffa oraria in "${newRate}" (in precedenza "${oldRate}")`; }, addedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `ha aggiunto "${prohibitedExpense}" alle spese vietate`, @@ -7794,7 +7774,7 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo overLimitAttendee: ({formattedLimit}: ViolationsOverLimitParams) => `Importo oltre il limite di ${formattedLimit}/persona`, perDayLimit: ({formattedLimit}: ViolationsPerDayLimitParams) => `Importo oltre il limite giornaliero di categoria di ${formattedLimit}/persona`, receiptNotSmartScanned: 'Dettagli di ricevuta e spesa aggiunti manualmente.', - receiptRequired: ({formattedLimit, category}: ViolationsReceiptRequiredParams) => { + receiptRequired: (formattedLimit?: string, category?: string) => { if (formattedLimit && category) { return `Ricevuta richiesta oltre il limite di categoria di ${formattedLimit}`; } @@ -7807,7 +7787,7 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo return 'Ricevuta obbligatoria'; }, itemizedReceiptRequired: ({formattedLimit}: {formattedLimit?: string}) => `Ricevuta dettagliata richiesta${formattedLimit ? `oltre ${formattedLimit}` : ''}`, - prohibitedExpense: ({prohibitedExpenseTypes}: ViolationsProhibitedExpenseParams) => { + prohibitedExpense: (prohibitedExpenseTypes: string | string[]) => { const preMessage = 'Spesa vietata:'; const getProhibitedExpenseTypeText = (prohibitedExpenseType: string) => { switch (prohibitedExpenseType) { @@ -7838,7 +7818,17 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo }, customRules: ({message}: ViolationsCustomRulesParams) => message, reviewRequired: 'Revisione richiesta', - rter: ({brokenBankConnection, isAdmin, isTransactionOlderThan7Days, member, rterType, companyCardPageURL, connectionLink, isPersonalCard, isMarkAsCash}: ViolationsRterParams) => { + rter: ( + brokenBankConnection: boolean, + isAdmin: boolean, + isTransactionOlderThan7Days: boolean, + member?: string, + rterType?: ValueOf, + companyCardPageURL?: string, + connectionLink?: string, + isPersonalCard?: boolean, + isMarkAsCash?: boolean, + ) => { if (rterType === CONST.RTER_VIOLATION_TYPES.BROKEN_CARD_CONNECTION_530) { return 'Impossibile abbinare automaticamente la ricevuta a causa di un problema di connessione bancaria.'; } @@ -7867,10 +7857,10 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo markAsCashToIgnore: 'Segna come contante da ignorare e richiedi il pagamento.', smartscanFailed: ({canEdit = true}) => `Scansione della ricevuta non riuscita.${canEdit ? 'Inserisci i dettagli manualmente.' : ''}`, receiptGeneratedWithAI: 'Ricevuta potenzialmente generata dall’IA', - someTagLevelsRequired: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `Manca ${tagName ?? 'Etichetta'}`, - tagOutOfPolicy: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `${tagName ?? 'Etichetta'} non è più valido`, + someTagLevelsRequired: (tagName?: string) => `Manca ${tagName ?? 'Etichetta'}`, + tagOutOfPolicy: (tagName?: string) => `${tagName ?? 'Etichetta'} non è più valido`, taxAmountChanged: 'L’importo dell’imposta è stato modificato', - taxOutOfPolicy: ({taxName}: ViolationsTaxOutOfPolicyParams = {}) => `${taxName ?? 'Imposta'} non è più valido`, + taxOutOfPolicy: (taxName?: string) => `${taxName ?? 'Imposta'} non è più valido`, taxRateChanged: 'L’aliquota fiscale è stata modificata', taxRequired: 'Aliquota fiscale mancante', none: 'Nessuno', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 1060c74813b21..6f4cdd23678c1 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -47,7 +47,6 @@ import type { PaidElsewhereParams, ParentNavigationSummaryParams, RemovedFromApprovalWorkflowParams, - RemovedPolicyCustomUnitSubRateParams, ReportArchiveReasonsClosedParams, ReportArchiveReasonsInvoiceReceiverPolicyDeletedParams, ReportArchiveReasonsMergedParams, @@ -65,21 +64,12 @@ import type { UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, - UpdatedPolicyCustomUnitSubRateParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyPreventSelfApprovalParams, UpdatedPolicyReimbursementEnabledParams, UpdatedPolicyReimburserParams, - UpdatedPolicyReportFieldDefaultValueParams, - UpdatedPolicyTagFieldParams, UpdatedPolicyTagListParams, - UpdatedPolicyTagListRequiredParams, - UpdatedPolicyTagNameParams, - UpdatedPolicyTagParams, - UpdatedPolicyTaxParams, UpdatedPolicyTimeEnabledParams, - UpdatedPolicyTimeRateParams, UpdatedTheDistanceMerchantParams, UpdatedTheRequestParams, UpdatePolicyCustomUnitDefaultCategoryParams, @@ -100,26 +90,18 @@ import type { ViolationsOverCategoryLimitParams, ViolationsOverLimitParams, ViolationsPerDayLimitParams, - ViolationsProhibitedExpenseParams, - ViolationsReceiptRequiredParams, - ViolationsRterParams, - ViolationsTagOutOfPolicyParams, - ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, WalletProgramParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, - WeSentYouMagicSignInLinkParams, WorkEmailMergingBlockedParams, WorkEmailResendCodeParams, WorkspaceLockedPlanTypeParams, - WorkspaceMemberList, WorkspaceMembersCountParams, WorkspaceOwnerWillNeedToAddOrUpdatePaymentCardParams, WorkspaceRouteParams, WorkspacesListRouteParams, WorkspaceUpgradeNoteParams, - WorkspaceYouMayJoin, YourPlanPriceParams, YourPlanPriceValueParams, ZipCodeExampleFormatParams, @@ -2626,10 +2608,10 @@ ${date} の ${merchant} への ${amount}`, getStarted: 'はじめる', whatsYourName: 'あなたの名前は何ですか?', peopleYouMayKnow: '知り合いがすでにここに参加しています!一緒に参加するには、メールアドレスを確認してください。', - workspaceYouMayJoin: ({domain, email}: WorkspaceYouMayJoin) => `${domain} のユーザーがすでにワークスペースを作成しています。${email} に送信されたマジックコードを入力してください。`, + workspaceYouMayJoin: (domain: string, email: string) => `${domain} のユーザーがすでにワークスペースを作成しています。${email} に送信されたマジックコードを入力してください。`, joinAWorkspace: 'ワークスペースに参加', listOfWorkspaces: '参加できるワークスペースの一覧です。今参加しなくても、後からいつでも参加できます。', - workspaceMemberList: ({employeeCount, policyOwner}: WorkspaceMemberList) => `${employeeCount}人のメンバー${employeeCount > 1 ? 's' : ''}・${policyOwner}`, + workspaceMemberList: (employeeCount: number, policyOwner: string) => `${employeeCount}人のメンバー${employeeCount > 1 ? 's' : ''}・${policyOwner}`, whereYouWork: '勤務先はどこですか?', errorSelection: '次に進むオプションを選択してください', purpose: { @@ -3003,8 +2985,7 @@ ${ }, resendValidationForm: { linkHasBeenResent: 'リンクを再送信しました', - weSentYouMagicSignInLink: ({login, loginType}: WeSentYouMagicSignInLinkParams) => - `${login} にマジックサインインリンクを送信しました。サインインするには ${loginType} を確認してください。`, + weSentYouMagicSignInLink: (login: string, loginType: string) => `${login} にマジックサインインリンクを送信しました。サインインするには ${loginType} を確認してください。`, resendLink: 'リンクを再送', }, unlinkLoginForm: { @@ -6619,12 +6600,12 @@ ${reportName} : `「${categoryName}」カテゴリの説明のヒントを「${newValue}」(以前は「${oldValue}」)に変更しました`; }, updateTagListName: (oldName: string, newName: string) => `タグリスト名を「${newName}」(以前は「${oldName}」)に変更しました`, - addTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `タグ「${tagName}」をリスト「${tagListName}」に追加しました`, - updateTagName: ({tagListName, newName, oldName}: UpdatedPolicyTagNameParams) => `タグリスト「${tagListName}」でタグ「${oldName}」を「${newName}」に変更して更新しました`, - updateTagEnabled: ({tagListName, tagName, enabled}: UpdatedPolicyTagParams) => `${enabled ? '有効' : '無効'} リスト「${tagListName}」のタグ「${tagName}」`, - deleteTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `タグ「${tagName}」をリスト「${tagListName}」から削除しました`, - deleteMultipleTags: ({count, tagListName}: UpdatedPolicyTagParams) => `リスト「${tagListName}」からタグ「${count}」個を削除しました`, - updateTag: ({tagListName, newValue, tagName, updatedField, oldValue}: UpdatedPolicyTagFieldParams) => { + addTag: (tagListName: string, tagName?: string) => `タグ「${tagName}」をリスト「${tagListName}」に追加しました`, + updateTagName: (tagListName: string, newName: string, oldName: string) => `タグリスト「${tagListName}」でタグ「${oldName}」を「${newName}」に変更して更新しました`, + updateTagEnabled: (tagListName: string, tagName?: string, enabled?: boolean) => `${enabled ? '有効' : '無効'} リスト「${tagListName}」のタグ「${tagName}」`, + deleteTag: (tagListName: string, tagName?: string) => `タグ「${tagName}」をリスト「${tagListName}」から削除しました`, + deleteMultipleTags: (count?: string, tagListName?: string) => `リスト「${tagListName}」からタグ「${count}」個を削除しました`, + updateTag: (tagListName: string, newValue: string, tagName: string, updatedField: string, oldValue?: string) => { if (oldValue) { return `${updatedField} を「${oldValue}」から「${newValue}」に変更して、リスト「${tagListName}」内のタグ「${tagName}」を更新しました`; } @@ -6653,8 +6634,7 @@ ${reportName} }, deleteCustomUnitRate: ({customUnitName, rateName}: AddOrDeletePolicyCustomUnitRateParams) => `「${customUnitName}」レート「${rateName}」を削除しました`, addedReportField: ({fieldType, fieldName}: AddedOrDeletedPolicyReportFieldParams) => `${fieldType}レポートフィールド「${fieldName}」を追加しました`, - updateReportFieldDefaultValue: ({defaultValue, fieldName}: UpdatedPolicyReportFieldDefaultValueParams) => - `レポートフィールド「${fieldName}」のデフォルト値を「${defaultValue}」に設定する`, + updateReportFieldDefaultValue: (defaultValue?: string, fieldName?: string) => `レポートフィールド「${fieldName}」のデフォルト値を「${defaultValue}」に設定する`, addedReportFieldOption: (fieldName: string, optionName: string) => `レポート項目「${fieldName}」にオプション「${optionName}」を追加しました`, removedReportFieldOption: (fieldName: string, optionName: string) => `レポートフィールド「${fieldName}」からオプション「${optionName}」を削除しました`, updateReportFieldOptionDisabled: (fieldName: string, optionName: string, optionEnabled: boolean) => @@ -6666,7 +6646,7 @@ ${reportName} return `レポート項目「${fieldName}」のオプション「${optionName}」を${allEnabled ? '有効' : '無効'}にし、すべてのオプションを${allEnabled ? '有効' : '無効'}にしました`; }, deleteReportField: ({fieldType, fieldName}: {fieldType: string; fieldName?: string}) => `${fieldType}レポートフィールド「${fieldName}」を削除しました`, - preventSelfApproval: ({oldValue, newValue}: UpdatedPolicyPreventSelfApprovalParams) => + preventSelfApproval: (oldValue: string, newValue: string) => `「自分で承認を防止」を「${newValue === 'true' ? '有効' : '無効'}」(以前は「${oldValue === 'true' ? '有効' : '無効'}」)に更新しました`, updateMonthlyOffset: (oldValue: string, newValue: string) => { if (!oldValue) { @@ -6806,9 +6786,9 @@ ${reportName} updateCustomTaxName: ({oldName, newName}: UpdatedPolicyCustomTaxNameParams) => `カスタム税区分名を「${newName}」(以前は「${oldName}」)に変更しました`, updateCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyCurrencyDefaultTaxParams) => `ワークスペースの通貨デフォルト税率を「${newName}」(以前は「${oldName}」)に変更しました`, updateForeignCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyForeignCurrencyDefaultTaxParams) => `外貨のデフォルト税率を「${newName}」に変更しました(以前は「${oldName}」)。`, - addTax: ({taxName}: UpdatedPolicyTaxParams) => `税「${taxName}」を追加しました`, - deleteTax: ({taxName}: UpdatedPolicyTaxParams) => `税金「${taxName}」を削除しました`, - updateTax: ({oldValue, taxName, updatedField, newValue}: UpdatedPolicyTaxParams) => { + addTax: (taxName: string) => `税「${taxName}」を追加しました`, + deleteTax: (taxName: string) => `税金「${taxName}」を削除しました`, + updateTax: (oldValue?: string | boolean | number, taxName?: string, updatedField?: string, newValue?: string | boolean | number) => { if (!updatedField) { return ''; } @@ -6841,16 +6821,15 @@ ${reportName} removedMaxExpenseAge: (oldValue: string) => `最大経費日数を削除(以前は「${oldValue}」日)`, updateCategories: ({count}: UpdatedPolicyCategoriesParams) => `${count} 個のカテゴリーを更新しました`, updateTagList: ({tagListName}: UpdatedPolicyTagListParams) => `リスト「${tagListName}」のタグを更新しました`, - updateTagListRequired: ({tagListsName, isRequired}: UpdatedPolicyTagListRequiredParams) => - `タグリスト「${tagListsName}」を${isRequired ? '必須' : '必須ではありません'}に変更しました`, + updateTagListRequired: (tagListsName: string, isRequired: boolean) => `タグリスト「${tagListsName}」を${isRequired ? '必須' : '必須ではありません'}に変更しました`, importTags: 'スプレッドシートからタグをインポートしました', deletedAllTags: 'すべてのタグを削除しました', updateCustomUnitDefaultCategory: ({customUnitName, newValue, oldValue}: UpdatePolicyCustomUnitDefaultCategoryParams) => `${customUnitName}のデフォルトカテゴリを「${newValue}」に変更しました ${oldValue ? `(以前の値 "${oldValue}")` : ''}`, importCustomUnitRates: ({customUnitName}: ImportPolicyCustomUnitRatesParams) => `カスタム単位「${customUnitName}」のレートをインポートしました`, - updateCustomUnitSubRate: ({customUnitName, customUnitRateName, customUnitSubRateName, oldValue, newValue, updatedField}: UpdatedPolicyCustomUnitSubRateParams) => + updateCustomUnitSubRate: (customUnitName: string, customUnitRateName: string, customUnitSubRateName: string, oldValue: string, newValue: string, updatedField: string) => `「${customUnitName}」のレート「${customUnitRateName}」、サブレート「${customUnitSubRateName}」の${updatedField}を「${newValue}」(以前は「${oldValue}」)に変更しました`, - removedCustomUnitSubRate: ({customUnitName, customUnitRateName, removedSubRateName}: RemovedPolicyCustomUnitSubRateParams) => + removedCustomUnitSubRate: (customUnitName: string, customUnitRateName: string, removedSubRateName: string) => `「${customUnitName}」のレート「${customUnitRateName}」からサブレート「${removedSubRateName}」を削除しました`, addBudget: ({frequency, entityName, entityType, shared, individual, notificationThreshold}: AddBudgetParams) => { const thresholdSuffix = typeof notificationThreshold === 'number' ? `通知しきい値「${notificationThreshold}%」で` : ''; @@ -6924,7 +6903,7 @@ ${reportName} updatedTimeEnabled: ({enabled}: UpdatedPolicyTimeEnabledParams) => { return `${enabled ? '有効' : '無効'} 時間追跡`; }, - updatedTimeRate: ({newRate, oldRate}: UpdatedPolicyTimeRateParams) => { + updatedTimeRate: (newRate?: string, oldRate?: string) => { return `時給を「${newRate}」(以前は「${oldRate}」)に変更しました`; }, addedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `禁止経費に「${prohibitedExpense}」を追加しました`, @@ -7709,7 +7688,7 @@ ${reportName} overLimitAttendee: ({formattedLimit}: ViolationsOverLimitParams) => `1人あたりの上限額 ${formattedLimit} を超過した金額`, perDayLimit: ({formattedLimit}: ViolationsPerDayLimitParams) => `1人あたりの1日上限額 ${formattedLimit} を超えたカテゴリ金額`, receiptNotSmartScanned: 'レシートと経費の詳細が手動で追加されました。', - receiptRequired: ({formattedLimit, category}: ViolationsReceiptRequiredParams) => { + receiptRequired: (formattedLimit?: string, category?: string) => { if (formattedLimit && category) { return `レシートが必要です(カテゴリ上限 ${formattedLimit} を超過)`; } @@ -7722,7 +7701,7 @@ ${reportName} return '領収書が必要です'; }, itemizedReceiptRequired: ({formattedLimit}: {formattedLimit?: string}) => `項目別の領収書が必要です${formattedLimit ? `${formattedLimit} を超過` : ''}`, - prohibitedExpense: ({prohibitedExpenseTypes}: ViolationsProhibitedExpenseParams) => { + prohibitedExpense: (prohibitedExpenseTypes: string | string[]) => { const preMessage = '禁止経費:'; const getProhibitedExpenseTypeText = (prohibitedExpenseType: string) => { switch (prohibitedExpenseType) { @@ -7753,7 +7732,17 @@ ${reportName} }, customRules: ({message}: ViolationsCustomRulesParams) => message, reviewRequired: '要レビュー', - rter: ({brokenBankConnection, isAdmin, isTransactionOlderThan7Days, member, rterType, companyCardPageURL, connectionLink, isPersonalCard, isMarkAsCash}: ViolationsRterParams) => { + rter: ( + brokenBankConnection: boolean, + isAdmin: boolean, + isTransactionOlderThan7Days: boolean, + member?: string, + rterType?: ValueOf, + companyCardPageURL?: string, + connectionLink?: string, + isPersonalCard?: boolean, + isMarkAsCash?: boolean, + ) => { if (rterType === CONST.RTER_VIOLATION_TYPES.BROKEN_CARD_CONNECTION_530) { return '銀行連携の不具合により、領収書を自動照合できません。'; } @@ -7782,10 +7771,10 @@ ${reportName} markAsCashToIgnore: '現金としてマークして無視し、支払いをリクエストします。', smartscanFailed: ({canEdit = true}) => `レシートのスキャンに失敗しました。${canEdit ? '詳細を手動で入力してください。' : ''}`, receiptGeneratedWithAI: 'AI生成の可能性があるレシート', - someTagLevelsRequired: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `${tagName ?? 'タグ'} が見つかりません`, - tagOutOfPolicy: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `${tagName ?? 'タグ'} は無効になりました`, + someTagLevelsRequired: (tagName?: string) => `${tagName ?? 'タグ'} が見つかりません`, + tagOutOfPolicy: (tagName?: string) => `${tagName ?? 'タグ'} は無効になりました`, taxAmountChanged: '税額が変更されました', - taxOutOfPolicy: ({taxName}: ViolationsTaxOutOfPolicyParams = {}) => `${taxName ?? '税金'} は有効期限切れです`, + taxOutOfPolicy: (taxName?: string) => `${taxName ?? '税金'} は有効期限切れです`, taxRateChanged: '税率が変更されました', taxRequired: '税率が未設定です', none: 'なし', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index f6b58cfd35ebe..b83989b897390 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -47,7 +47,6 @@ import type { PaidElsewhereParams, ParentNavigationSummaryParams, RemovedFromApprovalWorkflowParams, - RemovedPolicyCustomUnitSubRateParams, ReportArchiveReasonsClosedParams, ReportArchiveReasonsInvoiceReceiverPolicyDeletedParams, ReportArchiveReasonsMergedParams, @@ -65,21 +64,12 @@ import type { UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, - UpdatedPolicyCustomUnitSubRateParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyPreventSelfApprovalParams, UpdatedPolicyReimbursementEnabledParams, UpdatedPolicyReimburserParams, - UpdatedPolicyReportFieldDefaultValueParams, - UpdatedPolicyTagFieldParams, UpdatedPolicyTagListParams, - UpdatedPolicyTagListRequiredParams, - UpdatedPolicyTagNameParams, - UpdatedPolicyTagParams, - UpdatedPolicyTaxParams, UpdatedPolicyTimeEnabledParams, - UpdatedPolicyTimeRateParams, UpdatedTheDistanceMerchantParams, UpdatedTheRequestParams, UpdatePolicyCustomUnitDefaultCategoryParams, @@ -100,26 +90,18 @@ import type { ViolationsOverCategoryLimitParams, ViolationsOverLimitParams, ViolationsPerDayLimitParams, - ViolationsProhibitedExpenseParams, - ViolationsReceiptRequiredParams, - ViolationsRterParams, - ViolationsTagOutOfPolicyParams, - ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, WalletProgramParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, - WeSentYouMagicSignInLinkParams, WorkEmailMergingBlockedParams, WorkEmailResendCodeParams, WorkspaceLockedPlanTypeParams, - WorkspaceMemberList, WorkspaceMembersCountParams, WorkspaceOwnerWillNeedToAddOrUpdatePaymentCardParams, WorkspaceRouteParams, WorkspacesListRouteParams, WorkspaceUpgradeNoteParams, - WorkspaceYouMayJoin, YourPlanPriceParams, YourPlanPriceValueParams, ZipCodeExampleFormatParams, @@ -2642,10 +2624,10 @@ ${amount} voor ${merchant} - ${date}`, getStarted: 'Aan de slag', whatsYourName: 'Hoe heet je?', peopleYouMayKnow: 'Mensen die je misschien kent zijn hier al! Verifieer je e-mailadres om je bij hen aan te sluiten.', - workspaceYouMayJoin: ({domain, email}: WorkspaceYouMayJoin) => `Iemand van ${domain} heeft al een workspace gemaakt. Voer de magische code in die is verzonden naar ${email}.`, + workspaceYouMayJoin: (domain: string, email: string) => `Iemand van ${domain} heeft al een workspace gemaakt. Voer de magische code in die is verzonden naar ${email}.`, joinAWorkspace: 'Lid worden van een workspace', listOfWorkspaces: 'Hier is de lijst met werkruimtes waaraan je kunt deelnemen. Geen zorgen, je kunt je er altijd later nog bij aansluiten als je dat liever hebt.', - workspaceMemberList: ({employeeCount, policyOwner}: WorkspaceMemberList) => `${employeeCount} lid${employeeCount > 1 ? 's' : ''} • ${policyOwner}`, + workspaceMemberList: (employeeCount: number, policyOwner: string) => `${employeeCount} lid${employeeCount > 1 ? 's' : ''} • ${policyOwner}`, whereYouWork: 'Waar werk je?', errorSelection: 'Selecteer een optie om verder te gaan', purpose: { @@ -3018,7 +3000,7 @@ ${ }, resendValidationForm: { linkHasBeenResent: 'Link is opnieuw verzonden', - weSentYouMagicSignInLink: ({login, loginType}: WeSentYouMagicSignInLinkParams) => `Ik heb een magische inloglink naar ${login} gestuurd. Controleer je ${loginType} om in te loggen.`, + weSentYouMagicSignInLink: (login: string, loginType: string) => `Ik heb een magische inloglink naar ${login} gestuurd. Controleer je ${loginType} om in te loggen.`, resendLink: 'Link opnieuw verzenden', }, unlinkLoginForm: { @@ -6663,13 +6645,12 @@ Vereis onkostendetails zoals bonnen en beschrijvingen, stel limieten en standaar : `heeft de beschrijvingshint van categorie „${categoryName}” gewijzigd naar „${newValue}” (voorheen „${oldValue}”)`; }, updateTagListName: (oldName: string, newName: string) => `heeft de naam van de taglijst gewijzigd in „${newName}” (voorheen „${oldName}”)`, - addTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `heeft de tag "${tagName}" toegevoegd aan de lijst "${tagListName}"`, - updateTagName: ({tagListName, newName, oldName}: UpdatedPolicyTagNameParams) => - `heeft de taglijst "${tagListName}" bijgewerkt door de tag "${oldName}" te veranderen in "${newName}"`, - updateTagEnabled: ({tagListName, tagName, enabled}: UpdatedPolicyTagParams) => `${enabled ? 'ingeschakeld' : 'uitgeschakeld'} de tag "${tagName}" in de lijst "${tagListName}"`, - deleteTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `heeft het label "${tagName}" verwijderd uit de lijst "${tagListName}"`, - deleteMultipleTags: ({count, tagListName}: UpdatedPolicyTagParams) => `heeft “${count}” tags verwijderd uit de lijst “${tagListName}”`, - updateTag: ({tagListName, newValue, tagName, updatedField, oldValue}: UpdatedPolicyTagFieldParams) => { + addTag: (tagListName: string, tagName?: string) => `heeft de tag "${tagName}" toegevoegd aan de lijst "${tagListName}"`, + updateTagName: (tagListName: string, newName: string, oldName: string) => `heeft de taglijst "${tagListName}" bijgewerkt door de tag "${oldName}" te veranderen in "${newName}"`, + updateTagEnabled: (tagListName: string, tagName?: string, enabled?: boolean) => `${enabled ? 'ingeschakeld' : 'uitgeschakeld'} de tag "${tagName}" in de lijst "${tagListName}"`, + deleteTag: (tagListName: string, tagName?: string) => `heeft het label "${tagName}" verwijderd uit de lijst "${tagListName}"`, + deleteMultipleTags: (count?: string, tagListName?: string) => `heeft “${count}” tags verwijderd uit de lijst “${tagListName}”`, + updateTag: (tagListName: string, newValue: string, tagName: string, updatedField: string, oldValue?: string) => { if (oldValue) { return `heeft de tag "${tagName}" op de lijst "${tagListName}" bijgewerkt door ${updatedField} te wijzigen in "${newValue}" (voorheen "${oldValue}")`; } @@ -6698,8 +6679,7 @@ Vereis onkostendetails zoals bonnen en beschrijvingen, stel limieten en standaar }, deleteCustomUnitRate: ({customUnitName, rateName}: AddOrDeletePolicyCustomUnitRateParams) => `heeft het tarief „${rateName}” van de eenheid „${customUnitName}” verwijderd`, addedReportField: ({fieldType, fieldName}: AddedOrDeletedPolicyReportFieldParams) => `${fieldType} rapportveld "${fieldName}" toegevoegd`, - updateReportFieldDefaultValue: ({defaultValue, fieldName}: UpdatedPolicyReportFieldDefaultValueParams) => - `stel de standaardwaarde van rapportveld "${fieldName}" in op "${defaultValue}"`, + updateReportFieldDefaultValue: (defaultValue?: string, fieldName?: string) => `stel de standaardwaarde van rapportveld "${fieldName}" in op "${defaultValue}"`, addedReportFieldOption: (fieldName: string, optionName: string) => `heeft de optie ‘${optionName}’ toegevoegd aan het rapportveld ‘${fieldName}’`, removedReportFieldOption: (fieldName: string, optionName: string) => `heeft de optie "${optionName}" verwijderd uit het rapportveld "${fieldName}"`, updateReportFieldOptionDisabled: (fieldName: string, optionName: string, optionEnabled: boolean) => @@ -6711,7 +6691,7 @@ Vereis onkostendetails zoals bonnen en beschrijvingen, stel limieten en standaar return `${allEnabled ? 'ingeschakeld' : 'uitgeschakeld'} de optie „${optionName}” voor het rapportveld „${fieldName}”, waardoor alle opties ${allEnabled ? 'ingeschakeld' : 'uitgeschakeld'}`; }, deleteReportField: ({fieldType, fieldName}: {fieldType: string; fieldName?: string}) => `heeft ${fieldType}-rapportveld "${fieldName}" verwijderd`, - preventSelfApproval: ({oldValue, newValue}: UpdatedPolicyPreventSelfApprovalParams) => + preventSelfApproval: (oldValue: string, newValue: string) => `heeft “Zelfgoedkeuring voorkomen” bijgewerkt naar “${newValue === 'true' ? 'Ingeschakeld' : 'Uitgeschakeld'}” (voorheen “${oldValue === 'true' ? 'Ingeschakeld' : 'Uitgeschakeld'}”)`, updateMonthlyOffset: (oldValue: string, newValue: string) => { if (!oldValue) { @@ -6859,9 +6839,9 @@ Vereis onkostendetails zoals bonnen en beschrijvingen, stel limieten en standaar `heeft het standaardbelastingtarief van de werkruimtevaluta gewijzigd in "${newName}" (voorheen "${oldName}")`, updateForeignCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyForeignCurrencyDefaultTaxParams) => `heeft het standaardbelastingtarief voor vreemde valuta gewijzigd in '${newName}' (voorheen '${oldName}')`, - addTax: ({taxName}: UpdatedPolicyTaxParams) => `heeft de belasting ‘${taxName}’ toegevoegd`, - deleteTax: ({taxName}: UpdatedPolicyTaxParams) => `heeft de belasting ‘${taxName}’ verwijderd`, - updateTax: ({oldValue, taxName, updatedField, newValue}: UpdatedPolicyTaxParams) => { + addTax: (taxName: string) => `heeft de belasting ‘${taxName}’ toegevoegd`, + deleteTax: (taxName: string) => `heeft de belasting ‘${taxName}’ verwijderd`, + updateTax: (oldValue?: string | boolean | number, taxName?: string, updatedField?: string, newValue?: string | boolean | number) => { if (!updatedField) { return ''; } @@ -6894,16 +6874,15 @@ Vereis onkostendetails zoals bonnen en beschrijvingen, stel limieten en standaar removedMaxExpenseAge: (oldValue: string) => `maximale onkostendatum verwijderd (voorheen "${oldValue}" dagen)`, updateCategories: ({count}: UpdatedPolicyCategoriesParams) => `${count} categorieën bijgewerkt`, updateTagList: ({tagListName}: UpdatedPolicyTagListParams) => `tags op de lijst "${tagListName}" bijgewerkt`, - updateTagListRequired: ({tagListsName, isRequired}: UpdatedPolicyTagListRequiredParams) => - `heeft taglijst "${tagListsName}" gewijzigd naar ${isRequired ? 'vereist' : 'niet vereist'}`, + updateTagListRequired: (tagListsName: string, isRequired: boolean) => `heeft taglijst "${tagListsName}" gewijzigd naar ${isRequired ? 'vereist' : 'niet vereist'}`, importTags: 'geïmporteerde labels uit een spreadsheet', deletedAllTags: 'alle tags verwijderd', updateCustomUnitDefaultCategory: ({customUnitName, newValue, oldValue}: UpdatePolicyCustomUnitDefaultCategoryParams) => `heeft de standaardcategorie voor ${customUnitName} gewijzigd in „${newValue}” ${oldValue ? `(eerder "${oldValue}")` : ''}`, importCustomUnitRates: ({customUnitName}: ImportPolicyCustomUnitRatesParams) => `geïmporteerde tarieven voor aangepaste eenheid "${customUnitName}"`, - updateCustomUnitSubRate: ({customUnitName, customUnitRateName, customUnitSubRateName, oldValue, newValue, updatedField}: UpdatedPolicyCustomUnitSubRateParams) => + updateCustomUnitSubRate: (customUnitName: string, customUnitRateName: string, customUnitSubRateName: string, oldValue: string, newValue: string, updatedField: string) => `heeft "${customUnitName}" tarief "${customUnitRateName}" subtarief "${customUnitSubRateName}" ${updatedField} gewijzigd naar "${newValue}" (voorheen "${oldValue}")`, - removedCustomUnitSubRate: ({customUnitName, customUnitRateName, removedSubRateName}: RemovedPolicyCustomUnitSubRateParams) => + removedCustomUnitSubRate: (customUnitName: string, customUnitRateName: string, removedSubRateName: string) => `heeft subtarief „${removedSubRateName}” verwijderd uit tarief „${customUnitRateName}” van eenheid „${customUnitName}”`, addBudget: ({frequency, entityName, entityType, shared, individual, notificationThreshold}: AddBudgetParams) => { const thresholdSuffix = typeof notificationThreshold === 'number' ? `met een meldingsdrempel van "${notificationThreshold}%"` : ''; @@ -6977,7 +6956,7 @@ Vereis onkostendetails zoals bonnen en beschrijvingen, stel limieten en standaar updatedTimeEnabled: ({enabled}: UpdatedPolicyTimeEnabledParams) => { return `${enabled ? 'ingeschakeld' : 'uitgeschakeld'} tijdregistratie`; }, - updatedTimeRate: ({newRate, oldRate}: UpdatedPolicyTimeRateParams) => { + updatedTimeRate: (newRate?: string, oldRate?: string) => { return `uurloon gewijzigd naar ‘${newRate}’ (voorheen ‘${oldRate}’)`; }, addedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `heeft ‘${prohibitedExpense}’ toegevoegd aan verboden uitgaven`, @@ -7770,7 +7749,7 @@ Vereis onkostendetails zoals bonnen en beschrijvingen, stel limieten en standaar overLimitAttendee: ({formattedLimit}: ViolationsOverLimitParams) => `Bedrag boven de limiet van ${formattedLimit} per persoon`, perDayLimit: ({formattedLimit}: ViolationsPerDayLimitParams) => `Bedrag boven de dagelijkse ${formattedLimit}/persoon-categorielimiet`, receiptNotSmartScanned: 'Ontvangst- en onkostendetails handmatig toegevoegd.', - receiptRequired: ({formattedLimit, category}: ViolationsReceiptRequiredParams) => { + receiptRequired: (formattedLimit?: string, category?: string) => { if (formattedLimit && category) { return `Bon nodig boven categorielimiet van ${formattedLimit}`; } @@ -7783,7 +7762,7 @@ Vereis onkostendetails zoals bonnen en beschrijvingen, stel limieten en standaar return 'Bon vereist'; }, itemizedReceiptRequired: ({formattedLimit}: {formattedLimit?: string}) => `Gespecificeerde bon vereist${formattedLimit ? `boven ${formattedLimit}` : ''}`, - prohibitedExpense: ({prohibitedExpenseTypes}: ViolationsProhibitedExpenseParams) => { + prohibitedExpense: (prohibitedExpenseTypes: string | string[]) => { const preMessage = 'Verboden uitgave:'; const getProhibitedExpenseTypeText = (prohibitedExpenseType: string) => { switch (prohibitedExpenseType) { @@ -7814,7 +7793,17 @@ Vereis onkostendetails zoals bonnen en beschrijvingen, stel limieten en standaar }, customRules: ({message}: ViolationsCustomRulesParams) => message, reviewRequired: 'Beoordeling vereist', - rter: ({brokenBankConnection, isAdmin, isTransactionOlderThan7Days, member, rterType, companyCardPageURL, connectionLink, isPersonalCard, isMarkAsCash}: ViolationsRterParams) => { + rter: ( + brokenBankConnection: boolean, + isAdmin: boolean, + isTransactionOlderThan7Days: boolean, + member?: string, + rterType?: string, + companyCardPageURL?: string, + connectionLink?: string, + isPersonalCard?: boolean, + isMarkAsCash?: boolean, + ) => { if (rterType === CONST.RTER_VIOLATION_TYPES.BROKEN_CARD_CONNECTION_530) { return 'Bon kan automatisch aan bon koppelen vanwege verbroken bankverbinding.'; } @@ -7843,10 +7832,10 @@ Vereis onkostendetails zoals bonnen en beschrijvingen, stel limieten en standaar markAsCashToIgnore: 'Markeren als contant om te negeren en betaling aan te vragen.', smartscanFailed: ({canEdit = true}) => `Bon scannen mislukt.${canEdit ? 'Voer gegevens handmatig in.' : ''}`, receiptGeneratedWithAI: 'Mogelijke AI-gegenereerde bon', - someTagLevelsRequired: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `Ontbreekt ${tagName ?? 'Label'}`, - tagOutOfPolicy: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `${tagName ?? 'Label'} niet meer geldig`, + someTagLevelsRequired: (tagName?: string) => `Ontbreekt ${tagName ?? 'Label'}`, + tagOutOfPolicy: (tagName?: string) => `${tagName ?? 'Label'} niet meer geldig`, taxAmountChanged: 'Belastingbedrag is gewijzigd', - taxOutOfPolicy: ({taxName}: ViolationsTaxOutOfPolicyParams = {}) => `${taxName ?? 'Belasting'} niet meer geldig`, + taxOutOfPolicy: (taxName?: string) => `${taxName ?? 'Belasting'} niet meer geldig`, taxRateChanged: 'Belastingtarief is gewijzigd', taxRequired: 'Ontbrekend belastingtarief', none: 'Geen', diff --git a/src/languages/params.ts b/src/languages/params.ts index 3aa49f00dc121..336024c0d29e6 100644 --- a/src/languages/params.ts +++ b/src/languages/params.ts @@ -1,5 +1,3 @@ -import type {ValueOf} from 'type-fest'; -import type CONST from '@src/CONST'; import type {OnyxInputOrEntry, ReportAction} from '@src/types/onyx'; import type {DelegateRole} from '@src/types/onyx/Account'; import type {AllConnectionName, ConnectionName, PolicyConnectionSyncStage, SageIntacctMappingName} from '@src/types/onyx/Policy'; @@ -88,7 +86,7 @@ type ResolutionConstraintsParams = {minHeightInPx: number; minWidthInPx: number; type NotAllowedExtensionParams = {allowedExtensions: string[]}; -type WeSentYouMagicSignInLinkParams = {login: string; loginType: string}; +// type WeSentYouMagicSignInLinkParams = {login: string; loginType: string}; type StepCounterParams = {step: number; total?: number; text?: string}; @@ -122,27 +120,27 @@ type ViolationsOverLimitParams = {formattedLimit: string}; type ViolationsPerDayLimitParams = {formattedLimit: string}; -type ViolationsReceiptRequiredParams = {formattedLimit?: string; category?: string}; +// type ViolationsReceiptRequiredParams = {formattedLimit?: string; category?: string}; type ViolationsCustomRulesParams = {message: string}; -type ViolationsRterParams = { - brokenBankConnection: boolean; - isAdmin: boolean; - isTransactionOlderThan7Days: boolean; - member?: string; - rterType?: ValueOf; - companyCardPageURL?: string; - connectionLink?: string; - isPersonalCard?: boolean; - isMarkAsCash?: boolean; -}; +// type ViolationsRterParams = { +// brokenBankConnection: boolean; +// isAdmin: boolean; +// isTransactionOlderThan7Days: boolean; +// member?: string; +// rterType?: ValueOf; +// companyCardPageURL?: string; +// connectionLink?: string; +// isPersonalCard?: boolean; +// isMarkAsCash?: boolean; +// }; -type ViolationsTagOutOfPolicyParams = {tagName?: string} | undefined; +// type ViolationsTagOutOfPolicyParams = {tagName?: string} | undefined; -type ViolationsProhibitedExpenseParams = {prohibitedExpenseTypes: string | string[]}; +// type ViolationsProhibitedExpenseParams = {prohibitedExpenseTypes: string | string[]}; -type ViolationsTaxOutOfPolicyParams = {taxName?: string} | undefined; +// type ViolationsTaxOutOfPolicyParams = {taxName?: string} | undefined; type OptionalParam = Partial; @@ -152,17 +150,17 @@ type ChangeFieldParams = {oldValue?: string; newValue: string; fieldName: string type UpdatedPolicyCategoryMaxAmountNoReceiptParams = {categoryName: string; oldValue?: string; newValue: string}; -type UpdatedPolicyTaxParams = {taxName: string; oldValue?: string | boolean | number; newValue?: string | boolean | number; updatedField?: string}; +// type UpdatedPolicyTaxParams = {taxName: string; oldValue?: string | boolean | number; newValue?: string | boolean | number; updatedField?: string}; -type UpdatedPolicyTagParams = {tagListName: string; tagName?: string; enabled?: boolean; count?: string}; +// type UpdatedPolicyTagParams = {tagListName: string; tagName?: string; enabled?: boolean; count?: string}; -type UpdatedPolicyTagNameParams = {oldName: string; newName: string; tagListName: string}; +// type UpdatedPolicyTagNameParams = {oldName: string; newName: string; tagListName: string}; -type UpdatedPolicyTagFieldParams = {oldValue?: string; newValue: string; tagName: string; tagListName: string; updatedField: string}; +// type UpdatedPolicyTagFieldParams = {oldValue?: string; newValue: string; tagName: string; tagListName: string; updatedField: string}; type UpdatedPolicyTagListParams = {tagListName: string}; -type UpdatedPolicyTagListRequiredParams = {tagListsName: string; isRequired: boolean}; +// type UpdatedPolicyTagListRequiredParams = {tagListsName: string; isRequired: boolean}; type UpdatePolicyCustomUnitTaxEnabledParams = {newValue: boolean}; @@ -172,23 +170,23 @@ type UpdatePolicyCustomUnitDefaultCategoryParams = {customUnitName: string; newV type UpdatePolicyCustomUnitParams = {oldValue: string; newValue: string; customUnitName: string; updatedField: string}; -type UpdatedPolicyCustomUnitSubRateParams = {customUnitName: string; customUnitRateName: string; customUnitSubRateName: string; oldValue: string; newValue: string; updatedField: string}; +// type UpdatedPolicyCustomUnitSubRateParams = {customUnitName: string; customUnitRateName: string; customUnitSubRateName: string; oldValue: string; newValue: string; updatedField: string}; -type RemovedPolicyCustomUnitSubRateParams = {customUnitName: string; customUnitRateName: string; removedSubRateName: string}; +// type RemovedPolicyCustomUnitSubRateParams = {customUnitName: string; customUnitRateName: string; removedSubRateName: string}; type AddedOrDeletedPolicyReportFieldParams = {fieldType: string; fieldName?: string}; -type UpdatedPolicyReportFieldDefaultValueParams = {fieldName?: string; defaultValue?: string}; +// type UpdatedPolicyReportFieldDefaultValueParams = {fieldName?: string; defaultValue?: string}; type UpdatedPolicyApprovalRuleParams = {oldApproverEmail: string; oldApproverName?: string; newApproverEmail: string; newApproverName?: string; field: string; name: string}; -type UpdatedPolicyPreventSelfApprovalParams = {oldValue: string; newValue: string}; +// type UpdatedPolicyPreventSelfApprovalParams = {oldValue: string; newValue: string}; // type UpdatedPolicyOwnershipParams = {oldOwnerEmail: string; oldOwnerName: string; policyName: string}; type UpdatedPolicyTimeEnabledParams = {enabled?: boolean}; -type UpdatedPolicyTimeRateParams = {newRate?: string; oldRate?: string}; +// type UpdatedPolicyTimeRateParams = {newRate?: string; oldRate?: string}; type UpdatedPolicyAutoHarvestingParams = {enabled: boolean}; @@ -329,10 +327,10 @@ type InvalidValueParams = { expectedValues: string; }; -type WorkspaceYouMayJoin = { - domain: string; - email: string; -}; +// type WorkspaceYouMayJoin = { +// domain: string; +// email: string; +// }; type WorkEmailResendCodeParams = { workEmail: string | undefined; @@ -342,10 +340,10 @@ type WorkEmailMergingBlockedParams = { workEmail: string | undefined; }; -type WorkspaceMemberList = { - employeeCount: number; - policyOwner: string; -}; +// type WorkspaceMemberList = { +// employeeCount: number; +// policyOwner: string; +// }; type WorkspaceLockedPlanTypeParams = { count: number; @@ -435,15 +433,15 @@ export type { ViolationsOverCategoryLimitParams, ViolationsOverLimitParams, ViolationsPerDayLimitParams, - ViolationsReceiptRequiredParams, + // ViolationsReceiptRequiredParams, ViolationsCustomRulesParams, - ViolationsRterParams, - ViolationsTagOutOfPolicyParams, - ViolationsProhibitedExpenseParams, - ViolationsTaxOutOfPolicyParams, + // ViolationsRterParams, + // ViolationsTagOutOfPolicyParams, + // ViolationsProhibitedExpenseParams, + // ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, WalletProgramParams, - WeSentYouMagicSignInLinkParams, + // WeSentYouMagicSignInLinkParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, ZipCodeExampleFormatParams, @@ -461,24 +459,24 @@ export type { DisconnectPromptParams, DisconnectTitleParams, OptionalParam, - WorkspaceYouMayJoin, - WorkspaceMemberList, + // WorkspaceYouMayJoin, + // WorkspaceMemberList, WorkspaceLockedPlanTypeParams, CustomUnitRateParams, UpdatedPolicyTagListParams, - UpdatedPolicyTagListRequiredParams, - UpdatedPolicyPreventSelfApprovalParams, + // UpdatedPolicyTagListRequiredParams, + // UpdatedPolicyPreventSelfApprovalParams, UpdatedPolicyTimeEnabledParams, - UpdatedPolicyTimeRateParams, + // UpdatedPolicyTimeRateParams, WorkEmailResendCodeParams, WorkEmailMergingBlockedParams, - UpdatedPolicyTagParams, - UpdatedPolicyTaxParams, - UpdatedPolicyTagNameParams, - UpdatedPolicyTagFieldParams, - UpdatedPolicyReportFieldDefaultValueParams, - RemovedPolicyCustomUnitSubRateParams, - UpdatedPolicyCustomUnitSubRateParams, + // UpdatedPolicyTagParams, + // UpdatedPolicyTaxParams, + // UpdatedPolicyTagNameParams, + // UpdatedPolicyTagFieldParams, + // UpdatedPolicyReportFieldDefaultValueParams, + // RemovedPolicyCustomUnitSubRateParams, + // UpdatedPolicyCustomUnitSubRateParams, YourPlanPriceValueParams, AddedOrDeletedPolicyReportFieldParams, UpdatedPolicyManualApprovalThresholdParams, diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 25934db25fa85..ce1a0b26715cc 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -47,7 +47,6 @@ import type { PaidElsewhereParams, ParentNavigationSummaryParams, RemovedFromApprovalWorkflowParams, - RemovedPolicyCustomUnitSubRateParams, ReportArchiveReasonsClosedParams, ReportArchiveReasonsInvoiceReceiverPolicyDeletedParams, ReportArchiveReasonsMergedParams, @@ -65,21 +64,12 @@ import type { UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, - UpdatedPolicyCustomUnitSubRateParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyPreventSelfApprovalParams, UpdatedPolicyReimbursementEnabledParams, UpdatedPolicyReimburserParams, - UpdatedPolicyReportFieldDefaultValueParams, - UpdatedPolicyTagFieldParams, UpdatedPolicyTagListParams, - UpdatedPolicyTagListRequiredParams, - UpdatedPolicyTagNameParams, - UpdatedPolicyTagParams, - UpdatedPolicyTaxParams, UpdatedPolicyTimeEnabledParams, - UpdatedPolicyTimeRateParams, UpdatedTheDistanceMerchantParams, UpdatedTheRequestParams, UpdatePolicyCustomUnitDefaultCategoryParams, @@ -100,26 +90,18 @@ import type { ViolationsOverCategoryLimitParams, ViolationsOverLimitParams, ViolationsPerDayLimitParams, - ViolationsProhibitedExpenseParams, - ViolationsReceiptRequiredParams, - ViolationsRterParams, - ViolationsTagOutOfPolicyParams, - ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, WalletProgramParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, - WeSentYouMagicSignInLinkParams, WorkEmailMergingBlockedParams, WorkEmailResendCodeParams, WorkspaceLockedPlanTypeParams, - WorkspaceMemberList, WorkspaceMembersCountParams, WorkspaceOwnerWillNeedToAddOrUpdatePaymentCardParams, WorkspaceRouteParams, WorkspacesListRouteParams, WorkspaceUpgradeNoteParams, - WorkspaceYouMayJoin, YourPlanPriceParams, YourPlanPriceValueParams, ZipCodeExampleFormatParams, @@ -2633,10 +2615,10 @@ ${amount} dla ${merchant} - ${date}`, getStarted: 'Rozpocznij', whatsYourName: 'Jak masz na imię?', peopleYouMayKnow: 'Osoby, które możesz znać, są już tutaj! Zweryfikuj swój e-mail, aby do nich dołączyć.', - workspaceYouMayJoin: ({domain, email}: WorkspaceYouMayJoin) => `Ktoś z domeny ${domain} utworzył już przestrzeń roboczą. Wprowadź magiczny kod wysłany na adres ${email}.`, + workspaceYouMayJoin: (domain: string, email: string) => `Ktoś z domeny ${domain} utworzył już przestrzeń roboczą. Wprowadź magiczny kod wysłany na adres ${email}.`, joinAWorkspace: 'Dołącz do przestrzeni roboczej', listOfWorkspaces: 'Oto lista przestrzeni roboczych, do których możesz dołączyć. Nie martw się, zawsze możesz dołączyć do nich później, jeśli wolisz.', - workspaceMemberList: ({employeeCount, policyOwner}: WorkspaceMemberList) => `${employeeCount} członek${employeeCount > 1 ? 's' : ''} • ${policyOwner}`, + workspaceMemberList: (employeeCount: number, policyOwner: string) => `${employeeCount} członek${employeeCount > 1 ? 's' : ''} • ${policyOwner}`, whereYouWork: 'Gdzie pracujesz?', errorSelection: 'Wybierz opcję, aby przejść dalej', purpose: { @@ -3010,8 +2992,7 @@ ${ }, resendValidationForm: { linkHasBeenResent: 'Link został wysłany ponownie', - weSentYouMagicSignInLink: ({login, loginType}: WeSentYouMagicSignInLinkParams) => - `Wysłałem(-am) magiczny link logowania na adres ${login}. Sprawdź swój ${loginType}, aby się zalogować.`, + weSentYouMagicSignInLink: (login: string, loginType: string) => `Wysłałem(-am) magiczny link logowania na adres ${login}. Sprawdź swój ${loginType}, aby się zalogować.`, resendLink: 'Wyślij ponownie link', }, unlinkLoginForm: { @@ -6657,12 +6638,12 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i : `zmienił(-a) podpowiedź opisu kategorii „${categoryName}” na „${newValue}” (wcześniej „${oldValue}”)`; }, updateTagListName: (oldName: string, newName: string) => `zmienił nazwę listy tagów na „${newName}” (poprzednio „${oldName}”)`, - addTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `dodano znacznik „${tagName}” do listy „${tagListName}”`, - updateTagName: ({tagListName, newName, oldName}: UpdatedPolicyTagNameParams) => `zaktualizowano listę znaczników „${tagListName}”, zmieniając znacznik „${oldName}” na „${newName}”`, - updateTagEnabled: ({tagListName, tagName, enabled}: UpdatedPolicyTagParams) => `${enabled ? 'włączone' : 'Wyłączone'} tag "${tagName}" na liście "${tagListName}"`, - deleteTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `usunięto tag „${tagName}” z listy „${tagListName}”`, - deleteMultipleTags: ({count, tagListName}: UpdatedPolicyTagParams) => `usunięto tagi „${count}” z listy „${tagListName}”`, - updateTag: ({tagListName, newValue, tagName, updatedField, oldValue}: UpdatedPolicyTagFieldParams) => { + addTag: (tagListName: string, tagName?: string) => `dodano znacznik „${tagName}” do listy „${tagListName}”`, + updateTagName: (tagListName: string, newName: string, oldName: string) => `zaktualizowano listę znaczników „${tagListName}”, zmieniając znacznik „${oldName}” na „${newName}”`, + updateTagEnabled: (tagListName: string, tagName?: string, enabled?: boolean) => `${enabled ? 'włączone' : 'Wyłączone'} tag "${tagName}" na liście "${tagListName}"`, + deleteTag: (tagListName: string, tagName?: string) => `usunięto tag „${tagName}” z listy „${tagListName}”`, + deleteMultipleTags: (count?: string, tagListName?: string) => `usunięto tagi „${count}” z listy „${tagListName}”`, + updateTag: (tagListName: string, newValue: string, tagName: string, updatedField: string, oldValue?: string) => { if (oldValue) { return `zaktualizowano znacznik „${tagName}” na liście „${tagListName}”, zmieniając ${updatedField} na „${newValue}” (wcześniej „${oldValue}”)`; } @@ -6691,7 +6672,7 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i }, deleteCustomUnitRate: ({customUnitName, rateName}: AddOrDeletePolicyCustomUnitRateParams) => `usunięto stawkę „${rateName}” jednostki „${customUnitName}”`, addedReportField: ({fieldType, fieldName}: AddedOrDeletedPolicyReportFieldParams) => `dodano pole raportu ${fieldType} „${fieldName}”`, - updateReportFieldDefaultValue: ({defaultValue, fieldName}: UpdatedPolicyReportFieldDefaultValueParams) => `ustaw domyślną wartość pola raportu „${fieldName}” na „${defaultValue}”`, + updateReportFieldDefaultValue: (defaultValue?: string, fieldName?: string) => `ustaw domyślną wartość pola raportu „${fieldName}” na „${defaultValue}”`, addedReportFieldOption: (fieldName: string, optionName: string) => `dodano opcję „${optionName}” do pola raportu „${fieldName}”`, removedReportFieldOption: (fieldName: string, optionName: string) => `usunął opcję „${optionName}” z pola raportu „${fieldName}”`, updateReportFieldOptionDisabled: (fieldName: string, optionName: string, optionEnabled: boolean) => @@ -6703,7 +6684,7 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i return `${allEnabled ? 'włączone' : 'wyłączone'} opcję „${optionName}” dla pola raportu „${fieldName}”, ustawiając wszystkie opcje jako ${allEnabled ? 'włączone' : 'wyłączone'}`; }, deleteReportField: ({fieldType, fieldName}: {fieldType: string; fieldName?: string}) => `usunięto pole raportu ${fieldType} „${fieldName}”`, - preventSelfApproval: ({oldValue, newValue}: UpdatedPolicyPreventSelfApprovalParams) => + preventSelfApproval: (oldValue: string, newValue: string) => `zaktualizowano „Zapobiegaj samodzielnemu zatwierdzaniu” na „${newValue === 'true' ? 'Włączone' : 'Wyłączone'}” (wcześniej „${oldValue === 'true' ? 'Włączone' : 'Wyłączone'}”)`, updateMonthlyOffset: (oldValue: string, newValue: string) => { if (!oldValue) { @@ -6849,9 +6830,9 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i `zmienił domyślną stawkę podatku waluty w przestrzeni roboczej na „${newName}" (wcześniej „${oldName}")`, updateForeignCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyForeignCurrencyDefaultTaxParams) => `zmieniono domyślną stawkę podatku dla obcej waluty na „${newName}" (wcześniej „${oldName}")`, - addTax: ({taxName}: UpdatedPolicyTaxParams) => `dodano podatek „${taxName}”`, - deleteTax: ({taxName}: UpdatedPolicyTaxParams) => `usunął(-ę) podatek „${taxName}”`, - updateTax: ({oldValue, taxName, updatedField, newValue}: UpdatedPolicyTaxParams) => { + addTax: (taxName: string) => `dodano podatek „${taxName}”`, + deleteTax: (taxName: string) => `usunął(-ę) podatek „${taxName}”`, + updateTax: (oldValue?: string | boolean | number, taxName?: string, updatedField?: string, newValue?: string | boolean | number) => { if (!updatedField) { return ''; } @@ -6884,15 +6865,15 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i removedMaxExpenseAge: (oldValue: string) => `usunięto maksymalny wiek wydatku (wcześniej „${oldValue}” dni)`, updateCategories: ({count}: UpdatedPolicyCategoriesParams) => `zaktualizowano ${count} kategorie`, updateTagList: ({tagListName}: UpdatedPolicyTagListParams) => `zaktualizowano tagi na liście „${tagListName}”`, - updateTagListRequired: ({tagListsName, isRequired}: UpdatedPolicyTagListRequiredParams) => `zmieniono listę tagów „${tagListsName}” na ${isRequired ? 'wymagane' : 'niewymagane'}`, + updateTagListRequired: (tagListsName: string, isRequired: boolean) => `zmieniono listę tagów „${tagListsName}” na ${isRequired ? 'wymagane' : 'niewymagane'}`, importTags: 'zaimportowano tagi z arkusza kalkulacyjnego', deletedAllTags: 'usunął(-ę) wszystkie tagi', updateCustomUnitDefaultCategory: ({customUnitName, newValue, oldValue}: UpdatePolicyCustomUnitDefaultCategoryParams) => `zmienił(a) domyślną kategorię jednostki ${customUnitName} na „${newValue}” ${oldValue ? `(uprzednio „${oldValue}”)` : ''}`, importCustomUnitRates: ({customUnitName}: ImportPolicyCustomUnitRatesParams) => `zaimportowano stawki dla niestandardowej jednostki „${customUnitName}”`, - updateCustomUnitSubRate: ({customUnitName, customUnitRateName, customUnitSubRateName, oldValue, newValue, updatedField}: UpdatedPolicyCustomUnitSubRateParams) => + updateCustomUnitSubRate: (customUnitName: string, customUnitRateName: string, customUnitSubRateName: string, oldValue: string, newValue: string, updatedField: string) => `zmieniono stawkę „${customUnitName}” stawka „${customUnitRateName}” stawka podrzędna „${customUnitSubRateName}” ${updatedField} na „${newValue}” (wcześniej „${oldValue}”)`, - removedCustomUnitSubRate: ({customUnitName, customUnitRateName, removedSubRateName}: RemovedPolicyCustomUnitSubRateParams) => + removedCustomUnitSubRate: (customUnitName: string, customUnitRateName: string, removedSubRateName: string) => `usunięto stawkę „${customUnitName}” o nazwie „${customUnitRateName}” i podstawkę „${removedSubRateName}”`, addBudget: ({frequency, entityName, entityType, shared, individual, notificationThreshold}: AddBudgetParams) => { const thresholdSuffix = typeof notificationThreshold === 'number' ? `z progiem powiadomień wynoszącym „${notificationThreshold}%”` : ''; @@ -6966,7 +6947,7 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i updatedTimeEnabled: ({enabled}: UpdatedPolicyTimeEnabledParams) => { return `${enabled ? 'włączone' : 'wyłączone'} śledzenie czasu`; }, - updatedTimeRate: ({newRate, oldRate}: UpdatedPolicyTimeRateParams) => { + updatedTimeRate: (newRate?: string, oldRate?: string) => { return `zmieniono stawkę godzinową na „${newRate}” (wcześniej „${oldRate}”)`; }, addedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `dodano „${prohibitedExpense}” do zabronionych wydatków`, @@ -7759,7 +7740,7 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i overLimitAttendee: ({formattedLimit}: ViolationsOverLimitParams) => `Kwota powyżej limitu ${formattedLimit}/osobę`, perDayLimit: ({formattedLimit}: ViolationsPerDayLimitParams) => `Kwota przekraczająca dzienny limit kategorii ${formattedLimit}/osobę`, receiptNotSmartScanned: 'Ręcznie dodano paragon i szczegóły wydatku.', - receiptRequired: ({formattedLimit, category}: ViolationsReceiptRequiredParams) => { + receiptRequired: (formattedLimit?: string, category?: string) => { if (formattedLimit && category) { return `Wymagany paragon powyżej limitu kategorii ${formattedLimit}`; } @@ -7772,7 +7753,7 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i return 'Wymagany paragon'; }, itemizedReceiptRequired: ({formattedLimit}: {formattedLimit?: string}) => `Wymagany paragon z wyszczególnieniem pozycji${formattedLimit ? `powyżej ${formattedLimit}` : ''}`, - prohibitedExpense: ({prohibitedExpenseTypes}: ViolationsProhibitedExpenseParams) => { + prohibitedExpense: (prohibitedExpenseTypes: string | string[]) => { const preMessage = 'Zabroniony wydatek:'; const getProhibitedExpenseTypeText = (prohibitedExpenseType: string) => { switch (prohibitedExpenseType) { @@ -7803,7 +7784,17 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i }, customRules: ({message}: ViolationsCustomRulesParams) => message, reviewRequired: 'Wymagana weryfikacja', - rter: ({brokenBankConnection, isAdmin, isTransactionOlderThan7Days, member, rterType, companyCardPageURL, connectionLink, isPersonalCard, isMarkAsCash}: ViolationsRterParams) => { + rter: ( + brokenBankConnection: boolean, + isAdmin: boolean, + isTransactionOlderThan7Days: boolean, + member?: string, + rterType?: string, + companyCardPageURL?: string, + connectionLink?: string, + isPersonalCard?: boolean, + isMarkAsCash?: boolean, + ) => { if (rterType === CONST.RTER_VIOLATION_TYPES.BROKEN_CARD_CONNECTION_530) { return 'Nie można automatycznie dopasować paragonu z powodu zerwanego połączenia z bankiem.'; } @@ -7832,10 +7823,10 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i markAsCashToIgnore: 'Oznacz jako gotówkę, aby zignorować i poprosić o płatność.', smartscanFailed: ({canEdit = true}) => `Skanowanie paragonu nie powiodło się.${canEdit ? 'Wpisz szczegóły ręcznie.' : ''}`, receiptGeneratedWithAI: 'Potencjalny paragon wygenerowany przez AI', - someTagLevelsRequired: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `Brak ${tagName ?? 'Tag'}`, - tagOutOfPolicy: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `${tagName ?? 'Tag'} nie jest już ważny`, + someTagLevelsRequired: (tagName?: string) => `Brak ${tagName ?? 'Tag'}`, + tagOutOfPolicy: (tagName?: string) => `${tagName ?? 'Tag'} nie jest już ważny`, taxAmountChanged: 'Kwota podatku została zmieniona', - taxOutOfPolicy: ({taxName}: ViolationsTaxOutOfPolicyParams = {}) => `${taxName ?? 'Podatek'} nie jest już prawidłowy`, + taxOutOfPolicy: (taxName?: string) => `${taxName ?? 'Podatek'} nie jest już prawidłowy`, taxRateChanged: 'Zmodyfikowano stawkę podatku', taxRequired: 'Brak stawki podatku', none: 'Brak', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index b689e5485a794..b5a09eef293a5 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -47,7 +47,6 @@ import type { PaidElsewhereParams, ParentNavigationSummaryParams, RemovedFromApprovalWorkflowParams, - RemovedPolicyCustomUnitSubRateParams, ReportArchiveReasonsClosedParams, ReportArchiveReasonsInvoiceReceiverPolicyDeletedParams, ReportArchiveReasonsMergedParams, @@ -65,21 +64,12 @@ import type { UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, - UpdatedPolicyCustomUnitSubRateParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyPreventSelfApprovalParams, UpdatedPolicyReimbursementEnabledParams, UpdatedPolicyReimburserParams, - UpdatedPolicyReportFieldDefaultValueParams, - UpdatedPolicyTagFieldParams, UpdatedPolicyTagListParams, - UpdatedPolicyTagListRequiredParams, - UpdatedPolicyTagNameParams, - UpdatedPolicyTagParams, - UpdatedPolicyTaxParams, UpdatedPolicyTimeEnabledParams, - UpdatedPolicyTimeRateParams, UpdatedTheDistanceMerchantParams, UpdatedTheRequestParams, UpdatePolicyCustomUnitDefaultCategoryParams, @@ -100,26 +90,18 @@ import type { ViolationsOverCategoryLimitParams, ViolationsOverLimitParams, ViolationsPerDayLimitParams, - ViolationsProhibitedExpenseParams, - ViolationsReceiptRequiredParams, - ViolationsRterParams, - ViolationsTagOutOfPolicyParams, - ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, WalletProgramParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, - WeSentYouMagicSignInLinkParams, WorkEmailMergingBlockedParams, WorkEmailResendCodeParams, WorkspaceLockedPlanTypeParams, - WorkspaceMemberList, WorkspaceMembersCountParams, WorkspaceOwnerWillNeedToAddOrUpdatePaymentCardParams, WorkspaceRouteParams, WorkspacesListRouteParams, WorkspaceUpgradeNoteParams, - WorkspaceYouMayJoin, YourPlanPriceParams, YourPlanPriceValueParams, ZipCodeExampleFormatParams, @@ -2634,10 +2616,10 @@ ${amount} para ${merchant} - ${date}`, getStarted: 'Começar', whatsYourName: 'Qual é o seu nome?', peopleYouMayKnow: 'Pessoas que você talvez conheça já estão aqui! Verifique seu e-mail para se juntar a elas.', - workspaceYouMayJoin: ({domain, email}: WorkspaceYouMayJoin) => `Alguém de ${domain} já criou um workspace. Insira o código mágico enviado para ${email}.`, + workspaceYouMayJoin: (domain: string, email: string) => `Alguém de ${domain} já criou um workspace. Insira o código mágico enviado para ${email}.`, joinAWorkspace: 'Participar de um workspace', listOfWorkspaces: 'Aqui está a lista de espaços de trabalho que você pode entrar. Não se preocupe, você sempre pode entrar neles mais tarde, se preferir.', - workspaceMemberList: ({employeeCount, policyOwner}: WorkspaceMemberList) => `${employeeCount} membro${employeeCount > 1 ? 's' : ''} • ${policyOwner}`, + workspaceMemberList: (employeeCount: number, policyOwner: string) => `${employeeCount} membro${employeeCount > 1 ? 's' : ''} • ${policyOwner}`, whereYouWork: 'Onde você trabalha?', errorSelection: 'Selecione uma opção para continuar', purpose: { @@ -3011,7 +2993,7 @@ ${ }, resendValidationForm: { linkHasBeenResent: 'Link foi reenviado', - weSentYouMagicSignInLink: ({login, loginType}: WeSentYouMagicSignInLinkParams) => `Enviei um link mágico de acesso para ${login}. Verifique seu ${loginType} para entrar.`, + weSentYouMagicSignInLink: (login: string, loginType: string) => `Enviei um link mágico de acesso para ${login}. Verifique seu ${loginType} para entrar.`, resendLink: 'Reenviar link', }, unlinkLoginForm: { @@ -6660,12 +6642,12 @@ Exija dados de despesas como recibos e descrições, defina limites e padrões e : `alterou a dica de descrição da categoria "${categoryName}" para “${newValue}” (antes “${oldValue}”)`; }, updateTagListName: (oldName: string, newName: string) => `alterou o nome da lista de tags para "${newName}" (antes "${oldName}")`, - addTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `adicionou a tag "${tagName}" à lista "${tagListName}"`, - updateTagName: ({tagListName, newName, oldName}: UpdatedPolicyTagNameParams) => `atualizou a lista de tags "${tagListName}" alterando a tag "${oldName}" para "${newName}"`, - updateTagEnabled: ({tagListName, tagName, enabled}: UpdatedPolicyTagParams) => `${enabled ? 'ativado' : 'desativado'} a tag "${tagName}" na lista "${tagListName}"`, - deleteTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `removeu a tag "${tagName}" da lista "${tagListName}"`, - deleteMultipleTags: ({count, tagListName}: UpdatedPolicyTagParams) => `removeu "${count}" tags da lista "${tagListName}"`, - updateTag: ({tagListName, newValue, tagName, updatedField, oldValue}: UpdatedPolicyTagFieldParams) => { + addTag: (tagListName: string, tagName?: string) => `adicionou a tag "${tagName}" à lista "${tagListName}"`, + updateTagName: (tagListName: string, newName: string, oldName: string) => `atualizou a lista de tags "${tagListName}" alterando a tag "${oldName}" para "${newName}"`, + updateTagEnabled: (tagListName: string, tagName?: string, enabled?: boolean) => `${enabled ? 'ativado' : 'desativado'} a tag "${tagName}" na lista "${tagListName}"`, + deleteTag: (tagListName: string, tagName?: string) => `removeu a tag "${tagName}" da lista "${tagListName}"`, + deleteMultipleTags: (count?: string, tagListName?: string) => `removeu "${count}" tags da lista "${tagListName}"`, + updateTag: (tagListName: string, newValue: string, tagName: string, updatedField: string, oldValue?: string) => { if (oldValue) { return `atualizou a tag "${tagName}" na lista "${tagListName}" alterando ${updatedField} para "${newValue}" (antes "${oldValue}")`; } @@ -6694,8 +6676,7 @@ Exija dados de despesas como recibos e descrições, defina limites e padrões e }, deleteCustomUnitRate: ({customUnitName, rateName}: AddOrDeletePolicyCustomUnitRateParams) => `removeu a taxa "${rateName}" da unidade personalizada "${customUnitName}"`, addedReportField: ({fieldType, fieldName}: AddedOrDeletedPolicyReportFieldParams) => `adicionou o campo de relatório de ${fieldType} "${fieldName}"`, - updateReportFieldDefaultValue: ({defaultValue, fieldName}: UpdatedPolicyReportFieldDefaultValueParams) => - `definir o valor padrão do campo de relatório "${fieldName}" como "${defaultValue}"`, + updateReportFieldDefaultValue: (defaultValue?: string, fieldName?: string) => `definir o valor padrão do campo de relatório "${fieldName}" como "${defaultValue}"`, addedReportFieldOption: (fieldName: string, optionName: string) => `adicionou a opção "${optionName}" ao campo de relatório "${fieldName}"`, removedReportFieldOption: (fieldName: string, optionName: string) => `removeu a opção "${optionName}" do campo de relatório "${fieldName}"`, updateReportFieldOptionDisabled: (fieldName: string, optionName: string, optionEnabled: boolean) => @@ -6707,7 +6688,7 @@ Exija dados de despesas como recibos e descrições, defina limites e padrões e return `${allEnabled ? 'ativado' : 'desativado'} a opção "${optionName}" para o campo de relatório "${fieldName}", tornando todas as opções ${allEnabled ? 'ativado' : 'desativado'}`; }, deleteReportField: ({fieldType, fieldName}: {fieldType: string; fieldName?: string}) => `removeu o campo de relatório ${fieldType} "${fieldName}"`, - preventSelfApproval: ({oldValue, newValue}: UpdatedPolicyPreventSelfApprovalParams) => + preventSelfApproval: (oldValue: string, newValue: string) => `atualizou "Impedir autoaprovação" para "${newValue === 'true' ? 'Ativado' : 'Desativado'}" (anteriormente "${oldValue === 'true' ? 'Ativado' : 'Desativado'}")`, updateMonthlyOffset: (oldValue: string, newValue: string) => { if (!oldValue) { @@ -6851,9 +6832,9 @@ Exija dados de despesas como recibos e descrições, defina limites e padrões e `alterou a taxa de imposto padrão da moeda do workspace para "${newName}" (anteriormente "${oldName}")`, updateForeignCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyForeignCurrencyDefaultTaxParams) => `alterou a alíquota de imposto padrão em moeda estrangeira para "${newName}" (anteriormente "${oldName}")`, - addTax: ({taxName}: UpdatedPolicyTaxParams) => `adicionou o imposto "${taxName}"`, - deleteTax: ({taxName}: UpdatedPolicyTaxParams) => `removeu o imposto "${taxName}"`, - updateTax: ({oldValue, taxName, updatedField, newValue}: UpdatedPolicyTaxParams) => { + addTax: (taxName: string) => `adicionou o imposto "${taxName}"`, + deleteTax: (taxName: string) => `removeu o imposto "${taxName}"`, + updateTax: (oldValue?: string | boolean | number, taxName?: string, updatedField?: string, newValue?: string | boolean | number) => { if (!updatedField) { return ''; } @@ -6886,16 +6867,15 @@ Exija dados de despesas como recibos e descrições, defina limites e padrões e removedMaxExpenseAge: (oldValue: string) => `removeu a idade máxima de despesa (anteriormente "${oldValue}" dias)`, updateCategories: ({count}: UpdatedPolicyCategoriesParams) => `atualizou ${count} categorias`, updateTagList: ({tagListName}: UpdatedPolicyTagListParams) => `atualizou as tags na lista "${tagListName}"`, - updateTagListRequired: ({tagListsName, isRequired}: UpdatedPolicyTagListRequiredParams) => - `alterou a lista de tags "${tagListsName}" para ${isRequired ? 'obrigatório' : 'não obrigatório'}`, + updateTagListRequired: (tagListsName: string, isRequired: boolean) => `alterou a lista de tags "${tagListsName}" para ${isRequired ? 'obrigatório' : 'não obrigatório'}`, importTags: 'importou tags de uma planilha', deletedAllTags: 'excluiu todas as tags', updateCustomUnitDefaultCategory: ({customUnitName, newValue, oldValue}: UpdatePolicyCustomUnitDefaultCategoryParams) => `alterou a categoria padrão de ${customUnitName} para "${newValue}" ${oldValue ? `(antes "${oldValue}")` : ''}`, importCustomUnitRates: ({customUnitName}: ImportPolicyCustomUnitRatesParams) => `taxas importadas para a unidade personalizada "${customUnitName}"`, - updateCustomUnitSubRate: ({customUnitName, customUnitRateName, customUnitSubRateName, oldValue, newValue, updatedField}: UpdatedPolicyCustomUnitSubRateParams) => + updateCustomUnitSubRate: (customUnitName: string, customUnitRateName: string, customUnitSubRateName: string, oldValue: string, newValue: string, updatedField: string) => `alterou a tarifa "${customUnitName}" taxa "${customUnitRateName}" sub‑taxa "${customUnitSubRateName}" ${updatedField} para "${newValue}" (antes "${oldValue}")`, - removedCustomUnitSubRate: ({customUnitName, customUnitRateName, removedSubRateName}: RemovedPolicyCustomUnitSubRateParams) => + removedCustomUnitSubRate: (customUnitName: string, customUnitRateName: string, removedSubRateName: string) => `removeu a tarifa "${customUnitName}" tarifa "${customUnitRateName}" subtarifa "${removedSubRateName}"`, addBudget: ({frequency, entityName, entityType, shared, individual, notificationThreshold}: AddBudgetParams) => { const thresholdSuffix = typeof notificationThreshold === 'number' ? `com limite de notificação de “${notificationThreshold}%”` : ''; @@ -6969,7 +6949,7 @@ Exija dados de despesas como recibos e descrições, defina limites e padrões e updatedTimeEnabled: ({enabled}: UpdatedPolicyTimeEnabledParams) => { return `${enabled ? 'ativado' : 'desativado'} controle de tempo`; }, - updatedTimeRate: ({newRate, oldRate}: UpdatedPolicyTimeRateParams) => { + updatedTimeRate: (newRate?: string, oldRate?: string) => { return `alterou a tarifa horária para "${newRate}" (antes "${oldRate}")`; }, addedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `adicionou "${prohibitedExpense}" às despesas proibidas`, @@ -7764,7 +7744,7 @@ Exija dados de despesas como recibos e descrições, defina limites e padrões e overLimitAttendee: ({formattedLimit}: ViolationsOverLimitParams) => `Valor acima do limite de ${formattedLimit}/pessoa`, perDayLimit: ({formattedLimit}: ViolationsPerDayLimitParams) => `Valor acima do limite diário de categoria de ${formattedLimit}/pessoa`, receiptNotSmartScanned: 'Recibo e detalhes da despesa adicionados manualmente.', - receiptRequired: ({formattedLimit, category}: ViolationsReceiptRequiredParams) => { + receiptRequired: (formattedLimit?: string, category?: string) => { if (formattedLimit && category) { return `Recibo obrigatório acima do limite de categoria de ${formattedLimit}`; } @@ -7777,7 +7757,7 @@ Exija dados de despesas como recibos e descrições, defina limites e padrões e return 'Recibo obrigatório'; }, itemizedReceiptRequired: ({formattedLimit}: {formattedLimit?: string}) => `Recibo detalhado obrigatório${formattedLimit ? `acima de ${formattedLimit}` : ''}`, - prohibitedExpense: ({prohibitedExpenseTypes}: ViolationsProhibitedExpenseParams) => { + prohibitedExpense: (prohibitedExpenseTypes: string | string[]) => { const preMessage = 'Despesa proibida:'; const getProhibitedExpenseTypeText = (prohibitedExpenseType: string) => { switch (prohibitedExpenseType) { @@ -7808,7 +7788,17 @@ Exija dados de despesas como recibos e descrições, defina limites e padrões e }, customRules: ({message}: ViolationsCustomRulesParams) => message, reviewRequired: 'Revisão necessária', - rter: ({brokenBankConnection, isAdmin, isTransactionOlderThan7Days, member, rterType, companyCardPageURL, connectionLink, isPersonalCard, isMarkAsCash}: ViolationsRterParams) => { + rter: ( + brokenBankConnection: boolean, + isAdmin: boolean, + isTransactionOlderThan7Days: boolean, + member?: string, + rterType?: string, + companyCardPageURL?: string, + connectionLink?: string, + isPersonalCard?: boolean, + isMarkAsCash?: boolean, + ) => { if (rterType === CONST.RTER_VIOLATION_TYPES.BROKEN_CARD_CONNECTION_530) { return 'Não é possível conciliar automaticamente o recibo devido a uma conexão bancária com erro.'; } @@ -7837,10 +7827,10 @@ Exija dados de despesas como recibos e descrições, defina limites e padrões e markAsCashToIgnore: 'Marcar como dinheiro para ignorar e solicitar pagamento.', smartscanFailed: ({canEdit = true}) => `A digitalização do recibo falhou.${canEdit ? 'Insira os detalhes manualmente.' : ''}`, receiptGeneratedWithAI: 'Recibo possivelmente gerado por IA', - someTagLevelsRequired: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `Faltando ${tagName ?? 'Etiqueta'}`, - tagOutOfPolicy: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `${tagName ?? 'Etiqueta'} não é mais válido`, + someTagLevelsRequired: (tagName?: string) => `Faltando ${tagName ?? 'Etiqueta'}`, + tagOutOfPolicy: (tagName?: string) => `${tagName ?? 'Etiqueta'} não é mais válido`, taxAmountChanged: 'O valor do imposto foi modificado', - taxOutOfPolicy: ({taxName}: ViolationsTaxOutOfPolicyParams = {}) => `${taxName ?? 'Imposto'} não é mais válido`, + taxOutOfPolicy: (taxName?: string) => `${taxName ?? 'Imposto'} não é mais válido`, taxRateChanged: 'A alíquota de imposto foi modificada', taxRequired: 'Alíquota de imposto ausente', none: 'Nenhum', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 34cea22d8ea65..b50d3d3175959 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -47,7 +47,6 @@ import type { PaidElsewhereParams, ParentNavigationSummaryParams, RemovedFromApprovalWorkflowParams, - RemovedPolicyCustomUnitSubRateParams, ReportArchiveReasonsClosedParams, ReportArchiveReasonsInvoiceReceiverPolicyDeletedParams, ReportArchiveReasonsMergedParams, @@ -65,21 +64,12 @@ import type { UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, - UpdatedPolicyCustomUnitSubRateParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyPreventSelfApprovalParams, UpdatedPolicyReimbursementEnabledParams, UpdatedPolicyReimburserParams, - UpdatedPolicyReportFieldDefaultValueParams, - UpdatedPolicyTagFieldParams, UpdatedPolicyTagListParams, - UpdatedPolicyTagListRequiredParams, - UpdatedPolicyTagNameParams, - UpdatedPolicyTagParams, - UpdatedPolicyTaxParams, UpdatedPolicyTimeEnabledParams, - UpdatedPolicyTimeRateParams, UpdatedTheDistanceMerchantParams, UpdatedTheRequestParams, UpdatePolicyCustomUnitDefaultCategoryParams, @@ -100,26 +90,18 @@ import type { ViolationsOverCategoryLimitParams, ViolationsOverLimitParams, ViolationsPerDayLimitParams, - ViolationsProhibitedExpenseParams, - ViolationsReceiptRequiredParams, - ViolationsRterParams, - ViolationsTagOutOfPolicyParams, - ViolationsTaxOutOfPolicyParams, WaitingOnBankAccountParams, WalletProgramParams, WelcomeEnterMagicCodeParams, WelcomeToRoomParams, - WeSentYouMagicSignInLinkParams, WorkEmailMergingBlockedParams, WorkEmailResendCodeParams, WorkspaceLockedPlanTypeParams, - WorkspaceMemberList, WorkspaceMembersCountParams, WorkspaceOwnerWillNeedToAddOrUpdatePaymentCardParams, WorkspaceRouteParams, WorkspacesListRouteParams, WorkspaceUpgradeNoteParams, - WorkspaceYouMayJoin, YourPlanPriceParams, YourPlanPriceValueParams, ZipCodeExampleFormatParams, @@ -2587,10 +2569,10 @@ ${amount},商户:${merchant} - 日期:${date}`, getStarted: '开始使用', whatsYourName: '你叫什么名字?', peopleYouMayKnow: '你可能认识的人已经在这里了!验证你的邮箱以加入他们。', - workspaceYouMayJoin: ({domain, email}: WorkspaceYouMayJoin) => `${domain} 中的某位成员已经创建了一个工作区。请输入发送到 ${email} 的魔法验证码。`, + workspaceYouMayJoin: (domain: string, email: string) => `${domain} 中的某位成员已经创建了一个工作区。请输入发送到 ${email} 的魔法验证码。`, joinAWorkspace: '加入工作区', listOfWorkspaces: '以下是你可以加入的工作空间列表。别担心,如果你愿意,你随时都可以稍后再加入。', - workspaceMemberList: ({employeeCount, policyOwner}: WorkspaceMemberList) => `${employeeCount} 位成员${employeeCount > 1 ? '秒' : ''} • ${policyOwner}`, + workspaceMemberList: (employeeCount: number, policyOwner: string) => `${employeeCount} 位成员${employeeCount > 1 ? '秒' : ''} • ${policyOwner}`, whereYouWork: '你在哪里工作?', errorSelection: '选择一个选项以继续', purpose: { @@ -2962,7 +2944,7 @@ ${ }, resendValidationForm: { linkHasBeenResent: '链接已重新发送', - weSentYouMagicSignInLink: ({login, loginType}: WeSentYouMagicSignInLinkParams) => `我已向 ${login} 发送了魔法登录链接。请检查你的 ${loginType} 以登录。`, + weSentYouMagicSignInLink: (login: string, loginType: string) => `我已向 ${login} 发送了魔法登录链接。请检查你的 ${loginType} 以登录。`, resendLink: '重新发送链接', }, unlinkLoginForm: { @@ -6515,12 +6497,12 @@ ${reportName} return !oldValue ? `已为类别“${categoryName}”添加描述提示“${newValue}”` : `已将“${categoryName}”类别的描述提示更改为“${newValue}”(之前为“${oldValue}”)`; }, updateTagListName: (oldName: string, newName: string) => `已将标签列表名称更改为“${newName}”(原为“${oldName}”)`, - addTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `已将标签“${tagName}”添加到列表“${tagListName}”`, - updateTagName: ({tagListName, newName, oldName}: UpdatedPolicyTagNameParams) => `通过将标签“${oldName}”更改为“${newName}”更新了标签列表“${tagListName}”`, - updateTagEnabled: ({tagListName, tagName, enabled}: UpdatedPolicyTagParams) => `${enabled ? '已启用' : '已禁用'} 列表“${tagListName}”上的标签“${tagName}”`, - deleteTag: ({tagListName, tagName}: UpdatedPolicyTagParams) => `已从列表“${tagListName}”中移除标签“${tagName}”`, - deleteMultipleTags: ({count, tagListName}: UpdatedPolicyTagParams) => `已从列表“${tagListName}”中移除“${count}”个标签`, - updateTag: ({tagListName, newValue, tagName, updatedField, oldValue}: UpdatedPolicyTagFieldParams) => { + addTag: (tagListName: string, tagName?: string) => `已将标签“${tagName}”添加到列表“${tagListName}”`, + updateTagName: (tagListName: string, newName: string, oldName: string) => `通过将标签“${oldName}”更改为“${newName}”更新了标签列表“${tagListName}”`, + updateTagEnabled: (tagListName: string, tagName?: string, enabled?: boolean) => `${enabled ? '已启用' : '已禁用'} 列表“${tagListName}”上的标签“${tagName}”`, + deleteTag: (tagListName: string, tagName?: string) => `已从列表“${tagListName}”中移除标签“${tagName}”`, + deleteMultipleTags: (count?: string, tagListName?: string) => `已从列表“${tagListName}”中移除“${count}”个标签`, + updateTag: (tagListName: string, newValue: string, tagName: string, updatedField: string, oldValue?: string) => { if (oldValue) { return `通过将${updatedField}从“${oldValue}”更改为“${newValue}”,更新了列表“${tagListName}”中的标签“${tagName}”`; } @@ -6549,7 +6531,7 @@ ${reportName} }, deleteCustomUnitRate: ({customUnitName, rateName}: AddOrDeletePolicyCustomUnitRateParams) => `已删除“${customUnitName}”费率“${rateName}”`, addedReportField: ({fieldType, fieldName}: AddedOrDeletedPolicyReportFieldParams) => `已添加${fieldType}报表字段“${fieldName}”`, - updateReportFieldDefaultValue: ({defaultValue, fieldName}: UpdatedPolicyReportFieldDefaultValueParams) => `将报表字段“${fieldName}”的默认值设置为“${defaultValue}”`, + updateReportFieldDefaultValue: (defaultValue?: string, fieldName?: string) => `将报表字段“${fieldName}”的默认值设置为“${defaultValue}”`, addedReportFieldOption: (fieldName: string, optionName: string) => `已将选项“${optionName}”添加到报表字段“${fieldName}”`, removedReportFieldOption: (fieldName: string, optionName: string) => `已从报表字段“${fieldName}”中移除选项“${optionName}”`, updateReportFieldOptionDisabled: (fieldName: string, optionName: string, optionEnabled: boolean) => @@ -6561,7 +6543,7 @@ ${reportName} return `将报表字段“${fieldName}”的选项“${optionName}”设置为${allEnabled ? '已启用' : '已禁用'},使所有选项均为${allEnabled ? '已启用' : '已禁用'}`; }, deleteReportField: ({fieldType, fieldName}: {fieldType: string; fieldName?: string}) => `已移除 ${fieldType} 报告字段“${fieldName}”`, - preventSelfApproval: ({oldValue, newValue}: UpdatedPolicyPreventSelfApprovalParams) => + preventSelfApproval: (oldValue: string, newValue: string) => `已将“禁止自我审批”更新为“${newValue === 'true' ? '已启用' : '已禁用'}”(之前为“${oldValue === 'true' ? '已启用' : '已禁用'}”)`, updateMonthlyOffset: (oldValue: string, newValue: string) => { if (!oldValue) { @@ -6695,9 +6677,9 @@ ${reportName} updateCustomTaxName: ({oldName, newName}: UpdatedPolicyCustomTaxNameParams) => `将自定义税种名称更改为"${newName}"(之前为"${oldName}")`, updateCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyCurrencyDefaultTaxParams) => `将工作区货币的默认税率更改为"${newName}"(之前为"${oldName}")`, updateForeignCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyForeignCurrencyDefaultTaxParams) => `将外币默认税率更改为"${newName}"(之前为"${oldName}")`, - addTax: ({taxName}: UpdatedPolicyTaxParams) => `已添加税费"${taxName}"`, - deleteTax: ({taxName}: UpdatedPolicyTaxParams) => `已移除税费“${taxName}”`, - updateTax: ({oldValue, taxName, updatedField, newValue}: UpdatedPolicyTaxParams) => { + addTax: (taxName: string) => `已添加税费"${taxName}"`, + deleteTax: (taxName: string) => `已移除税费“${taxName}”`, + updateTax: (oldValue?: string | boolean | number, taxName?: string, updatedField?: string, newValue?: string | boolean | number) => { if (!updatedField) { return ''; } @@ -6730,15 +6712,15 @@ ${reportName} removedMaxExpenseAge: (oldValue: string) => `已移除费用最长期限(之前为“${oldValue}”天)`, updateCategories: ({count}: UpdatedPolicyCategoriesParams) => `已更新 ${count} 个类别`, updateTagList: ({tagListName}: UpdatedPolicyTagListParams) => `已更新列表“${tagListName}”上的标签`, - updateTagListRequired: ({tagListsName, isRequired}: UpdatedPolicyTagListRequiredParams) => `将标签列表“${tagListsName}”更改为 ${isRequired ? '必填' : '非必填'}`, + updateTagListRequired: (tagListsName: string, isRequired: boolean) => `将标签列表“${tagListsName}”更改为 ${isRequired ? '必填' : '非必填'}`, importTags: '已从电子表格导入标签', deletedAllTags: '已删除所有标签', updateCustomUnitDefaultCategory: ({customUnitName, newValue, oldValue}: UpdatePolicyCustomUnitDefaultCategoryParams) => `已将${customUnitName}的默认类别更改为“${newValue}” ${oldValue ? `(原为“${oldValue}”)` : ''}`, importCustomUnitRates: ({customUnitName}: ImportPolicyCustomUnitRatesParams) => `已导入自定义单位“${customUnitName}”的费率`, - updateCustomUnitSubRate: ({customUnitName, customUnitRateName, customUnitSubRateName, oldValue, newValue, updatedField}: UpdatedPolicyCustomUnitSubRateParams) => + updateCustomUnitSubRate: (customUnitName: string, customUnitRateName: string, customUnitSubRateName: string, oldValue: string, newValue: string, updatedField: string) => `已将“${customUnitName}”费率“${customUnitRateName}”子费率“${customUnitSubRateName}”的${updatedField}修改为“${newValue}”(之前为“${oldValue}”)`, - removedCustomUnitSubRate: ({customUnitName, customUnitRateName, removedSubRateName}: RemovedPolicyCustomUnitSubRateParams) => + removedCustomUnitSubRate: (customUnitName: string, customUnitRateName: string, removedSubRateName: string) => `已移除“${customUnitName}”费率“${customUnitRateName}”子费率“${removedSubRateName}”`, addBudget: ({frequency, entityName, entityType, shared, individual, notificationThreshold}: AddBudgetParams) => { const thresholdSuffix = typeof notificationThreshold === 'number' ? `,通知阈值为“${notificationThreshold}%”` : ''; @@ -6812,7 +6794,7 @@ ${reportName} updatedTimeEnabled: ({enabled}: UpdatedPolicyTimeEnabledParams) => { return `${enabled ? '已启用' : '已禁用'} 时间追踪`; }, - updatedTimeRate: ({newRate, oldRate}: UpdatedPolicyTimeRateParams) => { + updatedTimeRate: (newRate?: string, oldRate?: string) => { return `将时薪更改为“${newRate}”(之前为“${oldRate}”)`; }, addedProhibitedExpense: ({prohibitedExpense}: {prohibitedExpense: string}) => `已将“${prohibitedExpense}”添加到禁止报销的费用中`, @@ -7585,7 +7567,7 @@ ${reportName} overLimitAttendee: ({formattedLimit}: ViolationsOverLimitParams) => `超出每人限额 ${formattedLimit} 的金额`, perDayLimit: ({formattedLimit}: ViolationsPerDayLimitParams) => `金额超过每日 ${formattedLimit}/人类别限额`, receiptNotSmartScanned: '已手动添加收据和报销详情。', - receiptRequired: ({formattedLimit, category}: ViolationsReceiptRequiredParams) => { + receiptRequired: (formattedLimit?: string, category?: string) => { if (formattedLimit && category) { return `超过${formattedLimit}类别限额需提供收据`; } @@ -7598,7 +7580,7 @@ ${reportName} return '需要收据'; }, itemizedReceiptRequired: ({formattedLimit}: {formattedLimit?: string}) => `需要逐项明细收据${formattedLimit ? `超过 ${formattedLimit}` : ''}`, - prohibitedExpense: ({prohibitedExpenseTypes}: ViolationsProhibitedExpenseParams) => { + prohibitedExpense: (prohibitedExpenseTypes: string | string[]) => { const preMessage = '禁止报销的费用:'; const getProhibitedExpenseTypeText = (prohibitedExpenseType: string) => { switch (prohibitedExpenseType) { @@ -7629,7 +7611,17 @@ ${reportName} }, customRules: ({message}: ViolationsCustomRulesParams) => message, reviewRequired: '需要审核', - rter: ({brokenBankConnection, isAdmin, isTransactionOlderThan7Days, member, rterType, companyCardPageURL, connectionLink, isPersonalCard, isMarkAsCash}: ViolationsRterParams) => { + rter: ( + brokenBankConnection: boolean, + isAdmin: boolean, + isTransactionOlderThan7Days: boolean, + member?: string, + rterType?: string, + companyCardPageURL?: string, + connectionLink?: string, + isPersonalCard?: boolean, + isMarkAsCash?: boolean, + ) => { if (rterType === CONST.RTER_VIOLATION_TYPES.BROKEN_CARD_CONNECTION_530) { return '由于银行连接中断,无法自动匹配收据。'; } @@ -7656,10 +7648,10 @@ ${reportName} markAsCashToIgnore: '标记为现金以忽略并请求付款。', smartscanFailed: ({canEdit = true}) => `收据扫描失败。${canEdit ? '手动输入详细信息。' : ''}`, receiptGeneratedWithAI: '可能由 AI 生成的收据', - someTagLevelsRequired: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `缺少 ${tagName ?? '标签'}`, - tagOutOfPolicy: ({tagName}: ViolationsTagOutOfPolicyParams = {}) => `${tagName ?? '标签'} 不再有效`, + someTagLevelsRequired: (tagName?: string) => `缺少 ${tagName ?? '标签'}`, + tagOutOfPolicy: (tagName?: string) => `${tagName ?? '标签'} 不再有效`, taxAmountChanged: '税额已被修改', - taxOutOfPolicy: ({taxName}: ViolationsTaxOutOfPolicyParams = {}) => `${taxName ?? '税'} 不再有效`, + taxOutOfPolicy: (taxName?: string) => `${taxName ?? '税'} 不再有效`, taxRateChanged: '税率已被修改', taxRequired: '缺少税率', none: '无', diff --git a/src/libs/ReportActionsUtils.ts b/src/libs/ReportActionsUtils.ts index 4c9c6cd8b5791..0e0e441d50acf 100644 --- a/src/libs/ReportActionsUtils.ts +++ b/src/libs/ReportActionsUtils.ts @@ -2752,20 +2752,15 @@ function getWorkspaceTaxUpdateMessage(translate: LocalizedTranslate, action: Rep typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' ? value : undefined; if (action.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.ADD_TAX && taxName) { - return translate('workspaceActions.addTax', {taxName}); + return translate('workspaceActions.addTax', taxName); } if (action.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.DELETE_TAX && taxName) { - return translate('workspaceActions.deleteTax', {taxName}); + return translate('workspaceActions.deleteTax', taxName); } if (action.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_TAX && taxName) { - return translate('workspaceActions.updateTax', { - taxName, - updatedField, - oldValue: normalizeTaxValue(oldValue), - newValue: normalizeTaxValue(newValue), - }); + return translate('workspaceActions.updateTax', normalizeTaxValue(oldValue), taxName, updatedField, normalizeTaxValue(newValue)); } return getReportActionText(action); @@ -2806,41 +2801,24 @@ function getWorkspaceTagUpdateMessage(translate: LocalizedTranslate, action: Rep getOriginalMessage(action as ReportAction) ?? {}; if (action?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.ADD_TAG && tagListName && tagName) { - return translate('workspaceActions.addTag', { - tagListName, - tagName, - }); + return translate('workspaceActions.addTag', tagListName, tagName); } if (action?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.DELETE_TAG && tagListName && tagName) { - return translate('workspaceActions.deleteTag', { - tagListName, - tagName, - }); + return translate('workspaceActions.deleteTag', tagListName, tagName); } if (action?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.DELETE_MULTIPLE_TAGS && count && tagListName) { const formattedCount = typeof count === 'number' ? count.toString() : count; - return translate('workspaceActions.deleteMultipleTags', { - count: formattedCount, - tagListName, - }); + return translate('workspaceActions.deleteMultipleTags', formattedCount, tagListName); } if (action?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_TAG_ENABLED && tagListName && tagName) { - return translate('workspaceActions.updateTagEnabled', { - tagListName, - tagName, - enabled, - }); + return translate('workspaceActions.updateTagEnabled', tagListName, tagName, enabled); } if (action?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_TAG_NAME && tagListName && newName && oldName) { - return translate('workspaceActions.updateTagName', { - tagListName, - newName, - oldName, - }); + return translate('workspaceActions.updateTagName', tagListName, newName, oldName); } if ( @@ -2851,13 +2829,7 @@ function getWorkspaceTagUpdateMessage(translate: LocalizedTranslate, action: Rep tagName && updatedField ) { - return translate('workspaceActions.updateTag', { - tagListName, - oldValue, - newValue, - tagName, - updatedField, - }); + return translate('workspaceActions.updateTag', tagListName, newValue, tagName, updatedField, oldValue); } return getReportActionText(action); @@ -2884,10 +2856,7 @@ function getTagListUpdatedMessage(translate: LocalizedTranslate, action: ReportA function getTagListUpdatedRequiredMessage(translate: LocalizedTranslate, action: ReportAction): string { const {tagListsName, isRequired} = getOriginalMessage(action as ReportAction) ?? {}; if (tagListsName) { - return translate('workspaceActions.updateTagListRequired', { - tagListsName, - isRequired: !!isRequired, - }); + return translate('workspaceActions.updateTagListRequired', tagListsName, !!isRequired); } return getReportActionText(action); } @@ -2984,14 +2953,7 @@ function getWorkspaceCustomUnitSubRateUpdatedMessage(translate: LocalizedTransla const {customUnitName, customUnitRateName, oldValue, newValue, updatedField, customUnitSubRateName} = getOriginalMessage(action as ReportAction) ?? {}; if (customUnitName && customUnitRateName && customUnitSubRateName && updatedField && typeof oldValue === 'string' && typeof newValue === 'string') { - return translate('workspaceActions.updateCustomUnitSubRate', { - customUnitName, - customUnitRateName, - customUnitSubRateName, - oldValue, - newValue, - updatedField, - }); + return translate('workspaceActions.updateCustomUnitSubRate', customUnitName, customUnitRateName, customUnitSubRateName, oldValue, newValue, updatedField); } return getReportActionText(action); } @@ -3000,11 +2962,7 @@ function getWorkspaceCustomUnitSubRateDeletedMessage(translate: LocalizedTransla const {customUnitName, customUnitRateName, removedSubRateName} = getOriginalMessage(action as ReportAction) ?? {}; if (customUnitName && customUnitRateName && removedSubRateName) { - return translate('workspaceActions.removedCustomUnitSubRate', { - customUnitName, - customUnitRateName, - removedSubRateName, - }); + return translate('workspaceActions.removedCustomUnitSubRate', customUnitName, customUnitRateName, removedSubRateName); } return getReportActionText(action); } @@ -3024,10 +2982,7 @@ function getWorkspaceReportFieldUpdateMessage(translate: LocalizedTranslate, act getOriginalMessage(action as ReportAction) ?? {}; if (updateType === 'updatedDefaultValue' && fieldName && defaultValue) { - return translate('workspaceActions.updateReportFieldDefaultValue', { - fieldName, - defaultValue, - }); + return translate('workspaceActions.updateReportFieldDefaultValue', defaultValue, fieldName); } if (updateType === 'addedOption' && fieldName && optionName) { @@ -3077,10 +3032,7 @@ function getWorkspaceUpdateFieldMessage(translate: LocalizedTranslate, action: R } if (updatedField && updatedField === CONST.POLICY.EXPENSE_REPORT_RULES.PREVENT_SELF_APPROVAL && typeof oldValue === 'string' && typeof newValue === 'string') { - return translate('workspaceActions.preventSelfApproval', { - oldValue, - newValue, - }); + return translate('workspaceActions.preventSelfApproval', oldValue, newValue); } if ( @@ -3754,7 +3706,7 @@ function getUpdatedTimeRateMessage(translate: LocalizedTranslate, reportAction: const oldRateText = oldRate !== undefined ? convertToDisplayString(convertToBackendAmount(oldRate), currency) : undefined; if (newRate !== undefined && oldRate !== undefined) { - return translate('workspaceActions.updatedTimeRate', {newRate: newRateText, oldRate: oldRateText}); + return translate('workspaceActions.updatedTimeRate', newRateText, oldRateText); } return getReportActionText(reportAction); diff --git a/src/libs/Violations/ViolationsUtils.ts b/src/libs/Violations/ViolationsUtils.ts index 94ffd0fb4aab9..9f5cdd7cf0995 100644 --- a/src/libs/Violations/ViolationsUtils.ts +++ b/src/libs/Violations/ViolationsUtils.ts @@ -199,10 +199,10 @@ function getTagViolationsForMultiLevelTags( */ function getTagViolationMessagesForMultiLevelTags(tagName: string | undefined, errorIndexes: number[], tags: PolicyTagLists, translate: LocaleContextProps['translate']): string { if (isEmpty(errorIndexes) || isEmpty(tags)) { - return translate('violations.someTagLevelsRequired', {tagName}); + return translate('violations.someTagLevelsRequired', tagName); } const tagsWithIndexes = keyBy(Object.values(tags), 'orderWeight'); - return errorIndexes.map((i) => translate('violations.someTagLevelsRequired', {tagName: tagsWithIndexes[i]?.name})).join('. '); + return errorIndexes.map((i) => translate('violations.someTagLevelsRequired', tagsWithIndexes[i]?.name)).join('. '); } /** @@ -720,7 +720,7 @@ const ViolationsUtils = { case 'receiptNotSmartScanned': return translate('violations.receiptNotSmartScanned'); case 'receiptRequired': - return translate('violations.receiptRequired', {formattedLimit, category: getDecodedCategoryName(category ?? '')}); + return translate('violations.receiptRequired', formattedLimit, getDecodedCategoryName(category ?? '')); case 'itemizedReceiptRequired': return translate('violations.itemizedReceiptRequired', {formattedLimit}); case 'customRules': @@ -730,7 +730,8 @@ const ViolationsUtils = { if (cardID !== undefined && cardID !== null && card) { isPersonalCardViolation = !!isPersonalCard(card); } - return translate('violations.rter', { + return translate( + 'violations.rter', brokenBankConnection, isAdmin, isTransactionOlderThan7Days, @@ -738,20 +739,20 @@ const ViolationsUtils = { rterType, companyCardPageURL, connectionLink, - isPersonalCard: isPersonalCardViolation, + isPersonalCardViolation, isMarkAsCash, - }); + ); } case 'smartscanFailed': return translate('violations.smartscanFailed', {canEdit}); case 'someTagLevelsRequired': return getTagViolationMessagesForMultiLevelTags(tagName, errorIndexes, tags ?? {}, translate); case 'tagOutOfPolicy': - return translate('violations.tagOutOfPolicy', {tagName}); + return translate('violations.tagOutOfPolicy', tagName); case 'taxAmountChanged': return translate('violations.taxAmountChanged'); case 'taxOutOfPolicy': - return translate('violations.taxOutOfPolicy', {taxName}); + return translate('violations.taxOutOfPolicy', taxName); case 'taxRateChanged': return translate('violations.taxRateChanged'); case 'taxRequired': @@ -761,9 +762,7 @@ const ViolationsUtils = { case 'companyCardRequired': return translate('violations.companyCardRequired'); case CONST.VIOLATIONS.PROHIBITED_EXPENSE: - return translate('violations.prohibitedExpense', { - prohibitedExpenseTypes: violation.data?.prohibitedExpenseRule ?? [], - }); + return translate('violations.prohibitedExpense', violation.data?.prohibitedExpenseRule ?? []); case CONST.VIOLATIONS.RECEIPT_GENERATED_WITH_AI: return translate('violations.receiptGeneratedWithAI'); case CONST.VIOLATIONS.NO_ROUTE: diff --git a/src/pages/OnboardingPrivateDomain/BaseOnboardingPrivateDomain.tsx b/src/pages/OnboardingPrivateDomain/BaseOnboardingPrivateDomain.tsx index 7ed861dcc56f0..2d72db873caa5 100644 --- a/src/pages/OnboardingPrivateDomain/BaseOnboardingPrivateDomain.tsx +++ b/src/pages/OnboardingPrivateDomain/BaseOnboardingPrivateDomain.tsx @@ -99,7 +99,7 @@ function BaseOnboardingPrivateDomain({shouldUseNativeStyles, route}: BaseOnboard > {translate('onboarding.peopleYouMayKnow')} - {translate('onboarding.workspaceYouMayJoin', {domain, email})} + {translate('onboarding.workspaceYouMayJoin', domain, email)} { diff --git a/src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx b/src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx index f8cd2432a750e..ca5be03efd54a 100644 --- a/src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx +++ b/src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx @@ -93,7 +93,7 @@ function BaseOnboardingWorkspaces({route, shouldUseNativeStyles}: BaseOnboarding const policyIDItems = Object.values(joinablePolicies ?? {}).map((policyInfo) => ({ text: policyInfo.policyName, - alternateText: translate('onboarding.workspaceMemberList', {employeeCount: policyInfo.employeeCount, policyOwner: policyInfo.policyOwner}), + alternateText: translate('onboarding.workspaceMemberList', policyInfo.employeeCount, policyInfo.policyOwner), keyForList: policyInfo.policyID, isDisabled: true, rightElement: ( diff --git a/tests/unit/ViolationUtilsTest.ts b/tests/unit/ViolationUtilsTest.ts index f5745ad45f52e..f7f159b1805f8 100644 --- a/tests/unit/ViolationUtilsTest.ts +++ b/tests/unit/ViolationUtilsTest.ts @@ -1271,21 +1271,17 @@ describe('getViolationTranslation', () => { it('should return the correct message for broken card connection violation', () => { const testPolicyID = 'test-policy-123'; const companyCardPageURL = `workspaces/${testPolicyID}/company-cards`; - const brokenCardConnectionViolationExpected = translateLocal('violations.rter', { - brokenBankConnection: true, - isAdmin: true, - rterType: CONST.RTER_VIOLATION_TYPES.BROKEN_CARD_CONNECTION, - isTransactionOlderThan7Days: false, - companyCardPageURL, - }); + const brokenCardConnectionViolationExpected = translateLocal('violations.rter', true, true, false, undefined, CONST.RTER_VIOLATION_TYPES.BROKEN_CARD_CONNECTION, companyCardPageURL); expect(ViolationsUtils.getViolationTranslation(brokenCardConnectionViolation, translateLocal)).toBe(brokenCardConnectionViolationExpected); - const brokenCardConnection530ViolationExpected = translateLocal('violations.rter', { - brokenBankConnection: true, - isAdmin: false, - rterType: CONST.RTER_VIOLATION_TYPES.BROKEN_CARD_CONNECTION_530, - isTransactionOlderThan7Days: false, + const brokenCardConnection530ViolationExpected = translateLocal( + 'violations.rter', + true, + false, + false, + undefined, + CONST.RTER_VIOLATION_TYPES.BROKEN_CARD_CONNECTION_530, companyCardPageURL, - }); + ); expect(ViolationsUtils.getViolationTranslation(brokenCardConnection530Violation, translateLocal)).toBe(brokenCardConnection530ViolationExpected); }); }); From 4dec5142729d5c5aa7b235256911466971022afc Mon Sep 17 00:00:00 2001 From: jakubstec Date: Thu, 19 Mar 2026 10:27:11 +0100 Subject: [PATCH 06/11] Resolve merge conflict --- src/languages/de.ts | 6 +++--- src/languages/en.ts | 6 +++--- src/languages/es.ts | 4 ++-- src/languages/fr.ts | 8 +++----- src/languages/it.ts | 7 +++---- src/languages/ja.ts | 6 +++--- src/languages/nl.ts | 6 +++--- src/languages/params.ts | 2 -- src/languages/pl.ts | 6 +++--- src/languages/pt-BR.ts | 6 +++--- src/languages/zh-hans.ts | 7 +++---- src/libs/ReportActionsUtils.ts | 2 +- src/pages/MultifactorAuthentication/RevokePage.tsx | 2 +- 13 files changed, 31 insertions(+), 37 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index 488e2a4fb11b2..c5c4a38c9713c 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -628,7 +628,7 @@ const translations: TranslationDeepObject = { biometricsTest: 'Biometrie-Test', authenticationSuccessful: 'Authentifizierung erfolgreich', successfullyAuthenticatedUsing: (authType?: string) => `Sie haben sich erfolgreich mit ${authType} authentifiziert.`, - troubleshootBiometricsStatus: (status?: boolean) => `Biometrische Daten (${status})`, + troubleshootBiometricsStatus: (status?: string) => `Biometrische Daten (${status})`, yourAttemptWasUnsuccessful: 'Dein Authentifizierungsversuch war nicht erfolgreich.', youCouldNotBeAuthenticated: 'Du konntest nicht authentifiziert werden', areYouSureToReject: 'Sind Sie sicher? Der Authentifizierungsversuch wird abgelehnt, wenn Sie diesen Bildschirm schließen.', @@ -679,7 +679,7 @@ const translations: TranslationDeepObject = { confirmationPromptAll: 'Sind Sie sicher? Sie benötigen einen Magic Code für die nächste Verifizierung auf jedem Gerät.', ctaAll: 'Alle widerrufen', thisDevice: 'Dieses Gerät', - otherDevices: ({otherDeviceCount}: MultifactorAuthenticationTranslationParams) => { + otherDevices: (otherDeviceCount?: number) => { const numberWords = ['Eins', 'Zwei', 'Drei', 'Vier', 'Fünf', 'Sechs', 'Sieben', 'Acht', 'Neun']; const displayCount = otherDeviceCount !== undefined && otherDeviceCount >= 1 && otherDeviceCount <= 9 ? numberWords.at(otherDeviceCount - 1) : `${otherDeviceCount}`; return `${displayCount} weitere ${otherDeviceCount === 1 ? 'Gerät' : 'Geräte'}`; @@ -7014,7 +7014,7 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und oldValue ? `hat den Firmennamen der Rechnung in „${newValue}“ geändert (zuvor „${oldValue}“)` : `setze den Rechnungsfirmennamen auf „${newValue}“`, changedInvoiceCompanyWebsite: ({newValue, oldValue}: {newValue: string; oldValue?: string}) => oldValue ? `hat die Unternehmenswebsite der Rechnung in „${newValue}“ geändert (zuvor „${oldValue}“)` : `Rechnungsunternehmens-Website auf „${newValue}“ festlegen`, - changedReimburser: ({newReimburser, previousReimburser}: UpdatedPolicyReimburserParams) => + changedReimburser: (newReimburser: string, previousReimburser?: string) => previousReimburser ? `hat die/den autorisierte:n Zahler:in in „${newReimburser}“ geändert (zuvor „${previousReimburser}“)` : `den/die autorisierte/n Zahler/in in „${newReimburser}“ geändert`, diff --git a/src/languages/en.ts b/src/languages/en.ts index e306eb6f86e38..b3b8030e1e264 100644 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -654,7 +654,7 @@ const translations = { biometricsTest: 'Biometrics test', authenticationSuccessful: 'Authentication successful', successfullyAuthenticatedUsing: (authType?: string) => `You’ve successfully authenticated using ${authType}.`, - troubleshootBiometricsStatus: (status?: boolean) => `Biometrics (${status})`, + troubleshootBiometricsStatus: (status?: string) => `Biometrics (${status})`, statusNeverRegistered: 'Never registered', statusNotRegistered: 'Not registered', statusRegisteredOtherDevice: () => ({one: 'Another device registered', other: 'Other devices registered'}), @@ -707,7 +707,7 @@ const translations = { dismiss: 'Got it', error: 'Request failed. Try again later.', thisDevice: 'This device', - otherDevices: ({otherDeviceCount}: MultifactorAuthenticationTranslationParams) => { + otherDevices: (otherDeviceCount?: number) => { const numberWords = ['One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine']; const displayCount = otherDeviceCount !== undefined && otherDeviceCount >= 1 && otherDeviceCount <= 9 ? numberWords.at(otherDeviceCount - 1) : `${otherDeviceCount}`; return `${displayCount} other ${otherDeviceCount === 1 ? 'device' : 'devices'}`; @@ -7115,7 +7115,7 @@ const translations = { oldValue ? `changed the invoice company name to "${newValue}" (previously "${oldValue}")` : `set the invoice company name to "${newValue}"`, changedInvoiceCompanyWebsite: ({newValue, oldValue}: {newValue: string; oldValue?: string}) => oldValue ? `changed the invoice company website to "${newValue}" (previously "${oldValue}")` : `set the invoice company website to "${newValue}"`, - changedReimburser: ({newReimburser, previousReimburser}: UpdatedPolicyReimburserParams) => + changedReimburser: (newReimburser: string, previousReimburser?: string) => previousReimburser ? `changed the authorized payer to "${newReimburser}" (previously "${previousReimburser}")` : `changed the authorized payer to "${newReimburser}"`, updateReimbursementEnabled: (enabled: boolean) => `${enabled ? 'enabled' : 'disabled'} reimbursements`, updateCustomTaxName: ({oldName, newName}: UpdatedPolicyCustomTaxNameParams) => `changed the custom tax name to "${newName}" (previously "${oldName}")`, diff --git a/src/languages/es.ts b/src/languages/es.ts index 475a46d3c4f58..f5ad8144b51dd 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -612,7 +612,7 @@ const translations: TranslationDeepObject = { dismiss: 'Entendido', error: 'La solicitud ha fallado. Inténtalo de nuevo más tarde.', thisDevice: 'Este dispositivo', - otherDevices: ({otherDeviceCount}: MultifactorAuthenticationTranslationParams) => { + otherDevices: (otherDeviceCount?: number) => { const numberWords = ['Un', 'Dos', 'Tres', 'Cuatro', 'Cinco', 'Seis', 'Siete', 'Ocho', 'Nueve']; const displayCount = otherDeviceCount !== undefined && otherDeviceCount >= 1 && otherDeviceCount <= 9 ? numberWords.at(otherDeviceCount - 1) : `${otherDeviceCount}`; return `${displayCount} ${otherDeviceCount === 1 ? 'otro dispositivo' : 'otros dispositivos'}`; @@ -6747,7 +6747,7 @@ ${amount} para ${merchant} - ${date}`, downgradedWorkspace: 'bajó de categoría este espacio de trabajo al plan Recopilar', updatedAuditRate: (oldAuditRate, newAuditRate) => `cambió la tasa de informes enviados aleatoriamente para aprobación manual a ${Math.round(newAuditRate * 100)}% (previamente ${Math.round(oldAuditRate * 100)}%)`, - changedReimburser: ({newReimburser, previousReimburser}) => + changedReimburser: (newReimburser, previousReimburser) => previousReimburser ? `cambió el pagador autorizado a "${newReimburser}" (previamente "${previousReimburser}")` : `cambió el pagador autorizado a "${newReimburser}"`, updateReimbursementEnabled: (enabled) => `${enabled ? 'habilitó' : 'deshabilitó'} los reembolsos`, updatedManualApprovalThreshold: ({oldLimit, newLimit}) => `cambió el límite de aprobación manual para todos los gastos a ${newLimit} (previamente ${oldLimit})`, diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 0858fdef30fdd..497387950d9c8 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -64,13 +64,11 @@ import type { UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, UpdatedPolicyReimburserParams, - UpdatedTheDistanceMerchantParams, UpdatedTheRequestParams, UpdatePolicyCustomUnitDefaultCategoryParams, UpdatePolicyCustomUnitParams, UpdateRoleParams, - UserIsAlreadyMemberParams, ViolationsMissingTagParams, ViolationsModifiedAmountParams, @@ -632,7 +630,7 @@ const translations: TranslationDeepObject = { biometricsTest: 'Test biométrique', authenticationSuccessful: 'Authentification réussie', successfullyAuthenticatedUsing: (authType?: string) => `Vous vous êtes authentifié avec succès à l’aide de ${authType}.`, - troubleshootBiometricsStatus: (status?: boolean) => `Données biométriques (${status})`, + troubleshootBiometricsStatus: (status?: string) => `Données biométriques (${status})`, yourAttemptWasUnsuccessful: 'Votre tentative d’authentification a échoué.', youCouldNotBeAuthenticated: 'Vous n’avez pas pu être authentifié', areYouSureToReject: 'Voulez-vous vraiment continuer ? La tentative d’authentification sera rejetée si vous fermez cet écran.', @@ -684,7 +682,7 @@ const translations: TranslationDeepObject = { confirmationPromptAll: 'Êtes-vous sûr ? Vous aurez besoin d’un code magique pour la prochaine vérification sur n’importe quel appareil.', ctaAll: 'Tout révoquer', thisDevice: 'Cet appareil', - otherDevices: ({otherDeviceCount}: MultifactorAuthenticationTranslationParams) => { + otherDevices: (otherDeviceCount?: number) => { const numberWords = ['Un', 'Deux', 'Trois', 'Quatre', 'Cinq', 'Six', 'Sept', 'Huit', 'Neuf']; const displayCount = otherDeviceCount !== undefined && otherDeviceCount >= 1 && otherDeviceCount <= 9 ? numberWords.at(otherDeviceCount - 1) : `${otherDeviceCount}`; return `${displayCount} autre(s) ${otherDeviceCount === 1 ? 'appareil' : 'appareils'}`; @@ -7041,7 +7039,7 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip oldValue ? `a modifié le site web de l'entreprise de facturation en « ${newValue} » (précédemment « ${oldValue} »)` : `définir le site web de l’entreprise de la facture sur « ${newValue} »`, - changedReimburser: ({newReimburser, previousReimburser}: UpdatedPolicyReimburserParams) => + changedReimburser: (newReimburser: string, previousReimburser?: string) => previousReimburser ? `a modifié le payeur autorisé en « ${newReimburser} » (auparavant « ${previousReimburser} »)` : `a modifié le payeur autorisé en « ${newReimburser} »`, updateReimbursementEnabled: (enabled: boolean) => `Remboursements ${enabled ? 'Activé' : 'Désactivé'}`, updateCustomTaxName: ({oldName, newName}: UpdatedPolicyCustomTaxNameParams) => `a modifié le nom de taxe personnalisé en « ${newName} » (auparavant « ${oldName} »)`, diff --git a/src/languages/it.ts b/src/languages/it.ts index bde6785fd204d..27962e3040d33 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -58,7 +58,6 @@ import type { UnshareParams, UpdatedBudgetParams, UpdatedPolicyApprovalRuleParams, - UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, @@ -630,7 +629,7 @@ const translations: TranslationDeepObject = { biometricsTest: 'Test biometrico', authenticationSuccessful: 'Autenticazione riuscita', successfullyAuthenticatedUsing: (authType?: string) => `Hai effettuato l’autenticazione con successo usando ${authType}.`, - troubleshootBiometricsStatus: (status?: boolean) => `Dati biometrici (${status})`, + troubleshootBiometricsStatus: (status?: string) => `Dati biometrici (${status})`, yourAttemptWasUnsuccessful: 'Il tentativo di autenticazione non è andato a buon fine.', youCouldNotBeAuthenticated: 'Autenticazione non riuscita', areYouSureToReject: 'Sei sicuro? Il tentativo di autenticazione verrà rifiutato se chiudi questa schermata.', @@ -682,7 +681,7 @@ const translations: TranslationDeepObject = { confirmationPromptAll: 'Sei sicuro? Avrai bisogno di un codice magico per la prossima verifica su qualsiasi dispositivo.', ctaAll: 'Revoca tutto', thisDevice: 'Questo dispositivo', - otherDevices: ({otherDeviceCount}: MultifactorAuthenticationTranslationParams) => { + otherDevices: (otherDeviceCount?: number) => { const numberWords = ['Uno', 'Due', 'Tre', 'Quattro', 'Cinque', 'Sei', 'Sette', 'Otto', 'Nove']; const displayCount = otherDeviceCount !== undefined && otherDeviceCount >= 1 && otherDeviceCount <= 9 ? numberWords.at(otherDeviceCount - 1) : `${otherDeviceCount}`; return `${displayCount} altro ${otherDeviceCount === 1 ? 'dispositivo' : 'dispositivi'}`; @@ -7004,7 +7003,7 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo oldValue ? `ha modificato il sito web dell’azienda in fattura in "${newValue}" (precedentemente "${oldValue}")` : `imposta il sito web dell’azienda della fattura su "${newValue}"`, - changedReimburser: ({newReimburser, previousReimburser}: UpdatedPolicyReimburserParams) => + changedReimburser: (newReimburser: string, previousReimburser?: string) => previousReimburser ? `ha modificato il pagatore autorizzato in "${newReimburser}" (in precedenza "${previousReimburser}")` : `ha modificato il pagatore autorizzato in "${newReimburser}"`, diff --git a/src/languages/ja.ts b/src/languages/ja.ts index df180cf5cf4ec..2c0ae8585c01d 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -627,7 +627,7 @@ const translations: TranslationDeepObject = { biometricsTest: '生体認証テスト', authenticationSuccessful: '認証に成功しました', successfullyAuthenticatedUsing: (authType?: string) => `${authType} を使用して正常に認証されました。`, - troubleshootBiometricsStatus: (status?: boolean) => `生体認証(${status})`, + troubleshootBiometricsStatus: (status?: string) => `生体認証(${status})`, yourAttemptWasUnsuccessful: '認証を試みましたが、成功しませんでした。', youCouldNotBeAuthenticated: '認証できませんでした', areYouSureToReject: '本当に終了しますか?この画面を閉じると、認証の試行は拒否されます。', @@ -677,7 +677,7 @@ const translations: TranslationDeepObject = { confirmationPromptAll: '本当に実行してよろしいですか?今後どの端末でも、次回の認証にはマジックコードが必要になります。', ctaAll: 'すべて取り消す', thisDevice: 'このデバイス', - otherDevices: ({otherDeviceCount}: MultifactorAuthenticationTranslationParams) => { + otherDevices: (otherDeviceCount?: number) => { const numberWords = ['1', '二', '三', '四', '五', '六', '七', '8', '9']; const displayCount = otherDeviceCount !== undefined && otherDeviceCount >= 1 && otherDeviceCount <= 9 ? numberWords.at(otherDeviceCount - 1) : `${otherDeviceCount}`; return `その他${displayCount}件の${otherDeviceCount === 1 ? 'デバイス' : 'デバイス'}`; @@ -6929,7 +6929,7 @@ ${reportName} oldValue ? `請求書の会社名を「${newValue}」に変更しました(以前は「${oldValue}」)` : `請求書の会社名を「${newValue}」に設定する`, changedInvoiceCompanyWebsite: ({newValue, oldValue}: {newValue: string; oldValue?: string}) => oldValue ? `請求書の会社ウェブサイトを「${newValue}」(以前は「${oldValue}」)に変更しました` : `請求書の会社ウェブサイトを「${newValue}」に設定しました`, - changedReimburser: ({newReimburser, previousReimburser}: UpdatedPolicyReimburserParams) => + changedReimburser: (newReimburser: string, previousReimburser?: string) => previousReimburser ? `認可された支払者を「${newReimburser}」(以前は「${previousReimburser}」)に変更しました` : `承認済み支払担当者を「${newReimburser}」に変更しました`, updateReimbursementEnabled: (enabled: boolean) => `${enabled ? '有効' : '無効'}件の精算`, updateCustomTaxName: ({oldName, newName}: UpdatedPolicyCustomTaxNameParams) => `カスタム税区分名を「${newName}」(以前は「${oldName}」)に変更しました`, diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 916f0ec120ee3..a76d647fb319c 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -628,7 +628,7 @@ const translations: TranslationDeepObject = { biometricsTest: 'Biometrische test', authenticationSuccessful: 'Authenticatie geslaagd', successfullyAuthenticatedUsing: (authType?: string) => `Je bent succesvol geauthenticeerd met ${authType}.`, - troubleshootBiometricsStatus: (status?: boolean) => `Biometrie (${status})`, + troubleshootBiometricsStatus: (status?: string) => `Biometrie (${status})`, yourAttemptWasUnsuccessful: 'Je verificatiepoging is niet gelukt.', youCouldNotBeAuthenticated: 'Je kon niet worden geverifieerd', areYouSureToReject: 'Weet je het zeker? De authenticatiepoging wordt geweigerd als je dit scherm sluit.', @@ -679,7 +679,7 @@ const translations: TranslationDeepObject = { confirmationPromptAll: 'Weet je het zeker? Je hebt een magische code nodig voor de volgende verificatie op elk apparaat.', ctaAll: 'Alles intrekken', thisDevice: 'Dit apparaat', - otherDevices: ({otherDeviceCount}: MultifactorAuthenticationTranslationParams) => { + otherDevices: (otherDeviceCount?: number) => { const numberWords = ['Eén', 'Twee', 'Drie', 'Vier', 'Vijf', 'Zes', 'Zeven', 'Acht', 'Negen']; const displayCount = otherDeviceCount !== undefined && otherDeviceCount >= 1 && otherDeviceCount <= 9 ? numberWords.at(otherDeviceCount - 1) : `${otherDeviceCount}`; return `${displayCount} andere ${otherDeviceCount === 1 ? 'apparaat' : 'apparaten'}`; @@ -6980,7 +6980,7 @@ Vereis onkostendetails zoals bonnen en beschrijvingen, stel limieten en standaar oldValue ? `heeft de naam van het factuurbedrijf gewijzigd naar ‘${newValue}’ (voorheen ‘${oldValue}’)` : `stel de bedrijfsnaam op de factuur in op ‘${newValue}’`, changedInvoiceCompanyWebsite: ({newValue, oldValue}: {newValue: string; oldValue?: string}) => oldValue ? `heeft de bedrijfswebsite op de factuur gewijzigd naar "${newValue}" (voorheen "${oldValue}")` : `stel de bedrijfswebsite van de factuur in op "${newValue}"`, - changedReimburser: ({newReimburser, previousReimburser}: UpdatedPolicyReimburserParams) => + changedReimburser: (newReimburser: string, previousReimburser?: string) => previousReimburser ? `heeft de gemachtigde betaler gewijzigd in „${newReimburser}” (voorheen „${previousReimburser}”)` : `heeft de gemachtigde betaler gewijzigd naar ‘${newReimburser}’`, diff --git a/src/languages/params.ts b/src/languages/params.ts index ea227445c9c3a..d0424f1c09e2a 100644 --- a/src/languages/params.ts +++ b/src/languages/params.ts @@ -3,7 +3,6 @@ import type {DelegateRole} from '@src/types/onyx/Account'; import type {AllConnectionName, ConnectionName, PolicyConnectionSyncStage, SageIntacctMappingName} from '@src/types/onyx/Policy'; import type {ViolationDataType} from '@src/types/onyx/TransactionViolation'; - type EditActionParams = { action: OnyxInputOrEntry; }; @@ -90,7 +89,6 @@ type UpdatedPolicyCategoryMaxAmountNoReceiptParams = {categoryName: string; oldV // type UpdatedPolicyTagFieldParams = {oldValue?: string; newValue: string; tagName: string; tagListName: string; updatedField: string}; - // type UpdatedPolicyTagListRequiredParams = {tagListsName: string; isRequired: boolean}; type UpdatePolicyCustomUnitDefaultCategoryParams = {customUnitName: string; newValue?: string; oldValue?: string}; diff --git a/src/languages/pl.ts b/src/languages/pl.ts index e4b4bff0a6b07..188f97576741c 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -628,7 +628,7 @@ const translations: TranslationDeepObject = { biometricsTest: 'Test biometrii', authenticationSuccessful: 'Uwierzytelnianie powiodło się', successfullyAuthenticatedUsing: (authType?: string) => `Pomyślnie uwierzytelniłeś się za pomocą ${authType}.`, - troubleshootBiometricsStatus: (status?: boolean) => `Dane biometryczne (${status})`, + troubleshootBiometricsStatus: (status?: string) => `Dane biometryczne (${status})`, yourAttemptWasUnsuccessful: 'Twoja próba uwierzytelnienia nie powiodła się.', youCouldNotBeAuthenticated: 'Nie udało się uwierzytelnić użytkownika', areYouSureToReject: 'Na pewno? Próba uwierzytelnienia zostanie odrzucona, jeśli zamkniesz ten ekran.', @@ -680,7 +680,7 @@ const translations: TranslationDeepObject = { confirmationPromptAll: 'Na pewno? Będziesz potrzebować magicznego kodu do następnej weryfikacji na każdym urządzeniu.', ctaAll: 'Cofnij wszystkie', thisDevice: 'To urządzenie', - otherDevices: ({otherDeviceCount}: MultifactorAuthenticationTranslationParams) => { + otherDevices: (otherDeviceCount?: number) => { const numberWords = ['Jeden', 'Dwa', 'Trzy', 'Cztery', 'Pięć', 'Sześć', 'Siedem', 'Osiem', 'Dziewięć']; const displayCount = otherDeviceCount !== undefined && otherDeviceCount >= 1 && otherDeviceCount <= 9 ? numberWords.at(otherDeviceCount - 1) : `${otherDeviceCount}`; return `${displayCount} inna ${otherDeviceCount === 1 ? 'urządzenie' : 'urządzenia'}`; @@ -6972,7 +6972,7 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i oldValue ? `zmieniono nazwę firmy na fakturze na „${newValue}” (poprzednio „${oldValue}”)` : `ustaw nazwę firmy na fakturze na „${newValue}”`, changedInvoiceCompanyWebsite: ({newValue, oldValue}: {newValue: string; oldValue?: string}) => oldValue ? `zmienił(a) firmową stronę internetową faktury na „${newValue}” (poprzednio „${oldValue}”)` : `ustawiono firmową stronę internetową na fakturze na „${newValue}”`, - changedReimburser: ({newReimburser, previousReimburser}: UpdatedPolicyReimburserParams) => + changedReimburser: (newReimburser: string, previousReimburser?: string) => previousReimburser ? `zmienił(a) upoważnioną osobę zwracającą wydatki na „${newReimburser}” (wcześniej „${previousReimburser}”)` : `zmienił(a) upoważnionego płatnika na „${newReimburser}”`, diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 42ea3b7029b01..17c6fbfddd475 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -626,7 +626,7 @@ const translations: TranslationDeepObject = { biometricsTest: 'Teste de biometria', authenticationSuccessful: 'Autenticação bem-sucedida', successfullyAuthenticatedUsing: (authType?: string) => `Você se autenticou com sucesso usando ${authType}.`, - troubleshootBiometricsStatus: (status?: boolean) => `Biometria (${status})`, + troubleshootBiometricsStatus: (status?: string) => `Biometria (${status})`, yourAttemptWasUnsuccessful: 'Sua tentativa de autenticação não foi bem-sucedida.', youCouldNotBeAuthenticated: 'Não foi possível autenticar você', areYouSureToReject: 'Tem certeza? A tentativa de autenticação será rejeitada se você fechar esta tela.', @@ -677,7 +677,7 @@ const translations: TranslationDeepObject = { confirmationPromptAll: 'Tem certeza? Você vai precisar de um código mágico para a próxima verificação em qualquer dispositivo.', ctaAll: 'Revogar tudo', thisDevice: 'Este dispositivo', - otherDevices: ({otherDeviceCount}: MultifactorAuthenticationTranslationParams) => { + otherDevices: (otherDeviceCount?: number) => { const numberWords = ['Um', 'Dois', 'Três', 'Quatro', 'Cinco', 'Seis', 'Sete', 'Oito', 'Nove']; const displayCount = otherDeviceCount !== undefined && otherDeviceCount >= 1 && otherDeviceCount <= 9 ? numberWords.at(otherDeviceCount - 1) : `${otherDeviceCount}`; return `${displayCount} outro(a) ${otherDeviceCount === 1 ? 'dispositivo' : 'dispositivos'}`; @@ -6974,7 +6974,7 @@ Exija dados de despesas como recibos e descrições, defina limites e padrões e oldValue ? `alterou o nome da empresa da fatura para "${newValue}" (antes "${oldValue}")` : `definir o nome da empresa na fatura como "${newValue}"`, changedInvoiceCompanyWebsite: ({newValue, oldValue}: {newValue: string; oldValue?: string}) => oldValue ? `alterou o site da empresa da fatura para "${newValue}" (antes "${oldValue}")` : `definir o site da empresa da fatura como "${newValue}"`, - changedReimburser: ({newReimburser, previousReimburser}: UpdatedPolicyReimburserParams) => + changedReimburser: (newReimburser: string, previousReimburser?: string) => previousReimburser ? `alterou o pagador autorizado para "${newReimburser}" (anteriormente "${previousReimburser}")` : `alterou o pagador autorizado para "${newReimburser}"`, updateReimbursementEnabled: (enabled: boolean) => `reembolsos ${enabled ? 'ativado' : 'desativado'}`, updateCustomTaxName: ({oldName, newName}: UpdatedPolicyCustomTaxNameParams) => `alterou o nome do imposto personalizado para "${newName}" (antes "${oldName}")`, diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index b5a81faf13215..deeefb26a51fb 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -58,7 +58,6 @@ import type { UnshareParams, UpdatedBudgetParams, UpdatedPolicyApprovalRuleParams, - UpdatedPolicyCategoryMaxAmountNoReceiptParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, @@ -621,7 +620,7 @@ const translations: TranslationDeepObject = { biometricsTest: '生物识别测试', authenticationSuccessful: '认证成功', successfullyAuthenticatedUsing: (authType?: string) => `您已成功使用 ${authType} 完成验证。`, - troubleshootBiometricsStatus: (status?: boolean) => `生物识别(${status})`, + troubleshootBiometricsStatus: (status?: string) => `生物识别(${status})`, yourAttemptWasUnsuccessful: '您的身份验证尝试未成功。', youCouldNotBeAuthenticated: '无法验证您的身份', areYouSureToReject: '您确定吗?如果您关闭此界面,此次身份验证尝试将被拒绝。', @@ -671,7 +670,7 @@ const translations: TranslationDeepObject = { confirmationPromptAll: '您确定吗?您在任何设备上进行下一次验证时都需要输入魔法验证码。', ctaAll: '全部撤销', thisDevice: '此设备', - otherDevices: ({otherDeviceCount}: MultifactorAuthenticationTranslationParams) => { + otherDevices: (otherDeviceCount?: number) => { const numberWords = ['一', '二', '三', '四', '五', '六', '七', '八', '九']; const displayCount = otherDeviceCount !== undefined && otherDeviceCount >= 1 && otherDeviceCount <= 9 ? numberWords.at(otherDeviceCount - 1) : `${otherDeviceCount}`; return `${displayCount} 个其他 ${otherDeviceCount === 1 ? '设备' : '设备'}`; @@ -6812,7 +6811,7 @@ ${reportName} oldValue ? `将发票公司名称更改为“${newValue}”(原为“${oldValue}”)` : `将发票公司名称设置为“${newValue}”`, changedInvoiceCompanyWebsite: ({newValue, oldValue}: {newValue: string; oldValue?: string}) => oldValue ? `将发票公司的网站更改为“${newValue}”(原为“${oldValue}”)` : `将发票公司网站设置为“${newValue}”`, - changedReimburser: ({newReimburser, previousReimburser}: UpdatedPolicyReimburserParams) => + changedReimburser: (newReimburser: string, previousReimburser?: string) => previousReimburser ? `将授权付款人更改为“${newReimburser}”(之前为“${previousReimburser}”)` : `已将授权付款人更改为“${newReimburser}”`, updateReimbursementEnabled: (enabled: boolean) => `${enabled ? '已启用' : '已禁用'} 笔报销`, updateCustomTaxName: ({oldName, newName}: UpdatedPolicyCustomTaxNameParams) => `将自定义税种名称更改为"${newName}"(之前为"${oldName}")`, diff --git a/src/libs/ReportActionsUtils.ts b/src/libs/ReportActionsUtils.ts index 0a81d9428fba8..d478040b29e9a 100644 --- a/src/libs/ReportActionsUtils.ts +++ b/src/libs/ReportActionsUtils.ts @@ -3478,7 +3478,7 @@ function getReimburserUpdateMessage(translate: LocalizedTranslate, action: Repor const newReimburser = formatPhoneNumber(originalMessage.reimburser.email); const previousReimburser = formatPhoneNumber(originalMessage.previousReimburser.email); - return translate('workspaceActions.changedReimburser', {newReimburser, previousReimburser}); + return translate('workspaceActions.changedReimburser', newReimburser, previousReimburser); } return getReportActionText(action); diff --git a/src/pages/MultifactorAuthentication/RevokePage.tsx b/src/pages/MultifactorAuthentication/RevokePage.tsx index f8ae66c8dfc9e..83f821dcbeadb 100644 --- a/src/pages/MultifactorAuthentication/RevokePage.tsx +++ b/src/pages/MultifactorAuthentication/RevokePage.tsx @@ -206,7 +206,7 @@ function MultifactorAuthenticationRevokePage() { )} {otherDeviceCount > 0 && ( Date: Thu, 19 Mar 2026 10:37:26 +0100 Subject: [PATCH 07/11] ESlint fix --- src/languages/en.ts | 1 - src/languages/fr.ts | 1 - src/languages/it.ts | 1 - src/languages/nl.ts | 1 - src/languages/params.ts | 3 --- src/languages/pl.ts | 1 - 6 files changed, 8 deletions(-) diff --git a/src/languages/en.ts b/src/languages/en.ts index b3b8030e1e264..f288e84103acc 100644 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -51,7 +51,6 @@ import type { UpdatedPolicyCustomTaxNameParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyReimburserParams, UpdatedTheDistanceMerchantParams, UpdatedTheRequestParams, UpdatePolicyCustomUnitDefaultCategoryParams, diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 497387950d9c8..7fdedcefc4221 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -63,7 +63,6 @@ import type { UpdatedPolicyCustomTaxNameParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyReimburserParams, UpdatedTheDistanceMerchantParams, UpdatedTheRequestParams, UpdatePolicyCustomUnitDefaultCategoryParams, diff --git a/src/languages/it.ts b/src/languages/it.ts index 27962e3040d33..6fc81d469bb22 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -63,7 +63,6 @@ import type { UpdatedPolicyCustomTaxNameParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyReimburserParams, UpdatedTheDistanceMerchantParams, UpdatedTheRequestParams, UpdatePolicyCustomUnitDefaultCategoryParams, diff --git a/src/languages/nl.ts b/src/languages/nl.ts index a76d647fb319c..c233a5e52c9ae 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -63,7 +63,6 @@ import type { UpdatedPolicyCustomTaxNameParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyReimburserParams, UpdatedTheDistanceMerchantParams, UpdatedTheRequestParams, UpdatePolicyCustomUnitDefaultCategoryParams, diff --git a/src/languages/params.ts b/src/languages/params.ts index d0424f1c09e2a..d1305a8728e31 100644 --- a/src/languages/params.ts +++ b/src/languages/params.ts @@ -141,8 +141,6 @@ type UpdatedPolicyCurrencyDefaultTaxParams = {oldName: string; newName: string}; type UpdatedPolicyForeignCurrencyDefaultTaxParams = {oldName: string; newName: string}; -type UpdatedPolicyReimburserParams = {newReimburser: string; previousReimburser?: string}; - type ExportedToIntegrationParams = {label: string; markedManually?: boolean; inProgress?: boolean; lastModified?: string}; type AddBudgetParams = {frequency: string; entityType: string; entityName: string; shared?: string; individual?: string; notificationThreshold?: number}; @@ -383,7 +381,6 @@ export type { UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, - UpdatedPolicyReimburserParams, UpdatePolicyCustomUnitDefaultCategoryParams, UpdatePolicyCustomUnitParams, UpdatedPolicyApprovalRuleParams, diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 188f97576741c..81ab0b5cab794 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -63,7 +63,6 @@ import type { UpdatedPolicyCustomTaxNameParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyManualApprovalThresholdParams, - UpdatedPolicyReimburserParams, UpdatedTheDistanceMerchantParams, UpdatedTheRequestParams, UpdatePolicyCustomUnitDefaultCategoryParams, From 1d81446e5fb1cd1a978fcee9e0a90322925d67fa Mon Sep 17 00:00:00 2001 From: jakubstec Date: Thu, 19 Mar 2026 10:53:14 +0100 Subject: [PATCH 08/11] fix: revert troubleshootBiometricsStatus change to standalone type to pass tests --- src/components/TestToolMenu.tsx | 2 +- src/languages/de.ts | 2 +- src/languages/en.ts | 2 +- src/languages/fr.ts | 2 +- src/languages/it.ts | 2 +- src/languages/ja.ts | 2 +- src/languages/nl.ts | 2 +- src/languages/pl.ts | 2 +- src/languages/pt-BR.ts | 2 +- src/languages/zh-hans.ts | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/components/TestToolMenu.tsx b/src/components/TestToolMenu.tsx index c1ffe594eb091..d7a12f3984997 100644 --- a/src/components/TestToolMenu.tsx +++ b/src/components/TestToolMenu.tsx @@ -57,7 +57,7 @@ function TestToolMenu() { [REGISTRATION_STATUS.REGISTERED_OTHER_DEVICE]: translate('multifactorAuthentication.biometricsTest.statusRegisteredOtherDevice', {count: otherDeviceCount}), [REGISTRATION_STATUS.REGISTERED_THIS_DEVICE]: translate('multifactorAuthentication.biometricsTest.statusRegisteredThisDevice'), }; - const biometricsTitle = translate('multifactorAuthentication.biometricsTest.troubleshootBiometricsStatus', statusTextMap[registrationStatus]); + const biometricsTitle = translate('multifactorAuthentication.biometricsTest.troubleshootBiometricsStatus', {status: statusTextMap[registrationStatus]}); return ( <> diff --git a/src/languages/de.ts b/src/languages/de.ts index c5c4a38c9713c..cf3b26ee2408a 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -628,7 +628,7 @@ const translations: TranslationDeepObject = { biometricsTest: 'Biometrie-Test', authenticationSuccessful: 'Authentifizierung erfolgreich', successfullyAuthenticatedUsing: (authType?: string) => `Sie haben sich erfolgreich mit ${authType} authentifiziert.`, - troubleshootBiometricsStatus: (status?: string) => `Biometrische Daten (${status})`, + troubleshootBiometricsStatus: ({status}: {status?: string}) => `Biometrische Daten (${status})`, yourAttemptWasUnsuccessful: 'Dein Authentifizierungsversuch war nicht erfolgreich.', youCouldNotBeAuthenticated: 'Du konntest nicht authentifiziert werden', areYouSureToReject: 'Sind Sie sicher? Der Authentifizierungsversuch wird abgelehnt, wenn Sie diesen Bildschirm schließen.', diff --git a/src/languages/en.ts b/src/languages/en.ts index f288e84103acc..a235e529c6423 100644 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -653,7 +653,7 @@ const translations = { biometricsTest: 'Biometrics test', authenticationSuccessful: 'Authentication successful', successfullyAuthenticatedUsing: (authType?: string) => `You’ve successfully authenticated using ${authType}.`, - troubleshootBiometricsStatus: (status?: string) => `Biometrics (${status})`, + troubleshootBiometricsStatus: ({status}: {status?: string}) => `Biometrics (${status})`, statusNeverRegistered: 'Never registered', statusNotRegistered: 'Not registered', statusRegisteredOtherDevice: () => ({one: 'Another device registered', other: 'Other devices registered'}), diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 7fdedcefc4221..dbb3b1f262581 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -629,7 +629,7 @@ const translations: TranslationDeepObject = { biometricsTest: 'Test biométrique', authenticationSuccessful: 'Authentification réussie', successfullyAuthenticatedUsing: (authType?: string) => `Vous vous êtes authentifié avec succès à l’aide de ${authType}.`, - troubleshootBiometricsStatus: (status?: string) => `Données biométriques (${status})`, + troubleshootBiometricsStatus: ({status}: {status?: string}) => `Données biométriques (${status})`, yourAttemptWasUnsuccessful: 'Votre tentative d’authentification a échoué.', youCouldNotBeAuthenticated: 'Vous n’avez pas pu être authentifié', areYouSureToReject: 'Voulez-vous vraiment continuer ? La tentative d’authentification sera rejetée si vous fermez cet écran.', diff --git a/src/languages/it.ts b/src/languages/it.ts index 6fc81d469bb22..b0cab990acc87 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -628,7 +628,7 @@ const translations: TranslationDeepObject = { biometricsTest: 'Test biometrico', authenticationSuccessful: 'Autenticazione riuscita', successfullyAuthenticatedUsing: (authType?: string) => `Hai effettuato l’autenticazione con successo usando ${authType}.`, - troubleshootBiometricsStatus: (status?: string) => `Dati biometrici (${status})`, + troubleshootBiometricsStatus: ({status}: {status?: string}) => `Dati biometrici (${status})`, yourAttemptWasUnsuccessful: 'Il tentativo di autenticazione non è andato a buon fine.', youCouldNotBeAuthenticated: 'Autenticazione non riuscita', areYouSureToReject: 'Sei sicuro? Il tentativo di autenticazione verrà rifiutato se chiudi questa schermata.', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 2c0ae8585c01d..a3eba53dc5f6a 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -627,7 +627,7 @@ const translations: TranslationDeepObject = { biometricsTest: '生体認証テスト', authenticationSuccessful: '認証に成功しました', successfullyAuthenticatedUsing: (authType?: string) => `${authType} を使用して正常に認証されました。`, - troubleshootBiometricsStatus: (status?: string) => `生体認証(${status})`, + troubleshootBiometricsStatus: ({status}: {status?: string}) => `生体認証(${status})`, yourAttemptWasUnsuccessful: '認証を試みましたが、成功しませんでした。', youCouldNotBeAuthenticated: '認証できませんでした', areYouSureToReject: '本当に終了しますか?この画面を閉じると、認証の試行は拒否されます。', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index c233a5e52c9ae..a198ee9732bfd 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -627,7 +627,7 @@ const translations: TranslationDeepObject = { biometricsTest: 'Biometrische test', authenticationSuccessful: 'Authenticatie geslaagd', successfullyAuthenticatedUsing: (authType?: string) => `Je bent succesvol geauthenticeerd met ${authType}.`, - troubleshootBiometricsStatus: (status?: string) => `Biometrie (${status})`, + troubleshootBiometricsStatus: ({status}: {status?: string}) => `Biometrie (${status})`, yourAttemptWasUnsuccessful: 'Je verificatiepoging is niet gelukt.', youCouldNotBeAuthenticated: 'Je kon niet worden geverifieerd', areYouSureToReject: 'Weet je het zeker? De authenticatiepoging wordt geweigerd als je dit scherm sluit.', diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 81ab0b5cab794..22b71f285da80 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -627,7 +627,7 @@ const translations: TranslationDeepObject = { biometricsTest: 'Test biometrii', authenticationSuccessful: 'Uwierzytelnianie powiodło się', successfullyAuthenticatedUsing: (authType?: string) => `Pomyślnie uwierzytelniłeś się za pomocą ${authType}.`, - troubleshootBiometricsStatus: (status?: string) => `Dane biometryczne (${status})`, + troubleshootBiometricsStatus: ({status}: {status?: string}) => `Dane biometryczne (${status})`, yourAttemptWasUnsuccessful: 'Twoja próba uwierzytelnienia nie powiodła się.', youCouldNotBeAuthenticated: 'Nie udało się uwierzytelnić użytkownika', areYouSureToReject: 'Na pewno? Próba uwierzytelnienia zostanie odrzucona, jeśli zamkniesz ten ekran.', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 17c6fbfddd475..019d8ae5284f0 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -626,7 +626,7 @@ const translations: TranslationDeepObject = { biometricsTest: 'Teste de biometria', authenticationSuccessful: 'Autenticação bem-sucedida', successfullyAuthenticatedUsing: (authType?: string) => `Você se autenticou com sucesso usando ${authType}.`, - troubleshootBiometricsStatus: (status?: string) => `Biometria (${status})`, + troubleshootBiometricsStatus: ({status}: {status?: string}) => `Biometria (${status})`, yourAttemptWasUnsuccessful: 'Sua tentativa de autenticação não foi bem-sucedida.', youCouldNotBeAuthenticated: 'Não foi possível autenticar você', areYouSureToReject: 'Tem certeza? A tentativa de autenticação será rejeitada se você fechar esta tela.', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index deeefb26a51fb..11fa1afc99795 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -620,7 +620,7 @@ const translations: TranslationDeepObject = { biometricsTest: '生物识别测试', authenticationSuccessful: '认证成功', successfullyAuthenticatedUsing: (authType?: string) => `您已成功使用 ${authType} 完成验证。`, - troubleshootBiometricsStatus: (status?: string) => `生物识别(${status})`, + troubleshootBiometricsStatus: ({status}: {status?: string}) => `生物识别(${status})`, yourAttemptWasUnsuccessful: '您的身份验证尝试未成功。', youCouldNotBeAuthenticated: '无法验证您的身份', areYouSureToReject: '您确定吗?如果您关闭此界面,此次身份验证尝试将被拒绝。', From 6b7c03b69124b6ded6c7ff916cdd1ffa9791ae1d Mon Sep 17 00:00:00 2001 From: jakubstec Date: Tue, 24 Mar 2026 09:43:54 +0100 Subject: [PATCH 09/11] fix: remove commented unnecessary types --- src/languages/params.ts | 146 ---------------------------------------- 1 file changed, 146 deletions(-) diff --git a/src/languages/params.ts b/src/languages/params.ts index d1305a8728e31..6a0bbf72bdec4 100644 --- a/src/languages/params.ts +++ b/src/languages/params.ts @@ -51,8 +51,6 @@ type SizeExceededParams = {maxUploadSizeInMB: number}; type NotAllowedExtensionParams = {allowedExtensions: string[]}; -// type WeSentYouMagicSignInLinkParams = {login: string; loginType: string}; - type StepCounterParams = {step: number; total?: number; text?: string}; type UserIsAlreadyMemberParams = {login: string; name: string}; @@ -67,12 +65,6 @@ type ViolationsMissingTagParams = {tagName?: string} | undefined; type ViolationsModifiedAmountParams = {type?: ViolationDataType; displayPercentVariance?: number}; -// type ViolationsTagOutOfPolicyParams = {tagName?: string} | undefined; - -// type ViolationsProhibitedExpenseParams = {prohibitedExpenseTypes: string | string[]}; - -// type ViolationsTaxOutOfPolicyParams = {taxName?: string} | undefined; - type OptionalParam = Partial; type LogSizeAndDateParams = {size: number; date: string}; @@ -81,58 +73,14 @@ type ChangeFieldParams = {oldValue?: string; newValue: string; fieldName: string type UpdatedPolicyCategoryMaxAmountNoReceiptParams = {categoryName: string; oldValue?: string; newValue: string}; -// type UpdatedPolicyTaxParams = {taxName: string; oldValue?: string | boolean | number; newValue?: string | boolean | number; updatedField?: string}; - -// type UpdatedPolicyTagParams = {tagListName: string; tagName?: string; enabled?: boolean; count?: string}; - -// type UpdatedPolicyTagNameParams = {oldName: string; newName: string; tagListName: string}; - -// type UpdatedPolicyTagFieldParams = {oldValue?: string; newValue: string; tagName: string; tagListName: string; updatedField: string}; - -// type UpdatedPolicyTagListRequiredParams = {tagListsName: string; isRequired: boolean}; - type UpdatePolicyCustomUnitDefaultCategoryParams = {customUnitName: string; newValue?: string; oldValue?: string}; type UpdatePolicyCustomUnitParams = {oldValue: string; newValue: string; customUnitName: string; updatedField: string}; -// type UpdatedPolicyCustomUnitSubRateParams = {customUnitName: string; customUnitRateName: string; customUnitSubRateName: string; oldValue: string; newValue: string; updatedField: string}; - -// type RemovedPolicyCustomUnitSubRateParams = {customUnitName: string; customUnitRateName: string; removedSubRateName: string}; - type AddedOrDeletedPolicyReportFieldParams = {fieldType: string; fieldName?: string}; -// type UpdatedPolicyReportFieldDefaultValueParams = {fieldName?: string; defaultValue?: string}; - type UpdatedPolicyApprovalRuleParams = {oldApproverEmail: string; oldApproverName?: string; newApproverEmail: string; newApproverName?: string; field: string; name: string}; -// type UpdatedPolicyPreventSelfApprovalParams = {oldValue: string; newValue: string}; - -// type UpdatedPolicyOwnershipParams = {oldOwnerEmail: string; oldOwnerName: string; policyName: string}; - -// type UpdatedPolicyTimeEnabledParams = {enabled?: boolean}; - -// type UpdatedPolicyTimeRateParams = {newRate?: string; oldRate?: string}; - -// type UpdatedPolicyAutoHarvestingParams = {enabled: boolean}; - -// type UpdatedPolicyBudgetNotificationParams = { -// budgetAmount: string; -// budgetFrequency: string; -// budgetName: string; -// budgetTypeForNotificationMessage: string; -// summaryLink?: string; -// thresholdPercentage: number; -// totalSpend: number; -// unsubmittedSpend: number; -// userEmail?: string; -// awaitingApprovalSpend: number; -// approvedReimbursedClosedSpend: number; -// }; - -// type UpdatedPolicyReimbursementChoiceParams = {newReimbursementChoice: string; oldReimbursementChoice: string}; - -// type UpdatedPolicyDefaultTitleParams = {newDefaultTitle: string; oldDefaultTitle: string}; - type UpdatedPolicyManualApprovalThresholdParams = {oldLimit: string; newLimit: string}; type UpdatedPolicyCustomTaxNameParams = {oldName: string; newName: string}; @@ -236,59 +184,11 @@ type InvalidValueParams = { expectedValues: string; }; -// type WorkspaceYouMayJoin = { -// domain: string; -// email: string; -// }; - -// type WorkEmailResendCodeParams = { -// workEmail: string | undefined; -// }; - -// type WorkEmailMergingBlockedParams = { -// workEmail: string | undefined; -// }; - -// type WorkspaceMemberList = { -// employeeCount: number; -// policyOwner: string; -// }; - type WorkspaceLockedPlanTypeParams = { count: number; annualSubscriptionEndDate: string; }; -// type CustomUnitRateParams = { -// rate: number; -// }; - -// type WorkspaceUpgradeNoteParams = { -// subscriptionLink: string; -// }; - -// type WorkflowSettingsParam = {workflowSettingLink: string}; - -// type WorkspaceShareNoteParams = { -// adminsRoomLink: string; -// }; - -// type UpgradeSuccessMessageParams = { -// policyName: string; -// subscriptionLink: string; -// }; - -// type WalletAgreementParams = { -// walletAgreementUrl: string; -// }; - -// type NextStepParams = { -// actor: string; -// actorType: ValueOf; -// eta?: string; -// etaType?: ValueOf; -// }; - type ConciergeBrokenCardConnectionParams = { cardName: string; connectionLink?: string; @@ -327,22 +227,6 @@ export type { UserIsAlreadyMemberParams, ViolationsMissingTagParams, ViolationsModifiedAmountParams, - // ViolationsOverAutoApprovalLimitParams, - // ViolationsOverCategoryLimitParams, - // ViolationsOverLimitParams, - // ViolationsPerDayLimitParams, - // ViolationsReceiptRequiredParams, - // ViolationsCustomRulesParams, - // ViolationsRterParams, - // ViolationsTagOutOfPolicyParams, - // ViolationsProhibitedExpenseParams, - // ViolationsTaxOutOfPolicyParams, - // WaitingOnBankAccountParams, - // WalletProgramParams, - // WeSentYouMagicSignInLinkParams, - // WelcomeEnterMagicCodeParams, - // WelcomeToRoomParams, - // ZipCodeExampleFormatParams, ChangeFieldParams, ExportedToIntegrationParams, IntegrationsMessageParams, @@ -357,25 +241,7 @@ export type { DisconnectPromptParams, DisconnectTitleParams, OptionalParam, - // WorkspaceYouMayJoin, - // WorkspaceMemberList, WorkspaceLockedPlanTypeParams, - // CustomUnitRateParams, - // UpdatedPolicyTagListParams, - // UpdatedPolicyTagListRequiredParams, - // UpdatedPolicyPreventSelfApprovalParams, - // UpdatedPolicyTimeEnabledParams, - // UpdatedPolicyTimeRateParams, - // WorkEmailResendCodeParams, - // WorkEmailMergingBlockedParams, - // UpdatedPolicyTagParams, - // UpdatedPolicyTaxParams, - // UpdatedPolicyTagNameParams, - // UpdatedPolicyTagFieldParams, - // UpdatedPolicyReportFieldDefaultValueParams, - // RemovedPolicyCustomUnitSubRateParams, - // UpdatedPolicyCustomUnitSubRateParams, - // YourPlanPriceValueParams, AddedOrDeletedPolicyReportFieldParams, UpdatedPolicyManualApprovalThresholdParams, UpdatedPolicyCustomTaxNameParams, @@ -389,16 +255,4 @@ export type { UpdatedBudgetParams, DeleteBudgetParams, AddOrDeletePolicyCustomUnitRateParams, - // WorkspaceUpgradeNoteParams, - // WorkflowSettingsParam, - // WorkspaceShareNoteParams, - // UpgradeSuccessMessageParams, - // WalletAgreementParams, - // NextStepParams, - // UpdatedPolicyOwnershipParams, - // UpdatedPolicyAutoHarvestingParams, - // UpdatedPolicyBudgetNotificationParams, - // UpdatedPolicyReimbursementChoiceParams, - // UpdatedPolicyDefaultTitleParams, - // MultifactorAuthenticationTranslationParams, }; From d8d18a70881278f55a168d64e0aa3ebc19615044 Mon Sep 17 00:00:00 2001 From: jakubstec Date: Tue, 24 Mar 2026 09:54:18 +0100 Subject: [PATCH 10/11] fix: add missing troubleshootBiometricsStatus change in es.ts --- src/languages/es.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/es.ts b/src/languages/es.ts index f5ad8144b51dd..7d9e466f1c5d4 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -557,7 +557,7 @@ const translations: TranslationDeepObject = { biometricsTest: 'Prueba de biometría', authenticationSuccessful: 'Autenticación exitosa', successfullyAuthenticatedUsing: (authType) => `Te has autenticado exitosamente con ${authType}.`, - troubleshootBiometricsStatus: (status) => `Biometría (${status})`, + troubleshootBiometricsStatus: ({status}) => `Biometría (${status})`, statusNeverRegistered: 'Nunca registrado', statusNotRegistered: 'No registrado', statusRegisteredThisDevice: 'Registrado', From 3131897d53205ae0a3f63b969ae05b04236ee82f Mon Sep 17 00:00:00 2001 From: jakubstec Date: Tue, 24 Mar 2026 13:04:58 +0100 Subject: [PATCH 11/11] chore: re-run perf tests