{"common":{"appName":"TabeebHub","tagline":"Modern Clinic Management System","description":"Streamline your clinic operations with our comprehensive SaaS solution","nav":{"home":"Home","login":"Login","logout":"Logout","startTrial":"Get Started Free","dashboard":"Dashboard","profile":"Profile","settings":"Settings"},"actions":{"submit":"Submit","cancel":"Cancel","save":"Save","delete":"Delete","edit":"Edit","view":"View","search":"Search","filter":"Filter","export":"Export","download":"Download","refresh":"Refresh","back":"Back","next":"Next","previous":"Previous","close":"Close","confirm":"Confirm","continue":"Continue","loading":"Loading...","comingSoon":"Coming Soon"},"status":{"active":"Active","inactive":"Inactive","pending":"Pending","verified":"Verified","unverified":"Unverified"},"age":{"years":"{count, plural, =0 {0 years} =1 {1 year} other {# years}}","months":"{count, plural, =0 {0 months} =1 {1 month} other {# months}}","days":"{count, plural, =0 {0 days} =1 {1 day} other {# days}}","separator":", "},"time":{"now":"Just now","today":"Today","yesterday":"Yesterday","daysAgo":"{count} days ago","hoursAgo":"{count} hours ago","minutesAgo":"{count} minutes ago"},"pagination":{"page":"Page","of":"of","showing":"Showing","results":"results","perPage":"per page"},"validation":{"required":"This field is required","invalidPhone":"Please enter a valid phone number","invalidEmail":"Please enter a valid email address","minLength":"Must be at least {count} characters","maxLength":"Must be at most {count} characters"},"footer":{"copyright":"© {year} TabeebHub. All rights reserved.","contactSupport":"Contact Support"},"language":{"switch":"Language","en":"English","ar":"Arabic","switchTo":"Switch to {language}","current":"Language: {language}"},"roles":{"patient":"Patient","doctor":"Doctor","receptionist":"Receptionist","admin":"Platform Admin"},"fields":{"phone":"Phone Number","name":"Name","email":"Email","password":"Password"},"update":{"blockers":{"visitOpen":"An open visit — unsaved notes in it will be lost"},"readyTitle":"Update ready","readyBody":"Downloaded and ready. It installs when you restart.","restartNow":"Restart to update","unsavedWarning":"Restarting now will discard:","restartAnyway":"Restart anyway","notNow":"Not now","availableTitle":"A new version is available","manualBody":"This build cannot update itself. Download the latest version to continue receiving fixes.","downloadNow":"Download now","dismiss":"Dismiss","requiredTitle":"Update required","requiredBody":"This version of TabeebHub is no longer supported. Update to continue — your data is safe and nothing has been lost.","downloadedNotice":"A new version has been downloaded and is ready to install.","downloading":"Downloading the latest version…","installAndRestart":"Install and restart","downloadLatest":"Download the latest version","currentVersion":"Current version {version} (build {build})"},"phone":{"selectCountry":"Select country","searchCountry":"Search country…","noCountries":"No countries found","enterNumber":"Enter phone number","invalid":"Invalid phone number","invalidFor":"Not a valid phone number for {country}","incomplete":"This phone number looks incomplete"}},"auth":{"session":{"restoring":"Restoring your session…","checking":"Checking authentication…","redirecting":"Redirecting…"},"unified":{"title":"Welcome to TabeebHub","subtitle":"Access your healthcare portal","patientTab":"Patient Access","staffTab":"Staff Login","phonePlaceholder":"+20 XXX XXX XXXX","passwordPlaceholder":"Enter your password","selectRole":"Choose how you'd like to sign in","patientDescription":"Access your appointments, prescriptions, and medical records","staffDescription":"Sign in as a doctor, receptionist, or administrator","continueAsPatient":"Continue as Patient","continueAsStaff":"Continue as Staff","orContinueWith":"or continue with","backToOptions":"Back to options","phoneRequired":"Phone number is required","passwordRequired":"Password is required","loading":"Loading...","patientHelpText":"Having trouble? Contact your clinic for assistance.","staffHelpText":"Forgot your password? Contact your administrator.","forgotPassword":"Forgot password?","termsText":"By continuing, you agree to our Terms of Service and Privacy Policy.","terms":"Terms","privacy":"Privacy","help":"Help","modeSwitch":{"ariaLabel":"Choose authentication type","patient":"Patient","staff":"Staff"},"noAccount":"New to TabeebHub?","createClinicAccount":"Create a clinic account","door":{"title":"Continue with your phone number","description":"Sign in to finish — it takes a moment, and your choices are waiting.","help":"Your choices are kept while you sign in. Having trouble? Contact the clinic.","phoneHint":"We'll send a WhatsApp code to this number.","continue":"Continue","bookWith":"Continue your booking at {name}","consultWith":"Continue your consultation request with {name}","book":"Continue your booking","consult":"Continue your consultation request","slotKept":"{slot} — finish signing in to confirm it.","kept":"Your choices are kept for you.","descriptionOtp":"We’ll send a WhatsApp code to this number — no password needed to start.","passwordTitle":"Finish signing in","passwordHint":"Enter your password and we’ll take you straight back.","forgotPassword":"Forgot your password?","forgotHint":"We’ll send a WhatsApp code to this number instead — you will not lose your place.","registerTitle":"Create your account to finish","activateTitle":"Activate your account to finish","resume":"Back to where you were"}},"login":{"title":"Welcome Back","subtitle":"Sign in to your TabeebHub account","phone":"Phone Number","phonePlaceholder":"+20 XXX XXX XXXX","password":"Password","passwordPlaceholder":"Enter your password","submit":"Sign In","patientAccess":"Are you a patient?","patientLink":"Access your records here","patientTitle":"Welcome Back","patientDescription":"Enter your password to access your account","patientSubmit":"Continue","phoneReadonly":"Use a different phone number","differentPhone":"Use a different phone number"},"patient":{"start":{"phoneHint":"Use the same number your doctor registered you with"},"otp":{"title":"Verify Your Phone","subtitle":"Enter the code we sent to your WhatsApp","label":"Verification Code","placeholder":"Enter 6-digit code","submit":"Verify","noCode":"Didn't receive the code on WhatsApp?","resend":"Resend","differentNumber":"Use a different number","codeLength":"The code has 6 digits","codeDigits":"Digits only","sessionExpired":"Your session has expired. Please start over.","sent":"Code sent on WhatsApp","sending":"Sending…","sentTo":"Sent on WhatsApp to {phone}"},"activate":{"title":"Activate Your Account","subtitle":"Set a password to complete your account setup","password":"Password","passwordPlaceholder":"Create a password","confirmPassword":"Confirm Password","confirmPlaceholder":"Confirm your password","submit":"Activate Account","info":"You'll use this password to access your appointments and prescriptions","startOver":"Start over","sessionExpired":"Your session has expired. Please start over.","redirecting":"Redirecting…"},"shadowActivate":{"title":"Activate Your Account","subtitle":"We found your records — let's set up your account","foundAppointments":"We found {count} appointment(s) already booked under your phone number.","foundAppointmentsFor":"We found {count} appointment(s) already booked under your phone number for {name}.","foundRecords":"We found records under your phone number. Verify it to continue.","foundRecordsFor":"We found medical records already linked to your phone number for {name}.","otpVerified":"Phone verified successfully","welcomeBack":"Welcome back, {name}","name":"Full Name","namePlaceholder":"Enter your full name","nameHint":"Your clinic did not have your full name on file","password":"Password","passwordPlaceholder":"Create a password","passwordHint":"At least 8 characters — any letters or numbers","confirmPassword":"Confirm Password","confirmPlaceholder":"Confirm your password","submit":"Activate Account","redirecting":"Redirecting...","startOver":"Use a different number","nameTooShort":"Name must be at least 2 characters","nameTooLong":"Name is too long","sessionExpired":"Your session has expired. Please start over."},"register":{"title":"Create Account","subtitle":"Register as a new patient","name":"Full Name","namePlaceholder":"Enter your full name","phone":"Phone Number","phonePlaceholder":"+20 XXX XXX XXXX","phoneVerifiedHint":"Verified from previous step","password":"Password","passwordPlaceholder":"Create a password","passwordHint":"At least 8 characters — any letters or numbers","confirmPassword":"Confirm Password","confirmPasswordPlaceholder":"Re-enter your password","passwordMismatch":"Passwords do not match","submit":"Create Account","hasAccount":"Already have an account?","signIn":"Sign in","sessionExpired":"Your session has expired. Please start over.","redirecting":"Redirecting...","nameTooShort":"Name must be at least 2 characters","nameTooLong":"Name is too long","otpFirstHint":"First, the code we send on WhatsApp. Then your name and a password for next time.","codeExpiredRetry":"Your verification code expired while the form was open. We sent a new one — enter it to continue; what you typed is kept."}},"roleMismatch":{"title":"Phone Already Registered","description":"This phone number is already registered as a {role} account. You cannot create a patient account with this number.","doctor":"Doctor","staff":"Clinic Staff","admin":"Platform Administrator","doctorDescription":"This phone number is linked to a Doctor account. Please use the staff login to access your dashboard.","staffDescription":"This phone number is linked to a Clinic Staff account. Please use the staff login to access your account.","adminDescription":"This phone number is linked to a Platform Administrator account. Please use the staff login to access the admin panel.","goToLogin":"Go to {role} Login","tryDifferentPhone":"Use a Different Phone Number","contactSupport":"Contact Support","infoText":"Each phone number can only be associated with one account type. If you believe this is an error, please contact support."},"enableProfile":{"title":"Enable Patient Access","description":"You already have an account with us. Would you like to enable Patient access using the same phone number?","benefits":"With patient access, you can:","benefit1":"View your own medical records as a patient","benefit2":"Book appointments at other clinics","benefit3":"Access prescriptions prescribed to you","enableButton":"Enable Patient Access","continueAsDoctor":"Continue as Doctor","backToLogin":"Back to Login","enabling":"Setting up your patient profile...","infoText":"Your existing account will not be affected. You will be able to switch between your roles at any time.","genericError":"We could not enable patient access. Please try again.","missingPhone":"Phone number not found. Please go back and try again."},"otp":{"title":"Verify Your Phone","titleEmail":"Verify Your Email","verified":"Verified!","verifiedMessage":"Your account has been verified successfully.","sentTo":"We sent a code via WhatsApp to {phone}","sentToEmail":"We sent a code to {email}","sending":"Sending code…","verifying":"Verifying…","resend":"Resend Code","resendIn":"Resend in {seconds}s","back":"Go back","channelEmail":"Email","channelWhatsApp":"WhatsApp","channelSms":"SMS","smsSoon":"Soon"},"forgotPassword":{"link":"Forgot password?","start":{"title":"Reset Your Password","subtitle":"Enter your phone number and we'll send you a verification code","phoneLabel":"Phone Number","phonePlaceholder":"Enter your phone number","channelLabel":"Send code via","submit":"Send Verification Code","sending":"Sending...","backToLogin":"Back to Login"},"verify":{"title":"Enter Verification Code","subtitle":"We sent a code via {channel} to {phone}","sentVia":"Sent via {channel}","otpLabel":"Verification Code","otpPlaceholder":"Enter 6-digit code","submit":"Verify Code","verifying":"Verifying...","resend":"Resend Code","resendIn":"Resend in {seconds}s","back":"Go back"},"reset":{"title":"Create New Password","subtitle":"Choose a strong password for your account","newPassword":"New Password","newPasswordPlaceholder":"Enter new password","confirmPassword":"Confirm Password","confirmPasswordPlaceholder":"Re-enter new password","passwordHint":"At least 8 characters, with a letter and a number","submit":"Reset Password","resetting":"Resetting...","tokenExpired":"Your reset session has expired. Please start over."},"success":{"title":"Password Reset Successfully","subtitle":"Your password has been changed. You can now sign in with your new password.","loginButton":"Go to Login"}},"password":{"tooShort":"At least {min} characters","tooLong":"Too long — 100 characters at most","confirmRequired":"Type the password again","mismatch":"The two passwords do not match","hint":"At least {min} characters — any letters or numbers","show":"Show password","hide":"Hide password"}},"clinic":{"patientIdentity":{"estimatedAge":"~{age}"},"ageField":{"modeLabel":"How the age is known","mode":{"date":"Date of birth","approximate":"Approximate age"},"unit":{"years":"Years","months":"Months","weeks":"Weeks","days":"Days"},"empty":"Type an age to see what will be recorded.","invalid":"Whole numbers only, up to {max} in each box.","preview":"Will be recorded as {age}","notExact":"The calendar has no date that reads back as exactly that, because the months either side differ in length. What gets recorded is the age above.","derived":"Stored as {date} — a date worked back from that age, not a birthday anyone read off a document."},"subjectKind":{"record":{"dobIsEstimatedHint":"Ages then read with a ~. For a rescue, or anyone who arrived without papers."}},"layout":{"staffSignal":{"ariaMenu":"Signal front desk","close":"Close","heading":"Front desk","callStaff":"Call Staff","holdNext":"Hold Next Patient","resumeNext":"Allow Next Patient","sent":"Request sent","failed":"Could not send request","sendToLabel":"Send to","sendToAll":"All staff","sendToReceptionist":"Receptionists only","sendToAssistant":"Assistants only","onlineCount":"{total} staff online","noStaffOnline":"No staff online right now — staff with the mobile app will still get a notification.","callToastTitle":"Doctor needs you","callToastDescription":"{doctor} is asking you to come","holdToastTitle":"Wait before next patient","holdToastDescription":"Please do not send the next patient in yet.","resumeToastTitle":"You can send the next patient","resumeToastDescription":"The doctor is ready for the queue to continue.","unknownDoctor":"The doctor","popup":{"callTitle":"Doctor needs you","callDescription":"{doctor} is calling you","holdTitle":"Please wait before sending the next patient","holdDescription":"Hold the queue until you get another signal.","resumeTitle":"You can send the next patient","resumeDescription":"The doctor is ready for the queue to continue.","acknowledge":"Got it","close":"Dismiss"}}}},"errors":{"generic":{"title":"Something went wrong","message":"An unexpected error occurred. Please try again.","retry":"Try Again"},"goBack":"Go Back","notFound":{"title":"Page Not Found","message":"Sorry, we couldn't find the page you're looking for. It might have been removed, renamed, or doesn't exist.","returnHome":"Return Home","contactSupport":"If you believe this is an error, please contact support."},"network":{"title":"Connection Error","message":"Unable to connect to the server. Please check your internet connection and try again.","offline":"You appear to be offline. Please check your internet connection.","timeout":"The request took too long. Please try again."},"auth":{"title":"Authentication Required","unauthorized":"You are not authorized to access this resource.","sessionExpired":"Your session has expired. Please log in again.","invalidCredentials":"Invalid phone number or password.","loginAgain":"Log In Again"},"validation":{"title":"Validation Error","message":"Please check the form for errors and try again."},"server":{"title":"Server Error","message":"Something went wrong on our end. Please try again later.","unavailable":"The service is temporarily unavailable. Please try again later."},"conflict":{"title":"Conflict Error","message":"The action could not be completed due to a conflict. Please refresh and try again."},"rateLimit":{"title":"Too Many Requests","message":"You've made too many requests. Please wait a moment and try again."},"render":{"title":"Display Error","message":"Something went wrong displaying this content. Please try refreshing the page."},"support":{"hint":"If this problem persists, please contact support."},"api":{"AUTH_USER_NOT_FOUND":"No account found with this phone number. Please check the number and try again.","USER_NOT_FOUND":"User not found.","USER_ALREADY_EXISTS":"A user with this phone number already exists.","USER_INVALID_ROLE":"Invalid user role for this operation.","USER_NOT_VERIFIED":"Please verify your account first.","INVALID_CREDENTIALS":"Invalid credentials.","OTP_REQUIRED":"OTP verification is required.","OTP_INVALID":"Invalid or expired OTP code.","OTP_EXPIRED":"OTP code has expired.","CLINIC_NOT_FOUND":"Clinic not found.","CLINIC_INACTIVE":"Clinic is deactivated. Activate the clinic to continue.","CLINIC_ACCESS_DENIED":"You don't have access to this clinic.","CLINIC_REQUIRED":"Choose which clinic this is for, then try again.","CLINIC_LOCKED_BY_PLATFORM":"This clinic is locked by the platform.","SUBSCRIPTION_READ_ONLY":"Your account is read-only. Renew to make changes.","SUBSCRIPTION_REQUIRED":"An active subscription is required for this.","PATIENT_NOT_FOUND":"Patient not found.","APPOINTMENT_NOT_FOUND":"Appointment not found.","APPOINTMENT_INVALID_STATUS":"Cannot perform this action on the appointment.","PRESCRIPTION_NOT_FOUND":"Prescription not found.","PRESCRIPTION_ACCESS_DENIED":"You don't have access to this prescription.","PRESCRIPTION_ALREADY_FINALIZED":"Prescription is already finalized.","PRESCRIPTION_NOT_FINALIZED":"Prescription is not finalized.","PHONE_ALREADY_EXISTS":"This phone number is already registered. Please sign in instead.","EMAIL_ALREADY_EXISTS":"This email address is already registered. Please use a different email or sign in.","UNAUTHORIZED":"You are not authorized to perform this action.","FORBIDDEN":"Access forbidden.","PATIENT_PACKAGE_VISIT_LOCKED":"This visit is no longer in progress, so sessions can't be recorded on it.","PATIENT_PACKAGE_NOT_FOUND":"That service could not be found for this patient.","PATIENT_PACKAGE_NOT_ACTIVE":"This service is no longer active.","PATIENT_PACKAGE_ALREADY_ACTIVE":"This service is already active for this patient.","PATIENT_PACKAGE_SESSIONS_EXHAUSTED":"All sessions in this service have already been used.","PATIENT_PACKAGE_HAS_SESSIONS":"Sessions have already been used, so this service can't be removed.","PATIENT_PACKAGE_HAS_PAYMENT":"A payment has already been collected for this service.","PATIENT_PHONE_CONFLICT":"This phone number is already linked to another patient account. Please contact your clinic for help.","PLAN_LIMIT_APPOINTMENTS":"All appointment capacity for this month is used — plan and add-ons. Buy a top-up or upgrade to keep booking.","PLAN_LIMIT_PRESCRIPTIONS":"All prescription capacity for this month is used — plan and add-ons. Buy a top-up or upgrade to keep prescribing.","PLAN_LIMIT_STAFF":"You've reached your plan's staff limit. Upgrade to add more team members.","PATIENT_PHONE_OWNED_BY_ACCOUNT":"This patient signs in with their phone number, so only they can change it.","GUARDIAN_NOT_FOUND":"That guardian is no longer on file at this clinic.","GUARDIAN_PHONE_CONFLICT":"Another guardian at this clinic already uses this number.","GUARDIAN_PHONE_IS_PATIENT_PHONE":"This number is currently a patient's own. Move it to the guardian instead of recording it twice.","PATIENT_PHONE_IS_GUARDIAN_PHONE":"This number belongs to a guardian at this clinic. Record the patient under her, or confirm that the patient is that guardian.","PATIENT_SPECIES_MISMATCH":"This patient is already on file at a clinic that treats the other kind of patient — a person at one, an animal at the other. There is no way to record them as both, so add them here as a new record instead.","CLINIC_SPECIALTY_SPECIES_MISMATCH":"This clinic already has patients on file, so its profession cannot be moved between treating people and treating animals — the checks that decide whether a dose, an interaction or an allergy is safe are written for one kind of body, and the move would hand everybody already on this roster the set written for the other. You can still ask the platform, and a reviewer will read it. For a clinic that already holds records the answer is to keep a clinic for each: the records here stay exactly as they are, and the new clinic starts with none.","CLINIC_SPECIALTY_PRACTICE_CLASS_MISMATCH":"This clinic has already been a profession to somebody, so its specialty can’t be moved to a different practice class from a settings screen. Ask for a review — the clinic keeps working exactly as it does now while somebody looks at it.","PATIENT_SPECIES_CHANGE_HAS_VACCINATIONS":"This patient has vaccinations recorded under the current species. Confirm to keep them on the record without counting them in the new schedule.","PATIENT_SPECIES_CLEAR_HAS_VACCINATIONS":"This patient has recorded vaccinations, so the species cannot be removed. Set the correct species instead.","APPOINTMENT_SLOT_IN_PAST":"That date has already passed. Choose today or a later date.","APPOINTMENT_SLOT_OUTSIDE_WORKING_HOURS":"That time can no longer be accepted — it may be full, or the clinic’s hours changed. Propose another time.","APPOINTMENT_SLOT_DUPLICATE":"This patient already has an appointment at that time.","FINANCIAL_CASH_REQUIRES_REGISTER":"Open a cash register before collecting cash.","AUTH_INVALID_PHONE":"That is not a valid phone number.","AUTH_PHONE_ALREADY_EXISTS":"An account already exists for this phone number.","STAFF_ACCOUNT_SHARED":"This person manages their own account. Ask them to change it.","STAFF_INVITE_NOT_FOUND":"This invitation is no longer available.","STAFF_INVITE_EXPIRED":"This invitation has expired. Ask the clinic to invite you again.","STAFF_INVITE_CLINIC_UNAVAILABLE":"This clinic can't add staff right now. Ask the clinic to check its plan, then try again.","COMPENSATION_OWNER_NOT_ELIGIBLE":"The clinic's owner doesn't get a pay agreement.","COMPENSATION_PERSON_NOT_ELIGIBLE":"Only active doctors and assistants at this clinic can have a pay agreement.","COMPENSATION_AGREEMENT_EXISTS":"This person already has an agreement on that date. Make a new version instead.","COMPENSATION_RULES_INVALID":"Check the pay rules: percentages above 0 and at most 100, amounts above 0, one rule of each kind.","COMPENSATION_DATES_INVALID":"Check the dates: an end can't come before a start, and two versions can't cover the same day.","COMPENSATION_MONTH_CLOSED":"This would change a month whose statement is closed. Make a new version from a later date.","COMPENSATION_VERSION_NOT_LATEST":"Changes are made from the latest version of the agreement.","COMPENSATION_NO_AGREEMENT":"This person has no pay agreement at this clinic.","COMPENSATION_PAYMENT_INVALID":"Check the amounts: net paid must equal the amount minus what was withheld.","COMPENSATION_ALREADY_VOID":"This was already voided.","COMPENSATION_CLOSE_REFUSED":"This month can't be closed yet.","COMPENSATION_VOID_REFUSED":"Only the latest closed statement can be voided, and not in a locked period.","COMPENSATION_QUESTION_ANSWERED":"You've already answered this. Change it in the clinic settings.","COMPENSATION_QUESTION_UNANSWERED":"Answer the doctor pay question on the Compensation screen first. Your answer decides whether doctor pay is in the P&L.","EXPENSE_INVALID_DATE":"Pick a real day for this expense, no later than the clinic's today.","COMPENSATION_PERIOD_LOCKED":"This change reaches into a locked accounting period, and doctor pay is in the P&L. Start it after the locked period, or reopen the period first.","PERIOD_LOCK_COMPENSATION_OPEN":"Close doctor pay for these months first. A locked period can't hold a month of compensation that is still open while doctor pay is in the P&L.","CLINIC_CURRENCY_HAS_COMPENSATION":"This clinic has doctor pay agreements in its current currency, so the currency can't be changed.","CLINIC_INVALID_PHONE":"That is not a valid clinic phone number.","CLINIC_SHORT_LABEL_TAKEN":"Another of your clinics already uses this short name. Choose a different one.","CLINIC_SHORT_LABEL_TOO_SHORT":"Use at least 3 characters for the short name.","CLINIC_SHORT_LABEL_NUMERIC":"Use a name for the short name, not just a number — for example Dokki.","MEDREP_LEAD_DUPLICATE":"You already have a lead with this phone number.","FINANCIAL_REGISTER_NOT_OPEN":"That cash register has been closed. Open a register and try again.","FINANCIAL_REGISTER_NOT_OWNED":"That register belongs to a different clinic or person. Open your own register at this clinic.","FINANCIAL_REGISTER_NOT_FOUND":"That cash register no longer exists. Open a register and try again.","FINANCIAL_REGISTER_ALREADY_OPEN":"You already have an open register at this clinic.","FINANCIAL_REGISTER_ALREADY_COUNTED":"This drawer has already been counted, so its opening balance can no longer be changed.","FINANCIAL_INSUFFICIENT_DRAWER_CASH":"The drawer does not hold that much cash. Refund a smaller amount, or refund it by card or transfer.","FINANCIAL_REFUND_NOT_CASH":"That payment was not taken in cash. Refund it the way it was paid, or refund only the cash part from the drawer.","FINANCIAL_REFUND_EXCEEDS_PAID":"That is more than was paid. Lower the refund amount.","FINANCIAL_INSUFFICIENT_CREDIT":"The patient does not have that much credit.","FINANCIAL_INVALID_AMOUNT":"That amount can't be used here — check what is owed or held and try again.","FINANCIAL_NO_OUTSTANDING":"There is nothing outstanding to pay right now.","FINANCIAL_PAYMENT_FAILED":"A payment for this amount is already in progress. Finish that one rather than starting a second.","FINANCIAL_HISTORICAL_VISIT_DUPLICATE":"A historical visit with that date and amount is already on this patient's record.","FINANCIAL_HISTORICAL_VISIT_NOT_REFUNDABLE":"This visit was paid before the clinic joined TabeebHub, so it can't be refunded here. Record any money returned as an expense.","FINANCIAL_HISTORICAL_VISIT_LOCKED":"This visit was imported from before the clinic joined TabeebHub. Its record is closed — nothing can be added to or changed on it.","VACCINE_NOT_FOUND":"This vaccine is not in the catalogue.","VACCINE_NOT_FOR_SUBJECT":"This vaccine belongs to a different schedule and can’t be recorded for this patient. Pick one from this patient’s own schedule.","VACCINE_INACTIVE":"This vaccine has been retired from the catalogue and cannot be recorded.","VACCINATION_DOSE_UNKNOWN":"This vaccine has no such dose number.","VACCINATION_DOSE_ALREADY_RECORDED":"This dose is already recorded for this child.","VACCINATION_DATE_IN_FUTURE":"A dose cannot be recorded for a future date.","VACCINATION_DATE_BEFORE_BIRTH":"A dose cannot be dated before the child's date of birth.","VACCINATION_VISIT_MISMATCH":"The visit named is not an open visit of this patient at this clinic.","VACCINATION_RECORD_NOT_FOUND":"This vaccination record was not found.","VACCINATION_NOT_FOR_SUBJECT":"There is no vaccination schedule for this patient yet. Record which animal this is on the patient’s record first.","FEATURE_NOT_ENABLED":"This feature is not available right now.","CONSULTATION_NOT_FOUND":"This online consultation was not found.","CONSULTATION_INVALID_STATE":"This consultation has moved on — refresh to see its current state.","CONSULTATION_NOT_JOINABLE":"The room opens 10 minutes before the consultation and closes after it ends.","CONSULTATION_PRICE_BELOW_FLOOR":"Each consultation price must be at least the platform minimum.","CONSULTATION_SLOT_UNAVAILABLE":"The doctor is not available online at that time. Pick another slot.","CONSULTATION_AMOUNT_MISMATCH":"Confirm exactly the consultation price. Ask the patient for the balance first.","CONSULTATION_CONFIRM_BLOCKED":"Payment received — the clinic's plan needs more appointments before this can be confirmed.","USE_CONSULTATION_SESSION":"This is an online consultation. Start it from its room, not the queue.","CONSULTATION_SLOT_PASSED":"The time of this consultation has passed. Propose a new time instead.","CONSULTATION_PROPOSAL_PENDING":"You suggested a new time — wait for the patient's answer before accepting the original one.","CONSENT_REQUIRED":"Please read and accept the online consultation terms first.","REFUND_STATUS_NOT_DUE":"No refund is pending on this consultation.","CONSULTATION_REFUND_VIA_APPOINTMENT":"This payment was confirmed on an appointment. Record the refund from the appointment so the platform fee is reversed too.","CONSULTATION_REPORT_CAP":"You have already reported this payment three times. Contact the clinic to confirm it, or report a problem from the consultation.","CONSULTATION_SETTINGS_INCOMPLETE":"Finish setting up online consultations first — your online hours, a price, and how patients pay you.","CONSULTATION_SETTINGS_INCOMPLETE_HOURS":"Add your online hours before turning consultations on.","CONSULTATION_SETTINGS_INCOMPLETE_PAYMENT_INSTRUCTIONS":"Tell patients how to pay you (InstaPay, wallet or instructions) before turning consultations on.","CONSULTATION_SETTINGS_INCOMPLETE_PAYMENT_RAIL":"Add an InstaPay address or a wallet number — instructions alone give patients nothing to pay to.","CONSULTATION_SETTINGS_INCOMPLETE_PRICE":"Set at least one consultation price before turning consultations on.","CONSULTATION_SETTINGS_INCOMPLETE_CURRENCY":"Online consultations need an EGP clinic.","CONSULTATION_SETTINGS_INCOMPLETE_HOME_CLINIC":"Online consultations record in exactly one clinic. Turn them off there first.","FEE_POLICY_MISSING":"Online consultations are not set up on the platform yet.","FEE_BALANCE_INSUFFICIENT":"Not enough balance for another block of call time. Top up your platform balance and try again.","FEE_ACCOUNT_OVERDUE":"This account is paused from the old billing model. Contact TabeebHub support to clear it — there is nothing to pay online.","FEE_ACCOUNT_SUSPENDED":"Your fee account is not accepting new consultations. Contact TabeebHub support.","INTEGRITY_ISSUE":"A money check failed and nothing was saved. Try again or contact support.","PUBLIC_PHONE_INVALID":"Enter a valid phone number before showing it on your page — for example 01012345678.","PUBLIC_PAGE_NEEDS_CLINIC":"A public page needs a clinic. Ask your clinic owner to publish theirs — it lists you.","VERIFICATION_DOCUMENT_MISSING":"This request has no syndicate card attached. Ask the doctor to upload the document before verifying.","FOLLOW_UP_NEEDS_PRIOR_VISIT":"A follow-up needs a previous visit at this clinic. Book an examination instead.","ATTACHMENT_TOO_LARGE":"That file is too large. Choose a smaller one.","GENERIC_VALIDATION_ERROR":"Please check the details and try again.","PATIENT_TAG_NAME_TAKEN":"A tag with that name already exists at this clinic.","PATIENT_TAG_CLINIC_LIMIT":"This clinic already has the most tags it can hold. Delete one you no longer use to make room.","PATIENT_TAG_PATIENT_LIMIT":"This patient already carries the most tags allowed. Remove one first.","PATIENT_TAG_NOT_FOUND":"That tag no longer exists — it may have just been deleted. Refresh to see the current tags.","CLINIC_HAS_OPEN_CONSULTATIONS":"This clinic still has online consultations to finish or refunds due. Finish them before deleting it.","CONSULTATION_SETTINGS_INCOMPLETE_CREDENTIAL_SCOPE":"Can't record here: your verified credential doesn't cover this clinic's profession.","CONSULTATION_SETTINGS_INCOMPLETE_CLINIC_PAUSED":"Can't record here while this clinic is paused.","CONSULTATION_SETTINGS_INCOMPLETE_CLINIC_LOCKED":"Can't record here: this clinic is locked by TabeebHub.","CONSULTATION_SETTINGS_INCOMPLETE_HOME_MOVED":"Your consultations moved to another clinic meanwhile. Check again before moving.","CONSULTATION_SETTINGS_INCOMPLETE_NO_HOME":"Online consultations aren't on at any of your clinics yet. Switch them on here instead.","GENERIC_VALIDATION_ERROR_PLATFORM_PAUSE":"TabeebHub paused your online consultations. Only TabeebHub can lift this pause."},"bookingSubject":{"SELF_NOT_TREATED_HERE":"This clinic treats animals, so it cannot see you as the patient. Book for your animal instead.","NO_PATIENT_PROFILE":"This account has no patient record yet, so it cannot book online. Ask the clinic to add you, or register with your phone number.","SPECIES_REQUIRED":"Choose what kind of animal this is before booking.","SPECIES_FORBIDDEN":"A species cannot be recorded for a person.","SPECIES_OTHER_REQUIRED":"Type what kind of animal this is.","SPECIES_OTHER_FORBIDDEN":"Clear the written description, or choose “Other” as the species."}},"home":{"nav":{"features":"Features","pricing":"Pricing","blog":"Blog","about":"About","solutions":"Solutions","solutionsByLabel":"By Specialty","solutionsCompareLabel":"Compare","solutionsAllSpecialties":"All Specialties","solutionsDental":"Dental Clinic Software","solutionsDermatology":"Dermatology Clinic Software","solutionsPediatric":"Pediatric Clinic Software","solutionsVsVezeeta":"TabeebHub vs Vezeeta","solutionsVsDentolize":"TabeebHub vs Dentolize","solutionsBestEgypt":"Best Clinic Software in Egypt"},"footer":{"brandDescription":"TabeebHub is a modern healthcare SaaS platform designed to help clinics deliver better patient experiences while improving operational efficiency.","product":{"title":"Product","features":"Features","free":"Free Clinic Software","security":"Security","pricing":"Pricing","blog":"Blog","download":"Download apps"},"solutions":{"title":"Solutions","allSpecialties":"All Specialties","dental":"Dental Clinic Software","dermatology":"Dermatology Clinic Software","pediatric":"Pediatric Clinic Software","vsVezeeta":"TabeebHub vs Vezeeta","vsDentolize":"TabeebHub vs Dentolize","bestEgypt":"Best Clinic Software in Egypt"},"company":{"title":"Company","about":"About","contact":"Contact"},"legal":{"title":"Legal","termsOfService":"Terms of Service","privacyPolicy":"Privacy Policy","refundPolicy":"Refund & Cancellation Policy","serviceDeliveryPolicy":"Service Delivery Policy"},"support":{"title":"Support","help":"Help Center","docs":"Documentation","findClinic":"Find a clinic or doctor"},"footerAttribution":"© {year} TabeebHub. Made with ❤️ by Carmel","footerLocation":"Degla Towers, Memaar Al Morshedy — Nasr City, Cairo 11765, Egypt","contact":{"title":"Contact us","whatsapp":"WhatsApp"}}},"pricing":{"title":"Simple, Transparent Pricing","subtitle":"Choose the plan that works for your clinic. Start free, upgrade anytime.","monthly":"Monthly","yearly":"Yearly","toggleBilling":"Toggle billing period","save17":"Save 17%","month":"month","year":"year","free":"Free","freeForever":"Free forever","custom":"Custom","contactSales":"Contact Sales","getStarted":"Get Started","getStartedFree":"Get Started Free","popular":"Most Popular","plans":{"trial":{"name":"Free Plan","description":"Use TabeebHub free forever — no credit card required"},"starter":{"name":"Starter","description":"Essential tools for individual practitioners and small clinics"},"growth":{"name":"Growth","description":"Advanced features for growing clinics with multiple locations"},"pro":{"name":"Pro","description":"Unlimited power for multi-location clinics and enterprise practices"}},"trust":{"title":"Why Clinics Trust TabeebHub","security":"Data Security","securityDesc":"End-to-end encryption and secure data storage compliant with healthcare standards","compliance":"Healthcare Compliant","complianceDesc":"Meets Egyptian healthcare regulations and international data protection standards","availability":"99.9% Uptime","availabilityDesc":"Reliable cloud infrastructure with automatic backups and disaster recovery","support":"24/7 Support","supportDesc":"Dedicated support team available around the clock in Arabic and English"},"faq":{"title":"Frequently Asked Questions","trialQuestion":{"question":"Is TabeebHub really free?","answer":"Yes — the Starter plan is free forever, with no credit card required. You can upgrade to a paid plan (Growth or Pro) anytime for more capacity, and your data is always preserved."},"paymentQuestion":{"question":"What payment methods do you accept?","answer":"We accept credit/debit cards (Visa, MasterCard), bank transfers, and mobile wallets like Vodafone Cash and Fawry. All payments are processed securely."},"upgradeQuestion":{"question":"Can I upgrade or downgrade my plan?","answer":"Yes, you can change your plan at any time. Upgrades take effect immediately, and downgrades apply at the end of your current billing period."},"cancelQuestion":{"question":"What's your cancellation policy?","answer":"You can cancel your subscription at any time. Your access will continue until the end of your current billing period. No hidden fees or penalties."},"dataQuestion":{"question":"What happens to my data if I cancel?","answer":"Your data is retained for 90 days after cancellation. You can export all your data anytime. After 90 days, data is permanently deleted per our privacy policy."},"supportQuestion":{"question":"What support is included?","answer":"All plans include email support. Starter and Pro plans include priority support with faster response times. Enterprise plans get dedicated account management."}},"signupBanner":{"title":"Start your free clinic account","description":"Choose a plan below to create your account and start managing your clinic in minutes."},"cta":{"title":"Ready to Transform Your Clinic?","description":"Join thousands of healthcare providers who trust TabeebHub to manage their practice efficiently."}},"notifications":{"patientFallback":"Patient","toastPreview":{"bulkNew":"{count, plural, one {1 new notification} other {# new notifications}}","markAllReadSuccess":"All notifications marked as read","markAllReadError":"Failed to mark all notifications as read","atClinic":"At {clinic}"},"financialToast":{"paymentRequiredTitle":"Payment required for {patientName}","paymentRequiredDescription":"Outstanding: {amount}","paymentCollectedTitle":"Payment collected for {patientName}","paymentDeferredTitle":"Payment deferred for {patientName}","paymentDeferredDescription":"{amount} deferred to next visit"},"queueToast":{"patientArrivedTitle":"New Patient Arrived","patientArrivedWithName":"{patientName} has checked in","patientArrivedGeneric":"A new patient has checked in to the queue","bookedTitle":"New Booking","bookedWithNameAndWhen":"{patientName} is booked for {when}","bookedWithName":"{patientName} has a new booking","bookedGeneric":"A new booking was made","withAssistantTitle":"Patient Ready","withAssistantWithName":"{patientName} is now with assistant","withAssistantGeneric":"A patient is now with the assistant","readyForDoctorTitle":"Ready for Doctor","readyForDoctorWithName":"{patientName} is ready for the doctor","readyForDoctorGeneric":"A patient is ready for the doctor","withDoctorTitle":"Patient with Doctor","withDoctorWithName":"{patientName} is now with the doctor","withDoctorGeneric":"A patient is now with the doctor","visitDoneTitle":"Visit Completed","visitDoneWithName":"{patientName}'s visit has been completed","visitDoneGeneric":"A visit has been completed","cancelledTitle":"Appointment Cancelled","cancelledWithName":"{patientName}'s appointment was cancelled","cancelledGeneric":"An appointment was cancelled","descriptionAtClinic":"{description} · at {clinic}","connectionLostTitle":"Connection Lost","offlineDescription":"You appear to be offline. Will reconnect when back online.","serverUnreachableDescription":"Server unreachable. Attempting to reconnect...","genericDisconnectDescription":"Real-time updates unavailable. Will retry automatically."},"persisted":{"visitCompleted":{"title":"Visit Completed","outstanding":"Visit completed for {patientName} — Outstanding balance: {amount}.","paid":"Visit completed for {patientName} — Payment settled.","deferred":"Visit completed for {patientName} — Payment deferred to next visit.","default":"Visit completed for {patientName}.","outstandingAt":"Visit completed for {patientName} at {clinicName} — Outstanding balance: {amount}.","paidAt":"Visit completed for {patientName} at {clinicName} — Payment settled.","deferredAt":"Visit completed for {patientName} at {clinicName} — Payment deferred to next visit.","defaultAt":"Visit completed for {patientName} at {clinicName}.","action":"View Completed"},"checkIn":{"title":"New Patient Checked In","withQueue":"{patientName} has checked in and is waiting (Queue #{queueNumber}).","noQueue":"{patientName} has checked in and is waiting.","withQueueAt":"{patientName} has checked in at {clinicName} and is waiting (Queue #{queueNumber}).","noQueueAt":"{patientName} has checked in at {clinicName} and is waiting.","action":"View Queue"},"patientReady":{"title":"Patient Ready for Consultation","withQueue":"{patientName} is ready for consultation (Queue #{queueNumber}).","noQueue":"{patientName} is ready for consultation.","withQueueAt":"{patientName} is ready for consultation at {clinicName} (Queue #{queueNumber}).","noQueueAt":"{patientName} is ready for consultation at {clinicName}.","action":"Start Visit"},"booked":{"title":"New Appointment Booked","message":"{patientName} is booked at {clinicName}.","messageWhen":"{patientName} is booked at {clinicName} for {when}.","clinicFallback":"the clinic","action":"View Appointments"},"seriesCreated":{"title":"Appointments Scheduled","message":"A course of appointments was scheduled for {patientName} (sessions: {sessions}).","messageAt":"A course of appointments was scheduled for {patientName} at {clinicName} (sessions: {sessions}).","action":"View Appointments"},"clinical":{"allergyTitle":"Allergy Override Used","allergyMessage":"Allergy override applied for {patientName} ({count, plural, one {1 conflict} other {# conflicts}}).","duplicateTitle":"Duplicate Medicine Override Used","duplicateMessage":"Duplicate medicine override applied for {patientName} ({count, plural, one {1 duplicate} other {# duplicates}}).","drugTitle":"Drug Interaction Override Used","drugMessage":"Drug interaction override applied for {patientName} ({count, plural, one {1 interaction} other {# interactions}}).","viewPrescription":"View Prescription"},"security":{"newDeviceTitle":"New Device Login","newDeviceWithInfo":"Your account was accessed from a new device: {deviceInfo}","newDeviceNoInfo":"Your account was accessed from a new device."},"billing":{"trialTitle":"Trial Expiring Soon","trialMessage":"Your free trial expires in {days, plural, one {1 day} other {# days}}. Upgrade now to continue using all features.","upgradeNow":"Upgrade Now","expiredTitle":"Subscription Expired","expiredMessage":"Your {planName} subscription has expired. Renew now to restore full access.","renewNow":"Renew Subscription"},"portal":{"action":"View appointment","actionAppointments":"View appointments","actionReceipt":"View","booked":{"title":"Appointment booked","message":"Your appointment at {clinicName} has been booked.","messageWhen":"Your appointment at {clinicName} has been booked for {when}.","dependentTitle":"Appointment booked for {subjectName}","dependentMessage":"{subjectName}'s appointment at {clinicName} has been booked.","dependentMessageWhen":"{subjectName}'s appointment at {clinicName} has been booked for {when}."},"series":{"title":"Appointments booked","message":"{clinicName} booked a course of appointments for you (sessions: {count}). Open your appointments to see the dates.","dependentTitle":"Appointments booked for {subjectName}","dependentMessage":"{clinicName} booked a course of appointments for {subjectName} (sessions: {count}). Open the appointments to see the dates."},"reminder24h":{"title":"Appointment reminder","message":"Reminder: your appointment at {clinicName} is on {when}.","dependentTitle":"Appointment reminder for {subjectName}","dependentMessage":"Reminder: {subjectName}'s appointment at {clinicName} is on {when}."},"reminder1h":{"title":"Appointment in about an hour","message":"Reminder: your appointment at {clinicName} is on {when}.","dependentTitle":"{subjectName}'s appointment in about an hour","dependentMessage":"Reminder: {subjectName}'s appointment at {clinicName} is on {when}."},"receipt":{"creditSuffix":"; {amount} is kept as credit at the clinic","payment":{"title":"Payment received · {clinicName}","message":"{clinicName} recorded your payment of {amount}{creditSuffix}.","dependentTitle":"Payment received for {subjectName}","dependentMessage":"{clinicName} recorded a payment of {amount} for {subjectName}{creditSuffix}."},"refund":{"title":"Refund recorded · {clinicName}","message":"{clinicName} recorded a refund of {amount} to you.","dependentTitle":"Refund recorded for {subjectName}","dependentMessage":"{clinicName} recorded a refund of {amount} for {subjectName}."},"creditUsed":{"title":"Credit used · {clinicName}","message":"{amount} of your credit at {clinicName} was used toward a visit.","dependentTitle":"Credit used for {subjectName}","dependentMessage":"{amount} of {subjectName}'s credit at {clinicName} was used toward a visit."},"creditRefunded":{"title":"Credit refunded · {clinicName}","message":"{clinicName} refunded {amount} of your credit to you.","dependentTitle":"Credit refunded for {subjectName}","dependentMessage":"{clinicName} refunded {amount} of {subjectName}'s credit."},"creditAdded":{"title":"Credit kept · {clinicName}","message":"{clinicName} kept {amount} you paid for a cancelled visit as credit for your next visit.","dependentTitle":"Credit kept for {subjectName}","dependentMessage":"{clinicName} kept {amount} paid for {subjectName}'s cancelled visit as credit for the next visit."}},"cancelledByClinic":{"dependentTitle":"Appointment cancelled for {subjectName}","dependentMessage":"{clinicName} cancelled {subjectName}'s appointment for {when}. Call the clinic or book another time.","action":"Book another time"},"rescheduledByClinic":{"dependentTitle":"Appointment moved for {subjectName}","dependentMessage":"{clinicName} moved {subjectName}'s appointment from {previousWhen} to {when}. If that does not suit you, call the clinic.","dependentMessageNoPrevious":"{clinicName} moved {subjectName}'s appointment to {when}. If that does not suit you, call the clinic."}},"staffInvite":{"title":"Clinic invitation","message":"{practice} invited you to {clinic} as {role}.","practice":"Dr. {name}'s clinics","clinicFallback":"a clinic","action":"Review","roles":{"DOCTOR":"Doctor","ASSISTANT":"Assistant","RECEPTIONIST":"Receptionist"}},"front":{"clinicFallback":"the clinic","doctorFallback":"the doctor","money":"{amount} EGP","moneyOther":"{amount} {currency}","reasonSuffix":": {reason}","deadlineSuffixDue":" Due {deadline}.","deadlineSuffixRolled":" Rolled into next week’s statement.","booking":{"created":{"title":"New booking request","message":"{subjectName} asked for {when}. Accept or decline from the requests inbox.","action":"Review request"},"instantBooked":{"title":"Appointment booked","message":"You are booked at {clinicName} for {when}. No confirmation needed — just come on time.","action":"View appointment","staff":{"title":"Online booking","message":"{subjectName} booked online for {when}.","action":"View appointments"},"dependent":{"title":"Appointment booked for {subjectName}","message":"{subjectName} is booked at {clinicName} for {when}. No confirmation needed — just come on time.","action":"View appointment"}},"accepted":{"title":"Appointment confirmed","message":"{clinicName} confirmed your appointment for {when}.","action":"View appointment","dependent":{"title":"Appointment confirmed for {subjectName}","message":"{clinicName} confirmed {subjectName}'s appointment for {when}.","action":"View appointment"}},"declined":{"title":"Request declined","message":"{clinicName} could not take your request{reasonSuffix}. Nothing was booked — you can pick another time or call the clinic.","action":"Book another time","dependent":{"title":"Request declined for {subjectName}","message":"{clinicName} could not take the request for {subjectName}{reasonSuffix}. Nothing was booked — you can pick another time or call the clinic.","action":"Book another time"}},"proposed":{"title":"Another time suggested","message":"{clinicName} suggested {when} instead{reasonSuffix}. Confirm it from your request, or decline and pick another.","action":"Review suggestion","dependent":{"title":"Another time suggested for {subjectName}","message":"{clinicName} suggested {when} for {subjectName} instead{reasonSuffix}. Confirm it from the request, or decline and pick another.","action":"Review suggestion"}},"expired":{"title":"Request expired","message":"{clinicName} did not answer your request in time. Nothing was booked — send a new request or call the clinic.","action":"Book again","dependent":{"title":"Request expired for {subjectName}","message":"{clinicName} did not answer the request for {subjectName} in time. Nothing was booked — send a new request or call the clinic.","action":"Book again"}},"cancelledByPatient":{"title":"Booking request withdrawn","message":"{subjectName} withdrew the booking request for {when}.","action":"Open inbox"},"proposalAccepted":{"title":"Suggested time accepted","message":"{subjectName} accepted {when}. The appointment is on the schedule.","action":"View schedule"},"quotaBlocked":{"title":"Online booking waiting on your plan","message":"A patient booked online but your monthly appointment capacity is used up. Add a top-up to accept it.","action":"Add appointments"}},"appointment":{"cancelledByPatient":{"title":"Appointment cancelled by patient","message":"{subjectName} cancelled their appointment for {when}.","action":"View schedule"},"cancelledByClinic":{"title":"Appointment cancelled","message":"{clinicName} cancelled your appointment for {when}. Call the clinic or book another time.","action":"Book another time"},"rescheduledByClinic":{"title":"Appointment moved","message":"{clinicName} moved your appointment from {previousWhen} to {when}. If that does not suit you, call the clinic.","action":"View appointment"},"rescheduledByClinicNoPrevious":"{clinicName} moved your appointment to {when}. If that does not suit you, call the clinic."},"consultation":{"requested":{"title":"New online consultation request","message":"{subjectName} asked for an online consultation on {when}. Accept to send the payment details, or decline.","action":"Review request"},"accepted":{"title":"Consultation accepted — pay to confirm","message":"Dr {doctorName} accepted your request for {when}. Send {amount} to {clinicName} before {deadline}, then tap “I’ve paid”.","action":"Pay now"},"paymentDueSoon":{"title":"30 minutes left to pay","message":"Send {amount} to {clinicName} before {deadline} to keep your consultation on {when}, then tap “I’ve paid”.","action":"Pay now"},"paymentReported":{"title":"Patient reports a payment","message":"{subjectName} says {amount} was sent for the consultation on {when}. Check your account and confirm.","action":"Confirm payment"},"paymentRejected":{"title":"Clinic could not match your payment","message":"{clinicName} could not find your payment{reasonSuffix}. Do not pay again — check the reference or screenshot and resend the details, or contact the clinic.","action":"Check my payment"},"paymentClaimed":{"title":"Patient says they paid","message":"{subjectName} says {amount} was sent for the consultation on {when}, which is no longer going ahead. Check your account and refund it.","action":"Check and refund"},"confirmed":{"title":"Consultation confirmed","message":"Your online consultation with Dr {doctorName} is on {when}. The room opens at {joinableFrom} — we will remind you.","action":"View consultation","staff":{"title":"Consultation confirmed","message":"{subjectName} is confirmed for {when}. Payment received by the clinic.","action":"Open"}},"expiredNotPaid":{"title":"Payment window closed","message":"The time to pay for your consultation on {when} has passed. If you already paid, {clinicName} can still confirm it today — otherwise request a new time.","action":"View details"},"expiredNotAnswered":{"title":"Request expired","message":"Dr {doctorName} did not answer your request for {when} in time. Nothing was paid — you can request another time.","action":"Request again"},"expiredStaff":{"title":"Request expired unpaid","message":"{subjectName}’s consultation on {when} expired without a confirmed payment. If the money arrived, you can still confirm it today.","action":"Open"},"paymentUnconfirmed":{"title":"Payment not confirmed in time","message":"{clinicName} did not confirm your payment for {when} before the time passed. If you paid, the clinic owes you a refund — open the consultation to follow up.","action":"View details","staff":{"title":"Payment left unconfirmed","message":"{subjectName}’s reported payment for {when} was never confirmed and the time passed. If the money arrived, refund it and record the refund.","action":"Open"}},"reminder24h":{"title":"Tomorrow: online consultation","message":"Your consultation with Dr {doctorName} is {when}. Have your phone charged and a quiet place ready.","action":"View consultation","staff":{"title":"Tomorrow: online consultation","message":"{subjectName} at {when}.","action":"Open"}},"reminder1h":{"title":"In one hour: online consultation","message":"Your consultation with Dr {doctorName} starts at {when}. The room opens at {joinableFrom}.","action":"View consultation","staff":{"title":"In one hour: online consultation","message":"{subjectName} at {when}.","action":"Open"}},"roomOpen":{"title":"Your room is open","message":"Dr {doctorName} is expecting you at {when}. Enter the consultation now.","action":"Enter consultation","staff":{"title":"Room open","message":"{subjectName}’s consultation starts at {when}. Enter when you are ready.","action":"Enter"}},"patientWaiting":{"title":"{subjectName} is waiting","message":"{subjectName} joined the consultation room.","action":"Join now"},"newMessage":{"title":"New message from Dr {doctorName}","message":"Open the consultation to read it and reply.","action":"Open consultation","staff":{"title":"New message from {subjectName}","message":"Open the consultation to read it and reply.","action":"Open"}},"runningLate":{"title":"Dr {doctorName} is running late","message":"About {minutes} minutes late. Your room stays open — we will tell you when the doctor joins.","action":"View consultation"},"followUpSuggested":{"title":"Follow-up suggested","message":"Dr {doctorName} suggests a follow-up online in about {inDays} days · {amount}. Request it when it suits you.","action":"Book the follow-up"},"proposed":{"title":"New time suggested","message":"Dr {doctorName} suggested {when} instead. Accept it, or decline and we will tell the clinic.","action":"Review suggestion"},"proposalAccepted":{"title":"New time accepted","message":"{subjectName} accepted {when}. Everything else stays as it was.","action":"Open"},"proposalDeclined":{"title":"New time declined","message":"{subjectName} could not make {when}. Open the consultation to see what happens next.","action":"Open"},"cancelledByPatient":{"title":"Consultation cancelled by patient","message":"{subjectName} cancelled the consultation on {when}.","action":"Open"},"cancelledByClinic":{"title":"Consultation cancelled by the clinic","message":"{clinicName} cancelled your consultation on {when}. Anything you already paid will be refunded by the clinic.","action":"View details"},"cancelledByClinicProposal":{"title":"Consultation cancelled","message":"The new time did not suit you, so your consultation on {when} was cancelled. Anything you already paid will be refunded by {clinicName}.","action":"View details"},"declined":{"title":"Request declined","message":"Dr {doctorName} could not take your request{reasonSuffix}. Nothing was paid. You can request another time.","action":"Request again"},"declinedClinicCancelled":{"title":"Request cancelled by the clinic","message":"{clinicName} cancelled your request for {when}{reasonSuffix}. If you already paid, the clinic will refund it. You can request another time.","action":"Request again"},"noShowPatient":{"title":"You missed your consultation","message":"You did not join your consultation with Dr {doctorName} on {when}. The clinic keeps the payment, as shown before you paid.","action":"View details","staff":{"title":"Patient did not join","message":"{subjectName} did not join the consultation on {when}. The payment stays with the clinic.","action":"Open"}},"noShowDoctor":{"title":"The doctor did not join","message":"Dr {doctorName} did not join your consultation on {when}. {clinicName} will refund what you paid.","action":"View details","staff":{"title":"Missed consultation","message":"You did not join {subjectName}’s consultation on {when}. Refund the patient; this counts against your reliability.","action":"Record refund"}},"nobodyJoined":{"title":"Neither side joined","message":"Nobody joined the consultation on {when}. {clinicName} will refund what you paid; you can request a new time.","action":"Request again","staff":{"title":"Neither side joined","message":"Neither you nor {subjectName} joined the consultation on {when}. Refund the patient and record it.","action":"Record refund"}},"suspended":{"title":"Consultation on hold","message":"Your consultation on {when} is on hold. The clinic will contact you about a new time or a refund.","action":"View details","staff":{"title":"Consultation suspended","message":"{subjectName}’s consultation on {when} is suspended{reasonSuffix}. Contact the patient about a new time or a refund.","action":"Open"}},"suspendedReasons":{"PLATFORM_SUSPENDED":"online consultations are paused by TabeebHub","SUBSCRIPTION_PAUSED":"your clinic subscription is paused"},"completed":{"title":"Consultation ended","message":"Your consultation with Dr {doctorName} has ended. Your prescription and notes, if any, are in the consultation.","action":"View details"},"refundDue":{"title":"Refund due from {clinicName}","message":"{clinicName} owes you {amount} for the consultation on {when}. The clinic sends it back the way you paid.","action":"View details","staff":{"title":"Refund due","message":"Refund {amount} to {subjectName} for the consultation on {when}, then record it.","action":"Record refund"}},"refundRecorded":{"title":"Refund recorded","message":"{clinicName} recorded your refund of {amount}. If it has not reached you, contact the clinic.","action":"View details"},"paymentNotReceived":{"title":"No payment found","message":"{clinicName} checked and found no payment of {amount} for the consultation on {when}. If you did send it, report a problem from the consultation with your transfer receipt.","action":"View details"},"caseOpened":{"title":"Patient opened a case","message":"{subjectName} opened a case on the consultation on {when}{reasonSuffix}.","action":"Open case"},"rescheduleRequested":{"title":"Patient asks for another time","message":"{subjectName} asks to move the consultation on {when}{reasonSuffix}. Propose a new time from the consultation.","action":"Propose a new time"},"confirmBlocked":{"title":"Consultation waiting on your plan","message":"{subjectName} paid for an online consultation on {when}, but your monthly appointment capacity is used up ({usage}/{limit}). Add a top-up, then confirm it.","action":"Add appointments"},"autoAcceptRefusedFee":{"title":"Request waiting on your fee balance","message":"{subjectName} requested an online consultation on {when}, but your platform fee balance cannot cover it. Top up, then accept it.","action":"Top up"},"autoAcceptRefusedPlan":{"title":"Request waiting on your plan","message":"{subjectName} requested an online consultation on {when}, but your monthly appointment capacity is used up. Add a top-up, then accept it.","action":"Add appointments"},"notAnswered":{"title":"Request not answered","message":"Dr {doctorName} did not answer your request for {when} in time. Nothing was paid — you can request another time or call the clinic.","action":"Request again"},"slotPassed":{"title":"The time passed","message":"The time you asked for ({when}) passed before Dr {doctorName} answered. Nothing was paid — you can request another time.","action":"Request again"},"suspensionCountdown":{"title":"Your consultation ends soon","message":"TabeebHub is pausing online consultations. Your call with Dr {doctorName} ends at {deadline} — finish your questions now. The clinic will contact you if anything is left.","action":"Back to the consultation","staff":{"title":"Session ends at {deadline}","message":"TabeebHub is pausing online consultations. Your session with {subjectName} ends at {deadline} — wrap up and write your notes; the visit stays open for them.","action":"Open"}},"doorClosedCredential":{"title":"Your online consultations are closed","message":"Your verified credential doesn't cover {specialty}, so consultations can't record at {clinicName}. Move them to a clinic it covers.","action":"Consultation settings"}},"publicProfile":{"verified":{"title":"Your page is verified","message":"Your syndicate registration was checked on {verifiedAt}. Your public page now carries the verified badge.","action":"Open my page"},"verifiedUnpublished":{"title":"You are verified","message":"TabeebHub checked your syndicate registration on {verifiedAt}. Press Publish on your page and it opens to patients.","action":"Open my page"},"rejected":{"title":"Verification not approved","message":"We could not verify your registration{reasonSuffix}. Fix the details and submit again.","action":"Review"}},"platformFees":{"policyChanged":{"title":"Online consultation fee update","message":"From {effectiveFrom}, one online consultation costs {feePerBlockEgp} EGP for {blockMinutes} minutes of call time. Consultations already requested keep the price they were quoted.","action":"Review settings"},"lowBalance":{"title":"Your funded-time balance is running low","message":"{amount} is left. Top up so the next online consultation request is not refused.","action":"Top up"},"lowBalanceNone":{"title":"Your funded-time balance has run out","message":"Nothing is left, so the next online consultation request will be refused. Top up to start accepting again.","action":"Top up"},"statement":{"title":"Weekly platform fee statement","message":"{referenceCode}: {amount} in fees for last week’s online consultations.{deadlineSuffix}","action":"View statement"},"reminder":{"title":"Platform fees due soon","message":"{amount} on {referenceCode} is due {deadline}. Online consultations pause two days after the due date if unpaid.","action":"Pay now"},"finalNotice":{"title":"Final notice: platform fees","message":"{amount} on {referenceCode} is still unpaid. Online consultations stay paused until it is settled.","action":"Pay now"},"overdue":{"title":"Platform fees overdue","message":"{amount} on {referenceCode} is overdue. New online consultations pause on {deadline} unless it is paid.","action":"Pay now"},"paused":{"title":"Online consultations paused","message":"Pay {amount} in platform fees to resume accepting online consultations. Your clinic, patients and records are unaffected.","action":"Pay platform fees"},"paid":{"title":"Platform fee payment received","message":"{amount} was credited to your platform fee account.","action":"View account"}}}},"bell":{"label":"Notifications","labelWithCount":"{count, plural, =1 {1 unread notification} other {# unread notifications}}"},"panel":{"title":"Notifications","itemRead":"Read","itemMarkAsRead":"Mark as read","markAllRead":"Mark all read","alertSounds":"Alert sounds for new notifications and doctor calls","toggleFilters":"Toggle filters","notificationsList":"Notifications list","endOfList":"You've reached the end","viewAll":"View all notifications"},"empty":{"title":"No notifications","description":"You're all caught up! Check back later for updates.","descriptionStaff":"You're all caught up. Alerts meant for you — a booking or patient assigned to you, a visit ready to collect, an online booking request — appear here, for every clinic you work at.","filteredTitle":"No matching notifications","filteredDescription":"Try adjusting your filters to see more results."},"filters":{"typeLabel":"Filter by type","severityLabel":"Filter by severity","unreadOnly":"Unread only"},"types":{"APPOINTMENT":"Appointments","PRESCRIPTION":"Prescriptions","CLINICAL_ALERT":"Clinical Alerts","SECURITY":"Security","SYSTEM":"System","BILLING":"Billing"},"severity":{"INFO":"Info","WARNING":"Warning","CRITICAL":"Critical"},"titles":{"appointmentCreated":"New Appointment","patientReady":"Patient Ready","prescriptionFinalized":"Prescription Finalized","allergyOverride":"Allergy Override Used","duplicateOverride":"Duplicate Override Used","drugInteractionOverride":"Drug Interaction Override","newDeviceLogin":"New Device Login","trialExpiring":"Trial Expiring Soon","subscriptionExpired":"Subscription Expired"},"messages":{"appointmentCreated":"A new appointment has been scheduled for {patientName}.","patientReady":"{patientName} is ready and waiting to be seen.","prescriptionFinalized":"Prescription for {patientName} has been finalized.","allergyOverride":"Allergy alert was overridden for {medicineName}. Reason: {reason}","duplicateOverride":"Duplicate medication alert was overridden for {medicineName}.","drugInteractionOverride":"Drug interaction alert was overridden for {drug1} and {drug2}.","newDeviceLogin":"Your account was accessed from a new device: {deviceInfo}","trialExpiring":"Your trial ends in {days} days. Upgrade now to keep your data.","subscriptionExpired":"Your subscription has expired. Please renew to continue using premium features."},"actions":{"viewAppointment":"View Appointment","viewPatient":"View Patient","viewPrescription":"View Prescription","reviewAuditLog":"Review Audit Log","manageSession":"Manage Sessions","upgradePlan":"Upgrade Plan","renewSubscription":"Renew Now"}},"register":{"title":"Create Your Account","description":"Start free and transform your clinic management","steps":{"account":"Account","clinic":"Clinic","verify":"Verify","confirm":"Confirm","accountTitle":"Account Information","accountDescription":"Enter your personal details to create your doctor account","clinicTitle":"Clinic Setup","clinicDescription":"Would you like to set up your clinic right after registration?","confirmTitle":"Confirm & Create Account","confirmDescription":"Review your information before creating your account"},"fields":{"name":"Full Name","phone":"Phone Number","email":"Email Address","password":"Password","confirmPassword":"Confirm Password"},"placeholders":{"name":"Dr. Ahmed Mohamed","phone":"Enter phone number","email":"doctor@example.com","password":"Create a strong password","confirmPassword":"Re-enter your password"},"hints":{"phoneFormat":"We’ll send a WhatsApp code to this number to verify it."},"validation":{"nameMinLength":"Name must be at least 2 characters","nameTooLong":"Name is too long","emailRequired":"Email address is required","invalidEmail":"Please enter a valid email address","passwordMinLength":"At least 8 characters","passwordUppercase":"One uppercase letter","passwordLowercase":"One lowercase letter","passwordNumber":"One number","passwordsDoNotMatch":"Passwords do not match","invalidPhone":"Please enter a valid phone number for the selected country"},"actions":{"next":"Continue","back":"Back","createAccount":"Create Account","creating":"Creating your account..."},"clinicOptions":{"createNow":"Set up my clinic now","createNowDescription":"After registration, you'll be guided through a quick clinic setup wizard","skipNow":"I'll do this later","skipNowDescription":"You can create your clinic anytime from the dashboard"},"summary":{"account":"Account Details","nextSteps":"After Registration","clinicNext":"You'll set up your clinic in the next step","clinicLater":"You can create your clinic anytime from the dashboard"},"security":{"title":"Your data is secure","description":"We use bank-level encryption to protect your data. Your information is stored in Egypt and never shared with third parties."},"popularBadge":"Most Popular","free":"Free","egpMonth":"EGP/month","optional":"optional","hasAccount":"Already have an account?","signIn":"Sign in","backToPricing":"Back to pricing","trustBadges":{"secure":"256-bit Encryption","hipaaReady":"HIPAA Ready","localData":"Data in Egypt"},"promotion":{"title":"This number already has a TabeebHub account","body":"We'll add doctor access to it — your existing records stay. Because you're upgrading an account that already exists, we verify by phone, and the password you just chose will replace your current one."}},"blog":{"article":{"readArticle":"Read Article","readTime":"{minutes} min read","readTimeShort":"{minutes} min","relatedArticles":"Related Articles"},"breadcrumb":{"home":"Home","blog":"Blog"}},"share":{"public":{"welcome":"Shared securely by your clinic","prescriptionDetails":"Prescription","invoiceDetails":"Invoice","doctor":"Doctor","patient":"Patient","date":"Date","age":"Age","gender":"Gender","genderMale":"Male","genderFemale":"Female","years":"years","medicine":"Medicine","instructions":"Instructions","notes":"Notes","diagnosis":"Diagnosis","nextAppointment":"Next appointment","medicinesTitle":"Medicines","noMedicines":"No medicines listed","item":"Item","amount":"Amount","subtotal":"Subtotal","discount":"Discount","total":"Total","paid":"Paid","remaining":"Remaining","status":"Status","statusPaid":"Paid","statusPartial":"Partially paid","statusUnpaid":"Unpaid","statusDeferred":"Deferred","scanToView":"Scan to open on your phone","print":"Print","download":"Download PDF","poweredBy":"Powered by TabeebHub","secureNote":"This is a private, secure link. Please do not share it publicly.","notFoundTitle":"Link not found","notFoundBody":"This share link is invalid, has expired, or has been revoked. Please ask your clinic for a new link.","errorTitle":"Something went wrong","errorBody":"We couldn't load this document. Please try again in a moment.","retry":"Try again"}},"online":{"types":{"EXAMINATION":"Examination","CONSULTATION":"Consultation","FOLLOW_UP":"Follow-up","SERVICE":"Service"},"relations":{"MOTHER":"Mother","FATHER":"Father","GRANDPARENT":"Grandparent","SIBLING":"Sibling","OTHER":"Other","OWNER":"Owner"},"subject":{"loading":"Loading who you can book for…","optional":"(optional)","person":{"whoFor":"Who is this for?","myself":"Myself","add":"Someone else","addHint":"A child, a parent — anyone you bring with you","name":"Their full name","age":"Date of birth","ageHint":"The clinic needs it to know which care applies. If you only know it roughly, switch to “Approximate age”.","gender":"Sex","genderUnset":"Prefer not to say","male":"Male","female":"Female","relation":"I am the","noOwnRecord":"This account has no record of its own yet. Choose or add the person this visit is for."},"animal":{"whoFor":"Which animal is this for?","add":"Add an animal","addHint":"A name and which animal — that is all we need to book","name":"Your animal’s name","age":"Age","ageHint":"Not sure? Leave it blank — the vet will estimate it at the visit.","species":"Which animal is it?","speciesOther":"Which animal?","speciesOtherPlaceholder":"In your own words","relationStated":"You will be recorded as the owner."},"speciesOption":{"DOG":"Dog","CAT":"Cat","OTHER":"Another animal"},"missing":{"SELF_UNAVAILABLE":"Your own record has not been created yet. Choose or add the person this visit is for.","SELF_NOT_TREATED_HERE":"This clinic treats animals. Choose the animal this visit is for.","PATIENT_REQUIRED":"Choose who this visit is for.","NAME_REQUIRED":"A name is needed — two letters or more.","DATE_OF_BIRTH_REQUIRED":"A date of birth is needed. If you only know it roughly, switch to “Approximate age”.","DATE_OF_BIRTH_INVALID":"That is not a date we can read.","DATE_OF_BIRTH_IN_FUTURE":"That date has not arrived yet.","SPECIES_REQUIRED":"Say which animal this is — the vaccination card is chosen from it.","SPECIES_FORBIDDEN":"This clinic treats people, so there is no animal to name here.","SPECIES_OTHER_REQUIRED":"Write which animal it is.","SPECIES_OTHER_FORBIDDEN":"Remove what is written, or choose “Another animal”."}},"public":{"verified":"Verified","notFound":{"pasteLabel":"Paste the link your clinic sent you","pastePlaceholder":"Paste the link your clinic sent you","pasteInvalid":"That doesn't look like a TabeebHub page link.","pasteNotFound":"We couldn't find a page at that link. Check it with your clinic and try again.","open":"Open"},"error":{"title":"We couldn't load this page","message":"Something went wrong on our side, not yours. Try again in a moment.","retry":"Try again","find":"Find a clinic or doctor"},"confirm":{"instant":"Instant confirmation","request":"The clinic confirms"},"inPerson":"In person","chrome":{"brand":"TabeebHub","find":"Find a clinic","myAppointments":"My appointments","poweredBy":"Powered by TabeebHub","forClinics":"For clinics"},"checkpoint":{"copyLink":"Copy link — open it on your phone","copied":"Link copied — open it on your phone and sign in as a patient.","copyFailed":"Could not copy the link.","staffSignOutHint":"This signs you out of the clinic app on this device."},"durationHours":"{count, plural, one {# hour} other {# hours}}","durationMinutes":"{count, plural, one {# minute} other {# minutes}}"},"book":{"title":"Book a clinic visit","step":"Step {n} of {total}","backToPage":"Back to {name}","modeInstant":"Instant confirmation","modeRequest":"Request — {clinic} answers, and has until {until}","visitType":"Visit type","pickDay":"Pick a day","pickTime":"Pick a time","noSlots":"No open times on this day.","noSlotsAtAll":"No open times before {date}. Call the clinic, or check back later.","closed":{"title":"Not taking online bookings right now","body":"{clinic} is not taking online bookings at the moment. You can still call the clinic, or check back later.","paused":"{clinic} is temporarily closed. You can still call the clinic, or check back later.","call":"Call the clinic","whatsapp":"WhatsApp the clinic","backToPage":"Back to the clinic's page"},"full":"Full","loadingTimes":"Loading available times…","note":"Anything the clinic should know?","optional":"(optional)","continue":"Continue","back":"Back","retry":"Try again","price":"Price","keptForYou":"{clinic} · {when} — we’ve saved your choices. The time isn’t reserved until you confirm.","signInToConfirm":"Continue with your phone number","signInHint":"We’ll send a WhatsApp code to your phone. The clinic receives your number with the request — it needs it to confirm the time with you.","staffSignedIn":"You're signed in as clinic staff. Online bookings are made from a patient account — you can enable patient access on this same phone number.","signOutAndContinue":"Sign out and continue as a patient","review":"Review","confirm":"Confirm booking","send":"Send request","instantHint":"You'll be booked immediately. The clinic will see your appointment right away.","requestHint":"{clinic} has until {until} to answer.","done":{"bookedTitle":"You're booked","bookedBody":"See you at {clinic} on {when}.","requestedTitle":"Request sent","requestedBody":"{clinic} has until {until} to answer your request for {when}.","howYouHear":"If the clinic confirms, we’ll message you on WhatsApp. If it suggests another time or can’t take you, you’ll see it here — check back by {until}.","type":"Visit","for":"For","address":"Address","cancel":"Cancellation","cancelUntil":"Free until {minutes} minutes before the time","directions":"Directions","addToCalendar":"Add to calendar","calendarTitle":"Appointment at {clinic}","call":"Call the clinic","whatsapp":"WhatsApp","view":"View details","another":"Book another","downloadIcs":"Save .ics file","viewRequest":"Follow this request","with":"With","calendarTitleWith":"Appointment with {doctor} at {clinic}","cancelUntilDuration":"Free until {duration} before the time","cancelUntilTime":"Free to cancel until {time}","bookedTitleFor":"{name} is booked","requestedTitleFor":"Request sent for {name}"},"errors":{"slotTaken":"That time was just taken. Pick another.","tooMany":"You already have requests waiting at this clinic. Wait for an answer before sending another.","blocked":"This clinic is not taking online bookings for this patient. Call the clinic to book.","followUpNeedsVisit":"A follow-up needs a previous visit at this clinic.","ownClinic":"You work at this clinic — book from the clinic's desk instead of its public page.","bookExaminationInstead":"Book an examination instead","closed":"Online booking is not available right now. Call the clinic to book.","loadTimes":"We couldn't load the available times.","generic":"Could not send the request. Try again.","noPatientProfile":"This account has no patient record yet. Call the clinic to be added, then try again."},"dayClosed":"Closed","leadTimeNote":"The clinic needs {hours} h notice, so today starts at {from}.","modeRequestWithinHours":"Request — the clinic answers within {hours} h","requestHintWithinHours":"{clinic} answers within {hours} h.","answerBy":"{clinic} has until {until} to answer.","answerSoon":"{clinic} has only until {until} — that is less than an hour from now. If nobody answers by then, the request expires and the time is released.","tooLate":"Too late","notYetOpen":"Not yet open","noFit":"No fit","nextWeeks":"Next 2 weeks","prevWeeks":"Previous 2 weeks","horizonEnd":"{clinic} takes bookings up to {date}.","dayAria":"{date} — {state}","dayAriaOpen":"{date} — {count, plural, one {# time} other {# times}} open","restoredTypeGone":"{clinic} no longer offers the visit type you had chosen, so we took you back to the times. Pick again.","restoredReset":"We could not restore where you were, so we took you back to the times.","withDoctor":"With {name}","doctorSubtitle":"with {name}","instantDowngrade":"The clinic could not confirm you on the spot, so this went in as a request instead. {clinic} has until {until} to answer."},"find":{"meta":{"title":"Find a clinic or doctor","description":"Search verified clinics and doctors on TabeebHub by name or clinic phone, then book a visit or start an online consultation."},"title":"Find your clinic or doctor","subtitle":"Search by clinic name, doctor name, or the clinic's phone number — or paste the link your clinic sent you.","placeholder":"Clinic name, doctor name, phone, or link","phoneHint":"Searching by clinic phone","tooShort":"Type at least 2 characters.","searching":"Searching…","linkDetected":"That's a TabeebHub link — opening it.","openLink":"Open link","resultCount":"{count, plural, =0 {No results} one {# result} other {# results}}","idle":{"title":"Search verified clinics and doctors","body":"Try the clinic's name, the doctor's name, or the phone number on the clinic's card.","paste":"Have a link from your clinic? Paste it here and it opens."},"empty":{"title":"Nothing found","body":"Only verified clinics appear here. Ask your clinic for its TabeebHub link or search by its phone number."},"notYet":{"title":"Searching is not available yet","body":"Open the link your clinic sent you — paste it in the field above and it opens."},"error":"Search is unavailable right now. Try again.","doctor":"Doctor","clinic":"Clinic","clinicCount":"{count, plural, one {# clinic} other {# clinics}}","temporarilyClosed":"Temporarily closed","doors":{"inPerson":"In person","online":"Online","view":"View page"},"retry":"Try again","clear":"Clear"},"consult":{"meta":{"title":"Book an online consultation with {name}"},"title":"Book an online consultation","step":"Step {n} of {total}","backToPage":"Back to {name}","loadingOffer":"Loading the doctor's online consultation…","loadingSlots":"Loading available times…","retry":"Try again","loadFailed":{"title":"We couldn't load this","body":"Check your connection and try again."},"unavailable":{"title":"This page is not available","body":"The link may be wrong, or the page has not been published yet. Ask the clinic for its TabeebHub link."},"closed":{"title":"Not taking online consultations right now","body":"{name} is not offering online consultations at the moment. You can still visit the clinic in person, or check back later.","backToPage":"Back to the doctor's page","book":"Book a Clinic Visit","call":"Call the clinic","whatsapp":"WhatsApp the clinic","animals":"{name} is not taking online consultations at the moment. With animals most vets want to see and handle the patient first — call or message the clinic and they will tell you what they need."},"category":"What do you need?","ONLINE_VISIT":"Online visit","ONLINE_FOLLOW_UP":"Online follow-up","categoryHint":{"ONLINE_VISIT":"A new problem, or your first time with this doctor.","ONLINE_FOLLOW_UP":"A check-in on something the doctor is already treating."},"changeCategory":"Change","duration":"{minutes} min","mode":"How would you like to talk?","modes":{"VIDEO":"Video call","AUDIO":"Voice call","CHAT":"Chat"},"modeHint":{"VIDEO":"Camera and microphone, right in your browser.","AUDIO":"Microphone only — no camera.","CHAT":"Text messages, no call."},"when":"When?","asap":"As soon as possible","asapAt":"Earliest: {when}","orPick":"Or pick a time","pickDay":"Pick a day","pickTime":"Pick a time","noSlots":"No open times on this day.","noSlotsAtAll":"No online times before {date}. Check back later, or book a clinic visit.","closedDay":"Closed","full":"Full","timezoneNote":"Times are in {city} time.","note":"What's wrong?","notePlaceholder":"Describe the problem, since when, and anything you have tried.","noteHint":"At least 3 characters. The doctor reads this before accepting.","continue":"Continue","back":"Back","keptForYou":"{name} · {when} — we’ve saved your choices. The time isn’t reserved until the doctor accepts.","signInHint":"We’ll send a WhatsApp code to your phone. The doctor sees your number once your payment is confirmed.","signInToContinue":"Continue with your phone number","staffSignedIn":"You're signed in as clinic staff. Online consultations are requested from a patient account — you can enable patient access on this same phone number.","signOutAndContinue":"Sign out and continue as a patient","review":"Review your request","price":"Price","payee":"You pay {clinic} directly — TabeebHub never asks you to pay.","rails":{"label":"The clinic accepts:","instapay":"InstaPay","wallet":"Vodafone Cash / wallet"},"payLater":"Nothing is paid now. After the doctor accepts, you pay the clinic and it confirms your payment.","refundRule":{"refund":"Cancel free until {minutes} minutes before the time; after that the clinic keeps the payment.","noRefund":"This clinic does not refund a paid consultation you cancel (you can cancel until {minutes} minutes before the time).","noShow":"If you do not join within {minutes} minutes of the time, the clinic keeps the payment.","refundDuration":"Cancel free until {duration} before the time; after that the clinic keeps the payment.","noRefundDuration":"This clinic does not refund a paid consultation you cancel (you can cancel until {duration} before the time).","noShowDuration":"If you do not join within {duration} of the time, the clinic keeps the payment."},"consent":{"title":"Before you send","notEmergency":"Not for emergencies — call 123 if it is urgent.","notRecorded":"The call is not recorded. Notes and files are kept in your medical record.","chatKept":"Your messages and files are kept in your medical record.","price":"The price above is the full price; you pay the clinic after the doctor accepts.","check":"I understand and accept the","termsLink":"online consultation terms","notAnExam":"An online consultation is not a physical examination. {name} may ask you to bring {subject} to the clinic."},"send":"Send request","sent":"Request sent — the doctor will answer soon.","errors":{"slotTaken":"That time is no longer available. Pick another.","tooMany":"You already have consultation requests waiting. That limit counts every doctor on TabeebHub, not just this one — wait for an answer before sending another.","blocked":"This clinic is not taking online requests for this patient. Call the clinic.","unavailable":"This doctor is not taking online consultations right now.","ownClinic":"You work at this doctor's clinic — online consultations here are for the clinic's patients.","consent":"Please read and accept the online consultation terms first.","noPrices":"The doctor has not set a price yet. Check back later.","loadSlots":"We couldn't load the available times.","generic":"Could not send the request. Try again.","noPatientProfile":"This account has no patient record yet. Call the clinic to be added, then try again."},"nextWeeks":"Next 2 weeks","prevWeeks":"Previous 2 weeks","horizonEnd":"{name} takes requests up to {date}.","tooLate":"Too late","notYetOpen":"Not yet open","noFit":"No fit","answerClock":"{name} has {hours} h to answer.","payClock":"Once the doctor accepts you’ll have about {minutes} minutes to pay and report it — for an as-soon-as-possible consultation that can be as little as 30.","asapShortWindow":"As soon as possible means the doctor may accept within minutes — and your payment window can then be as short as 30 minutes.","offlineDoorsTitle":"Other ways to see this doctor","instantDowngrade":"The doctor could not be booked on the spot, so this went in as a request instead.","answerBy":"{name} has until {until} to answer.","answerSoon":"{name} has only until {until} — that is less than an hour from now. If nobody answers by then, the request expires and the time is released.","sentFor":"Request sent for {name}"}}}