{ "nav": { "home": "Home", "bookings": "Bookings", "patients": "Patients", "wallet": "Wallet", "profile": "Profile", "bank": "Bank account", "coverage": "Coverage", "services": "Services", "dashboard": "Dashboard", "requests": "Requests", "verification": "Verification", "visits": "Visits", "earnings": "Earnings", "admin": "Admin", "overview": "Overview", "users": "Users", "notifications": "Notifications", "support": "Support", "login": "Login", "logout": "Logout", "payouts": "Payouts", "reviews": "Reviews", "config": "Configuration", "holidays": "Holidays", "alerts": "Alerts", "audit": "Audit log", "partners": "Partner centers", "roles": "Roles", "tickets": "Tickets", "partner_home": "Center", "partner_nurses": "Sponsored nurses", "partner_bookings": "Bookings", "partner_settlement": "Settlement", "search": "Search", "checkout": "Checkout", "addresses": "Addresses", "more": "More", "group_today": "Today", "group_profession": "My profession", "group_finance": "Finance", "group_support": "Support", "group_trust": "Trust", "group_system": "System" }, "common": { "dark_mode": "Dark mode", "light_mode": "Light mode", "direction_ltr": "Switch to LTR", "direction_rtl": "Switch to RTL", "coming_soon": "Coming soon", "loading": "Loading…", "retry": "Retry", "add": "Add", "cancel": "Cancel", "save": "Save", "saving": "Saving…", "back": "Back", "close": "Close", "optional": "Optional", "currency_toman": "Toman", "brand": "Balinyaar", "brand_tagline": "Home care you can trust", "open_sidebar": "Open menu", "switch_locale": "Switch to {locale}" }, "shell": { "customer_app": "Family app", "nurse_app": "Nurse view", "admin_console": "Admin console", "placeholder_body": "This area will be built in a later phase.", "partner_console": "Partner portal", "switch_to_nurse": "Nurse view", "switch_to_customer": "Family app" }, "home": { "greeting_named": "Hi, {name}", "greeting_plain": "Hi there", "subtitle": "Manage care for the people you love.", "search_placeholder": "Search a service or nurse…", "search_action": "Search", "categories_title": "Services", "categories_error": "Couldn't load services.", "categories_empty": "No services have been set up yet.", "nudge_patient_title": "Complete the patient record", "nudge_patient_body": "Add conditions, medications and routine so nurses arrive prepared.", "nudge_patient_cta": "Open patients", "nudge_profile_title": "Complete your profile", "nudge_profile_body": "Add an emergency contact to speed up bookings.", "nudge_profile_cta": "Go to profile", "patients_error": "Couldn't load your patients." }, "onboarding": { "step_relation": "Who for", "step_patient": "Patient", "relation_title": "Who are you arranging care for?", "relation_subtitle": "This helps us tailor the right care. You can add more people later.", "relation_parent": "Parent", "relation_spouse": "Spouse", "relation_child": "Child", "relation_self": "Myself", "patient_title": "Register the patient", "patient_subtitle": "The person receiving care — not necessarily the account holder.", "name_label": "Full name", "name_required": "Enter the patient's name", "age_label": "Age", "age_invalid": "Enter a valid age", "gender_label": "Gender", "gender_male": "Male", "gender_female": "Female", "gender_required": "Patient gender is required", "conditions_label": "Conditions", "conditions_hint": "Optional — select any that apply.", "condition_elderly": "Elderly", "condition_post_surgery": "Post-surgery", "condition_diabetes": "Diabetes", "condition_mobility": "Limited mobility", "condition_dementia": "Dementia", "continue": "Continue", "save_continue": "Save and continue", "saved": "Patient saved" }, "patients": { "title": "Patients", "subtitle": "The people you arrange care for.", "add": "Add patient", "add_title": "Add patient", "edit_title": "Edit patient", "edit": "Edit", "archive": "Archive", "empty_title": "No patients yet", "empty_body": "Add your first patient to get started.", "archive_title": "Archive patient?", "archive_body": "This patient is removed from your list, but past booking records are kept.", "archive_confirm": "Archive", "archived": "Patient archived", "age_years": "{age} yrs", "conditions_none": "No recorded conditions", "unavailable": "This patient isn't available to you.", "open_record": "Open {name}'s record", "load_error": "Couldn't load your patients." }, "profile": { "title": "Profile", "subtitle": "Your details and emergency contact.", "first_name": "First name", "last_name": "Last name", "language": "Preferred language", "language_fa": "Persian", "language_en": "English", "emergency_section": "Emergency contact", "emergency_hint": "Who we call in an emergency.", "emergency_name": "Emergency contact name", "emergency_phone": "Emergency contact phone", "emergency_phone_invalid": "Enter a valid mobile number", "save": "Save", "saved": "Profile saved", "completion_done": "Your profile is complete.", "completion_todo": "Complete your profile to speed up bookings.", "load_error": "Couldn't load your profile.", "app_language": "App language", "sign_out": "Sign out" }, "nurseProfile": { "title": "Nurse profile", "subtitle": "What families see when they find you.", "photo": "Profile photo", "photo_hint": "A clear photo of your face.", "upload": "Upload photo", "uploading": "Uploading…", "bio": "About me", "bio_hint": "A short intro — experience, focus, approach.", "years": "Years of experience", "years_invalid": "Enter a number between 0 and 80", "save": "Save profile", "saved": "Profile saved", "unverified_title": "Your profile isn't active yet", "unverified_body": "Complete identity verification to appear to families and receive bookings.", "unverified_cta": "Complete verification", "deferred_services": "Manage your services & prices in the Services section; available days come in a later step.", "save_error": "Couldn't save your profile. Please try again.", "avatar_upload_error": "Couldn't upload your photo. Please try again." }, "bank": { "title": "Bank account", "subtitle": "Where your earnings are paid out.", "iban_label": "IBAN (Sheba)", "iban_hint": "Starts with IR followed by 24 digits.", "iban_invalid": "Enter a valid IBAN (IR + 24 digits)", "holder_label": "Account holder name", "holder_hint": "Must be exactly your own name.", "holder_required": "Enter the account holder name", "submit": "Submit account", "submitting": "Submitting…", "added": "Account submitted — ownership inquiry started", "add_error": "This account couldn't be added. Check the IBAN and try again.", "status_pending_chip": "Checking", "status_pending_title": "Verifying account ownership", "status_pending_body": "The Sheba ownership inquiry is running; this can take a moment.", "status_verified_chip": "Verified", "status_verified_title": "Account verified", "status_verified_body": "This account is ready to receive your payouts.", "status_mismatch_chip": "Ownership mismatch", "status_mismatch_title": "The account must be in your own name", "status_mismatch_body": "This account's holder doesn't match your identity. Please enter the IBAN of an account in your own name.", "reenter": "Enter another account", "make_primary": "Make primary", "primary_set": "Primary account updated", "iban_masked_label": "IBAN", "primary": "Primary", "empty_title": "No bank account yet", "empty_body": "Add a bank account in your own name to receive payouts." }, "geo": { "province": "Province", "city": "City", "district": "District", "whole_city": "Whole city", "city_needs_province": "Choose a province first", "district_needs_city": "Choose a city first", "district_optional": "Optional", "no_districts": "This city has no districts — whole city" }, "address": { "title": "Addresses", "subtitle": "Where nurses will visit.", "add": "Add address", "add_title": "Add address", "edit_title": "Edit address", "edit": "Edit", "delete": "Delete", "empty_title": "No addresses yet", "empty_body": "Add your first address so nurses know where to go.", "primary": "Primary", "set_primary": "Set as primary", "primary_set": "Primary address updated", "delete_title": "Delete address?", "delete_body": "This address is removed from your list.", "delete_confirm": "Delete", "deleted": "Address deleted", "saved": "Address saved", "save_error": "This address couldn't be saved. Please try again.", "unavailable": "This address isn't available to you.", "title_label": "Address label", "title_placeholder": "e.g. Home, Work", "title_required": "Enter a label for this address", "line_label": "Street address", "line_hint": "Building, street, unit — the detail a nurse needs to find the door.", "line_required": "Enter the street address", "city_required": "Select a city", "set_primary_toggle": "Set as primary address", "map_hint": "Tap or drag the marker to the patient's exact location.", "map_required": "Drop a pin on the map", "map_lat": "Lat", "map_lng": "Lng", "manage_title": "Your addresses", "manage_body": "Manage the places nurses visit.", "manage_cta": "Manage addresses" }, "coverage": { "title": "Coverage areas", "subtitle": "The cities and districts you'll travel to.", "areas_heading": "Your areas", "add_title": "Add a coverage area", "scope_label": "Coverage", "scope_whole_city": "Whole city", "scope_districts": "Specific districts", "add": "Add area", "adding": "Adding…", "whole_city_chip": "Whole city", "empty_title": "No coverage areas yet", "empty_warning": "You won't appear in search until you add at least one coverage area.", "duplicate": "You already cover this area.", "city_required": "Select a city", "district_required": "Select a district, or switch to whole city.", "added": "Coverage area added", "add_error": "This area couldn't be added. Please try again.", "remove_title": "Remove coverage area?", "remove_body": "You'll no longer be matched for visits in this area.", "remove_confirm": "Remove", "removed": "Coverage area removed" }, "catalog": { "unit_per_hour": "hourly", "unit_per_session": "per session", "unit_per_half_day": "per half-day", "unit_per_day": "daily", "unit_per_24h": "24-hour (live-in)", "count_per_hour": "hours", "count_per_session": "sessions", "count_per_half_day": "half-days", "count_per_day": "days", "count_per_24h": "days (24h)", "estimate_label": "Estimated total", "estimate_for": "for {count} {unit}" }, "services": { "title": "Services & prices", "subtitle": "The services you offer and what each costs.", "add": "Add service", "empty_title": "No services yet", "empty_body": "Add at least one active, priced service so families can find and book you.", "active_chip": "Active", "inactive_chip": "Deactivated", "inactive_hint": "This service is deactivated and can't be booked.", "edit": "Edit", "deactivate": "Deactivate", "activate": "Reactivate", "deactivate_title": "Deactivate this service?", "deactivate_body": "It becomes unbookable and drops out of search. You can reactivate it anytime — it is never deleted.", "deactivate_confirm": "Deactivate", "deactivated_toast": "Service deactivated", "activated_toast": "Service reactivated", "toggle_error": "That couldn't be done. Please try again.", "builder_add_title": "Add a new service", "builder_edit_title": "Edit service", "step_category": "Category", "step_options": "Options", "step_price": "Price", "category_title": "Choose the service category", "category_subtitle": "Every service belongs to one category.", "categories_error": "Couldn't load categories. Please try again.", "category_locked": "The category can't be changed after a service is created.", "options_title": "Set the service options", "options_subtitle": "Pick one option for each required item.", "options_none": "This category has no options to configure.", "required_badge": "Required", "optional_badge": "Optional", "options_incomplete": "Answer every required item to continue.", "price_title": "Set the price and unit", "price_label": "Price (Toman)", "price_hint": "Enter the price in Toman.", "price_required": "Enter a valid price greater than zero.", "unit_label": "Price unit", "duration_label": "Duration / count", "duration_hint": "Optional — add a duration to preview the estimated total.", "rate_note": "This is the base rate per unit, not the full total.", "display_name_label": "Display name", "display_name_hint": "Auto-generated from your options — you can edit it.", "duplicate_warning": "You already have a service with these exact details. Change an option or the category.", "summary_options": "Options", "summary_none": "No options", "next": "Next", "submit_create": "Add service", "submit_save": "Save changes", "create_error": "The service couldn't be saved. Check your inputs and try again.", "created_toast": "Service added", "saved_toast": "Changes saved", "list_error": "Couldn't load your services.", "options_error": "Couldn't load this category's options." }, "search": { "title": "Find a nurse", "subtitle": "Only verified, background-checked nurses appear here.", "section_category": "Care category", "section_location": "City", "section_gender": "Caregiver gender", "section_date": "Date", "section_price": "Price range (optional)", "gender_female": "Woman", "gender_male": "Man", "gender_any": "No preference", "gender_hint": "For personal and bodily care, many families prefer a same-gender caregiver. Your choice is carried into the booking request.", "date_hint": "We pass your preferred date to the nurse — it does not remove nurses from the results.", "price_hint": "Leave blank to see every price.", "price_min": "From", "price_max": "To", "toman": "Toman", "categories_error": "Couldn't load categories.", "cta_choose_category_city": "Choose a category and city", "cta_loading": "Counting nurses…", "cta_view_results": "View {count, plural, =0 {no nurses} one {# nurse} other {# nurses}}", "results_loading_title": "Searching…", "results_count": "{count, plural, =0 {No nurses} one {# nurse} other {# nurses}}", "sort_label": "Sort", "sort_rating": "Rating", "results_error": "Something went wrong loading results.", "retry": "Try again", "load_more": "Load more", "empty_title": "No nurses match your filters", "empty_suggest_gender": "Try removing the gender filter.", "empty_suggest_district": "Clear the district to search the whole city.", "empty_suggest_city": "Try a nearby city like Mashhad, Isfahan, or Shiraz.", "empty_cta": "Adjust filters", "unnamed_nurse": "Nurse", "reviews_count": "({count, plural, =0 {no reviews} one {# review} other {# reviews}})", "distance_km": "{km} km", "price_from": "from", "profile_not_found_title": "Nurse unavailable", "profile_not_found_body": "This nurse is no longer available.", "profile_not_found_cta": "Back to search", "profile_error_title": "Couldn't load profile", "profile_error_body": "Something went wrong loading this nurse.", "badge_ino": "Nursing Council", "years_experience": "{years} years' experience", "specialty_elderly": "Elderly care", "specialty_icu": "Critical care", "specialty_pediatric": "Pediatric care", "specialty_post_surgery": "Post-surgery care", "specialty_wound_care": "Wound care", "services_empty": "No services listed yet.", "request_booking": "Request booking", "tab_services": "Services", "tab_reviews": "Reviews" }, "booking": { "gender_female": "Woman", "gender_male": "Man", "gender_any": "No preference", "unnamed_nurse": "Nurse", "summary_patient": "Patient", "summary_service": "Service", "summary_address": "Address", "summary_when": "Time", "request_title": "Booking request", "form_subtitle": "Send a request to this nurse. No payment is taken yet — the nurse reviews it first.", "missing_nurse_title": "No nurse selected", "missing_nurse_body": "Choose a nurse from search, then send a request.", "missing_nurse_cta": "Find a nurse", "patient_label": "Patient (care recipient)", "patient_placeholder": "Select a patient", "patient_empty": "You haven't added a patient yet.", "patient_add_cta": "Add a patient", "service_label": "Service type", "service_placeholder": "Select a service", "service_empty": "This nurse has no bookable service.", "address_label": "Address", "address_placeholder": "Select an address", "address_empty": "You haven't added an address yet.", "address_add_cta": "Add an address", "address_whole_city": "Whole city", "date_label": "Date", "time_start_label": "From", "time_end_label": "To", "gender_label": "Caregiver gender", "gender_hint": "For personal/bodily care, a same-gender caregiver matters. Your choice is sent with the request.", "notes_label": "Notes for the nurse", "notes_placeholder": "What the nurse sees before accepting…", "notes_hint": "This is the only thing the nurse sees before accepting. The full care record is added after confirmation.", "notes_counter": "{count}/{max}", "submit": "Send request", "submitting": "Sending…", "error_patient_required": "Choose a patient.", "error_service_required": "Choose a service.", "error_address_required": "Choose an address.", "error_gender_required": "Choose the caregiver gender.", "error_date_required": "Choose a date.", "error_time_required": "Choose a start and end time.", "error_time_range": "The end time must be after the start time.", "error_past_date": "Choose a future date and time.", "error_notes_long": "Notes are too long.", "error_gender_mismatch": "The chosen gender doesn't match this nurse.", "error_not_bookable": "This service can't be booked right now.", "error_tenancy": "That patient or address wasn't found.", "error_generic": "Couldn't send the request. Please try again.", "awaiting_title": "Request sent to the nurse", "awaiting_subtitle": "Awaiting the nurse's response", "step_submitted": "Request submitted", "step_awaiting": "Awaiting nurse approval", "step_payment": "Payment & final confirmation", "response_countdown_label": "Nurse response window", "response_elapsed": "Awaiting server confirmation…", "accepted_badge": "The nurse accepted", "accepted_body": "Pay within the window below to confirm the booking.", "payment_countdown_label": "Payment window", "payment_elapsed": "The payment window has closed", "continue_payment": "Continue to payment ←", "cancel_request": "Cancel request", "cancelling": "Cancelling…", "cancel_confirm_title": "Cancel this request?", "cancel_confirm_body": "The nurse will no longer see it. You can request another nurse anytime.", "cancel_confirm_yes": "Yes, cancel", "rejected_title": "The nurse declined the request", "rejected_reason_label": "Nurse's reason", "expired_title": "The nurse didn't respond in time", "payment_expired_title": "The payment window has closed", "cancelled_title": "Request cancelled", "converted_title": "Your booking is confirmed", "converted_cta": "View booking", "terminal_rerequest": "Request another nurse", "not_found_title": "Request not found", "not_found_body": "This request may have been removed.", "error_title": "Something went wrong", "error_body": "We couldn't load this request.", "retry": "Try again", "inbox_title": "Incoming requests", "inbox_subtitle": "Families requesting your care. You see only their notes until you accept.", "inbox_empty": "You have no new requests.", "inbox_notes_label": "Family's notes", "required_gender_chip": "Caregiver: {gender}", "open_detail": "View", "detail_title": "Request detail", "location_label": "Location", "disclosure_note": "Before accepting you see only the family's notes. The full address and care record appear after you accept.", "accept": "Accept request", "accepting": "Accepting…", "reject": "Decline", "reject_dialog_title": "Decline request", "reject_reason_label": "Reason", "reject_reason_placeholder": "A short reason the family will see…", "reject_submit": "Submit decline", "rejecting": "Declining…", "reason_required": "A reason is required.", "reason_too_long": "The reason is too long.", "action_stale": "This request can no longer be actioned.", "accepted_toast": "Request accepted.", "rejected_toast": "Request declined.", "cancelled_toast": "Request cancelled.", "status_pending_nurse_response": "Awaiting nurse response", "status_accepted_awaiting_payment": "Accepted — awaiting payment", "status_converted": "Booked", "status_rejected_by_nurse": "Declined by nurse", "status_expired_no_response": "No response in time", "status_payment_deadline_expired": "Payment window lapsed", "status_cancelled_by_customer": "Cancelled", "bd_title": "Booking", "bd_ref": "Booking #{id}", "bd_not_found_title": "Booking not found", "bd_not_found_body": "This booking doesn't exist or isn't yours.", "bd_my_bookings": "My bookings", "timeline_title": "Progress", "bstatus_pending_payment": "Pending payment", "bstatus_confirmed": "Confirmed", "bstatus_in_progress": "In progress", "bstatus_completed": "Completed", "bstatus_disputed": "Under review", "bstatus_closed": "Closed", "bstatus_cancelled": "Cancelled", "confirmed_note": "Your booking is confirmed. The visits below are scheduled.", "in_progress_note": "A visit is currently underway.", "completed_note": "All visits are complete.", "dispute_window_note": "Payment is released to the nurse after the review window closes on {date}.", "cancelled_note": "This booking was cancelled.", "disputed_note": "This booking is under review by our support team.", "sessions_title": "Visit schedule", "session_index": "Visit {n}", "session_count": "{count, plural, =0 {no visits} one {# visit} other {# visits}}", "sstatus_scheduled": "Scheduled", "sstatus_in_progress": "In progress", "sstatus_completed": "Completed", "sstatus_missed": "Missed", "sstatus_cancelled": "Cancelled", "session_elapsed": "On site {duration}", "session_payout": "Visit payout", "money_title": "Payment summary", "money_gross": "Service cost", "money_commission": "Balinyaar fee", "money_payout": "Nurse payout", "money_nurse_earning": "Your earning", "evv_today_title": "Today's visit", "evv_visits_title": "Today's visits", "evv_visits_subtitle": "Clock in and out of each visit with EVV.", "evv_no_visits": "No visits scheduled for today.", "evv_check_in": "Check in (EVV)", "evv_check_out": "Check out (EVV)", "evv_checking_in": "Checking in…", "evv_checking_out": "Checking out…", "evv_acquiring_location": "Getting your location…", "evv_banner_in_range": "Checked in {time} · location confirmed (EVV)", "evv_banner_out_of_range": "Checked in {time} · location out of range (under review)", "evv_banner_no_gps": "Checked in {time} · location not captured", "evv_checked_out_at": "Checked out {time}", "evv_gps_denied_note": "Location permission was denied — you can still record the visit; it's flagged for review.", "evv_no_open_check_in": "There's no open check-in to close.", "evv_not_startable": "This visit can't be started yet.", "evv_checked_in_toast": "Check-in recorded.", "evv_checked_out_toast": "Check-out recorded.", "evv_check_in_error": "Couldn't record the check-in. Please try again.", "evv_check_out_error": "Couldn't record the check-out. Please try again.", "evv_nurse_view": "Nurse view", "view_booking": "View booking", "care_title": "Care instructions", "care_subtitle": "Shared with you as the assigned nurse after confirmation.", "care_conditions": "Conditions", "care_medications": "Medications", "care_allergies": "Allergies", "care_instructions_label": "Special instructions", "care_emergency": "Emergency contact", "care_none": "Not recorded", "care_empty": "No care instructions were recorded for this booking.", "care_error": "Couldn't load the care instructions.", "care_locked_title": "Care details", "care_locked_body": "The full care record is visible only to your assigned nurse and support.", "list_title": "My bookings", "list_subtitle": "Your confirmed engagements.", "list_empty_title": "No bookings yet", "list_empty_body": "Once a nurse accepts and you pay, your booking appears here.", "list_error": "Couldn't load your bookings.", "list_total": "Total", "inbox_error": "Couldn't load your requests." }, "payment": { "title_checkout": "Confirm & pay", "row_service_cost": "Service cost", "row_service_cost_with_count": "Service cost ({count, plural, one {# visit} other {# visits}})", "row_commission": "Balinyaar fee", "row_vat": "VAT", "row_total": "Total", "escrow_notice": "The amount is held in escrow with Balinyaar and released after the visit ends", "cta_pay": "Continue to payment →", "bnpl_option": "Or pay in installments", "state_initiating": "Starting payment…", "state_redirecting": "Redirecting to the payment gateway…", "state_pending_title": "Confirming your payment…", "state_pending_hint": "The gateway is confirming your payment; this usually takes a few moments.", "check_again": "Check again", "state_failed_title": "Payment failed", "state_failed_hint": "Nothing was charged. You can try again.", "retry_payment": "Try again", "back_to_request": "Back to the request", "already_paid_title": "This request is already paid", "already_paid_body": "Your booking has been confirmed.", "window_expired_title": "The payment window has closed", "window_expired_body": "To continue, submit a new request.", "not_payable_title": "This request can no longer be paid", "initiate_failed": "The payment could not be started.", "confirm_title": "Payment successful", "confirm_subtitle": "Your booking is confirmed and the nurse has been notified.", "view_booking": "View booking", "download_invoice": "Download invoice", "total_paid_label": "Amount paid", "invoice_title": "Invoice", "invoice_number_label": "Invoice number", "invoice_issued_at": "Issued on", "invoice_vat_on_commission": "VAT (on the Balinyaar fee)", "invoice_not_issued_title": "The invoice has not been issued yet", "invoice_not_issued_body": "The invoice for this booking will appear here once issued.", "print_invoice": "Print invoice", "moadian_label": "Moadian (e-invoicing) status", "moadian_pending": "Awaiting registration", "moadian_submitted": "Submitted", "moadian_registered": "Registered", "moadian_failed": "Failed", "pstatus_pending": "Awaiting confirmation", "pstatus_succeeded": "Paid", "pstatus_failed": "Failed", "gateway_title": "Test payment gateway", "gateway_hint": "This page stands in for the real gateway in development.", "gateway_reference_label": "Reference", "gateway_pay_success": "Pay successfully", "gateway_pay_fail": "Simulate a failed payment", "error_title": "Something went wrong", "error_body": "We couldn't load the payment summary.", "invalid_link_body": "This payment link is not valid.", "issuer_platform": "Balinyaar" }, "auth": { "customer_title": "Sign in to Balinyaar", "customer_subtitle": "Sign in with your mobile number", "nurse_title": "Nurse sign in", "nurse_subtitle": "For nurses with a Nursing Council licence", "phone_label": "Mobile number", "phone_invalid": "Enter a valid Iranian mobile number", "request_code": "Get verification code", "nurse_switch": "Are you a nurse? Nurse sign in →", "customer_switch": "Are you a family? Family sign in →", "rate_limited": "Too many attempts — please try again shortly", "otp_title": "Enter the verification code", "otp_sent_to": "Code sent to {phone}", "otp_verify_customer": "Verify and continue", "otp_verify_nurse": "Verify and sign in", "otp_invalid": "The code is incorrect or has expired", "otp_locked": "Too many attempts. Request a new code to continue.", "resend_in": "Resend code in {time}", "resend": "Resend code", "change_number": "Change number", "routing_title": "Signing you in…", "select_role_title": "Welcome to Balinyaar", "select_role_subtitle": "Choose how you'll use Balinyaar to get started", "role_customer": "Family", "role_customer_desc": "Book nurses and home care", "role_nurse": "Nurse", "role_nurse_desc": "Offer nursing services", "continue": "Continue", "guard_denied": "You don't have access to that area.", "account_error_title": "Couldn't load your account", "account_error_body": "We couldn't reach Balinyaar to load your account. Check your connection and try again.", "account_error_retry": "Try again" }, "verification": { "title": "Verification", "subtitle": "Complete these steps to activate your profile and start receiving bookings.", "retry": "Try again", "load_error": "Couldn't load your verification status.", "start_title": "Start verification", "start_body": "Trust is the whole of Balinyaar. Completing these steps lets families choose you with confidence.", "start_cta": "Start verification", "starting": "Preparing…", "progress_title": "Verification progress", "progress_count": "{passed} of {total}", "blocking_summary": "Your profile isn't visible or bookable until every step is complete.", "continue": "Continue", "continue_step": "Continue step {n}", "approved_title": "Verification complete", "approved_body": "Everything checks out. You can now publish your profile and services.", "approved_cta": "Publish services", "step_mobile_verified": "Mobile number", "step_mobile_verified_desc": "Verified when you signed in.", "step_identity_kyc": "Identity (civil registry)", "step_identity_kyc_desc": "Automatic civil-registry check from your national ID + a liveness selfie.", "step_shahkar_match": "Shahkar match", "step_shahkar_match_desc": "Automatic check that your mobile number matches your national ID.", "step_moh_competency_license": "Competency license (MoH)", "step_moh_competency_license_desc": "Upload the document; reviewed manually by our team.", "step_ino_membership": "Nursing-council membership", "step_ino_membership_desc": "Upload your nursing-council card; reviewed manually.", "step_criminal_record": "Criminal-record clearance", "step_criminal_record_desc": "Upload the certificate; reviewed manually. Has an expiry date.", "step_bank_account_verification": "Bank-account verification", "step_bank_account_verification_desc": "Automatic IBAN-ownership check against your national ID.", "status_passed": "Verified", "status_in_review": "Under review", "status_pending": "Pending", "status_failed": "Rejected", "status_expired": "Expired", "status_next": "Next", "auto_query_note": "Automatic check — no document upload needed.", "row_go": "Complete this step", "row_fix": "Fix and resubmit", "reason_shared_sim": "This SIM doesn't appear to be registered in your name. Please try again with a SIM registered to you.", "reason_kyc_no_match": "Your identity details didn't match the civil registry.", "reason_national_id_mismatch": "The national ID didn't match.", "reason_blurry_scan": "The document image wasn't clear. Please upload a sharper copy.", "journey_identity": "Identity", "journey_credentials": "Credentials", "journey_review": "Review", "identity_title": "Verify identity", "identity_subtitle": "Your national ID, a photo of your ID card, and a liveness selfie.", "national_id_label": "National ID", "national_id_hint": "Enter your 10-digit national ID.", "national_id_invalid": "Enter a valid national ID.", "card_label": "National-ID card image", "card_hint": "Photograph your ID card in good light, clearly readable.", "card_recommended": "Uploading the ID card image is recommended.", "selfie_label": "Liveness selfie", "selfie_hint": "Take a selfie for face verification.", "auto_registry_note": "An automatic civil-registry check is performed.", "error_national_id_mismatch": "The national ID didn't match the civil registry. Please check and try again.", "error_shared_sim": "This SIM doesn't appear to be registered in your name. Please try again with a SIM registered to you.", "error_shahkar_mismatch": "The mobile-to-national-ID match failed. Please check and try again.", "identity_submit": "Submit & verify", "identity_submitting": "Verifying…", "identity_submitted": "Identity submitted — verification started", "back_to_checklist": "Back to checklist", "credentials_title": "Professional credentials", "credentials_subtitle": "Your documents are reviewed by our team after upload.", "credentials_needs_start": "Start verification from the status checklist first.", "ino_number_label": "Nursing-council number", "ino_number_hint": "Enter your nursing-council membership number.", "ino_number_required": "Enter your nursing-council number.", "doc_uploaded": "Document uploaded", "education_label": "Education certificate", "education_hint": "Optional — an image of your latest qualification.", "specialties_label": "Specialties", "specialties_hint": "Choose or add your areas of specialty.", "specialty_elderly": "Elderly care", "specialty_icu": "ICU", "specialty_pediatric": "Pediatric", "specialty_post_surgery": "Post-surgery", "specialty_wound_care": "Wound care", "specialty_add_placeholder": "Another specialty", "specialty_add": "Add", "registry_details_label": "Credential details (optional)", "issuing_authority_label": "Issuing authority", "issued_at_label": "Issue date", "expires_at_label": "Expiry date", "manual_review_note": "These documents are reviewed manually by our team — not an instant approval.", "credentials_submit": "Submit credentials", "credentials_submitting": "Submitting…", "credentials_submitted": "Credentials submitted — under review", "credentials_error": "Couldn't submit your credentials. Check the inputs and try again.", "review_title": "Under review", "review_body": "Your documents were submitted and are being reviewed by our team.", "review_eta": "This usually takes 24–48 hours.", "review_approved_title": "Verification complete", "review_approved_body": "Every step is verified. You can now publish your profile.", "review_summary_title": "Status summary", "review_view_status": "View status", "badge_verified": "Verified", "badge_unverified": "Not verified", "badge_expired": "Expired", "publish_ready_title": "Ready to publish", "publish_ready_body": "Your verification is complete. Your services are visible and bookable.", "publish_blocked_title": "Complete verification to publish", "publish_blocked_body": "Until verification is complete, your services won't appear in search and can't be booked.", "publish_cta": "Publish profile", "publish_complete_verification": "Complete verification", "publish_done": "Your profile has been published", "mock_admin_title": "Simulate admin review (demo)", "mock_admin_approve": "Approve all steps", "mock_admin_reject": "Reject a document", "upload_choose": "Choose file", "upload_capture": "Take photo", "upload_size_hint": "JPG, PNG or PDF — up to {size} MB.", "upload_uploading": "Uploading…", "upload_success": "Uploaded", "upload_change": "Change", "upload_error": "Upload failed.", "upload_bad_type": "That file type isn't allowed. Use JPG, PNG or PDF.", "upload_too_large": "The file must be smaller than {size} MB.", "upload_retry": "Try again", "upload_rejected": "This document was rejected", "upload_reupload": "Upload again" }, "refunds": { "cancel_title": "Cancel booking", "step_review": "Review", "step_confirm": "Confirm", "policy_free_24h": "Free cancellation", "policy_partial_under_24h": "Partial refund", "policy_customer_no_show": "No refund", "lead_gt_24h": "More than 24 hours before the visit", "lead_lt_24h": "Less than 24 hours before the visit", "lead_started": "The visit has already started", "refund_percent": "{percent}% refunded", "fee_percent": "Cancellation fee: {percent}%", "row_refund": "Refund to you", "row_fee": "Cancellation fee", "row_refundable_total": "Amount for the remaining service", "sessions_title": "Sessions", "session_refundable": "Refundable", "reason_un_started": "Not started", "reason_completed": "Completed", "reason_in_progress": "In progress", "reason_missed": "Missed", "reason_cancelled": "Cancelled", "admin_approval_explainer": "Your cancellation request is submitted and the refund is reviewed and processed by our team — you never issue the refund yourself.", "reason_field_label": "Reason for cancelling", "reason_cat_changed_mind": "Changed my mind", "reason_cat_schedule_conflict": "Schedule conflict", "reason_cat_found_other_care": "Found other care", "reason_cat_other": "Other", "reason_notes_label": "Notes (optional)", "acknowledge_label": "I understand the refund and fee shown above.", "continue_cta": "Continue", "confirm_title": "Confirm cancellation", "confirm_restate": "You'll be refunded and a cancellation fee of applies.", "confirm_cta": "Confirm cancellation", "submitting": "Submitting…", "not_cancellable_title": "This booking can't be cancelled", "not_cancellable_body": "There are no remaining sessions to cancel. If it was already cancelled, follow the refund status.", "view_refund_status": "View refund status", "back_to_booking": "Back to booking", "error_title": "Something went wrong", "error_body": "We couldn't load the cancellation details.", "err_not_cancellable": "This booking can no longer be cancelled.", "err_nothing_refundable": "There's nothing refundable to cancel.", "err_generic": "The cancellation could not be completed. Please try again.", "status_title": "Refund status", "status_subtitle": "Follow your refund below.", "no_refund_title": "No refund for this booking", "no_refund_body": "This booking hasn't been cancelled, so there's no refund to track.", "step_submitted": "Submitted", "step_on_its_way": "On its way", "step_completed": "Completed", "rstatus_submitted": "Submitted", "rstatus_on_its_way": "On its way", "rstatus_completed": "Completed", "rstatus_failed": "Needs attention", "total_refunded_label": "Refund amount", "reference_label": "Reference", "fee_split_title": "Refund breakdown", "row_platform_fee_refunded": "Balinyaar fee refunded", "row_nurse_payout_refunded": "Service cost refunded", "failed_title": "Your refund needs attention", "failed_body": "Something interrupted this refund. Please contact support and our team will resolve it — you don't need to do anything else.", "eta_card_title": "Refunded to your card", "eta_card_body": "The amount is returned to the bank card you paid with.", "eta_bnpl_title": "Returning through your installment provider", "eta_bnpl_body": "Unpaid installments are cancelled and credited back to your installment wallet; any installment you already paid is returned to your bank account.", "eta_manual_title": "Manual bank transfer", "eta_manual_body": "The amount is transferred to your bank account by our team.", "eta_business_days": "About 7–10 business days", "eta_expected_label": "estimated by {date}", "cancel_booking_cta": "Cancel booking", "refund_section_title": "Refund" }, "bnpl": { "title": "Installment payment", "ownership_note": "The provider pays Balinyaar the full amount at once and bears 100% of the customer's default risk; installment repayment is between you and the provider.", "payable_amount": "Payable amount", "total_amount": "Total amount", "monthly": "Monthly", "continue": "Continue", "error_title": "Something went wrong", "error_body": "We couldn't load the installment options. Please try again.", "provider_digipay": "Digipay", "provider_snapppay": "SnappPay", "provider_balinyaar": "Balinyaar Installments", "provider_tara": "Tara", "provider_torobpay": "TorobPay", "provider_tagline_digipay": "3 to 12 installments", "provider_tagline_snapppay": "4 interest-free installments", "provider_tagline_balinyaar": "In-house plan", "provider_tagline_tara": "Installment plan", "provider_tagline_torobpay": "Installment plan", "method_title": "Payment method", "method_card": "Pay in full (bank card)", "method_card_hint": "One-time payment, instant booking confirmation", "installments_heading": "Pay in installments", "continue_with": "Continue with {provider}", "no_providers_title": "Installments unavailable", "no_providers_body": "Installment payment isn't available for this booking right now. You can pay by card.", "plan_title": "{provider} installment plan", "plan_term_months": "{months, number} months", "plan_installments": "{count, number} installments", "plan_interest_free": "Interest-free", "plan_fee": "{percent, number}% fee", "down_payment": "Down payment", "down_payment_percent": "{percent, number}% down payment", "no_plans_title": "No plans available", "no_plans_body": "This provider has no installment plans for this booking.", "back_to_providers": "Choose another provider", "eligibility_title": "Credit eligibility", "national_id_label": "National ID", "national_id_placeholder": "10-digit national ID", "national_id_invalid": "National ID must be 10 digits.", "mobile_label": "Mobile number", "consent_label": "I agree to a credit and eligibility inquiry by {provider}.", "check_eligibility": "Check eligibility", "approved_title": "You're approved", "credit_ceiling_label": "Available credit ceiling", "approve_continue": "Confirm & continue", "declined_not_eligible_title": "Not approved", "declined_not_eligible_body": "Unfortunately the provider didn't approve the required credit.", "declined_ceiling_title": "Credit ceiling exceeded", "declined_ceiling_body": "This booking's total exceeds your available credit.", "pay_with_card": "Pay with card", "eligibility_error": "The inquiry failed. Try again, or pay by card.", "schedule_title": "Repayment schedule", "today": "Today", "installment_n": "Installment {n, number}", "contract_note": "The installment agreement is between you and {provider}; Balinyaar is paid the full booking amount up-front.", "contract_consent": "I have read and accept the installment terms and contract.", "pay_down_payment": "Confirm & pay down payment", "redirecting": "Redirecting to {provider}…", "handoff_title": "Redirecting to the provider", "handoff_body": "Complete the installment agreement with {provider} to confirm your booking.", "handoff_pay_success": "Pay down payment (demo)", "handoff_pay_fail": "Cancel", "settling_title": "Confirming your installment plan", "settling_body": "The provider is settling your order. This won't take long.", "settle_failed_title": "Installment payment didn't complete", "settle_failed_body": "The provider didn't complete the transaction. You can retry or pay by card.", "retry_installments": "Retry installments", "check_again": "Check again", "wallet_title": "Wallet & installments", "outstanding_balance": "Outstanding installment balance", "next_installment": "Next installment", "early_pay": "Pay early", "due_dates": "Due dates", "status_paid": "Paid", "status_due_soon": "Due soon", "status_upcoming": "Upcoming", "status_overdue": "Overdue", "provider_owned_note": "Your installment status is recorded and managed by {provider}, not Balinyaar.", "wallet_empty_title": "No active installment plan", "wallet_empty_body": "If you pay for a booking in installments, your installment status will appear here.", "wallet_error_title": "Installment status unavailable", "wallet_error_body": "We couldn't reach the provider's installment status. Please try again.", "paid_via_installments": "Paid in installments via {provider}", "step_provider": "Provider", "step_plan": "Plan", "step_eligibility": "Eligibility", "step_schedule": "Schedule" }, "payouts": { "title": "Earnings", "subtitle": "What you've earned, and when it arrives.", "balance_net_label": "Payable balance", "balance_net_hint": "Amounts you've earned that are on their way to your account.", "balance_owed_label": "Owed back to Balinyaar", "balance_owed_hint": "Past clawbacks exceed your current earnings. This is deducted from your future payouts — nothing is charged to you directly.", "balance_error": "Couldn't load your balance.", "bucket_pending": "Pending", "bucket_eligible": "Eligible", "bucket_paid": "Paid (lifetime)", "bucket_clawback": "Clawback outstanding", "explainer_title": "How payouts work", "explainer_point_1": "You're paid in weekly batches to your verified primary account.", "explainer_point_2": "An amount becomes eligible only after the visit is verified (check-out) and the 72-hour dispute window closes.", "explainer_point_3": "You receive the same amount whether the family paid by card or in installments — the installment provider's fee is never deducted from you.", "tab_all": "All", "tab_pending": "Pending", "tab_eligible": "Eligible", "tab_paid": "Paid", "tab_clawback_applied": "Clawed back", "estate_pending": "Pending", "estate_eligible": "Eligible", "estate_paid": "Paid", "estate_clawback_applied": "Clawed back", "booking_ref": "Booking #{id}", "view_booking": "View booking", "view_payout": "View payout", "view_payout_detail": "View details", "amount_gross": "Service price", "amount_commission": "Balinyaar commission", "amount_your_payout": "Your payout", "clawback_explainer": "This booking was refunded after you were paid, so the amount was netted out:", "clawback_original": "Originally earned", "clawback_amount": "Clawed back", "clawback_net": "Net", "pending_affordance": "In escrow · dispute window open", "dispute_window_label": "Time to eligible", "dispute_window_elapsed": "Dispute window closed", "eligible_affordance": "Cleared · awaiting the next weekly batch", "paid_on": "Paid on {date}", "transfer_reference_label": "Transfer reference", "list_error": "Couldn't load your earnings.", "list_empty_title": "No earnings yet", "list_empty_body": "Completed and verified visits will appear here.", "retry": "Retry", "page_prev": "Previous", "page_next": "Next", "page_indicator": "Page {page} of {total}", "back_to_earnings": "Earnings", "history_title": "Payout history", "history_subtitle": "Every transfer to your account.", "history_error": "Couldn't load your payout history.", "history_empty_title": "No payouts yet", "history_empty_body": "Your weekly transfers will appear here once the first batch runs.", "payout_net_amount": "Amount transferred", "period_label": "Period", "paid_at_label": "Paid on", "masked_iban_label": "Account", "pstatus_pending": "Pending", "pstatus_submitted": "In transfer", "pstatus_paid": "Paid", "pstatus_failed": "Failed", "failure_title": "This transfer failed", "failure_reason_label": "Reason", "failure_hint": "Our team will retry it — you don't need to do anything. Check your bank details are correct in your bank settings.", "back_to_history": "Payout history", "detail_title": "Payout detail", "detail_batch": "Weekly batch", "detail_not_found": "Payout not found.", "bstatus_draft": "Draft", "bstatus_processing": "Processing", "bstatus_partially_failed": "Partially failed", "bstatus_completed": "Completed", "bstatus_failed": "Failed", "processed_on_label": "Processed on", "detail_money_title": "Amount breakdown", "gross_earnings_label": "Gross earnings", "clawback_applied_label": "Clawback applied", "net_amount_label": "Net amount", "amount_transferred_label": "Transferred", "detail_bookings_title": "Bookings covered", "detail_bookings_hint": "This transfer paid for these visits." }, "reviews": { "title": "Leave a review", "subtitle": "Share your experience to help other families.", "for_nurse": "About {name}", "rating_label": "Your rating", "body_label": "Comments (optional)", "body_placeholder": "How was the care? Anything worth sharing…", "tags_label": "What stood out", "submit": "Submit review", "submitting": "Submitting…", "my_review_title": "Your review", "under_review_body": "Your review has been submitted and will be published after moderation.", "status_pending_moderation": "Under review", "status_published": "Published", "status_hidden": "Hidden", "status_rejected": "Rejected", "not_eligible_title": "Review not available", "reason_not_completed": "You can only review a completed visit.", "reason_already_reviewed": "You have already reviewed this booking.", "reason_not_owner": "You don't have access to this booking.", "reason_not_found": "Booking not found.", "error_submit": "Couldn't submit your review. Please try again.", "tag_punctual": "Punctual", "tag_professional": "Professional", "tag_clean": "Clean", "tag_kind": "Kind", "tag_communicative": "Good communication", "cta_leave": "Leave a review", "cta_under_review": "Your review is under review", "cta_view_review": "View your review", "count": "{count, plural, =0 {No reviews} one {# review} other {# reviews}}", "author_masked": "Balinyaar user", "reviews_empty": "No reviews yet.", "load_error": "Couldn't load reviews.", "retry": "Retry", "load_more": "Show more", "loading": "Loading…" }, "records": { "ownership_banner": "This record belongs to the family and is maintained by them.", "tab_medications": "Medications", "tab_routine": "Routine", "tab_history": "History", "tab_tasks": "Tasks", "access_denied_title": "No access", "access_denied_body": "You don't have access to this record.", "not_found_title": "Patient not found", "not_found_body": "This patient could not be found.", "back_to_patients": "Back to patients", "load_error": "Couldn't load the record.", "saved": "Record updated", "save_error": "Couldn't save your changes. Please try again.", "edit": "Edit", "add_item": "Add", "remove": "Remove", "medications_empty": "No medications recorded.", "routine_empty": "No routine recorded.", "history_empty": "No notes recorded.", "tasks_empty": "No tasks recorded.", "med_name": "Medication", "med_dosage": "Dosage", "med_frequency": "Frequency", "med_timing": "Timing / notes", "routine_label": "Routine", "routine_time": "Time of day", "routine_note": "Note", "task_label": "Task", "task_done": "Done", "author_fallback": "Nurse", "prev": "Previous", "next": "Next", "page_of": "{page} of {total}", "notes_title": "Visit note", "tasks_checklist_title": "Today's tasks", "note_label": "Note", "note_placeholder": "Describe today's visit…", "note_submit": "Save note", "note_saved": "Note saved", "note_error": "Couldn't save the note. Please try again.", "note_required": "Please write a note.", "continuity_title": "Patient history" }, "tickets": { "title": "My Tickets", "contact_support": "Contact support", "empty_title": "No conversations yet", "empty_body": "Open a ticket to coordinate or get support.", "error_body": "Couldn't load your tickets.", "retry": "Retry", "category_support": "Support", "category_coordination": "Visit coordination", "category_refund": "Refund", "category_emergency": "Emergency", "status_open": "Open", "status_closed": "Closed", "linked_booking": "Booking #{id}", "linked_refund": "Refund #{id}", "ref_code_label": "Reference code", "new_ticket_title": "New ticket", "category_label": "Category", "subject_label": "Subject", "message_label": "Message", "submit": "Send", "submitting": "Sending…", "cancel": "Cancel", "close": "Close", "open_failed": "Couldn't open the ticket. Please try again.", "created_title": "Ticket created", "created_body": "Your ticket was created. You can follow the conversation.", "view_thread": "View conversation", "back_to_tickets": "Back to tickets", "thread_error": "Couldn't load the conversation.", "thread_empty_title": "No messages yet", "thread_empty_body": "No messages yet — start coordinating.", "closed_notice": "This conversation is closed.", "sending": "Sending…", "send": "Send message", "send_failed": "Message not sent. Please try again.", "composer_placeholder": "Write your message…", "author_customer": "Family", "author_nurse": "Nurse", "author_support": "Support", "author_system": "System", "emergency_title": "Emergencies", "emergency_body": "For emergencies, call the emergency contact first, then open a ticket.", "emergency_call": "Call {name}", "emergency_call_generic": "Emergency call", "emergency_open_ticket": "Open a support ticket", "open_from_booking": "Get support / Open ticket" }, "notifications": { "title": "Notifications", "empty_title": "You're all caught up", "empty_body": "You have no unread notifications.", "error_body": "Couldn't load your notifications.", "retry": "Retry", "mark_all_read": "Mark all read", "load_more": "Load more", "bell_aria": "{count, number} unread notifications" }, "admin": { "overview_title": "Backoffice", "overview_subtitle": "Operate the marketplace — verify, refund, pay out, moderate, configure.", "filter_all": "All", "filter_label": "Filter", "apply": "Apply", "clear": "Clear", "cancel": "Cancel", "confirm": "Confirm", "save": "Save", "saving": "Saving…", "saved": "Saved", "retry": "Retry", "loading": "Loading…", "error_generic": "Something went wrong. Please try again.", "back": "Back", "close": "Close", "view": "View", "open": "Open", "none": "—", "reason_label": "Reason", "reason_required": "A reason is required.", "note_label": "Note", "actor": "Actor", "timestamp": "Time", "showing_range": "Showing {from}–{to} of {total}", "page_indicator": "Page {page}", "prev_page": "Previous", "next_page": "Next", "search_placeholder": "Search…", "refresh": "Refresh", "no_permission": "You don’t have access to this console.", "role_gate_hint": "This action is limited to certain admin roles.", "masked_iban_label": "IBAN", "ver_title": "Verification queue", "ver_subtitle": "Nurses awaiting document review.", "ver_empty": "Queue clear — nothing to review.", "ver_col_nurse": "Nurse", "ver_col_step": "Step", "ver_col_status": "Status", "ver_col_submitted": "Submitted", "ver_progress": "{done} of {total}", "ver_next_step": "Next: {step}", "ver_open_case": "Review", "ver_case_title": "Verification case", "ver_identity_name": "Identity on file", "ver_steps_title": "Steps", "ver_documents_title": "Documents", "ver_credentials_title": "Credentials", "ver_no_documents": "No documents for this step.", "ver_automated_badge": "Automated check", "ver_pass": "Pass", "ver_reject": "Reject", "ver_pass_step": "Pass step", "ver_reject_step": "Reject step", "ver_reject_reason_ph": "Why is this step rejected?", "ver_credential_title": "Record credential", "ver_credential_number": "Credential number", "ver_holder_name": "Holder name", "ver_holder_hint": "Must match the verified identity name, or the credential is rejected.", "ver_issuing_authority": "Issuing authority", "ver_issued_at": "Issued at", "ver_expires_at": "Expires at", "ver_expiry_required": "An expiry date is required for this credential.", "ver_expiring_warning": "Expiring credential", "ver_approve": "Approve verification", "ver_reject_all": "Reject verification", "ver_approve_hint": "Enabled only when every required step has passed.", "ver_approve_confirm": "Approve this nurse? The server flips their verified status; this cannot be undone here.", "ver_reject_confirm": "Reject this verification with the reason above?", "ver_decided": "Decision recorded.", "doc_loading": "Loading document…", "doc_expired": "This secure link expired.", "doc_reload": "Re-request link", "doc_error": "Couldn’t load the document.", "doc_open_new": "Open in a new tab", "doc_file_meta": "{name} · {size}", "payout_title": "Payout batches", "payout_subtitle": "Weekly nurse payouts — preview, run, reconcile.", "payout_empty": "No payout batches yet.", "payout_col_period": "Period", "payout_col_count": "Payouts", "payout_col_total": "Total", "payout_col_status": "Status", "payout_col_processing": "Processing date", "payout_holiday_shift": "Shifted off a bank holiday", "payout_preview": "Preview next batch", "payout_preview_title": "Eligibility preview", "payout_period_start": "Period start", "payout_period_end": "Period end", "payout_eligible_nurses": "Eligible nurses", "payout_col_gross": "Gross earnings", "payout_col_clawback": "Clawback netted", "payout_col_net": "Net", "payout_no_iban": "No verified IBAN — will be skipped", "payout_eligibility_note": "Only completed bookings past their dispute window appear here — computed server-side.", "payout_run": "Run batch", "payout_run_confirm_title": "Run this payout batch?", "payout_run_confirm_body": "Money moves to nurses. This is protected by an idempotency key — a double-click can’t pay a booking twice.", "payout_running": "Submitting to the bank rail…", "payout_skipped": "Skipped nurses", "payout_batch_title": "Batch #{id}", "payout_rows_title": "Payouts in this batch", "payout_row_nurse": "Nurse", "payout_row_net": "Net", "payout_row_status": "Status", "payout_row_ref": "Transfer ref", "payout_failure_reason": "Failure: {reason}", "payout_retry": "Retry payout", "payout_retry_confirm": "Retry this failed payout? (Idempotency-protected.)", "payout_record_ref": "Record transfer reference", "payout_record_ref_ph": "Bank transfer reference", "payout_ref_saved": "Transfer reference recorded.", "payout_decomp": "{gross} gross − {clawback} clawback = {net} net", "payout_ran": "Batch submitted — now processing.", "refund_title": "Refund", "refund_open": "Open refund panel", "refund_linked_booking": "Booking #{id}", "refund_preview_title": "Refund preview", "refund_percentage": "Refund rate", "refund_row_fee": "Platform commission refunded", "refund_row_payout": "Nurse payout refunded", "refund_row_total": "Total refund", "refund_channel": "Channel", "refund_channel_hint": "How the money is returned — chosen by the server.", "refund_eta": "Estimated to the customer: {date}", "refund_eta_bnpl": "BNPL reverts take ~7–10 business days.", "refund_clawback_notice": "The nurse was already paid — a clawback will be created automatically.", "refund_initiate": "Initiate refund", "refund_approve": "Approve", "refund_reject": "Reject", "refund_confirm": "Initiate this refund on booking #{id}?", "refund_provider_failed": "The provider revert failed.", "refund_done": "Refund processed.", "refund_reason_category": "Reason", "refund_notes_ph": "Notes (optional)", "mod_title": "Review moderation", "mod_subtitle": "Publish, hide, or reject submitted reviews.", "mod_empty": "Nothing to moderate.", "mod_low_rating": "Low rating", "mod_col_rating": "Rating", "mod_col_review": "Review", "mod_col_context": "Nurse / booking", "mod_publish": "Publish", "mod_hide": "Hide", "mod_reject": "Reject", "mod_confirm_publish": "Publish this review? It becomes public and re-computes the nurse’s rating.", "mod_confirm_hide": "Hide this review with the reason above?", "mod_confirm_reject": "Reject this review with the reason above?", "mod_done": "Review updated.", "mod_nurse": "Nurse #{id}", "mod_booking": "Booking #{id}", "cfg_title": "Platform configuration", "cfg_subtitle": "Typed, audited settings that drive fees, deadlines, and scheduling.", "cfg_col_key": "Key", "cfg_col_value": "Value", "cfg_col_type": "Type", "cfg_col_updated": "Last updated", "cfg_edit": "Edit", "cfg_updated_by": "by {actor}", "cfg_range_error": "A rate must be between 0 and 1.", "cfg_int_error": "This must be a whole number.", "cfg_json_error": "Invalid JSON.", "cfg_empty_error": "A value is required.", "cfg_save_confirm_title": "Save this configuration change?", "cfg_save_confirm_body": "This change is audited and takes effect immediately. It does NOT retroactively change already-computed bookings or ledger entries.", "cfg_saved": "Configuration saved.", "cfg_history": "Change history", "cfg_history_title": "History — {key}", "cfg_history_change": "{old} → {new}", "cfg_history_empty": "No changes recorded yet.", "cfg_group_fees": "Fees & VAT", "cfg_group_deadlines": "Deadlines & windows", "cfg_group_evv": "EVV", "cfg_group_bnpl": "BNPL", "cfg_group_cancellation": "Cancellation tiers", "cfg_group_other": "Other", "hol_title": "Holiday calendar", "hol_subtitle": "Bank-closed days shift payout scheduling. The server computes the shift.", "hol_empty": "No holidays in this range.", "hol_col_date": "Date", "hol_col_name": "Name", "hol_col_type": "Type", "hol_col_bank": "Bank closed", "hol_add": "Add holiday", "hol_edit": "Edit holiday", "hol_name_fa": "Name (Persian)", "hol_bank_hint": "When on, payouts falling on this day shift to the next business day.", "hol_saved": "Holiday saved.", "hol_year": "Year", "alert_title": "Support alerts", "alert_subtitle": "Internal triage — never shown to customers or nurses.", "alert_empty": "No open alerts.", "alert_col_type": "Type", "alert_col_entity": "Linked to", "alert_col_owner": "Owner", "alert_col_status": "Status", "alert_col_created": "Raised", "alert_assign_me": "Assign to me", "alert_assign": "Assign", "alert_resolve": "Resolve", "alert_resolve_title": "Resolve alert", "alert_resolve_note_ph": "How was this resolved?", "alert_assigned": "Alert assigned.", "alert_resolved": "Alert resolved.", "alert_link_booking": "Booking #{id}", "alert_link_review": "Review #{id}", "alert_link_entity": "{type} #{id}", "alert_unassigned": "Unassigned", "audit_title": "Audit log", "audit_subtitle": "Append-only record of every admin state change. Read-only.", "audit_empty": "No audit entries for this filter.", "audit_col_entity": "Entity", "audit_col_action": "Action", "audit_col_actor": "Actor", "audit_col_time": "Time", "audit_entity_type_ph": "Entity type (e.g. PlatformConfig)", "audit_entity_id_ph": "Entity id", "audit_from": "From", "audit_to": "To", "audit_diff_title": "Changed fields", "audit_diff_field": "Field", "audit_diff_old": "Old", "audit_diff_new": "New", "audit_no_diff": "No field-level diff recorded.", "audit_redacted": "", "ticket_title": "Ticket queue", "ticket_subtitle": "Every ticket across the platform. Internal notes are staff-only.", "ticket_empty": "No tickets match this filter.", "ticket_col_ref": "Reference", "ticket_col_subject": "Subject", "ticket_col_category": "Category", "ticket_col_status": "Status", "ticket_col_booking": "Booking", "ticket_search_ref_ph": "Search by reference code", "ticket_thread_title": "Ticket {ref}", "ticket_internal_badge": "Internal note", "ticket_public_reply": "Reply", "ticket_internal_note": "Internal note", "ticket_composer_public_ph": "Reply to the participants…", "ticket_composer_internal_ph": "Add a staff-only internal note…", "ticket_send": "Send", "ticket_sent": "Message sent.", "ticket_participants": "Participants", "ticket_linked_refund": "Refund #{id}", "partner_title": "Partner centers", "partner_subtitle": "Licensed centers that sponsor nurses and may be merchant-of-record.", "partner_empty": "No partner centers yet.", "partner_col_name": "Name", "partner_col_mor": "Merchant of record", "partner_col_nurses": "Nurses", "partner_col_state": "State", "partner_create": "Create center", "partner_edit": "Edit center", "partner_detail_title": "Center detail", "partner_name": "Center name", "partner_legal_type": "Legal entity type", "partner_permit": "پروانه تأسیس", "partner_permit_en": "MoH establishment permit", "partner_tech_director": "مسئول فنی", "partner_tech_director_license": "Technical director license", "partner_enamad": "نماد اعتماد الکترونیکی", "partner_iban": "Settlement IBAN", "partner_iban_write_hint": "Enter the full IBAN to set it; it is stored masked and only the last 4 digits are shown afterward.", "partner_commission": "Commission rate", "partner_is_mor": "Merchant of record", "partner_is_mor_hint": "When on, this center issues invoices and is the settlement target.", "partner_admin_user": "Center admin user id", "partner_verify": "Verify & activate", "partner_verify_confirm": "Record licensing approval and activate this center?", "partner_activate": "Activate", "partner_suspend": "Suspend", "partner_saved": "Center saved.", "partner_verified_toast": "Center verified and activated.", "partner_roster_title": "Sponsored nurses", "partner_assign_nurse": "Assign nurse", "partner_assign_nurse_ph": "Nurse profile id", "partner_unlink_nurse": "Remove", "partner_nurse_assigned": "Nurse assignment updated.", "role_title": "Roles & access", "role_subtitle": "Grant or revoke admin roles. (Awaiting backend role endpoints.)", "role_deferred": "This console is served by a client-side placeholder until the RBAC endpoints ship.", "role_col_user": "User", "role_col_role": "Role", "role_col_granted": "Granted", "role_grant": "Grant role", "role_revoke": "Revoke", "role_grant_confirm": "Grant {role} to user #{id}?", "role_revoke_confirm": "Revoke {role} from user #{id}?", "role_updated": "Role updated.", "agg_not_started": "Not started", "agg_pending": "Pending", "agg_in_review": "In review", "agg_approved": "Approved", "agg_rejected": "Rejected", "agg_suspended": "Suspended", "step_not_started": "Not started", "step_pending": "Pending", "step_in_review": "In review", "step_passed": "Passed", "step_failed": "Failed", "step_expired": "Expired", "step_identity_kyc": "Identity (KYC)", "step_shahkar_match": "Shahkar match", "step_moh_competency_license": "MoH competency license", "step_ino_membership": "INO membership", "step_criminal_record": "Criminal record", "step_bank_account_verification": "Bank account check", "batch_status_draft": "Draft", "batch_status_processing": "Processing", "batch_status_partially_failed": "Partially failed", "batch_status_completed": "Completed", "batch_status_failed": "Failed", "pstatus_pending": "Pending", "pstatus_submitted": "Submitted", "pstatus_paid": "Paid", "pstatus_failed": "Failed", "channel_psp_card": "Card (PSP)", "channel_bnpl_revert": "BNPL revert", "channel_manual": "Manual bank", "rstatus_requested": "Requested", "rstatus_approved": "Approved", "rstatus_processing": "Processing", "rstatus_succeeded": "Succeeded", "rstatus_failed": "Failed", "rstatus_rejected": "Rejected", "mstatus_pending_moderation": "Pending", "mstatus_published": "Published", "mstatus_hidden": "Hidden", "mstatus_rejected": "Rejected", "dtype_string": "Text", "dtype_int": "Integer", "dtype_decimal": "Decimal", "dtype_bool": "Boolean", "dtype_json": "JSON", "htype_official": "Official", "htype_religious": "Religious", "htype_national": "National", "atype_low_rating": "Low rating", "atype_evv_no_show": "No-show", "atype_evv_location_mismatch": "EVV location mismatch", "atype_verification_expired": "Verification expired", "atype_shared_sim": "Shared SIM", "atype_payment_anomaly": "Payment anomaly", "atype_fraud_signal": "Fraud signal", "atype_nurse_clawback": "Nurse clawback", "atype_emergency": "Emergency", "astatus_open": "Open", "astatus_assigned": "Assigned", "astatus_resolved": "Resolved", "sev_low": "Low", "sev_medium": "Medium", "sev_high": "High", "tstatus_open": "Open", "tstatus_closed": "Closed", "tcat_coordination": "Coordination", "tcat_support": "Support", "tcat_refund": "Refund", "tcat_emergency": "Emergency", "role_super_admin": "Super admin", "role_admin": "Admin", "role_support": "Support", "role_finance": "Finance", "role_moderation": "Moderation", "center_state_draft": "Draft", "center_state_pending_verification": "Pending verification", "center_state_verified": "Verified", "center_state_suspended": "Suspended", "yes": "Yes", "no": "No" }, "partner": { "home_title": "Your center", "home_subtitle": "Onboarding, sponsored nurses, and settlement at a glance.", "state_banner_draft": "Your center is a draft — complete onboarding to go live.", "state_banner_pending": "Your center is pending verification.", "state_banner_suspended": "Your center is suspended. Contact Balinyaar.", "license_title": "License details", "permit": "پروانه تأسیس", "tech_director": "مسئول فنی", "enamad": "نماد اعتماد الکترونیکی", "legal_type": "Legal entity type", "is_mor_yes": "Merchant of record", "is_mor_no": "Settlement runs through Balinyaar", "access_denied": "You don’t have access to a partner center.", "nurses_title": "Sponsored nurses", "nurses_empty": "No nurses sponsored yet.", "nurses_col_name": "Nurse", "nurses_col_verified": "Verification", "bookings_title": "Sponsored bookings", "bookings_empty": "No bookings under this center yet.", "bookings_col_id": "Booking", "bookings_col_patient": "Patient", "bookings_col_date": "Date", "bookings_col_status": "Status", "settlement_title": "Settlement & invoices", "settlement_not_mor": "This center is not merchant-of-record — settlement runs through Balinyaar, and no commission invoices are issued here.", "settlement_empty": "No invoices yet.", "settlement_col_booking": "Booking", "settlement_col_gross": "Gross", "settlement_col_total": "Total", "settlement_moadian": "سامانه مودیان", "settlement_moadian_ref": "Moadian reference", "settlement_moadian_pending": "Not yet submitted to سامانه مودیان", "invoice_row_gross": "Gross service fee", "invoice_row_commission": "Platform commission", "invoice_row_bnpl_commission": "BNPL commission", "invoice_row_vat": "VAT (on commission)", "invoice_row_total": "Invoice total", "invoice_download": "Download PDF", "invoice_pdf_error": "Couldn’t open the invoice PDF.", "invoice_number": "Invoice #{number}", "settlement_iban": "Settlement IBAN" }, "routeChrome": { "error_title": "Something went wrong", "error_body": "An unexpected error occurred. You can try again, or head back home.", "error_retry": "Try again", "not_found_title": "Page not found", "not_found_body": "The page you are looking for does not exist or has moved.", "go_home": "Go home" } }