noSubscriptionNotice:'This organization does not have an active subscription yet.',
choosePlanLink:'Choose a plan',
noSubscriptionCta:'to start the purchase process.',
cardTodaysAppointments:"Today's Appointments",
cardActivePatients:'Active Patients',
cardNewLabCase:'New Lab Case',
cardTodayInvoices:'Today invoices',
},
staff:{
redirecting:'Redirecting…',
title:'Staff Management',
subtitle:'Invite teammates, set tab access, and stay within your plan seat limit.',
inviteMember:'Invite member',
seatsLabel:'Seats:',
unlimitedPlan:'(unlimited plan)',
seatLimitReached:'Plan seat limit reached for this organization.',
noActivePlan:
'No active plan selected for this organization. Choose a subscription plan to invite members.',
invitedPending:
'Invitation is pending until they open the link, set a password, and log in.',
invitedAccepted:'Invitation was accepted immediately.',
inviteLinkHeading:'Invite link',
shareLinkHint:
'Share this link manually via SMS or email. A new link is generated if the previous one expired or was lost.',
loadingTeam:'Loading team…',
tableName:'Name',
tableEmail:'Email',
tableRole:'Role',
tableStatus:'Status',
tableAccess:'Access',
tableAction:'Action',
roleOwner:'Owner',
roleStaff:'Staff',
statusActive:'Active',
statusPending:'Pending',
statusDisabled:'Disabled',
statusExpired:'Expired',
allFeatures:'All features',
inviteModalTitle:'Invite team member',
stepOf:'Step {step} of 2',
permissionView:'View',
permissionEdit:'Edit',
labelEmail:'Email',
labelDisplayName:'Display name',
tabAccess:'Tab access',
sendInvite:'Send invite',
skipForNow:'Skip for now',
enableModalTitle:'Enable team member',
enableConfirm:'Enable {name} ({email})?',
enableBullet1:'They can sign in to this organization again with their existing account.',
enableBullet2:'No new invitation is sent and no data was removed while they were disabled.',
enableBullet3:'Enabling uses one seat on your plan.',
noSeatsAvailable:
'No seats are available. Disable another member or upgrade your plan before enabling this person.',
enableMemberButton:'Enable member',
disableModalTitle:'Disable team member',
disableConfirm:'Disable {name} ({email})?',
disableBullet1:'They will not be able to sign in to this organization.',
disableBullet2:'No data will be removed.',
disableBullet3:'Disabling frees one seat on your plan so you can invite someone else.',
disableMemberButton:'Disable member',
editModalTitle:'Edit member',
loadingWorkingHours:'Loading working hours…',
errorLoadStaff:'Failed to load staff.',
errorCopyInvite:'Could not copy invitation link.',
errorSendInvite:'Failed to send invitation.',
errorLoadWorkingHours:'Failed to load working hours.',
successMemberUpdated:'Member updated.',
errorUpdateMember:'Failed to update member.',
errorDeleteNotImplemented:'Delete is not implemented yet.',
successMemberDisabled:'{name} was disabled. A seat is now available.',
errorDisableMember:'Failed to disable member.',
successMemberEnabled:'{name} was enabled and can sign in again.',
errorEnableMember:'Failed to enable member.',
successInvited:'{name} ({email}) was invited.',
copyInviteLink:'Copy invitation link',
copyInviteLinkTitle:'Copy invitation link (generates a new link if needed)',
enableMemberAria:'Enable member',
enableMemberTitle:'Enable member (uses a seat)',
disableMemberAria:'Disable member',
disableMemberTitle:'Disable member (frees a seat)',
editMemberAria:'Edit member',
deleteMemberAria:'Delete member',
deleteMemberTitle:'Delete member (not implemented)',
features:{
featureToday:'Today',
featureStaff:'Staff',
featureOrganizations:'Organizations',
featureClinics:'Clinics',
featureLabs:'Labs',
featurePatients:'Patients',
featureAppointment:'Appointment',
featureTreatment:'Treatment',
featureBilling:'Billing',
featureReports:'Reports',
noTabAccess:'No tab access',
readOnlySuffix:'(Read only)',
},
workingHours:{
recommendedTitle:'Working hours recommended',
recommendedBody:
'Staff with treatment edit access appear as provider columns in Appointments. Set their weekly hours so the schedule grid shows the right bookable times.',
intro:
'Set weekly working hours for this provider. The appointments grid uses these hours to show bookable time slots.',
workingDay:'Working day',
start:'Start',
end:'End',
removeShift:'Remove shift',
addShift:'Add shift',
autoRepeatWeekly:'Repeat these hours at the start of each week (copy forward on Monday)',
weekdayMon:'Mon',
weekdayTue:'Tue',
weekdayWed:'Wed',
weekdayThu:'Thu',
weekdayFri:'Fri',
weekdaySat:'Sat',
weekdaySun:'Sun',
validationNeedsShift:'{day} needs at least one shift or should be marked off.',
validationEndAfterStart:'{day} shift end time must be after start time.',
validationOverlap:'{day} shifts cannot overlap.',
},
},
patients:{
title:'Patients',
newPatient:'New Patient',
errorLoadPatients:'Failed to load patients.',
successPatientSaved:'Patient {firstName} {lastName} was saved successfully.',
errorSavePatient:'Failed to save patient.',
firstName:'First name',
lastName:'Last name',
phone:'Phone',
savePatient:'Save Patient',
dialogTitle:'New patient',
searchPlaceholder:'Search patients by name, phone, email',
loadingPatients:'Loading patients...',
noResults:'No patients found for this search.',
noContact:'No contact',
selectPatient:'Select a patient to view details.',
phoneLabel:'Phone:',
emailLabel:'Email:',
statusLabel:'Status:',
statusActive:'Active',
statusInactive:'Inactive',
emptyValue:'-',
},
appointments:{
title:'Appointments',
subtitle:'Search a patient, pick a date, then click a time slot under a provider to book.',
loadingSchedule:'Loading schedule…',
infoPastViewOnly:'Past appointments are view-only.',
infoSelectPatient:'Select a patient before booking.',
errorOutsideHours:
"This appointment falls outside the provider's current working hours and cannot be edited.",
successUpdated:'Appointment updated.',
successSaved:'Appointment saved.',
errorUpdate:'Could not update appointment.',
errorSave:'Could not save appointment.',
confirmRemove:'Remove this appointment?',
successRemoved:'Appointment removed.',
errorDelete:'Could not delete appointment.',
errorLoadSchedule:'Failed to load schedule.',
successPatientSaved:'Patient {firstName} {lastName} was saved.',
searchPlaceholder:'Search existing patients',
searching:'Searching…',
searchHint:'Type to search patients by name, phone, or email.',
noPermissionAdd:'You do not have permission to add patients.',
editTitle:'Edit appointment',
newTitle:'New appointment',
providerLabel:'Provider:',
patientLabel:'Patient',
startLabel:'Start',
endLabel:'End',
purposeLabel:'Purpose',
errorSelectPatient:'Select a patient first.',
errorEndAfterStart:'End time must be after start time.',
errorPastSchedule:'Cannot schedule in the past.',
errorPastViewOnly:'Past appointments are view-only.',