@@ -2,7 +2,8 @@ import {findFocusedRoute, getStateFromPath} from '@react-navigation/native';
22import type { NavigationState , PartialState } from '@react-navigation/native' ;
33import Onyx from 'react-native-onyx' ;
44import type { ValueOf } from 'type-fest' ;
5- import { translateLocal } from '@libs/Localize' ;
5+ import { translate } from '@libs/Localize' ;
6+ import BaseLocaleListener from '@libs/Localize/LocaleListener/BaseLocaleListener' ;
67import getAdaptedStateFromPath from '@libs/Navigation/helpers/getAdaptedStateFromPath' ;
78import { linkingConfig } from '@libs/Navigation/linkingConfig' ;
89import { navigationRef } from '@libs/Navigation/Navigation' ;
@@ -12,7 +13,7 @@ import CONST from '@src/CONST';
1213import NAVIGATORS from '@src/NAVIGATORS' ;
1314import ONYXKEYS from '@src/ONYXKEYS' ;
1415import ROUTES from '@src/ROUTES' ;
15- import type Onboarding from '@src/types/onyx/Onboarding ' ;
16+ import type { Locale , Onboarding } from '@src/types/onyx' ;
1617
1718let onboardingInitialPath = '' ;
1819const onboardingLastVisitedPathConnection = Onyx . connect ( {
@@ -140,53 +141,54 @@ function getOnboardingInitialPath(getOnboardingInitialPathParams: GetOnboardingI
140141 return onboardingInitialPath ;
141142}
142143
143- const getOnboardingMessages = ( ) => {
144+ const getOnboardingMessages = ( locale ?: Locale ) => {
145+ const resolvedLocale = locale ?? BaseLocaleListener . getPreferredLocale ( ) ;
144146 const testDrive = {
145- ONBOARDING_TASK_NAME : translateLocal ( 'onboarding.testDrive.name' , { } ) ,
147+ ONBOARDING_TASK_NAME : translate ( resolvedLocale , 'onboarding.testDrive.name' , { } ) ,
146148 EMBEDDED_DEMO_WHITELIST : [ 'http://' , 'https://' , 'about:' ] as string [ ] ,
147- EMBEDDED_DEMO_IFRAME_TITLE : translateLocal ( 'onboarding.testDrive.embeddedDemoIframeTitle' ) ,
149+ EMBEDDED_DEMO_IFRAME_TITLE : translate ( resolvedLocale , 'onboarding.testDrive.embeddedDemoIframeTitle' ) ,
148150 EMPLOYEE_FAKE_RECEIPT : {
149151 AMOUNT : 2000 ,
150152 CURRENCY : 'USD' ,
151- DESCRIPTION : translateLocal ( 'onboarding.testDrive.employeeFakeReceipt.description' ) ,
153+ DESCRIPTION : translate ( resolvedLocale , 'onboarding.testDrive.employeeFakeReceipt.description' ) ,
152154 MERCHANT : "Tommy's Tires" ,
153155 } ,
154156 } ;
155157 const createReportTask : OnboardingTask = {
156158 type : 'createReport' ,
157159 autoCompleted : false ,
158160 mediaAttributes : { } ,
159- title : translateLocal ( 'onboarding.tasks.createReportTask.title' ) ,
160- description : translateLocal ( 'onboarding.tasks.createReportTask.description' ) ,
161+ title : translate ( resolvedLocale , 'onboarding.tasks.createReportTask.title' ) ,
162+ description : translate ( resolvedLocale , 'onboarding.tasks.createReportTask.description' ) ,
161163 } ;
162164 const testDriveAdminTask : OnboardingTask = {
163165 type : 'viewTour' ,
164166 autoCompleted : false ,
165167 mediaAttributes : { } ,
166- title : ( { testDriveURL} ) => translateLocal ( 'onboarding.tasks.testDriveAdminTask.title' , { testDriveURL} ) ,
167- description : ( { testDriveURL} ) => translateLocal ( 'onboarding.tasks.testDriveAdminTask.description' , { testDriveURL} ) ,
168+ title : ( { testDriveURL} ) => translate ( resolvedLocale , 'onboarding.tasks.testDriveAdminTask.title' , { testDriveURL} ) ,
169+ description : ( { testDriveURL} ) => translate ( resolvedLocale , 'onboarding.tasks.testDriveAdminTask.description' , { testDriveURL} ) ,
168170 } ;
169171 const testDriveEmployeeTask : OnboardingTask = {
170172 type : 'viewTour' ,
171173 autoCompleted : false ,
172174 mediaAttributes : { } ,
173- title : ( { testDriveURL} ) => translateLocal ( 'onboarding.tasks.testDriveEmployeeTask.title' , { testDriveURL} ) ,
174- description : ( { testDriveURL} ) => translateLocal ( 'onboarding.tasks.testDriveEmployeeTask.description' , { testDriveURL} ) ,
175+ title : ( { testDriveURL} ) => translate ( resolvedLocale , 'onboarding.tasks.testDriveEmployeeTask.title' , { testDriveURL} ) ,
176+ description : ( { testDriveURL} ) => translate ( resolvedLocale , 'onboarding.tasks.testDriveEmployeeTask.description' , { testDriveURL} ) ,
175177 } ;
176178 const createTestDriveAdminWorkspaceTask : OnboardingTask = {
177179 type : 'createWorkspace' ,
178180 autoCompleted : false ,
179181 mediaAttributes : { } ,
180- title : ( { workspaceConfirmationLink} ) => translateLocal ( 'onboarding.tasks.createTestDriveAdminWorkspaceTask.title' , { workspaceConfirmationLink} ) ,
181- description : translateLocal ( 'onboarding.tasks.createTestDriveAdminWorkspaceTask.description' ) ,
182+ title : ( { workspaceConfirmationLink} ) => translate ( resolvedLocale , 'onboarding.tasks.createTestDriveAdminWorkspaceTask.title' , { workspaceConfirmationLink} ) ,
183+ description : translate ( resolvedLocale , 'onboarding.tasks.createTestDriveAdminWorkspaceTask.description' ) ,
182184 } ;
183185
184186 const createWorkspaceTask : OnboardingTask = {
185187 type : 'createWorkspace' ,
186188 autoCompleted : true ,
187189 mediaAttributes : { } ,
188- title : ( { workspaceSettingsLink} ) => translateLocal ( 'onboarding.tasks.createWorkspaceTask.title' , { workspaceSettingsLink} ) ,
189- description : ( { workspaceSettingsLink} ) => translateLocal ( 'onboarding.tasks.createWorkspaceTask.description' , { workspaceSettingsLink} ) ,
190+ title : ( { workspaceSettingsLink} ) => translate ( resolvedLocale , 'onboarding.tasks.createWorkspaceTask.title' , { workspaceSettingsLink} ) ,
191+ description : ( { workspaceSettingsLink} ) => translate ( resolvedLocale , 'onboarding.tasks.createWorkspaceTask.description' , { workspaceSettingsLink} ) ,
190192 } ;
191193
192194 const setupCategoriesTask : OnboardingTask = {
@@ -195,32 +197,32 @@ const getOnboardingMessages = () => {
195197 mediaAttributes : {
196198 [ `${ CONST . CLOUDFRONT_URL } /videos/walkthrough-categories-v2.mp4` ] : `data-expensify-thumbnail-url="${ CONST . CLOUDFRONT_URL } /images/walkthrough-categories.png" data-expensify-width="1920" data-expensify-height="1080"` ,
197199 } ,
198- title : ( { workspaceCategoriesLink} ) => translateLocal ( 'onboarding.tasks.setupCategoriesTask.title' , { workspaceCategoriesLink} ) ,
199- description : ( { workspaceCategoriesLink} ) => translateLocal ( 'onboarding.tasks.setupCategoriesTask.description' , { workspaceCategoriesLink} ) ,
200+ title : ( { workspaceCategoriesLink} ) => translate ( resolvedLocale , 'onboarding.tasks.setupCategoriesTask.title' , { workspaceCategoriesLink} ) ,
201+ description : ( { workspaceCategoriesLink} ) => translate ( resolvedLocale , 'onboarding.tasks.setupCategoriesTask.description' , { workspaceCategoriesLink} ) ,
200202 } ;
201203
202204 const combinedTrackSubmitExpenseTask : OnboardingTask = {
203205 type : 'submitExpense' ,
204206 autoCompleted : false ,
205207 mediaAttributes : { } ,
206- title : translateLocal ( 'onboarding.tasks.combinedTrackSubmitExpenseTask.title' ) ,
207- description : translateLocal ( 'onboarding.tasks.combinedTrackSubmitExpenseTask.description' ) ,
208+ title : translate ( resolvedLocale , 'onboarding.tasks.combinedTrackSubmitExpenseTask.title' ) ,
209+ description : translate ( resolvedLocale , 'onboarding.tasks.combinedTrackSubmitExpenseTask.description' ) ,
208210 } ;
209211
210212 const adminSubmitExpenseTask : OnboardingTask = {
211213 type : 'submitExpense' ,
212214 autoCompleted : false ,
213215 mediaAttributes : { } ,
214- title : translateLocal ( 'onboarding.tasks.adminSubmitExpenseTask.title' ) ,
215- description : translateLocal ( 'onboarding.tasks.adminSubmitExpenseTask.description' ) ,
216+ title : translate ( resolvedLocale , 'onboarding.tasks.adminSubmitExpenseTask.title' ) ,
217+ description : translate ( resolvedLocale , 'onboarding.tasks.adminSubmitExpenseTask.description' ) ,
216218 } ;
217219
218220 const trackExpenseTask : OnboardingTask = {
219221 type : 'trackExpense' ,
220222 autoCompleted : false ,
221223 mediaAttributes : { } ,
222- title : translateLocal ( 'onboarding.tasks.trackExpenseTask.title' ) ,
223- description : translateLocal ( 'onboarding.tasks.trackExpenseTask.description' ) ,
224+ title : translate ( resolvedLocale , 'onboarding.tasks.trackExpenseTask.title' ) ,
225+ description : translate ( resolvedLocale , 'onboarding.tasks.trackExpenseTask.description' ) ,
224226 } ;
225227
226228 const addAccountingIntegrationTask : OnboardingTask = {
@@ -231,14 +233,15 @@ const getOnboardingMessages = () => {
231233 [ `${ CONST . CLOUDFRONT_URL } /${ CONST . connectionsVideoPaths [ CONST . ONBOARDING_ACCOUNTING_MAPPING . quickbooksOnline ] } ` ] : `data-expensify-thumbnail-url="${ CONST . CLOUDFRONT_URL } /images/walkthrough-connect_to_qbo.png" data-expensify-width="1920" data-expensify-height="1080"` ,
232234 [ `${ CONST . CLOUDFRONT_URL } /${ CONST . connectionsVideoPaths [ CONST . ONBOARDING_ACCOUNTING_MAPPING . xero ] } ` ] : `data-expensify-thumbnail-url="${ CONST . CLOUDFRONT_URL } /images/walkthrough-connect_to_xero.png" data-expensify-width="1920" data-expensify-height="1080"` ,
233235 } ,
234- title : ( { integrationName, workspaceAccountingLink} ) => translateLocal ( 'onboarding.tasks.addAccountingIntegrationTask.title' , { integrationName, workspaceAccountingLink} ) ,
235- description : ( { integrationName, workspaceAccountingLink} ) => translateLocal ( 'onboarding.tasks.addAccountingIntegrationTask.description' , { integrationName, workspaceAccountingLink} ) ,
236+ title : ( { integrationName, workspaceAccountingLink} ) => translate ( resolvedLocale , 'onboarding.tasks.addAccountingIntegrationTask.title' , { integrationName, workspaceAccountingLink} ) ,
237+ description : ( { integrationName, workspaceAccountingLink} ) =>
238+ translate ( resolvedLocale , 'onboarding.tasks.addAccountingIntegrationTask.description' , { integrationName, workspaceAccountingLink} ) ,
236239 } ;
237240
238241 const connectCorporateCardTask : OnboardingTask = {
239242 type : 'connectCorporateCard' ,
240- title : ( { corporateCardLink} ) => translateLocal ( 'onboarding.tasks.connectCorporateCardTask.title' , { corporateCardLink} ) ,
241- description : ( { corporateCardLink} ) => translateLocal ( 'onboarding.tasks.connectCorporateCardTask.description' , { corporateCardLink} ) ,
243+ title : ( { corporateCardLink} ) => translate ( resolvedLocale , 'onboarding.tasks.connectCorporateCardTask.title' , { corporateCardLink} ) ,
244+ description : ( { corporateCardLink} ) => translate ( resolvedLocale , 'onboarding.tasks.connectCorporateCardTask.description' , { corporateCardLink} ) ,
242245 autoCompleted : false ,
243246 mediaAttributes : { } ,
244247 } ;
@@ -249,24 +252,24 @@ const getOnboardingMessages = () => {
249252 mediaAttributes : {
250253 [ `${ CONST . CLOUDFRONT_URL } /videos/walkthrough-invite_members-v2.mp4` ] : `data-expensify-thumbnail-url="${ CONST . CLOUDFRONT_URL } /images/walkthrough-invite_members.png" data-expensify-width="1920" data-expensify-height="1080"` ,
251254 } ,
252- title : ( { workspaceMembersLink} ) => translateLocal ( 'onboarding.tasks.inviteTeamTask.title' , { workspaceMembersLink} ) ,
253- description : ( { workspaceMembersLink} ) => translateLocal ( 'onboarding.tasks.inviteTeamTask.description' , { workspaceMembersLink} ) ,
255+ title : ( { workspaceMembersLink} ) => translate ( resolvedLocale , 'onboarding.tasks.inviteTeamTask.title' , { workspaceMembersLink} ) ,
256+ description : ( { workspaceMembersLink} ) => translate ( resolvedLocale , 'onboarding.tasks.inviteTeamTask.description' , { workspaceMembersLink} ) ,
254257 } ;
255258
256259 const setupCategoriesAndTags : OnboardingTask = {
257260 type : 'setupCategoriesAndTags' ,
258261 autoCompleted : false ,
259262 mediaAttributes : { } ,
260263 title : ( { workspaceCategoriesLink, workspaceMoreFeaturesLink} ) =>
261- translateLocal ( 'onboarding.tasks.setupCategoriesAndTags.title' , { workspaceCategoriesLink, workspaceMoreFeaturesLink} ) ,
264+ translate ( resolvedLocale , 'onboarding.tasks.setupCategoriesAndTags.title' , { workspaceCategoriesLink, workspaceMoreFeaturesLink} ) ,
262265 description : ( { workspaceCategoriesLink, workspaceAccountingLink} ) =>
263- translateLocal ( 'onboarding.tasks.setupCategoriesAndTags.description' , { workspaceCategoriesLink, workspaceAccountingLink} ) ,
266+ translate ( resolvedLocale , 'onboarding.tasks.setupCategoriesAndTags.description' , { workspaceCategoriesLink, workspaceAccountingLink} ) ,
264267 } ;
265268 const setupTagsTask : OnboardingTask = {
266269 type : 'setupTags' ,
267270 autoCompleted : false ,
268- title : ( { workspaceMoreFeaturesLink} ) => translateLocal ( 'onboarding.tasks.setupTagsTask.title' , { workspaceMoreFeaturesLink} ) ,
269- description : ( { workspaceMoreFeaturesLink} ) => translateLocal ( 'onboarding.tasks.setupTagsTask.description' , { workspaceMoreFeaturesLink} ) ,
271+ title : ( { workspaceMoreFeaturesLink} ) => translate ( resolvedLocale , 'onboarding.tasks.setupTagsTask.title' , { workspaceMoreFeaturesLink} ) ,
272+ description : ( { workspaceMoreFeaturesLink} ) => translate ( resolvedLocale , 'onboarding.tasks.setupTagsTask.description' , { workspaceMoreFeaturesLink} ) ,
270273 mediaAttributes : {
271274 [ `${ CONST . CLOUDFRONT_URL } /videos/walkthrough-tags-v2.mp4` ] : `data-expensify-thumbnail-url="${ CONST . CLOUDFRONT_URL } /images/walkthrough-tags.png" data-expensify-width="1920" data-expensify-height="1080"` ,
272275 } ,
@@ -276,28 +279,28 @@ const getOnboardingMessages = () => {
276279 type : 'startChat' ,
277280 autoCompleted : false ,
278281 mediaAttributes : { } ,
279- title : translateLocal ( 'onboarding.tasks.startChatTask.title' ) ,
280- description : translateLocal ( 'onboarding.tasks.startChatTask.description' ) ,
282+ title : translate ( resolvedLocale , 'onboarding.tasks.startChatTask.title' ) ,
283+ description : translate ( resolvedLocale , 'onboarding.tasks.startChatTask.description' ) ,
281284 } ;
282285
283286 const splitExpenseTask : OnboardingTask = {
284287 type : 'splitExpense' ,
285288 autoCompleted : false ,
286289 mediaAttributes : { } ,
287- title : translateLocal ( 'onboarding.tasks.splitExpenseTask.title' ) ,
288- description : translateLocal ( 'onboarding.tasks.splitExpenseTask.description' ) ,
290+ title : translate ( resolvedLocale , 'onboarding.tasks.splitExpenseTask.title' ) ,
291+ description : translate ( resolvedLocale , 'onboarding.tasks.splitExpenseTask.description' ) ,
289292 } ;
290293
291294 const reviewWorkspaceSettingsTask : OnboardingTask = {
292295 type : 'reviewWorkspaceSettings' ,
293296 autoCompleted : false ,
294297 mediaAttributes : { } ,
295- title : ( { workspaceSettingsLink} ) => translateLocal ( 'onboarding.tasks.reviewWorkspaceSettingsTask.title' , { workspaceSettingsLink} ) ,
296- description : ( { workspaceSettingsLink} ) => translateLocal ( 'onboarding.tasks.reviewWorkspaceSettingsTask.description' , { workspaceSettingsLink} ) ,
298+ title : ( { workspaceSettingsLink} ) => translate ( resolvedLocale , 'onboarding.tasks.reviewWorkspaceSettingsTask.title' , { workspaceSettingsLink} ) ,
299+ description : ( { workspaceSettingsLink} ) => translate ( resolvedLocale , 'onboarding.tasks.reviewWorkspaceSettingsTask.description' , { workspaceSettingsLink} ) ,
297300 } ;
298301
299302 const onboardingEmployerOrSubmitMessage : OnboardingMessage = {
300- message : translateLocal ( 'onboarding.messages.onboardingEmployerOrSubmitMessage' ) ,
303+ message : translate ( resolvedLocale , 'onboarding.messages.onboardingEmployerOrSubmitMessage' ) ,
301304 tasks : [ testDriveEmployeeTask , adminSubmitExpenseTask ] ,
302305 } ;
303306
@@ -307,7 +310,7 @@ const getOnboardingMessages = () => {
307310 } ;
308311
309312 const onboardingPersonalSpendMessage : OnboardingMessage = {
310- message : translateLocal ( 'onboarding.messages.onboardingPersonalSpendMessage' ) ,
313+ message : translate ( resolvedLocale , 'onboarding.messages.onboardingPersonalSpendMessage' ) ,
311314 tasks : [ testDriveEmployeeTask , trackExpenseTask ] ,
312315 } ;
313316 const combinedTrackSubmitOnboardingPersonalSpendMessage : OnboardingMessage = {
@@ -316,12 +319,12 @@ const getOnboardingMessages = () => {
316319 } ;
317320
318321 const onboardingMangeTeamMessage : OnboardingMessage = {
319- message : ( { onboardingCompanySize} ) => translateLocal ( 'onboarding.messages.onboardingMangeTeamMessage' , { onboardingCompanySize} ) ,
322+ message : ( { onboardingCompanySize} ) => translate ( resolvedLocale , 'onboarding.messages.onboardingMangeTeamMessage' , { onboardingCompanySize} ) ,
320323 tasks : [ createWorkspaceTask , testDriveAdminTask , addAccountingIntegrationTask , connectCorporateCardTask , inviteTeamTask , setupCategoriesAndTags , setupCategoriesTask , setupTagsTask ] ,
321324 } ;
322325
323326 const onboardingTrackWorkspaceMessage : OnboardingMessage = {
324- message : translateLocal ( 'onboarding.messages.onboardingTrackWorkspaceMessage' ) ,
327+ message : translate ( resolvedLocale , 'onboarding.messages.onboardingTrackWorkspaceMessage' ) ,
325328 video : {
326329 url : `${ CONST . CLOUDFRONT_URL } /videos/guided-setup-manage-team-v2.mp4` ,
327330 thumbnailUrl : `${ CONST . CLOUDFRONT_URL } /images/guided-setup-manage-team.jpg` ,
@@ -333,21 +336,21 @@ const getOnboardingMessages = () => {
333336 } ;
334337
335338 const onboardingChatSplitMessage : OnboardingMessage = {
336- message : translateLocal ( 'onboarding.messages.onboardingChatSplitMessage' ) ,
339+ message : translate ( resolvedLocale , 'onboarding.messages.onboardingChatSplitMessage' ) ,
337340 tasks : [ testDriveEmployeeTask , startChatTask , splitExpenseTask ] ,
338341 } ;
339342
340343 const onboardingAdminMessage : OnboardingMessage = {
341- message : translateLocal ( 'onboarding.messages.onboardingAdminMessage' ) ,
344+ message : translate ( resolvedLocale , 'onboarding.messages.onboardingAdminMessage' ) ,
342345 tasks : [ reviewWorkspaceSettingsTask , adminSubmitExpenseTask ] ,
343346 } ;
344347 const onboardingLookingAroundMessage : OnboardingMessage = {
345- message : translateLocal ( 'onboarding.messages.onboardingLookingAroundMessage' ) ,
348+ message : translate ( resolvedLocale , 'onboarding.messages.onboardingLookingAroundMessage' ) ,
346349 tasks : [ ] ,
347350 } ;
348351
349352 const onboardingTestDriveReceiverMessage : OnboardingMessage = {
350- message : translateLocal ( 'onboarding.messages.onboardingTestDriveReceiverMessage' ) ,
353+ message : translate ( resolvedLocale , 'onboarding.messages.onboardingTestDriveReceiverMessage' ) ,
351354 tasks : [ testDriveAdminTask , createTestDriveAdminWorkspaceTask ] ,
352355 } ;
353356
0 commit comments