mirror of
https://github.com/open-reception/appointment-booking-software.git
synced 2026-08-17 21:25:52 +02:00
1159 lines
35 KiB
JSON
1159 lines
35 KiB
JSON
{
|
||
"$schema": "https://inlang.com/schema/inlang-message-format",
|
||
"welcome": "Welcome to OpenReception",
|
||
"home": "Home",
|
||
"poweredBy": "Powered by",
|
||
"i18n": {
|
||
"label": "Select Language",
|
||
"search": "Search Language",
|
||
"notFound": "Language not found"
|
||
},
|
||
"setup": {
|
||
"start": "Start configuration",
|
||
"create_admin_account": {
|
||
"title": "Create Admin Account",
|
||
"description": "We’ll start by adding your admin account. It will be used to manage this instance.",
|
||
"action": "Send Verification E-Mail",
|
||
"success": "Account created!",
|
||
"error": "An unknown error occured."
|
||
},
|
||
"verify_email": {
|
||
"title": "Check your E-Mail",
|
||
"description": "We’ve send you a magic link to {email}",
|
||
"action": "Resend E-Mail",
|
||
"success": "E-Mail was resent"
|
||
},
|
||
"confirm": {
|
||
"claim": {
|
||
"title": "Claim your account",
|
||
"description": "Click to claim your new account",
|
||
"action": "Claim account"
|
||
},
|
||
"success": {
|
||
"title": "Good job!",
|
||
"description": "You’ve secured this instance.",
|
||
"hint": "Next step is setting up a tenant to collect appointments",
|
||
"action": "Add first Tenant"
|
||
},
|
||
"error": {
|
||
"title": "Verification failed",
|
||
"description": "The magic link you’ve tried is incorrect or outdated"
|
||
}
|
||
}
|
||
},
|
||
"setupPasskey": {
|
||
"title": "Setup Passkey",
|
||
"description": "Create your passkey to secure your account.",
|
||
"action": "Set Passkey",
|
||
"success": "Passkey set. Login with it now.",
|
||
"successKeyPairSaved": "Key pair saved successfully.",
|
||
"confirmPrfRetrival": "Now use your newly created passkey to enable encryption with it.",
|
||
"error": "Passkey could not be set",
|
||
"errorKeyPairDataMissing": "Could not generate key pair. Missing data.",
|
||
"errorKeyPairNotSaved": "Key pair could not be saved.",
|
||
"errorPrfOutputNotTriggered": "You have to confirm using the passkey.",
|
||
"errorAuthenticatorNotSupported": "This authenticator does not support the required security extension (PRF). Please use a modern authenticator like YubiKey 5.2.3+, Apple Touch ID or Android.",
|
||
"errorGettingPrfOutput": "Failed to retrieve security data from passkey. Please use a modern authenticator that supports PRF extension."
|
||
},
|
||
"slogan": "End-to-End encrypted appointment booking platform.",
|
||
"logo": "OpenReception Logo: A 3D pixel art with calendar that's also a lock",
|
||
"form": {
|
||
"email": "E-Mail Address",
|
||
"passphrase": "Passphrase",
|
||
"passphraseRequirements": "At least 30 characters.",
|
||
"errors": {
|
||
"email": "Invalid format",
|
||
"passphrase": "Must be at least 30 characters long",
|
||
"noPassAtAll": "Either passphrase or passkey is required",
|
||
"bothPassSet": "Only one of passphrase or passkey should be provided",
|
||
"name": "Must be at least 2 characters",
|
||
"shortname": "Must be between 4 and 15 characters",
|
||
"longname": "Add a name",
|
||
"deleteConfirmation": "Must be exactly »{expectedValue}«",
|
||
"noAgentsSelected": "Select an agent",
|
||
"noStartDate": "Start date is required",
|
||
"noEndDate": "End date is required",
|
||
"endDateBeforeStartDate": "End date must be after start date",
|
||
"endDateTooEarly": "End date must be in the future",
|
||
"noWeekdaysSelected": "Select at least one weekday",
|
||
"fromAfterTo": "»From« time must be before »To« time",
|
||
"street": "Add a street",
|
||
"houseNo": "Required",
|
||
"zip": "Add a zip code",
|
||
"city": "Add a city",
|
||
"url": "Invalid URL Format",
|
||
"languages": "Select at least one language",
|
||
"language": "Select a default language",
|
||
"deleteAfterDays": "Choose a point in time",
|
||
"phoneNoRequired": "Phone number is required",
|
||
"phoneNoInvalid": "Phone number format is invalid",
|
||
"pinLength": "PIN must be 6 digits",
|
||
"pinDigitsOnly": "PIN must contain only digits",
|
||
"pinInsecure": "This PIN is too insecure"
|
||
},
|
||
"noPassAtAll": "Either passphrase or passkey is required",
|
||
"passkey": "Passkey",
|
||
"salutation": "Salutation",
|
||
"name": "Name",
|
||
"domain": "Domain",
|
||
"phone": "Phone Number",
|
||
"pin": "PIN",
|
||
"pinHint": "Save your PIN in a secure place, like a password-manager.",
|
||
"locale": "Language",
|
||
"localePlaceholder": "Select Language"
|
||
},
|
||
"login": {
|
||
"or": "Or",
|
||
"usePasskey": "use passkey",
|
||
"usePassphrase": "use passphrase",
|
||
"orUse": "Or {button}",
|
||
"title": "Login",
|
||
"description_passphrase": "Enter your email and passphrase below to access your account.",
|
||
"action": "Login",
|
||
"error": "Login failed. Please retry",
|
||
"passphrase": {
|
||
"initial": "Requesting passkey",
|
||
"success": "Passkey saved",
|
||
"error": "Passkey could not be retrieved"
|
||
}
|
||
},
|
||
"confirm": {
|
||
"success": {
|
||
"title": "E-Mail address confirmed!",
|
||
"description": "Now you just need to setup a passkey.",
|
||
"action": "Setup Passkey"
|
||
},
|
||
"error": {
|
||
"title": "Verification failed",
|
||
"description": "The magic link you’ve tried is incorrect or outdated",
|
||
"action": "Request new E-Mail"
|
||
},
|
||
"title": "E-Mail verification",
|
||
"resend": {
|
||
"title": "Resend Verification E-Mail",
|
||
"description": "Enter your e-mail address to get the verification link again.",
|
||
"action": "Resend E-Mail",
|
||
"success": "E-Mail sent"
|
||
}
|
||
},
|
||
"logout": {
|
||
"title": "Logout",
|
||
"success": {
|
||
"title": "You are logged out.",
|
||
"description": "You are logged-out."
|
||
},
|
||
"error": {
|
||
"title": "Logout failed",
|
||
"description": "You could not be logged out."
|
||
},
|
||
"retry": "Retry",
|
||
"action": "Go to Login"
|
||
},
|
||
"passkey": {
|
||
"add": {
|
||
"initial": "Waiting for E-Mail Address",
|
||
"click": "Click/Tap to add passkey",
|
||
"loading": "Completing challenge",
|
||
"user": "Waiting for creation to complete",
|
||
"success": "Added Passkey successfully",
|
||
"error": "Passkey could not be added",
|
||
"retry": "Retry"
|
||
}
|
||
},
|
||
"nav": {
|
||
"home": "Home",
|
||
"tenants": "Tenants",
|
||
"calendar": "Calendar",
|
||
"staff": "Staff",
|
||
"agents": "Agents",
|
||
"channels": "Channels",
|
||
"absences": "Absences",
|
||
"account": "Account",
|
||
"settings": "Settings",
|
||
"documentation": "Documentation",
|
||
"addTenant": "Add tenant",
|
||
"noTenantSelected": {
|
||
"title": "No tenant selected",
|
||
"description": "Click to configure"
|
||
},
|
||
"logout": "Log out",
|
||
"toggleSidebar": "Toggle sidebar"
|
||
},
|
||
"tenants": {
|
||
"title": "Tenants",
|
||
"empty": {
|
||
"title": "No tenants yet",
|
||
"description": "Create a site for someone to start collecting appointments."
|
||
},
|
||
"add": {
|
||
"title": "Add Tenant",
|
||
"description": "Create a site for someone to start collecting appointments.",
|
||
"name": {
|
||
"description": "Must be unique on this server. Cannot be changed.",
|
||
"errors": {
|
||
"startEndDash": "Must not start or end with a dash"
|
||
}
|
||
},
|
||
"domain": {
|
||
"description": "Must be unique on this server.",
|
||
"errors": {
|
||
"urlFormat": "Not a valid domain format. Note: Do not include https://"
|
||
}
|
||
},
|
||
"invite": {
|
||
"title": "Invite a tenant admin"
|
||
},
|
||
"email": {
|
||
"description": "This person will receive a magic link to set up their account."
|
||
},
|
||
"action": "Add Tenant",
|
||
"success": "Tenant added",
|
||
"errors": {
|
||
"nameTaken": "Could not add tenant. This name is already taken.",
|
||
"unknown": "Could not add tenant",
|
||
"emailTaken": "Could not add tenant. This E-Mail Address is already in use.",
|
||
"startEndDash": "Cannot start or end with a dash"
|
||
}
|
||
},
|
||
"list": {
|
||
"empty": {
|
||
"title": "No tenants yet",
|
||
"description": "Click the button above to add your first tenant."
|
||
},
|
||
"manage": "Manage",
|
||
"view": "View"
|
||
},
|
||
"delete": {
|
||
"title": "Delete Tenant",
|
||
"description": "Type {name} to confirm.",
|
||
"action": "Delete Tenant",
|
||
"success": "Tenant deleted",
|
||
"error": "Could not delete tenant.",
|
||
"unavailable": {
|
||
"title": "Cannot delete active tenant",
|
||
"description": "You cannot delete the tenant you are currently configuring. Please switch to another tenant before deleting this one."
|
||
}
|
||
},
|
||
"loading": "Loading tenants",
|
||
"allTenants": "All tenants",
|
||
"unselectTenant": "Unselect tenant",
|
||
"failedToSwitch": "Failed to switch tenant",
|
||
"edit": {
|
||
"title": "Edit Tenant",
|
||
"description": "Update the tenant's domain.",
|
||
"success": "Tenant updated",
|
||
"error": "Could not update tenant.",
|
||
"action": "Edit Tenant"
|
||
}
|
||
},
|
||
"components": {
|
||
"openMenu": "Open menu",
|
||
"inputCroppedImageBlob": {
|
||
"trigger": "Upload Image",
|
||
"description": "Supported formats are JPG, PNG, GIF and WEBP",
|
||
"remove": "Remove Image",
|
||
"crop": {
|
||
"title": "Crop Image",
|
||
"description": "Use your mouse to change the selection or the buttons below to adjust the image.",
|
||
"zoomIn": "Zoom In",
|
||
"zoomOut": "Zoom Out",
|
||
"moveLeft": "Move Left",
|
||
"moveRight": "Move Right",
|
||
"moveUp": "Move Up",
|
||
"moveDown": "Move Down",
|
||
"cancel": "Cancel",
|
||
"apply": "Apply"
|
||
}
|
||
},
|
||
"slotTemplate": {
|
||
"empty_weekdays": "Select weekdays",
|
||
"weekdays_long": {
|
||
"monday": "Monday",
|
||
"tuesday": "Tuesday",
|
||
"wednesday": "Wednesday",
|
||
"thursday": "Thursday",
|
||
"friday": "Friday",
|
||
"saturday": "Saturday",
|
||
"sunday": "Sunday"
|
||
},
|
||
"weekdays_short": {
|
||
"monday": "Mon",
|
||
"tuesday": "Tue",
|
||
"wednesday": "Wed",
|
||
"thursday": "Thu",
|
||
"friday": "Fri",
|
||
"saturday": "Sat",
|
||
"sunday": "Sun"
|
||
},
|
||
"times": {
|
||
"0500": "5:00 AM",
|
||
"0515": "5:15 AM",
|
||
"0530": "5:30 AM",
|
||
"0545": "5:45 AM",
|
||
"0600": "6:00 AM",
|
||
"0615": "6:15 AM",
|
||
"0630": "6:30 AM",
|
||
"0645": "6:45 AM",
|
||
"0700": "7:00 AM",
|
||
"0715": "7:15 AM",
|
||
"0730": "7:30 AM",
|
||
"0745": "7:45 AM",
|
||
"0800": "8:00 AM",
|
||
"0815": "8:15 AM",
|
||
"0830": "8:30 AM",
|
||
"0845": "8:45 AM",
|
||
"0900": "9:00 AM",
|
||
"0915": "9:15 AM",
|
||
"0930": "9:30 AM",
|
||
"0945": "9:45 AM",
|
||
"1000": "10:00 AM",
|
||
"1015": "10:15 AM",
|
||
"1030": "10:30 AM",
|
||
"1045": "10:45 AM",
|
||
"1100": "11:00 AM",
|
||
"1115": "11:15 AM",
|
||
"1130": "11:30 AM",
|
||
"1145": "11:45 AM",
|
||
"1200": "12:00 PM",
|
||
"1215": "12:15 PM",
|
||
"1230": "12:30 PM",
|
||
"1245": "12:45 PM",
|
||
"1300": "1:00 PM",
|
||
"1315": "1:15 PM",
|
||
"1330": "1:30 PM",
|
||
"1345": "1:45 PM",
|
||
"1400": "2:00 PM",
|
||
"1415": "2:15 PM",
|
||
"1430": "2:30 PM",
|
||
"1445": "2:45 PM",
|
||
"1500": "3:00 PM",
|
||
"1515": "3:15 PM",
|
||
"1530": "3:30 PM",
|
||
"1545": "3:45 PM",
|
||
"1600": "4:00 PM",
|
||
"1615": "4:15 PM",
|
||
"1630": "4:30 PM",
|
||
"1645": "4:45 PM",
|
||
"1700": "5:00 PM",
|
||
"1715": "5:15 PM",
|
||
"1730": "5:30 PM",
|
||
"1745": "5:45 PM",
|
||
"1800": "6:00 PM",
|
||
"1815": "6:15 PM",
|
||
"1830": "6:30 PM",
|
||
"1845": "6:45 PM",
|
||
"1900": "7:00 PM",
|
||
"1915": "7:15 PM",
|
||
"1930": "7:30 PM",
|
||
"1945": "7:45 PM",
|
||
"2000": "8:00 PM",
|
||
"2015": "8:15 PM",
|
||
"2030": "8:30 PM",
|
||
"2045": "8:45 PM",
|
||
"2100": "9:00 PM",
|
||
"2115": "9:15 PM",
|
||
"2130": "9:30 PM",
|
||
"2145": "9:45 PM",
|
||
"2200": "10:00 PM"
|
||
},
|
||
"empty_duration": "Select duration",
|
||
"template": "Template {no}",
|
||
"remove": "Remove teamplate {no}",
|
||
"from": "From",
|
||
"to": "To",
|
||
"duration": "Duration",
|
||
"every_n_minutes": "every {minutes} minutes",
|
||
"add_template": "Add Template",
|
||
"weekdays": "Weekdays"
|
||
}
|
||
},
|
||
"cancel": "Cancel",
|
||
"actions": "Actions",
|
||
"edit": "Edit",
|
||
"pause": "Deactivate",
|
||
"delete": "Delete",
|
||
"select": "Select",
|
||
"dashboard": {
|
||
"title": "Dashboard",
|
||
"hello": "Hello",
|
||
"tenants": {
|
||
"currentTenant": "You are currently managing tenant {name}.",
|
||
"setup": {
|
||
"title": "This server is ready to use",
|
||
"sections": {
|
||
"tenants": {
|
||
"title": "Setup first tenant",
|
||
"description": "Tenants are the organizations/individuals that will collect appointments.",
|
||
"action": "Add first Tenant"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"sidebar": {
|
||
"title": "Zum ersten Mal hier?",
|
||
"description": "Tippe {name} um die Seitenleiste umzustellen"
|
||
},
|
||
"onboarding": {
|
||
"title": "Get ready to collect appointments",
|
||
"description": "Follow this step-by-step to get the best results:",
|
||
"notification": {
|
||
"ongoing": {
|
||
"title": "Onboarding not complete",
|
||
"description": "Review next steps",
|
||
"action": "Proceed"
|
||
},
|
||
"done": {
|
||
"title": "Onboarding complete!",
|
||
"description": "You can now collect appointments",
|
||
"action": "Open Homepage"
|
||
}
|
||
},
|
||
"sections": {
|
||
"settings": {
|
||
"title": "Review and save settings",
|
||
"description": "Make sure your organization's details are correct, before you add agents or channels.",
|
||
"action": "Go to Settings"
|
||
},
|
||
"agents": {
|
||
"title": "Set up your agents",
|
||
"description": "Agents let your clients choose which person, team or group they want to make an appointment with.",
|
||
"action": "Add Agent"
|
||
},
|
||
"channels": {
|
||
"title": "Set up your first channel",
|
||
"description": "Channels are your way to collect different types of appointments",
|
||
"action": "Add channel"
|
||
},
|
||
"staff": {
|
||
"title": "Add & Activate Staff Members",
|
||
"description": "Make sure your team can decrypt appointment data by adding staff members. Only when the first person added has logged in, appointments can be received.",
|
||
"action": "Add Staff Member"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"close": "Close",
|
||
"agents": {
|
||
"title": "Agents",
|
||
"empty": {
|
||
"title": "No agents yet",
|
||
"description": "Agents are required participants in appointments."
|
||
},
|
||
"add": {
|
||
"title": "Add Agent",
|
||
"description": "Agents can be people, teams or working groups. This information is public.",
|
||
"fields": {
|
||
"name": {
|
||
"title": "Name",
|
||
"errors": {
|
||
"length": "Must be between 2 and 50 characters"
|
||
}
|
||
},
|
||
"description": {
|
||
"title": "Description (optinal)",
|
||
"description": "Can be titles, roles or other information that will help clients to choose the right agent."
|
||
},
|
||
"image": {
|
||
"title": "Image (optional)"
|
||
}
|
||
},
|
||
"action": "Add Agent",
|
||
"success": "Agent added",
|
||
"errors": {
|
||
"unknown": "Could not add agent"
|
||
}
|
||
},
|
||
"list": {
|
||
"empty": {
|
||
"title": "No agents yet",
|
||
"description": "Agents are required participants in appointments."
|
||
}
|
||
},
|
||
"delete": {
|
||
"title": "Delete Agent",
|
||
"description": "Type {name} to confirm.",
|
||
"action": "Delete Agent",
|
||
"success": "Agent deleted",
|
||
"error": "Could not delete agent."
|
||
},
|
||
"loading": "Loading agents",
|
||
"edit": {
|
||
"title": "Edit Agent",
|
||
"description": "Update the agent's public details.",
|
||
"success": "Agent updated",
|
||
"error": "Could not update agent.",
|
||
"action": "Edit Agent"
|
||
}
|
||
},
|
||
"locales": {
|
||
"en": "English",
|
||
"de": "German"
|
||
},
|
||
"staff": {
|
||
"title": "Staff",
|
||
"empty": {
|
||
"title": "No staff members yet",
|
||
"description": "Staff members manage your appointments"
|
||
}
|
||
},
|
||
"channels": {
|
||
"title": "Channels",
|
||
"empty": {
|
||
"title": "No channels yet",
|
||
"description": "Channels are your way to collect different types of appointments"
|
||
},
|
||
"add": {
|
||
"title": "Add Channel",
|
||
"description": "Channels are your way to collect different types of appointments",
|
||
"fields": {
|
||
"name": {
|
||
"title": "Name",
|
||
"errors": {
|
||
"length": "Must be between 1 and 100 characters"
|
||
}
|
||
},
|
||
"description": {
|
||
"title": "Description (optional)"
|
||
},
|
||
"agents": {
|
||
"title": "Agents",
|
||
"description": "Add agents and we will manage the calendar and availability of your agents.",
|
||
"placeholder": "Select agents"
|
||
},
|
||
"staff": {
|
||
"title": "Staff",
|
||
"description": "These staff members will get notifications about appointment changes in this channel.",
|
||
"placeholder": "Select staff members"
|
||
},
|
||
"isPublic": {
|
||
"title": "Public",
|
||
"label": "Anyone can book an appointment"
|
||
},
|
||
"requiresConfirmation": {
|
||
"title": "Requires Confirmation",
|
||
"label": "Appointments will have to be manually confirmed by staff"
|
||
},
|
||
"slotTemplates": {
|
||
"title": "Schedule",
|
||
"description": "Slots for appointments will be created based on your schedule."
|
||
}
|
||
},
|
||
"action": "Add Channel",
|
||
"success": "Channel added",
|
||
"errors": {
|
||
"unknown": "Could not add channel"
|
||
}
|
||
},
|
||
"list": {
|
||
"empty": {
|
||
"title": "No channels yet",
|
||
"description": "Channels are your way to collect different types of appointments"
|
||
},
|
||
"badges": {
|
||
"paused": "deactivated"
|
||
}
|
||
},
|
||
"delete": {
|
||
"title": "Delete Channel",
|
||
"description": "Consider deactivating the channel instead of deleting it. Type {name} to confirm.",
|
||
"action": "Delete Channel",
|
||
"success": "Channel deleted",
|
||
"error": "Could not delete channel."
|
||
},
|
||
"loading": "Loading channels",
|
||
"edit": {
|
||
"title": "Edit Channel",
|
||
"description": "Update the channels public details.",
|
||
"success": "Channel updated",
|
||
"error": "Could not update channel.",
|
||
"action": "Edit Channel"
|
||
},
|
||
"pause": {
|
||
"title": "Deactivate Channel",
|
||
"description": "Deactivating {name} will prevent clients from booking new appointments in this channel.",
|
||
"action": "Deactivate Channel",
|
||
"success": "Channel deactivated",
|
||
"error": "Could not deactivate channel."
|
||
},
|
||
"unpause": {
|
||
"title": "Activate Channel",
|
||
"description": "Activating {name} will allow clients to book new appointments in this channel.",
|
||
"action": "Activate Channel",
|
||
"success": "Channel activated",
|
||
"error": "Could not activate channel."
|
||
}
|
||
},
|
||
"unpause": "Activate",
|
||
"errorPages": {
|
||
"title": "Something went wrong",
|
||
"descriptions": {
|
||
"500": "An unexpected error occurred. Please try again later.",
|
||
"404": "The page you are looking for does not exist."
|
||
},
|
||
"action": "Go to Homepage"
|
||
},
|
||
"absences": {
|
||
"title": "Absences",
|
||
"add": {
|
||
"title": "Add Absence",
|
||
"description": "Absences are a way to mark you agents as being unavailbale.",
|
||
"fields": {
|
||
"type": {
|
||
"title": "Type of Absence"
|
||
},
|
||
"agent": {
|
||
"title": "Agent",
|
||
"placeholder": "Select agent"
|
||
},
|
||
"absenceType": {
|
||
"title": "Reason (internal)",
|
||
"placeholder": "Select a reason"
|
||
},
|
||
"isAllDay": {
|
||
"label": "All day"
|
||
},
|
||
"startDate": {
|
||
"title": "From Date"
|
||
},
|
||
"endDate": {
|
||
"title": "To Date"
|
||
}
|
||
},
|
||
"hint": "Clients are not being informed. Already booked appointments have to be canceled manually.",
|
||
"action": "Add Absence",
|
||
"success": "Absence added",
|
||
"errors": {
|
||
"conflict": "Agent is already (partially) absent in this time period",
|
||
"unknown": "Could not add absence"
|
||
},
|
||
"unavailable": {
|
||
"title": "No agents available",
|
||
"description": "You need to add at least one agent before you can add absences."
|
||
}
|
||
},
|
||
"list": {
|
||
"empty": {
|
||
"title": "No future absences",
|
||
"description": "Absences are a way to mark you agents as being unavailbale."
|
||
}
|
||
},
|
||
"edit": {
|
||
"title": "Edit Absence",
|
||
"description": "Update the agents availability.",
|
||
"success": "Absence updated",
|
||
"errors": {
|
||
"conflict": "Agent is already (partially) absent in this time period",
|
||
"unknown": "Could not update absence"
|
||
},
|
||
"action": "Edit Absence"
|
||
},
|
||
"delete": {
|
||
"title": "Delete Absence",
|
||
"description": "{name} will be available for appointments again in this timespan: {timespan}.",
|
||
"description_fallback": "This agent",
|
||
"action": "Delete Absence",
|
||
"success": "Absence deleted",
|
||
"error": "Could not delete absence."
|
||
},
|
||
"loading": "Loading absences",
|
||
"reasons": {
|
||
"holiday": "Public Holiday",
|
||
"vacation": "Vacation",
|
||
"sick": "Sick Leave",
|
||
"education": "Training/Education",
|
||
"off.site": "Off-Site",
|
||
"other": "Other"
|
||
},
|
||
"types": {
|
||
"ONE_TIME": {
|
||
"title": "One-Time",
|
||
"description": "for vacation etc."
|
||
},
|
||
"REGULAR": {
|
||
"title": "Regular",
|
||
"description": "every week"
|
||
}
|
||
}
|
||
},
|
||
"settings": {
|
||
"title": "Settings",
|
||
"loading": "Loading settings...",
|
||
"form": {
|
||
"sections": {
|
||
"general": "General",
|
||
"address": "Address",
|
||
"links": "Links",
|
||
"advanced": "Advanced"
|
||
},
|
||
"fields": {
|
||
"languages": {
|
||
"title": "Languages",
|
||
"description": "Define the languages your customers will see. You need to select at least one.",
|
||
"placeholder": "Select languages"
|
||
},
|
||
"defaultLanguage": {
|
||
"title": "Default Language",
|
||
"description": "This is the language your clients will see, if you don't support their language. Often times this should be English.",
|
||
"placeholder": "Select default language",
|
||
"errors": {
|
||
"notInLanguages": "Default language must be one of the selected languages"
|
||
}
|
||
},
|
||
"longName": {
|
||
"title": "Name",
|
||
"description": "Public name of your organization."
|
||
},
|
||
"logo": {
|
||
"title": "Logo (optional)"
|
||
},
|
||
"descriptions": {
|
||
"title": "Description (optional)",
|
||
"description": "Short description of your organization. Will be shown on the home page."
|
||
},
|
||
"street": {
|
||
"title": "Street"
|
||
},
|
||
"number": {
|
||
"title": "No."
|
||
},
|
||
"additionalAddressInfo": {
|
||
"title": "Additional Address Info (optional)",
|
||
"description": "Apartment, suite, unit, building, floor, etc."
|
||
},
|
||
"zip": {
|
||
"title": "ZIP Code"
|
||
},
|
||
"city": {
|
||
"title": "City"
|
||
},
|
||
"website": {
|
||
"title": "Website (optional)",
|
||
"description": "Will be shown on the home page."
|
||
},
|
||
"imprint": {
|
||
"title": "Imprint URL (optional)",
|
||
"description": "Will be linked in the footer."
|
||
},
|
||
"privacyStatement": {
|
||
"title": "Privacy Statement URL (optional)",
|
||
"description": "Will be linked in the footer."
|
||
},
|
||
"autoDeleteDays": {
|
||
"title": "Delete appointments",
|
||
"description": "Automatically delete appointments details after a certain period of time.",
|
||
"placeholder": "Select retention period",
|
||
"options": {
|
||
"30": "after 30 days",
|
||
"60": "after 60 days",
|
||
"90": "after 90 days",
|
||
"180": "after 180 days",
|
||
"365": "after 365 days"
|
||
}
|
||
},
|
||
"requirePhone": {
|
||
"title": "Require Phone Number",
|
||
"label": "Require clients to provide a phone number when booking an appointment."
|
||
}
|
||
},
|
||
"action": "Save"
|
||
}
|
||
},
|
||
"account": {
|
||
"overview": {
|
||
"title": "Your Account"
|
||
},
|
||
"general": {
|
||
"navItem": "Settings",
|
||
"title": "Account Settings",
|
||
"description": "Change your name."
|
||
},
|
||
"change-email": {
|
||
"navItem": "E-Mail Address",
|
||
"title": "Change E-Mail Address",
|
||
"description": "Change your e-mail address."
|
||
},
|
||
"passkeys": {
|
||
"navItem": "Passkeys",
|
||
"title": "Manage Passkeys",
|
||
"description": "You can add up to three passkeys."
|
||
},
|
||
"change-passphrase": {
|
||
"navItem": "Passphrase",
|
||
"title": "Change Passphrase",
|
||
"description": "Global Admins can set strong passphrases as a backup login method."
|
||
}
|
||
},
|
||
"staff": {
|
||
"title": "Staff",
|
||
"roles": {
|
||
"GLOBAL_ADMIN": "Global Admin",
|
||
"TENANT_ADMIN": "Tenant Admin",
|
||
"STAFF": "Appointment Manager"
|
||
},
|
||
"permissions": {
|
||
"agents": "Manages agents",
|
||
"channels": "Manages channels",
|
||
"absences": "Manages absences",
|
||
"settings": "Manages settings",
|
||
"staff": "Manages staff",
|
||
"appointments": "Manages appointments"
|
||
},
|
||
"form": {
|
||
"fields": {
|
||
"language": {
|
||
"title": "Language",
|
||
"description": "Will be used in the invitation e-mail.",
|
||
"placeholder": "Select langauge"
|
||
},
|
||
"role": {
|
||
"title": "Role",
|
||
"placeholder": "Select role"
|
||
}
|
||
}
|
||
},
|
||
"add": {
|
||
"title": "Add Member",
|
||
"description": "Staff members manage your appointments and settings. They are not public.",
|
||
"action": "Add Member",
|
||
"success": "Member added",
|
||
"errors": {
|
||
"unknown": "Could not add member"
|
||
}
|
||
},
|
||
"list": {
|
||
"needsAccess": "Can't see appointments",
|
||
"empty": {
|
||
"title": "No staff members yet",
|
||
"description": "Staff members manage your appointments and settings"
|
||
}
|
||
},
|
||
"edit": {
|
||
"title": "Edit Member",
|
||
"description": "Update the members details.",
|
||
"success": "Member updated",
|
||
"error": "Could not update member.",
|
||
"action": "Edit Member"
|
||
},
|
||
"delete": {
|
||
"title": "Remove Member",
|
||
"description": "Type {email} to remove this member. This step cannot be undone.",
|
||
"action": "Remove Member",
|
||
"success": "Member removed",
|
||
"error": "Could not remove member."
|
||
},
|
||
"access": {
|
||
"title": "Grant access to appointments",
|
||
"description": "Do you want to grant {name} access to all client data?",
|
||
"action": "Grant access",
|
||
"loadingTunnels": "Loading client list",
|
||
"loadingAddingKeyShares": "Grandting access",
|
||
"success": "Access granted. {name} is now ready to decrypt appointments.",
|
||
"errorNoPublicKey": {
|
||
"title": "Granting access failed",
|
||
"description": "This person needs to accept the invitation and add their Passkey first."
|
||
},
|
||
"error": {
|
||
"title": "Granting access failed",
|
||
"description": "You can retry anytime."
|
||
},
|
||
"unavailable": {
|
||
"title": "You can't grant access",
|
||
"description": "Only Appointment Managers and Tenant Admins can be granted access to client data."
|
||
}
|
||
},
|
||
"loading": "Loading staff members"
|
||
},
|
||
"yes": "Yes",
|
||
"no": "No",
|
||
"public": {
|
||
"links": {
|
||
"website": "Go to Website",
|
||
"imprint": "Imprint",
|
||
"privacyStatement": "Privacy Statement"
|
||
},
|
||
"bookAppointment": "Book Appointment",
|
||
"appointment": {
|
||
"requiresConfirmation": "Requires cofirmation by {name}"
|
||
},
|
||
"tenantNotReady": {
|
||
"title": "Not ready to accept appointments.",
|
||
"description": "If this is yours, please login and complete onboarding."
|
||
},
|
||
"steps": {
|
||
"channel": {
|
||
"title": "Please select an appointment type:",
|
||
"empty": "Currently we don't have available appointments. Please check again later."
|
||
},
|
||
"agent": {
|
||
"title": "Please select who you want your appointment with:",
|
||
"anyone": {
|
||
"title": "No preference",
|
||
"description": "Choose this option to get the fastest appointment."
|
||
}
|
||
},
|
||
"slot": {
|
||
"title": "Please select an available appointment:",
|
||
"today": "Today",
|
||
"selectDate": "Select a date",
|
||
"selectTime": "Select a time:",
|
||
"loading": "Loading available appointments...",
|
||
"empty": "No appointments available. Please select another date.",
|
||
"action": "Select appointment"
|
||
},
|
||
"data": {
|
||
"title": "Please add your information:",
|
||
"alert": {
|
||
"title": "Your data is safe",
|
||
"description": "Only you and {name} will be able to access this information. It is end-to-end encrypted."
|
||
},
|
||
"email": {
|
||
"notifyMe": "Notify me of changes by e-mail",
|
||
"tooltip": "If enabled, your e-mail address will appear temporarily in server logs of the mailserver. If disabled, you will have to login on this page to check for updates."
|
||
},
|
||
"phone": {
|
||
"description": "Format: +1234567890. {name} may contact you by phone, if there are questions or changes regarding your appointment.",
|
||
"optional": "(optional)"
|
||
},
|
||
"action": "Add personal data"
|
||
},
|
||
"auth": {
|
||
"register": {
|
||
"title": "It's my first time here",
|
||
"description": "Please add an PIN number so you can change your appointment later.",
|
||
"hint": "Proceeding will create an account",
|
||
"action": "Show summary",
|
||
"success": "Account created successfully!",
|
||
"error": "Failed to create account. Please try again.",
|
||
"alreadyExists": "This email is already registered. Please use the login option to book additional appointments."
|
||
},
|
||
"login": {
|
||
"title": "Login",
|
||
"description": "Please enter the PIN number, you've set:",
|
||
"action": "Show summary",
|
||
"throttled": "Too many failed attempts. Please wait a few minutes before trying again.",
|
||
"retry": "Please try again in {seconds} seconds"
|
||
}
|
||
},
|
||
"summary": {
|
||
"title": "Please review your appointment, before confirming.",
|
||
"book": {
|
||
"action": "Book appointment"
|
||
},
|
||
"request": {
|
||
"action": "Request appointment",
|
||
"hint": "This appointment will have to be manually confirmed. You will receive an E-Mail once it's confirmed."
|
||
},
|
||
"error": "Operation failed. Please retry.",
|
||
"errorSlotUnavailable": "The selected appointment is no longer available. Please choose a different appointment."
|
||
},
|
||
"complete": {
|
||
"book": {
|
||
"title": "Appointment booked",
|
||
"description": "We’ve sent you an e-mail with the details."
|
||
},
|
||
"request": {
|
||
"title": "Appointment requested",
|
||
"description": "{name} will confirm or deny your request soon. You will be informed via e-mail."
|
||
},
|
||
"action": "Proceed to Homepage"
|
||
}
|
||
},
|
||
"anyAgent": "Anyone available",
|
||
"register": {
|
||
"error": "Encryption could not be set up. Please retry"
|
||
},
|
||
"login": {
|
||
"success": "Login successful",
|
||
"error": "Login failed. Please retry"
|
||
}
|
||
},
|
||
"calendar": {
|
||
"title": "Calendar",
|
||
"selectDate": "Select a date",
|
||
"today": "Today",
|
||
"zoomOptions": {
|
||
"title": "Calendar zoom options",
|
||
"zoomIn": "zoom-in",
|
||
"zoomOut": "zoom-out"
|
||
},
|
||
"viewOptions": {
|
||
"title": "Calendar view options",
|
||
"day": "Day",
|
||
"week": "Week",
|
||
"week-workdays": "Week (without weekend)"
|
||
},
|
||
"calendarWeek": "CW {week}, {year}",
|
||
"thisMonth": "Current month",
|
||
"addThreeMonths": "+3",
|
||
"addSixMonths": "+6",
|
||
"addOneYear": "+12",
|
||
"loading": "Loading calendar",
|
||
"decrypting": "decrypting...",
|
||
"decryptingError": "Unable to decrypt data. Please reload/log-in again",
|
||
"decryptingErrorNoKeyShare": "Unable to decrypt data. Get a team member to grant you access.",
|
||
"notificationHint": "Clients will be notified via e-mail, if they have enabled e-mail notifications.",
|
||
"shownAppointments": {
|
||
"title": "Appointments",
|
||
"options": {
|
||
"all": "all",
|
||
"available": "available",
|
||
"booked": "booked",
|
||
"reserved": "reserved"
|
||
}
|
||
},
|
||
"cancelAppointment": {
|
||
"confirm": "Are you sure you want to cancel this appointment?",
|
||
"action": "Cancel Appointment",
|
||
"success": "Appointment cancelled successfully",
|
||
"error": "Failed to cancel appointment"
|
||
},
|
||
"denyAppointment": {
|
||
"confirm": "Are you sure you want to deny this appointment?",
|
||
"action": "Deny Appointment",
|
||
"success": "Appointment denied successfully",
|
||
"error": "Failed to deny appointment"
|
||
},
|
||
"confirmAppointment": {
|
||
"action": "Confirm Appointment",
|
||
"success": "Appointment confirmed successfully",
|
||
"error": "Failed to confirm appointment"
|
||
},
|
||
"addAppointment": {
|
||
"title": "Add Appointment",
|
||
"preview": "Add {time} {channel}",
|
||
"steps": {
|
||
"selectClient": {
|
||
"hasNoEmail": "Client has no e-mail",
|
||
"action": "Search Client",
|
||
"confirmNewClient": "This client does not have an account yet. Do you want to create an account for them?",
|
||
"proceedExistingClient": "Client selected."
|
||
},
|
||
"agents": {
|
||
"title": "Select an Agent"
|
||
},
|
||
"clientData": {
|
||
"shareEmail": "Client wishes updates via E-Mail",
|
||
"phoneHint": "Format: +1234567890 (optional)",
|
||
"action": "Add Client Details"
|
||
},
|
||
"summary": {
|
||
"action": "Add Appointment"
|
||
},
|
||
"error": {
|
||
"title": "Error adding Appointment",
|
||
"description": "Adding an appointment failed. Please try again.",
|
||
"descriptionSlotUnavailable": "The selected agent is no longer available for this time slot. Please choose a different appointment."
|
||
},
|
||
"success": {
|
||
"title": "Appointment added",
|
||
"description": "This appointment was added successfully"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"emails": {
|
||
"poweredBy": "Powered by",
|
||
"greeting": "Hello {name},",
|
||
"oclock": "",
|
||
"buttonAlternativeLink": "Button not working? Open this URL into your browser",
|
||
"appointmentBooked": {
|
||
"subject": "{channel} at {tenant} booked successfully",
|
||
"introduction": "your appointment has been booked.",
|
||
"action": "Cancel appointment",
|
||
"reason": "You are receiving this email because someone booked an appointment with your e-mail address."
|
||
},
|
||
"appointmentReminder": {
|
||
"subject": "Reminder: Your appointment with {tenant}",
|
||
"introduction": "your appointment with {tenant} is soon.",
|
||
"action": "Cancel appointment",
|
||
"reason": "You are receiving this email because someone booked an appointment with your e-mail address."
|
||
},
|
||
"appointmentRejected": {
|
||
"subject": "Your request for {channel} at {tenant} was rejected",
|
||
"introduction": "Your appointment was rejected.",
|
||
"reason": "You are receiving this email because someone requested an appointment with your e-mail address."
|
||
},
|
||
"appointmentRequest": {
|
||
"subject": "{channel} with {tenant} requested",
|
||
"introduction": "your appointment was requested. You will be notified once it is confirmed.",
|
||
"reason": "You are receiving this email because someone requested an appointment with your e-mail address."
|
||
},
|
||
"appointmentCancelled": {
|
||
"subject": "Your appointment for {channel} at {tenant} was cancelled",
|
||
"introduction": "Your appointment was cancelled.",
|
||
"reason": "You are receiving this email because someone booked an appointment with your e-mail address."
|
||
},
|
||
"confirmation": {
|
||
"subject": "Confirm your E-Mail Address",
|
||
"introduction": "welcome our appointment booking platform. Please confirm your e-mail address.",
|
||
"action": "Confirm E-Mail Address",
|
||
"hint": "This link is only valid for {expirationMinutes} minutes and can only be used once.",
|
||
"reason": "You are receiving this email because someone registered an account with your e-mail address."
|
||
},
|
||
"notification": {
|
||
"subject": "Activity in your appointment booking platform",
|
||
"introduction": "There is new activity in your appointment booking platform. Please log in to view details.",
|
||
"action": "Open Dashboard",
|
||
"reason": "You are receiving this email because you have notifications enabled for a channel."
|
||
},
|
||
"pinReset": {
|
||
"subject": "PIN successfully changed",
|
||
"introduction": "you've successfully changed your PIN on the {tenant} appointment booking platform. You can now log-in with your new PIN.",
|
||
"action": "Login",
|
||
"reason": "You are receiving this email because someone changed the PIN-Code for your account."
|
||
}
|
||
},
|
||
"notifications": {
|
||
"title": "Notifications",
|
||
"markAllAsRead": {
|
||
"action": "Mark all as read",
|
||
"success": "All notifications marked as read",
|
||
"error": "Notifications could not be marked as read."
|
||
},
|
||
"markAsRead": "Mark as read",
|
||
"empty": "No notifications available",
|
||
"types": {
|
||
"APPOINTMENT_REQUESTED": {
|
||
"title": "New appointment request",
|
||
"description": "A new appointment has been requested in {channel}."
|
||
},
|
||
"APPOINTMENT_CONFIRMED": {
|
||
"title": "Appointment confirmed",
|
||
"description": "Appointment in {channel} was confirmed."
|
||
},
|
||
"APPOINTMENT_CANCELLED": {
|
||
"title": "Appointment cancelled",
|
||
"description": "Client cancelled appointment in {channel}."
|
||
}
|
||
}
|
||
},
|
||
"clients": {
|
||
"title": "Clients",
|
||
"checking-auth": "Validating session...",
|
||
"login": {
|
||
"title": "Client Login",
|
||
"description": "Please enter your e-mail address and PIN.",
|
||
"altAction": "I am a staff member here"
|
||
},
|
||
"appointments": {
|
||
"title": "My Appointments",
|
||
"empty": "You don't have any upcoming appointments.",
|
||
"error": {
|
||
"title": "Unable to load upcoming appointments",
|
||
"description": "We were unable to load your upcoming appointments. Please try again later."
|
||
},
|
||
"cancel": {
|
||
"title": "Cancel Appointment",
|
||
"description": "You will loose your spot and have to wait for the next free appointment.",
|
||
"action": "Cancel",
|
||
"success": "Appointment cancelled",
|
||
"error": "Could not cancel appointment. Please try again later"
|
||
},
|
||
"types": {
|
||
"NEW": "requested",
|
||
"CONFIRMED": "confirmed"
|
||
}
|
||
}
|
||
}
|
||
}
|