diff --git a/src/App.tsx b/src/App.tsx index dc17fe242a550..fcda2bb286dd4 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -88,10 +88,10 @@ function App({url, hybridAppSettings}: AppProps) { ThemeStylesProvider, ThemeIllustrationsProvider, SafeAreaProvider, + HTMLEngineProvider, PortalProvider, SafeArea, LocaleContextProvider, - HTMLEngineProvider, PopoverContextProvider, CurrentReportIDContextProvider, ScrollOffsetContextProvider, diff --git a/src/components/HTMLEngineProvider/BaseHTMLEngineProvider.tsx b/src/components/HTMLEngineProvider/BaseHTMLEngineProvider.tsx index 487ff440279a1..eb6b4d2ef311a 100755 --- a/src/components/HTMLEngineProvider/BaseHTMLEngineProvider.tsx +++ b/src/components/HTMLEngineProvider/BaseHTMLEngineProvider.tsx @@ -91,6 +91,11 @@ function BaseHTMLEngineProvider({textSelectable = false, children, enableExperim }, contentModel: HTMLContentModel.block, }), + tooltip: HTMLElementModel.fromCustomModel({ + tagName: 'tooltip', + mixedUAStyles: {whiteSpace: 'pre', ...styles.productTrainingTooltipText}, + contentModel: HTMLContentModel.block, + }), strong: HTMLElementModel.fromCustomModel({ tagName: 'strong', getMixedUAStyles: (tnode) => (isChildOfTaskTitle(tnode as TNode) ? {} : styles.strong), @@ -144,6 +149,7 @@ function BaseHTMLEngineProvider({textSelectable = false, children, enableExperim styles.mb0, styles.colorMuted, styles.mutedNormalTextLabel, + styles.productTrainingTooltipText, styles.textLabelSupporting, styles.lh16, styles.textSupporting, diff --git a/src/components/ProductTrainingContext/TOOLTIPS.ts b/src/components/ProductTrainingContext/TOOLTIPS.ts index 5a7a2d9445366..2fadf4b4b06c2 100644 --- a/src/components/ProductTrainingContext/TOOLTIPS.ts +++ b/src/components/ProductTrainingContext/TOOLTIPS.ts @@ -31,7 +31,7 @@ type ShouldShowConditionProps = { }; type TooltipData = { - content: Array<{text: TranslationPaths; isBold: boolean}>; + content: TranslationPaths; onHideTooltip: (isDismissedUsingCloseButton?: boolean) => void; name: ProductTrainingTooltipName; priority: number; @@ -41,10 +41,7 @@ type TooltipData = { const TOOLTIPS: Record = { [CONCIERGE_LHN_GBR]: { - content: [ - {text: 'productTrainingTooltip.conciergeLHNGBR.part1', isBold: false}, - {text: 'productTrainingTooltip.conciergeLHNGBR.part2', isBold: true}, - ], + content: 'productTrainingTooltip.conciergeLHNGBR', onHideTooltip: (isDismissedUsingCloseButton = false) => dismissProductTraining(CONCIERGE_LHN_GBR, isDismissedUsingCloseButton), name: CONCIERGE_LHN_GBR, priority: 1300, @@ -53,78 +50,49 @@ const TOOLTIPS: Record = { shouldShow: () => false, }, [RENAME_SAVED_SEARCH]: { - content: [ - {text: 'productTrainingTooltip.saveSearchTooltip.part1', isBold: true}, - {text: 'productTrainingTooltip.saveSearchTooltip.part2', isBold: false}, - ], + content: 'productTrainingTooltip.saveSearchTooltip', onHideTooltip: (isDismissedUsingCloseButton = false) => dismissProductTraining(RENAME_SAVED_SEARCH, isDismissedUsingCloseButton), name: RENAME_SAVED_SEARCH, priority: 1250, shouldShow: ({shouldUseNarrowLayout}) => !shouldUseNarrowLayout, }, [GLOBAL_CREATE_TOOLTIP]: { - content: [ - {text: 'productTrainingTooltip.globalCreateTooltip.part1', isBold: true}, - {text: 'productTrainingTooltip.globalCreateTooltip.part2', isBold: false}, - {text: 'productTrainingTooltip.globalCreateTooltip.part3', isBold: false}, - {text: 'productTrainingTooltip.globalCreateTooltip.part4', isBold: false}, - ], + content: 'productTrainingTooltip.globalCreateTooltip', onHideTooltip: (isDismissedUsingCloseButton = false) => dismissProductTraining(GLOBAL_CREATE_TOOLTIP, isDismissedUsingCloseButton), name: GLOBAL_CREATE_TOOLTIP, priority: 1950, shouldShow: ({isUserPolicyEmployee}) => isUserPolicyEmployee, }, [BOTTOM_NAV_INBOX_TOOLTIP]: { - content: [ - {text: 'productTrainingTooltip.bottomNavInboxTooltip.part1', isBold: false}, - {text: 'productTrainingTooltip.bottomNavInboxTooltip.part2', isBold: true}, - {text: 'productTrainingTooltip.bottomNavInboxTooltip.part3', isBold: false}, - {text: 'productTrainingTooltip.bottomNavInboxTooltip.part4', isBold: true}, - ], + content: 'productTrainingTooltip.bottomNavInboxTooltip', onHideTooltip: (isDismissedUsingCloseButton = false) => dismissProductTraining(BOTTOM_NAV_INBOX_TOOLTIP, isDismissedUsingCloseButton), name: BOTTOM_NAV_INBOX_TOOLTIP, priority: 1700, shouldShow: ({hasBeenAddedToNudgeMigration}) => hasBeenAddedToNudgeMigration, }, [LHN_WORKSPACE_CHAT_TOOLTIP]: { - content: [ - {text: 'productTrainingTooltip.workspaceChatTooltip.part1', isBold: false}, - {text: 'productTrainingTooltip.workspaceChatTooltip.part2', isBold: true}, - ], + content: 'productTrainingTooltip.workspaceChatTooltip', onHideTooltip: (isDismissedUsingCloseButton = false) => dismissProductTraining(LHN_WORKSPACE_CHAT_TOOLTIP, isDismissedUsingCloseButton), name: LHN_WORKSPACE_CHAT_TOOLTIP, priority: 1800, shouldShow: ({isUserPolicyEmployee}) => isUserPolicyEmployee, }, [GBR_RBR_CHAT]: { - content: [ - {text: 'productTrainingTooltip.GBRRBRChat.part1', isBold: false}, - {text: 'productTrainingTooltip.GBRRBRChat.part2', isBold: true}, - {text: 'productTrainingTooltip.GBRRBRChat.part3', isBold: false}, - {text: 'productTrainingTooltip.GBRRBRChat.part4', isBold: true}, - ], + content: 'productTrainingTooltip.GBRRBRChat', onHideTooltip: () => dismissProductTraining(GBR_RBR_CHAT), name: GBR_RBR_CHAT, priority: 1900, shouldShow: () => true, }, [ACCOUNT_SWITCHER]: { - content: [ - {text: 'productTrainingTooltip.accountSwitcher.part1', isBold: false}, - {text: 'productTrainingTooltip.accountSwitcher.part2', isBold: true}, - {text: 'productTrainingTooltip.accountSwitcher.part3', isBold: false}, - ], + content: 'productTrainingTooltip.accountSwitcher', onHideTooltip: () => dismissProductTraining(ACCOUNT_SWITCHER), name: ACCOUNT_SWITCHER, priority: 1600, shouldShow: () => true, }, [EXPENSE_REPORTS_FILTER]: { - content: [ - {text: 'productTrainingTooltip.expenseReportsFilter.part1', isBold: false}, - {text: 'productTrainingTooltip.expenseReportsFilter.part2', isBold: true}, - {text: 'productTrainingTooltip.expenseReportsFilter.part3', isBold: false}, - ], + content: 'productTrainingTooltip.expenseReportsFilter', onHideTooltip: () => dismissProductTraining(EXPENSE_REPORTS_FILTER), name: EXPENSE_REPORTS_FILTER, priority: 2000, @@ -132,10 +100,7 @@ const TOOLTIPS: Record = { !shouldUseNarrowLayout && isUserPolicyAdmin && hasBeenAddedToNudgeMigration, }, [SCAN_TEST_TOOLTIP]: { - content: [ - {text: 'productTrainingTooltip.scanTestTooltip.part1', isBold: true}, - {text: 'productTrainingTooltip.scanTestTooltip.part2', isBold: false}, - ], + content: 'productTrainingTooltip.scanTestTooltip.main', onHideTooltip: () => dismissProductTraining(SCAN_TEST_TOOLTIP), name: SCAN_TEST_TOOLTIP, priority: 900, @@ -143,42 +108,28 @@ const TOOLTIPS: Record = { shouldRenderActionButtons: true, }, [SCAN_TEST_TOOLTIP_MANAGER]: { - content: [ - {text: 'productTrainingTooltip.scanTestTooltip.part3', isBold: false}, - {text: 'productTrainingTooltip.scanTestTooltip.part4', isBold: true}, - {text: 'productTrainingTooltip.scanTestTooltip.part5', isBold: false}, - ], + content: 'productTrainingTooltip.scanTestTooltip.manager', onHideTooltip: (isDismissedUsingCloseButton = false) => dismissProductTraining(SCAN_TEST_TOOLTIP_MANAGER, isDismissedUsingCloseButton), name: SCAN_TEST_TOOLTIP_MANAGER, priority: 1000, shouldShow: ({hasBeenAddedToNudgeMigration}) => !hasBeenAddedToNudgeMigration, }, [SCAN_TEST_CONFIRMATION]: { - content: [ - {text: 'productTrainingTooltip.scanTestTooltip.part6', isBold: false}, - {text: 'productTrainingTooltip.scanTestTooltip.part7', isBold: true}, - {text: 'productTrainingTooltip.scanTestTooltip.part8', isBold: false}, - ], + content: 'productTrainingTooltip.scanTestTooltip.confirmation', onHideTooltip: (isDismissedUsingCloseButton = false) => dismissProductTraining(SCAN_TEST_CONFIRMATION, isDismissedUsingCloseButton), name: SCAN_TEST_CONFIRMATION, priority: 1100, shouldShow: ({hasBeenAddedToNudgeMigration}) => !hasBeenAddedToNudgeMigration, }, [OUTSTANDING_FILTER]: { - content: [ - {text: 'productTrainingTooltip.outstandingFilter.part1', isBold: false}, - {text: 'productTrainingTooltip.outstandingFilter.part2', isBold: true}, - ], + content: 'productTrainingTooltip.outstandingFilter', onHideTooltip: () => dismissProductTraining(OUTSTANDING_FILTER), name: OUTSTANDING_FILTER, priority: 1925, shouldShow: ({isUserPolicyAdmin}) => isUserPolicyAdmin, }, [SCAN_TEST_DRIVE_CONFIRMATION]: { - content: [ - {text: 'productTrainingTooltip.scanTestDriveTooltip.part1', isBold: false}, - {text: 'productTrainingTooltip.scanTestDriveTooltip.part2', isBold: true}, - ], + content: 'productTrainingTooltip.scanTestDriveTooltip', onHideTooltip: (isDismissedUsingCloseButton = false) => dismissProductTraining(SCAN_TEST_DRIVE_CONFIRMATION, isDismissedUsingCloseButton), name: SCAN_TEST_DRIVE_CONFIRMATION, priority: 1200, diff --git a/src/components/ProductTrainingContext/index.tsx b/src/components/ProductTrainingContext/index.tsx index 8b30c47042dc0..e04bb65f24475 100644 --- a/src/components/ProductTrainingContext/index.tsx +++ b/src/components/ProductTrainingContext/index.tsx @@ -4,7 +4,7 @@ import Button from '@components/Button'; import Icon from '@components/Icon'; import * as Expensicons from '@components/Icon/Expensicons'; import PressableWithoutFeedback from '@components/Pressable/PressableWithoutFeedback'; -import Text from '@components/Text'; +import RenderHTML from '@components/RenderHTML'; import useLocalize from '@hooks/useLocalize'; import useOnyx from '@hooks/useOnyx'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; @@ -294,19 +294,9 @@ const useProductTrainingContext = (tooltipName: ProductTrainingTooltipName, shou fill={theme.tooltipHighlightText} medium /> - - {tooltip.content.map(({text, isBold}) => { - const translatedText = translate(text); - return ( - - {translatedText} - - ); - })} - + + + {!tooltip?.shouldRenderActionButtons && ( Loslegen hier!', + saveSearchTooltip: 'Benennen Sie Ihre gespeicherten Suchen um hier!', + globalCreateTooltip: 'Ausgaben erstellen, beginnen Sie zu chatten, und mehr. Probieren Sie es aus!', + bottomNavInboxTooltip: 'Überprüfen Sie was benötigt Ihre Aufmerksamkeit und über Ausgaben chatten.', + workspaceChatTooltip: 'Chatten mit Genehmigern', + GBRRBRChat: 'Du wirst 🟢 auf sehen Maßnahmen ergreifen, und 🔴 auf Elemente zur Überprüfung.', + accountSwitcher: 'Zugriff auf Ihre Copilot-Konten hier', + expenseReportsFilter: 'Willkommen! Finden Sie alle Ihre Berichte des Unternehmens hier.', scanTestTooltip: { - part1: 'Möchten Sie sehen, wie Scan funktioniert?', - part2: 'Probieren Sie einen Testbeleg aus!', - part3: 'Wählen Sie unsere', - part4: 'Testmanager', - part5: 'um es auszuprobieren!', - part6: 'Jetzt,', - part7: 'Reichen Sie Ihre Ausgaben ein', - part8: 'und sieh zu, wie die Magie geschieht!', + main: 'Möchten Sie sehen, wie Scan funktioniert? Probieren Sie einen Testbeleg aus!', + manager: 'Wählen Sie unsere Testmanager, um es auszuprobieren!', + confirmation: 'Jetzt, Reichen Sie Ihre Ausgaben ein und sieh zu, wie die Magie geschieht!', tryItOut: 'Probieren Sie es aus', noThanks: 'Nein danke', }, - outstandingFilter: { - part1: 'Filter für Ausgaben, die', - part2: 'Genehmigung erforderlich', - }, - scanTestDriveTooltip: { - part1: 'Diesen Beleg senden an', - part2: 'Beenden Sie die Probefahrt!', - }, + outstandingFilter: 'Filter für Ausgaben, die Genehmigung erforderlich', + scanTestDriveTooltip: 'Diesen Beleg senden an Beenden Sie die Probefahrt!', }, discardChangesConfirmation: { title: 'Änderungen verwerfen?', diff --git a/src/languages/en.ts b/src/languages/en.ts index 362abadf8a4ee..67599a68be3f7 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -6911,66 +6911,23 @@ const translations = { productTrainingTooltip: { // TODO: CONCIERGE_LHN_GBR tooltip will be replaced by a tooltip in the #admins room // https://github.com/Expensify/App/issues/57045#issuecomment-2701455668 - conciergeLHNGBR: { - part1: 'Get started', - part2: ' here!', - }, - saveSearchTooltip: { - part1: 'Rename your saved searches', - part2: ' here!', - }, - bottomNavInboxTooltip: { - part1: 'Check what ', - part2: 'needs your attention', - part3: '\nand ', - part4: 'chat about expenses.', - }, - workspaceChatTooltip: { - part1: 'Chat with ', - part2: 'approvers', - }, - globalCreateTooltip: { - part1: 'Create expenses', - part2: ', start chatting,', - part3: '\nand more.', - part4: ' Try it out!', - }, - GBRRBRChat: { - part1: 'You’ll see 🟢 on ', - part2: 'actions to take', - part3: ',\nand 🔴 on ', - part4: 'items to review.', - }, - accountSwitcher: { - part1: 'Access your ', - part2: 'Copilot accounts', - part3: ' here', - }, - expenseReportsFilter: { - part1: 'Welcome! Find all of your', - part2: "\ncompany's reports", - part3: ' here.', - }, + conciergeLHNGBR: 'Get started here!', + saveSearchTooltip: 'Rename your saved searches here!', + globalCreateTooltip: 'Create expenses, start chatting,\nand more. Try it out!', + bottomNavInboxTooltip: 'Check what needs your attention\nand chat about expenses.', + workspaceChatTooltip: 'Chat with approvers', + GBRRBRChat: 'You’ll see 🟢 on actions to take,\nand 🔴 on items to review.', + accountSwitcher: 'Access your Copilot accounts here', + expenseReportsFilter: "Welcome! Find all of your\ncompany's reports here.", scanTestTooltip: { - part1: 'Scan our test receipt', - part2: ' to see how it works!', - part3: 'Choose our', - part4: ' test manager', - part5: ' to try it out!', - part6: 'Now,', - part7: ' submit your expense', - part8: ' and watch the\nmagic happen!', + main: 'Scan our test receipt to see how it works!', + manager: 'Choose our test manager to try it out!', + confirmation: 'Now, submit your expense and watch the\nmagic happen!', tryItOut: 'Try it out', noThanks: 'No thanks', }, - outstandingFilter: { - part1: 'Filter for expenses\nthat ', - part2: 'need approval', - }, - scanTestDriveTooltip: { - part1: 'Send this receipt to\n', - part2: 'complete the test drive!', - }, + outstandingFilter: 'Filter for expenses\nthat need approval', + scanTestDriveTooltip: 'Send this receipt to\ncomplete the test drive!', }, discardChangesConfirmation: { title: 'Discard changes?', diff --git a/src/languages/es.ts b/src/languages/es.ts index 0232a33a3c2f7..92ba1dc7df182 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -7404,66 +7404,23 @@ const translations = { productTrainingTooltip: { // TODO: CONCIERGE_LHN_GBR tooltip will be replaced by a tooltip in the #admins room // https://github.com/Expensify/App/issues/57045#issuecomment-2701455668 - conciergeLHNGBR: { - part1: '¡Comienza', - part2: ' aquí!', - }, - saveSearchTooltip: { - part1: 'Renombra tus búsquedas guardadas', - part2: ' aquí', - }, - bottomNavInboxTooltip: { - part1: 'Revisa lo que ', - part2: 'necesita tu atención', - part3: '\ny ', - part4: 'chatea sobre los gastos.', - }, - workspaceChatTooltip: { - part1: 'Chatea con ', - part2: 'los aprobadores', - }, - globalCreateTooltip: { - part1: 'Crea gastos', - part2: ', empieza a chatear', - part3: '\ny más.', - part4: ' ¡Pruébalo!', - }, - GBRRBRChat: { - part1: 'Verás 🟢 en ', - part2: 'acciones a realizar', - part3: ',\ny 🔴 en ', - part4: 'elementos para revisar.', - }, - accountSwitcher: { - part1: 'Accede a tus ', - part2: 'cuentas copiloto', - part3: ' aquí', - }, - expenseReportsFilter: { - part1: '¡Bienvenido! Aquí encontrarás todos los', - part2: '\ninformes de tu empresa', - part3: '.', - }, + conciergeLHNGBR: '¡Comienza aquí!', + saveSearchTooltip: 'Renombra tus búsquedas guardadas aquí', + globalCreateTooltip: 'Crea gastos, empieza a chatear\ny más. ¡Pruébalo!', + bottomNavInboxTooltip: 'Revisa lo que necesita tu atención\ny chatea sobre los gastos.', + workspaceChatTooltip: 'Chatea con los aprobadores', + GBRRBRChat: 'Verás 🟢 en acciones a realizar,\ny 🔴 en elementos para revisar.', + accountSwitcher: 'Accede a tus cuentas copiloto aquí', + expenseReportsFilter: '¡Bienvenido! Aquí encontrarás todos los\ninformes de tu empresa.', scanTestTooltip: { - part1: '¡Escanea nuestro recibo de prueba', - part2: ' para ver cómo funciona!', - part3: '¡Elige a', - part4: ' nuestro gerente', - part5: ' de prueba para probarlo!', - part6: 'Ahora,', - part7: ' envía tu gasto y', - part8: '\n¡observa cómo ocurre la magia!', + main: '¡Escanea nuestro recibo de prueba para ver cómo funciona!', + manager: '¡Elige a nuestro gerente de prueba para probarlo!', + confirmation: 'Ahora, envía tu gasto y\n¡observa cómo ocurre la magia!', tryItOut: 'Prueba esto', noThanks: 'No, gracias', }, - outstandingFilter: { - part1: 'Filtra los gastos\nque ', - part2: 'necesitan aprobación', - }, - scanTestDriveTooltip: { - part1: '¡Envía este recibo para\n', - part2: 'completar la prueba!', - }, + outstandingFilter: 'Filtra los gastos\nque necesitan aprobación', + scanTestDriveTooltip: '¡Envía este recibo para\ncompletar la prueba!', }, discardChangesConfirmation: { title: '¿Descartar cambios?', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 6c4454506e091..40e7d4b10d5ab 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -6960,66 +6960,23 @@ const translations = { productTrainingTooltip: { // TODO: CONCIERGE_LHN_GBR tooltip will be replaced by a tooltip in the #admins room // https://github.com/Expensify/App/issues/57045#issuecomment-2701455668 - conciergeLHNGBR: { - part1: 'Commencer', - part2: 'ici !', - }, - saveSearchTooltip: { - part1: 'Renommez vos recherches enregistrées', - part2: 'ici !', - }, - bottomNavInboxTooltip: { - part1: 'Vérifier quoi', - part2: 'nécessite votre attention', - part3: 'et', - part4: 'discuter des dépenses.', - }, - workspaceChatTooltip: { - part1: 'Discuter avec', - part2: 'approbateurs', - }, - globalCreateTooltip: { - part1: 'Créer des dépenses', - part2: ', commencer à discuter,', - part3: 'et plus.', - part4: 'Essayez-le !', - }, - GBRRBRChat: { - part1: 'Vous verrez 🟢 sur', - part2: 'actions à entreprendre', - part3: ',\net 🔴 sur', - part4: 'éléments à examiner.', - }, - accountSwitcher: { - part1: 'Accédez à votre', - part2: 'Comptes Copilot', - part3: 'ici', - }, - expenseReportsFilter: { - part1: 'Bienvenue ! Trouvez tous vos', - part2: "rapports de l'entreprise", - part3: 'ici.', - }, + conciergeLHNGBR: 'Commencer ici !', + saveSearchTooltip: 'Renommez vos recherches enregistrées ici !', + globalCreateTooltip: 'Créer des dépenses, commencer à discuter, et plus. Essayez-le !', + bottomNavInboxTooltip: 'Vérifier quoi nécessite votre attention et discuter des dépenses.', + workspaceChatTooltip: 'Discuter avec approbateurs', + GBRRBRChat: 'Vous verrez 🟢 sur actions à entreprendre,\net 🔴 sur éléments à examiner.', + accountSwitcher: 'Accédez à votre Comptes Copilot ici', + expenseReportsFilter: "Bienvenue ! Trouvez tous vos rapports de l'entreprise ici.", scanTestTooltip: { - part1: 'Vous voulez voir comment fonctionne Scan ?', - part2: 'Essayez un reçu de test !', - part3: 'Choisissez notre', - part4: 'responsable des tests', - part5: "pour l'essayer !", - part6: 'Maintenant,', - part7: 'soumettez votre dépense', - part8: 'et regardez la magie opérer !', + main: 'Vous voulez voir comment fonctionne Scan ? Essayez un reçu de test !', + manager: "Choisissez notre responsable des tests pour l'essayer !", + confirmation: 'Maintenant, soumettez votre dépense et regardez la magie opérer !', tryItOut: 'Essayez-le', noThanks: 'Non merci', }, - outstandingFilter: { - part1: 'Filtrer les dépenses qui', - part2: "besoin d'approbation", - }, - scanTestDriveTooltip: { - part1: 'Envoyer ce reçu à', - part2: "complétez l'essai !", - }, + outstandingFilter: "Filtrer les dépenses qui besoin d'approbation", + scanTestDriveTooltip: "Envoyer ce reçu àcomplétez l'essai !", }, discardChangesConfirmation: { title: 'Annuler les modifications ?', diff --git a/src/languages/it.ts b/src/languages/it.ts index ac09e05f0465b..05e03a9b0812c 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -6962,66 +6962,23 @@ const translations = { productTrainingTooltip: { // TODO: CONCIERGE_LHN_GBR tooltip will be replaced by a tooltip in the #admins room // https://github.com/Expensify/App/issues/57045#issuecomment-2701455668 - conciergeLHNGBR: { - part1: 'Inizia', - part2: 'qui!', - }, - saveSearchTooltip: { - part1: 'Rinomina le tue ricerche salvate', - part2: 'qui!', - }, - bottomNavInboxTooltip: { - part1: 'Check what', - part2: 'richiede la tua attenzione', - part3: 'e', - part4: 'chatta sulle spese.', - }, - workspaceChatTooltip: { - part1: 'Chatta con', - part2: 'approvatori', - }, - globalCreateTooltip: { - part1: 'Crea spese', - part2: ', inizia a chattare,', - part3: 'e altro ancora.', - part4: 'Provalo!', - }, - GBRRBRChat: { - part1: 'Vedrai 🟢 su', - part2: 'azioni da intraprendere', - part3: ',\ne 🔴 su', - part4: 'elementi da rivedere.', - }, - accountSwitcher: { - part1: 'Accedi al tuo', - part2: 'Account Copilot', - part3: 'qui', - }, - expenseReportsFilter: { - part1: 'Benvenuto! Trova tutti i tuoi', - part2: "rapporti dell'azienda", - part3: 'qui.', - }, + conciergeLHNGBR: 'Inizia qui!', + saveSearchTooltip: 'Rinomina le tue ricerche salvate qui!', + globalCreateTooltip: 'Crea spese, inizia a chattare, e altro ancora. Provalo!', + bottomNavInboxTooltip: 'Controlla cosa richiede la tua attenzione e chatta sulle spese.', + workspaceChatTooltip: 'Chatta con approvatori', + GBRRBRChat: 'Vedrai 🟢 su azioni da intraprendere,\ne 🔴 su elementi da rivedere.', + accountSwitcher: 'Accedi al tuo Account Copilot qui', + expenseReportsFilter: "Benvenuto! Trova tutti i tuoi rapporti dell'azienda qui.", scanTestTooltip: { - part1: 'Vuoi vedere come funziona Scan?', - part2: 'Prova una ricevuta di test!', - part3: 'Scegli il nostro', - part4: 'responsabile dei test', - part5: 'per provarlo!', - part6: 'Ora,', - part7: 'invia la tua spesa', - part8: 'e guarda la magia accadere!', + main: 'Vuoi vedere come funziona Scan? Prova una ricevuta di test!', + manager: 'Scegli il nostro responsabile dei test per provarlo!', + confirmation: 'Ora, invia la tua spesa e guarda la magia accadere!', tryItOut: 'Provalo', noThanks: 'No grazie', }, - outstandingFilter: { - part1: 'Filtra per spese che', - part2: 'necessita approvazione', - }, - scanTestDriveTooltip: { - part1: 'Invia questa ricevuta a', - part2: 'completa il test drive!', - }, + outstandingFilter: 'Filtra per spese che necessita approvazione', + scanTestDriveTooltip: 'Invia questa ricevuta a completa il test drive!', }, discardChangesConfirmation: { title: 'Eliminare le modifiche?', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index c42bca398a10b..370d3540d1c77 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -6917,66 +6917,23 @@ const translations = { productTrainingTooltip: { // TODO: CONCIERGE_LHN_GBR tooltip will be replaced by a tooltip in the #admins room // https://github.com/Expensify/App/issues/57045#issuecomment-2701455668 - conciergeLHNGBR: { - part1: '始めましょう', - part2: 'ここにいます!', - }, - saveSearchTooltip: { - part1: '保存した検索の名前を変更する', - part2: 'ここにいます!', - }, - bottomNavInboxTooltip: { - part1: '何を確認しますか?', - part2: 'あなたの注意が必要です', - part3: 'および', - part4: '経費についてチャットする。', - }, - workspaceChatTooltip: { - part1: 'とチャット', - part2: '承認者', - }, - globalCreateTooltip: { - part1: '経費を作成', - part2: ', チャットを開始,', - part3: 'その他。', - part4: '試してみてください!', - }, - GBRRBRChat: { - part1: 'あなたは🟢を見るでしょう', - part2: '取るべき行動', - part3: '、\nおよび 🔴 に', - part4: 'レビューする項目。', - }, - accountSwitcher: { - part1: 'アクセスする', - part2: 'Copilotアカウント', - part3: 'ここ', - }, - expenseReportsFilter: { - part1: 'ようこそ!すべてのあなたの', - part2: '会社のレポート', - part3: 'here.', - }, + conciergeLHNGBR: 'ここから始めましょう!', + saveSearchTooltip: '保存した検索に名前を付け直すにはこちら!', + globalCreateTooltip: '経費を作成、チャットを開始、さらにいろいろ。試してみてください!', + bottomNavInboxTooltip: '注意が必要なものを確認して、経費についてチャットしましょう。', + workspaceChatTooltip: '承認者とチャットしましょう', + GBRRBRChat: '対応が必要なアクションには🟢、\n確認が必要な項目には🔴が表示されます。', + accountSwitcher: 'コパイロットアカウントにアクセスするにはこちら', + expenseReportsFilter: 'ようこそ!会社のすべてのレポートをここで確認できます。', scanTestTooltip: { - part1: 'Scanの動作を確認しますか?', - part2: 'テスト領収書を試してみてください!', - part3: '私たちの〜を選んでください', - part4: 'テストマネージャー', - part5: '試してみてください!', - part6: '今、', - part7: '経費を提出する', - part8: 'そして魔法が起こるのを見てください!', - tryItOut: '試してみてください', + main: 'テスト用レシートをスキャンして仕組みを確認しましょう!', + manager: 'テストマネージャーを選んで試してみましょう!', + confirmation: '次に、経費を提出して魔法を見てみましょう!', + tryItOut: '試してみる', noThanks: '結構です', }, - outstandingFilter: { - part1: '以下の条件に一致する経費をフィルタリング', - part2: '承認が必要です', - }, - scanTestDriveTooltip: { - part1: 'この領収書を送信先', - part2: 'テストドライブを完了してください!', - }, + outstandingFilter: '承認が必要な経費で絞り込みます', + scanTestDriveTooltip: 'このレシートを送信してテストドライブを完了しましょう!', }, discardChangesConfirmation: { title: '変更を破棄しますか?', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 29c82549b36a1..d513052a59dc6 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -6952,66 +6952,23 @@ const translations = { productTrainingTooltip: { // TODO: CONCIERGE_LHN_GBR tooltip will be replaced by a tooltip in the #admins room // https://github.com/Expensify/App/issues/57045#issuecomment-2701455668 - conciergeLHNGBR: { - part1: 'Aan de slag', - part2: 'hier!', - }, - saveSearchTooltip: { - part1: 'Hernoem uw opgeslagen zoekopdrachten', - part2: 'hier!', - }, - bottomNavInboxTooltip: { - part1: 'Check wat', - part2: 'heeft uw aandacht nodig', - part3: 'en', - part4: 'chat over uitgaven.', - }, - workspaceChatTooltip: { - part1: 'Chat met', - part2: 'goedkeurders', - }, - globalCreateTooltip: { - part1: 'Maak onkosten aan', - part2: ', begin met chatten,', - part3: 'en meer.', - part4: 'Probeer het uit!', - }, - GBRRBRChat: { - part1: 'Je zult 🟢 zien op', - part2: 'acties om te ondernemen', - part3: ',\nen 🔴 op', - part4: 'items om te beoordelen.', - }, - accountSwitcher: { - part1: 'Toegang tot uw', - part2: 'Copilot-accounts', - part3: 'hier', - }, - expenseReportsFilter: { - part1: 'Welkom! Vind al uw', - part2: 'rapporten van het bedrijf', - part3: 'hier.', - }, + conciergeLHNGBR: 'Aan de slag hier!', + saveSearchTooltip: 'Hernoem uw opgeslagen zoekopdrachten hier!', + globalCreateTooltip: 'Maak onkosten aan, begin met chatten,\nen meer. Probeer het uit!', + bottomNavInboxTooltip: 'Bekijk wat jouw aandacht nodig heeft\nen chat over onkosten.', + workspaceChatTooltip: 'Chat met goedkeurders', + GBRRBRChat: 'Je ziet 🟢 bij acties die je moet uitvoeren,\nen 🔴 bij items die je moet beoordelen.', + accountSwitcher: 'Toegang tot je Copilot-accounts hier', + expenseReportsFilter: 'Welkom! Vind hier al je\nbedrijfsrapporten.', scanTestTooltip: { - part1: 'Wil je zien hoe Scan werkt?', - part2: 'Probeer een testbon!', - part3: 'Kies onze', - part4: 'testmanager', - part5: 'om het uit te proberen!', - part6: 'Nu,', - part7: 'dien uw onkostennota in', - part8: 'en zie de magie gebeuren!', + main: 'Scan ons testbonnetje om te zien hoe het werkt!', + manager: 'Kies onze testmanager om het uit te proberen!', + confirmation: 'Dien nu je onkosten in en zie\nwat er gebeurt!', tryItOut: 'Probeer het uit', noThanks: 'Nee, bedankt', }, - outstandingFilter: { - part1: 'Filter voor uitgaven die', - part2: 'goedkeuring nodig', - }, - scanTestDriveTooltip: { - part1: 'Verzend deze bon naar', - part2: 'voltooi de proefrit!', - }, + outstandingFilter: 'Filter op onkosten\ndie goedkeuring nodig hebben', + scanTestDriveTooltip: 'Stuur dit bonnetje om de\ntest uit te voeren!', }, discardChangesConfirmation: { title: 'Wijzigingen negeren?', diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 7f2901696a7f8..360dc5cb3b549 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -6937,66 +6937,23 @@ const translations = { productTrainingTooltip: { // TODO: CONCIERGE_LHN_GBR tooltip will be replaced by a tooltip in the #admins room // https://github.com/Expensify/App/issues/57045#issuecomment-2701455668 - conciergeLHNGBR: { - part1: 'Zacznij teraz', - part2: 'tutaj!', - }, - saveSearchTooltip: { - part1: 'Zmień nazwę zapisanych wyszukiwań', - part2: 'tutaj!', - }, - bottomNavInboxTooltip: { - part1: 'Sprawdź co', - part2: 'wymaga Twojej uwagi', - part3: 'i', - part4: 'rozmowa o wydatkach.', - }, - workspaceChatTooltip: { - part1: 'Czat z', - part2: 'zatwierdzający', - }, - globalCreateTooltip: { - part1: 'Utwórz wydatki', - part2: ', rozpocznij czat,', - part3: 'i więcej.', - part4: 'Wypróbuj to!', - }, - GBRRBRChat: { - part1: 'Zobaczysz 🟢 na', - part2: 'działania do podjęcia', - part3: ', i 🔴 na', - part4: 'elementy do przejrzenia.', - }, - accountSwitcher: { - part1: 'Uzyskaj dostęp do swojego', - part2: 'Konta Copilot', - part3: 'tutaj', - }, - expenseReportsFilter: { - part1: 'Witamy! Znajdź wszystkie swoje', - part2: 'raporty firmy', - part3: 'here.', - }, + conciergeLHNGBR: 'Rozpocznij tutaj!', + saveSearchTooltip: 'Zmień nazwę zapisanych wyszukiwań tutaj!', + globalCreateTooltip: 'Utwórz wydatki, rozpocznij czat,\ni więcej. Wypróbuj!', + bottomNavInboxTooltip: 'Sprawdź, co wymaga Twojej uwagi\ni porozmawiaj o wydatkach.', + workspaceChatTooltip: 'Czatuj z osobami zatwierdzającymi', + GBRRBRChat: 'Zobaczysz 🟢 przy działaniach do wykonania,\na 🔴 przy elementach do przeglądu.', + accountSwitcher: 'Uzyskaj dostęp do kont Copilot tutaj', + expenseReportsFilter: 'Witamy! Znajdź wszystkie\nraporty swojej firmy tutaj.', scanTestTooltip: { - part1: 'Chcesz zobaczyć, jak działa Skanowanie?', - part2: 'Wypróbuj paragon testowy!', - part3: 'Wybierz nasz', - part4: 'kierownik testów', - part5: 'aby to wypróbować!', - part6: 'Teraz,', - part7: 'prześlij swój wydatek', - part8: 'i zobacz, jak dzieje się magia!', - tryItOut: 'Wypróbuj to', + main: 'Zeskanuj nasz testowy paragon, aby zobaczyć jak to działa!', + manager: 'Wybierz naszego testowego menedżera, aby spróbować!', + confirmation: 'Teraz zgłoś swój wydatek i zobacz, co się stanie!', + tryItOut: 'Wypróbuj', noThanks: 'Nie, dziękuję', }, - outstandingFilter: { - part1: 'Filtruj wydatki, które', - part2: 'potrzebna zgoda', - }, - scanTestDriveTooltip: { - part1: 'Wyślij ten paragon do', - part2: 'ukończ jazdę próbną!', - }, + outstandingFilter: 'Filtruj wydatki,\nktóre wymagają zatwierdzenia', + scanTestDriveTooltip: 'Wyślij ten paragon, aby\nukończyć test!', }, discardChangesConfirmation: { title: 'Odrzucić zmiany?', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index d36b4bd9620dd..c975f34f73f9e 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -6949,66 +6949,23 @@ const translations = { productTrainingTooltip: { // TODO: CONCIERGE_LHN_GBR tooltip will be replaced by a tooltip in the #admins room // https://github.com/Expensify/App/issues/57045#issuecomment-2701455668 - conciergeLHNGBR: { - part1: 'Comece agora', - part2: 'aqui!', - }, - saveSearchTooltip: { - part1: 'Renomeie suas pesquisas salvas', - part2: 'aqui!', - }, - bottomNavInboxTooltip: { - part1: 'Verificar o quê?', - part2: 'precisa da sua atenção', - part3: 'e', - part4: 'conversar sobre despesas.', - }, - workspaceChatTooltip: { - part1: 'Converse com', - part2: 'aprovadores', - }, - globalCreateTooltip: { - part1: 'Criar despesas', - part2: ', começar a conversar,', - part3: 'e mais.', - part4: 'Experimente!', - }, - GBRRBRChat: { - part1: 'Você verá 🟢 em', - part2: 'ações a serem tomadas', - part3: ',\ne 🔴 em', - part4: 'itens para revisar.', - }, - accountSwitcher: { - part1: 'Acesse seu', - part2: 'Contas Copilot', - part3: 'aqui', - }, - expenseReportsFilter: { - part1: 'Bem-vindo! Encontre todos os seus', - part2: 'relatórios da empresa', - part3: 'aqui.', - }, + conciergeLHNGBR: 'Comece aqui!', + saveSearchTooltip: 'Renomeie suas buscas salvas aqui!', + globalCreateTooltip: 'Crie despesas, comece um bate-papo,\ne mais. Experimente!', + bottomNavInboxTooltip: 'Veja o que precisa da sua atenção\ne converse sobre despesas.', + workspaceChatTooltip: 'Converse com os aprovadores', + GBRRBRChat: 'Você verá 🟢 nas ações a serem tomadas\ne 🔴 nos itens a revisar.', + accountSwitcher: 'Acesse suas contas Copilot aqui', + expenseReportsFilter: 'Bem-vindo! Encontre todos os\nrelatórios da sua empresa aqui.', scanTestTooltip: { - part1: 'Quer ver como o Scan funciona?', - part2: 'Experimente um recibo de teste!', - part3: 'Escolha nosso(a)', - part4: 'gerente de teste', - part5: 'para experimentar!', - part6: 'Agora,', - part7: 'envie sua despesa', - part8: 'e veja a mágica acontecer!', - tryItOut: 'Experimente', - noThanks: 'Não, obrigado.', - }, - outstandingFilter: { - part1: 'Filtrar por despesas que', - part2: 'precisa de aprovação', - }, - scanTestDriveTooltip: { - part1: 'Enviar este recibo para', - part2: 'complete o test drive!', - }, + main: 'Escaneie nosso recibo de teste para ver como funciona!', + manager: 'Escolha nosso gerente de teste para experimentar!', + confirmation: 'Agora, envie sua despesa e veja\na mágica acontecer!', + tryItOut: 'Experimentar', + noThanks: 'Não, obrigado', + }, + outstandingFilter: 'Filtrar despesas\nque precisam de aprovação', + scanTestDriveTooltip: 'Envie este recibo para\nconcluir o teste!', }, discardChangesConfirmation: { title: 'Descartar alterações?', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index d397e432d7618..88c5c6991c81a 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -6823,66 +6823,23 @@ const translations = { productTrainingTooltip: { // TODO: CONCIERGE_LHN_GBR tooltip will be replaced by a tooltip in the #admins room // https://github.com/Expensify/App/issues/57045#issuecomment-2701455668 - conciergeLHNGBR: { - part1: '开始使用', - part2: '这里!', - }, - saveSearchTooltip: { - part1: '重命名您保存的搜索', - part2: '这里!', - }, - bottomNavInboxTooltip: { - part1: '检查什么', - part2: '需要您的注意', - part3: '和', - part4: '聊天关于费用。', - }, - workspaceChatTooltip: { - part1: '与 交谈', - part2: '审批人', - }, - globalCreateTooltip: { - part1: '创建费用', - part2: ',开始聊天,', - part3: '和更多。', - part4: '试试看!', - }, - GBRRBRChat: { - part1: '您将在 🟢 上看到', - part2: '采取的行动', - part3: ',和🔴在', - part4: '待审核项目。', - }, - accountSwitcher: { - part1: '访问您的', - part2: 'Copilot 账户', - part3: '这里', - }, - expenseReportsFilter: { - part1: '欢迎!查找您的所有', - part2: '公司的报告', - part3: 'here.', - }, + conciergeLHNGBR: '从这里开始', + saveSearchTooltip: '在这里重命名你保存的搜索', + globalCreateTooltip: '创建报销、开始聊天,以及更多功能。试试看', + bottomNavInboxTooltip: '查看需要你关注的事项\n并讨论报销事项。', + workspaceChatTooltip: '审批人聊天', + GBRRBRChat: '需要操作的项目会显示🟢,\n需要审核的项目会显示🔴。', + accountSwitcher: '在这里访问你的副账户', + expenseReportsFilter: '欢迎!在这里查找你所有的\n公司报表', scanTestTooltip: { - part1: '想看看扫描功能如何运作吗?', - part2: '试用测试收据!', - part3: '选择我们的', - part4: '测试经理', - part5: '试试看吧!', - part6: '现在,', - part7: '提交您的费用报销单', - part8: '并见证奇迹的发生!', + main: '扫描我们的测试发票了解其运作方式!', + manager: '选择我们的测试经理来试用!', + confirmation: '现在,提交你的报销,看看会发生什么!', tryItOut: '试试看', - noThanks: '不,谢谢', - }, - outstandingFilter: { - part1: '筛选符合以下条件的费用:', - part2: '需要批准', - }, - scanTestDriveTooltip: { - part1: '将此收据发送给', - part2: '完成试驾!', + noThanks: '不用了', }, + outstandingFilter: '筛选出\n需要审批的报销', + scanTestDriveTooltip: '发送此发票以\n完成测试流程!', }, discardChangesConfirmation: { title: '放弃更改?',