<?php
// File: includes/src/Frontend/I18n.php

namespace Bookaro\Frontend;

defined( 'ABSPATH' ) || exit;

/**
 * Central repository for all frontend localisation strings.
 *
 * These strings were previously defined inline when localising
 * individual scripts. Consolidating them here allows every
 * frontend bundle to reuse the same set of translations.
 */
class I18n
{
    /**
     * Strings used by the booking popup.
     */
    public static function all(): array
    {
        $resource_label_singular = function_exists( 'bookaro_get_resource_label_singular' )
            ? sanitize_text_field( (string) bookaro_get_resource_label_singular() )
            : __( 'Listing', 'mybookaro' );
        if ( '' === $resource_label_singular ) {
            $resource_label_singular = __( 'Listing', 'mybookaro' );
        }
        $resource_label_plural = function_exists( 'bookaro_get_resource_label_plural' )
            ? sanitize_text_field( (string) bookaro_get_resource_label_plural() )
            : __( 'Listings', 'mybookaro' );
        if ( '' === $resource_label_plural ) {
            $resource_label_plural = __( 'Listings', 'mybookaro' );
        }
        $resource_label_singular_lower = function_exists( 'bookaro_get_resource_label_singular_lower' )
            ? sanitize_text_field( (string) bookaro_get_resource_label_singular_lower() )
            : strtolower( $resource_label_singular );
        if ( '' === $resource_label_singular_lower ) {
            $resource_label_singular_lower = $resource_label_singular;
        }
        $resource_label_plural_lower = function_exists( 'bookaro_get_resource_label_plural_lower' )
            ? sanitize_text_field( (string) bookaro_get_resource_label_plural_lower() )
            : strtolower( $resource_label_plural );
        if ( '' === $resource_label_plural_lower ) {
            $resource_label_plural_lower = $resource_label_plural;
        }

        $strings = [
            'book_now'            => __( 'Book Now', 'mybookaro' ),
            'loading'             => __( 'Loading...', 'mybookaro' ),
            'avail_load_error'    => __( 'Could not load availability.', 'mybookaro' ),
            'services_load_error' => __( 'Failed to load services.', 'mybookaro' ),
            'no_slots'            => __( 'No available slots for this day.', 'mybookaro' ),
            'available_slots_label' => __( 'available slots', 'mybookaro' ),
            'choose_date_time'    => __( 'Choose both date & time', 'mybookaro' ),
            'fill_all'            => __( 'Name, email and phone required', 'mybookaro' ),
            'fill_required'       => __( 'Name and email required', 'mybookaro' ),
            'network_error'       => __( 'Network error', 'mybookaro' ),
            'login_title'         => __( 'Please log in or sign up', 'mybookaro' ),
            'login_text'          => __( 'You must be logged in to book a service.', 'mybookaro' ),
            'login'               => __( 'Login or Sign up', 'mybookaro' ),
            'book_label'          => __( 'Book:', 'mybookaro' ),
            'select_service'      => __( 'Select a service to continue.', 'mybookaro' ),
            'choose_files'          => __( 'Choose files', 'mybookaro' ),
            'for_label'          => __( 'for:', 'mybookaro' ),
            'notes_label'         => __( 'Notes', 'mybookaro' ),
            'select_date'         => __( 'Select a date', 'mybookaro' ),
            'select_end_date'     => __( 'Select an end date (even if same day)', 'mybookaro' ),
            'range_unavailable'   => __( 'Selected range includes unavailable days', 'mybookaro' ),
            'non_sequential'      => __( 'Please select sequential dates', 'mybookaro' ),
            'close'               => __( 'Close', 'mybookaro' ),
            'select_time'         => __( 'Select a time', 'mybookaro' ),
            'user_info_title'     => __( 'Your Info', 'mybookaro' ),
            'enter_details'       => __( 'Enter your details', 'mybookaro' ),
            'confirm_time'        => __( 'Confirm Time', 'mybookaro' ),
            'confirm_booking'     => __( 'Confirm Booking', 'mybookaro' ),
            'redirecting_to_payment' => __( 'Redirecting to payment...', 'mybookaro' ),
            'redirecting_to_payment_note' => __( 'Please wait while we take you to the secure checkout.', 'mybookaro' ),
            'success_title'       => __( 'Confirmed!', 'mybookaro' ),
            'success_text'        => __( 'Your booking is pending approval.', 'mybookaro' ),
            'success_title_confirmed' => __( 'Booking confirmed!', 'mybookaro' ),
            'success_text_confirmed'  => __( 'Your booking is confirmed.', 'mybookaro' ),
            'success_timeline_title' => __( 'What happens next', 'mybookaro' ),
            'success_timeline_steps' => [
                __( 'We sent your request to the provider.', 'mybookaro' ),
                __( 'You will receive a confirmation once it is approved.', 'mybookaro' ),
                __( 'Manage or reschedule from your dashboard.', 'mybookaro' ),
            ],
            'success_timeline_steps_confirmed' => [
                __( 'Your booking is confirmed.', 'mybookaro' ),
                __( 'You will receive a confirmation email shortly.', 'mybookaro' ),
                __( 'Manage or reschedule from your dashboard.', 'mybookaro' ),
            ],
            'error_title'         => __( 'Oops!', 'mybookaro' ),
            'try_again'           => __( 'Try Again', 'mybookaro' ),
            'back'                => __( 'Back', 'mybookaro' ),
            'dismiss'             => __( 'Dismiss', 'mybookaro' ),
            'setup_checklist_title' => __( 'Setup checklist', 'mybookaro' ),
            'setup_checklist_desc'  => __( 'Complete these steps to start taking bookings.', 'mybookaro' ),
            'setup_show_checklist'  => __( 'Show setup checklist', 'mybookaro' ),
            'setup_step_timeslots_title' => __( 'Set availability', 'mybookaro' ),
            'setup_step_timeslots_desc'  => __( 'Add your weekly timeslots so customers can book.', 'mybookaro' ),
            'setup_step_services_title'  => __( 'Add services', 'mybookaro' ),
            'setup_step_services_desc'   => sprintf(
                /* translators: %s: lowercase resource label singular */
                __( 'Create services in your %s to enable bookings.', 'mybookaro' ),
                $resource_label_singular_lower
            ),
            'setup_step_test_title'      => __( 'Create a test booking', 'mybookaro' ),
            'setup_step_test_desc'       => sprintf(
                /* translators: %s: lowercase resource label singular */
                __( 'Open your %s and run a full test booking flow.', 'mybookaro' ),
                $resource_label_singular_lower
            ),
            'setup_action_settings'      => __( 'Open Settings', 'mybookaro' ),
            'setup_action_preview'       => __( 'Preview booking', 'mybookaro' ),
            'setup_progress_label'       => __( 'complete', 'mybookaro' ),
            'setup_owner_title'          => __( 'Ready to book?', 'mybookaro' ),
            'setup_owner_desc'           => sprintf(
                /* translators: %s: lowercase resource label singular */
                __( 'Find a %s, choose a service and time, then send a booking request. It appears here after the provider responds.', 'mybookaro' ),
                $resource_label_singular_lower
            ),
            'setup_action_browse'        => sprintf(
                /* translators: %s: resource label plural */
                __( 'Browse %s', 'mybookaro' ),
                $resource_label_plural
            ),
            'empty_customer_bookings_title' => __( 'No bookings yet', 'mybookaro' ),
            'empty_customer_bookings_desc' => sprintf(
                /* translators: %s: lowercase resource label singular */
                __( 'Find a %s, choose a service and time, then send a booking request. Your bookings appear here after the provider responds.', 'mybookaro' ),
                $resource_label_singular_lower
            ),
            'empty_customer_bookings_desc_pro' => sprintf(
                /* translators: %s: lowercase resource label singular */
                __( 'Find a %s, choose a service and time, and send your first request. Once the provider responds, this page shows booking status, payment, and communication updates.', 'mybookaro' ),
                $resource_label_singular_lower
            ),
            'empty_provider_bookings_title' => __( 'No bookings yet', 'mybookaro' ),
            'empty_provider_bookings_desc' => sprintf(
                /* translators: %s: lowercase resource label singular */
                __( 'To get your first booking: create or publish a %s, add a service, set availability, then run a test booking.', 'mybookaro' ),
                $resource_label_singular_lower
            ),
            'empty_provider_bookings_desc_pro' => sprintf(
                /* translators: %s: lowercase resource label singular */
                __( 'To get your first booking: create or publish a %s, add services, set availability, then run a full test booking flow. Reports and payouts populate after bookings are created.', 'mybookaro' ),
                $resource_label_singular_lower
            ),
            'empty_provider_bookings_desc_missing_listings' => sprintf(
                /* translators: %s: lowercase resource label singular */
                __( 'Start here: create or publish a %s. Then add a service, set availability, and run a test booking.', 'mybookaro' ),
                $resource_label_singular_lower
            ),
            'empty_provider_bookings_desc_missing_timeslots' => __( 'Set weekly availability so customers can pick a time, then run a test booking.', 'mybookaro' ),
            'empty_provider_bookings_desc_missing_services' => sprintf(
                /* translators: %s: lowercase resource label singular */
                __( 'Add at least one service to your %s, then run a test booking.', 'mybookaro' ),
                $resource_label_singular_lower
            ),
            'empty_no_services_title' => __( 'No services yet', 'mybookaro' ),
            'empty_no_services_desc' => __( 'Add your first service using the form on this page.', 'mybookaro' ),
            'empty_no_listings_title' => sprintf(
                /* translators: %s: resource label plural */
                __( 'No %s found', 'mybookaro' ),
                $resource_label_plural_lower
            ),
            'empty_no_listings_desc' => sprintf(
                /* translators: %s: lowercase resource label singular */
                __( 'Create or publish a %s first, then return here to manage services.', 'mybookaro' ),
                $resource_label_singular_lower
            ),
            'empty_no_availability_title' => __( 'No availability yet', 'mybookaro' ),
            'empty_no_availability_desc' => __( 'Add at least one weekday and time block so customers can book a time.', 'mybookaro' ),
            'empty_no_dashboard_pages_title' => __( 'Dashboard pages are not assigned', 'mybookaro' ),
            'empty_no_dashboard_pages_desc' => __( 'Assign provider and customer dashboard pages so dashboard links can route users correctly.', 'mybookaro' ),
            'empty_no_dashboard_pages_desc_non_admin' => __( 'Dashboard pages are not assigned yet. Ask the site admin to finish setup.', 'mybookaro' ),
            'empty_reports_title' => __( 'No report data yet', 'mybookaro' ),
            'empty_reports_desc' => __( 'Reports populate after bookings are created. Set availability, add services, then run a test booking to verify your flow.', 'mybookaro' ),
            'empty_reports_desc_pro' => __( 'Reports populate after bookings are created. Run a full booking flow (request, response, completion) after availability and service setup to verify tracking.', 'mybookaro' ),
            'empty_reports_desc_missing_listings' => sprintf(
                /* translators: %s: lowercase resource label singular */
                __( 'Create or publish a %s first, then complete one test booking flow to populate reports.', 'mybookaro' ),
                $resource_label_singular_lower
            ),
            'empty_action_open_settings' => __( 'Open settings', 'mybookaro' ),
            'empty_action_open_listing' => sprintf(
                /* translators: %s: resource label singular */
                __( 'Open %s', 'mybookaro' ),
                $resource_label_singular
            ),
            'empty_action_create_listing' => sprintf(
                /* translators: %s: resource label singular */
                __( 'Create %s', 'mybookaro' ),
                $resource_label_singular
            ),
            'empty_action_add_service' => __( 'Add service', 'mybookaro' ),
            'empty_action_set_availability' => __( 'Set availability', 'mybookaro' ),
            'empty_action_run_test_booking' => __( 'Run test booking', 'mybookaro' ),
            'empty_action_start_booking' => __( 'Start booking', 'mybookaro' ),
            'empty_action_open_bookings' => __( 'Open bookings', 'mybookaro' ),
            'empty_action_browse_site' => __( 'Browse site', 'mybookaro' ),
            'empty_action_assign_dashboard_pages' => __( 'Assign dashboard pages', 'mybookaro' ),
            'empty_action_contact_admin' => __( 'Contact site admin', 'mybookaro' ),
            'empty_action_apply_template' => __( 'Apply weekday template', 'mybookaro' ),
            'empty_filtered_results' => __( 'No bookings match your current filters.', 'mybookaro' ),
            'name_label'          => __( 'Full Name', 'mybookaro' ),
            'name_placeholder'    => __( 'Your full name', 'mybookaro' ),
            'email_label'         => __( 'Email', 'mybookaro' ),
            'email_placeholder'   => __( 'you@example.com', 'mybookaro' ),
            'phone_label'         => __( 'Phone', 'mybookaro' ),
            'phone_placeholder'   => __( '(123) 456-7890', 'mybookaro' ),
            'optional_label'      => __( 'optional', 'mybookaro' ),
            'phone_optional_note' => __( 'Phone number is optional.', 'mybookaro' ),
            'weekdays_short'      => [
                __( 'Sun', 'mybookaro' ),
                __( 'Mon', 'mybookaro' ),
                __( 'Tue', 'mybookaro' ),
                __( 'Wed', 'mybookaro' ),
                __( 'Thu', 'mybookaro' ),
                __( 'Fri', 'mybookaro' ),
                __( 'Sat', 'mybookaro' ),
            ],
            'months' => [
                __( 'January',   'mybookaro' ),
                __( 'February',  'mybookaro' ),
                __( 'March',     'mybookaro' ),
                __( 'April',     'mybookaro' ),
                __( 'May',       'mybookaro' ),
                __( 'June',      'mybookaro' ),
                __( 'July',      'mybookaro' ),
                __( 'August',    'mybookaro' ),
                __( 'September', 'mybookaro' ),
                __( 'October',   'mybookaro' ),
                __( 'November',  'mybookaro' ),
                __( 'December',  'mybookaro' ),
            ],
            'months_short' => [
                __( 'Jan', 'mybookaro' ),
                __( 'Feb', 'mybookaro' ),
                __( 'Mar', 'mybookaro' ),
                __( 'Apr', 'mybookaro' ),
                __( 'May', 'mybookaro' ),
                __( 'Jun', 'mybookaro' ),
                __( 'Jul', 'mybookaro' ),
                __( 'Aug', 'mybookaro' ),
                __( 'Sep', 'mybookaro' ),
                __( 'Oct', 'mybookaro' ),
                __( 'Nov', 'mybookaro' ),
                __( 'Dec', 'mybookaro' ),
            ],
            'month_year_format' => __( 'MMMM YYYY', 'mybookaro' ),
            'date_format'       => __( 'DD/MM/YY', 'mybookaro' ),
            'time_format'       => __( 'HH:mm', 'mybookaro' ),
            'date_time_format'  => __( 'DD/MM/YY HH:mm', 'mybookaro' ),
            'locale'          => determine_locale(),
            'am'              => __( 'AM', 'mybookaro' ),
            'pm'              => __( 'PM', 'mybookaro' ),
            'price_label'     => __( 'Price', 'mybookaro' ),
            'subtotal_label'  => __( 'Subtotal', 'mybookaro' ),
            'balance_due_label'    => __( 'Balance due', 'mybookaro' ),
            'tax_label'            => __( 'Tax', 'mybookaro' ),
            'tax_included_label'   => __( 'Tax (included)', 'mybookaro' ),
            'booking_status_label' => __( 'Booking lifecycle', 'mybookaro' ),
            'booking_return_cta'   => __( 'View booking confirmation', 'mybookaro' ),
            'booking_details_title' => __( 'Booking details', 'mybookaro' ),
            'booking_detail_listing' => $resource_label_singular,
            'booking_detail_provider' => __( 'Provider', 'mybookaro' ),
            'booking_detail_provider_email' => __( 'Provider email', 'mybookaro' ),
            'booking_detail_provider_phone' => __( 'Provider phone', 'mybookaro' ),
            'booking_detail_service' => __( 'Service', 'mybookaro' ),
            'booking_detail_date_time' => __( 'Date & time', 'mybookaro' ),
            'booking_detail_duration' => __( 'Duration', 'mybookaro' ),
            'booking_detail_staff' => __( 'Staff', 'mybookaro' ),
            'booking_detail_location' => __( 'Location', 'mybookaro' ),
            'booking_detail_booking_id' => __( 'Booking ID', 'mybookaro' ),
            'booking_detail_status' => __( 'Booking status', 'mybookaro' ),
            'booking_detail_notes' => __( 'Notes', 'mybookaro' ),
            'status_pending'   => __( 'Pending approval', 'mybookaro' ),
            'status_approved'  => __( 'Approved', 'mybookaro' ),
            'status_rejected'  => __( 'Rejected', 'mybookaro' ),
            'status_cancelled' => __( 'Cancelled', 'mybookaro' ),
            'status_completed' => __( 'Completed', 'mybookaro' ),
            'status_no_show'   => __( 'No-show', 'mybookaro' ),
            'status_unknown'   => __( 'Unknown', 'mybookaro' ),
            'policy_title'         => __( 'Booking policies', 'mybookaro' ),
            /* translators: %d: numeric value */
            'policy_cancel_window' => __( 'Cancellation window: request cancellation at least %d hours before the scheduled start.', 'mybookaro' ),
            'policy_cancel_anytime' => __( 'Cancellation window: no cutoff is configured.', 'mybookaro' ),
            /* translators: %d: numeric value */
            'policy_reschedule_window' => __( 'Reschedule window: request a new time at least %d hours before the scheduled start.', 'mybookaro' ),
            'policy_reschedule_anytime' => __( 'Reschedule window: no cutoff is configured.', 'mybookaro' ),
            'go_dashboard'    => __( 'Go to Dashboard', 'mybookaro' ),
            'manage_booking'  => __( 'Manage booking', 'mybookaro' ),
            'add_to_calendar' => __( 'Add to calendar', 'mybookaro' ),
            'no_services_title' => __( 'Add Services', 'mybookaro' ),
            'no_services_msg' => sprintf(
                /* translators: %s: lowercase resource label singular */
                __( 'Create services in your %s to enable bookings.', 'mybookaro' ),
                $resource_label_singular_lower
            ),
            'lite_limit_title'   => __( 'Available in MyBookaro Pro', 'mybookaro' ),
            'lite_limit_services' => __( 'Advanced service management is available in MyBookaro Pro.', 'mybookaro' ),
            'lite_limit_listing'  => sprintf(
                /* translators: %s: lowercase resource label plural */
                __( 'Advanced %s workflows are available in MyBookaro Pro.', 'mybookaro' ),
                $resource_label_plural_lower
            ),
            'lite_limit_reports'  => __( 'Reports are available in MyBookaro Pro.', 'mybookaro' ),
            'lite_limit_exports'  => __( 'Exports are available in MyBookaro Pro.', 'mybookaro' ),
            'reports_unavailable' => __( 'Reports are available in MyBookaro Pro.', 'mybookaro' ),
            'charts_unavailable'  => __( 'Charts are unavailable right now.', 'mybookaro' ),
            'no_data'             => __( 'No data available', 'mybookaro' ),
            'upgrade_cta'         => __( 'Available in MyBookaro Pro', 'mybookaro' ),
            'edit_listing'    => sprintf(
                /* translators: %s: resource label singular */
                __( 'Edit %s', 'mybookaro' ),
                $resource_label_singular
            ),
            'last7Days'              => __( 'Last 7 days',    'mybookaro' ),
            'last14Days'             => __( 'Last 14 days',   'mybookaro' ),
            'last30Days'             => __( 'Last 30 days',   'mybookaro' ),
            'last90Days'             => __( 'Last 3 months',  'mybookaro' ),
            'last180Days'            => __( 'Last 6 months',  'mybookaro' ),
            'last365Days'            => __( 'Last year',      'mybookaro' ),
            'quick_ranges_label'     => __( 'Quick ranges', 'mybookaro' ),
            'bookings_per_day_label' => __( 'Bookings per day', 'mybookaro' ),
            'revenue_share_label'    => __( 'Revenue share',     'mybookaro' ),
            'conversion_rate_label'  => __( 'Conversion rate', 'mybookaro' ),
            'cancellation_rate_label' => __( 'Cancellation rate', 'mybookaro' ),
            'status_breakdown_label' => __( 'Status breakdown', 'mybookaro' ),
            'availability_tab'       => __( 'Availability', 'mybookaro' ),
            'exceptions_tab'         => __( 'Exceptions', 'mybookaro' ),
            'staff_tab'              => __( 'Staff', 'mybookaro' ),
            'staff_title'            => __( 'Staff', 'mybookaro' ),
            'staff_description'      => __( 'Manage a provider-scoped staff roster. Add, edit, enable, disable, or remove staff members.', 'mybookaro' ),
            'staff_help'             => __( 'Staff is provider-scoped and supports manual assignment from Bookings and Calendar.', 'mybookaro' ),
            'staff_no_listings'      => sprintf(
                /* translators: %s: lowercase resource label singular */
                __( 'Staff is provider-scoped. %s-level staff routing is not included.', 'mybookaro' ),
                $resource_label_singular_lower
            ),
            'staff_no_staff'         => __( 'No staff found. Add staff above to get started.', 'mybookaro' ),
            'staff_add_title'        => __( 'Add staff', 'mybookaro' ),
            'staff_add_description'  => __( 'Create staff profiles for your internal roster.', 'mybookaro' ),
            'staff_add_name'         => __( 'Name', 'mybookaro' ),
            'staff_add_email'        => __( 'Email', 'mybookaro' ),
            'staff_add_phone'        => __( 'Phone', 'mybookaro' ),
            'staff_add_button'       => __( 'Add Staff', 'mybookaro' ),
            'staff_add_success'      => __( 'Staff added.', 'mybookaro' ),
            'staff_add_error'        => __( 'Failed to add staff.', 'mybookaro' ),
            'staff_update_success'   => __( 'Staff updated.', 'mybookaro' ),
            'staff_update_error'     => __( 'Failed to update staff.', 'mybookaro' ),
            'staff_delete_success'   => __( 'Staff deleted.', 'mybookaro' ),
            'staff_delete_error'     => __( 'Failed to delete staff.', 'mybookaro' ),
            'staff_delete_title'     => __( 'Delete staff', 'mybookaro' ),
            'staff_delete_confirm'   => __( 'Delete this staff member? This cannot be undone.', 'mybookaro' ),
            'staff_add_name_required'=> __( 'Staff name is required.', 'mybookaro' ),
            'staff_add_invalid_email'=> __( 'Please enter a valid email.', 'mybookaro' ),
            'staff_assign_label'     => __( 'Assign staff', 'mybookaro' ),
            'staff_select_all'       => __( 'Select all', 'mybookaro' ),
            'staff_clear_all'        => __( 'Clear all', 'mybookaro' ),
            'staff_save'             => __( 'Save Staff', 'mybookaro' ),
            'staff_saved'            => __( 'Staff settings saved.', 'mybookaro' ),
            'staff_save_error'       => __( 'Failed to save staff settings.', 'mybookaro' ),
            'staff_scope_title'      => __( 'Shipped Staff scope', 'mybookaro' ),
            'staff_scope_summary'    => __( 'Provider-managed roster with manual booking assignment from Bookings and Calendar. This is not a global dispatch engine.', 'mybookaro' ),
            'staff_scope_step_add'   => __( 'Add, edit, enable, disable, or remove staff members in this tab.', 'mybookaro' ),
            'staff_scope_step_assign'=> __( 'Assign staff manually from booking actions in Bookings and Calendar.', 'mybookaro' ),
            'staff_scope_step_limit' => sprintf(
                /* translators: %s: lowercase resource label singular */
                __( 'No customer-selected staff at checkout and no %s-level auto-routing/dispatch are included.', 'mybookaro' ),
                $resource_label_singular_lower
            ),
            'assign_staff'           => __( 'Assign Staff', 'mybookaro' ),
            'staff_assign_save'      => __( 'Save assignment', 'mybookaro' ),
            'staff_assign_context'   => __( 'Manual staff assignment for this booking.', 'mybookaro' ),
            'staff_assigned'         => __( 'Staff assigned.', 'mybookaro' ),
            'staff_assignment_saved' => __( 'Staff assignment saved.', 'mybookaro' ),
            'staff_assignment_cleared' => __( 'Booking set to unassigned.', 'mybookaro' ),
            'staff_assign_error'     => __( 'Failed to assign staff.', 'mybookaro' ),
            'google_tab'             => __( 'Google Calendar', 'mybookaro' ),
            'google_description'     => __( 'Connect to sync bookings with Google Calendar.', 'mybookaro' ),
            'sms_tab'                => __( 'SMS', 'mybookaro' ),
            'sms_provider_description' => __( 'Configure SMS delivery for your bookings.', 'mybookaro' ),
            'sms_provider_enable_label' => __( 'Enable provider SMS', 'mybookaro' ),
            'sms_provider_label'     => __( 'SMS provider', 'mybookaro' ),
            'sms_provider_help'      => __( 'Choose which SMS gateway to use for your messages.', 'mybookaro' ),
            'sms_account_sid_label'  => __( 'Provider Account ID', 'mybookaro' ),
            'sms_account_sid_help'   => __( 'Find this in your SMS provider console.', 'mybookaro' ),
            'sms_auth_token_label'   => __( 'Provider Auth Token', 'mybookaro' ),
            'sms_auth_token_placeholder' => __( '••••••••', 'mybookaro' ),
            'sms_auth_token_help'    => __( 'Keep this token secure. Leave blank to clear it.', 'mybookaro' ),
            'sms_auth_token_saved'   => __( 'Token saved. Click Edit to replace it.', 'mybookaro' ),
            'sms_edit_token'         => __( 'Edit token', 'mybookaro' ),
            'sms_keep_token'         => __( 'Keep token', 'mybookaro' ),
            'sms_from_label'         => __( 'From Number', 'mybookaro' ),
            'sms_from_help'          => __( 'Use an E.164 formatted number, e.g. +1234567890.', 'mybookaro' ),
            'sms_templates_label'    => __( 'SMS templates', 'mybookaro' ),
            'sms_templates_help'     => __( 'Choose which SMS templates to send for your bookings.', 'mybookaro' ),
            'sms_templates_admin'    => __( 'Templates are controlled by the administrator.', 'mybookaro' ),
            'sms_templates_none'     => __( 'No templates are enabled.', 'mybookaro' ),
            'webhooks_tab'           => __( 'Webhooks', 'mybookaro' ),
            'webhooks_provider_description' => __( 'Send booking events to your own systems.', 'mybookaro' ),
            'webhooks_provider_enable_label' => __( 'Enable provider webhooks', 'mybookaro' ),
            'webhooks_endpoint_label' => __( 'Webhook Endpoint URL', 'mybookaro' ),
            'webhooks_endpoint_placeholder' => __( 'https://example.com/webhooks', 'mybookaro' ),
            'webhooks_endpoint_help' => __( 'Use a secure HTTPS URL where MyBookaro should send booking events.', 'mybookaro' ),
            'webhooks_secret_label' => __( 'Webhook Signing Secret', 'mybookaro' ),
            'webhooks_secret_help' => __( 'Optional secret used to sign webhook payloads.', 'mybookaro' ),
            'webhooks_events_label' => __( 'Events', 'mybookaro' ),
            'webhooks_events_help' => __( 'Choose which booking events you want to receive.', 'mybookaro' ),
            'webhooks_events_admin' => __( 'Events are controlled by the administrator.', 'mybookaro' ),
            'webhooks_events_none' => __( 'No events are enabled.', 'mybookaro' ),
            'webhook_event_booking_created' => __( 'Booking Created', 'mybookaro' ),
            'webhook_event_booking_updated' => __( 'Booking Updated', 'mybookaro' ),
            'webhook_event_booking_cancelled' => __( 'Booking Cancelled', 'mybookaro' ),
            'webhook_event_booking_paid' => __( 'Booking Paid', 'mybookaro' ),
            'approve'                => __( 'Approve', 'mybookaro' ),
            'delete'                 => __( 'Delete', 'mybookaro' ),
            'edit'                   => __( 'Edit', 'mybookaro' ),
            'reject'                 => __( 'Reject', 'mybookaro' ),
            'cancel'                 => __( 'Cancel', 'mybookaro' ),
            'cancel_booking_title'   => __( 'Cancel Booking', 'mybookaro' ),
            'cancel_booking_confirm' => __( 'Cancel booking', 'mybookaro' ),
            'reschedule'             => __( 'Reschedule', 'mybookaro' ),
            'reschedule_title'       => __( 'Reschedule Booking', 'mybookaro' ),
            'reschedule_confirm'     => __( 'Confirm Reschedule', 'mybookaro' ),
            'current_date'           => __( 'Current Date', 'mybookaro' ),
            'add_note'               => __( 'Notes', 'mybookaro' ),
            'no_bookings'            => __( 'No bookings to manage.', 'mybookaro' ),
            'cancel_reason_title'    => __( 'Cancellation Reason', 'mybookaro' ),
            'cancel_reason_placeholder' => __( 'Add a short reason for the cancellation', 'mybookaro' ),
            'add_note_title'         => __( 'Add / Update Note', 'mybookaro' ),
            'policy_status_title'    => __( 'Action windows', 'mybookaro' ),
            'policy_why_label'       => __( 'Why it matters', 'mybookaro' ),
            'policy_next_label'      => __( 'What to do next', 'mybookaro' ),
            'action_outcome_title'   => __( 'What changed', 'mybookaro' ),
            'action_done'            => __( 'Done', 'mybookaro' ),
            'action_close'           => __( 'Close', 'mybookaro' ),
            'action_status_label'    => __( 'Current status', 'mybookaro' ),
            'availability_title'     => __( 'Your Availability', 'mybookaro' ),
            'availability_description' => __( 'Choose the days, time blocks, and booking interval customers can pick from.', 'mybookaro' ),
            'availability_quick_actions' => __( 'Quick actions', 'mybookaro' ),
            'availability_quick_actions_desc' => __( 'Start with a ready-made schedule, then adjust the days or hours before saving.', 'mybookaro' ),
            'availability_template_weekdays' => __( 'Weekdays 9:00-17:00', 'mybookaro' ),
            'availability_template_everyday' => __( 'Every day 9:00-17:00', 'mybookaro' ),
            'availability_clear_schedule' => __( 'Clear schedule', 'mybookaro' ),
            'availability_template_applied' => __( 'Template applied.', 'mybookaro' ),
            'availability_starter_title' => __( 'Starter schedule loaded', 'mybookaro' ),
            'availability_starter_description' => __( 'Review these default hours, adjust capacity if needed, then save to publish your availability.', 'mybookaro' ),
            'availability_first_run_title' => __( 'First-run checklist', 'mybookaro' ),
            'availability_first_run_desc' => __( 'Confirm these basics before publishing your availability.', 'mybookaro' ),
            'availability_guidance_step_review' => __( 'Start with your real working days and first time blocks, then save once to publish a clean baseline schedule.', 'mybookaro' ),
            'availability_guidance_step_capacity_single' => __( 'Capacity is set to 1 booking per start time. Keep this until you intentionally accept overlapping bookings.', 'mybookaro' ),
            'availability_guidance_step_capacity_overlap' => __( 'Capacity is above 1 booking per start time, so overlapping bookings are enabled.', 'mybookaro' ),
            'availability_guidance_step_test' => __( 'After saving, run one test booking and confirm the offered slots match your expected availability.', 'mybookaro' ),
            'time_blocks_label'      => __( 'Time blocks', 'mybookaro' ),
            'decrease'               => __( 'Decrease', 'mybookaro' ),
            'increase'               => __( 'Increase', 'mybookaro' ),
            'weekday_label'          => __( 'Weekdays', 'mybookaro' ),
            'weekday_help'           => __( 'Turn on a day to add a starter block. Turn it off to remove that day from your booking schedule.', 'mybookaro' ),
            'from_label'             => __( 'From', 'mybookaro' ),
            'to_label'               => __( 'To', 'mybookaro' ),
            'save_settings'          => __( 'Save Settings', 'mybookaro' ),
            'settings_saved'         => __( 'Settings saved.', 'mybookaro' ),
            'exceptions_title'       => __( 'Date Exceptions', 'mybookaro' ),
            'exceptions_description' => __( 'Close specific dates without changing your regular weekly hours.', 'mybookaro' ),
            'exceptions_calendar_title' => __( 'Calendar', 'mybookaro' ),
            'exceptions_calendar_description' => __( 'Click any future date to close it or reopen it. Weekly hours stay the same.', 'mybookaro' ),
            'exceptions_list_title'  => __( 'Closed dates', 'mybookaro' ),
            'exceptions_list_description' => __( 'Review and remove one-off closures here before you save.', 'mybookaro' ),
            'exceptions_empty_state' => __( 'No closed dates yet. Add vacation days or one-off closures from the calendar or range tools above.', 'mybookaro' ),
            'exceptions_range_title' => __( 'Vacation / bulk ranges', 'mybookaro' ),
            'exceptions_range_description' => __( 'Use this for vacations or other runs of closed dates.', 'mybookaro' ),
            'exceptions_range_start' => __( 'Start date', 'mybookaro' ),
            'exceptions_range_end' => __( 'End date', 'mybookaro' ),
            'exceptions_range_apply' => __( 'Apply closed range', 'mybookaro' ),
            'exceptions_range_clear' => __( 'Remove closed range', 'mybookaro' ),
            'exceptions_range_error' => __( 'Select a valid start and end date.', 'mybookaro' ),
            'exceptions_range_success' => __( 'Range applied.', 'mybookaro' ),
            'exceptions_range_cleared' => __( 'Range removed.', 'mybookaro' ),
            'prev_month'             => __( '< Previous', 'mybookaro' ),
            'next_month'             => __( 'Next >', 'mybookaro' ),
            'open'                   => __( 'Open', 'mybookaro' ),
            'closed'                 => __( 'Closed', 'mybookaro' ),
            'settings_error'         => __( 'Failed to save.', 'mybookaro' ),
            'copy'                   => __( 'Copy', 'mybookaro' ),
            'copy_success'           => __( 'Copied!', 'mybookaro' ),
            'copy_error'             => __( 'Failed to copy.', 'mybookaro' ),
            'copying'                => __( 'Copying...', 'mybookaro' ),
            'ok'                     => __( 'OK', 'mybookaro' ),
            'fetch_error'            => __( 'Failed to load bookings.', 'mybookaro' ),
            'update_error'           => __( 'Failed to update booking status.', 'mybookaro' ),
            'you_label'              => __( 'You', 'mybookaro' ),
            'total_bookings'         => __( 'Total bookings:', 'mybookaro' ),
            'all_status'             => __( 'All Status', 'mybookaro' ),
            'service_name'           => __( 'Service', 'mybookaro' ),
            'staff_label'            => __( 'Staff', 'mybookaro' ),
            'staff_select'           => __( 'Select staff', 'mybookaro' ),
            'select_staff'           => __( 'Select staff', 'mybookaro' ),
            'staff_default'          => __( 'Unassigned (owner schedule)', 'mybookaro' ),
            'services_tab'           => __( 'Services', 'mybookaro' ),
            'services_title'         => __( 'Services', 'mybookaro' ),
            'new_service'            => __( 'New Service', 'mybookaro' ),
            'edit_service'           => __( 'Edit Service', 'mybookaro' ),
            'service_saved'          => __( 'Service saved.', 'mybookaro' ),
            'service_deleted'        => __( 'Service deleted.', 'mybookaro' ),
            'service_title_required' => __( 'Service title is required.', 'mybookaro' ),
            'confirm_delete_service' => __( 'Are you sure you want to delete this service?', 'mybookaro' ),
            'listing_label'          => $resource_label_singular,
            'select_listing'         => sprintf(
                /* translators: %s: lowercase resource label singular */
                __( 'Select a %s', 'mybookaro' ),
                $resource_label_singular_lower
            ),
            'listing_required'       => sprintf(
                /* translators: %s: lowercase resource label singular */
                __( 'Select a %s first.', 'mybookaro' ),
                $resource_label_singular_lower
            ),
            'no_listings'            => sprintf(
                /* translators: %s: lowercase resource label plural */
                __( 'No %s available.', 'mybookaro' ),
                $resource_label_plural_lower
            ),
            'no_services'            => __( 'No services found.', 'mybookaro' ),
            'description_label'      => __( 'Description', 'mybookaro' ),
            'duration_label'         => __( 'Duration (minutes)', 'mybookaro' ),
            'minutes_label'          => __( 'min', 'mybookaro' ),
            'minute_short'           => __( 'm', 'mybookaro' ),
            'hour_short'             => __( 'h', 'mybookaro' ),
            'owner_name'             => __( 'Client', 'mybookaro' ),
            'provider_name'          => __( 'Provider', 'mybookaro' ),
            'admin_label'            => __( 'Admin', 'mybookaro' ),
            'provider_details'       => __( 'Provider details', 'mybookaro' ),
            'provider_email'         => __( 'Provider email', 'mybookaro' ),
            'provider_phone'         => __( 'Provider phone', 'mybookaro' ),
            'created'                => __( 'Created', 'mybookaro' ),
            'date'                   => __( 'Date', 'mybookaro' ),
            'date_to'                => __( 'Date To', 'mybookaro' ),
            'actions'                => __( 'Actions', 'mybookaro' ),
            'status'                 => __( 'Status', 'mybookaro' ),
            'email'                  => __( 'Email', 'mybookaro' ),
            'phone'                  => __( 'Phone', 'mybookaro' ),
            'entries'                => __( 'entries', 'mybookaro' ),
            'show'                   => __( 'Show', 'mybookaro' ),
            'first'                  => __( 'First', 'mybookaro' ),
            'prev'                   => __( 'Prev', 'mybookaro' ),
            'page'                   => __( 'Page', 'mybookaro' ),
            'of'                     => __( 'of', 'mybookaro' ),
            'next'                   => __( 'Next', 'mybookaro' ),
            'last'                   => __( 'Last', 'mybookaro' ),
            'view'                   => __( 'View', 'mybookaro' ),
            'clear'                  => __( 'Clear', 'mybookaro' ),
            'refresh'                => __( 'Refresh', 'mybookaro' ),
            'bulk_actions'           => __( 'Bulk actions', 'mybookaro' ),
            'bulk_apply'             => __( 'Apply to selected', 'mybookaro' ),
            'bulk_select_all'        => __( 'Select all on page', 'mybookaro' ),
            'bulk_clear_selection'   => __( 'Clear selection', 'mybookaro' ),
            'bulk_selected_count'    => __( 'Selected:', 'mybookaro' ),
            'bulk_no_selection'      => __( 'Select at least one booking.', 'mybookaro' ),
            'bulk_no_eligible'       => __( 'No eligible bookings selected.', 'mybookaro' ),
            'bulk_partial'           => __( 'Some bookings could not be updated.', 'mybookaro' ),
            'start_date'             => __( 'Start Date', 'mybookaro' ),
            'end_date'               => __( 'End Date', 'mybookaro' ),
            'apply'                  => __( 'Apply', 'mybookaro' ),
            'export_bookings_csv'    => __( 'Export Bookings (CSV)', 'mybookaro' ),
            'export_reports_csv'     => __( 'Export Summary (CSV)', 'mybookaro' ),
            'export_services_csv'    => __( 'Export Services Usage (CSV)', 'mybookaro' ),
            'export_unavailable'     => __( 'Export is unavailable.', 'mybookaro' ),
            'export_purpose_label'   => __( 'Export purpose', 'mybookaro' ),
            'export_purpose_help'    => __( 'Select why you are exporting this data for compliance and auditing.', 'mybookaro' ),
            'export_purpose_reporting' => __( 'Reporting', 'mybookaro' ),
            'export_purpose_accounting' => __( 'Accounting', 'mybookaro' ),
            'export_purpose_support' => __( 'Support', 'mybookaro' ),
            'export_purpose_compliance' => __( 'Compliance', 'mybookaro' ),
            'export_purpose_payouts' => __( 'Payouts', 'mybookaro' ),
            'export_purpose_other'   => __( 'Other', 'mybookaro' ),
            'export_note_label'      => __( 'Purpose note (optional)', 'mybookaro' ),
            'export_note_placeholder' => __( 'Add a note for internal tracking (optional).', 'mybookaro' ),
            'export_confirm'         => __( 'Export', 'mybookaro' ),
            'export_cancel'          => __( 'Cancel', 'mybookaro' ),
            'export_required'        => __( 'Select a purpose', 'mybookaro' ),
            'export_required_error'  => __( 'Export purpose is required.', 'mybookaro' ),
            'saving'                 => __( 'Saving...', 'mybookaro' ),
            'save'                   => __( 'Save', 'mybookaro' ),
            'interval_label'         => __( 'Booking start interval', 'mybookaro' ),
            'interval_help'          => __( 'This controls how often a new booking can start inside each time block.', 'mybookaro' ),
            'slots_per_interval_label' => __( 'Bookings per start time', 'mybookaro' ),
            'slots_per_interval_help' => __( 'Increase this only if you can handle overlapping bookings in the same slot.', 'mybookaro' ),
            'slots_per_interval_overlap_warning' => __( 'Overlapping bookings are enabled for each start time. Keep this only if your team can fulfill concurrent bookings.', 'mybookaro' ),
            'availability_buffer_status_on' => __( 'Global booking buffers are active. Nearby start times may be hidden around each booking.', 'mybookaro' ),
            'availability_buffer_status_off' => __( 'Global booking buffers are currently off (0 minutes before / after).', 'mybookaro' ),
            'day_label'              => __( 'Day', 'mybookaro' ),
            'day_unit'               => __( 'day', 'mybookaro' ),
            'days_unit'              => __( 'days', 'mybookaro' ),
            'add_time_block'         => __( 'Add Time Block', 'mybookaro' ),
            'remove_block'           => __( 'Remove block', 'mybookaro' ),
            'time_range_invalid'     => __( 'End time must be after start time.', 'mybookaro' ),
            'time_blocks_help'       => __( 'Each block defines when a booking can start on that day. Add another block for split shifts or breaks.', 'mybookaro' ),
            'time_blocks_day_help'   => __( 'Edit or remove the blocks for this day. Removing the last block turns the day off.', 'mybookaro' ),
            'time_blocks_empty_day'  => __( 'This day is on, but it does not have any time blocks yet.', 'mybookaro' ),
            'weekly_grid_label'      => __( 'Weekly Grid', 'mybookaro' ),
            'weekly_grid_title'      => __( 'Weekly Availability Grid', 'mybookaro' ),
            'day_interval_message'   => __( 'Day bookings use one all-day slot for each selected day, so time blocks are not needed.', 'mybookaro' ),
            'day_interval_followup'  => __( 'Choose the days you accept all-day bookings. Switch back to minute intervals if you need start times during the day.', 'mybookaro' ),
            'days' => [
                'Sun' => __( 'Sunday',    'mybookaro' ),
                'Mon' => __( 'Monday',    'mybookaro' ),
                'Tue' => __( 'Tuesday',   'mybookaro' ),
                'Wed' => __( 'Wednesday', 'mybookaro' ),
                'Thu' => __( 'Thursday',  'mybookaro' ),
                'Fri' => __( 'Friday',    'mybookaro' ),
                'Sat' => __( 'Saturday',  'mybookaro' ),
            ],
            'reports_tab'           => __( 'Revenue & Reporting', 'mybookaro' ),
            'payouts_tab'           => __( 'Payouts', 'mybookaro' ),
            'payout_details_title'  => __( 'Payout details', 'mybookaro' ),
            'payout_details_desc'   => __( 'Add payout and invoice details so customers can pay online.', 'mybookaro' ),
            'show_details'          => __( 'Show details', 'mybookaro' ),
            'hide_details'          => __( 'Hide details', 'mybookaro' ),
            'edit_details'          => __( 'Edit details', 'mybookaro' ),
            'payout_details_saved'  => __( 'Payout details saved.', 'mybookaro' ),
            'edit_bank_details'     => __( 'Edit bank details', 'mybookaro' ),
            'keep_bank_details'     => __( 'Keep bank details', 'mybookaro' ),
            'edit_paypal_details'   => __( 'Edit PayPal details', 'mybookaro' ),
            'keep_paypal_details'   => __( 'Keep PayPal details', 'mybookaro' ),
            'payouts_setup_hint'    => __( 'Complete payout details to enable Pay Now for customers.', 'mybookaro' ),
            'payouts_setup_required' => __( 'Pay now is unavailable until the provider adds payout details.', 'mybookaro' ),
            'payouts_save_required' => __( 'Save your payout details to enable Pay Now.', 'mybookaro' ),
            'payouts_missing_required' => __( 'Missing: {fields}', 'mybookaro' ),
            'payout_method_label'   => __( 'Payout method', 'mybookaro' ),
            'payout_method_placeholder' => __( 'Select method', 'mybookaro' ),
            'payout_method_bank'    => __( 'Bank transfer', 'mybookaro' ),
            'payout_method_paypal'  => __( 'PayPal', 'mybookaro' ),
            'paypal_email_label'    => __( 'PayPal email', 'mybookaro' ),
            'paypal_email_placeholder' => __( 'name@example.com', 'mybookaro' ),
            'bank_account_name_label' => __( 'Account holder name', 'mybookaro' ),
            'bank_iban_label'       => __( 'IBAN', 'mybookaro' ),
            'bank_bic_label'        => __( 'BIC / SWIFT', 'mybookaro' ),
            'bank_name_label'       => __( 'Bank name', 'mybookaro' ),
            'invoice_details_title' => __( 'Invoice details', 'mybookaro' ),
            'invoice_details_desc'  => __( 'Used on payout invoices and receipts.', 'mybookaro' ),
            'invoice_name_label'    => __( 'Billing name', 'mybookaro' ),
            'invoice_company_label' => __( 'Company', 'mybookaro' ),
            'invoice_vat_label'     => __( 'VAT / Tax ID', 'mybookaro' ),
            'invoice_address_label' => __( 'Address', 'mybookaro' ),
            'invoice_city_label'    => __( 'City', 'mybookaro' ),
            'invoice_postcode_label' => __( 'Postal code', 'mybookaro' ),
            'invoice_country_label' => __( 'Country', 'mybookaro' ),
            'invoice_email_label'   => __( 'Billing email', 'mybookaro' ),
            'invoice_phone_label'   => __( 'Billing phone', 'mybookaro' ),
            'status_complete'       => __( 'Complete', 'mybookaro' ),
            'status_incomplete'     => __( 'Incomplete', 'mybookaro' ),
            'payouts_summary_title' => __( 'Payout summary', 'mybookaro' ),
            'payouts_total_earned'  => __( 'Total earned', 'mybookaro' ),
            'payouts_paid'          => __( 'Paid to you', 'mybookaro' ),
            'payouts_outstanding'   => __( 'Outstanding', 'mybookaro' ),
            'website_share'         => __( 'Website share', 'mybookaro' ),
            'provider_share'        => __( 'Provider share', 'mybookaro' ),
            'payout_status_paid'    => __( 'Paid', 'mybookaro' ),
            'payout_status_partial' => __( 'Partially paid', 'mybookaro' ),
            'payout_status_unpaid'  => __( 'Unpaid', 'mybookaro' ),
            'record_payout'         => __( 'Record payout', 'mybookaro' ),
            'payout_amount_label'   => __( 'Amount to pay', 'mybookaro' ),
            'total_requests_label'  => __( 'Total Requests', 'mybookaro' ),
            'total_bookings_label'  => __( 'Total Bookings', 'mybookaro' ),
            'total_revenue_label'   => __( 'Total Revenue', 'mybookaro' ),
            'pending_approvals_label' => __( 'Pending approvals', 'mybookaro' ),
            'cancelled_bookings_label' => __( 'Cancelled bookings', 'mybookaro' ),
            'rejected_bookings_label' => __( 'Rejected bookings', 'mybookaro' ),
            'no_show_bookings_label' => __( 'No-show bookings', 'mybookaro' ),
            'rescheduled_bookings_label' => __( 'Reschedule activity', 'mybookaro' ),
            'top_service_label'    => __( 'Top service', 'mybookaro' ),
            'bookings_trend_label' => __( 'Bookings trend', 'mybookaro' ),
            'revenue_trend_label'  => __( 'Revenue trend', 'mybookaro' ),
            'cancellations_trend_label' => __( 'Cancellation trend', 'mybookaro' ),
            'reschedules_trend_label' => __( 'Reschedule trend', 'mybookaro' ),
            'reports_trend_note'   => __( 'Compared with the previous matching period', 'mybookaro' ),
            'reports_change_new'   => __( 'New', 'mybookaro' ),
            'reports_change_unavailable' => __( 'N/A', 'mybookaro' ),
            'reports_range_label' => __( 'Range', 'mybookaro' ),
            'reports_range_no_activity_title' => __( 'No activity in this range', 'mybookaro' ),
            'reports_range_no_activity_desc' => __( 'Try a wider date range or open bookings to review recent requests.', 'mybookaro' ),
            'reports_range_reset_default' => __( 'Reset to default range', 'mybookaro' ),
            'reporting_period_label' => __( 'Reporting period', 'mybookaro' ),
            'average_bookings_per_day_label' => __( 'Avg bookings per day', 'mybookaro' ),
            'average_revenue_per_booking_label' => __( 'Avg revenue per booking', 'mybookaro' ),
            'reports_exports_hint' => __( 'Exports: use Bookings for row-level operations, Summary for KPI snapshots, and Services for service mix.', 'mybookaro' ),
            'reports_exports_hint_mylisting' => __( 'MyListing lane: use Bookings for provider-page queues, Summary for operator KPIs, and Services for demand mix decisions.', 'mybookaro' ),
            'reports_exports_hint_generic' => __( 'Generic Directory lane: use Bookings to verify mapped flow outcomes, Summary for readiness trends, and Services for service mix checks.', 'mybookaro' ),
            'reports_exports_hint_single_business' => __( 'Single Business lane: use Bookings for provider follow-up, Summary for monthly health checks, and Services to tune your service catalog.', 'mybookaro' ),
            'reports_exports_disabled_hint' => __( 'Exports are currently unavailable for your account. Ask an admin to enable provider exports in Settings > Exports.', 'mybookaro' ),
            'reports_lane_label_mylisting' => __( 'MyListing Directory lane', 'mybookaro' ),
            'reports_lane_label_generic' => __( 'Generic Directory lane', 'mybookaro' ),
            'reports_lane_label_single_business' => __( 'Single Business lane', 'mybookaro' ),
            'share_label' => __( 'Share', 'mybookaro' ),
            'top_services_label'    => __( 'Top Services', 'mybookaro' ),
            'bookings_label'        => __( 'Bookings', 'mybookaro' ),
            'delete_data_tab'       => __( 'Delete Data', 'mybookaro' ),
            'delete_my_data'        => __( 'Delete My Data', 'mybookaro' ),
            'deleting'              => __( 'Deleting...', 'mybookaro' ),
            'delete_data_description' => __( 'Deleting your data will remove your profile and anonymize all related bookings.', 'mybookaro' ),
            'delete_data_warning'   => __( 'This action is permanent and cannot be undone.', 'mybookaro' ),
            'bookings_tab'          => __( 'Bookings', 'mybookaro' ),
            'calendar_tab'          => __( 'Calendar', 'mybookaro' ),
            'dashboard_navigation_label' => __( 'Dashboard navigation', 'mybookaro' ),
            'calendar_view_month'   => __( 'Month', 'mybookaro' ),
            'calendar_view_week'    => __( 'Week', 'mybookaro' ),
            'filters_label'         => __( 'Filters', 'mybookaro' ),
            'filters_show'          => __( 'Show filters', 'mybookaro' ),
            'filters_hide'          => __( 'Hide filters', 'mybookaro' ),
            // The separator is a literal U+2022 bullet glyph. The earlier
            // version of this string used the six-char escape (\u2022)
            // — PHP single quotes do not decode that, so the calendar header
            // rendered the raw escape next to the date range.
            'filters_summary'       => __( 'Showing: {range} • {view}', 'mybookaro' ),
            'calendar_title'        => __( 'Booking Calendar', 'mybookaro' ),
            'calendar_day_label'    => __( 'Bookings for', 'mybookaro' ),
            'calendar_clear_selection' => __( 'Show all dates', 'mybookaro' ),
            'settings_tab'          => __( 'Settings', 'mybookaro' ),
            'settings_title'        => __( 'Settings', 'mybookaro' ),
            'approved'              => __( 'Approved', 'mybookaro' ),
            'pending'               => __( 'Pending', 'mybookaro' ),
            'rejected'              => __( 'Rejected', 'mybookaro' ),
            'cancelled'             => __( 'Cancelled', 'mybookaro' ),
            'completed'             => __( 'Completed', 'mybookaro' ),
            'no_show'               => __( 'No-show', 'mybookaro' ),
            'details'               => __( 'Booking Details', 'mybookaro' ),
            'booking_info'          => __( 'Booking Information', 'mybookaro' ),
            'status_timeline_title' => __( 'Status timeline', 'mybookaro' ),
            'notifications_title'   => __( 'Notifications', 'mybookaro' ),
            'notifications_empty'   => __( 'No notifications yet.', 'mybookaro' ),
            'notifications_loading' => __( 'Loading notifications...', 'mybookaro' ),
            'notifications_error'   => __( 'Unable to load notifications.', 'mybookaro' ),
            'status_sent'           => __( 'Sent', 'mybookaro' ),
            'status_failed'         => __( 'Failed', 'mybookaro' ),
            'channel_email'         => __( 'Email', 'mybookaro' ),
            'channel_sms'           => __( 'SMS', 'mybookaro' ),
            'channel_webhook'       => __( 'Webhook', 'mybookaro' ),
            'channel_other'         => __( 'Other', 'mybookaro' ),
            'status_step_requested' => __( 'Pending approval', 'mybookaro' ),
            'status_step_confirmed' => __( 'Approved', 'mybookaro' ),
            'status_step_completed' => __( 'Completed', 'mybookaro' ),
            'status_step_cancelled' => __( 'Cancelled', 'mybookaro' ),
            'status_step_rejected'  => __( 'Rejected', 'mybookaro' ),
            'status_step_no_show'   => __( 'No-show', 'mybookaro' ),
            'read_more'             => __( 'Read more', 'mybookaro' ),
            'show_less'             => __( 'Show less', 'mybookaro' ),
            'enter_note'            => __( 'Enter your note', 'mybookaro' ),
            'generic_error'         => __( 'Something went wrong.', 'mybookaro' ),
            'request_failed'        => __( 'Request failed.', 'mybookaro' ),
            'loading_settings'      => __( 'Loading settings...', 'mybookaro' ),
            'saving_label'          => __( 'Saving...', 'mybookaro' ),
            'years_short'           => __( 'yrs', 'mybookaro' ),
            'year'                  => __( 'year', 'mybookaro' ),
            'years'                 => __( 'years', 'mybookaro' ),
            'month'                 => __( 'month', 'mybookaro' ),
            'months_label'          => __( 'months', 'mybookaro' ),
            'none_option'           => __( '--', 'mybookaro' ),
            'placeholder_dash'      => __( '-', 'mybookaro' ),
            'placeholder_em_dash'   => __( '—', 'mybookaro' ),
            'untitled'              => __( 'Untitled', 'mybookaro' ),
            'connect_google'        => __( 'Connect Google', 'mybookaro' ),
            'connected_label'       => __( 'Connected', 'mybookaro' ),
            'disconnect'            => __( 'Disconnect', 'mybookaro' ),
            'disconnecting'         => __( 'Disconnecting...', 'mybookaro' ),
            'not_connected'         => __( 'Not connected to Google Calendar.', 'mybookaro' ),
            'sync_now'              => __( 'Sync Now', 'mybookaro' ),
            'syncing'               => __( 'Syncing...', 'mybookaro' ),
            'synced_label'          => __( 'Synced', 'mybookaro' ),
            'unsynced_label'        => __( 'Unsynced bookings:', 'mybookaro' ),
            'reauthorize_google'    => __( 'Please reconnect to Google to refresh with the latest permissions.', 'mybookaro' ),
            'oauth_url_error'       => __( 'Unable to build OAuth URL.', 'mybookaro' ),
            'google_synced_count_label' => __( 'Synced bookings', 'mybookaro' ),
            'google_unsynced_count_label' => __( 'Pending sync', 'mybookaro' ),
            'google_last_success_label' => __( 'Last successful sync', 'mybookaro' ),
            'google_last_attempt_label' => __( 'Last sync attempt', 'mybookaro' ),
            'google_last_error_label' => __( 'Last sync error', 'mybookaro' ),
            'google_reconnect_now' => __( 'Reconnect calendar', 'mybookaro' ),
            'google_health_unknown' => __( 'Sync status unavailable', 'mybookaro' ),
            'google_not_yet' => __( 'Not yet', 'mybookaro' ),
            'google_metrics_title' => __( 'Sync metrics', 'mybookaro' ),
            'google_diagnostics_title' => __( 'Diagnostics', 'mybookaro' ),
            'google_connection_checks_title' => __( 'Connection checks', 'mybookaro' ),
            'calendar_timezone_label' => __( 'Booking timezone', 'mybookaro' ),
            'calendar_timezone_context_label' => __( 'Booking timezone', 'mybookaro' ),
            'calendar_next_step_label' => __( 'Next step', 'mybookaro' ),
            'calendar_fix_label' => __( 'Suggested fix', 'mybookaro' ),
            'calendar_action_connect' => __( 'Connect calendar', 'mybookaro' ),
            'calendar_action_reconnect' => __( 'Reconnect calendar', 'mybookaro' ),
            'google_next_step_label' => __( 'Next step', 'mybookaro' ),
            'google_fix_label' => __( 'Suggested fix', 'mybookaro' ),
            'google_onboarding_title' => __( 'Setup checklist', 'mybookaro' ),
            'google_onboarding_step_connect' => __( 'Connect your Google account and allow calendar access.', 'mybookaro' ),
            'google_onboarding_step_sync' => __( 'Click Sync Now after approving/cancelling bookings.', 'mybookaro' ),
            'google_onboarding_step_verify' => __( 'Confirm Last successful sync updates after Sync Now.', 'mybookaro' ),
            'google_common_failures_title' => __( 'Troubleshooting', 'mybookaro' ),
            'google_calendar_id_label' => __( 'Calendar link', 'mybookaro' ),
            'google_last_success_stale' => __( 'Last successful sync looks stale. Use Sync Now to refresh it.', 'mybookaro' ),
            'google_sync_error_generic' => __( 'Sync error', 'mybookaro' ),
            'google_token_expires_label' => __( 'Token expires', 'mybookaro' ),
            'google_token_expired' => __( 'Token expired', 'mybookaro' ),
            'google_token_freshness_unknown' => __( 'Token freshness unknown', 'mybookaro' ),
            'google_state_connected' => __( 'Connected', 'mybookaro' ),
            'google_state_disconnected' => __( 'Not connected', 'mybookaro' ),
            'google_state_reconnect_required' => __( 'Reconnect required', 'mybookaro' ),
            'google_state_stale' => __( 'Sync looks stale', 'mybookaro' ),
            'google_state_failed' => __( 'Recent sync failed', 'mybookaro' ),
            'google_state_token_expired' => __( 'Token expired', 'mybookaro' ),
            'google_state_missing_calendar' => __( 'Missing calendar link', 'mybookaro' ),
            'notes'                 => __( 'Notes',               'mybookaro' ),
            'weekdays_long' => [
                __( 'Sunday',    'mybookaro' ),
                __( 'Monday',    'mybookaro' ),
                __( 'Tuesday',   'mybookaro' ),
                __( 'Wednesday', 'mybookaro' ),
                __( 'Thursday',  'mybookaro' ),
                __( 'Friday',    'mybookaro' ),
                __( 'Saturday',  'mybookaro' ),
            ],
            'add'                   => __( 'Add', 'mybookaro' ),
            'save_failed'           => __( 'Save failed.', 'mybookaro' ),
            'delete_failed'         => __( 'Delete failed.', 'mybookaro' ),
            'confirm_delete_data'   => __( 'Are you sure you want to permanently delete your data?', 'mybookaro' ),
            'data_deleted'          => __( 'Your data has been deleted.', 'mybookaro' ),
            'availability_actions'  => __( 'Availability actions', 'mybookaro' ),
            'availability_actions_desc' => __( 'Quick updates to your availability.', 'mybookaro' ),
            'copy_week'             => __( 'Copy week', 'mybookaro' ),
            'copy_week_action'      => __( 'Copy week', 'mybookaro' ),
            'copy_week_success'     => __( 'Week copied.', 'mybookaro' ),
            'copy_week_error'       => __( 'Select valid weeks to copy.', 'mybookaro' ),
            'apply_date_range'      => __( 'Apply to date range', 'mybookaro' ),
            'apply_date_range_action' => __( 'Apply to date range', 'mybookaro' ),
            'select_booking'        => __( 'Select booking', 'mybookaro' ),
            'select_all'            => __( 'Select all', 'mybookaro' ),
        ];

        $is_pro = function_exists( 'bookaro_is_pro_active' ) && bookaro_is_pro_active();
        $features = [
            'reports'  => $is_pro && function_exists( 'bookaro_feature_enabled' ) && bookaro_feature_enabled( 'reports' ),
            'gcal'     => $is_pro && function_exists( 'bookaro_feature_enabled' ) && bookaro_feature_enabled( 'gcal' ),
            'exports'  => $is_pro && function_exists( 'bookaro_feature_enabled' ) && bookaro_feature_enabled( 'exports' ),
            'messages' => $is_pro && function_exists( 'bookaro_feature_enabled' ) && bookaro_feature_enabled( 'messages' ),
            'webhooks' => $is_pro && function_exists( 'bookaro_feature_enabled' ) && bookaro_feature_enabled( 'webhooks' ),
            'staff'    => $is_pro && function_exists( 'bookaro_feature_enabled' ) && bookaro_feature_enabled( 'staff' ),
            'mylisting'=> function_exists( 'bookaro_feature_enabled' ) && bookaro_feature_enabled( 'mylisting' ),
        ];
        $features = apply_filters( 'bookaro_frontend_features', $features, $is_pro );

        if ( empty( $features['gcal'] ) ) {
            $lite_gcal_notice = __( 'Google Calendar sync is available in MyBookaro Pro.', 'mybookaro' );
            $strings['google_tab'] = __( 'Google Calendar', 'mybookaro' );
            $strings['google_description'] = $lite_gcal_notice;
            $strings['connect_google'] = __( 'Available in MyBookaro Pro', 'mybookaro' );
            $strings['disconnect'] = __( 'Available in MyBookaro Pro', 'mybookaro' );
            $strings['disconnecting'] = __( 'Available in MyBookaro Pro', 'mybookaro' );
            $strings['sync_now'] = __( 'Available in MyBookaro Pro', 'mybookaro' );
            $strings['syncing'] = __( 'Available in MyBookaro Pro', 'mybookaro' );
            $strings['not_connected'] = $lite_gcal_notice;
            $strings['reauthorize_google'] = $lite_gcal_notice;
            $strings['google_health_unknown'] = __( 'Google Calendar sync is available in MyBookaro Pro', 'mybookaro' );
            $strings['google_reconnect_now'] = __( 'Available in MyBookaro Pro', 'mybookaro' );
            $strings['calendar_action_connect'] = __( 'Available in MyBookaro Pro', 'mybookaro' );
            $strings['calendar_action_reconnect'] = __( 'Available in MyBookaro Pro', 'mybookaro' );
            $strings['google_onboarding_step_connect'] = $lite_gcal_notice;
            $strings['google_onboarding_step_sync'] = __( 'Google Calendar sync is available in MyBookaro Pro.', 'mybookaro' );
            $strings['google_onboarding_step_verify'] = __( 'After Pro activation, use sync diagnostics to verify calendar health.', 'mybookaro' );
            $strings['google_last_success_stale'] = __( 'Google Calendar sync is available in MyBookaro Pro.', 'mybookaro' );
        }

        return apply_filters( 'bookaro_frontend_i18n', $strings );
    }

