{"nav.group.operation":"Operations","nav.group.people":"People","nav.group.config":"Configuration","nav.group.finance":"Finance","nav.group.system":"System","nav.dashboard":"Dashboard","nav.dispatch":"Dispatch","nav.trips":"Trips","nav.support":"Support","nav.sos":"SOS","nav.drivers":"Drivers","nav.riders":"Riders","nav.vehicles":"Vehicles","nav.staff":"Team","nav.deletion-requests":"Deletion requests","nav.zones":"Zones","nav.locations":"Cities","nav.vehicle-categories":"Categories","nav.driver-documents":"Driver documents","nav.vehicle-features":"Equipment","nav.pricing":"Pricing","nav.coverage":"Demand","nav.surge":"Surge","nav.promotions":"Promotions","nav.coupons":"Coupons","nav.finance":"Finance centre","nav.company-accounts":"Company accounts","nav.security":"Security","nav.audit":"Audit log","nav.settings":"Settings","nav.cms":"CMS Pages","nav.app-studio":"App studio","nav.profile":"My profile","nav.logout":"Sign out","nav.closeMenu":"Close menu","nav.mainNav":"Main navigation","nav.expandMenu":"Expand menu","nav.collapseMenu":"Collapse menu","theme.label":"Theme","theme.light":"Light","theme.dark":"Dark","theme.auto":"Auto","action.save":"Save","action.cancel":"Cancel","action.create":"Create","action.edit":"Edit","action.delete":"Delete","action.confirm":"Confirm","action.search":"Search","state.active":"Active","state.inactive":"Inactive","state.loading":"Loading…","common.yes":"Yes","common.no":"No","common.stateActive":"Active","common.stateInactive":"Inactive","common.noRecords":"No records yet","common.records":"records","common.page":"Page","common.of":"of","common.prevPage":"Previous page","common.nextPage":"Next page","common.noFilterResults":"No results for these filters","common.noFilterResultsDesc":"There is data in this section, but none of it matches your search.","common.clearFilters":"Clear filters","common.loadError":"We could not load this information","common.networkError":"Could not reach the server.","common.retry":"Retry","filePreview.none":"No file","filePreview.open":"Open","filePreview.openFailed":"Could not load — open","filePreview.enlarge":"Enlarge","filePreview.openInTab":"Open in a tab","common.goBack":"Go back","common.close":"Close","common.form":"Form","common.showValue":"Show value","common.hideValue":"Hide value","common.toggle":"Toggle","common.chooseColor":"Choose color","common.formHasErrors":"Check the form","common.formHasErrorsDesc":"Some fields have errors that block saving.","common.sessionExpired":"Session expired — please sign in again","apiError.400":"Invalid request. Check the data and try again.","apiError.401":"Your session is not valid. Please sign in again.","apiError.403":"You do not have permission to do this.","apiError.404":"We could not find what you are looking for.","apiError.409":"This conflicts with the current data. Refresh and try again.","apiError.422":"Some data is not valid. Check it and try again.","apiError.429":"Too many attempts. Wait a few minutes and try again.","apiError.5xx":"The server had a problem. Try again in a few minutes.","apiError.generic":"The action could not be completed. Please try again.","apiError.network":"Cannot reach the server. Check your connection and try again.","apiError.accountInactive":"This account is not active. Contact the administrator.","common.verifyingSession":"Verifying session…","access.deniedTitle":"You do not have access to this section","access.deniedDescription":"Your role does not include this part of the panel. If you need it, ask an administrator to open it for your role under Team.","access.goToDashboard":"Go to Dashboard","common.actions":"Actions","common.whatIsThis":"What this field means","common.selectPlaceholder":"Select…","common.searchOption":"Search option…","common.noMatches":"No option matches","common.hours":"Hours","common.minutes":"Minutes","common.date":"Date","common.mapStyle":"Map style","common.mapStyleStreets":"Streets","common.mapStyleLight":"Light","common.mapStyleDark":"Dark","common.mapStyleSatellite":"Satellite","shell.openMenu":"Open menu","shell.searchPanel":"Search the panel…","shell.search":"Search","shell.notifications":"Notifications","shell.pending":"pending","shell.pendingOne":"pending","shell.pendingAttention":"Needs attention","shell.sosUnresolved":"Unresolved SOS alerts","shell.ticketsOpen":"Open tickets","shell.accountOf":"Account for","shell.language":"Language","shell.languagePanel":"Panel language","shell.languageLoadFailed":"Could not load that language. Check your connection and try again.","shell.viewLanding":"View public page","shell.helpSupport":"Help & support","shell.fullscreen":"Full screen","shell.exitFullscreen":"Exit full screen","palette.title":"Global panel search","palette.hint":"Type to filter the panel sections","palette.placeholder":"Search panel sections…","palette.noMatch":"Nothing matches","palette.tryName":"Try the section name: trips, drivers, pricing…","palette.moveHint":"↑ ↓ to move · ↵ to open","palette.anytimeHint":"⌘K anytime","login.panelSuffix":"Panel","login.subtitle":"Sign in with your operator account","login.email":"Email","login.emailPlaceholder":"you@company.com","login.password":"Password","login.submit":"Enter the panel","login.forgotPassword":"Forgot your password?","forgot.title":"Reset your password","forgot.subtitle":"Enter your email and we'll send you a link to choose a new one.","forgot.submit":"Send me the link","forgot.sentTitle":"Check your inbox","forgot.sentText":"If that address has an account, the link arrives within a couple of minutes. It expires in 30 minutes.","forgot.backToLogin":"Back to sign in","reset.title":"Choose a new password","reset.subtitle":"At least 8 characters. Saving it signs out any open sessions.","reset.passwordLabel":"New password","reset.confirmLabel":"Repeat the password","reset.submit":"Save password","reset.doneTitle":"Password updated","reset.doneText":"You can now sign in with the new one.","reset.invalidTitle":"Incomplete link","reset.invalidText":"This page is reached from the link in the recovery email.","reset.requestAgain":"Request a new link","reset.zodMismatch":"Passwords do not match.","login.genericError":"We could not sign you in","login.invalidCredentials":"Incorrect email or password","reset.linkExpired":"This link is invalid or has expired. Request a new one.","login.zodEmailRequired":"Enter your email","login.zodEmailInvalid":"That email is not a valid format","login.zodPasswordMin":"Password must be at least 8 characters","login.demoTitle":"Demo access","login.demoHint":"Sign in with one click to see the panel with each role.","login.demoApps":"Mobile apps (demo):","welcome.title":"Welcome to {name}","welcome.subtitle":"Your mobility platform is installed and ready to operate","welcome.setupComplete":"Setup complete","welcome.step1Title":"Database ready","welcome.step1Text":"Postgres with geographic extension, GPS time series and tenant isolation.","welcome.step2Title":"Multi-tenant and roles ready","welcome.step2Text":"Your operation starts with an admin, dispatchers and support, each with their own scope.","welcome.step3Title":"Cash payments ready","welcome.step3Text":"Riders pay the driver in cash from day one. Drivers settle the platform commission by bank transfer and upload the receipt.","welcome.step4Title":"Demo data loaded","welcome.step4Text":"Drivers, riders, trips, vehicles and tickets so you can explore the full panel.","welcome.step4EmptyTitle":"Ready for your data","welcome.step4EmptyText":"No sample riders, drivers or trips were loaded: the operation starts empty with your catalogs, fares and admin account.","welcome.whereToStart":"Where to start","welcome.nextSettingsTitle":"Settings","welcome.nextSettingsText":"Operation name, currency, email and active features","welcome.nextCitiesTitle":"Cities","welcome.nextCitiesText":"The countries and cities where you operate","welcome.nextZonesTitle":"Zones","welcome.nextZonesText":"Draw the service area on the map","welcome.nextCategoriesTitle":"Categories","welcome.nextCategoriesText":"The services riders can book: economy, comfort, moto","welcome.nextPricingTitle":"Pricing","welcome.nextPricingText":"Base fare, per kilometer and per minute","welcome.nextStudioTitle":"App studio","welcome.nextStudioText":"Colors, logos and banners of the rider and driver apps","welcome.nextDocsTitle":"Documentation","welcome.nextDocsText":"Open Documentation/index.html from the package you downloaded: installation, configuration and the mobile apps.","welcome.nextDocsApi":"API reference","welcome.beforeProdBold":"Before going to production:","welcome.beforeProdText1":"review your operation’s identity, currency and email in","welcome.beforeProdDemo":"what you see is demo data. Install again with SEED_MODE=core for a clean database, and set your operation’s identity in","notFound.eyebrow":"404 error","notFound.title":"This page does not exist","notFound.description":"The route you opened is not in the panel, or it was moved to another section.","notFound.backToPanel":"Back to the panel","globalError.eyebrow":"Unexpected error","globalError.title":"The panel could not continue","globalError.description":"Something went wrong and interrupted loading. Try again; if it keeps happening, tell the technical team","globalError.withCode":"with code","globalError.retry":"Retry","dialog.createRider.title":"New rider","dialog.createRider.description":"For assisted sign-ups from support or the call center.","dialog.createRider.firstName":"First name","dialog.createRider.lastName":"Last name","dialog.createRider.phone":"Phone","dialog.createRider.phoneHint":"With country code; it is their username in the app.","dialog.createRider.email":"Email","dialog.createRider.emailHint":"Optional: used to send them their receipts.","dialog.createRider.appLanguage":"App language","dialog.createRider.submit":"Create rider","dialog.createRider.successToast":"Rider created","dialog.createRider.errorToast":"Could not create the rider","dialog.createRider.zodNameMin":"At least 2 characters","dialog.createRider.zodNameMax":"Max 60 characters","dialog.createRider.zodEmailInvalid":"That email is not a valid format","dialog.createRider.zodPhoneMin":"Phone needs at least 7 digits","dialog.createRider.zodPhoneMax":"Max 20 characters","dialog.createTrip.title":"Create trip (admin)","dialog.createTrip.description":"Useful for call center / support when the rider calls by phone.","dialog.createTrip.rider":"Rider","dialog.createTrip.searchPlaceholder":"Search by name, phone or email…","dialog.createTrip.searchAria":"Search rider","dialog.createTrip.noName":"No name","dialog.createTrip.selected":"Selected","dialog.createTrip.searchingRiders":"Searching riders…","dialog.createTrip.noRiderMatch":"No rider matches that search.","dialog.createTrip.pickupAddress":"Pickup address","dialog.createTrip.pickupPlaceholder":"Street address or place","dialog.createTrip.dropoffAddress":"Dropoff address","dialog.createTrip.dropoffHint":"Optional: without a destination the trip goes out as an open fare.","dialog.createTrip.dropoffPlaceholder":"Destination address or place","dialog.createTrip.latitude":"Latitude","dialog.createTrip.longitude":"Longitude","dialog.createTrip.category":"Category","dialog.createTrip.driver":"Driver","dialog.createTrip.driverHint":"Empty = assigned by auto-dispatch.","dialog.createTrip.autoDispatch":"Assign via auto-dispatch","dialog.createTrip.submit":"Create trip","dialog.createTrip.successToast":"Trip created","dialog.createTrip.errorToast":"Could not create the trip","dialog.createTrip.coordsLabel":"Coordinates:","dialog.createTrip.adjust":"Adjust","dialog.createTrip.adjustManually":"Adjust manually","dialog.createTrip.noCoordsYet":"No coordinates yet","dialog.createTrip.searchingAddresses":"Searching addresses…","dialog.createTrip.zodRiderRequired":"Select a rider from the list.","dialog.createTrip.zodCategoryRequired":"Pick the trip category.","dialog.createTrip.deliveryHeading":"Delivery details","dialog.createTrip.deliveryHint":"The driver asks for these on hand-over. Without them the API refuses the trip.","dialog.createTrip.recipientName":"Who receives it","dialog.createTrip.recipientPhone":"Recipient phone","dialog.createTrip.packageDescription":"What is being sent","dialog.createTrip.deliveryNotes":"Delivery instructions","dialog.createTrip.deliveryNotesHint":"Optional: floor, doorbell, landmark.","dialog.createTrip.deliveryNoPin":"A delivery carries no boarding PIN: there is no passenger to dictate it.","dialog.createTrip.zodRecipientName":"Type the name of who receives it.","dialog.createTrip.zodRecipientPhone":"Type a valid contact phone.","dialog.createTrip.zodPackage":"Describe what is being sent.","dialog.createTrip.zodInvalidCoord":"Invalid coordinate.","dialog.createTrip.zodPickupRequired":"Enter the pickup address.","dialog.createTrip.zodMax300":"Max 300 characters.","dialog.createTrip.noLocationSuggestion":"That suggestion has no location; pick another.","dialog.createTrip.noLocationError":"Could not resolve the location","dialog.createTrip.locating":"Locating address…","dialog.createTrip.needsLocation":"Pick each address from the suggestions to set its location.","dialog.createTrip.zodPickupLocation":"Pick the pickup address from the suggestions so its location is known.","dialog.createTrip.zodDropoffLocation":"Pick the destination from the suggestions, or clear it for an open fare.","dialog.uploadDoc.title":"Upload KYC document","dialog.uploadDoc.description":"JPEG, PNG, WebP or PDF · max 10 MB.","dialog.uploadDoc.docType":"Document type","dialog.uploadDoc.type.idFront":"ID document (front)","dialog.uploadDoc.type.idBack":"ID document (back)","dialog.uploadDoc.type.driverLicense":"Driver license","dialog.uploadDoc.type.vehicleRegistration":"Vehicle registration card","dialog.uploadDoc.type.insurance":"Insurance policy","dialog.uploadDoc.type.backgroundCheck":"Background check","dialog.uploadDoc.type.profilePhoto":"Profile photo","dialog.uploadDoc.type.vehiclePhotoFront":"Vehicle photo (front)","dialog.uploadDoc.type.vehiclePhotoBack":"Vehicle photo (back)","dialog.uploadDoc.type.vehiclePhotoLeft":"Vehicle photo (left)","dialog.uploadDoc.type.vehiclePhotoRight":"Vehicle photo (right)","dialog.uploadDoc.file":"File","dialog.uploadDoc.selectFileAria":"Select a file to upload","dialog.uploadDoc.dragOrClick":"Drag a file here or click to choose one","dialog.uploadDoc.formatsHint":"JPEG, PNG, WebP or PDF · max 10 MB","dialog.uploadDoc.expiresAt":"Expiration date","dialog.uploadDoc.expiresHint":"Optional. With it, the panel warns 30 days before it expires.","dialog.uploadDoc.submit":"Upload document","dialog.uploadDoc.successToast":"Document uploaded","dialog.uploadDoc.errorToast":"Could not upload the document","dialog.uploadDoc.errFileTooBig":"The file cannot exceed 10 MB.","dialog.uploadDoc.errFileType":"Unsupported format: JPEG, PNG, WebP or PDF only.","dialog.uploadDoc.errChooseFile":"Choose the file you want to upload.","dialog.docViewer.defaultTitle":"Document","dialog.docViewer.loadingFile":"Loading file…","dialog.docViewer.demoNoticeBold":"Sample document from the demo environment.","dialog.docViewer.demoNoticeText":"This image is a placeholder: the real file will show here as soon as the driver uploads theirs.","dialog.docViewer.downloadTitle":"Download the original file","dialog.docViewer.download":"Download","dialog.docViewer.reject":"Reject","dialog.docViewer.approve":"Approve","dialog.docViewer.loadErrorTitle":"Could not open the document","dialog.docViewer.loadErrorDesc":"The file is not available right now.","dialog.docViewer.altDocument":"Document preview","dashboard.title":"Dashboard","dashboard.loadingSubtitle":"Loading the operation metrics…","dashboard.subtitleTrips7d":"trips in the last 7 days","dashboard.subtitleTrips7dOne":"trip in the last 7 days","dashboard.subtitleActiveNow":"in progress right now","dashboard.attentionRequired":"Requires your attention:","dashboard.alertPendingDrivers":"{n} drivers waiting for approval","dashboard.alertPendingDriversOne":"1 driver waiting for approval","dashboard.alertCancellationRate":"{n}% cancellation rate in the last 7 days","dashboard.alertNoDriversFree":"{n} active trips with no driver available","dashboard.alertNoDriversFreeOne":"1 active trip with no driver available","dashboard.kpiTripsToday":"Trips requested today","dashboard.deltaCompletedCancelled":"{completed} completed today · {cancelled} cancelled","dashboard.kpiRevenueToday":"Today's revenue","dashboard.deltaRevenue7d":"{amount} in 7 days","dashboard.kpiDriversConnected":"Connected drivers","dashboard.deltaDriversConnected":"{online} available · {onTrip} on trip · {total} in the fleet","dashboard.kpiRidersRegistered":"Registered riders","dashboard.deltaRidersRegistered":"Accounts created in the app","dashboard.kpiActiveTrips":"Trips in progress","dashboard.deltaActiveTrips":"Looking for a driver or with a rider on board","dashboard.kpiAvgRating":"Average rating","dashboard.deltaAvgRating":"Out of 5 stars","dashboard.kpiCancellations":"Cancellations (7 days)","dashboard.deltaCancellationAbove":"Above the 8% target","dashboard.deltaCancellationWithin":"Within the 8% target","dashboard.kpiPendingDrivers":"Drivers pending approval","dashboard.reviewRequests":"Review requests","dashboard.noPending":"None pending","dashboard.colTrip":"Trip","dashboard.colRider":"Rider","dashboard.colDriver":"Driver","dashboard.unassigned":"Unassigned","dashboard.colRoute":"Route","dashboard.colFare":"Fare","dashboard.colStatus":"Status","dashboard.colRequested":"Requested","dashboard.recentTripsTitle":"Recent trips","dashboard.recentTripsSubtitle":"The last eight movements of the operation","dashboard.viewAll":"View all","dashboard.tableCaption":"Most recent trips of the operation","dashboard.emptyTitle":"No trips yet","dashboard.emptyDescription":"As soon as a rider requests the first one, it will show up here live.","dashboard.chartTripsRevenueTitle":"Trips and revenue by day","dashboard.chartDateRange":"From {from} to {to}","dashboard.chartNoActivity":"No activity recorded","dashboard.chartViewAllTrips":"View all trips","dashboard.seriesTrips":"Trips","dashboard.seriesRevenue":"Revenue ({currency})","dashboard.chartOutcomeTitle":"How trips ended","dashboard.chartOutcomeSubtitle":"{n} {n|trip|trips} in the last 7 days","dispatch.title":"Live dispatch","dispatch.subConnectedOne":"{n} connected driver","dispatch.subConnected":"{n} connected drivers","dispatch.subAvailableOne":"{n} available","dispatch.subAvailable":"{n} available","dispatch.subOnTrip":"{n} on trip","dispatch.subTripsOne":"{n} trip in progress","dispatch.subTrips":"{n} trips in progress","dispatch.kpiFreeDrivers":"Available drivers","dispatch.kpiFreeDriversDelta":"Available to receive an assignment","dispatch.kpiOnTrip":"On trip","dispatch.kpiOnTripDelta":"Busy with a rider on board or on the way","dispatch.kpiActiveZones":"Active zones","dispatch.kpiActiveZonesDelta":"Active zones drawn on the map","dispatch.legendFree":"Available","dispatch.legendOnTrip":"On trip","dispatch.legendApprox":"Each driver's last GPS ping position; drivers not reporting yet don't appear on the map.","dispatch.tabDrivers":"Drivers","dispatch.tabTrips":"In progress","dispatch.searchPlaceholder":"Search driver or plate…","dispatch.emptyDriversFilteredTitle":"No driver matches","dispatch.emptyDriversTitle":"No drivers connected","dispatch.emptyDriversFilteredDesc":"Try another name or the vehicle plate.","dispatch.emptyDriversDesc":"When a driver goes online from their app, they'll show up here and on the map.","dispatch.noVehicle":"No vehicle assigned","dispatch.centerOnMap":"Center on map","dispatch.viewDriverProfile":"View profile","dispatch.actionsFor":"Actions for {name}","dispatch.emptyTripsTitle":"No trips in progress","dispatch.emptyTripsDesc":"Every trip will appear here from the moment the rider requests it until it's closed.","dispatch.noDriverAssigned":"No driver assigned","dispatch.openTrip":"Open trip","dispatch.ratingSuffix":"rating","support.title":"Support center","support.loading":"Loading…","support.activeTicketSingular":"active ticket","support.activeTicketPlural":"active tickets","support.urgentSingular":"urgent","support.urgentPlural":"urgent","support.filterAll":"All","support.filterOpen":"Open","support.filterInProgress":"In progress","support.filterWaiting":"Waiting","support.filterResolved":"Resolved","support.filterClosed":"Closed","support.toastUpdated":"Ticket updated","support.genericError":"Error","support.searchPlaceholder":"Search tickets…","support.emptyTicketsTitle":"No tickets","support.emptyTicketsDesc":"No tickets match the search or filter.","support.selectTicketTitle":"Select a ticket","support.selectTicketDesc":"Choose a conversation from the list to reply.","support.openedPrefix":"Opened","support.replyPlaceholder":"Write your reply…","support.markdownSupported":"Markdown supported","support.sendReply":"Send reply","support.teamLabel":"Support team","support.unreadTitle":"Unread messages","support.loadingMore":"Loading more tickets…","support.listCapped":"Showing {shown} of {total}. Use the filter or the search to see the rest.","support.emptyThread":"No messages in this conversation yet.","support.openPhoto":"Open the photo at full size","support.attachedPhotoAlt":"Photo attached to the message","support.tripChip":"Trip #{code}","support.tripCardTitle":"Trip","support.tripOpen":"View trip","support.dataUpdateChip":"Data update","support.dataUpdateTitle":"Requested changes","support.dataUpdateReason":"Reason","support.dataUpdateCurrentPhoto":"Current photo","support.dataUpdateNewPhoto":"New photo","support.dataUpdatePhotoPending":"not attached yet","support.dataUpdateApplyButton":"Apply changes","support.dataUpdateApplied":"Applied","support.dataUpdateAppliedToast":"Details updated","support.confirmApplyTitle":"Apply the requested changes","support.confirmApplyDescMulti":"These changes will be written to the driver's record:","support.confirmApplyButton":"Apply changes","support.dataUpdateField.phone":"Phone","support.dataUpdateField.firstName":"First name","support.dataUpdateField.lastName":"Last name","support.dataUpdateField.documentType":"Document type","support.dataUpdateField.documentNumber":"Document number","support.dataUpdateField.avatar":"Profile photo","support.dataUpdateField.email":"Email","support.review.button":"Review","support.review.title":"Review data update request","support.review.loading":"Loading the request…","support.review.memberSince":"Member since","support.review.openDriver":"Open driver profile","support.review.comparisonTitle":"Current values against what was requested","support.review.colField":"Field","support.review.colCurrent":"Current value","support.review.colRequested":"Requested value","support.review.unchanged":"unchanged","support.review.snapshotDrift":"Something changed after the driver opened this ticket: compare against the current value, not the one in the message.","support.review.currentPhoto":"Current photo","support.review.documentsTitle":"Identity documents","support.review.noDocuments":"This driver has not uploaded any documents yet.","support.review.openConversation":"Open conversation","support.review.reject":"Reject","support.review.readOnlyPill":"Read only","support.review.alreadyApplied":"The changes were already applied on","support.review.alreadyClosed":"This request is already closed. There is nothing left to decide.","support.review.emptyTitle":"This ticket carries no data update request","support.review.emptyDesc":"Open it as a normal conversation from the list.","support.review.rejectedToast":"Request rejected","support.review.rejectDialogTitle":"Reject the request","support.review.rejectDialogDesc":"{name}'s record is left untouched and the ticket is closed.","support.review.rejectDialogNote":"The reason is sent to the driver in their own language, inside the conversation.","support.review.rejectReasonLabel":"Reason for rejecting","support.review.rejectReasonHint":"The driver reads this. Tell them what to fix before asking again.","support.review.rejectReasonPh":"The name does not match the attached document…","support.review.rejectSubmit":"Reject request","support.review.zodReasonMin":"Write at least 5 characters","support.review.zodReasonMax":"500 characters maximum","sos.title":"SOS · active alerts","sos.loading":"Loading…","sos.subtitleUnattendedTotal":"{unresolved} unattended · {total} in 7 days","sos.toastResolved":"Alert marked as handled","sos.genericError":"Error","sos.thisUser":"this user","sos.confirmAckTitle":"Mark alert as handled","sos.confirmFalseAlarmTitle":"Dismiss as false alarm","sos.confirmAckDesc":"{who}'s alert will leave the active list. Use this once you've already contacted them.","sos.confirmFalseAlarmDesc":"{who}'s alert will be marked as a false alarm and will leave the active list.","sos.confirmAckButton":"Mark handled","sos.confirmFalseAlarmButton":"Dismiss alert","sos.confirmCancel":"Go back","sos.colAlert":"Alert","sos.handledLabel":"SOS handled","sos.activeLabel":"Active SOS","sos.colStatus":"Status","sos.colRider":"Rider","sos.colDriver":"Driver","sos.colTrip":"Trip","sos.noTripLinked":"No trip linked","sos.colLocation":"Location","sos.attendButton":"Handle","sos.falseAlarmButton":"False alarm","sos.actionsFor":"Actions for {name}","sos.statUnattended":"Unattended","sos.statTotal7d":"Total (7 days)","sos.statResolved":"Resolved","sos.panelTitle":"Alerts","sos.tabActive":"Active","sos.tabAll7d":"All (7d)","sos.tableCaption":"SOS alerts","sos.emptyTitle":"All quiet","sos.emptyDescription":"No pending SOS alerts. If a rider or driver triggers the SOS button, it will show up here in real time.","support.confirmResolveTitle":"Mark ticket as resolved","support.confirmCloseTitle":"Close ticket","support.confirmResolveDesc":"It leaves the team queue and the user is told their case has been handled.","support.confirmCloseDesc":"The ticket is archived. If the user writes again, a new one will be opened.","support.confirmResolveButton":"Yes, mark it resolved","support.confirmCloseButton":"Yes, close it","dashboard.eventsTitle":"App usage","dashboard.eventsSubtitle":"{last7} in 7 days · {last30} in 30","dashboard.eventsSubtitleLoading":"Loading…","dashboard.eventsEmptyTitle":"No events yet","dashboard.eventsEmptyDescription":"The apps report them as people use them: which services they look at, which codes they apply, which modals they close. They show up here as soon as there is movement.","dashboard.eventsCaption":"Events reported by the apps, with their 7 and 30 day counts","dashboard.eventsColName":"Event","dashboard.eventsCol7d":"7 days","dashboard.eventsCol30d":"30 days","trips.filterAllStatuses":"All statuses","trips.personViewAll":"View all","trips.personRider":"Trips of rider {name}","trips.personDriver":"Trips of driver {name}","trips.personClear":"Clear filter","trips.filterAllCategories":"All categories","trips.title":"Trips","trips.subtitleTotal":"trips total","trips.subtitleTotalOne":"trip total","trips.loadListError":"Could not load the list","trips.loadingEllipsis":"Loading…","trips.exportCsvTooltip":"Download the list as CSV","trips.exportCsvButton":"Export CSV","trips.newTripButton":"New trip","trips.searchPlaceholder":"Search by address or ID…","trips.searchAria":"Search trips","trips.filterStatusAria":"Filter by status","trips.filterCategoryAria":"Filter by category","trips.colId":"ID","trips.colRider":"Rider","trips.colDriverVehicle":"Driver / Vehicle","trips.colRoute":"Route","trips.colDistanceTime":"Distance / Time","trips.colFare":"Fare","trips.colSurge":"Surge","trips.colStatus":"Status","trips.colPin":"PIN","trips.pinVerifiedTooltip":"Trip started with a verified boarding PIN","trips.pinPendingTooltip":"Driver requires a PIN; not verified yet","trips.pinNoneTooltip":"Trip without boarding PIN","trips.pinBadgeVerified":"PIN verified","trips.pinBadgePending":"PIN pending","trips.colRequested":"Requested","trips.noVehicle":"No vehicle","trips.unassigned":"Unassigned","trips.surgeTooltip":"Dynamic pricing multiplier applied","trips.tableCaption":"List of the tenant’s trips","trips.emptyTitle":"No trips recorded yet","trips.emptyDescription":"As soon as a rider requests their first trip it will show up here. You can also create one by hand from “New trip”.","trips.emptyDescriptionMobile":"As soon as a rider requests their first trip it will show up here.","trips.paginationLabel":"trips","trips.openTripAriaPrefix":"Open the trip for","trips.csvGenerateError":"Could not generate the CSV","trips.exportFilename":"trips.csv","trips.pinLabel":"PIN","trips.unitKm":"km","trips.unitMin":"min","trips.unitKmh":"km/h","trips.detailTitle":"Trip","trips.detailLoadingSubtitle":"Loading the details…","trips.backToTrips":"Back to trips","trips.surgeDemandPrefix":"Demand","trips.requestedPrefix":"Requested","trips.cancelReasonPrefix":"Cancellation reason:","trips.cancelTripButton":"Cancel trip","trips.cancelSuccessToast":"Trip cancelled","trips.cancelErrorToast":"Could not cancel","trips.kpiFareLabel":"Fare charged","trips.kpiFareDeltaAgreed":"Agreed with the driver:","trips.kpiFareDeltaCalculated":"Calculated fare","trips.kpiDistanceLabel":"Distance","trips.kpiDeltaActualRoute":"Actual route","trips.kpiDeltaEstimatedAtRequestDistance":"Estimated at request time","trips.kpiDurationLabel":"Duration","trips.kpiDeltaActualOnboardTime":"Actual time on board","trips.kpiDeltaEstimatedAtRequestDuration":"Estimated at request time","trips.kpiDriverEarningsLabel":"Driver earns","trips.kpiPlatformFeePrefix":"Platform fee","trips.routePanelTitle":"Route","trips.originLabel":"Origin","trips.destinationLabel":"Destination","trips.lastDriverPositionPrefix":"Last known driver position:","trips.auditPanelTitle":"Panel actions","trips.auditPanelSubtitle":"Everything the team did on this trip","trips.systemActorFallback":"System","trips.timelinePanelTitle":"Timeline","trips.timelineEventsSuffix":"events recorded","trips.timelineEventsSuffixOne":"event recorded","trips.timelineEmptyTitle":"No events in this trip yet","trips.timelineEmptyDescription":"Every step of the trip (request, offer, acceptance, start and close) will appear here in order.","trips.payloadReason":"Reason","trips.payloadCancellationFee":"Penalty applied","trips.payloadDriverCancellationFee":"Driver charge","trips.payloadMinTripAmount":"Minimum fare of the promotion","trips.payloadFareEstimate":"Initial estimate","trips.payloadFareOffered":"Rider’s offer","trips.payloadFareAgreed":"Agreed fare","trips.payloadAmount":"Proposed amount","trips.payloadEtaMin":"Promised time","trips.payloadRefundAmount":"Refunded amount","trips.payloadDistanceKm":"Estimated distance","trips.payloadTo":"New offer","trips.payloadFrom":"Previous offer","trips.payloadSource":"Action source","trips.payloadSearchedRadius":"Search radius","trips.payloadRounds":"Search rounds","trips.payloadDiscount":"Discount","trips.payloadCancelledBy":"Cancelled by","trips.actorSystem":"System","trips.evt.dispatch_started":"Driver search started","trips.evt.dispatch_no_drivers":"Cancelled: no driver available","trips.evt.dispatch_expired":"Search expired with no driver","trips.evt.offer_declined_by_rider":"Rider declines the counteroffer","trips.evt.payment_charge":"Charge recorded","trips.src.driver_milestone":"Driver milestone","trips.src.offer_accepted":"Offer accepted","trips.src.driver_accept":"Driver acceptance","trips.src.admin_assign":"Assigned from the panel","trips.statusNoDrivers":"No drivers","trips.kpiFareLabelOffered":"Rider offer","trips.kpiFareDeltaOffered":"What the rider offered · never charged","trips.riderPanelTitle":"Rider","trips.driverPanelTitle":"Driver","trips.noVehicleAssigned":"No vehicle assigned","trips.noDriverYetTitle":"No driver yet","trips.noDriverYetDescription":"The trip is still looking for someone to accept it.","trips.noDriverEverTitle":"No driver","trips.noDriverEverDescription":"The trip ended without any driver taking it.","trips.fareNoCharge":"No charge","trips.assignDriverButton":"Assign driver","trips.reassignDriverButton":"Reassign driver","trips.assignDialogTitle":"Assign a driver manually","trips.reassignDialogTitle":"Reassign the trip to another driver","trips.assignDialogDescription":"Candidates are the drivers connected right now, sorted by availability and distance to the pickup point.","trips.assignDriverFieldLabel":"Driver","trips.assignSearchPlaceholder":"Search by name or plate…","trips.assignNoVehicle":"No vehicle assigned","trips.assignNoPosition":"No GPS position","trips.assignNoDriversTitle":"No driver connected","trips.assignNoDriversDesc":"Nobody is ONLINE or on a trip right now. As soon as someone connects they will show up here.","trips.assignNoMatchTitle":"No driver matches","trips.assignNoMatchDesc":"Try another name or the vehicle plate.","trips.assignSubmit":"Assign driver","trips.assignConfirmTitle":"Assign the trip to {name}","trips.assignConfirmDesc":"Trip {trip} will move to ACCEPTED with {name} as the driver and the rider will be notified.","trips.assignConfirmDescBusy":"{name} is ON A TRIP right now. If you assign anyway, trip {trip} will move to ACCEPTED and they will be carrying two rides.","trips.assignConfirmButton":"Yes, assign the trip","trips.assignSuccessToast":"Driver assigned to the trip","trips.assignErrorToast":"The driver could not be assigned","trips.assignZodDriverRequired":"Pick a driver from the list","trips.callAriaPrefix":"Call","trips.ratingsPanelTitle":"Ratings","trips.ratingForPrefix":"for the","trips.ratingTag.friendly_driver":"Friendly driver","trips.ratingTag.clean_car":"Clean car","trips.ratingTag.safe_driving":"Safe driving","trips.ratingTag.fast_arrival":"Arrived quickly","trips.ratingTag.nice_music":"Nice music","trips.tipPrefix":"Tip","trips.couponPanelTitle":"Promotion applied","trips.couponCodeLabel":"Code","trips.couponCampaignLabel":"Campaign","trips.couponBenefitLabel":"Benefit","trips.couponAppliedAmountLabel":"Discounted on this trip","trips.discountSuffix":"discount","trips.linkedTicketsPanelTitle":"Related tickets","trips.fareBase":"Base fare","trips.fareDistance":"Distance","trips.fareTime":"Trip time","trips.fareSubtotal":"Subtotal","trips.fareSurgeMultiplier":"Demand multiplier","trips.fareDiscount":"Discount","trips.fareDiscountApplied":"Discount applied","trips.fareBreakdownTitle":"Fare breakdown","trips.fareBreakdownSubtitle":"How the trip’s final price is made up","trips.fareNoBreakdownTitle":"This trip did not save a breakdown","trips.fareNoBreakdownDescription":"The final fare was recorded, but not how it was calculated. This usually happens with manually created trips.","trips.fareNotChargedTitle":"This trip was never charged","trips.fareNotChargedDescription":"There was no trip to charge: it was archived with no driver. There is no breakdown and no settlement.","trips.fareTableCaption":"Line items that make up the trip fare","trips.kpiFareLabelPending":"Estimated fare","trips.kpiFareDeltaEstimated":"Estimate — the trip has not been charged yet","trips.fareMeasured":"Measured fare","trips.fareMeasuredCaption":"Components the trip was measured with","trips.fareAgreedBasis":"Agreed fare","trips.fareChargedHeading":"What the rider paid","trips.fareToChargeHeading":"What the rider will pay (estimate)","trips.fareTotalPendingLabel":"Estimated total","trips.fareSettlementHeading":"Driver settlement","trips.fareSettlementBasis":"Fare the settlement is based on","trips.fareSettlementCaption":"How the fare is split between platform and driver","trips.fareAdjustment":"Adjustment","trips.fareDiscountAbsorbedBold":"The company pays for the discount.","trips.fareDiscountAbsorbed":"The commission and the driver’s earnings are computed on the full fare: the {amount} discount does not come out of their pocket.","trips.fareDiscountReimbursed":"The rider paid the discounted fare in cash, so the company credited the {amount} discount to the driver’s wallet: they earn the same as without a discount.","trips.fareDiscountNotReimbursedBold":"Discount not reimbursed.","trips.fareDiscountNotReimbursed":"This trip was closed before the company reimbursed discounts: the {amount} was not credited to the driver’s wallet.","trips.noDriversSubtitle":"No driver accepted the request · the operator did not cancel it","trips.cancelReasonRequiredHint":"Type the reason (3 characters minimum) to be able to cancel.","trips.fareTotalChargedLabel":"Total charged to the rider","trips.farePendingFeeLabel":"Pending cancellation fee","trips.farePendingFeeSub":"from an earlier cancelled trip","trips.fareCashTotalLabel":"Cash collected by the driver","trips.fareCashTotalPendingLabel":"Cash to collect","trips.farePendingFeeBold":"Pending fee.","trips.farePendingFeeNote":"The rider owed {amount} for an earlier cancellation. It is collected in cash together with this trip, outside the fare: it pays no commission and it is not this driver’s income — they owe it back to the platform in their wallet.","trips.cancelFeeLabel":"Cancellation fee","trips.cancelFeePending":"Pending: it is added to the rider’s next trip","trips.cancelFeeCollected":"Collected in cash on a later trip","trips.cancelFeeWaived":"Waived by an operator: not collected","trips.driverCancelFeeLabel":"Driver charge for cancelling","trips.driverCancelFeeSub":"Deducted from their wallet","trips.cashPendingFeeText":"On top of the fare, the driver collects {amount} of a pending cancellation fee the rider owed.","trips.fareSettledToDriverLabel":"Settled to the driver","trips.fareCashFromRiderLabel":"Collected from the rider in cash","trips.fareDiscountReimbursementLabel":"Discount reimbursement","trips.fareDiscountReimbursementSub":"Credited to their wallet","trips.fareCommissionOwedLabel":"Commission charged to their wallet","trips.negotiatedFareBold":"Negotiated fare.","trips.negotiatedSuggestedPrefix":"The system suggested","trips.negotiatedOfferedPrefix":"; the rider offered","trips.negotiatedOfferedOnlyPrefix":"The rider offered","trips.negotiatedClosedPrefix":"and it closed at","trips.cancelDialogTitlePrefix":"Cancel trip","trips.cancelDialogDescription":"The rider and the driver are notified immediately.","trips.cancelReasonFieldLabel":"Cancellation reason","trips.cancelReasonPlaceholder":"Driver issue · rider request · restricted zone…","trips.cancelFeeFieldLabelPrefix":"Penalty to the rider","trips.cancelFeeFieldHint":"Leave it empty if nothing should be charged.","trips.cancelDialogSubmit":"Cancel the trip","trips.zodReasonMin3":"Explain the reason in at least 3 characters","trips.zodMax200":"Maximum 200 characters","trips.zodNotNegative":"Cannot be negative","trips.chatPanelTitle":"Trip conversation","trips.chatMessagesSuffix":"messages between rider and driver","trips.chatMessagesSuffixOne":"message between rider and driver","trips.chatLoadingMessages":"Loading messages…","trips.chatReadOnlyPill":"Read only","trips.chatEmptyTitle":"No messages in this trip yet","trips.chatEmptyDescription":"Chat only opens during an active trip. If the rider and driver did not talk, this section stays empty.","trips.mapDriverLabel":"Driver","trips.mapNoCoordsTitle":"This trip has no recorded coordinates","trips.mapNoCoordsDescription":"Only the text addresses were saved. Without exact coordinates the real route cannot be drawn.","trips.mapLegendPlanned":"Planned","trips.mapLegendDriven":"Driven","trips.mapApproxRoute":"Approximate route: no road geometry was stored for this trip.","trips.cashPanelTitle":"Payment","trips.cashPanelSubtitle":"How the rider pays for this trip","trips.cashPanelText":"The rider pays the driver in cash. The platform commission is charged to the driver’s wallet when the trip is completed.","trips.paymentMethodFieldLabel":"Payment method","trips.confirmCancelTitle":"Cancel trip","trips.confirmCancelDesc":"The rider will be notified and the trip will be closed as cancelled from the panel.","trips.confirmCancelDescWithFee":"The rider will be notified and charged a {fee} cancellation fee.","trips.colKind":"Type","trips.kindRide":"Ride","trips.kindDelivery":"Delivery","trips.deliveryPanelTitle":"Delivery","trips.deliveryRecipient":"Recipient","trips.deliveryPhone":"Phone","trips.deliveryPhoneHidden":"Not available","trips.deliveryCall":"Call the recipient","trips.deliveryPackage":"Package","trips.deliveryNotes":"Notes","trips.viewAll":"All trips","trips.viewScheduled":"Scheduled","trips.schedFilterUpcoming":"Upcoming","trips.schedFilterReleased":"Already searching or served","trips.schedFilterAll":"All","trips.schedColPickupTime":"Pickup time","trips.schedColCategory":"Service","trips.schedColFare":"Estimated fare","trips.schedColState":"State","trips.schedColActions":"Actions","trips.schedStateScheduled":"Scheduled","trips.schedStateFinding":"Finding driver","trips.schedStateAssigned":"Assigned","trips.schedStateNeedsOperator":"Needs operator","trips.schedSearchStarts":"Search starts at {time}","trips.schedCancel":"Cancel","trips.schedCancelAria":"Cancel the scheduled trip of {name}","trips.schedTableCaption":"Scheduled trips","trips.schedCountOne":"scheduled trip","trips.schedCountOther":"scheduled trips","trips.schedEmptyTitle":"No scheduled trips here","trips.schedEmptyDesc":"Trips that riders book for a later date and time appear here until the search for their driver starts.","trips.schedEmptyDescOff":"Scheduled trips are turned off. Turn them on in Settings → Features so riders can book for a later date and time.","drivers.pageTitle":"Drivers","drivers.filterAll":"All drivers","drivers.subtitleFleetCount":"drivers in the fleet","drivers.subtitleFleetCountOne":"driver in the fleet","drivers.subtitlePendingSuffix":"awaiting approval","drivers.subtitleLoading":"Loading the fleet…","drivers.searchPlaceholder":"Search by name, email or phone…","drivers.filterByStatusAria":"Filter by status","drivers.tableCaption":"Fleet drivers","drivers.emptyFleetTitle":"No drivers in the fleet yet","drivers.emptyFleetDesc":"Drivers sign up from the app and show up here so you can review their documents and approve them.","drivers.paginationLabel":"drivers","drivers.colDriver":"Driver","drivers.noContact":"No contact info","drivers.colVehicle":"Vehicle","drivers.noVehicleShort":"No vehicle assigned","drivers.colPerformance":"Performance","drivers.tripsUnit":"trips","drivers.tripsUnitOne":"trip","drivers.cancelledUnit":"cancelled","drivers.colStatus":"Status","drivers.colFleetSince":"In the fleet since","drivers.approveDriverAction":"Approve driver","drivers.viewDriverProfile":"View driver profile","drivers.actionsFor":"Actions for {name}","drivers.docActionsFor":"Actions for {doc}","drivers.statusApprovedToast":"Driver approved","drivers.statusRejectedToast":"Driver rejected","drivers.statusSuspendedToast":"Driver suspended","drivers.statusReactivatedToast":"Driver reactivated","drivers.statusUpdatedToast":"Status updated","drivers.statusUpdateError":"Couldn't change the status","drivers.statusUpdatedToastDetail":"Driver status updated","drivers.confirmSuspendTitle":"Suspend","drivers.confirmSuspendDescPrefix":"Suspending","drivers.confirmSuspendDesc":"They're removed from the dispatch queue immediately and won't be able to connect until you reactivate them. Trips already in progress continue normally.","drivers.confirmSuspendDescDetailSuffix":"removes them from the dispatch queue immediately. Trips already in progress are not cancelled, but they won't receive new ones until reactivated.","drivers.confirmSuspendButton":"Suspend driver","drivers.suspendReasonPanel":"Suspended from the admin panel","drivers.suspendReasonAdmin":"Administrative suspension","drivers.confirmRejectTitle":"Reject the application of","drivers.confirmRejectDesc":"They won't be able to operate with this account. They'll have to reapply with corrected documentation.","drivers.confirmRejectDescDetail":"The driver won't be able to connect or receive trips. They'll see the rejection in their app and will have to reapply with new documents.","drivers.confirmRejectButton":"Reject application","drivers.rejectReasonInvalidDocs":"Invalid documentation","drivers.rejectReasonInvalidDocsDetail":"Invalid documents","drivers.confirmReactivateTitle":"Reactivate","drivers.confirmReactivateDesc":"They'll be able to connect and receive trips again as soon as they go online from their app.","drivers.confirmReactivateDescDetail":"They'll return to the dispatch queue as soon as they go online from their app.","drivers.confirmReactivateButton":"Reactivate driver","drivers.unnamedDriver":"Unnamed driver","drivers.backToList":"Back to drivers","drivers.ratingsUnit":"ratings","drivers.ratingsUnitOne":"rating","drivers.noCity":"No city","drivers.actionApprove":"Approve","drivers.actionReject":"Reject","drivers.actionSuspend":"Suspend","drivers.actionReactivate":"Reactivate","drivers.actionSetOffline":"Set offline","drivers.offlineDialogTitle":"Take {name} offline","drivers.offlineDialogDescription":"They will stop receiving trips until they connect again from their app.","drivers.offlineDialogConsequence":"They get the notice on their phone straight away and their switch goes back to “Slide to connect”. Connecting again is their call.","drivers.offlineDialogConfirm":"Take offline","drivers.offlineReasonLabel":"Reason (optional)","drivers.offlineReasonHint":"Kept in the audit log. The driver only sees the standard notice.","drivers.offlineReasonPlaceholder":"End of shift, document review…","drivers.offlineBlockedDescription":"They are carrying a rider right now.","drivers.offlineBlockedHint":"A driver on a trip cannot be taken offline: finish or cancel the trip and they are free.","drivers.statusOfflineToast":"Driver taken offline","drivers.accountSuspendedLabel":"Account suspended.","drivers.reasonRecordedLabel":"Reason on record","drivers.statCompletedTrips":"Completed trips","drivers.statAcceptanceRate":"Acceptance rate","drivers.statCancellationRate":"Cancellation rate","drivers.statVerifiedDocs":"Verified documents","drivers.approvedUnit":"approved","drivers.mandatoryLabel":"Mandatory","drivers.optionalLabel":"Optional","drivers.missingUnit":"missing","drivers.missingUnitOne":"missing","drivers.groupMandatory":"Mandatory","drivers.groupOptional":"Optional","drivers.badgeMandatory":"Mandatory","drivers.badgeOptional":"Optional","drivers.approveAllPending":"Approve {n|the pending one|the {n} pending}","drivers.docsApprovedToast":"Documents approved","drivers.confirmApproveAllTitle":"Approve {n} mandatory {n|document|documents}","drivers.confirmApproveAllDesc":"They are verified and, if they were the last ones missing, the driver is cleared to connect:","drivers.confirmApproveAllButton":"Yes, approve them","drivers.ofRequired":"of","drivers.requiredUnit":"required","drivers.missingOne":"One required document is missing","drivers.missingMany":"required documents not submitted","drivers.wasRejected":"rejected","drivers.pendingReviewUnit":"pending review","drivers.kycTitle":"KYC Documents","drivers.fileSingular":"file","drivers.filePlural":"files","drivers.approvedPlural":"approved","drivers.awaitingReview":"awaiting review","drivers.uploadDocument":"Upload document","drivers.noDocsTitle":"No documents yet","drivers.noDocsDesc":"The driver can't be approved without a license, ID document, vehicle registration card and vehicle insurance.","drivers.uploadFirst":"Upload the first one","drivers.uploadedOn":"Uploaded","drivers.reviewedOn":"reviewed","drivers.rejectReasonLabel":"Rejection reason","drivers.viewDoc":"View","drivers.historyLabel":"Earlier uploads ({n})","drivers.docsPendingBadge":"{n} doc. awaiting review","drivers.docsPendingTitle":"This driver's documents waiting for a decision","drivers.docsPendingSince":"oldest one, {when}","drivers.docsQueueFilter":"Documents awaiting review ({n})","drivers.docsQueueTitle":"Only drivers with documents waiting, longest wait first","drivers.recentTripsTitle":"Recent trips","drivers.recentTripsSubtitle":"{n|The most recent|The {n} most recent} out of {total} completed","drivers.recentTripsCaptionPrefix":"Recent trips for","drivers.noTripsTitle":"No trips in recent history","drivers.noTripsDesc":"It will appear here once they complete their next trip.","drivers.tripColId":"Trip","drivers.tripColRoute":"Route","drivers.tripColFare":"Fare","drivers.tripColRequested":"Requested","drivers.profileTitle":"Profile","drivers.fieldPhone":"Phone","drivers.fieldDocument":"Document","drivers.fieldFirstName":"First name","drivers.fieldLastName":"Last name","drivers.fieldDocumentType":"Document type","drivers.fieldDocumentNumber":"Document number","drivers.noDocumentOnFile":"No document on file","drivers.documentTypeNone":"Not specified","drivers.documentType.NATIONAL_ID":"National ID","drivers.documentType.RESIDENCE_PERMIT":"Residence permit","drivers.documentType.PASSPORT":"Passport","drivers.documentType.OTHER":"Other","drivers.documentNumberHint":"4 to 20 letters, digits or hyphens. Spaces are removed.","drivers.actionEditIdentity":"Edit","drivers.editIdentityTitle":"Correct the driver details","drivers.editIdentityHint":"An approved driver can no longer edit these from their app. Only the fields you change are sent, and the change is recorded in the audit log.","drivers.identitySaveButton":"Save changes","drivers.identitySavedToast":"Driver details updated","drivers.identitySaveError":"The details could not be saved","drivers.identityNoChanges":"You did not change anything","drivers.fieldEmail":"Email","drivers.fieldIdleTimeout":"Disconnected for inactivity after","drivers.idleTimeoutNever":"Never","drivers.idleTimeoutFromDriver":"(chosen by the driver)","drivers.idleTimeoutFromOperator":"(the operation's setting)","drivers.minutesUnit":"min","drivers.fieldJoinedAt":"Joined the platform","drivers.fieldApproved":"Approved","drivers.notYet":"Not yet","drivers.fieldLastLogin":"Last login","drivers.neverLoggedIn":"Never logged in","drivers.fieldId":"ID","drivers.geofenceTitle":"Trip geofence","drivers.actionEditGeofence":"Edit","drivers.fieldGeofenceEnabled":"Check proximity","drivers.geofenceOnWord":"On","drivers.geofenceOffWord":"Off","drivers.fieldArriveRadius":"Pickup-arrival radius","drivers.fieldStartRadius":"Trip-start radius","drivers.fieldCompleteRadius":"Trip-completion radius","drivers.metersUnit":"m","drivers.geofenceFromDriver":"(customized for this driver)","drivers.geofenceFromInherited":"(inherited from the city or the central setting)","drivers.editGeofenceTitle":"This driver's geofence","drivers.editGeofenceHint":"Leave a field on \"Inherit\" to have this driver follow their city's or the central rule. Only the fields you change here are overridden.","drivers.geofenceSaveButton":"Save geofence","drivers.geofenceOptInherit":"Inherit","drivers.geofenceInheritHintPrefix":"Empty = inherits. Today:","drivers.geofenceInheritPlaceholder":"Inherit","drivers.geofenceRadiusRangeError":"Each radius must be a whole number between 20 and 2000 meters, or empty to inherit","drivers.geofenceSavedToast":"Driver's geofence updated","drivers.geofenceSaveError":"The geofence could not be saved","drivers.assignedVehicleTitle":"Assigned vehicle","drivers.change":"Change","drivers.assign":"Assign","drivers.capacityPrefix":"Capacity","drivers.passengersUnit":"passengers","drivers.passengersUnitOne":"passenger","drivers.hasAC":"air conditioning","drivers.hasChildSeat":"child seat","drivers.noVehicleAssignedDesc":"No vehicle assigned. A driver can't be approved or go out on the dispatch queue without one.","drivers.internalNotesTitle":"Internal notes","drivers.noInternalNotesDesc":"No internal notes about this driver. Anything the support team logs on their file shows up here.","drivers.rejectReasonRequired":"Write the reason: it's what the driver reads to fix it.","drivers.rejectDocumentLabel":"Reject document","drivers.rejectReasonFieldHint":"The driver reads this exactly as written in their app: be specific about what to fix.","drivers.rejectReasonPlaceholder":"Unreadable document · Blurry photo · Details don't match the record…","drivers.assignVehicleModalTitle":"Assign vehicle","drivers.assignVehicleModalDesc":"Choose a fleet vehicle for this driver.","drivers.unlinkCurrentVehicle":"Unlink the current vehicle","drivers.noVehiclesTitle":"No vehicles in the fleet","drivers.noVehiclesDesc":"Register a vehicle from Vehicles to be able to assign it.","drivers.currentPill":"Current","drivers.otherDriverPill":"Other driver","drivers.noExpiryDate":"No expiry date","drivers.expiryDateUnreadable":"Unreadable expiry date","drivers.expiredOn":"Expired on","drivers.expiresToday":"Expires today","drivers.expiresIn":"Expires in","drivers.expiryDay":"day","drivers.expiryDays":"days","drivers.validUntil":"Valid until","drivers.vehicleAssignedToast":"Vehicle assigned","drivers.vehicleAssignErrorToast":"Couldn't assign the vehicle","drivers.docApprovedToast":"Document approved","drivers.docApproveErrorToast":"Couldn't approve the document","drivers.docRejectedToast":"Document rejected — the driver will see the reason in their app","drivers.docRejectErrorToast":"Couldn't reject the document","drivers.docType.ID_FRONT":"ID document (front)","drivers.docType.ID_BACK":"ID document (back)","drivers.docType.DRIVER_LICENSE":"Driver license","drivers.docType.VEHICLE_REGISTRATION":"Vehicle registration card","drivers.docType.INSURANCE":"Vehicle insurance","drivers.docType.BACKGROUND_CHECK":"Background check","drivers.docType.PROFILE_PHOTO":"Profile photo","drivers.docType.VEHICLE_PHOTO_FRONT":"Vehicle photo (front)","drivers.docType.VEHICLE_PHOTO_BACK":"Vehicle photo (back)","drivers.docType.VEHICLE_PHOTO_LEFT":"Vehicle photo (left)","drivers.docType.VEHICLE_PHOTO_RIGHT":"Vehicle photo (right)","drivers.confirmApproveTitle":"Approve","drivers.confirmApproveDesc":"They become able to go online and take riders as soon as they open the app.","drivers.confirmApproveDescDetail":"They become able to go online and take riders as soon as they open the app. Check that their documents are approved before continuing.","drivers.confirmApproveButton":"Yes, approve the driver","drivers.confirmApproveDocTitle":"Approve the","drivers.confirmApproveDocTitleOf":"of","drivers.confirmApproveDocDesc":"Marking this document as valid is what allows this person to drive with riders. Check that the photo is legible, the data matches and it has not expired.","drivers.confirmApproveDocButton":"Yes, approve the document","drivers.confirmAssignVehicleTitle":"Assign vehicle","drivers.confirmAssignVehicleDescPrefix":"This becomes the vehicle","drivers.confirmAssignVehicleDescSuffix":" works with: it replaces any previous one and decides which trip categories they can receive.","drivers.confirmAssignVehicleButton":"Yes, assign the vehicle","drivers.confirmUnlinkVehicleTitle":"Unlink vehicle","drivers.confirmUnlinkVehicleDesc":"will be left without a vehicle and will not be able to go online until you assign another one.","drivers.confirmUnlinkVehicleButton":"Yes, unlink","staff.accessSubtitle":"Tick which sections of the panel each role opens. It applies to everyone who holds that role.","staff.accessCaption":"Sections of the panel each role opens","staff.accessColSection":"Section","staff.accessUnsaved":"Unsaved changes","staff.accessSavedPill":"Saved","staff.accessRestore":"Restore defaults","staff.accessSave":"Save changes","staff.accessSaved":"Permissions saved","staff.accessSavedDesc":"Each person will see their updated menu the next time they load the panel.","staff.accessSaveError":"The permissions could not be saved","staff.accessLockedReason":"The server does not allow this section to this role","staff.accessLockedHint":"Boxes with a lock cannot be ticked: the server does not let that role read the data of that section.","staff.accessAlwaysReason":"Every role opens the Dashboard: it is where the panel starts","staff.accessActionsHint":"Inside each section, the buttons a role sees (approve, suspend, refund…) follow what the server lets it do and are not configured here.","staff.accessUnavailable":"This server does not offer configurable role permissions yet. Update the API to edit this table.","riders.filterAll":"All riders","riders.filterActive":"Active","riders.filterSuspended":"Suspended","riders.filterBanned":"Banned","riders.toastReactivated":"Rider reactivated","riders.toastSuspended":"Rider suspended","riders.toastStatusUpdated":"Status updated","riders.toastStatusError":"Could not change the status","riders.confirmSuspendTitle":"Suspend","riders.confirmSuspendDescriptionList":"They will not be able to request new trips until you reactivate them. Their trips in progress continue and their history is kept.","riders.confirmSuspendDescriptionDetail":"They will not be able to request new trips until you reactivate them. Their history and payment methods are kept.","riders.suspendPassenger":"Suspend rider","riders.reactivatePassenger":"Reactivate rider","riders.suspendReasonPanel":"Suspended from the panel","riders.suspendShort":"Suspend","riders.reactivateShort":"Reactivate","riders.banShort":"Ban","riders.confirmBanTitle":"Permanently ban","riders.confirmBanDescription":"A ban is the harshest measure: they lose access to the app and cannot request trips with this account again. Use it only for proven fraud or abuse.","riders.banAccountButton":"Ban account","riders.colRider":"Rider","riders.registeredOn":"Registered on","riders.colContact":"Contact","riders.noPhone":"No phone","riders.colTrips":"Trips","riders.colStatus":"Status","riders.colLastAccess":"Last access","riders.viewProfile":"View rider's profile","riders.actionsFor":"Actions for {name}","riders.title":"Riders","riders.subtitleCount":"registered riders","riders.subtitleCountOne":"registered rider","riders.loading":"Loading riders…","riders.newPassenger":"New rider","riders.searchPlaceholder":"Search by name, email or phone…","riders.filterByStatus":"Filter by status","riders.tableCaption":"Riders registered in the operation","riders.emptyTitle":"No riders registered yet","riders.emptyDescription":"Once someone signs up from the app they will appear here. You can also add one yourself.","riders.registerPassenger":"Register rider","riders.paginationLabel":"riders","riders.detailTitle":"Rider","riders.loadingDetail":"Loading the profile…","riders.since":"since","riders.lastAccessLower":"last access","riders.backToPassengers":"Back to riders","riders.kpiCompletedTrips":"Completed trips","riders.kpiTotalSpent":"Total spent","riders.kpiWalletBalance":"Wallet balance","riders.recentTripsTitle":"Recent trips","riders.recentTripsSubtitleSuffix":"most recent trips from this rider","riders.recentTripsSubtitleSuffixOne":"trip from this rider","riders.recentTripsCaption":"Rider's recent trips","riders.colTrip":"Trip","riders.colRoute":"Route","riders.colFare":"Fare","riders.colDate":"Date","riders.noTripsTitle":"This rider has not taken a trip yet","riders.noTripsDescription":"As soon as they request their first trip it will appear here with the route and fare.","riders.walletMovementsTitle":"Wallet movements","riders.currentBalancePrefix":"Current balance","riders.noWalletCreated":"No wallet created","riders.walletMovementsCaption":"Rider's wallet movements","riders.thConcept":"Description","riders.thAmount":"Amount","riders.thBalanceAfter":"Balance after","riders.noWalletMovementsTitle":"No balance movements yet","riders.noWalletMovementsDescription":"The wallet activates with the first top-up, refund or promo credit.","riders.pendingFeesTitle":"Cancellation fees","riders.pendingFeesSubtitleOwed":"Owes {amount} — collected in cash on their next trip","riders.pendingFeesSubtitleNone":"No pending fees","riders.pendingFeesCaption":"Rider's cancellation fees","riders.pendingFeesEmptyTitle":"No cancellation fees","riders.pendingFeesEmptyDescription":"This rider has never cancelled with the driver already waiting at the pickup.","riders.pendingFeesHint":"A pending fee is added to the cash the rider pays on their next completed trip. Waiving it reverses nothing for the driver who waited: they were already credited, so the platform absorbs the amount.","riders.feeStatePending":"Pending","riders.feeStateCollected":"Collected","riders.feeStateWaived":"Waived","riders.feeWaive":"Waive","riders.confirmWaiveTitle":"Waive this cancellation fee?","riders.confirmWaiveDescription":"{amount} will no longer be collected from {name}. The driver who waited keeps the credit they already received: the platform absorbs the amount. This cannot be undone.","riders.toastFeeWaived":"Cancellation fee waived","riders.toastFeeWaiveError":"The fee could not be waived","riders.contactTitle":"Contact","riders.email":"Email","riders.noEmail":"No email","riders.verified":"Verified","riders.phone":"Phone","riders.callPassenger":"Call rider","riders.joinedPlatform":"Joined the platform","riders.appLanguage":"App language","riders.emergencyContactsTitle":"Emergency contacts","vehicles.zodMin2":"At least 2 characters","vehicles.zodMin3":"At least 3 characters","vehicles.zodMax20":"At most 20 characters","vehicles.zodMax30":"At most 30 characters","vehicles.zodMax40":"At most 40 characters","vehicles.zodYearMin":"From 1990","vehicles.zodYearMax":"Up to 2030","vehicles.zodCapacityMin":"At least 1 passenger","vehicles.zodCapacityMax":"At most 8 passengers","vehicles.zodCategoryRequired":"Pick a category","vehicles.toastUpdated":"Vehicle updated","vehicles.toastCreated":"Vehicle created","vehicles.genericError":"Error","vehicles.toastDeleted":"Vehicle deleted","vehicles.deleteError":"Could not delete the vehicle","vehicles.confirmDeleteTitlePrefix":"Delete","vehicles.confirmDeletePlatePrefix":"Plate","vehicles.confirmDeleteAssignedTo":"is assigned to","vehicles.confirmDeleteAssignedWarning":"Deleting it leaves the driver without a vehicle and unable to go online.","vehicles.confirmDeleteUnassignedWarning":"will leave the fleet and can no longer be assigned to a driver. This cannot be undone.","vehicles.deleteVehicleButton":"Delete vehicle","vehicles.colVehicle":"Vehicle","vehicles.colPlate":"Plate","vehicles.colCategory":"Category","vehicles.colCapacity":"Capacity","vehicles.colGear":"Features","vehicles.noGear":"No features","vehicles.childSeat":"Child seat","vehicles.wheelchairAccess":"Wheelchair access","vehicles.colDriver":"Driver","vehicles.unassigned":"Unassigned","vehicles.actionsFor":"Actions for {name}","vehicles.title":"Vehicles","vehicles.subtitleCount":"vehicles in the fleet","vehicles.subtitleCountOne":"vehicle in the fleet","vehicles.newVehicle":"New vehicle","vehicles.searchPlaceholder":"Search by plate, brand or model…","vehicles.searchAriaLabel":"Search vehicles","vehicles.filterByCategory":"Filter by category","vehicles.allCategories":"All categories","vehicles.tableCaption":"Vehicles registered in the fleet","vehicles.emptyTitle":"No vehicles yet","vehicles.emptyDescription":"Register the first vehicle so it can be assigned to a driver.","vehicles.paginationLabel":"vehicles","vehicles.editVehicleTitle":"Edit vehicle","vehicles.editVehicleDescription":"Update the vehicle information.","vehicles.newVehicleDescription":"Register a new vehicle in the fleet.","vehicles.brand":"Brand","vehicles.model":"Model","vehicles.year":"Year","vehicles.color":"Color","vehicles.colorLegacyHint":"This vehicle holds a hand-typed colour. Pick one from the list to normalise it.","vehicles.capacityHint":"Passengers not counting the driver.","vehicles.airConditioning":"Air conditioning","vehicles.wheelchairAccessLabel":"Wheelchair access","staff.zodEmailRequired":"Enter the email","staff.zodEmailInvalid":"That email is not valid","staff.zodNameMin":"At least 2 characters","staff.zodPasswordMin":"The password needs at least 8 characters","staff.toastCreatedTitle":"Member created","staff.toastCreatedDescription":"Hand over the temporary password yourself: creating a member does not send an invitation email.","staff.toastCreateError":"Could not create the member","staff.toastUpdated":"Member updated","staff.toastUpdateError":"Could not update","staff.toastAccessRestored":"Access restored","staff.toastAccessSuspended":"Access suspended","staff.toastStatusError":"Could not change the status","staff.toastDeleted":"Member deleted","staff.toastDeleteError":"Could not delete","staff.confirmSuspendTitlePrefix":"Suspend access for","staff.confirmSuspendDescription":"They will lose panel access immediately. Their account and history are kept intact.","staff.suspendAccessButton":"Suspend access","staff.confirmDeleteTitlePrefix":"Delete","staff.confirmDeleteDescPrefix":"This deletes their","staff.confirmDeleteDescSuffix":"account and they lose access to the panel forever. Everything they did will remain on record in the audit log.","staff.deleteMemberButton":"Delete member","staff.colMember":"Member","staff.youPill":"You","staff.colRole":"Role","staff.colStatus":"Status","staff.colMemberSince":"On the team since","staff.colLastAccess":"Last access","staff.selfActionTitle":"This is your own account","staff.rolesTitle":"What each role can open","staff.rolesAdminAll":"Every section of the panel, including Configuration, Finance, Team and Audit.","staff.selfActionBlocked":"You cannot suspend or delete the account you are signed in with. Ask another administrator to do it.","staff.editMemberLabel":"Edit member","staff.restoreAccessLabel":"Restore access","staff.actionsFor":"Actions for {name}","staff.title":"Team","staff.subtitlePeopleSuffix":"people with panel access","staff.subtitlePeopleSuffixOne":"person with panel access","staff.subtitleActiveSuffix":"active","staff.subtitleActiveSuffixOne":"active","staff.loading":"Loading the team…","staff.newMember":"New member","staff.tableCaption":"Team members with panel access","staff.emptyTitle":"No other team members yet","staff.emptyDescription":"Add your dispatchers and support team so they can handle the operation with you.","staff.addMember":"Add member","staff.createDialogTitle":"New team member","staff.createDialogDescription":"You create their account and hand over the temporary password yourself.","staff.firstName":"First name","staff.lastName":"Last name","staff.email":"Email","staff.emailPlaceholder":"name@company.com","staff.role":"Role","staff.roleAdminOption":"Admin — full panel access","staff.roleDispatcherOption":"Dispatcher — operations and trips","staff.roleSupportOption":"Support — tickets and assistance","staff.tempPassword":"Temporary password","staff.tempPasswordHint":"They will change it the first time they sign in.","staff.passwordPlaceholder":"At least 8 characters","staff.noInviteEmailNotice":"Creating a member does not send an invitation email: share the temporary password yourself through a secure channel.","staff.createMemberButton":"Create member","staff.editDialogTitlePrefix":"Edit","staff.newPassword":"New password","staff.newPasswordHint":"Leave it empty to keep the current one.","staff.noChangesPlaceholder":"No changes","staff.saveChangesButton":"Save changes","riders.confirmReactivateTitle":"Reactivate","riders.confirmReactivateDescription":"They get their app access back and can request trips again immediately.","staff.confirmRestoreTitlePrefix":"Restore access for","staff.confirmRestoreDescription":"They can sign in to the panel again with every permission their role grants.","riders.tagsTitle":"Tags","riders.tagsSubtitle":"They segment the rider for targeted promotions.","riders.tagsEmpty":"No tags. A targeted promotion only reaches riders carrying its own.","riders.tagAdd":"Add","riders.tagsSuggested":"Already in use","riders.tagPlaceholder":"acme-partner","riders.tagRemove":"Remove {tag}","riders.tagsSaved":"Tags saved","riders.tagsError":"Could not save the tags","audit.range.ariaLabel":"Date range","audit.range.today":"Today","audit.range.7d":"7 days","audit.range.30d":"30 days","audit.range.all":"All time","audit.range.custom":"Custom","audit.range.from":"From","audit.range.to":"To","audit.pageTitle":"Audit log","audit.loading":"Loading…","audit.subtitleCount":"{n} {n|decision or change|decisions and changes} on record","audit.subtitleFiltered":"{n} {n|result|results} with these filters","audit.exportCsv":"Export CSV","audit.exportFailed":"Could not generate the CSV","audit.exportCapped":"The CSV holds at most {max} rows. This filter has {n}: narrow the dates to export the rest.","audit.searchPlaceholder":"Search by person, plate or name…","audit.filterActionAriaLabel":"Filter by action","audit.allActions":"All actions","audit.filterEntityAriaLabel":"Filter by kind of record","audit.allEntities":"All kinds","audit.filterActorAriaLabel":"Filter by who did it","audit.allActors":"Anyone","audit.actorSystemOption":"System (automatic)","audit.colWhen":"Date","audit.colWho":"Who","audit.colWhat":"What happened","audit.sortNewest":"Newest first. Press to see the oldest first","audit.sortOldest":"Oldest first. Press to see the newest first","audit.emptyTitle":"Nothing in the audit log yet","audit.emptyDescription":"Every decision the team takes shows up here: approvals, fare and settings changes, payments, exports.","audit.caption":"Audit log","audit.paginationLabel":"events","audit.actor.system":"System","audit.actor.deleted":"Deleted user","audit.value.empty":"empty","audit.value.none":"none","audit.value.yes":"Yes","audit.value.no":"No","audit.name.ofOwner":"{name} of {owner}","audit.name.ownerOnly":"of {owner}","audit.summary.more":"+{n} more","audit.summary.reason":"reason: {reason}","audit.reason.inactivity":"inactivity","audit.reason.new_session":"new session started","audit.reason.docs_expired":"expired document","audit.detail.who":"Who","audit.detail.when":"When","audit.detail.origin":"From where","audit.detail.reason":"Reason","audit.detail.changes":"What changed","audit.detail.recorded":"Recorded data","audit.detail.colValue":"Value","audit.detail.recordGone":"This record no longer exists; its name comes from what the entry itself kept.","audit.detailNoChanges":"This entry did not record any field changes.","audit.detailColField":"Field","audit.detailColBefore":"Before","audit.detailColAfter":"After","audit.origin.noIp":"IP not recorded","audit.origin.noDevice":"device not recorded","audit.origin.automatic":"Automatic server process","audit.origin.raw":"Show the device’s technical identifier","audit.s.generic":"{actor} {verb} {object}","audit.s.TAG_ADD":"{actor} added the tag {tags} to {name}","audit.s.TAG_ADD_MANY":"{actor} added the tags {tags} to {name}","audit.s.TAG_REMOVE":"{actor} removed the tag {tags} from {name}","audit.s.TAG_REMOVE_MANY":"{actor} removed the tags {tags} from {name}","audit.s.ASSIGN_VEHICLE":"{actor} assigned vehicle {vehicle} to {name}","audit.s.UNASSIGN_VEHICLE":"{actor} left {name} without a vehicle","audit.s.APPROVE_DOCUMENTS":"{actor} approved {count} {count|document|documents} of {name}","audit.s.WAIVE_FEE":"{actor} waived the cancellation fee of {owner}","audit.s.WALLET_TOPUP":"{actor} credited the wallet of {owner}","audit.s.WALLET_WITHDRAW":"{actor} charged the wallet of {owner}","audit.s.EXPORT":"{actor} exported to CSV: {entity}","audit.s.REORDER":"{actor} changed the order of: {entity}","audit.s.ACCESS_DENIED":"{actor} tried to open a document that is not theirs to see","audit.s.LOGIN":"{actor} signed in","audit.s.LOGOUT":"{actor} signed out","audit.s.PASSWORD_RESET":"{actor} reset a password","audit.s.CONNECT_SELF":"{actor} went online","audit.s.DISCONNECT_SELF":"{actor} went offline","audit.s.CREATE.AccountDeletionRequest":"{actor} asked to delete their account","audit.s.CANCEL.AccountDeletionRequest":"{actor} cancelled the deletion of the account of {owner}","audit.s.DELETE.User":"{actor} deleted the account of {owner}","audit.s.UPDATE.Tenant":"{actor} changed the company settings","audit.s.UPDATE.HomeBanner":"{actor} changed the home banners","audit.s.RESOLVE.SecurityEvent":"{actor} handled the SOS alert of {owner}","audit.s.UPDATE.DriverIdentity":"{actor} corrected the identity details of {name}","audit.s.REJECT.DriverIdentity":"{actor} rejected the data change {name} asked for","audit.s.UPDATE.DriverGeofence":"{actor} changed the geofence of {name}","audit.verb.CREATE":"created","audit.verb.UPDATE":"changed","audit.verb.DELETE":"deleted","audit.verb.APPROVE":"approved","audit.verb.REJECT":"rejected","audit.verb.SUSPEND":"suspended","audit.verb.BAN":"banned","audit.verb.REACTIVATE":"reactivated","audit.verb.CANCEL":"cancelled","audit.verb.REFUND":"refunded","audit.verb.EXPORT":"exported","audit.verb.CONNECT":"put online","audit.verb.DISCONNECT":"took offline","audit.verb.RESOLVE":"handled","audit.obj.Driver":"driver","audit.obj.Rider":"rider","audit.obj.StaffUser":"team member","audit.obj.User":"user","audit.obj.Vehicle":"vehicle","audit.obj.Document":"the document","audit.obj.Trip":"the trip","audit.obj.PricingRule":"the fare","audit.obj.SurgeRule":"the surge rule","audit.obj.PromoRule":"the promo rule","audit.obj.Promotion":"the promotion","audit.obj.Zone":"the zone","audit.obj.City":"the city","audit.obj.Country":"the country","audit.obj.VehicleCategory":"the category","audit.obj.VehicleFeature":"the vehicle feature","audit.obj.DocumentRequirement":"the document requirement","audit.obj.HomeBanner":"the home banner","audit.obj.PaymentProviderConfig":"the payment gateway","audit.obj.Payout":"the payout","audit.obj.CommissionPayment":"the commission payment","audit.obj.CompanyPaymentAccount":"the collection account","audit.obj.WalletMovement":"the wallet movement","audit.obj.AccountDeletionRequest":"the account deletion request","audit.obj.SecurityEvent":"the SOS alert","audit.obj.Tenant":"the company settings","audit.obj.DriverGeofence":"the geofence of","audit.obj.DriverIdentity":"the identity of","audit.obj.Transaction":"the transaction","audit.plural.Trip":"trips","audit.plural.Transaction":"transactions","audit.plural.Driver":"drivers","audit.plural.AuditLog":"audit log","audit.plural.SecurityEvent":"security events","audit.plural.VehicleCategory":"vehicle categories","audit.plural.VehicleFeature":"vehicle features","audit.plural.HomeBanner":"home banners","audit.enum.ACK":"Acknowledged","audit.enum.RESOLVED":"Resolved","audit.enum.FALSE_ALARM":"False alarm","audit.enum.TOPUP":"Top-up","audit.enum.WITHDRAW":"Withdrawal","audit.enum.SANDBOX":"Test","audit.enum.LIVE":"Live","audit.field.status":"Status","audit.field.tags":"Tags","audit.field.role":"Role","audit.field.name":"Name","audit.field.label":"Name","audit.field.firstName":"First name","audit.field.lastName":"Last name","audit.field.email":"Email","audit.field.phone":"Phone","audit.field.documentType":"Document type","audit.field.documentNumber":"Document number","audit.field.passwordChanged":"Password reset","audit.field.plate":"Plate","audit.field.category":"Category","audit.field.brand":"Make","audit.field.model":"Model","audit.field.year":"Year","audit.field.color":"Colour","audit.field.capacity":"Seats","audit.field.seats":"Seats","audit.field.featureCodes":"Equipment","audit.field.vehicleId":"Vehicle","audit.field.driverId":"Driver","audit.field.riderId":"Rider","audit.field.userId":"Person","audit.field.base":"Base fare","audit.field.perKm":"Per km","audit.field.perMin":"Per minute","audit.field.minFare":"Minimum fare","audit.field.cancellationFee":"Cancellation fee","audit.field.driverCancellationFee":"Driver cancellation fee","audit.field.bookingFee":"Booking fee","audit.field.serviceFeePercent":"Service fee","audit.field.taxPercent":"Tax","audit.field.nightSurchargePercent":"Night surcharge","audit.field.multiplier":"Multiplier","audit.field.priority":"Priority","audit.field.type":"Type","audit.field.active":"Active","audit.field.enabled":"Enabled","audit.field.mode":"Mode","audit.field.commissionPercent":"Commission","audit.field.supportedCountries":"Countries","audit.field.publishableKeyChanged":"Publishable key replaced","audit.field.secretKeyChanged":"Secret key replaced","audit.field.webhookSecretChanged":"Webhook secret replaced","audit.field.city":"City","audit.field.country":"Country","audit.field.code":"Code","audit.field.currency":"Currency","audit.field.locale":"Language","audit.field.timezone":"Time zone","audit.field.phonePrefix":"Phone prefix","audit.field.flag":"Flag","audit.field.primary":"Primary city","audit.field.centerLat":"Centre (latitude)","audit.field.centerLng":"Centre (longitude)","audit.field.operatingRadiusKm":"Operating radius","audit.field.dispatchStartKm":"Driver search: first radius","audit.field.dispatchMaxKm":"Driver search: maximum radius","audit.field.geofenceEnabled":"Geofence on","audit.field.arriveRadiusM":"Radius to mark arrival","audit.field.startRadiusM":"Radius to start the trip","audit.field.completeRadiusM":"Radius to finish the trip","audit.field.legalName":"Legal name","audit.field.tagline":"Tagline","audit.field.dispatcherSections":"Sections the Dispatcher opens","audit.field.supportSections":"Sections Support opens","audit.field.defaultCurrency":"Currency","audit.field.defaultLocale":"Default language","audit.field.customDomain":"Custom domain","audit.field.brandLogo":"Logo (light theme)","audit.field.brandPrimary":"Primary colour","audit.field.brandSecondary":"Secondary colour","audit.field.brandBackground":"Panel background (dark)","audit.field.brandBackgroundLight":"Panel background (light)","audit.field.brandSurface":"Surface colour","audit.field.brandAppBackground":"App background (light)","audit.field.brandAppBackgroundDark":"App background (dark)","audit.field.brandIcon":"Icon colour","audit.field.brandVehicle":"Map vehicle","audit.field.driverIdleTimeoutMin":"Idle disconnection","audit.field.description":"Description","audit.field.icon":"Icon","audit.field.iconKey":"Icon","audit.field.kind":"Kind of service","audit.field.comingSoon":"Coming soon","audit.field.isDefault":"Default","audit.field.sortOrder":"Order","audit.field.required":"Mandatory","audit.field.requiresExpiry":"Asks for an expiry date","audit.field.filterable":"Can be filtered by","audit.field.group":"Group","audit.field.imageUrl":"Image","audit.field.linkUrl":"Link","audit.field.bankName":"Bank","audit.field.accountType":"Account type","audit.field.accountNumber":"Account number","audit.field.interbankNumber":"Interbank code","audit.field.holderName":"Account holder","audit.field.holderDocument":"Holder’s document","audit.field.instructions":"Instructions","audit.field.amount":"Amount","audit.field.balance":"Balance","audit.field.refundAmount":"Refunded amount","audit.field.fareEstimate":"Estimated fare","audit.field.paymentStatus":"Payment status","audit.field.cancellationFeeStatus":"Fee status","audit.field.decision":"Decision","audit.field.outcome":"Outcome","audit.field.expiresAt":"Expires","audit.field.scheduledFor":"Scheduled for","audit.field.requestedAt":"Requested on","audit.field.deletedAt":"Deleted on","audit.field.cancelledBy":"Cancelled by","audit.field.documents":"Documents","audit.field.document":"Document","audit.field.rows":"Rows","audit.field.from":"From","audit.field.to":"To","audit.field.q":"Search","audit.field.action":"Action","audit.field.entity":"Kind of record","audit.field.actor":"Author","audit.field.severity":"Severity","audit.field.idleMinutes":"Time without activity","audit.field.timeoutMin":"Time allowed","audit.field.discountType":"Discount type","audit.field.discountValue":"Discount","audit.field.published":"Published","audit.field.audience":"Audience","audit.field.audienceTag":"Audience tag","audit.field.codes":"Codes","audit.field.codesAdded":"Codes added","audit.field.codesRemoved":"Codes removed","audit.field.benefit":"Benefit","audit.field.value":"Value","audit.field.n":"Every how many trips","audit.storage.title":"Storage","audit.storage.subtitle":"How much the tables that never stop growing weigh, and what a cleanup would free","audit.storage.caption":"Storage used per table","audit.storage.colTable":"Data","audit.storage.colRows":"Records","audit.storage.colSize":"Size","audit.storage.colOldest":"Oldest","audit.storage.colReclaim":"Freed by deleting everything older than","audit.storage.days":"{n} {n|day|days}","audit.storage.nothing":"nothing","audit.storage.approx":"Estimated from a sample","audit.storage.adviceWorth":"Worth cleaning up: deleting everything older than {days} days would free about {size}, nearly all of it in “{table}”.","audit.storage.adviceNotYet":"Not worth cleaning up yet: everything older than {days} days takes about {size}, under the {threshold} from which the space gained becomes noticeable.","audit.storage.adviceNothing":"Nothing to clean up yet: no record is older than {days} days.","audit.storage.footnote":"Sizes are of the whole tables (data plus indexes) across the entire database, which weighs {db}. Measured on {date}. Freed space is reused for new records; the file on disk does not shrink by itself.","audit.storage.table.LocationPing":"GPS points","audit.storage.tableHint.LocationPing":"Each driver’s position, every few seconds","audit.storage.table.AuditLog":"Audit log","audit.storage.tableHint.AuditLog":"The team’s decisions and changes","audit.storage.table.SecurityEvent":"Security events","audit.storage.tableHint.SecurityEvent":"Sign-in attempts, alerts and fraud","audit.storage.table.TripEvent":"Trip history","audit.storage.tableHint.TripEvent":"Every step of every trip","audit.storage.table.AppEvent":"App usage","audit.storage.tableHint.AppEvent":"What riders and drivers tap","audit.storage.table.UserNotification":"Notifications","audit.storage.tableHint.UserNotification":"Notices sent to each user","audit.storage.table.RefreshToken":"Sessions","audit.storage.tableHint.RefreshToken":"Open and expired sessions","audit.retention.title":"Retention and cleanup","audit.retention.subtitle":"How long each kind of data is kept. Once a day, whatever is past its retention is deleted, a little at a time","audit.retention.keep":"Keep {days}","audit.retention.never":"Never delete","audit.retention.hint.location":"The points of a trip that is under way, disputed, had an SOS or has an open support ticket are never deleted. The route of every finished trip is kept separately.","audit.retention.hint.audit":"The team’s decisions and changes. It is the record a complaint is answered with.","audit.retention.hint.security":"Failed sign-ins, lockouts and signs of fraud. SOS alerts are never deleted.","audit.retention.hint.appEvents":"What riders and drivers tap in the apps. The panel only uses the last 30 days.","audit.retention.save":"Save retention","audit.retention.saved":"Retention saved","audit.retention.saveFailed":"Could not save the retention","audit.retention.saveFirst":"Save the retention before cleaning up","audit.retention.cleanNow":"Clean up now","audit.retention.neverRan":"No cleanup has run yet. The first one runs by itself within the next hour.","audit.retention.lastRun":"Last cleanup:","audit.retention.byStaff":"manual","audit.retention.bySystem":"automatic","audit.retention.lastRunResult":"{n} {n|record|records} deleted, about {size} freed","audit.retention.lastRunNothing":"there was nothing to delete","audit.retention.more":"there are records left to delete; the cleanup carries on by itself every hour","audit.retention.nothingTitle":"Nothing to clean up","audit.retention.nothingBody":"No record is past the saved retention.","audit.retention.confirmTitle":"Delete {n} {n|record|records}?","audit.retention.confirmLine":"{n} of “{what}” older than {date}.","audit.retention.confirmWarning":"This cannot be undone.","audit.retention.confirmAction":"Delete permanently","audit.retention.done":"{n} {n|record|records} deleted, about {size} freed","audit.retention.runFailed":"Could not run the cleanup","audit.s.DELETE.DataRetention":"{actor} cleaned up {count} old {count|record|records}","audit.s.UPDATE.DataRetention":"{actor} changed the data retention","audit.field.auditRetentionDays":"Audit log","audit.field.securityRetentionDays":"Security events","audit.field.locationRetentionDays":"GPS points","audit.field.appEventRetentionDays":"App usage","audit.field.auditEntries":"Audit entries","audit.field.securityEvents":"Security events","audit.field.locationPoints":"GPS points","audit.field.appEvents":"App usage events","audit.field.freedBytes":"Space freed","audit.value.days":"{n} {n|day|days}","audit.value.neverDelete":"never deleted","audit.field.dispatchOperatorTimeoutMin":"Manual dispatch wait","audit.field.offerResponseSeconds":"Time a driver has to answer","audit.field.counterOfferSeconds":"Counter-offer validity","audit.field.scheduledDispatchLeadMinutes":"Scheduled trips: search lead time","audit.field.dataUpdateCooldownDays":"Wait between data changes","audit.field.supportSlaHours":"Support response time","audit.field.androidStoreUrl":"Google Play link","audit.field.iosStoreUrl":"App Store link","audit.field.brandLogoDark":"Logo (dark theme)","audit.field.brandFavicon":"Browser icon","audit.field.brandLandingLogo":"Public page logo","audit.field.launchDate":"Launch date","audit.field.mailProvider":"Mail: provider","audit.field.mailHost":"Mail: server","audit.field.mailPort":"Mail: port","audit.field.mailSecurity":"Mail: encryption","audit.field.mailFromName":"Mail: sender name","audit.field.mailFromEmail":"Mail: sender address","audit.field.mailReplyTo":"Mail: reply-to","audit.field.mailUserChanged":"Mail: user changed","audit.field.mailPasswordChanged":"Mail: password replaced","audit.field.provider":"Provider","audit.field.host":"Server","audit.field.port":"Port","audit.field.security":"Encryption","audit.field.user":"User","audit.field.gmailUser":"User","audit.field.fromName":"Sender name","audit.field.fromEmail":"Sender address","audit.field.replyTo":"Reply-to","audit.field.seconds":"Seconds on screen","audit.field.rotateSeconds":"Seconds between banners","audit.field.frequency":"Frequency","audit.field.dismissible":"Can be dismissed","audit.field.startsAt":"Starts","audit.field.endsAt":"Ends","audit.field.nightStartHour":"Night hours start","audit.field.nightEndHour":"Night hours end","audit.field.rounding":"Rounding","audit.field.maxDiscount":"Maximum discount","audit.field.minTripAmount":"Minimum trip amount","audit.field.validFrom":"Valid from","audit.field.validUntil":"Valid until","audit.field.maxUsesGlobal":"Total uses","audit.field.maxUsesPerUser":"Uses per person","audit.field.badge":"Badge","audit.field.categoryCodes":"Categories","audit.field.fields":"Fields","audit.field.demoSimulatorEnabled":"Demo simulator","audit.field.demoSimulatorDrivers":"Simulated drivers","audit.field.by":"Carried out by","audit.field.other":"Other setting","audit.field.slug":"Short address","audit.field.retentionLastRunAt":"Last clean-up","audit.field.hasAC":"Air conditioning","audit.field.hasChildSeat":"Child seat","audit.field.hasWheelchairAccess":"Wheelchair access","audit.field.fileUrl":"File","audit.field.mimeType":"File type","audit.field.sizeBytes":"File size","audit.field.issuedAt":"Issue date","audit.field.reviewedAt":"Review date","audit.field.receiptUrl":"Receipt","audit.field.receiptMimeType":"Receipt type","audit.field.operationRef":"Operation number","audit.field.paidAt":"Payment date","audit.field.providerRef":"Gateway reference","audit.field.failureReason":"Failure reason","audit.field.publishableKey":"Public key","audit.field.isSystem":"Built in","audit.field.documentIssuedAt":"Document issued","audit.value.file":"uploaded file","audit.file.updated":"{label} updated","audit.file.removed":"{label} removed","audit.many.Driver":"{count} drivers","audit.many.Rider":"{count} riders","audit.many.StaffUser":"{count} team members","audit.many.User":"{count} users","audit.many.Vehicle":"{count} vehicles","audit.many.Document":"{count} documents","audit.many.Trip":"{count} trips","audit.many.PricingRule":"{count} fares","audit.many.SurgeRule":"{count} surge rules","audit.many.PromoRule":"{count} promo rules","audit.many.Promotion":"{count} promotions","audit.many.Zone":"{count} zones","audit.many.City":"{count} cities","audit.many.Country":"{count} countries","audit.many.VehicleCategory":"{count} categories","audit.many.VehicleFeature":"{count} vehicle features","audit.many.DocumentRequirement":"{count} document requirements","audit.many.HomeBanner":"{count} home banners","audit.many.Payout":"{count} payouts","audit.many.CommissionPayment":"{count} commission payments","audit.many.CompanyPaymentAccount":"{count} collection accounts","audit.many.SecurityEvent":"{count} SOS alerts","audit.value.seconds":"{n} s","audit.value.hours":"{n} h","audit.s.TAG_CHANGE":"{actor} changed the tags of {name}","audit.g.generic":"{actor} {verb} {many}","audit.g.TAG_ADD":"{actor} added the tag {tags} to {many}","audit.g.TAG_ADD_MANY":"{actor} added the tags {tags} to {many}","audit.g.TAG_REMOVE":"{actor} removed the tag {tags} from {many}","audit.g.TAG_REMOVE_MANY":"{actor} removed the tags {tags} from {many}","audit.g.TAG_CHANGE":"{actor} changed the tags of {many}","audit.g.same":"{sentence} · {count} times in a row","audit.g.other":"{sentence} and {count} more","audit.detail.members":"The {n} entries in this line","audit.detail.rawField":"Internal field name: {field}","security.pageTitle":"Security","security.pageSubtitle":"Sign-in attempts, alerts and signs of fraud","security.subtitleCount":"{events} {events|event|events} in {lines} {lines|line|lines}","security.statFailedLogins":"Failed sign-ins","security.statLockouts":"Locked accounts","security.statFraud":"Signs of fraud","security.statSosAlerts":"SOS alerts","security.searchPlaceholder":"Search by person, IP or device…","security.filterTypeAriaLabel":"Filter by event type","security.allEvents":"All events","security.severityAll":"All","security.severityInfo":"Info","security.severityWarn":"Warning","security.severityError":"Error","security.colEvent":"What happened","security.colSeverity":"Severity","security.colSource":"From where","security.colIp":"IP","security.colWhen":"When","security.loopbackTooltip":"The server sits behind a proxy that does not pass on the visitor’s real IP","security.emptyTitle":"No security events","security.emptyDescription":"Failed sign-ins, locked accounts, signs of fraud and SOS alerts show up here.","security.caption":"Security events","security.paginationLabel":"lines","security.deviceAndroidApp":"Android app","security.deviceIosApp":"iOS app","security.deviceBrowserGeneric":"Browser","security.truncated":"This range holds more than {max} events: the most recent are shown. Narrow the dates to see the earlier ones.","security.who.unknown":"an account that does not exist","security.span.moment":"under a minute","security.span.minutes":"{n} min","security.span.hours":"{n} h","security.times":"{n} times","security.s.generic":"{type} · {who}","security.s.LOGIN_OK":"{who} signed in to the panel","security.s.LOGIN_OK.many":"{who} signed in to the panel {count} times in {span}","security.s.LOGIN_FAIL":"Failed attempt to sign in as {who}","security.s.LOGIN_FAIL.many":"{count} failed attempts to sign in as {who} in {span}","security.s.OTP_FAIL":"Wrong verification code from {who}","security.s.OTP_FAIL.many":"{count} wrong verification codes from {who} in {span}","security.s.OTP_LOCKED":"Code verification for {who} was locked","security.s.ACCOUNT_LOCKED":"The account of {who} was locked after failed attempts","security.s.TOKEN_REUSE":"Someone tried to use an already closed session of {who}","security.s.TOKEN_REUSE.many":"{count} attempts to use an already closed session of {who} in {span}","security.s.ROOT_DETECTED":"The phone of {who} is modified (root or jailbreak)","security.s.ROOT_DETECTED.many":"The phone of {who} is modified (root or jailbreak) — detected {count} times","security.s.MOCK_LOCATION_DETECTED":"{who} is using a fake location","security.s.MOCK_LOCATION_DETECTED.many":"{count} fake-location detections for {who} in {span}","security.s.IMPOSSIBLE_SPEED":"{who} moved at an impossible speed","security.s.IMPOSSIBLE_SPEED.many":"{count} impossible-speed jumps for {who} in {span}","security.s.SOS_TRIGGERED":"{who} triggered an SOS alert","security.mean.LOGIN_OK":"A team member signed in to the panel with their password.","security.do.LOGIN_OK":"Nothing, unless you do not recognise the time or the place: in that case change that account’s password.","security.mean.LOGIN_FAIL":"Someone typed the wrong password for this account. One or two attempts are usually a slip; many in a row are someone trying passwords.","security.do.LOGIN_FAIL":"If there are many, or they come from an IP you do not know, tell the account’s owner and ask them to change the password. After 5 failures the account locks itself.","security.mean.OTP_FAIL":"A wrong verification code was entered.","security.do.OTP_FAIL":"Usually nothing. If it repeats many times for the same number, someone is trying to get in with a phone that is not theirs.","security.mean.OTP_LOCKED":"Too many codes failed in a row and verification was locked for a while.","security.do.OTP_LOCKED":"If the user writes to you, confirm who they are by another channel before helping them in.","security.mean.ACCOUNT_LOCKED":"The password failed 5 times in a row and the account was temporarily locked.","security.do.ACCOUNT_LOCKED":"It unlocks by itself in a few minutes. If the owner was not the one failing, ask them to change the password.","security.mean.TOKEN_REUSE":"A session that had already been closed or renewed was presented. It may be a stolen copy of that session; as a precaution every session of that device was closed.","security.do.TOKEN_REUSE":"The person will have to sign in again. If it repeats, ask them to change the password.","security.mean.ROOT_DETECTED":"The phone’s system has been modified, which allows tampering with the app or faking the location.","security.do.ROOT_DETECTED":"Review that person’s recent trips. If they are a driver, consider suspending them until they use an unmodified phone.","security.mean.MOCK_LOCATION_DETECTED":"The phone is sending a position made up by another app, not the real GPS one.","security.do.MOCK_LOCATION_DETECTED":"Review their trips: it is the usual way to charge kilometres that were never driven. If they are a driver, consider suspending them.","security.mean.IMPOSSIBLE_SPEED":"Two consecutive positions are further apart than a vehicle can travel in that time.","security.do.IMPOSSIBLE_SPEED":"A single case is usually a bad GPS signal. Repeated, it points to a tampered location.","security.mean.SOS_TRIGGERED":"A rider or a driver pressed the panic button.","security.do.SOS_TRIGGERED":"Handle it from the SOS alerts screen: call the person and record the outcome.","security.detail.meaning":"What it means","security.detail.action":"What to do","security.detail.account":"Account","security.detail.noAccount":"No registered account","security.detail.events":"Events in this line ({n})","security.detail.eventsCapped":"Showing the {shown} most recent of {n}.","settings.fieldTagline":"Tagline (optional)","settings.fieldTaglineHint":"The line that goes with the name. It shows on your website, under the name or the logo, in the header and the footer. Left empty, it is not shown.","settings.fieldTaglinePlaceholder":"Your city, on the move","settings.zodTaglineMax":"Maximum 120 characters","zones.mapLoading":"Loading map…","zones.title":"Operating zones","zones.loading":"Loading…","zones.countZones":"zones","zones.countZonesOne":"zone","zones.countActive":"active","zones.countActiveOne":"active","zones.cancelDraw":"Cancel drawing","zones.drawNew":"Draw new zone","zones.mapPanelTitle":"Operating map","zones.mapPanelSubtitle":"Click a polygon to open its settings.","zones.filterCity":"Show city on the map","zones.filterAllCities":"Whole operation","zones.drawHint":"Use the polygon tool (top-right of the map) and trace the area. Closing the shape opens the zone form.","zones.typesPanelTitle":"Zone types","zones.typeServiceArea":"Service area","zones.typeServiceAreaDesc":"Where your service normally operates","zones.typeSurgeZone":"Surge zone","zones.typeSurgeZoneDesc":"Automatic fare multiplier","zones.typeRestricted":"Restricted","zones.typeRestrictedDesc":"Fully or partially blocked","zones.typeAirport":"Airport","zones.typeAirportDesc":"Hub with special rules","zones.typeHub":"Hub","zones.typeHubDesc":"High-demand point","zones.configuredPanelTitle":"Configured zones","zones.inTotal":"total","zones.emptyTitle":"No zones yet","zones.emptyDescription":"Draw the first zone on the map to apply surge or restrictions.","zones.editZonePrefix":"Edit zone","zones.deleteZonePrefix":"Delete zone","zones.actionsForPrefix":"Actions for zone","zones.inactivePill":"Inactive","zones.hintRestrictionMarksTitle":"Restriction marks","zones.hintRestrictionMarksDesc":"Hours · surge · allowed categories · days of the week. Hover over each mark in the list to see which one it is.","zones.markHours":"Restricted by hours","zones.markSurge":"With surge multiplier","zones.markCategories":"Only some categories","zones.markDays":"Only certain days","zones.daySun":"Sun","zones.dayMon":"Mon","zones.dayTue":"Tue","zones.dayWed":"Wed","zones.dayThu":"Thu","zones.dayFri":"Fri","zones.daySat":"Sat","zones.zodNameMin":"Minimum 2 characters","zones.zodNameMax":"Maximum 80 characters","zones.zodHourRange":"Between 0 and 23","zones.zodSurgeRange":"Between 1.0 and 5.0","zones.zodNotesMax":"Maximum 300 characters","zones.toastUpdated":"Zone updated","zones.toastCreated":"Zone created","zones.toastGenericError":"Error","zones.toastDeleted":"Zone deleted","zones.toastDeleteError":"Could not delete the zone","zones.confirmDeleteDesc":"Trips will immediately stop applying its restrictions and fare multiplier. The polygon is lost and will need to be redrawn.","zones.confirmDeleteConfirm":"Delete zone","zones.confirmDeleteCancel":"Go back","zones.dialogEditTitle":"Edit","zones.dialogNewTitle":"New zone","zones.dialogPolygonPrefix":"Polygon with","zones.dialogPolygonSuffix":"points","zones.fieldName":"Name","zones.fieldNamePlaceholder":"Jorge Chávez Airport","zones.fieldType":"Type","zones.fieldColor":"Zone color","zones.fieldColorHint":"Empty = uses its type color.","zones.fieldStatus":"Status","zones.fieldStatusSwitchLabel":"Active zone","zones.fieldStatusSwitchDesc":"Inactive is drawn dashed and does not apply its rules.","zones.rulesTitle":"Rules and restrictions","zones.fieldSurge":"Surge multiplier (1.0 – 5.0)","zones.fieldSurgeHint":"Applies to trips with pickup or drop-off inside the zone. Empty = no surge.","zones.fieldSurgePlaceholder":"e.g. 1.5","zones.fieldHourLabel":"Hours","zones.fieldHourSwitchLabel":"Restrict by hours","zones.fieldHourSwitchDesc":"Outside the specified window the zone does not apply.","zones.fieldHourStart":"From (hour, 0–23)","zones.fieldHourEnd":"To (hour, 0–23)","zones.fieldDays":"Days of the week","zones.fieldDaysHint":"With none selected, the rule applies every day.","zones.fieldCategories":"Allowed categories","zones.fieldCategoriesHint":"With none selected, all are allowed.","zones.fieldNotes":"Internal notes","zones.fieldNotesPlaceholder":"E.g. Zone restricted during night rush hours for safety","zones.cancel":"Cancel","zones.save":"Save zone","zones.inactiveSuffix":"inactive","zones.drawCancelTitle":"Cancel drawing","zones.drawCancelText":"Cancel","zones.drawFinishTitle":"Finish the area","zones.drawFinishText":"Finish","zones.drawUndoTitle":"Delete last point","zones.drawUndoText":"Undo point","zones.drawButtonPolygon":"Draw a polygon","zones.drawButtonRectangle":"Draw a rectangle","zones.drawPolygonStart":"Click to start tracing the zone.","zones.drawPolygonCont":"Click to add another vertex.","zones.drawPolygonEnd":"Click the first point to close the zone.","zones.drawPolylineError":"<strong>Error:</strong> the zone edges cannot cross.","zones.drawRectangleStart":"Drag to draw the rectangle.","zones.drawSimpleshapeEnd":"Release the mouse to finish.","zones.editSaveTitle":"Save changes","zones.editSaveText":"Save","zones.editCancelTitle":"Discard changes","zones.editCancelText":"Cancel","zones.editClearAllTitle":"Clear everything drawn","zones.editClearAllText":"Clear","zones.editButtonEdit":"Edit zones","zones.editButtonEditDisabled":"No zones to edit","zones.editButtonRemove":"Delete zones","zones.editButtonRemoveDisabled":"No zones to delete","zones.editHandlerEditText":"Drag the vertices to change the shape.","zones.editHandlerEditSubtext":"Click Cancel to discard changes.","zones.editHandlerRemoveText":"Click a zone to delete it.","coverage.colAddress":"Address","coverage.colCoords":"Coordinates","coverage.colRider":"Rider","coverage.colId":"ID","coverage.colContact":"Contact","coverage.colRequested":"Requested","coverage.noAddress":"No address on file","coverage.openInMaps":"Open in Google Maps","coverage.riderNoName":"Rider without a name","coverage.title":"Demand by zone","coverage.loadingSubtitle":"Loading coverage requests…","coverage.requestsPhraseSingular":"coverage request","coverage.requestsPhrasePlural":"coverage requests","coverage.registeredSingular":"registered","coverage.registeredPlural":"registered","coverage.refresh":"Refresh","coverage.hintTitle":"Zones where a trip was requested and there were no drivers.","coverage.hintDesc":"Each row is a rider who tapped \"Notify me\" — it is recorded once per person per day. Use it to decide where to add drivers first.","coverage.panelTitle":"Coverage requests","coverage.panelSubtitlePrefix":"Page","coverage.searchPlaceholder":"Search by address, name, email or phone…","coverage.tableCaption":"Registered coverage requests","coverage.emptyTitle":"No coverage requests yet","coverage.emptyDescription":"When a rider opens the app in a zone with no nearby drivers and taps \"Notify me\", their location will appear here.","coverage.paginationLabel":"requests","settings.zodNameMin":"The name needs at least 2 characters","settings.zodNameMax":"Maximum 80 characters","settings.zodLegalNameMax":"Maximum 200 characters","settings.zodLocaleRequired":"Choose a language","settings.zodTimezoneRequired":"Choose a time zone","settings.zodIdleTimeoutInvalid":"Enter a whole number of minutes between 0 and 120 (0 = never)","settings.zodCooldownInvalid":"Enter a whole number of days between 0 and 365 (0 = no waiting period)","settings.zodSlaInvalid":"Enter a whole number of hours between 1 and 720","settings.toastSavedTitle":"Settings saved","settings.toastSavedDesc":"The changes are already active for the whole operation.","settings.toastErrorTitle":"Could not save","settings.pageTitle":"Settings","settings.subtitleLoading":"Loading the operation settings…","settings.discard":"Discard","settings.saveChanges":"Save changes","settings.identityTitle":"General","settings.identitySubtitle":"Your company name, where it operates, and its currency, time zone and language","settings.fieldName":"Company name","settings.fieldNameHint":"The name riders and drivers see in the apps, on the website and on receipts.","settings.webTextsWhere":"The texts of your website are edited in","settings.webTextsWhereLink":"CMS Pages","settings.fieldNamePlaceholder":"Your company","settings.fieldLegalName":"Legal company name (optional)","settings.fieldLegalNameHint":"Only if it differs from the name above. It appears on receipts.","settings.fieldLegalNamePlaceholder":"Your Company Ltd.","settings.dlIdentifier":"Identifier","settings.dlCustomDomain":"Your website address (optional)","settings.dlCustomDomainEmpty":"Not set","settings.dlCountry":"Country","settings.dlCurrency":"Currency","settings.identityHint":"Technical value, nothing to do here: it is the code of your installation, the one the rider and driver apps use to connect. That is why it cannot be changed. Code:","settings.zodCountryInvalid":"Pick a country from the list.","settings.zodCurrencyInvalid":"Pick a currency from the list.","settings.zodDomainMax":"The domain cannot exceed 120 characters.","settings.zodDomainInvalid":"Enter a valid domain, like app.yourcompany.com.","settings.fieldCountryHint":"The country your company operates in. It sets the phone prefix and the date format.","settings.fieldCurrencyHint":"The currency for new trips. Trips already charged keep theirs.","settings.fieldDomainHint":"The address your website is published at, for example www.yourcompany.com. The apps use it in their links to your site. Leave it empty if you do not have one yet.","settings.regionTitle":"Operation timers","settings.regionSubtitle":"How long to wait before a driver goes offline, a trip goes to the operator or an offer expires","settings.fieldTimezone":"Time zone","settings.fieldDefaultLocale":"Default language","settings.fieldIdleTimeout":"Disconnect idle drivers after (min)","settings.idleTimeoutHint":"0 = never. Drivers can pick their own value in the app.","settings.idleTimeoutHelp":"When a driver is online and their phone stops sending its location (the app was closed, the battery died, they lost coverage), the server takes them offline after this many minutes and tells them. Until then they keep showing on the map and keep being offered trips nobody will answer. Set 0 to never disconnect anyone automatically.","settings.fieldOperatorTimeout":"Minutes a trip waits for an operator before it is cancelled","settings.operatorTimeoutHint":"Between 1 and 120. Counts from the moment automatic dispatch gives up.","settings.operatorTimeoutHelp":"When automatic dispatch cannot find a driver, the trip is not cancelled right away: it moves to the Dispatch \"Needs operator\" queue and the rider keeps seeing that a driver is being found. If nobody assigns it or relaunches the search within these minutes, the system cancels it and tells the rider.","settings.zodOperatorTimeoutInvalid":"Enter a whole number of minutes between 1 and 120","settings.fieldOfferResponse":"Seconds a driver has to respond to a request","settings.offerResponseHint":"Between 10 and 60; 18 by default.","settings.offerResponseHelp":"When a request reaches a driver's phone, they have this many seconds to accept it, make their own offer or reject it. When the time runs out the card closes by itself in their app; the request stays alive for the other drivers and may come back to them in the next search round. A change applies from the next round, with no app update.","settings.zodOfferResponseInvalid":"Enter a whole number of seconds between 10 and 60","settings.fieldCounterOffer":"Seconds a driver's offer lasts","settings.counterOfferHint":"Between 15 and 180; 45 by default.","settings.counterOfferHelp":"When a driver proposes their own price, the rider sees that offer for this many seconds and can accept or decline it. When the time runs out the offer expires by itself and the driver is free to answer other requests. A short value speeds the negotiation up; a long one gives the rider more time to compare offers. It applies to new offers.","settings.zodCounterOfferInvalid":"Enter a whole number of seconds between 15 and 180","settings.fieldScheduledLead":"Minutes before pickup at which the driver search starts","settings.scheduledLeadHint":"Between 5 and 120. Applies to scheduled trips; 5 by default.","settings.scheduledLeadOffHint":"Turn on \"Scheduled trips\" to change this value.","settings.scheduledLeadHelp":"A scheduled trip is not offered to drivers until this many minutes before its pickup time. At that moment the normal search starts: the rider is told \"We are finding your driver\" and, if nobody accepts, the trip moves to the Dispatch \"Needs operator\" queue. A change also applies to trips already scheduled.","settings.zodScheduledLeadInvalid":"Enter a whole number of minutes between 5 and 120","settings.navGeofence":"Geofence","settings.kwGeofence":"geofence radius meters arrival start destination perimeter proximity location gps","settings.geofenceTitle":"Trip geofence","settings.geofenceSubtitle":"How close a driver must be to the right spot to mark each step of a trip","settings.geofenceEnabledLabel":"Check the driver's proximity","settings.geofenceEnabledDesc":"Before letting a driver mark that they arrived, started or finished a trip, the system checks that they are actually there.","settings.geofenceDisabledWarning":"Turning this off disables all THREE checks for the whole operation: any driver will be able to mark arrival, start and completion without truly being nearby.","settings.fieldArriveRadius":"Radius to mark \"I arrived at the pickup point\" (m)","settings.arriveRadiusHint":"How close to the pickup point the driver must be to mark that they arrived.","settings.fieldStartRadius":"Radius to start the trip (m)","settings.startRadiusHint":"How close to the pickup point the driver must be to start the trip.","settings.fieldCompleteRadius":"Radius to finish the trip (m)","settings.completeRadiusHint":"How close to the destination the driver must be to mark the trip as finished.","settings.geofenceRangeNote":"A whole number between 20 and 2000 meters.","settings.geofenceSaveButton":"Save geofence","settings.geofenceUnsaved":"Unsaved changes","settings.geofenceToastSaved":"Geofence updated","settings.featuresTitle":"Enabled features","settings.supportTitle":"Support","settings.supportSubtitle":"How often somebody may ask you to change their details, and how fast you promise to answer","settings.fieldDataUpdateCooldown":"Wait between data update requests (days)","settings.dataUpdateCooldownHint":"0 = no waiting period. Only one request may be in review at a time.","settings.dataUpdateCooldownHelp":"An approved driver can no longer edit their own name, phone, document or photo: the only way left is a request your team applies. With no waiting period, somebody who did not see the first one answered opens another and another about the same mistake, and your queue ends up holding three conversations with one person. It counts from the day the last settled request was OPENED, not from the day you applied it, so nobody pays for a slow queue.","settings.fieldSupportSla":"Promised response time (hours)","settings.supportSlaHint":"This is what the apps show on their support screen.","settings.supportSlaHelp":"The apps write \"we answer within N hours\" from this number. It is your promise, so set it where you can keep it: an optimistic number does not speed the queue up, it only turns every ticket into a complaint.","settings.supportHint":"Both values reach the apps on their next launch; anybody already holding a request in review keeps it.","settings.featuresSubtitle":"Turn platform capabilities on or off for your whole operation","settings.navAria":"Settings sections","settings.navGeneral":"General","settings.navRegional":"Timers","settings.navSupport":"Support","settings.navFeatures":"Features","settings.navMail":"Email","settings.kwMail":"email smtp gmail mail notifications sender","settings.mailTitle":"Outgoing email (Gmail)","settings.mailSubtitle":"The account the system sends email from: password recovery and notifications.","settings.mailProviderLabel":"Provider","settings.mailHostLabel":"SMTP host","settings.mailPortLabel":"Port","settings.mailUserLabel":"Gmail account","settings.mailUserHint":"Your full Gmail or Google Workspace address.","settings.mailPassLabel":"App Password","settings.mailPassHint":"Create one at myaccount.google.com/apppasswords — not your account password.","settings.mailPassKeepHint":"One is saved. Leave blank to keep it.","settings.mailFromNameLabel":"Sender name","settings.mailFromEmailLabel":"Sender email","settings.mailFromEmailHint":"Blank = the Gmail account itself. Gmail only honors another sender if it is a verified alias.","settings.mailTestTitle":"Send test email","settings.mailTestSubtitle":"Delivered with the settings above — saved or not.","settings.mailTestToLabel":"Send a test to","settings.mailTestButton":"Send test email","settings.mailTestBadTo":"Enter a valid destination email.","settings.mailTestOkTitle":"Test email sent","settings.mailTestOkDesc":"Check the recipient's inbox (and spam).","settings.mailTestErrTitle":"Could not send","settings.zodMailUser":"Enter a valid email.","settings.kwGeneral":"name legal identifier domain country currency company logo logos favicon icon brand","settings.kwRegional":"timezone time zone language locale region hour idle inactivity disconnect drivers presence","settings.kwSupport":"support tickets data update request cooldown waiting period sla response time help","settings.kwFeatures":"features modules enable disable tips wallet","settings.searchPlaceholder":"Search settings…","settings.searchNoMatch":"No section matches.","settings.unsavedInSection":"This section has unsaved changes","banners.panelTitle":"Home-screen advertising","banners.panelSubtitle":"A strip under the map, on the rider home screen","banners.add":"Add banner","banners.addTitle":"New banner","banners.addConfirm":"Add","banners.editTitle":"Edit banner","banners.dialogSubtitle":"The image is the only thing on show in the app.","banners.limitReached":"You already have 10 banners, which is the maximum.","banners.enabledLabel":"Show advertising on the home screen","banners.enabledDesc":"Drawn under the map, in the rider app.","banners.warnNoBanners":"Advertising is switched on but you have not added a banner yet, so nothing will be shown.","banners.warnNoneLive":"Advertising is switched on but no banner is active and within its dates, so nothing will be shown.","banners.secondsLabel":"Seconds on screen","banners.secondsHint":"0 = it stays.","banners.secondsHelp":"After that the strip folds itself away and the rider is left with the map. Between 0 and 120.","banners.frequencyLabel":"Frequency","banners.frequencyHint":"Per person.","banners.frequencyHelp":"How often one rider sees it again. If you change the banners, the campaign is shown to them once more even if they had already seen it.","banners.freq_every_open":"Every time the app opens","banners.freq_daily":"Once a day","banners.freq_weekly":"Once a week","banners.freq_once":"Only once","banners.rotateLabel":"Carousel rotation (s)","banners.rotateHint":"Between 2 and 30.","banners.rotateHelp":"How many seconds before it moves to the next banner. Unused with a single banner.","banners.dismissibleLabel":"Can be closed","banners.dismissibleDesc":"Shows the “x” so the rider can close it early.","banners.saveSettings":"Save these settings","banners.unsaved":"These settings have unsaved changes.","banners.empty":"No banners yet. Add the first one to publish the strip.","banners.untitled":"Banner with no text","banners.noLink":"No link","banners.rowActions":"Actions for banner","banners.moveUp":"Move up","banners.moveDown":"Move down","banners.scheduleAlways":"Always, while it is active","banners.scheduleFrom":"From {from}","banners.scheduleUntil":"Until {to}","banners.scheduleBetween":"{from} to {to}","banners.spec":"PNG, JPG or WebP · 1200×200 (6:1) recommended, 4:1 accepted · 300 KB max · up to 10 banners.","banners.note":"Phones pick the change up on their next app launch.","banners.deleteTitle":"Delete this banner?","banners.deleteDesc":"The banner and its image are removed. To pause it instead, switch it off.","banners.toastSettingsSaved":"Settings saved","banners.toastDeleted":"Banner deleted","banners.toastAdded":"Banner added","banners.toastSaved":"Banner saved","banners.toastImageReplaced":"Image updated","banners.fieldImage":"Banner image","banners.fieldImageHelp":"It is the only thing on show: the text below is used by screen readers and where the image fails to load. Design the artwork with the message already in it.","banners.imageSpec":"Upload a PNG, JPG or WebP at any size: the panel fits it to 1200×200 (6:1) for you. A piece that is already 4:1 keeps that crop.","banners.imageEmpty":"No image","banners.imageBroken":"This address does not load","banners.imageUpload":"Upload image","banners.imageReplace":"Replace image","banners.pickAria":"Choose the banner image","banners.fieldLabel":"Short text","banners.fieldLabelHint":"80 characters max.","banners.fieldLabelHelp":"What the phone screen reader announces, and what is shown where the image fails to load. It does not replace the message in the artwork.","banners.fieldLabelPlaceholder":"20% off your rides","banners.fieldLink":"Link on tap","banners.fieldLinkHint":"Leave it empty if the banner is not tappable.","banners.fieldLinkHelp":"It opens on the rider phone, so only https:// or http:// addresses are accepted.","banners.fieldActive":"Active","banners.fieldActiveDesc":"Switch it off to pause it without deleting it.","banners.fieldStarts":"Starts","banners.fieldEnds":"Ends","banners.fieldScheduleHint":"Optional.","banners.imageFitting":"Fitting the image…","banners.imageFitted":"Fitted to {detail}","banners.imageKept":"Already good to go: {detail}","banners.errTooBig":"We could not get it under 300 KB even after shrinking it. Try a less detailed piece.","banners.errInputTooBig":"The file is over 15 MB. Export a lighter copy and upload that.","banners.errDecode":"The image could not be read. Try another file.","banners.errType":"Unsupported format. Use PNG, JPG or WebP.","banners.errUpload":"The image could not be uploaded","banners.errLink":"It has to be a full web address (https://…) — or empty","banners.errImageRequired":"Choose an image for the banner","banners.errSave":"It could not be saved","settings.logosTitle":"Logos","settings.logosSubtitle":"The files your company presents itself with in the panel, on the sign-in screen and on the website","settings.logoLightLabel":"Logo for light backgrounds","settings.logoLightHelp":"The dark-ink version, made to be read on a light surface. It is the one shown in the menu and on the sign-in screen in light theme.","settings.logoDarkLabel":"Logo for dark backgrounds","settings.logoDarkHelp":"The light-ink version, made to be read on a dark surface: the panel in dark theme and the header and footer of your website. Without it, a black-ink logo disappears there.","settings.faviconLabel":"Favicon","settings.faviconHelp":"The square icon: the browser tab and the mark left at the top when the menu is collapsed.","settings.logoSpec":"PNG, SVG, WebP or JPG · transparent background · about 400×100 px · max 2 MB","settings.faviconSpec":"Square PNG, SVG or ICO · 512×512 px · max 2 MB","settings.logoDrop":"Drag the file here or click to choose it","settings.logoPickAria":"Choose file: {label}","settings.logoUpload":"Upload file","settings.logoReplace":"Replace","settings.logoRemove":"Remove","settings.logoBroken":"The file does not load","settings.logoErrType":"Unsupported format. Use PNG, SVG, WebP, JPG or ICO.","settings.logoErrSize":"The file is over 2 MB.","settings.logoErrUpload":"The file could not be uploaded.","settings.logoErrRemove":"The file could not be removed.","settings.logoToastUploaded":"{label}: saved","settings.logoToastRemoved":"{label}: removed","settings.logoRemoveTitle":"Remove “{label}”?","settings.logoRemoveDescription":"It stops showing in the panel, on the sign-in screen and on the website as soon as you confirm. You can upload another one whenever you like.","settings.logoRule":"The panel, the sign-in screen and your website choose by themselves: on a light background they use the logo for light backgrounds, on a dark one the logo for dark backgrounds. If you upload only one, that one is used in both cases.","settings.landingLogoLabel":"Show the logo on the public website","settings.landingLogoDesc":"Off, the header and footer of your website show only the name. On, the website picks the file by itself: its header is dark, so it uses the logo for dark backgrounds — and the one for light backgrounds if you gave it a light one.","settings.studioWhere":"Colours, backgrounds, banners and the look of the apps are edited in","settings.studioWhereLink":"App studio","coverage.colSource":"Source","coverage.sourceAll":"All sources","coverage.sourceCoverage":"No coverage","coverage.sourcePrelaunch":"Pre-launch","coverage.sourceCoverageHint":"The app looked for drivers in that area and found none.","coverage.sourcePrelaunchHint":"Asked to be told when the city opens.","coverage.filterBySource":"Filter by source","settings.navLaunch":"Launch","settings.kwLaunch":"launch prelaunch opening date new city notify","settings.zodLaunchDateRequired":"Set the launch date","settings.zodLaunchTitleRequired":"Write the English title: it is what a rider whose language is not translated will read","settings.launchTitle":"Pre-launch mode","settings.launchSubtitle":"What the apps say in a city that has not opened yet.","settings.launchEnabledLabel":"Announce the launch","settings.launchEnabledDesc":"Until the date arrives, anyone requesting a trip sees the announcement instead of the no-drivers message.","settings.launchStateOn":"Right now the apps ARE showing the launch announcement.","settings.launchStateOff":"Right now the apps are NOT showing it: the ordinary no-drivers message is used.","settings.launchDateLabel":"Launch date","settings.launchDateHint":"A calendar day, not a time. The announcement switches itself off when that day arrives in the timezone beside it.","settings.launchTimezoneLabel":"Timezone of the date","settings.launchTimezoneHint":"The one of the place launching. It decides at what local hour the announcement changes.","settings.launchTimezoneInherit":"Same as the operation ({tz})","settings.launchCopyTitle":"Announcement copy","settings.launchCopySubtitle":"What is read in the app before and after the date.","settings.launchLang.en":"English","settings.launchLang.es":"Spanish","settings.launchLangFallback":"used when the rider language is missing","settings.launchTitleLabel":"Title","settings.launchMessageLabel":"Message","settings.launchCtaLabel":"Button","settings.launchCtaHint":"Tapping it stores the address they looked up as a pre-launch interest.","settings.launchPostLabel":"Message after the launch","settings.launchPostHint":"Used from the date onwards, when there are no drivers nearby. It promises nothing and carries no date.","settings.launchPreviewTitle":"Preview","settings.launchPreviewSubtitle":"How the English copy reads assembled.","settings.launchBandWord":"LAUNCH","settings.launchBandNoDate":"NO DATE","settings.launchTitlePlaceholder":"We are almost there","settings.launchMessagePlaceholder":"We are not driving in your area yet. Leave us your address and we will let you know.","settings.launchCtaPlaceholder":"Notify me for the launch","settings.launchPostPlaceholder":"No drivers available nearby right now. Please try again in a few minutes.","locations.zodCountryCodeFormat":"ISO-3166-1 alpha-2 (2 uppercase letters)","locations.zodCurrencyFormat":"ISO-4217 (3 uppercase letters)","locations.zodSelectCountry":"Select a country","locations.toastStatusUpdated":"Status updated","locations.toastGenericError":"Error","locations.toastCountryDeleted":"Country deleted","locations.toastCityDeleted":"City deleted","locations.toastCountryUpdated":"Country updated","locations.toastCountryCreated":"Country created","locations.toastCityUpdated":"City updated","locations.toastCityCreated":"City created","locations.confirmDeleteCountryHasCitiesPrefix":"This country has","locations.confirmDeleteCountryHasCitiesSuffix":"and cannot be deleted until they are removed.","locations.cityWordSingular":"city","locations.cityWordPlural":"cities","locations.confirmDeleteCountryDescription":"The country will be permanently deleted. This action cannot be undone.","locations.confirmDeleteCountryButton":"Delete country","locations.confirmDeleteCityDescription":"The city will be permanently deleted. This action cannot be undone.","locations.confirmDeleteCityButton":"Delete city","locations.colCountry":"Country","locations.colCities":"Cities","locations.colActive":"Active","locations.colCity":"City","locations.colActiveFem":"Active","locations.badgePrimary":"Primary","locations.radiusWord":"radius","locations.rowActionsLabel":"Actions for {name}","locations.pageTitle":"Countries and cities","locations.pageSubtitle":"Configure which countries and cities your platform operates in. Each country keeps its own reference currency and time zone; accounting and reports use the company currency.","locations.statCountries":"Countries","locations.statActiveCountries":"Active countries","locations.statCities":"Cities","locations.statActiveCities":"Active cities","locations.wordRegisteredSingular":"registered","locations.wordRegisteredPlural":"registered","locations.wordRegisteredFemSingular":"registered","locations.wordRegisteredFemPlural":"registered","locations.btnNewCountry":"New country","locations.btnNewCity":"New city","locations.searchCountryPlaceholder":"Search country by name or code…","locations.optAllCountries":"All countries","locations.optSelectCountryPlaceholder":"— Select country —","locations.captionCountries":"Configured countries","locations.captionCities":"Configured cities","locations.emptyCountriesTitle":"No countries yet","locations.emptyCountriesDesc":"Add the first country to start operating.","locations.emptyCitiesTitle":"No cities yet","locations.emptyCitiesDesc":"Create the first city to start operating.","locations.paginationCountries":"countries","locations.paginationCities":"cities","locations.editCountryTitlePrefix":"Edit country:","locations.countryDialogDescription":"Define the base configuration (currency, locale, time zone) for every city in this country.","locations.fieldCountryCode":"ISO code (alpha-2)","locations.fieldFlag":"Flag","locations.fieldFlagHint":"Optional emoji — not shown in this panel (see finding #52).","locations.fieldName":"Name","locations.fieldNamePlaceholder":"Country name","locations.fieldCurrency":"Currency (ISO-4217)","locations.fieldLocale":"Locale","locations.fieldTimezone":"Time zone","locations.fieldPhonePrefix":"Phone prefix","locations.fieldCountryActive":"Active country","locations.fieldCountryActiveDesc":"Visible for creating cities and operating.","locations.editCityTitlePrefix":"Edit city:","locations.cityDialogDescription":"Define the operating center and coverage radius. The radius is used to validate pickups/dropoffs and calculate reachable zones.","locations.fieldCityName":"City name","locations.fieldCityNamePlaceholder":"Springfield","locations.fieldCenterLat":"Center latitude","locations.fieldCenterLng":"Center longitude","locations.fieldOperatingRadius":"Operating radius (km)","locations.fieldOperatingRadiusHint":"Geographic coverage from the center. Recommended: 20–50 km for large cities.","locations.fieldDispatchStart":"Initial search radius (km)","locations.fieldDispatchStartHint":"How close to the pickup the request looks first. Minimum 0.5 km.","locations.fieldDispatchMax":"Maximum search radius (km)","locations.fieldDispatchMaxHint":"How far the search may grow. Cannot exceed the operating radius.","locations.dispatchRingsPreview":"Search rings","locations.dispatchRingsPreviewHint":"The request reaches one more ring every {sec} s. In the app the circle grows continuously from one ring to the next: it does not jump every {sec} s, it widens little by little.","locations.zodDispatchStartMin":"Minimum 0.5 km","locations.zodDispatchStartBelowMax":"Must be smaller than the maximum radius","locations.zodDispatchMaxOperating":"Cannot exceed the operating radius","locations.fieldCityPrimary":"Primary city of this country","locations.fieldCityPrimaryDesc":"Only one city can be the primary one: the city maps and tariffs open on.","locations.fieldCityActive":"Active city","locations.fieldCityActiveDesc":"Operational for pickups and dropoffs.","locations.geofenceSectionTitle":"Trip geofence","locations.geofenceSectionHint":"Overrides, for this city only, what you set in Settings → Geofence. Leave a field empty to keep this city following the central setting.","locations.fieldGeofenceEnabled":"Check the driver's proximity in this city","locations.optGeofenceInherit":"Inherit from the central setting","locations.geofenceOnWord":"On","locations.geofenceOffWord":"Off","locations.fieldArriveRadius":"Pickup-arrival radius (m)","locations.fieldStartRadius":"Trip-start radius (m)","locations.fieldCompleteRadius":"Trip-completion radius (m)","locations.geofenceInheritHintPrefix":"Empty = inherits from the central setting. Today:","locations.geofenceInheritPlaceholder":"Inherit","locations.zodRadiusInvalid":"Must be a whole number between 20 and 2000, or empty to inherit","locations.btnSaveChanges":"Save changes","locations.btnCreateCountry":"Create country","locations.btnCreateCity":"Create city","pricing.zodCurrencyLength":"It must be 3 letters: USD, EUR, INR…","pricing.zodCategoryRequired":"Pick the category it applies to","pricing.zodEnterNumber":"Enter a number.","pricing.zodNotNegativeFem":"It cannot be negative.","pricing.zodNotNegativeMasc":"It cannot be negative.","pricing.zodMinZeroPercent":"Minimum 0%.","pricing.zodMax50Percent":"Maximum 50%.","pricing.zodMax100Percent":"Maximum 100%.","pricing.zodBetween0And23":"Between 0 and 23.","pricing.toastRateUpdated":"Rate updated","pricing.toastCouldNotSave":"Could not save","pricing.toastRateCreated":"Rate created","pricing.toastRateDeleted":"Rate deleted","pricing.toastCouldNotDelete":"Could not delete","pricing.pageTitle":"Pricing","pricing.loadingRules":"Loading pricing rules…","pricing.wordRuleSingular":"rule","pricing.wordRulePlural":"rules","pricing.wordActiveFemSingular":"active","pricing.wordActiveFemPlural":"active","pricing.btnNewRate":"New rate","pricing.formulaBold":"Price = base + (km × per km) + (min × per min)","pricing.formulaRest":", never below the minimum fare; the booking fee is then added and the result is rounded as the rule says. The night surcharge and dynamic pricing multiply the metered part when they apply. Amounts are edited directly in the table: fields with a dotted underline save when you leave the field or press Enter.","pricing.ariaFilterCategory":"Filter by category","pricing.optAllCategories":"All categories","pricing.ariaFilterCity":"Filter by city","pricing.optAllCities":"All cities","pricing.globalNoCity":"Global (no city)","pricing.ariaFilterStatus":"Filter by status","pricing.optActiveAndInactive":"Active and inactive","pricing.optOnlyActive":"Active only","pricing.optOnlyInactive":"Inactive only","pricing.simulateLabel":"Simulate","pricing.ariaExampleKm":"Example kilometers","pricing.ariaExampleMin":"Example minutes","pricing.emptyTitle":"No pricing rules yet","pricing.emptyDesc":"Create the first rule to define how much the kilometer costs. Without at least one active rate the app cannot estimate prices.","pricing.tableCaption":"Pricing rules by city and category","pricing.colCategory":"Category","pricing.colBase":"Base","pricing.colPerKm":"Per km","pricing.colPerMin":"Per min","pricing.colMin":"Minimum","pricing.colExamplePrefix":"Example","pricing.colCommission":"Commission","pricing.colStatus":"Status","pricing.colActions":"Actions","pricing.globalCityHeader":"Global · applies to any city without its own rule","pricing.labelBaseRate":"Base fare","pricing.labelPerKmPrice":"Price per kilometer","pricing.labelPerMinPrice":"Price per minute","pricing.labelMinRate":"Minimum fare","pricing.inlineEditHint":"Enter saves, Escape discards","pricing.roundingToDecimal":"Rounded to","pricing.roundingWholeUnit":"whole unit","pricing.roundingUp":"Rounded up","pricing.roundingDown":"Rounded down","pricing.roundingNone":"No rounding","pricing.roundOptDecimal10":"Round to 0.10","pricing.roundOptDecimal50":"Round to 0.50","pricing.roundOptInteger":"Round to the nearest whole number","pricing.tooltipDeactivateRate":"Deactivate rate:","pricing.tooltipActivateRate":"Activate rate:","pricing.editAllLabel":"Edit all","pricing.deleteRateLabel":"Delete rate","pricing.showingPrefix":"Showing","pricing.showingOf":"of","pricing.confirmDeleteRateQuestionPrefix":"Delete the rate:","pricing.confirmDeleteRateConsequence":"Trips already charged will not change, but new ones will stop using this rule.","pricing.entityRateLower":"rate","pricing.dialogDescription":"These values are applied when estimating and charging each trip.","pricing.fieldCategory":"Category","pricing.fieldCity":"City","pricing.optCityGlobal":"All cities (global rule)","pricing.cityNotListed":"{city} (no longer in Cities)","pricing.cityEmptyHint":"You have not set up any city yet: create them in the Cities menu.","pricing.fieldCurrency":"Currency","pricing.legendBaseRate":"Base fare","pricing.fieldBase":"Base","pricing.fieldPerKm":"Per km","pricing.fieldPerMin":"Per min","pricing.fieldMinFare":"Minimum","pricing.legendFeesCommissions":"Fees and commissions","pricing.fieldCancellation":"Passenger cancellation","pricing.fieldDriverCancellation":"Driver cancellation","pricing.fieldBookingFee":"Booking fee","pricing.fieldCommissionPercent":"Commission %","pricing.legendNightSurcharge":"Night surcharge and rounding","pricing.fieldSurchargePercent":"Surcharge %","pricing.fieldStartHour":"Start hour","pricing.fieldEndHour":"End hour","pricing.fieldRounding":"Rounding","pricing.fieldRateActive":"Active rate","pricing.fieldRateActiveDesc":"Only active rates are used to estimate and charge.","pricing.helpCategory":"The vehicle type this rate applies to — Economy, Comfort, XL, etc.","pricing.helpCity":"Pick one of the cities you set up in the Cities menu: the rule applies to trips whose pickup falls inside that city and wins over the global rule. \"All cities\" is the global rule: it applies everywhere you operate.","pricing.helpCurrency":"ISO-4217 code used to charge and display this rate, e.g. USD, EUR, INR.","pricing.helpBase":"Charged on every trip before distance or time. The meter starts here.","pricing.helpPerKm":"Added for each kilometre travelled. On a 10 km trip, 1.20 becomes 12.00.","pricing.helpPerMin":"Added for each minute on board. This is what covers traffic jams, when the car moves little but the driver is still working.","pricing.helpMinFare":"No trip is ever charged below this, however short it is.","pricing.helpCancellation":"Charged to the passenger if they cancel once the driver has arrived at the pickup point; it is collected on their next trip and goes to the driver who waited. Cancelling earlier is free. 0 = no fee.","pricing.helpDriverCancellation":"Charged to the driver if they cancel a trip they had already accepted; it is deducted from their wallet. Not charged once the trip has started. 0 = no fee.","pricing.helpBookingFee":"A fixed platform fee added to the fare of every trip, after the minimum fare. It is entirely yours: it is not shared with the driver.","pricing.helpCommissionPercent":"Your cut of the agreed fare (booking fee excluded). The rest goes to the driver: on a 20.00 trip at 20%, you keep 4.00 and the driver earns 16.00. The percent of the rule the trip was requested with is the one applied.","pricing.helpSurchargePercent":"Extra percentage on base + distance + time for trips requested inside the night window below, in your operation's time zone. 0 = no surcharge.","pricing.helpNightHour":"Whole hours only — this surcharge cannot store minutes. Crossing midnight (e.g. 22:00 to 05:00) is valid, not a mistake.","pricing.helpRounding":"Rounds the suggested fare, the negotiation offers and the final charge so drivers and passengers handle round cash. Rounding to 0.10 turns 12.37 into 12.40.","pricing.helpActive":"Only active rules are used to quote and charge.","pricing.nightWindowCrossesMidnight":"Applies from {start} to {end} the next day.","pricing.nightWindowSameDay":"Applies from {start} to {end}.","pricing.nightWindowAllDay":"Start and end hour are the same: the surcharge applies all day, every hour.","pricing.rowActionsLabel":"Actions for {name}","pricing.btnSaveChanges":"Save changes","pricing.btnCreateRate":"Create rate","pricing.confirmActivateTitle":"Activate the fare","pricing.confirmDeactivateTitle":"Deactivate the fare","pricing.confirmActivateDesc":"This category starts being quoted again with these prices on the next trip requested.","pricing.confirmDeactivateDesc":"The engine can no longer quote this category: riders will not be able to request that kind of trip there.","pricing.confirmActivateButton":"Yes, activate the fare","pricing.confirmDeactivateButton":"Yes, deactivate the fare","locations.confirmActivateCountryTitle":"Activate operations in","locations.confirmDeactivateCountryTitle":"Deactivate operations in","locations.confirmActivateCountryDesc":"Its active cities become available for trip requests again.","locations.confirmDeactivateCountryDesc":"Service is switched off in all of its cities: anyone opening the app there will not be able to request trips.","locations.confirmActivateCityTitle":"Activate operations in","locations.confirmDeactivateCityTitle":"Deactivate operations in","locations.confirmActivateCityDesc":"The city shows up as a service area again and trips can be requested there.","locations.confirmDeactivateCityDesc":"Service is switched off in that city: anyone opening the app there will not be able to request trips.","locations.confirmActivateButton":"Yes, activate","locations.confirmDeactivateButton":"Yes, deactivate","surge.daySun":"Sun","surge.dayMon":"Mon","surge.dayTue":"Tue","surge.dayWed":"Wed","surge.dayThu":"Thu","surge.dayFri":"Fri","surge.daySat":"Sat","surge.zodMultiplierMin":"The minimum is 1.00","surge.zodMultiplierMax":"The maximum is 5.00","surge.zodPriorityMin":"From 1","surge.zodPriorityMax":"Up to 1000","surge.zodMinTripsMin":"At least 1 trip","surge.zodNoteMax":"Maximum 200 characters","surge.zodZoneRequired":"Choose the zone this applies to","surge.zodStartHourRequired":"Enter the start time","surge.zodEndHourRequired":"Enter the end time","surge.zodDaysRequired":"Select at least one day","surge.zodMinTripsRequired":"Enter how many active trips trigger it","surge.zodEventRequired":"Give the event a name","surge.allDays":"every day","surge.noScheduleConfigured":"No schedule configured","surge.moreThanTrips":"more than {n} active {n|trip|trips}","surge.fewerDriversPerTrip":"fewer than {ratio} free drivers per trip","surge.noThresholdConfigured":"No threshold configured","surge.noEventConfigured":"No event configured","surge.noAdditionalCondition":"No additional condition","surge.wholeZone":"The entire {name} zone","surge.toastUpdated":"Rule updated","surge.toastCreated":"Rule created","surge.toastSaveError":"Could not save the rule","surge.toastDeactivated":"Rule deactivated","surge.toastActivated":"Rule activated","surge.toastToggleError":"Could not change the status","surge.toastDeleted":"Rule deleted","surge.toastDeleteError":"Could not delete","surge.deleteRuleTitle":"Delete rule: {type}","surge.deleteRuleDescription":"New trips will stop applying the ×{multiplier} multiplier. Trips that already closed keep the fare they were charged.","surge.deleteRuleConfirm":"Delete rule","surge.colRule":"Rule","surge.wholeOperation":"Entire operation","surge.colWhen":"When it applies","surge.colMultiplier":"Multiplier","surge.colPriority":"Priority","surge.colStatus":"Status","surge.editRule":"Edit rule","surge.deleteRule":"Delete rule","surge.title":"Dynamic pricing","surge.subtitleTemplate":"{count} {count|rule|rules} · {active} active · the rule with the lowest priority number applies","surge.loading":"Loading rules…","surge.newRule":"New rule","surge.tableCaption":"Configured dynamic pricing rules","surge.emptyTitle":"No dynamic pricing rules yet","surge.emptyDescription":"With no rules, every trip is charged the flat fare. Start with the most common one: multiplying the fare during peak hours.","surge.emptyAction":"Create the first rule","surge.dialogEditTitle":"Edit dynamic pricing rule","surge.dialogCreateTitle":"New dynamic pricing rule","surge.dialogDescription":"The multiplier applies to the calculated fare, before discounts.","surge.fieldType":"Rule type","surge.optByZone":"By zone — a specific zone always carries a surcharge","surge.optByTime":"By time — peak hours or nights","surge.optByDemand":"By demand — when drivers are scarce","surge.optByEvent":"By event — concert, holiday, match","surge.hintMultiplier":"1.50 means the fare goes up by 50%.","surge.fieldZone":"Zone","surge.selectZonePlaceholder":"Choose a zone…","surge.fieldStartHour":"From hour","surge.fieldEndHour":"Until hour","surge.hintEndHour":"If the end hour is earlier than the start hour, the rule crosses midnight.","surge.fieldDays":"Days of the week","surge.fieldMinTrips":"Active trips starting at","surge.hintMinTrips":"How many trips need to be in progress or searching for a driver.","surge.fieldDriversPerTrip":"Free drivers per trip (optional)","surge.hintDriversPerTrip":"If you also want to require fleet scarcity: 0.4 = fewer than 4 free drivers per 10 trips.","surge.placeholderNoFleetCondition":"No fleet condition","surge.fieldEventName":"Event name","surge.hintEventName":"How the team will identify it: “National Stadium Concert”, “July 28 Holiday”.","surge.placeholderEventName":"National Stadium Concert","surge.fieldNote":"Internal note","surge.hintNote":"Only the team sees it. Useful to remember why this rule exists.","surge.placeholderNote":"The airport always has less supply than demand.","surge.hintPriority":"If two rules match, the one with the lowest number wins.","surge.switchActiveLabel":"Active rule","surge.switchActiveDescription":"An inactive rule is kept but does not affect any trip.","surge.hintBarInfo":"The multiplier is saved on the trip the moment it is requested, so a change here does not alter trips that already closed.","surge.actionsFor":"Actions for the {type} rule","surge.helpMultiplier":"Multiplies the fare while the rule is in force. At ×1.60, a 20.00 trip becomes 32.00. The hard maximum is ×5.","surge.previewFare":"A {base} trip would become {final}.","surge.previewLoud":"Careful: ×{multiplier} is more than triple the normal price. Check you did not mean 1.6 instead of 16.","surge.fieldEventZone":"Event zone","surge.hintEventZone":"Empty = the surge applies across your whole operation.","surge.helpEventZone":"Limits the surge to the stadium, venue or neighbourhood. With no zone, the concert makes every trip in the city more expensive, including the ones that have nothing to do with it.","surge.fieldStartsAt":"Starts","surge.helpStartsAt":"Date and time the surge switches itself ON. Set it up on Tuesday for Saturday and nobody has to remember to activate it.","surge.fieldEndsAt":"Ends","surge.helpEndsAt":"Date and time the surge switches itself off. Without this, somebody has to log in at 2 a.m. to turn it off by hand.","surge.windowExplained":"It will switch itself on at {start} and off at {end}. No need to touch the toggle.","surge.windowMissing":"With no dates, the rule applies while the toggle is on and has to be turned off by hand.","surge.noWindowManual":"no dates — switched on and off by hand","surge.zodStartRequired":"Set when it starts.","surge.zodEndRequired":"Set when it ends.","surge.zodEndAfterStart":"The end must be later than the start.","surge.helpPriority":"When two rules match the same trip, only one applies: the one with the LOWEST number. They never stack.","surge.priorityLoses":"Another of your rules, “{name}”, has priority {rival}. If both apply to the same trip that one is used, and this one (priority {mine}) is not. To make this one win, give it a lower number.","surge.priorityWins":"Another of your rules, “{name}”, has priority {rival}. If both apply to the same trip, this one is used.","surge.helpEventName":"Write it the way a person would say it: “National Stadium Concert”. This is what the driver sees in the app.","surge.helpMinTrips":"Number of simultaneous trip requests above which demand counts as a peak and the surge kicks in.","surge.helpDriversPerTrip":"Free drivers per requested trip. At 0.5 there is one driver for every two requests: the fleet is short and the surge kicks in.","surge.submitUpdate":"Save changes","surge.submitCreate":"Create rule","cms.typeLanding":"Landing","cms.typeLegal":"Legal","cms.typeCustom":"Custom","cms.zodMin2":"Minimum 2 characters","cms.zodSlugMax":"Maximum 60 characters","cms.zodSlugPattern":"Lowercase letters, numbers and hyphens only","cms.zodTitleMax":"Maximum 160 characters","cms.toastPageCreated":"Page created","cms.toastCreateError":"Could not create the page","cms.toastPageDeleted":"Page deleted","cms.toastDeleteError":"Could not delete the page","cms.deleteTitle":"Delete “{title}”","cms.deleteDescPublished":"The public address {path} will stop existing and anyone who opens it will see an error. Its content is also lost. This cannot be undone.","cms.deleteDescDraft":"The page content is lost. This cannot be undone.","cms.deleteConfirm":"Delete page","cms.deleteCancel":"Go back","cms.colPage":"Page","cms.colType":"Type","cms.colStatus":"Status","cms.statusPublished":"Published","cms.statusDraft":"Draft","cms.colPublicUrl":"Public address","cms.noPublicRouteTooltip":"This page does not have a public route on the site yet.","cms.noPublicRouteText":"/{slug} · not published on the site","cms.colUpdated":"Updated","cms.editPageAria":"Edit {title}","cms.deletePageAria":"Delete {title}","cms.actionsFor":"Actions for {title}","cms.title":"CMS pages","cms.loading":"Loading…","cms.subtitleTemplate":"{count} {count|page|pages} · {published} published · changes here appear on the public site","cms.newPage":"New page","cms.tableCaption":"Content pages for the public site","cms.emptyTitle":"No pages yet","cms.emptyDescription":"Create the first content page for the public site.","cms.createDialogDescription":"It is created as a custom page; the content is edited afterwards.","cms.fieldTitle":"Title","cms.placeholderTitle":"Frequently asked questions","cms.fieldSlug":"Identifier (slug)","cms.hintSlug":"Lowercase letters, numbers and hyphens only. It is the final part of the address.","cms.placeholderSlug":"frequently-asked-questions","cms.fieldPublication":"Publication","cms.fieldType":"Page type","cms.helpType":"Legal renders the page inside the document frame (with its eyebrow and last-updated date); Custom leaves it plain. The landing is not an option here: there is one and it already exists.","cms.switchPublishLabel":"Publish on create","cms.switchPublishDescription":"As a draft, the page is saved but is not served to the public.","cms.hintPageTypeAssigned":"The page type (Landing / Legal) is assigned by the platform: pages you create here start as","cms.createSubmit":"Create page","cms.tabPage":"Page","cms.tabBrand":"Brand and menu","cms.tabHero":"Hero","cms.tabSections":"Sections","cms.tabDrivers":"Drivers and apps","cms.tabFooter":"Help and footer","cms.editorTitle":"Content editor","cms.loadingPage":"Loading the page…","cms.backToPages":"Back to pages","cms.landingSubtitle":"Public homepage","cms.legalPageSubtitle":"Legal page","cms.genericPageSubtitle":"Page","cms.statusPublishedInline":"published","cms.statusDraftInline":"draft","cms.viewPublished":"View published","cms.saveChanges":"Save changes","cms.noChangesToSave":"No changes to save","cms.toastSaved":"Page saved","cms.toastSavedPublishedDesc":"The changes are already online.","cms.toastSavedDraftDesc":"Still a draft: not visible to the public.","cms.toastSaveError":"Could not save","cms.unpublishTitle":"Unpublish this page","cms.unpublishDescription":"It will stop being accessible at {path} for any visitor. The content is not deleted: you can publish it again whenever you want.","cms.unpublishConfirm":"Unpublish","cms.pageConfigTitle":"Page settings","cms.pageConfigSubtitle":"What it is called and how search engines see it","cms.fieldPageTitle":"Page title","cms.fieldVisibility":"Visibility","cms.visibilityDescPublished":"Anyone can see it on the web.","cms.visibilityDescDraft":"Only you can see it from the panel.","cms.fieldSeoTitle":"Title for search engines","cms.hintSeoTitle":"What appears in the browser tab and in Google.","cms.fieldSeoDescription":"Description for search engines","cms.hintSeoDescription":"Between 120 and 160 characters works best.","cms.contentTitle":"Content","cms.contentSubtitle":"Supports simple HTML tags: <h2>, <h3>, <p>, <ul><li>, <a href>.","cms.brandTitle":"Brand","cms.brandSubtitle":"How your operation presents itself in the site header and footer","cms.fieldName":"Name","cms.fieldTagline":"Tagline","cms.hintLogoFallback":"Replaces the icon and the name in the header and footer. It stops being used as soon as you upload a logo in Settings → General.","cms.brandColorsMoved":"The site colours come from your operation brand, not from this page.","cms.brandColorsMovedLink":"Change them in App studio","cms.fieldLogoUrl":"Logo URL","cms.placeholderUrl":"https://…","cms.navMenuTitle":"Navigation menu","cms.navMenuSubtitle":"The links in the top bar of the web","cms.fieldLinkText":"Link text","cms.fieldDestination":"Destination","cms.placeholderNavLinkUrl":"#services or https://…","cms.addLink":"Add link","cms.menuButtonTitle":"Menu button","cms.menuButtonSubtitle":"The call to action in the top bar","cms.fieldText":"Text","cms.heroSectionTitle":"Hero","cms.heroSectionSubtitle":"The first thing visitors see on your web","cms.fieldBadge":"Top badge","cms.fieldHeadline":"Headline","cms.fieldHeadlineHighlight":"Highlighted part of the headline","cms.hintHeadlineHighlight":"It is painted with your brand color.","cms.fieldSupportText":"Supporting text","cms.heroPrimaryCtaLabel":"Primary button — text","cms.heroPrimaryCtaUrl":"Primary button — destination","cms.heroSecondaryCtaLabel":"Secondary button — text","cms.heroSecondaryCtaUrl":"Secondary button — destination","cms.fieldRatingValue":"Rating shown","cms.hintRatingValue":"For example 4.9","cms.fieldRatingLabel":"Text next to the rating","cms.statsTitle":"Featured stats","cms.statsSubtitle":"The strip of numbers below the hero","cms.fieldStatValue":"Figure","cms.fieldStatLabel":"What it measures","cms.addStat":"Add stat","cms.sectionFeaturesHeading":"Section “Why choose us” — heading","cms.fieldSubtitle":"Subtitle","cms.featuresListTitle":"Advantages","cms.fieldIcon":"Icon","cms.fieldDescription":"Description","cms.addFeature":"Add advantage","cms.sectionCategoriesHeading":"Section “Service types” — heading","cms.categoriesListTitle":"Service types","cms.categoriesListSubtitle":"Names and prices come from Categories and Pricing. Here you only choose how each one looks on the site.","cms.addServiceType":"Add service type","cms.driverInviteTitle":"Driver invitation","cms.driverInviteSubtitle":"The block that convinces someone to drive with you","cms.ctaTextLabel":"Button — text","cms.ctaUrlLabel":"Button — destination","cms.driverBenefitsTitle":"Benefits for the driver","cms.driverBenefitsSubtitle":"Only published when there are no detailed benefits","cms.driverBenefitPlaceholder":"Get paid for your trips the same day","cms.addBenefit":"Add benefit","cms.downloadTitle":"App downloads","cms.riderAndroidLabel":"Rider app — Android","cms.riderIosLabel":"Rider app — iPhone","cms.driverAndroidLabel":"Driver app — Android","cms.driverIosLabel":"Driver app — iPhone","cms.footerTitle":"Footer","cms.fieldAboutCompany":"About the company","cms.fieldCopyright":"Copyright notice","cms.hintCopyright":"For example: © 2026 Your Company. All rights reserved.","cms.footerColumnsTitle":"Footer columns","cms.footerColumnsSubtitle":"The link groups shown at the bottom of the web","cms.addColumn":"Add column","cms.emptyColumns":"No columns of your own: the footer shows the built-in ones.","cms.columnTitleLabel":"Column {n} title","cms.deleteColumn":"Delete column","cms.placeholderFooterLinkUrl":"/link or https://…","cms.deleteLink":"Delete link","cms.socialTitle":"Social networks","cms.socialSubtitle":"The icons in the site footer. Only networks with a link are published.","cms.fieldSocialNetwork":"Network","cms.fieldLink":"Link","cms.addSocial":"Add social network","cms.tabCities":"Cities","cms.loginLinkTitle":"Sign-in link","cms.loginLinkSubtitle":"Account access from the top bar","cms.hintLineBreaks":"Each Enter breaks the headline into a new line.","cms.fieldHeadlineAfter":"Headline ending","cms.hintHeadlineAfter":"What comes after the highlighted part.","cms.hintRichBold":"Anything between **double asterisks** is shown in bold.","cms.avatarsTitle":"Trust faces","cms.avatarsSubtitle":"The initials of the circles next to the rating","cms.avatarPlaceholder":"M","cms.addAvatar":"Add face","cms.fieldStatSuffix":"Suffix","cms.phoneTitle":"Phone simulator","cms.phoneSubtitle":"The price negotiation demo shown in the hero","cms.fieldPhoneTime":"Screen time","cms.fieldPhoneCurrency":"Currency symbol","cms.fieldPhoneTripTitle":"Trip — map heading","cms.fieldPhoneTripMeta":"Trip — distance and time","cms.fieldPhoneOrigin":"Pickup","cms.fieldPhoneOriginArea":"Pickup — district","cms.fieldPhoneDestination":"Drop-off","cms.fieldPhoneDestinationArea":"Drop-off — landmark","cms.fieldPhoneFareLabel":"Fare heading","cms.fieldPhoneSuggested":"Suggested price","cms.fieldPhoneStartPrice":"Starting price","cms.fieldPhoneStepPrice":"Step per tap","cms.fieldPhoneMinPrice":"Minimum price","cms.fieldPhoneMaxPrice":"Maximum price","cms.fieldPhoneHint":"Tip under the price","cms.fieldPhoneOfferLabel":"Offer button","cms.fieldPhoneSearchingLabel":"While looking for a driver","cms.fieldPhonePayNote":"Payment note","cms.fieldPhoneCounterTitle":"Counteroffer heading","cms.fieldPhoneCounterDelta":"How much the driver adds","cms.hintPhoneCounterDelta":"Added to the rider price to build the counteroffer.","cms.fieldPhoneCounterNote":"Word under the amount","cms.fieldPhoneDriverInitials":"Driver initials","cms.fieldPhoneDriverName":"Driver name","cms.fieldPhoneDriverMeta":"Rating and vehicle","cms.fieldPhoneRejectLabel":"Decline button","cms.fieldPhoneAcceptLabel":"Accept button","cms.fieldPhoneDealLabel":"Deal closed message","cms.fieldPhoneBadgeEtaTitle":"Arrival bubble — title","cms.fieldPhoneBadgeEtaText":"Arrival bubble — detail","cms.fieldPhoneBadgeDriverTitle":"Driver bubble — title","cms.fieldPhoneBadgeDriverText":"Driver bubble — detail","cms.fieldEyebrow":"Eyebrow","cms.fieldFeatureTag":"Highlight tag","cms.placeholderFeatureTag":"With a tag the benefit turns dark","cms.fieldLabel":"Concept","cms.fieldValue":"Amount","cms.fieldSectionNote":"Note at the end of the section","cms.fieldCategoryPriceLabel":"Text before the price","cms.placeholderCategoryPriceLabel":"From","cms.placeholderCategoryMatchName":"Same as in Categories","cms.fieldCategoryBadge":"Corner tag","cms.placeholderCategoryBadge":"COMING SOON","cms.benefitsListTitle":"Detailed benefits","cms.benefitsListSubtitle":"Each benefit with its title and short explanation","cms.fieldBenefitTitle":"Benefit","cms.fieldBenefitText":"Explanation","cms.earningsTitle":"Earnings card","cms.earningsSubtitle":"The daily recap drivers see on the web","cms.fieldEarningsLabel":"Heading","cms.fieldEarningsAmount":"Amount for the day","cms.fieldEarningsBadge":"Comparison","cms.barsListTitle":"Hourly bars","cms.barsListSubtitle":"The tallest bar is painted with your brand color","cms.fieldBarLabel":"Hour","cms.fieldBarValue":"Height (0 to 100)","cms.addBar":"Add bar","cms.earningRowsTitle":"Daily breakdown","cms.earningRowsSubtitle":"The last row is painted as the total","cms.addEarningRow":"Add row","cms.fieldRiderAppTitle":"Rider app — title","cms.fieldRiderAppText":"Rider app — text","cms.fieldDriverAppTitle":"Driver app — title","cms.fieldDriverAppText":"Driver app — text","cms.fieldStoreAndroidPrefix":"Small text — store with a link","cms.fieldStoreAndroidName":"Android — store name","cms.fieldStoreIosPrefix":"Small text — store without a link","cms.fieldStoreIosName":"iPhone — store name","cms.hintStoreSoon":"With no link the button is dimmed as “coming soon”.","cms.coverageTitle":"Coverage","cms.coverageSubtitle":"The cities section and the map on the site. It is only published when the list has at least one city.","cms.fieldSoonLabel":"“Coming soon” word","cms.hintSoonLabel":"Shown next to cities that are not live yet.","cms.fieldLegendLive":"Legend — live","cms.fieldLegendSoon":"Legend — coming soon","cms.placeholderLegendSoon":"Coming soon","cms.citiesListTitle":"Cities","cms.citiesListSubtitle":"They also feed the ribbon running under the hero","cms.fieldCityName":"City","cms.fieldCityStatus":"Status","cms.addCity":"Add city","cms.finalCtaTitle":"Page closing","cms.finalCtaSubtitle":"The last call to action, right before the footer","cms.legalLinksTitle":"Bottom line links","cms.legalLinksSubtitle":"The short links next to the copyright notice","cms.emptyListItems":"Empty list: the site shows the built-in content for this block.","cms.itemLabel":"Item {n}","cms.phTermsTitleEn":"Terms and Conditions","cms.phLoginLabel":"Sign in","cms.phAndroidPrefix":"Get it on","cms.phIosPrefix":"Coming soon to","cms.phSoonLabel":"soon","cms.phLegendLive":"Live","cms.moveUp":"Move up","cms.moveDown":"Move down","cms.deleteItem":"Delete item","cms.emptyBullets":"There are no bullet points yet.","cms.deleteBullet":"Delete bullet point","cms.saveStateClean":"All saved","cms.saveStateDirty":"Unsaved changes","cms.saveNoteClean":"What you type shows in the preview at once; the public site changes when you save.","cms.saveNoteDirty":"The preview already shows them; the public site does not change until you save.","cms.discardChanges":"Discard","cms.discardTitle":"Discard unsaved changes","cms.discardDescription":"The editor goes back to what you last saved. Anything typed since then is lost.","cms.discardConfirm":"Yes, discard","cms.hintPageTitleLanding":"It only identifies the page inside the panel; it is not published.","cms.hintPageTitleDoc":"It is the heading shown at the top of the page.","cms.hintOperatorName":"It is the name of your operation: the same on the site, the panel and the apps.","cms.operatorNameLink":"Change it in Settings → General","cms.hintTagline":"It is your company tagline: shown under the name or the logo, in the header and the footer.","cms.taglineLink":"Change it in Settings → General","cms.hintLogoOverridden":"Not in use: your operation already has a logo in Settings → General, and that is the one replacing the icon and the name.","cms.hintLogoOff":"Not in use: in Settings → General you chose to show your name on the site with no logo.","cms.emptyCities":"With no cities, the coverage section and the ribbon under the hero are not published.","cms.emptySocial":"With no networks, the footer shows no icons.","cms.emptyCategoryOverrides":"No overrides: each category is shown with the data from your catalog.","cms.iconPrice":"Price","cms.iconTrack":"Map","cms.iconShield":"Shield","cms.iconCard":"Card","cms.catIconAuto":"The catalog one","cms.catIconEconomy":"Compact car","cms.catIconComfort":"Sedan","cms.catIconXl":"Van","cms.catIconMoto":"Moto taxi","cms.cityLive":"Live","cms.citySoon":"Coming soon","surge.confirmActivateTitle":"Activate the {type} rule","surge.confirmDeactivateTitle":"Deactivate the {type} rule","surge.confirmActivateDesc":"While its condition holds, every trip will be charged ×{multiplier} over the base fare.","surge.confirmDeactivateDesc":"Trips go back to the base fare: the ×{multiplier} stops applying immediately.","surge.confirmActivateButton":"Yes, activate the rule","surge.confirmDeactivateButton":"Yes, deactivate the rule","cms.publishTitle":"Publish the page","cms.publishDescription":"Once you save, it will be visible to anyone at {path}.","cms.publishConfirm":"Yes, publish it","cms.blocksTitle":"Blocks","cms.blocksSubtitle":"Pick a block and the preview jumps to that part of the site","cms.blockPage":"Page settings","cms.blockBrand":"Brand and menu","cms.blockHero":"Hero","cms.blockFeatures":"Benefits","cms.blockCategories":"Categories","cms.blockDrivers":"Drivers and download","cms.blockCities":"Cities","cms.blockFooter":"Closing and footer","cms.blockContent":"Content","cms.tabEditor":"Editor","cms.tabPreview":"Preview","cms.previewTitle":"Preview of the public page","cms.previewReload":"Reload the preview","cms.previewOpen":"Open in a new tab","cms.previewDesktop":"View as desktop","cms.previewMobile":"View as mobile","cms.previewDraftTitle":"This page is a draft","cms.previewDraftText":"The preview shows the page exactly as the internet serves it, and an unpublished page answers 404. Publish it to see it here.","cms.publicUrlLabel":"Public address","cms.publicUrlHint":"Built from the page identifier; to change it, create a new page.","cms.draftUrlTooltip":"Still a draft: this address answers 404 until you publish it.","cms.contentTitleEn":"English version","cms.contentSubtitleEn":"Apps in English show this text; if empty, they fall back to Spanish","cms.fieldTitleEn":"Title (English)","cms.bodyPlaceholderEn":"Write the English version here…","cms.contentSubtitleRich":"Use the toolbar for headings, lists, links and bold text","cms.bodyPlaceholder":"Write the text of the page here…","rte.toolbar":"Formatting","rte.bold":"Bold","rte.italic":"Italic","rte.underline":"Underline","rte.strike":"Strikethrough","rte.heading":"Heading","rte.subheading":"Subheading","rte.bulletList":"Bulleted list","rte.numberedList":"Numbered list","rte.quote":"Quote","rte.code":"Code","rte.link":"Link","rte.clear":"Clear formatting","rte.linkUrl":"Link address","rte.removeLink":"Remove link","rte.apply":"Apply","rte.linkInvalid":"That address is not valid. Use http://, https://, mailto: or a path such as /terms.","rte.allowedNotice":"Only headings, lists, quotes, code, bold text and safe links are kept.","rte.emptyNotice":"the page will be published with no content.","rte.fallbackNotice":"The editor could not load. You can keep writing the content as HTML.","vehicleColor.WHITE":"White","vehicleColor.BLACK":"Black","vehicleColor.SILVER":"Silver","vehicleColor.GRAY":"Gray","vehicleColor.RED":"Red","vehicleColor.BLUE":"Blue","vehicleColor.GREEN":"Green","vehicleColor.YELLOW":"Yellow","vehicleColor.ORANGE":"Orange","vehicleColor.BROWN":"Brown","vehicleColor.BEIGE":"Beige","vehicleColor.GOLD":"Gold","vehicleColor.PURPLE":"Purple","vehicleColor.PINK":"Pink","vehicleColor.legacySuffix":"previous value","catalog.inactiveSuffix":"inactive","catalog.noFeatures":"No equipment","catalog.dragHint":"Drag to reorder","catalog.moveUp":"Move up","catalog.moveDown":"Move down","catalog.orderSaved":"New order saved","catalog.orderSavedDesc":"This is the order the rider app lists the options in.","catalog.orderFailed":"The new order could not be saved","catalog.originSystem":"Built-in","catalog.originCustom":"Yours","catalog.originSystemHint":"Ships with the product: you can rename, reorder and deactivate it, but not delete it.","catalog.originCustomHint":"You created it. It can be deleted while nothing uses it.","catalog.blocked":"It cannot be deleted","catalog.codeLabel":"Code","catalog.codeLockedHelp":"The code cannot change: it is what got written into every trip, vehicle and fare. To change what the app shows, edit the name.","catalog.codeCreateHelp":"Permanent internal identifier. It normalises itself: \"tuk tuk\" is stored as TUK_TUK.","catalog.codePreview":"Will be saved as","catalog.zodCodeRequired":"Give it a code","catalog.zodCodeFormat":"Start with a letter and use only A-Z, 0-9 and underscore (2 to 40 characters)","catalog.zodLabelRequired":"Give it a name","catalog.zodLabelMax":"60 characters max","catalog.zodDescMax":"160 characters max","catalog.zodIconMax":"A single emoji","catalog.usageNone":"Not used yet","catalog.wordTrip":"trip","catalog.wordTrips":"trips","catalog.wordVehicle":"vehicle","catalog.wordVehicles":"vehicles","catalog.wordRule":"fare","catalog.wordRules":"fares","catalog.wordDriver":"driver","catalog.wordDrivers":"drivers","catalog.group.COMFORT":"Comfort","catalog.group.ACCESSIBILITY":"Accessibility","catalog.group.FAMILY":"Family","catalog.group.LUGGAGE":"Luggage","catalog.group.PETS":"Pets","catalog.group.SAFETY":"Safety","catalog.group.VEHICLE":"Vehicle","catalog.group.SERVICE":"Service","catalog.group.MOTO":"Motorbike","catalog.cat.title":"Vehicle categories","catalog.cat.subtitle":"{total} {total|category|categories} · {active} active · {inactive} inactive","catalog.cat.loading":"Loading the catalogue…","catalog.cat.new":"New category","catalog.cat.hintBold":"Order matters: ","catalog.cat.hintRest":"this is the same order riders see when they book a trip. Drag a row to change it — it saves on drop.","catalog.cat.tableCaption":"Vehicle categories of this operator, with usage and status","catalog.cat.colCategory":"Category","catalog.cat.noImagePill":"No image","catalog.cat.noImageHint":"This category has no image of its own: the app draws its icon and emoji instead.","catalog.cat.colSeats":"Seats","catalog.cat.colUsage":"Used by","catalog.cat.colOrigin":"Origin","catalog.cat.colActive":"In the app","catalog.cat.colActions":"Actions","catalog.cat.rowActions":"Actions for {name}","catalog.cat.emptyTitle":"No categories yet","catalog.cat.emptyDesc":"A category is what the rider picks when booking: Economy, MotoTaxi, School van. Create the first one so you can charge for it.","catalog.cat.editAction":"Edit category","catalog.cat.deleteAction":"Delete category","catalog.cat.seatsValue":"{n} pax","catalog.cat.confirmOffTitle":"Stop offering {name}?","catalog.cat.confirmOffDesc":"It disappears from the rider app: nobody will be able to book this category. What was already sold still reads the same, and you can switch it back on any time.","catalog.cat.confirmOffBtn":"Stop offering it","catalog.cat.confirmOnTitle":"Offer {name} in the app?","catalog.cat.confirmOnDesc":"Riders will be able to book this category as soon as you save.","catalog.cat.confirmOnNoRate":"Heads up: it has no active fare yet, and without a fare the system cannot price a trip.","catalog.cat.confirmOnBtn":"Offer it","catalog.cat.confirmDeleteTitle":"Delete {name}?","catalog.cat.confirmDeleteDesc":"It is removed from the catalogue for good. This is allowed because no trip, vehicle, fare or driver uses it yet.","catalog.cat.confirmDeleteBtn":"Delete","catalog.cat.toastCreated":"Category created","catalog.cat.toastCreatedDesc":"You can charge for it now: give it a fare under Fares.","catalog.cat.toastUpdated":"Category updated","catalog.cat.toastDeleted":"Category deleted","catalog.cat.toastOff":"{name} is no longer offered in the app","catalog.cat.toastOn":"{name} is now offered in the app","catalog.cat.errSave":"The category could not be saved","catalog.cat.errDelete":"The category could not be deleted","catalog.cat.dlgNew":"New category","catalog.cat.dlgEdit":"Edit category","catalog.cat.dlgDesc":"It is what the rider picks when booking, and what you price under Fares.","catalog.cat.warnBold":"Apps already published will not show it yet. ","catalog.cat.warnRest":"The apps read this catalogue live, so it appears on its own in the versions that are out there as of this change; anyone running an older build from the stores will not see it until they update. Keep that in mind before building a campaign around it.","catalog.cat.fieldLabel":"Name","catalog.cat.fieldLabelHelp":"What the rider reads in the app. You can change it whenever you want: every trip keeps the name it had the day it happened, so history is not rewritten.","catalog.cat.fieldLabelPh":"School van","catalog.cat.fieldCodePh":"SCHOOL_VAN","catalog.cat.fieldDescription":"Description","catalog.cat.fieldDescriptionHelp":"The small line under the name in the app. Use it to say when it is the right pick: \"Up to 6 riders\", \"Skips the traffic\".","catalog.cat.fieldDescriptionPh":"Up to 6 riders with luggage","catalog.cat.fieldIcon":"Emoji","catalog.cat.fieldIconHelp":"An emoji makes the list recognisable at a glance on a phone. Optional.","catalog.cat.fieldSeats":"Seats","catalog.cat.fieldSeatsHelp":"How many riders fit. The app uses it to avoid offering this category to a group that does not fit.","catalog.cat.zodSeats":"Between 1 and 60 seats","catalog.cat.fieldActive":"Offer in the app","catalog.cat.fieldActiveDesc":"When off, the catalogue keeps it but no rider sees it.","catalog.cat.lastActiveHint":"It is the last active category: switching it off would leave nothing to book.","catalog.cat.btnCreate":"Create category","catalog.cat.btnSave":"Save changes","catalog.feat.title":"Equipment","catalog.feat.subtitle":"{total} {total|option|options} across {groups} {groups|family|families} · {active} active","catalog.feat.new":"New equipment","catalog.feat.hintBold":"This is what tells one vehicle from another: ","catalog.feat.hintRest":"you tick it on each vehicle, and whatever is filterable riders can use to narrow their search. Drag within a family to reorder.","catalog.feat.lockedBold":"Three options cannot be switched off: ","catalog.feat.lockedRest":"air conditioning, child seat and wheelchair access still have their own checkbox on the vehicle record, so turning them off would leave the vehicle saying yes and the catalogue saying no. You can rename them, move them between families and reorder them.","catalog.feat.lockedPill":"Fixed","catalog.feat.lockedTitle":"Synced with a checkbox on the vehicle record: it cannot be deactivated or deleted.","catalog.feat.tableCaption":"Configurable equipment, grouped by family","catalog.feat.colFeature":"Equipment","catalog.feat.colFilterable":"Filterable","catalog.feat.colVehicles":"Vehicles","catalog.feat.colOrigin":"Origin","catalog.feat.colActive":"Active","catalog.feat.rowActions":"Actions for {name}","catalog.feat.emptyTitle":"No equipment yet","catalog.feat.emptyDesc":"Child seat, pets, wifi, rain cover: what riders care about when choosing. Create the first one so you can tick it on each vehicle.","catalog.feat.editAction":"Edit equipment","catalog.feat.deleteAction":"Delete equipment","catalog.feat.cannotDeleteTitle":"“{name}” cannot be deleted","catalog.feat.cannotDeleteLocked":"It is a fixed option: it is tied to its own checkbox on the vehicle record. You can rename and reorder it, but not delete or deactivate it.","catalog.feat.cannotDeleteInUse":"{n} vehicle(s) have it ticked. Remove it from those vehicles first, or deactivate it so it stops being offered without losing the history.","catalog.feat.groupCount":"{n} {n|option|options}","catalog.feat.vehiclesValue":"{n} vehicles","catalog.feat.confirmOffTitle":"Withdraw {name}?","catalog.feat.confirmOffDesc":"It can no longer be ticked on a vehicle and disappears from the app. Vehicles that already have it keep the data.","catalog.feat.confirmOffBtn":"Withdraw","catalog.feat.confirmOnTitle":"Activate {name}?","catalog.feat.confirmOnDesc":"It can be ticked on vehicles again and shows up in the app.","catalog.feat.confirmOnBtn":"Activate","catalog.feat.confirmFilterOnTitle":"Offer {name} as a filter?","catalog.feat.confirmFilterOnDesc":"Riders will be able to ask for vehicles that have it. If few vehicles do, they will wait longer for a ride.","catalog.feat.confirmFilterOnBtn":"Offer as a filter","catalog.feat.confirmFilterOffTitle":"Remove {name} from the filters?","catalog.feat.confirmFilterOffDesc":"It still shows on the vehicle record, but riders can no longer search by it.","catalog.feat.confirmFilterOffBtn":"Remove from filters","catalog.feat.confirmDeleteTitle":"Delete {name}?","catalog.feat.confirmDeleteDesc":"It is removed from the catalogue for good. This is allowed because no vehicle has it.","catalog.feat.toastCreated":"Equipment created","catalog.feat.toastUpdated":"Equipment updated","catalog.feat.toastDeleted":"Equipment deleted","catalog.feat.toastOff":"{name} is no longer offered","catalog.feat.toastOn":"{name} is offered again","catalog.feat.toastFilterOn":"{name} is now filterable","catalog.feat.toastFilterOff":"{name} is no longer filterable","catalog.feat.errSave":"The equipment could not be saved","catalog.feat.errDelete":"The equipment could not be deleted","catalog.feat.dlgNew":"New equipment","catalog.feat.dlgEdit":"Edit equipment","catalog.feat.dlgDesc":"It gets ticked on each vehicle and travels to the rider app.","catalog.feat.fieldLabel":"Name","catalog.feat.fieldLabelHelp":"What the rider reads. Short and concrete: \"Rain cover\" lands, \"Protection\" does not.","catalog.feat.fieldLabelPh":"Rain cover","catalog.feat.fieldCodePh":"RAIN_COVER","catalog.feat.fieldGroup":"Family","catalog.feat.fieldGroupHelp":"It only groups the list so it is not a wall of checkboxes. It does not change what the option does.","catalog.feat.fieldIcon":"Emoji","catalog.feat.fieldIconHelp":"Optional. Helps recognise it at a glance on the vehicle record.","catalog.feat.fieldFilterable":"Offer as a rider filter","catalog.feat.fieldFilterableDesc":"Tick what genuinely decides a ride (pets, wheelchair, child seat). Filtering by perks only makes the wait longer.","catalog.feat.fieldActive":"Active","catalog.feat.fieldActiveDesc":"When off, it can no longer be ticked on vehicles.","catalog.feat.fieldActiveLocked":"This option cannot be deactivated: it is synced with a checkbox on the vehicle record.","catalog.feat.btnCreate":"Create equipment","catalog.feat.btnSave":"Save changes","catalog.picker.label":"Equipment","catalog.picker.help":"What you tick here is the vehicle’s complete list: whatever you untick is removed from it.","catalog.picker.selected":"{n} selected","catalog.picker.selectedOne":"1 selected","catalog.picker.clear":"Clear all","catalog.picker.empty":"There is no equipment in the catalogue yet.","catalog.picker.manage":"Manage catalogue","catalog.picker.loading":"Loading equipment…","catalog.emptyCategories":"There is no active category. Create one under Configuration → Categories.","catalog.comingSoonSuffix":"coming soon","catalog.kindRide":"Passengers","catalog.kindDelivery":"Deliveries","catalog.cat.kindRideDesc":"Carries people. Described by its seats.","catalog.cat.kindDeliveryDesc":"Carries parcels, no passengers. Described by what it accepts.","catalog.cat.parcelTitle":"What this delivery accepts","catalog.cat.parcelSubtitle":"This is what the sender reads before ordering. Leave blank whatever you do not want to limit.","catalog.cat.fieldParcelWeight":"Maximum weight (kg)","catalog.cat.fieldParcelWeightHelp":"The heaviest parcel this service takes. The app shows it as \"Up to 20 kg\".","catalog.cat.fieldParcelSize":"Maximum size","catalog.cat.fieldParcelSizeHelp":"The largest parcel that fits the vehicle of this category.","catalog.cat.parcelSizeAny":"No limit stated","catalog.cat.parcelSize.ENVELOPE":"Envelope or documents","catalog.cat.parcelSize.SMALL":"Small — fits in a backpack","catalog.cat.parcelSize.MEDIUM":"Medium — fits in a car boot","catalog.cat.parcelSize.LARGE":"Large — needs a pickup or a van","catalog.cat.fieldParcelNote":"What cannot be sent","catalog.cat.fieldParcelNoteHelp":"One line for the sender: prohibited items or any condition.","catalog.cat.fieldParcelNotePh":"No cash, liquids or fragile items","catalog.cat.parcelWeightValue":"Up to {n} kg","catalog.cat.zodParcelWeight":"Between 0.1 and 5000 kg","catalog.cat.zodParcelNote":"160 characters at most","catalog.cat.colKind":"Type","catalog.cat.colDefault":"Default","catalog.cat.colComingSoon":"Coming soon","catalog.cat.confirmDefaultTitle":"Open the app on {name}?","catalog.cat.confirmDefaultDesc":"It is the service already selected when a rider opens the app. Whichever held it loses it: there can only be one.","catalog.cat.confirmDefaultBtn":"Make it the default","catalog.cat.toastDefault":"{name} is now the default service","catalog.cat.toastSoonOn":"{name} is announced as coming soon","catalog.cat.toastSoonOff":"{name} can be requested again","catalog.cat.defaultNeedsActive":"Only a category offered in the app can be the one selected by default.","catalog.cat.defaultNeedsBookable":"A category announced as coming soon cannot be requested, so it cannot be the default one.","catalog.cat.defaultHint":"Make it the service already selected when the app opens.","catalog.cat.soonNotDefault":"This is the default category: pick another one before announcing it as coming soon.","catalog.cat.soonHint":"Announced in the app but not requestable yet.","catalog.cat.fieldKind":"Service type","catalog.cat.fieldKindHelp":"Passengers is an ordinary trip. Deliveries changes the flow: the rider states who receives the parcel and what it is, and there is no boarding PIN.","catalog.cat.fieldSeatsDeliveryHelp":"Nobody travels in a delivery; it is stored anyway because the assigned vehicle does have seats.","catalog.cat.fieldImage":"Service image","catalog.cat.fieldImageTag":" — what the rider sees","catalog.cat.fieldImageHelp":"A three-quarter cut-out of the vehicle, transparent background. The panel fits it to 512×512 on its own. With no image, the app falls back to the icon and emoji below.","catalog.cat.imageSpec":"Upload a PNG, JPG or WebP at any size: the panel fits it to 512×512 on a transparent background for you. A three-quarter cut-out with no text works best.","catalog.cat.imageUpload":"Upload image","catalog.cat.imageReplace":"Replace image","catalog.cat.imageRemove":"Remove","catalog.cat.imagePickAria":"Drag the image here or click to choose it","catalog.cat.imageToastUploaded":"Image updated","catalog.cat.imageToastRemoved":"Image removed: the icon is used again","catalog.cat.imageFitting":"Fitting the image…","catalog.cat.imageFitted":"Fitted to {detail}","catalog.cat.imageKept":"Already good to go: {detail}","catalog.cat.imageErrTooBig":"We could not get it under 512 KB even after shrinking it. Try a less detailed image, or one already cut out from its background.","catalog.cat.imageErrInputTooBig":"The file is over 15 MB. Export a lighter copy and upload that.","catalog.cat.imageErrDecode":"The image could not be read. Try another file.","catalog.cat.imageErrType":"PNG, WebP or JPG only.","catalog.cat.imageErrUpload":"Could not upload the image","catalog.cat.imageErrRemove":"Could not remove the image","catalog.cat.fallbackTitle":"Fallback for when there is no image","catalog.cat.fallbackHint":"Only shown if the category has no image.","catalog.cat.fieldIconKey":"Icon","catalog.cat.fieldIconKeyHelp":"The drawing the apps paint, tinted with your brand colour. Leave it unset to fall back to the emoji below.","catalog.cat.iconNone":"No icon (use the emoji)","catalog.cat.fieldComingSoon":"Announce as coming soon","catalog.cat.fieldComingSoonDesc":"Shown dimmed and labelled in the app; nobody can request it until you turn this off.","catalog.cat.fieldDefault":"Selected by default in the app","catalog.cat.fieldDefaultDesc":"The one already ticked when the app opens. Only one can hold it: whichever had it loses it.","catalog.icon.car":"Car","catalog.icon.car_economy":"Economy car","catalog.icon.car_comfort":"Comfort car","catalog.icon.car_xl":"XL car","catalog.icon.car_premium":"Premium car","catalog.icon.suv":"SUV","catalog.icon.van":"Van","catalog.icon.moto":"Scooter","catalog.icon.mototaxi":"Moto-taxi","catalog.icon.motorbike":"Motorbike","catalog.icon.parcel":"Parcel","catalog.icon.bus":"Bus","catalog.icon.taxi":"Taxi","docreq.title":"Driver documents","docreq.subtitle":"{total} {total|requirement|requirements} · {required} active mandatory","docreq.loading":"Loading…","docreq.new":"New requirement","docreq.hintBold":"This list is what the driver sees in their app. ","docreq.hintRest":"Mandatory ones block their approval: until all are uploaded (and approved by you) they cannot receive trips. Every country asks for different papers — configure them here.","docreq.emptyTitle":"No requirements configured","docreq.emptyDesc":"Without requirements, new drivers have no checklist to complete.","docreq.tableCaption":"Driver document requirements","docreq.colDocument":"Document","docreq.colRequired":"Mandatory","docreq.colOrigin":"Origin","docreq.colActive":"Active","docreq.colActions":"Actions","docreq.requiredNeedsActive":"Activate it first to make it mandatory","docreq.editAction":"Edit","docreq.deleteAction":"Delete","docreq.rowActions":"Actions for {name}","docreq.errSave":"Could not save the requirement","docreq.errDelete":"Could not delete","docreq.toastCreated":"Requirement created","docreq.toastUpdated":"Requirement updated","docreq.toastDeleted":"Requirement deleted","docreq.confirmBtn":"Confirm","docreq.confirmReqOnTitle":"Make \"{name}\" mandatory","docreq.confirmReqOnDesc":"Drivers in onboarding cannot be approved without uploading it. Already-approved drivers are not affected.","docreq.confirmReqOffTitle":"Make \"{name}\" optional","docreq.confirmReqOffDesc":"It will no longer block approval of new drivers.","docreq.confirmOnTitle":"Activate \"{name}\"","docreq.confirmOnDesc":"It will appear in the driver app checklist.","docreq.confirmOffTitle":"Deactivate \"{name}\"","docreq.confirmOffDesc":"It disappears from the checklist and stops counting towards approval. Already-uploaded documents are kept.","docreq.confirmDeleteTitle":"Delete \"{name}\"","docreq.confirmDeleteDesc":"Only a custom requirement nobody used can be deleted. If it has uploaded documents, deactivate it instead.","docreq.confirmDeleteBtn":"Delete","docreq.dlgNew":"New document requirement","docreq.dlgEdit":"Edit requirement","docreq.dlgDesc":"What you write here is EXACTLY what the driver reads in their app.","docreq.btnCreate":"Create requirement","docreq.btnSave":"Save changes","docreq.fieldLabel":"Name","docreq.fieldLabelHelp":"As the driver will see it. E.g. \"Driver license\".","docreq.fieldLabelPh":"Driver license","docreq.fieldCodePh":"DRIVER_LICENSE","docreq.fieldDescription":"Hint for the driver","docreq.fieldDescriptionHelp":"One help line under the name. E.g. \"Clear photo, valid\".","docreq.fieldDescriptionPh":"Clear photo of your valid license","docreq.fieldSort":"Order","docreq.fieldSortHelp":"Lower number = higher in the checklist.","docreq.fieldRequired":"Mandatory","docreq.fieldRequiredDesc":"Blocks driver approval until uploaded and approved by you.","docreq.fieldRequiresExpiry":"Has an expiry date","docreq.fieldRequiresExpiryDesc":"The driver will have to enter how long it is valid for. With no date the paper never expires and nobody finds out when it lapses.","docreq.pillExpiry":"Expires","docreq.pillExpiryHint":"The driver must give the expiry date when uploading it.","docreq.fieldActive":"Active","docreq.fieldActiveDesc":"Visible in the driver app checklist.","promotions.pageTitle":"Promotions","promotions.loadingSubtitle":"Loading promotion rules…","promotions.ruleSingular":"rule","promotions.rulePlural":"rules","promotions.activeSingular":"active","promotions.activePlural":"active","promotions.newRule":"New rule","promotions.hintBold1":"Only one rule applies per trip — they never stack.","promotions.hintIntro":"The first one that matches wins, in this order:","promotions.hintOrder1":"1) rider's first trip","promotions.hintOrder2":"2) every N rider trips","promotions.hintOrder3":"3) every N driver trips","promotions.hintOutro":"The platform absorbs the discount — the driver always gets paid the full fare.","promotions.filterByType":"Filter by type","promotions.filterByStatus":"Filter by status","promotions.allTypes":"All types","promotions.allStatuses":"Active and inactive","promotions.onlyActive":"Active only","promotions.onlyInactive":"Inactive only","promotions.showingPrefix":"Showing","promotions.showingOf":"of","promotions.colName":"Name","promotions.colType":"Type","promotions.colEveryN":"Every N","promotions.colBenefit":"Benefit","promotions.colActive":"Active","promotions.colCreated":"Created","promotions.colActions":"Actions","promotions.notApplying":"Not currently applying","promotions.caption":"Configured promotion rules","promotions.emptyTitle":"No promotions yet — create the first one","promotions.emptyDescription":"With no active rule, every trip is charged at full fare. Start with the classic: the rider's first trip for free.","promotions.deactivate":"Deactivate","promotions.activate":"Activate","promotions.edit":"Edit","promotions.delete":"Delete","promotions.actionsFor":"Actions for {name}","promotions.typeFirstRiderTrip":"Rider's first trip","promotions.typeFirstRiderTripHelp":"A new rider's first trip gets the benefit. It's evaluated before any other rule.","promotions.typeEveryNRiderTrips":"Every N rider trips","promotions.typeEveryNRiderTripsHelp":"Every N trips a rider takes, that trip gets the benefit. With N = 5 it would apply on their 5th, 10th, 15th trip.","promotions.typeEveryNDriverTrips":"Every N driver trips","promotions.typeEveryNDriverTripsHelp":"Every N trips a driver takes, the rider on that trip gets the benefit. It's resolved when the driver is assigned, not when the trip is requested.","promotions.benefitFree":"Free ride","promotions.benefitPercent":"Percentage discount","promotions.benefitFixed":"Fixed amount discount","promotions.pillFree":"Free","promotions.zodNameMin":"Give it a name with at least 2 characters.","promotions.zodNameMax":"Maximum 80 characters.","promotions.zodNRequired":"Enter every how many trips it applies (a whole number).","promotions.zodNMin":"Must be 2 or more — \"every 1 trip\" would mean always.","promotions.zodMaxNPrefix":"At most","promotions.zodMaxNSuffix":"trips.","promotions.zodValueRequired":"Enter how much this promotion discounts.","promotions.zodPercentRange":"The percentage must be between 0 and 100.","promotions.zodFixedPositive":"The amount must be greater than 0.","promotions.zodMinTripAmountPositive":"The minimum fare must be greater than 0. Leave it empty for no minimum.","promotions.toastActivated":"Promotion activated","promotions.toastDeactivated":"Promotion deactivated","promotions.toastToggleError":"Couldn't change the status","promotions.toastUpdated":"Promotion updated","promotions.toastCreated":"Promotion created","promotions.toastSaveError":"Couldn't save the promotion","promotions.toastDeleted":"Promotion deleted","promotions.toastDeleteError":"Couldn't delete","promotions.confirmDeleteTitle":"Delete promotion","promotions.confirmDeleteDescPrefix":"Delete the rule","promotions.confirmDeleteDescSuffix":"Trips that already used it keep their discount; new ones will stop receiving it.","promotions.confirmDeleteConfirm":"Delete rule","promotions.dialogTitleEdit":"Edit promotion","promotions.dialogTitleNew":"New promotion","promotions.dialogDescription":"The engine applies these rules on its own — the rider doesn't type any code.","promotions.fieldName":"Name","promotions.fieldNameHint":"Shown to the rider and driver when the promo applies.","promotions.namePlaceholder":"First trip free","promotions.fieldWhenApplies":"When it applies","promotions.fieldEveryHowMany":"Every how many trips","promotions.nHintMin":"Minimum 2","promotions.nHintMax":"maximum","promotions.fieldBenefit":"Benefit","promotions.fieldPercentValue":"Discount percentage (%)","promotions.fieldFixedValue":"Discount amount","promotions.percentHint":"Between 0 and 100. Discounted from the agreed fare.","promotions.fixedHint":"Greater than 0. Never discounts more than the fare itself.","promotions.fieldMinTripAmount":"Minimum trip fare","promotions.minTripAmountHelp":"The promotion only applies if the trip fare is equal to or greater than this amount. Leave it empty to apply it to any trip.","promotions.minTripAmountHint":"Optional. On \"every N trips\", if the trip whose turn it is does not reach the minimum, the benefit stays pending for the next one that does.","promotions.minTripAmountPlaceholder":"No minimum","promotions.minBelowDiscountWarning":"The minimum is lower than the discount: a trip of that amount would be free.","promotions.minTripShort":"min. trip {amount}","promotions.activeSwitchLabel":"Promotion active","promotions.activeSwitchDescription":"Inactive rules are kept but the engine doesn't evaluate them.","promotions.cancel":"Cancel","promotions.saveChanges":"Save changes","promotions.createRule":"Create promotion","coupons.pageTitle":"Coupons","coupons.loadingSubtitle":"Loading…","coupons.campaignsWord":"campaigns","coupons.campaignsWordOne":"campaign","coupons.activeWord":"active","coupons.activeWordOne":"active","coupons.newCampaign":"New campaign","coupons.searchPlaceholder":"Search by name or code…","coupons.filterByStatus":"Filter by status","coupons.statusAll":"All statuses","coupons.statusActive":"Active","coupons.statusInactive":"Inactive","coupons.statusUpcoming":"Upcoming","coupons.statusExpired":"Expired","coupons.emptyTitle":"No coupon campaigns yet","coupons.emptyDescription":"Create a campaign with its codes and validity period. For automatic discounts without a code, use the Promotions page.","coupons.freeRide":"Free ride","coupons.edit":"Edit","coupons.delete":"Delete","coupons.actionsFor":"Actions for {name}","coupons.couponsCountLabel":"coupons","coupons.colCampaign":"Campaign","coupons.colDiscount":"Discount","coupons.colValidity":"Valid","coupons.colCodes":"Codes","coupons.colUses":"Uses","coupons.colStatus":"Status","coupons.minTripShort":"min. trip {amount}","coupons.totalUsesLabel":"total uses","coupons.moreSuffix":"more","coupons.copyCode":"Copy code","coupons.codeCopiedPrefix":"Code","coupons.codeCopiedSuffix":"copied","coupons.dialogTitleEdit":"Edit campaign","coupons.dialogTitleNew":"New campaign","coupons.dialogDescriptionEdit":"Update the campaign's validity, discount, or codes.","coupons.dialogDescriptionNew":"Define the discount, validity period, and codes the rider will be able to redeem.","coupons.fieldName":"Name","coupons.namePlaceholder":"New user welcome","coupons.fieldDescription":"Description","coupons.descriptionPlaceholder":"30% off your first trip","coupons.fieldDiscountType":"Discount type","coupons.optionPercent":"Percentage","coupons.optionAmount":"Fixed amount","coupons.optionFreeRide":"Free ride","coupons.fieldDiscountPercent":"Discount (%)","coupons.fieldDiscountAmount":"Amount","coupons.fieldMaxDiscount":"Discount cap","coupons.optionalHint":"Optional","coupons.noCapPlaceholder":"No cap","coupons.fieldMinTripAmount":"Minimum trip amount","coupons.noMinPlaceholder":"No minimum","coupons.fieldMaxUsesPerUser":"Uses per user","coupons.fieldValidFrom":"Valid from","coupons.fieldValidUntil":"Valid until","coupons.fieldMaxUsesGlobal":"Total uses","coupons.unlimitedHint":"Empty = unlimited","coupons.unlimitedPlaceholder":"Unlimited","coupons.fieldCodes":"Coupon codes","coupons.codesHint":"Separate them with commas","coupons.codesEditHint":"Separate them with commas. Whatever is left here are the campaign's codes: removing a line deletes that code, and a code that was already redeemed cannot be removed.","coupons.codesPlaceholder":"WELCOME30, FRIEND20, HOLIDAY10","coupons.codesNoneYet":"This campaign has no codes yet.","coupons.codeUsesWord":"redemptions","coupons.codeUsesWordOne":"redemption","coupons.codeUnusedWord":"unused","coupons.codeLockedHint":"Already redeemed: it cannot be removed from the campaign.","coupons.codeUnusedHint":"Unused: remove it by deleting its line below.","coupons.activeSwitchLabel":"Campaign active","coupons.activeSwitchDescription":"Inactive campaigns don't accept new redemptions.","coupons.cancel":"Cancel","coupons.saveCampaign":"Save campaign","coupons.zodNameMin":"Give it a name with at least 2 characters.","coupons.zodNameMax":"Maximum 80 characters.","coupons.zodDescriptionMax":"Maximum 500 characters.","coupons.zodDiscountValueMin":"The value can't be negative.","coupons.zodMaxDiscountMin":"The cap must be greater than 0. Leave it empty for no cap.","coupons.zodMinTripAmountMin":"The minimum must be greater than 0. Leave it empty for no minimum.","coupons.zodMaxUsesGlobalInt":"Must be a whole number.","coupons.zodMaxUsesGlobalMin":"Must be 1 or more.","coupons.zodMaxUsesPerUserInt":"Must be a whole number.","coupons.zodMaxUsesPerUserMin":"Must be 1 or more.","coupons.zodMaxUsesPerUserMax":"At most 100.","coupons.toastUpdated":"Campaign updated","coupons.toastCreated":"Campaign created","coupons.genericError":"Error","coupons.toastDeleted":"Campaign deleted","coupons.toastDeleteError":"Couldn't delete","coupons.confirmDeleteTitle":"Delete campaign","coupons.confirmDeleteDescPrefix":"This will delete","coupons.confirmDeleteDescMiddle":"along with its","coupons.confirmDeleteDescMiddleOne":"along with its","coupons.confirmDeleteDescCodesWord":"codes","coupons.confirmDeleteDescCodesWordOne":"code","coupons.confirmDeleteDescSuffix":"The codes will stop being redeemable immediately.","coupons.confirmDeleteDescSuffixOne":"The code will stop being redeemable immediately.","coupons.confirmDeleteConfirm":"Yes, delete","promotions.confirmActivateTitle":"Activate the promotion","promotions.confirmDeactivateTitle":"Deactivate the promotion","promotions.confirmActivateDesc":"The engine starts applying it on the next trip that matches the condition, and riders will see the discounted price.","promotions.confirmDeactivateDesc":"It stops applying immediately: trips that were getting it will be charged at full price.","coupons.statusDraft":"Draft","coupons.zodBadgeMax":"Maximum 24 characters","coupons.zodTagMax":"Maximum 40 characters","coupons.zodTagRequired":"Write the segment tag","coupons.zodValidFromRequired":"Pick the start date","coupons.zodValidUntilRequired":"Pick the end date","coupons.badgeHint":"Label the app paints over the promotion","coupons.audienceTaggedHint":"Only riders carrying this tag can see it","coupons.servicesWord":"services","coupons.fieldAudience":"Who sees it","coupons.fieldAudienceHint":"Everyone, or only riders carrying a tag you put on their profile.","coupons.audienceAll":"All riders","coupons.audienceTagged":"Only riders with a tag","coupons.fieldAudienceTag":"Segment tag","coupons.fieldAudienceTagHint":"The same one you put on the rider profile. Compared literally: case and spaces count.","coupons.audienceTagPlaceholder":"acme-partner","coupons.audienceTagPick":"Choose a tag…","coupons.audienceTagOption":"{tag} · {n} {n|rider|riders}","coupons.audienceTagOther":"Another tag (type it)","coupons.fieldServices":"Services it applies to","coupons.fieldServicesHint":"Leave it empty to apply everywhere. Pick some and the code is rejected on the rest.","coupons.servicesAllPlaceholder":"All services","coupons.fieldBadge":"Label in the app","coupons.fieldBadgeHint":"Short text the app paints over the promotion. Empty: the app decides.","coupons.badgePlaceholder":"With code","coupons.publishedSwitchLabel":"Published","coupons.publishedSwitchDescription":"Off leaves it a draft: it does not show in the app and its codes do not validate. Turn it on when you announce it.","comm.acc.title":"Company accounts","comm.acc.subtitle":"{total} accounts · {active} active · {inactive} inactive","comm.acc.subtitleOneActive":"1 account · active","comm.acc.subtitleOneInactive":"1 account · inactive","comm.acc.loading":"Loading…","comm.acc.new":"New account","comm.acc.hintBold":"These are the accounts the driver sees in their app. ","comm.acc.hintRest":"They collect the full fare in cash and owe you the commission: they deposit into one of these accounts and report the payment with a receipt. With no active account, they have nowhere to pay you.","comm.acc.emptyTitle":"No accounts configured","comm.acc.emptyDesc":"Without an active account, drivers cannot report their commission payment from the app.","comm.acc.tableCaption":"Company bank accounts","comm.acc.colAccount":"Account","comm.acc.colHolder":"Holder","comm.acc.colCurrency":"Currency","comm.acc.colActive":"Active","comm.acc.colActions":"Actions","comm.acc.editAction":"Edit","comm.acc.deleteAction":"Delete","comm.acc.rowActions":"Actions for {name}","comm.acc.cci":"Interbank","comm.acc.errSave":"Could not save the account","comm.acc.errDelete":"Could not delete the account","comm.acc.toastCreated":"Account created","comm.acc.toastUpdated":"Account updated","comm.acc.toastDeleted":"Account deleted","comm.acc.toastOn":"\"{name}\" is now active","comm.acc.toastOff":"\"{name}\" is now inactive","comm.acc.confirmBtn":"Confirm","comm.acc.confirmOnTitle":"Activate \"{name}\"","comm.acc.confirmOnDesc":"It will show up in the driver app as a destination to pay their commission.","comm.acc.confirmOffTitle":"Deactivate \"{name}\"","comm.acc.confirmOffDesc":"It disappears from the driver app: nobody can report a new payment to this account. Payments already reported are kept.","comm.acc.confirmDeleteTitle":"Delete \"{name}\"","comm.acc.confirmDeleteDesc":"Only an account nobody ever paid into can be deleted. If it already has reported payments, deactivate it instead.","comm.acc.confirmDeleteBtn":"Delete","comm.acc.dlgNew":"New company account","comm.acc.dlgEdit":"Edit account","comm.acc.dlgDesc":"These details are copied verbatim into the driver app: one digit off and the deposit goes elsewhere.","comm.acc.btnCreate":"Create account","comm.acc.btnSave":"Save changes","comm.acc.fieldLabel":"Display name","comm.acc.fieldLabelHelp":"How the driver tells this account from the others. E.g. \"Main account\".","comm.acc.fieldLabelPh":"Main account","comm.acc.fieldBank":"Bank","comm.acc.fieldBankHelp":"Institution holding the account.","comm.acc.fieldBankPh":"Bank name","comm.acc.fieldAccountType":"Account type","comm.acc.fieldAccountTypeHelp":"Savings, checking, business… Optional.","comm.acc.fieldAccountTypePh":"Savings","comm.acc.fieldAccountNumber":"Account number","comm.acc.fieldAccountNumberHelp":"The one used for deposits within the same bank.","comm.acc.fieldAccountNumberPh":"191-1234567-0-11","comm.acc.fieldInterbank":"Interbank number (IBAN, SWIFT, routing…)","comm.acc.fieldInterbankHelp":"Required for transfers from ANOTHER bank. Without it, half the country cannot pay you.","comm.acc.fieldInterbankPh":"00219100123456701150","comm.acc.fieldHolder":"Holder","comm.acc.fieldHolderHelp":"Exact name as registered at the bank.","comm.acc.fieldHolderPh":"Your Company LLC","comm.acc.fieldHolderDoc":"Holder tax ID","comm.acc.fieldHolderDocHelp":"Tax or national ID. Several banks ask for it when depositing.","comm.acc.fieldHolderDocPh":"20512345678","comm.acc.fieldCurrency":"Currency","comm.acc.fieldCurrencyHelp":"3-letter ISO code: USD, EUR, INR…","comm.acc.fieldInstructions":"Instructions for the driver","comm.acc.fieldInstructionsHelp":"A short note under the details. E.g. \"Send a photo of the voucher, not a screenshot\".","comm.acc.fieldInstructionsPh":"Deposit and attach a photo of the voucher.","comm.acc.fieldSort":"Order","comm.acc.fieldSortHelp":"Lower number = higher in the driver app.","comm.acc.fieldActive":"Active","comm.acc.fieldActiveDesc":"Visible in the driver app as a payment destination.","comm.acc.zodLabelRequired":"Give it a name you can recognise","comm.acc.zodLabelMax":"80 characters max","comm.acc.zodBankRequired":"Enter the bank","comm.acc.zodBankMax":"80 characters max","comm.acc.zodAccountRequired":"Account number is required","comm.acc.zodAccountMax":"40 characters max","comm.acc.zodHolderRequired":"Enter the account holder","comm.acc.zodHolderMax":"120 characters max","comm.acc.zodTypeMax":"40 characters max","comm.acc.zodDocMax":"40 characters max","comm.acc.zodCurrency":"3-letter ISO code (USD, EUR…)","comm.acc.zodInstructionsMax":"500 characters max","comm.pay.caption":"Commission payments reported by drivers","comm.pay.emptyTitle":"No payments reported","comm.pay.emptyDescription":"When a driver deposits their commission and uploads the receipt, it will show up here for review.","comm.pay.filterApproved":"Approved","comm.pay.filterRejected":"Rejected","comm.pay.statusApproved":"Approved","comm.pay.statusRejected":"Rejected","comm.pay.noAccount":"No account","comm.pay.receiptAction":"View receipt","comm.pay.receiptMissing":"This payment has no receipt","comm.pay.receiptMissingDesc":"The driver reported it without attaching an image. Check it against your bank statement before approving.","comm.pay.receiptError":"Could not open the receipt","comm.pay.rejectAction":"Reject","comm.pay.confirmApproveTitle":"Approve {name} payment","comm.pay.confirmApproveDesc":"{amount} will be credited to their wallet and their debt drops by that amount. Make sure the deposit is in your account: this cannot be undone.","comm.pay.confirmApproveBtn":"Credit and reduce debt","comm.pay.rejectDialogTitle":"Reject payment","comm.pay.rejectDialogDesc":"{amount} from {name}. Their debt stays the same and the reason is shown in their app.","comm.pay.rejectReasonLabel":"Rejection reason","comm.pay.rejectReasonHint":"The driver reads this in their app. Tell them what to do, not just what failed.","comm.pay.rejectReasonPh":"The voucher is from another date. Upload this week deposit instead.","comm.pay.rejectDialogNote":"Rejecting moves no money: the commission is still owed and the driver can report again.","comm.pay.rejectSubmit":"Reject payment","comm.pay.zodReasonMin":"Write at least 5 characters","comm.pay.zodReasonMax":"500 characters max","comm.pay.toastApproved":"Payment approved and credited","comm.pay.toastRejected":"Payment rejected","comm.pay.toastError":"Could not record the decision","profile.zodMin2Chars":"Minimum 2 characters","profile.zodMax60Chars":"Maximum 60 characters","profile.zodChooseLanguage":"Choose a language","profile.zodMin8Chars":"Minimum 8 characters","profile.zodPasswordsMismatch":"Passwords do not match","profile.toastProfileUpdated":"Profile updated","profile.toastPasswordUpdated":"Password updated","profile.toastGenericError":"Error","profile.pageTitle":"My profile","profile.noEmail":"no email","profile.loading":"Loading…","profile.personalDataTitle":"Personal details","profile.personalDataSubtitle":"Applied to the panel and to the notifications you receive.","profile.memberSince":"Member since","profile.firstNameLabel":"First name","profile.lastNameLabel":"Last name","profile.localeLabel":"Panel language","profile.avatarAlt":"Profile photo","profile.avatarUpload":"Upload photo","profile.avatarChange":"Change photo","profile.avatarRemove":"Remove photo","profile.avatarSpec":"JPG, PNG or WebP up to 2 MB. It is cropped to a square and shown in the panel and in your account menu.","profile.avatarToastUploaded":"Profile photo updated","profile.avatarToastRemoved":"Profile photo removed","profile.avatarConfirmRemoveTitle":"Remove your profile photo?","profile.avatarConfirmRemoveDesc":"Your initials are shown instead. You can upload another photo at any time.","profile.avatarErrType":"The file is not a JPG, PNG or WebP image.","profile.avatarErrTooBig":"The photo is larger than 2 MB: choose a lighter one.","profile.avatarErrDecode":"The image could not be read: it may be damaged. Try another one.","profile.avatarErrUpload":"The photo could not be uploaded. Please try again.","profile.avatarErrRemove":"The photo could not be removed. Please try again.","profile.phonePlaceholder":"Phone number","profile.emailHint":"Email is verified from the app and cannot be changed here: ask your account administrator.","profile.saveChanges":"Save changes","profile.accountTitle":"Account","profile.accountSubtitle":"Data managed by the platform.","profile.emailLabel":"Email","profile.phoneLabel":"Phone","profile.zodPhone":"Invalid phone: 6–20 characters, digits, +, spaces and dashes only.","profile.phoneNotRegistered":"Not registered","profile.roleLabel":"Role","profile.statusLabel":"Status","profile.organizationLabel":"Organization","profile.currencyLabel":"Currency","profile.lastAccessLabel":"Last access","profile.identifierLabel":"Identifier","profile.securityTitle":"Security","profile.securitySubtitle":"Change your panel sign-in password.","profile.demoProtectedHint":"This is a shared demo account: its password and access can't be changed.","profile.currentPasswordLabel":"Current password","profile.newPasswordLabel":"New password","profile.newPasswordHint":"Minimum 8 characters. Combine uppercase letters, numbers and symbols.","profile.confirmPasswordLabel":"Repeat new password","profile.updatePassword":"Update password","deletion.title":"Deletion requests","deletion.panelTitle":"Requests","deletion.loading":"Loading…","deletion.subtitle":"{total} requests","deletion.subtitleOne":"{total} request","deletion.tabPending":"Pending","deletion.tabCancelled":"Cancelled","deletion.tabExecuted":"Executed","deletion.colUser":"User","deletion.colRequested":"Requested","deletion.colScheduled":"Scheduled","deletion.colReason":"Reason","deletion.colStatus":"Status","deletion.noReason":"No reason given","deletion.inDays":"in {n} {n|day|days}","deletion.dueToday":"today","deletion.overdue":"overdue","deletion.statusPending":"Pending","deletion.statusCancelled":"Cancelled","deletion.statusExecuted":"Executed","deletion.cancelledMeta":"Cancelled {when}","deletion.executedMeta":"Executed {when}","deletion.actionsFor":"Actions for {name}","deletion.cancelAction":"Cancel request","deletion.executeAction":"Delete now","deletion.confirmCancelTitle":"Cancel {name}'s request","deletion.confirmCancelDesc":"The account stays as it is: nothing is deleted and the user can keep using it normally.","deletion.confirmCancelButton":"Yes, cancel the request","deletion.confirmExecuteTitle":"Delete {name}'s account now","deletion.confirmExecuteDesc":"This does NOT wait for the grace period: it erases the account and its data immediately. It can't be undone.","deletion.confirmExecuteButton":"Yes, delete now","deletion.toastCancelled":"Request cancelled","deletion.toastExecuted":"Account deleted","deletion.toastError":"Couldn't complete the action","deletion.emptyTitlePending":"No pending requests","deletion.emptyDescPending":"Nobody's waiting out the grace period right now.","deletion.emptyTitleCancelled":"No cancelled requests","deletion.emptyDescCancelled":"No deletion request has been cancelled yet.","deletion.emptyTitleExecuted":"No deleted accounts","deletion.emptyDescExecuted":"No account has reached the end of its grace period yet.","deletion.paginationLabel":"Deletion requests","dispatchConsole.viewNeedsOperator":"Needs operator","dispatchConsole.viewSearching":"Searching","dispatchConsole.viewActive":"With driver","dispatchConsole.viewAll":"All","dispatchConsole.viewsAria":"Trip queue view","dispatchConsole.filterCity":"Filter by city","dispatchConsole.filterAllCities":"All cities","dispatchConsole.filterZone":"Filter by zone","dispatchConsole.filterAllZones":"All zones","dispatchConsole.filterCategory":"Filter by service","dispatchConsole.filterAllCategories":"All services","dispatchConsole.filterStatus":"Filter by status","dispatchConsole.statusAll":"All","dispatchConsole.statusFree":"Available","dispatchConsole.statusOnTrip":"On trip","dispatchConsole.statusStale":"No signal","dispatchConsole.tripsNoun":"trips","dispatchConsole.driversNoun":"drivers","dispatchConsole.badgeNeedsOperator":"Needs operator","dispatchConsole.noDriver":"No driver","dispatchConsole.noDropoff":"Open destination","dispatchConsole.searchingFor":"Searching for {time}","dispatchConsole.autoCancelsIn":"Auto-cancels in {time}","dispatchConsole.autoCancelDue":"Cancelling…","dispatchConsole.etaMinutes":"ETA {min} min","dispatchConsole.etaUnderMinute":"ETA under 1 min","dispatchConsole.reasonNoDriversAvailable":"no drivers were available","dispatchConsole.reasonNoDriversAccepted":"no driver accepted","dispatchConsole.reasonOther":"the automatic search ended","dispatchConsole.tripActionsFor":"Actions for trip {id}","dispatchConsole.actionAssign":"Assign driver","dispatchConsole.actionReassign":"Reassign driver","dispatchConsole.actionRelaunch":"Relaunch search","dispatchConsole.actionCancel":"Cancel trip","dispatchConsole.relaunchConfirmTitle":"Relaunch the search for trip {id}?","dispatchConsole.relaunchConfirmDesc":"Automatic dispatch offers the trip to nearby drivers again, starting over from the closest ring. The rider notices nothing: they keep seeing that a driver is being found.","dispatchConsole.relaunchConfirmButton":"Relaunch search","dispatchConsole.relaunchOk":"Search relaunched","dispatchConsole.relaunchNotSearching":"The trip is no longer looking for a driver: nothing was relaunched","dispatchConsole.relaunchAlreadyRunning":"A search is already running for this trip","dispatchConsole.relaunchError":"Could not relaunch the search","dispatchConsole.cancelTitle":"Cancel trip {id}","dispatchConsole.cancelDesc":"The rider is notified right away. The reason is kept in the trip history.","dispatchConsole.tripLoadError":"Could not open the trip to assign it","dispatchConsole.emptyNeedsTitle":"No trip is waiting for an operator","dispatchConsole.emptyNeedsDesc":"When automatic dispatch cannot find a driver, the trip shows up here with its countdown before it cancels itself.","dispatchConsole.emptySearchingTitle":"No trips looking for a driver","dispatchConsole.emptySearchingDesc":"Every request shows up here while automatic dispatch offers it to nearby drivers.","dispatchConsole.emptyActiveTitle":"No trips with a driver","dispatchConsole.emptyActiveDesc":"Accepted, on-the-way and in-progress trips will show up here with their ETA.","dispatchConsole.emptyFilteredTitle":"No trip matches the filters","dispatchConsole.emptyFilteredDesc":"Clear the city, zone or service to see the whole queue.","dispatchConsole.needsOperatorToastTitle":"A trip needs an operator","dispatchConsole.needsOperatorToastDesc":"Trip {id}: {reason}. It auto-cancels in {time}.","dispatchConsole.needsOperatorToastAction":"Assign","dispatchConsole.sosToastTitle":"SOS alert","dispatchConsole.sosToastDesc":"A user pressed the emergency button. Attend to it now.","dispatchConsole.sosToastDescTrip":"A user pressed the emergency button on trip {id}. Attend to it now.","dispatchConsole.sosToastAction":"View SOS alerts","dispatchConsole.sosToastDescMany":"{n} new emergency alerts. Attend to them now.","dispatchConsole.liveOn":"Live","dispatchConsole.liveConnecting":"Connecting…","dispatchConsole.liveOff":"Live connection lost","dispatchConsole.liveOnHint":"Positions, trips and alerts arrive instantly.","dispatchConsole.liveOffHint":"Retrying on its own. Meanwhile the screen refreshes every 10–15 seconds.","dispatchConsole.legendStale":"No signal (2+ min)","dispatchConsole.legendSearching":"Pickup looking for a driver","dispatchConsole.legendNeedsOperator":"Needs operator","dispatchConsole.legendSos":"SOS alert","dispatchConsole.legendNote":"Position of each driver's last GPS ping. A driver without signal for more than 10 min leaves the map but stays in the list.","dispatchConsole.lastSeen":"Last signal: {ago}","dispatchConsole.lastSeenUnknown":"No signal recorded","dispatchConsole.pickupTooltip":"Pickup for trip {id}","dispatchConsole.sosTooltip":"SOS alert · {ago}","dispatchConsole.hintBar":"Assign, reassign, relaunch the search or cancel from each trip's menu. With the live connection the map and the queue update instantly; without it, every 10 to 15 seconds.","dispatchConsole.demoSimTitle":"Demo driver simulator","dispatchConsole.demoSimHint":"For demo installs only. Moves fictitious drivers around the city and puts them to work: they answer trip requests within 3 to 8 seconds (sometimes with a +10% counter-offer), drive to the pickup, wait, take the rider to the destination and complete the trip, fast-forwarded to a few minutes. Real drivers who are online still receive every request. Never turn it on in an operation with real drivers.","dispatchConsole.demoSimCount":"{running} of {drivers} simulated drivers active · {trips} on a trip","dispatchConsole.demoSimDrivers":"Simulated drivers","dispatchConsole.demoSimOnToast":"Simulator turned on","dispatchConsole.demoSimOffToast":"Simulator turned off","dispatchConsole.demoSimError":"Could not change the simulator","dispatchConsole.assignSameService":"Same service","dispatchConsole.assignMismatchWarn":"The rider asked for {trip} and this driver drives {driver}.","dispatchConsole.assignMismatchOverride":"Assign anyway: the rider asked for {trip}, this driver drives {driver}","dispatchConsole.assignMismatchRequired":"Tick the box to assign a driver from another service.","dispatchConsole.assignUnknownService":"another service","studio.title":"App studio","studio.subtitle":"How riders and drivers see your operation on their phone","studio.saveStateDirty":"Unsaved changes","studio.saveStateClean":"All saved","studio.saveNoteDirty":"What the preview shows has not reached the phones yet.","studio.discard":"Discard","studio.save":"Save changes","studio.nothingToSave":"No changes","studio.discardTitle":"Discard the changes?","studio.discardDescription":"Everything you changed since the last save is lost. This cannot be undone.","studio.discardConfirm":"Discard","studio.toastSaved":"Appearance saved","studio.toastSavedDesc":"It reaches the phones the next time the app starts, or within a minute.","studio.toastError":"Could not save","studio.tabEditor":"Editor","studio.tabPreview":"Preview","studio.blocksTitle":"Blocks","studio.blocksSubtitle":"Open a block and the preview jumps to the screen where it shows.","studio.unsavedInBlock":"Unsaved changes in this block","studio.blockBrand":"Brand colours","studio.blockBrandSub":"The primary and the secondary colour","studio.blockApp":"App colours","studio.blockAppSub":"Icons, light and dark background, highlight cards","studio.blockSplash":"Start screen","studio.blockSplashSub":"The vehicle that drives across the map when the app opens","studio.blockBanners":"Home banners","studio.blockBannersSub":"Your advertising space in the rider app","studio.blockStores":"Store links","studio.blockStoresSub":"Your app listing on Google Play and the App Store","studio.blockWeb":"Panel and website background","studio.blockWebSub":"The base colour of each theme","studio.primaryLabel":"Primary colour","studio.primaryHint":"The route on the map, links, the active tab and the accents of both apps. It is also the accent of this panel and of your website.","studio.primaryHelp":"In light mode the big buttons of the apps (\"Request ride\", \"Find offers\") are a fixed navy so they read with any brand; the primary colour rules everything else. In dark mode the apps lighten it by 10% so it stays readable.","studio.secondaryLabel":"Secondary colour","studio.secondaryHint":"The destination on the start-screen map and the delivery badge. On your website, the stars and the brand gradient.","studio.secondaryHelp":"The second voice of the brand. Never used for states like error or success, which have a colour of their own.","studio.iconLabel":"Icon colour","studio.iconHint":"Row, shortcut and tab icons in both apps.","studio.iconHelp":"One colour for every icon, and at 12% for the tile behind each one. On a dark card the app lightens it by itself until it reads. Empty = the factory navy.","studio.appBgLightLabel":"Background · light mode","studio.appBgDarkLabel":"Background · dark mode","studio.appBgHint":"The canvas of both apps in that mode.","studio.appBgHelp":"You only pick the background: cards, borders and text tones are worked out on the phone so everything stays readable. Empty = the background the app ships with.","studio.surfaceLabel":"Highlight cards","studio.surfaceHint":"The rider account header; the driver vehicle, earnings and balance cards.","studio.surfaceHelp":"The text on the card adapts to the colour you pick. Empty = the factory navy.","studio.restore":"Restore default","studio.usingDefault":"Using the colour the product ships with.","studio.vehicleLabel":"Vehicle","studio.vehicleHint":"Pick the one that matches your fleet.","studio.vehicleHelp":"When the app opens it shows a map with this vehicle driving a route, in the rider app and in the driver app.","studio.vehicle_car":"Car","studio.vehicle_suv":"SUV","studio.vehicle_moto":"Motorbike","studio.vehicle_mototaxi":"Mototaxi","studio.vehicleNote":"The route on that screen is drawn in your primary colour and the destination in the secondary one.","studio.storesAndroid":"Google Play","studio.storesAndroidHint":"The listing of YOUR app on Google Play. Leave it empty if it is not published yet.","studio.storesIos":"App Store","studio.storesIosHint":"The listing of YOUR app on the App Store. Leave it empty if it is not published yet.","studio.storesNote":"The link travels in the message a rider shares from \"Invite friends\": an Android phone sends the Google Play one and an iPhone the App Store one. An empty field breaks nothing: your website address is sent if you set a custom domain in Settings → General, and otherwise the message ends at the code.","studio.webBgDarkLabel":"Background · dark theme","studio.webBgDarkHint":"The panel in dark theme, and the header, hero and footer of your website.","studio.webBgLightLabel":"Background · light theme","studio.webBgLightHint":"The panel in light theme, and the content sections of your website.","studio.webBgHelp":"You only pick the background colour: surfaces, borders and text tones are derived from it so everything stays readable. Empty = the background the product ships with.","studio.webNote":"These two backgrounds do not reach the apps: they paint this panel and your public website. While the studio is open, the panel is painted with what you try.","studio.bannersNote":"Banners do not use the save bar above: each one is saved when it is uploaded, with its order and its schedule.","studio.logosWhere":"Logos and the favicon are uploaded in","studio.logosWhereLink":"Settings → General","studio.zodHex":"Use a six-digit hex colour, for example #10B981","studio.zodHexOrEmpty":"Type a six-digit hex colour, like #0F172A — or clear the field.","studio.zodStoreUrl":"Type an address starting with https:// — or clear the field.","studio.zodStoreUrlMax":"The address cannot exceed 500 characters","studio.pvAppAria":"App in the preview","studio.pvRider":"Rider","studio.pvDriver":"Driver","studio.pvModeAria":"Preview mode","studio.pvLight":"Light","studio.pvDark":"Dark","studio.pvScreensAria":"App screens","studio.pvNote":"Sample data. The colours and the pieces are the ones the apps paint with your settings.","studio.screen.splash":"Start","studio.screen.home":"Map and services","studio.screen.request":"Request a ride","studio.screen.trip":"Trip in progress","studio.screen.account":"Account","studio.screen.invite":"Invite friends","studio.screen.driverHome":"Driver home","studio.screen.incoming":"Incoming request","studio.screen.earnings":"Earnings","studio.screen.web":"Panel and website","studio.pv.defaultName":"Your operation","studio.pv.splashTagline":"Move around your city — in a few taps.","studio.pv.splashTaglineDriver":"Drive and earn — your city awaits.","studio.pv.splashDriver":"Driver","studio.pv.pickup":"Pickup","studio.pv.currentLocation":"Current location","studio.pv.whereTo":"Where to?","studio.pv.driversNear":"4 drivers near you","studio.pv.shHome":"Home","studio.pv.shWork":"Work","studio.pv.shAirport":"Airport","studio.pv.service":"Service","studio.pv.seeAll":"See all","studio.pv.svcEconomy":"Economy","studio.pv.svcXl":"XL","studio.pv.svcMoto":"Moto","studio.pv.svcEconomyDesc":"Fast and affordable","studio.pv.svcXlDesc":"For groups","studio.pv.bannerEmpty":"Your banner goes here","studio.pv.bannerOff":"Campaign off: the app shows no banners","studio.pv.tabHome":"Home","studio.pv.tabActivity":"Activity","studio.pv.tabPromos":"Promos","studio.pv.tabAccount":"Account","studio.pv.reqDest":"Shopping mall","studio.pv.reqEta":"~12 min","studio.pv.reqRecommended":"Recommended fare · 4.2 km","studio.pv.reqFind":"Find offers","studio.pv.reqSchedule":"Schedule for later","studio.pv.reqCash":"Cash payment","studio.pv.tripStatus":"On the way","studio.pv.tripMin":"4 min","studio.pv.tripDriver":"Carlos M.","studio.pv.tripVehicle":"Toyota Yaris · Grey","studio.pv.tripArrives":"Arrives in ~4 min","studio.pv.tripFare":"Agreed fare","studio.pv.call":"Call","studio.pv.chat":"Chat","studio.pv.share":"Share","studio.pv.accTitle":"Account","studio.pv.accUser":"Maria Lopez","studio.pv.accEdit":"Edit profile","studio.pv.accInvite":"Invite friends · earn coupons","studio.pv.accInviteSub":"3 coupons for you and your friend","studio.pv.accPlaces":"Places","studio.pv.accHomeSub":"Add your address","studio.pv.accOffers":"Offers","studio.pv.accPromos":"Promotions","studio.pv.accDelivery":"Delivery","studio.pv.invTitle":"Invite friends. Earn 3 coupons each.","studio.pv.invCodeLabel":"SHARE YOUR CODE","studio.pv.invButton":"Invite friends","studio.pv.invMessageLabel":"Message that is shared","studio.pv.invMessage":"Join {app} with my code {code}. Download the app:","studio.pv.invMessageNoLink":"Join {app} with my code {code}.","studio.pv.invNoLink":"No store link","studio.pv.drvGreeting":"Good morning, Carlos","studio.pv.drvOffline":"You're offline. Connect to start receiving trips.","studio.pv.drvEarningsToday":"EARNINGS TODAY","studio.pv.drvTripsToday":"trips today","studio.pv.drvThisWeek":"this week","studio.pv.drvRating":"rating","studio.pv.drvSlide":"Slide to connect","studio.pv.tabCity":"City","studio.pv.tabHistory":"History","studio.pv.tabEarnings":"Earnings","studio.pv.incDeclineAll":"Decline all","studio.pv.incTitle":"Trip requests","studio.pv.incNear":"2 riders near you","studio.pv.incRider":"Lucia R.","studio.pv.incTrips":"183 trips","studio.pv.incRider2":"Diego P.","studio.pv.incNew":"New passenger","studio.pv.incPickup":"1200 Central Ave","studio.pv.incDrop":"Main park","studio.pv.incCounter":"Counter-offer","studio.pv.incDecline":"Decline","studio.pv.incAccept":"Accept","studio.pv.earnTitle":"Earnings","studio.pv.earnSubtitle":"Your income summary","studio.pv.earnToday":"Today","studio.pv.earnWeek":"Week","studio.pv.earnMonth":"Month","studio.pv.earnNet":"Net earnings","studio.pv.earnTrips":"Trips","studio.pv.earnTips":"Tips","studio.pv.earnWallet":"Wallet","studio.pv.earnWalletSub":"Balance and movements","studio.pv.earnPeriod":"Trips in the period","studio.pv.webPanelLight":"Panel · light theme","studio.pv.webPanelDark":"Panel · dark theme","studio.pv.webSite":"Public website","studio.pv.webNavTrips":"Trips","studio.pv.webNavDrivers":"Drivers","studio.pv.webNavFares":"Fares","studio.pv.webCard":"Trips today","studio.pv.webButton":"New trip","studio.pv.webHero":"Request your ride in seconds","studio.pv.webHeroCta":"Get the app","studio.pv.webSection":"Why choose us","studio.pv.webSectionText":"The price is agreed before you get in.","mail.title":"Outgoing email","mail.subtitle":"The service the system sends its email through: verification codes, password recovery and notices.","mail.apiOutdated":"This version of the API does not offer the email provider selector yet. Update the API.","mail.notConfigured":"Outgoing email is not set up: verification codes and password recovery cannot be sent.","mail.providerLabel":"Provider","mail.provider.gmail":"Gmail / Google Workspace","mail.provider.microsoft365":"Outlook / Microsoft 365","mail.provider.zoho":"Zoho Mail","mail.provider.ses":"Amazon SES","mail.provider.sendgrid":"SendGrid","mail.provider.mailgun":"Mailgun","mail.provider.brevo":"Brevo","mail.provider.postmark":"Postmark","mail.provider.custom":"Other SMTP server","mail.help.gmail":"Use an app password (myaccount.google.com/apppasswords), not the account password; it requires 2-Step Verification to be on.","mail.help.microsoft365":"The mailbox must have \"Authenticated SMTP\" (SMTP AUTH) enabled in the Microsoft 365 admin center; Microsoft turns it off by default and is phasing it out from the end of 2026.","mail.help.zoho":"The username is your Zoho address; with two-factor authentication use an app-specific password. If your account is in another region or on a paid plan, enter the server Zoho shows (e.g. smtp.zoho.eu or smtppro.zoho.com).","mail.help.ses":"Use SES SMTP credentials (not AWS access keys), created in the same region as the server: email-smtp.<region>.amazonaws.com. The sender must be a verified identity.","mail.help.sendgrid":"The username is literally \"apikey\" and the password is an API key with Mail Send permission. The sender must be a verified Sender Identity.","mail.help.mailgun":"Use the domain's SMTP credentials (Sending → Domain settings → SMTP credentials). For EU-region domains the server is smtp.eu.mailgun.org.","mail.help.brevo":"The username is the SMTP login Brevo shows and the password is an SMTP key — not the API key and not your account password.","mail.help.postmark":"Username and password are the same Server API Token (or the Access Key and Secret Key of an SMTP token). The sender must be a verified signature or domain.","mail.help.custom":"Your hosting or email provider gives you these values. SSL/TLS is usually port 465 and STARTTLS port 587.","mail.hostLabel":"SMTP server","mail.hostFixedHint":"Set by the provider.","mail.hostEditableHint":"Change it only if your account uses a different server (another region or plan).","mail.hostCustomHint":"Just the server name, without http:// or a port.","mail.portLabel":"Port","mail.securityLabel":"Security","mail.security.ssl":"SSL/TLS","mail.security.starttls":"STARTTLS","mail.security.none":"No encryption","mail.securityNoneWarning":"Without encryption the username, the password and the emails travel in clear text. Use it only with a server on your own network.","mail.userLabel":"Username","mail.userHint":"Usually the full email address of the account.","mail.userFixedHint":"This provider always uses this username.","mail.userCustomHint":"Leave it blank if your server does not ask for authentication.","mail.passLabel":"Password","mail.passLabel.gmail":"App password","mail.passLabel.sendgrid":"API key","mail.passLabel.brevo":"SMTP key","mail.passLabel.postmark":"Server API Token","mail.passLabel.ses":"SMTP password","mail.passLabel.mailgun":"SMTP password","mail.passHint":"Stored encrypted and never shown again.","mail.passKeepHint":"One is saved. Leave blank to keep it.","mail.passNeededHint":"Enter it again: the saved one belonged to another account or server and is not reused.","mail.fromNameLabel":"Sender name","mail.fromEmailLabel":"Sender email","mail.fromEmailHint":"Blank = the account username. Many providers only accept verified addresses or domains.","mail.replyToLabel":"Reply-to","mail.replyToHint":"Optional. Where replies go when it is not the sender.","mail.save":"Save email","mail.discard":"Discard","mail.toastSaved":"Email settings saved","mail.toastSavedDesc":"The next system emails go out with these settings.","mail.toastError":"Could not save the email settings","mail.zodHostRequired":"Enter the SMTP server.","mail.zodHost":"Just the server name (e.g. smtp.yourdomain.com), without http://, a path or a port.","mail.zodPort":"The port must be a number between 1 and 65535.","mail.zodEmail":"Enter a valid email.","mail.zodPassRequired":"Enter the password for this account.","mail.zodFromRequired":"Enter the sender email: the username of this account is not an email address.","mail.healthTitle":"Delivery status","mail.healthSubtitle":"The outcome of the latest real system emails, not of the tests.","mail.statusOk":"Working","mail.statusError":"Failing","mail.statusNone":"Nothing sent","mail.healthNone":"No email has been sent with these settings yet.","mail.healthOk":"Last email sent successfully: {when}.","mail.healthError":"Last send: failed — {when}.","mail.healthLastOk":"Last successful send before that: {when}.","mail.testTitle":"Test email","mail.testSubtitle":"Sent with the settings above — saved or not.","mail.testToLabel":"Send a test to","mail.testButton":"Send test","mail.testBadTo":"Enter a valid destination email.","mail.testOkTitle":"Test email sent","mail.testOkDesc":"{host}:{port} accepted the message for {to}. Check their inbox and spam folder.","mail.testErrTitle":"Could not send","mail.detail":"Technical detail","mail.err.mail_auth_failed":"The server rejected the username or password. Check them; many providers require an app password or an SMTP key instead of the account password.","mail.err.mail_app_password_required":"This account needs an app password: the server refuses the regular account password.","mail.err.mail_smtp_auth_disabled":"SMTP sign-in is turned off for this mailbox or organization. Enable \"Authenticated SMTP\" (SMTP AUTH) and try again.","mail.err.mail_host_not_found":"The SMTP server does not exist. Check it for typos.","mail.err.mail_connection_failed":"Could not connect to the server. Check the server and port, and that your hosting allows outbound SMTP connections.","mail.err.mail_timeout":"The server did not answer in time. A firewall may be blocking the port, or the security mode does not match the port (SSL/TLS is 465, STARTTLS is 587).","mail.err.mail_tls_failed":"The secure connection could not be established: the chosen security is not what the server offers on that port (SSL/TLS is 465, STARTTLS is 587).","mail.err.mail_tls_certificate":"The certificate of the mail server could not be verified. Use the server name that appears on its certificate.","mail.err.mail_sender_rejected":"The server refused the sender. Use an address or domain verified with the provider, or one this account is allowed to send as.","mail.err.mail_recipient_rejected":"The server refused the destination address.","mail.err.mail_rate_limited":"The provider is limiting this account: a sending quota or rate limit was reached.","mail.err.mail_send_failed":"The mail server refused the message.","mail.err.mail_host_required":"Enter the SMTP server before sending.","mail.err.mail_user_required":"Enter the username of the email account before sending.","mail.err.mail_password_required":"Enter the password for this account. A saved password is not reused after the provider, server or username changes.","mail.err.mail_from_required":"Enter the sender email: the username of this provider is not an email address.","mail.err.mail_host_invalid":"The server must be just its name (e.g. smtp.yourdomain.com), without http://, a path or a port.","mail.err.mail_port_invalid":"The port must be a number between 1 and 65535.","mail.err.mail_from_invalid":"The sender email is not a valid address.","mail.err.mail_reply_to_invalid":"The reply-to address is not valid.","mail.err.mail_provider_invalid":"Unknown email provider.","mail.err.mail_security_invalid":"Unknown security mode.","mail.err.mail_test_recipient_invalid":"Enter a valid destination email.","fc.title":"Finance centre","fc.subtitle.summary":"Summary · income, commissions and collection of the company","fc.subtitle.commissions":"Commissions · what each driver generated, paid and owes","fc.subtitle.payments":"Commission payments · payment reports from drivers, with their voucher","fc.subtitle.charges":"Rider charges · ledger of charged trips and their receipts","fc.subtitle.discounts":"Coupons and promotions · what the company discounts and what it gets back","fc.subtitle.documents":"Documents · receipts, vouchers and their delivery history","fc.tab.summary":"Summary","fc.tab.commissions":"Commissions","fc.tab.payments":"Commission payments","fc.tab.charges":"Rider charges","fc.tab.discounts":"Coupons and promotions","fc.tab.documents":"Documents","fc.dataAsOf":"Data as of {when}","fc.export":"Export","fc.exportFailed":"The file could not be generated","fc.export.charges":"Rider charges (CSV)","fc.export.commissions":"Commissions per driver (CSV)","fc.export.payments":"Commission payments (CSV)","fc.export.campaigns":"Campaigns and rules (CSV)","fc.export.redemptions":"Redemptions (CSV)","fc.loading":"Loading…","fc.total":"Total","fc.filterAll":"All","fc.days":"{n} d","fc.paid":"Collected","fc.owed":"Receivable","fc.vsPrevious":"vs previous period","fc.filter.period":"Period","fc.filter.granularity":"Group by","fc.filter.from":"From","fc.filter.to":"To","fc.filter.apply":"Apply dates","fc.filter.city":"City","fc.filter.allCities":"All","fc.filter.category":"Category","fc.filter.allCategories":"All","fc.filter.compare":"Compare","fc.preset.today":"Today","fc.preset.7d":"7 days","fc.preset.30d":"30 days","fc.preset.month":"This month","fc.preset.90d":"90 days","fc.granularity.hour":"Hour","fc.granularity.day":"Day","fc.granularity.week":"Week","fc.granularity.month":"Month","fc.granularity.hour.unavailable":"Hourly only for ranges of up to 7 days","fc.granularity.day.unavailable":"Daily only for ranges of up to 6 months","fc.granularity.week.unavailable":"Weekly from ranges of 14 days","fc.granularity.month.unavailable":"Monthly from ranges of 60 days","fc.by.hour":"By hour","fc.by.day":"By day","fc.by.week":"By week","fc.by.month":"By month","fc.kpi.tripsValue":"Total trip value","fc.kpi.tripsValue.help":"What riders paid in cash for the trips of the period, discounts already applied.","fc.kpi.companyIncome":"Company income","fc.kpi.companyIncome.help":"Commission plus booking fees of the trips of the period. Computed on the full fare, before discounts; what the company pays drivers back for those discounts is taken out in the net income.","fc.kpi.driverEarnings":"Driver earnings","fc.kpi.driverEarnings.help":"The share of the fare that stays with the drivers, computed on the full fare: a discount to the rider does not lower it.","fc.kpi.commissionCollected":"Commission collected","fc.kpi.commissionCollected.help":"Of what the trips of the period charged the drivers, how much is already covered: by the driver’s payments or by credits from the company (discount reimbursements, cancellation compensation). A credit covers the oldest charges first.","fc.kpi.discounts":"Discounts granted","fc.kpi.trips":"Charged trips","fc.kpi.averageTicket":"Average ticket","fc.kpi.netIncome":"Net income","fc.kpi.netIncome.help":"What the period left the company according to the drivers’ wallets: commissions and fees, minus what was credited to drivers for rider discounts and for cancellations.","fc.income.title":"Income over time","fc.income.subtitle":"{g} · {period}","fc.income.subtitleCompare":"{g} · {period} against {previous}","fc.income.modeBoth":"Company vs drivers","fc.income.modeCompany":"Company only","fc.income.modeTrips":"Trip value","fc.series.drivers":"Drivers","fc.series.company":"Company","fc.series.companyPrevious":"Company · previous period","fc.series.previous":"Previous period","fc.series.previousShort":"Previous","fc.series.tripsValue":"Trip value","fc.series.collected":"Collected from riders","fc.series.trips":"Trips","fc.series.paid":"Collected","fc.series.owed":"Receivable","fc.series.charged":"Charged to drivers","fc.chart.weekOf":"Week of {date}","fc.category.title":"Income by category","fc.category.subtitle":"Commission + fees by type of service","fc.category.centre":"Income","fc.receivable.title":"Collected vs receivable","fc.receivable.subtitle":"Of what was charged to drivers: {share} collected · {amount} receivable","fc.city.title":"Income by city","fc.city.subtitle":"Commission + fees · share of the total","fc.city.none":"Outside the configured cities","fc.city.detail":"{trips} {trips|trip|trips} · collected from riders {amount}","fc.city.paid":"{share} collected","fc.heat.title":"When the money moves","fc.heat.subtitle":"Average per weekday and hour","fc.heat.peak":"Peak:","fc.heat.at":"Average on","fc.heat.slot":"{day} at {hour}:00","fc.heat.less":"less","fc.heat.more":"more","fc.heat.trips":"Trips","fc.heat.income":"Income","fc.top.title":"Top drivers","fc.top.subtitleCommission":"Commission + fees generated in the period","fc.top.subtitleDebt":"Balance owed today · not tied to the period","fc.top.byCommission":"By commission generated","fc.top.byDebt":"By debt","fc.top.trips":"{n} {n|trip|trips}","fc.top.noDebt":"No driver owes commission","fc.top.seeAll":"See {n|the driver|all {n} drivers}","fc.flow.title":"Where the money goes","fc.flow.subtitle":"From the fare to the company’s net income","fc.flow.fares":"Fares of {n} {n|trip|trips}","fc.flow.bookingFees":"Booking fees","fc.flow.discounts":"Discounts granted","fc.flow.coupons":"Coupons · {n} {n|trip|trips}","fc.flow.promotions":"Automatic promotions · {n} {n|trip|trips}","fc.flow.collected":"Collected from riders (cash)","fc.flow.driverEarnings":"Driver earnings","fc.flow.companyIncome":"Company income","fc.flow.commission":"Commission","fc.flow.driverCancellationFees":"Charges to drivers for cancelling","fc.flow.cancellationCompensation":"Credited to drivers for rider cancellations","fc.flow.cancellationRecovered":"Cancellation fees collected on later trips","fc.flow.discountReimbursed":"Discounts reimbursed to drivers","fc.flow.netIncome":"Company net income","fc.flow.note":"The company pays for its discounts. The rider hands the driver the discounted fare, the commission is computed on the full fare, and the company credits the discount to the driver’s wallet: the driver earns the same as without a discount and the company’s net income goes down by that amount. Trips closed before this rule carry no such credit and read as they were booked.","fc.queue.title":"Payments to review","fc.queue.subtitle":"Reports waiting for approval: {n} · {amount}","fc.queue.none":"No reports waiting","fc.queue.review":"Review","fc.queue.emptyTitle":"Inbox up to date","fc.queue.emptyDescription":"When a driver reports a payment with its voucher, it will show up here.","fc.queue.noAccount":"No account","fc.pendingFeesNote":"Riders also paid {amount} in cancellation fees from earlier trips. They are not fare and pay no commission.","fc.empty.title":"No charged trips in this period","fc.empty.description":"Try a wider date range or remove the city and category filters.","fc.table.columns":"Columns","fc.table.columnsHint":"Visible columns","fc.table.rows":"Rows","fc.table.showing":"Showing {from}–{to} of {total}","fc.tier.current":"Up to date","fc.tier.late":"Late","fc.tier.overdue":"Overdue","fc.tier.critical":"Critical","fc.aging.title":"Age of the debt","fc.aging.subtitle":"Total receivable today: {amount} · {n} {n|driver|drivers}","fc.aging.hint":"Click a band to filter the table","fc.aging.range.current":"0–7 days","fc.aging.range.late":"8–15 days","fc.aging.range.overdue":"16–30 days","fc.aging.range.critical":"Over 30 days","fc.aging.bucket":"{share} of the balance · {n} {n|driver|drivers} “{tier}”","fc.commissions.kpiGenerated":"Generated in the period","fc.commissions.kpiGeneratedFoot":"Commission {commission} + fees {fees}","fc.commissions.kpiDiscounts":"Discounts to riders","fc.commissions.kpiDiscountsHelp":"What riders did not pay thanks to coupons and promotions. The commission is still computed on the full fare; the company credits the discount to the driver’s wallet, so the balance they owe goes down by that amount.","fc.commissions.kpiDiscountsFoot":"{share} of what was generated","fc.commissions.kpiPaid":"Paid in the period","fc.commissions.kpiPaidFoot":"Approved commission payments","fc.commissions.kpiReceivable":"Receivable today","fc.commissions.kpiReceivableHelp":"The sum of what each driver owes right now: the negative balance of their wallet. It does not depend on the period.","fc.commissions.kpiReceivableFoot":"Payments in review: {amount}","fc.commissions.tableTitle":"Commission status per driver","fc.commissions.tableSubtitle":"Click a row to open the statement of account","fc.commissions.search":"Search driver, phone or plate…","fc.commissions.chipReview":"Payment in review","fc.commissions.colDriver":"Driver","fc.commissions.colDebt":"Balance owed","fc.commissions.colAge":"Age","fc.commissions.colTier":"Status","fc.commissions.colLastPayment":"Last payment","fc.commissions.colGenerated":"Generated","fc.commissions.colPaid":"Paid","fc.commissions.colTrips":"Trips","fc.commissions.colDiscounts":"Discounts","fc.commissions.colContact":"Contact","fc.commissions.inReview":"{amount} in review","fc.commissions.totalRow":"Total · {n} {n|driver|drivers}","fc.commissions.openStatement":"Statement of account of {name}","fc.commissions.emptyTitle":"No commissions in this period","fc.commissions.emptyDescription":"Every driver with charged trips, payments or a balance owed will show up here.","fc.statement.title":"Statement of account","fc.statement.debt":"Balance owed","fc.statement.credit":"Balance in the driver’s favour","fc.statement.settled":"No debt","fc.statement.lastPayment":"Last payment","fc.statement.noPayment":"No payments","fc.statement.inReview":"{amount} reported and waiting for review.","fc.statement.empty":"This wallet has no movements yet.","fc.statement.colDate":"Date","fc.statement.colConcept":"Concept","fc.statement.colCharge":"Charge","fc.statement.colCredit":"Credit","fc.statement.colBalance":"Balance","fc.statement.commissionOne":"Commission of 1 trip","fc.statement.commissionMany":"Commission of {n} trips","fc.statement.partCommission":"{amount} commission","fc.statement.partFees":"{amount} fees collected from the rider","fc.statement.partCancellation":"{amount} for cancelling","fc.statement.partReimbursed":"{amount} of discounts reimbursed","fc.statement.partCredit":"{amount} credited","fc.statement.cancellationCredit":"Compensation for a rider’s cancellation","fc.statement.cancellationCharge":"Charge for cancelling an accepted trip","fc.statement.feesCollected":"Cancellation fee collected in cash","fc.statement.payment":"Commission payment approved","fc.adjust.button":"Adjust balance","fc.adjust.title":"Adjust balance","fc.adjust.description":"A manual credit or charge on the wallet of {name}. It is kept in their statement and in the audit log.","fc.adjust.current":"Current balance","fc.adjust.after":"Balance after the adjustment","fc.adjust.kind":"Kind of adjustment","fc.adjust.credit":"Credit","fc.adjust.creditHint":"In the driver’s favour: lowers what they owe.","fc.adjust.charge":"Charge","fc.adjust.chargeHint":"Against the driver: raises what they owe.","fc.adjust.amount":"Amount","fc.adjust.reason":"Reason","fc.adjust.reasonHint":"Shown as written in the statement and in the audit log.","fc.adjust.reasonPh":"E.g. refund of a duplicated deposit","fc.adjust.zodAmount":"Enter an amount greater than zero.","fc.adjust.zodAmountMax":"The amount cannot exceed {max}.","fc.adjust.zodAmountDecimals":"Use two decimals at most.","fc.adjust.zodReasonMin":"Explain the reason (at least 5 characters).","fc.adjust.zodReasonMax":"The reason cannot exceed 120 characters.","fc.adjust.review":"Review adjustment","fc.adjust.confirmCreditTitle":"Credit {amount} to {name}","fc.adjust.confirmChargeTitle":"Charge {amount} to {name}","fc.adjust.confirmDesc":"Balance: {before} → {after}. Reason: “{reason}”. A booked adjustment is never deleted: to correct it, book the opposite one.","fc.adjust.confirmBtn":"Book adjustment","fc.adjust.balanceOwes":"owes {amount}","fc.adjust.balanceCredit":"{amount} in their favour","fc.adjust.balanceZero":"no debt","fc.adjust.done":"Adjustment booked","fc.adjust.doneDesc":"New balance of {name}: {balance}.","fc.adjust.error":"The adjustment could not be booked","fc.payments.kpiPending":"To review","fc.payments.kpiPendingFoot":"{amount} waiting for approval","fc.payments.kpiApproved":"Approved in the period","fc.payments.kpiApprovedFoot":"{n} {n|payment, with its voucher|payments, each with its voucher}","fc.payments.kpiRejected":"Rejected in the period","fc.payments.kpiRejectedFoot":"{amount} not credited","fc.payments.kpiReviewTime":"Average review time","fc.payments.kpiReviewTimeFoot":"From the driver’s report to the decision","fc.payments.tableTitle":"Payment reports","fc.payments.tableSubtitle":"The ones waiting for review come first · click a row to see the voucher","fc.payments.search":"Search driver or operation no.…","fc.payments.chipPending":"To review","fc.payments.statusPending":"To review","fc.payments.colPayment":"Payment","fc.payments.colReported":"Reported","fc.payments.colDriver":"Driver","fc.payments.colAmount":"Amount","fc.payments.colStatus":"Status","fc.payments.colAccount":"Company account","fc.payments.colOperation":"Operation no.","fc.payments.colReviewed":"Reviewed","fc.payments.review":"Review","fc.payments.view":"View","fc.payments.noneSelected":"Pick a report","fc.payments.noneSelectedDesc":"The voucher the driver uploaded and the payment details will show here.","fc.payments.voucher":"Voucher uploaded by the driver","fc.payments.voucherFile":"The voucher is a file, not an image.","fc.payments.voucherZoom":"Click to enlarge","fc.payments.data":"Payment details","fc.payments.reportedAmount":"Reported amount","fc.payments.driverDebt":"Driver’s balance owed","fc.payments.companyAccount":"Company account","fc.payments.paidAt":"Deposit date","fc.payments.driverNote":"Driver’s note:","fc.payments.matchExact":"The amount matches the driver’s debt","fc.payments.matchPartial":"Partial payment: {amount} will still be owed","fc.payments.matchOver":"Reports {amount} more than is owed: it will stay in their favour","fc.payments.approve":"Approve payment","fc.payments.approvedBy":"Approved on {when} by {who}","fc.payments.rejectedBy":"Rejected on {when} by {who}","fc.payments.someone":"the team","fc.payments.seeStatement":"See the statement of account of {name}","fc.charges.kpiCollected":"Collected from riders","fc.charges.kpiCollectedFoot":"{n} {n|trip|trips} · average ticket {ticket}","fc.charges.kpiGross":"Fares and fees","fc.charges.kpiGrossFoot":"Fares {fares} + booking fees {fees}","fc.charges.kpiDiscounts":"Discounts applied","fc.charges.kpiDiscountsFoot":"{n} discounted {n|trip|trips} ({share})","fc.charges.tableTitle":"Charge ledger","fc.charges.tableSubtitle":"One line per charged trip","fc.charges.cashOnly":"Cash payments","fc.charges.search":"Search rider, driver, trip or coupon…","fc.charges.chipDiscounted":"Discounted","fc.charges.chipCoupon":"Coupon","fc.charges.chipPromo":"Promotion","fc.charges.colDate":"Date","fc.charges.colTrip":"Trip","fc.charges.colRider":"Rider","fc.charges.colDriver":"Driver","fc.charges.colCategory":"Category","fc.charges.colCity":"City","fc.charges.colStatus":"Trip status","fc.charges.colFare":"Fare","fc.charges.colDiscount":"Discount","fc.charges.colCollected":"Collected","fc.charges.colCommission":"Company income","fc.charges.colDriverNet":"Driver net","fc.charges.plusPendingFee":"+ {amount} from an earlier fee","fc.charges.totalTrips":"{n} {n|trip|trips}","fc.discounts.coupons":"Coupons","fc.discounts.promotions":"Automatic promotions","fc.discounts.discountedTrips":"Discounted trips","fc.discounts.kpiDiscount":"Discount granted","fc.discounts.kpiDiscountHelp":"What riders did not pay thanks to coupons and promotions. The company pays for it: of this amount, {amount} has been credited to the wallets of the drivers who made those trips. The difference, if any, is trips closed before the company reimbursed discounts.","fc.discounts.kpiTrips":"Discounted trips","fc.discounts.kpiTripsFoot":"{share} of the {n} {n|trip|trips}","fc.discounts.kpiCost":"Cost per trip","fc.discounts.kpiCostHelp":"Average discount per trip that used a coupon or a promotion.","fc.discounts.kpiCostFoot":"Coupon {coupon} · promotion {promo}","fc.discounts.kpiNet":"Net result","fc.discounts.kpiNetHelp":"Company income on the discounted trips, minus the discount granted, which the company pays: on cash trips it credits it to the driver. Negative: the campaigns cost more than those trips brought in.","fc.discounts.kpiNetFoot":"Income {income} − discount {discount}","fc.discounts.chartTitle":"Discounts over time","fc.discounts.splitTitle":"Coupons vs promotions","fc.discounts.splitSubtitle":"Discount granted by source","fc.discounts.centre":"Discount","fc.discounts.emptyTitle":"No discounts in this period","fc.discounts.emptyDescription":"No charged trip used a coupon or a promotion in these dates.","fc.discounts.campaignsTitle":"Campaigns and rules","fc.discounts.campaignsSubtitle":"Coupons by code and promotions by rule · click a row to see its redemptions","fc.discounts.searchCampaign":"Search code, campaign or rule…","fc.discounts.chipCoupons":"Coupons","fc.discounts.chipRules":"Promotions","fc.discounts.chipActive":"Active","fc.discounts.chipEnded":"Ended","fc.discounts.colCampaign":"Campaign / rule","fc.discounts.colBenefit":"Benefit","fc.discounts.colUses":"Uses","fc.discounts.colDiscount":"Discount granted","fc.discounts.colIncome":"Income generated","fc.discounts.colNet":"Net result","fc.discounts.colCostPerTrip":"Cost per trip","fc.discounts.colState":"Status","fc.discounts.stateActive":"Active","fc.discounts.stateEnded":"Ended","fc.discounts.benefitFree":"Free ride","fc.discounts.benefitCapped":"{benefit} up to {cap}","fc.discounts.benefitAmount":"{amount} off","fc.discounts.ruleFirstTrip":"The rider’s first trip","fc.discounts.ruleEveryNRider":"Every so many trips of the rider","fc.discounts.ruleEveryNDriver":"Every so many trips of the driver","fc.discounts.ruleRemoved":"Rule deleted","fc.discounts.noCampaigns":"No campaigns or rules","fc.discounts.noCampaignsDesc":"Create coupons in Coupons and automatic rules in Promotions.","fc.discounts.redemptionsTitle":"Redemptions","fc.discounts.redemptionsSubtitle":"Every trip that carried a discount","fc.discounts.redemptionsOf":"Trips that used {name}","fc.discounts.searchRedemption":"Search rider, driver or code…","fc.export.deliveries":"Delivery history (CSV)","fc.charges.colReceipt":"Receipt","fc.charges.receiptPending":"Numbering…","fc.charges.kpiReceipts":"Receipts issued","fc.charges.kpiReceiptsHelp":"Every charged trip gets a receipt with a correlative number. The number is assigned once, within a minute of the trip ending, and never changes.","fc.charges.kpiReceiptsFoot":"One per trip · correlative numbering","fc.charges.kpiReceiptsFootFees":"Plus {amount} collected for earlier cancellations","fc.payments.seeVoucher":"See voucher","fc.payments.voucherHint":"Commission payment voucher for the driver: preview, PDF and email.","fc.docs.receipt":"Receipt","fc.docs.voucher":"Commission payment voucher","fc.docs.receiptFor":"For the rider, for every charged trip","fc.docs.voucherFor":"For the driver, for every approved payment","fc.docs.seeExample":"See an example","fc.docs.noReceiptYet":"No receipt has been issued yet.","fc.docs.noVoucherYet":"There is no voucher yet: one is issued when a commission payment is approved.","fc.docs.series":"Series","fc.docs.nextNumber":"Next number","fc.docs.seriesHelp":"Prefix + year + correlative. Numbering restarts every year ({year}) and an issued number never changes.","fc.docs.savePrefix":"Save series","fc.docs.prefixInvalid":"A series takes 1 to 10 letters, digits or hyphens, and starts with a letter or a digit.","fc.docs.prefixDuplicate":"The receipt and the voucher need different series.","fc.docs.settingsSaved":"Changes saved","fc.docs.settingsFailed":"The changes could not be saved","fc.docs.autoReceipt":"Send when the trip ends","fc.docs.autoReceiptDesc":"The rider gets the receipt by email, PDF attached, if their account has an address.","fc.docs.autoVoucher":"Send when the payment is approved","fc.docs.autoVoucherDesc":"The driver gets the voucher by email, PDF attached, as soon as their payment is approved.","fc.docs.autoNeedsMail":"It is on, but nothing will go out until the outgoing email is configured.","fc.docs.notFiscal":"Informational document. It does not replace a tax document.","fc.docs.mailNotReady":"The outgoing email is not configured: documents cannot be sent.","fc.docs.openMailSettings":"Go to Settings → Email","fc.docs.kpiAttempts":"Sends · last 7 days","fc.docs.kpiAttemptsFoot":"Receipts and vouchers","fc.docs.kpiSent":"Sent","fc.docs.kpiSentHelp":"The mail provider accepted the message. Email does not report whether it reached the inbox, so that is not claimed here.","fc.docs.kpiShare":"{share} of the sends","fc.docs.kpiFailed":"Failed","fc.docs.kpiFailedFoot":"The provider refused the message","fc.docs.kpiAutomatic":"Automatic sends","fc.docs.kpiAutomaticFoot":"{share} without the team stepping in","fc.docs.historyTitle":"Delivery history","fc.docs.historySubtitle":"Who got which document, when, and whether the mail provider accepted it","fc.docs.historyEmptyTitle":"No document has been sent yet","fc.docs.historyEmptyDescription":"Send a receipt from Rider charges or a voucher from Commission payments, or turn on automatic sending.","fc.docs.search":"Search number, recipient or email…","fc.docs.chipReceipts":"Receipts","fc.docs.chipVouchers":"Vouchers","fc.docs.chipFailed":"Failed","fc.docs.colSent":"Sent","fc.docs.colDocument":"Document","fc.docs.colRecipient":"Recipient","fc.docs.colStatus":"Status","fc.docs.colSender":"Sent by","fc.docs.status.SENT":"Sent","fc.docs.status.FAILED":"Failed","fc.docs.status.SKIPPED":"Skipped","fc.docs.automatic":"Automatic send","fc.docs.reasonNoEmail":"The account has no email","fc.docs.open":"Open {number}","fc.docs.resend":"Send {number} again","fc.docs.view":"Preview","fc.docs.previewOfRider":"PDF preview · rider {name}","fc.docs.previewOfDriver":"PDF preview · driver {name}","fc.docs.previewFailed":"The document could not be loaded","fc.docs.voucherNeedsApproval":"Only an approved payment has a voucher. A pending or rejected payment takes no number.","fc.docs.receiptNotChargeable":"Only a charged trip has a numbered receipt.","fc.docs.document":"Document","fc.docs.download":"Download PDF","fc.docs.print":"Print","fc.docs.issuedAt":"Issued on {when}","fc.docs.sendByEmail":"Send by email","fc.docs.to":"To","fc.docs.toPlaceholder":"name@example.com","fc.docs.noEmailOnFile":"This account has no email on file. Type the address you want to send it to.","fc.docs.send":"Send by email","fc.docs.attached":"The PDF is attached to the message.","fc.docs.sentTo":"Sent to {email}","fc.docs.notSent":"It was not sent.","fc.docs.sendFailed":"The document could not be sent","fc.docs.emailInvalid":"Enter a valid email address","fc.docs.history":"Delivery history","fc.docs.neverSent":"This document has not been sent yet."}