    /**
     * Pro-only frontend strings kept in Lite for translations.
     */
    public static function pro_only(): array
    {
        return [
            'chat_not_implemented'   => __( 'Chat is unavailable in the current context.', 'mybookaro' ),
            'chat_title'             => __( 'Booking Chat', 'mybookaro' ),
            'chat_loading'           => __( 'Loading messages...', 'mybookaro' ),
            'chat_empty'             => __( 'No messages yet.', 'mybookaro' ),
            'chat_placeholder'       => __( 'Type your message...', 'mybookaro' ),
            'chat_send'              => __( 'Send', 'mybookaro' ),
            'chat_sending'           => __( 'Sending...', 'mybookaro' ),
            'chat_error'             => __( 'Unable to load chat messages.', 'mybookaro' ),
            'chat'                   => __( 'Chat', 'mybookaro' ),
            'chat_unavailable'       => __( 'Chat is unavailable for this booking.', 'mybookaro' ),
            'chat_unavailable_booking' => __( 'Chat is unavailable for this booking.', 'mybookaro' ),
            'chat_requires_pro'      => __( 'Booking chat is available in MyBookaro Pro.', 'mybookaro' ),
            'chat_context_unavailable' => __( 'Chat is unavailable in the current context.', 'mybookaro' ),
            'chat_permission_denied' => __( 'Permission denied for this booking conversation.', 'mybookaro' ),
            'chat_participant_mismatch' => __( 'You are not a participant in this booking conversation.', 'mybookaro' ),
            'chat_polling_delayed'   => __( 'Live updates are delayed. We will keep trying to refresh this conversation.', 'mybookaro' ),
            'chat_mylisting_native'  => __( 'MyListing uses native MyListing messaging. Generic Directory and Single Business use MyBookaro booking chat.', 'mybookaro' ),
            'chat_lane_scope'        => __( 'MyListing uses native MyListing messaging. Generic Directory and Single Business use MyBookaro booking chat.', 'mybookaro' ),
        ];
    }

}
