diff --git a/includes/app.php b/includes/app.php
index b790f7d..010f669 100644
--- a/includes/app.php
+++ b/includes/app.php
@@ -1,590 +1,1116 @@
array (
- 'app_name' => 'CargoLink',
- 'nav_home' => 'Overview',
- 'nav_login' => 'Login',
- 'nav_shipper' => 'Shipper Desk',
- 'nav_owner' => 'Truck Owner Desk',
- 'nav_admin' => 'Admin Panel',
- 'nav_theme' => 'Theme',
- 'nav_get_started' => 'Get Started',
- 'hero_title' => 'Move cargo faster with verified trucks.',
- 'hero_subtitle' => 'Post shipments, collect offers, and pay via Thawani or bank transfer. Built for local and nearby cross-border moves.',
- 'hero_tagline' => 'Multilingual Logistics Marketplace',
- 'register_shipper' => 'Register as Shipper',
- 'register_owner' => 'Register as Truck Owner',
- 'cta_shipper' => 'Post a shipment',
- 'cta_owner' => 'Find loads',
- 'cta_admin' => 'Open admin',
- 'stats_shipments' => 'Shipments posted',
- 'stats_offers' => 'Active offers',
- 'stats_confirmed' => 'Confirmed trips',
- 'section_workflow' => 'How it works',
- 'recent_shipments' => 'Recent shipments',
- 'step_post' => 'Shipper posts cargo details and preferred payment.',
- 'step_offer' => 'Truck owners respond with their best rate.',
- 'step_confirm' => 'Admin confirms booking and status.',
- 'step_confirm_desc' => 'Secure booking and track the delivery until completion.',
- 'shipper_dashboard' => 'Shipper Dashboard',
- 'new_shipment' => 'Create shipment',
- 'shipper_name' => 'Shipper name',
- 'shipper_company' => 'Company',
- 'origin' => 'Origin city',
- 'destination' => 'Destination city',
- 'cargo' => 'Cargo description',
- 'cargo_placeholder' => 'e.g. 20 Pallets of Electronics',
- 'weight' => 'Weight (tons)',
- 'pickup_date' => 'Pickup date',
- 'delivery_date' => 'Delivery date',
- 'payment_method' => 'Payment method',
- 'payment_thawani' => 'Thawani online payment',
- 'payment_bank' => 'Bank transfer',
- 'submit_shipment' => 'Submit shipment',
- 'shipments_list' => 'Your latest shipments',
- 'status' => 'Status',
- 'offer' => 'Best offer',
- 'actions' => 'Actions',
- 'view' => 'View',
- 'owner_dashboard' => 'Truck Owner Dashboard',
- 'available_shipments' => 'Available shipments',
- 'offer_price' => 'Offer price',
- 'offer_owner' => 'Truck owner name',
- 'submit_offer' => 'Send offer',
- 'admin_dashboard' => 'Admin Dashboard',
- 'update_status' => 'Update status',
- 'save' => 'Save',
- 'shipment_detail' => 'Shipment detail',
- 'created_at' => 'Created',
- 'best_offer' => 'Best offer',
- 'assign_owner' => 'Assigned owner',
- 'no_shipments' => 'No shipments yet. Create the first one to get started.',
- 'no_offers' => 'No offers yet.',
- 'success_shipment' => 'Shipment posted successfully.',
- 'success_offer' => 'Offer submitted to the shipper.',
- 'success_status' => 'Status updated.',
- 'error_required' => 'Please fill in all required fields.',
- 'error_invalid' => 'Please enter valid values.',
- 'status_posted' => 'Posted',
- 'status_offered' => 'Offered',
- 'status_confirmed' => 'Confirmed',
- 'status_in_transit' => 'In transit',
- 'status_delivered' => 'Delivered',
- 'footer_note' => 'This is the initial MVP slice. Payments are not yet connected.',
- 'marketing_title_1' => 'For Shippers',
- 'marketing_desc_1' => 'Find the right truck for your cargo quickly and securely. Post your load and get offers instantly.',
- 'marketing_title_2' => 'For Truck Owners',
- 'marketing_desc_2' => 'Maximize your earnings and eliminate empty miles. Browse available shipments and offer your rate.',
- 'motivation_phrase' => 'Empowering the logistics of tomorrow.',
- 'why_choose_us' => 'Why Choose CargoLink?',
- 'feature_1_title' => 'Fast Matching',
- 'feature_1_desc' => 'Connect with available trucks or shipments in minutes.',
- 'feature_2_title' => 'Secure Payments',
- 'feature_2_desc' => 'Your transactions are protected with security.',
- 'feature_3_title' => 'Verified Users',
- 'feature_3_desc' => 'We verify all truck owners to ensure peace of mind.',
- 'view_faq' => 'View FAQ',
- 'faq_title' => 'Have Questions?',
- 'faq_subtitle' => 'Check out our Frequently Asked Questions to learn more about how our platform works.',
- 'motivation_title' => 'Ready to transform your logistics?',
- 'motivation_subtitle' => 'Join our platform today to find reliable trucks or secure the best shipments in the market.',
- 'company' => 'Company',
- 'about_us' => 'About Us',
- 'careers' => 'Careers',
- 'contact' => 'Contact',
- 'resources' => 'Resources',
- 'help_center' => 'Help Center / FAQ',
- 'terms_of_service' => 'Terms of Service',
- 'privacy_policy' => 'Privacy Policy',
- 'language' => 'Language',
- 'all_rights_reserved' => 'All rights reserved.',
- 'dashboard' => 'Dashboard',
- 'shipments' => 'Shipments',
- 'reports' => 'Reports',
- 'summary_report' => 'Summary Report',
- 'shipments_by_origin_country' => 'Shipments by Origin Country',
- 'shipments_by_dest_country' => 'Shipments by Destination Country',
- 'shipments_by_origin_city' => 'Shipments by Origin City',
- 'shipments_by_dest_city' => 'Shipments by Destination City',
- 'shipments_by_shipper' => 'Shipments by Shipper',
- 'generated' => 'Generated',
- 'report_type' => 'Report Type',
- 'period' => 'Period',
- 'analyze_performance' => 'Analyze platform performance and metrics.',
- 'print' => 'Print',
- 'start_date' => 'Start Date',
- 'end_date' => 'End Date',
- 'apply_filter' => 'Apply Filter',
- 'no_paid_shipments' => 'No paid shipments found for this period.',
- 'name' => 'Name',
- 'total_amount' => 'Total Amount',
- 'profit' => 'Profit',
- 'total_label' => 'Total',
- 'printed_by' => 'Printed By',
- 'analytics' => 'Analytics',
- 'shipper_shipments' => 'Shipper Shipments',
- 'truck_owners_statements' => 'Truck Owners Statements',
- 'nav_platform_users' => 'Platform Users',
- 'settings' => 'Settings',
- 'company_setting' => 'Company Setting',
- 'integrations' => 'Integrations',
- 'notification_templates' => 'Notification Templates',
- 'locations' => 'Locations',
- 'countries' => 'Countries',
- 'cities' => 'Cities',
- 'users' => 'Users',
- 'shippers' => 'Shippers',
- 'truck_owners' => 'Truck Owners',
- 'user_registration' => 'User Registration',
- 'pages' => 'Pages',
- 'faqs' => 'FAQs',
- 'landing_pages' => 'Landing Pages',
- 'edit_homepage' => 'Edit homepage content and sections',
- 'view_details' => 'View Details',
- 'manage_shippers' => 'Manage Shippers',
- 'manage_registered_shippers' => 'Manage registered shippers.',
- 'search_placeholder_shipper' => 'Search name, email, company...',
- 'all_statuses' => 'All Statuses',
- 'pending' => 'Pending',
- 'rejected' => 'Rejected',
- 'active' => 'Active',
- 'no_shippers_criteria' => 'No shippers found matching your criteria.',
- 'no_shippers_registered' => 'No shippers registered yet.',
- 'name_company' => 'Name / Company',
- 'location' => 'Location',
- 'edit_shipper' => 'Edit Shipper',
- 'approve' => 'Approve',
- 'reject' => 'Reject',
- 'delete' => 'Delete',
- 'delete_confirm_shipper' => 'Delete this shipper forever?',
- 'loading' => 'Loading...',
- 'manage_truck_owners' => 'Manage Truck Owners',
- 'review_registrations' => 'Review registrations and approve truck owners.',
- 'search_placeholder_owner' => 'Search name, email, plate...',
- 'no_owners_criteria' => 'No truck owners found matching your criteria.',
- 'no_owners_registered' => 'No truck owners registered yet.',
- 'name_email' => 'Name / Email',
- 'truck_info' => 'Truck Info',
- 'documents' => 'Documents',
- 'view_docs' => 'View Docs',
- 'edit_owner' => 'Edit Owner',
- 'delete_confirm_owner' => 'Delete this truck owner forever?',
- 'docs_for' => 'Documents for',
- 'truck_reg' => 'Truck Registration',
- 'no_picture' => 'No picture uploaded.',
- 'cap' => 'Cap',
- 'manage_shipments' => 'Manage Shipments',
- 'shipments_header' => 'Shipments',
- 'shipments_subtitle' => 'Manage all shipments across the platform.',
- 'flash_shipment_deleted' => 'Shipment deleted successfully.',
- 'search_shipments_placeholder' => 'Search shipments...',
- 'search_label' => 'Search',
- 'sort_by' => 'Sort By',
- 'sort_newest' => 'Newest First',
- 'sort_oldest' => 'Oldest First',
- 'sort_pickup_soonest' => 'Pickup Date (Soonest)',
- 'sort_pickup_latest' => 'Pickup Date (Latest)',
- 'no_shipments_found_criteria' => 'No shipments found matching your criteria.',
- 'no_shipments_platform' => 'No shipments found on the platform yet.',
- 'id_col' => 'ID',
- 'dates_col' => 'Dates',
- 'from_label' => 'From:',
- 'to_label' => 'To:',
- 'pick_label' => 'Pick:',
- 'drop_label' => 'Drop:',
- 'view_shipment' => 'View Shipment',
- 'edit_shipment_tooltip' => 'Edit Shipment',
- 'confirm_delete_shipment' => 'Delete this shipment?',
- 'showing' => 'Showing',
- 'of' => 'of',
- 'previous' => 'Previous',
- 'next' => 'Next',
- 'error_occurred' => 'An error occurred',
- 'failed_load_form' => 'Failed to load form.',
- 'edit_shipment_title' => 'Edit Shipment #',
- 'update_shipment_details' => 'Update shipment details and status.',
- 'shipment_not_found' => 'Shipment not found',
- 'shipment_updated_success' => 'Shipment updated successfully.',
- 'invalid_id' => 'Invalid ID',
- 'back' => 'Back',
- 'shipment_details' => 'Shipment Details',
- 'origin_country' => 'Origin Country',
- 'destination_country' => 'Destination Country',
- 'select_country_placeholder' => 'Select Country',
- 'select_city_placeholder' => 'Select City',
- 'loading_cities' => 'Loading...',
- 'error_loading_cities' => 'Error loading cities',
- 'cancel' => 'Cancel',
- 'my_profile' => 'My Profile',
- 'profile_picture' => 'Profile Picture',
- 'change_picture' => 'Change Picture',
- 'picture_hint' => 'Click the camera icon to update.',
- 'full_name' => 'Full Name',
- 'email_address' => 'Email Address',
- 'email_hint' => 'Email cannot be changed.',
- 'account_role' => 'Account Role',
- 'change_password' => 'Change Password',
- 'new_password' => 'New Password',
- 'confirm_password' => 'Confirm Password',
- 'save_changes' => 'Save Changes',
- 'passwords_do_not_match' => 'Passwords do not match.',
- 'password_too_short' => 'Password must be at least 6 characters.',
- 'profile_updated' => 'Profile updated successfully.',
- 'password_updated' => 'Password updated successfully.',
- 'upload_failed' => 'File upload failed.',
- 'invalid_image' => 'Invalid image format. Allowed: JPG, PNG, GIF, WEBP.',
- 'login_title' => 'Login',
- 'login_subtitle' => 'Access your account',
- 'forgot_password' => 'Forgot Password?',
- 'email_placeholder' => 'name@example.com',
- 'password_placeholder' => 'Enter your password',
- 'sign_in' => 'Sign In',
- 'dont_have_account' => 'Don\'t have an account?',
- 'register_now' => 'Register Now',
- 'reset_password_title' => 'Reset Password',
- 'reset_password_subtitle' => 'Enter your email to receive a reset link',
- 'send_reset_link' => 'Send Reset Link',
- 'back_to_login' => 'Back to Login',
- 'timezone' => 'Timezone',
- 'whatsapp_settings' => 'WhatsApp Settings',
- 'enable_whatsapp' => 'Enable WhatsApp Notifications',
- 'wablas_domain' => 'Wablas Domain',
- 'wablas_api_token' => 'Wablas API Token',
- 'reg_title' => 'Registration',
- 'reg_subtitle' => 'Create an account to get started',
- 'reg_success_pending' => 'Registration successful. Your account is pending approval.',
- 'reg_success' => 'Registration successful. You can now login.',
- 'role' => 'Role',
- 'shipper' => 'Shipper',
- 'truck_owner' => 'Truck Owner',
- 'email' => 'Email',
- 'password' => 'Password',
- 'phone' => 'Phone Number',
- 'country' => 'Country',
- 'select_country' => 'Select Country',
- 'city' => 'City',
- 'select_city' => 'Select City',
- 'address' => 'Address',
- 'shipper_details' => 'Shipper Details',
- 'company_name' => 'Company Name',
- 'truck_details' => 'Truck Details',
- 'truck_type' => 'Truck Type',
- 'load_capacity' => 'Load Capacity (Tons)',
- 'plate_no' => 'Plate Number',
- 'bank_account' => 'Bank Account Number',
- 'bank_name' => 'Bank Name',
- 'bank_branch' => 'Branch Name',
- 'id_card_front' => 'ID Card (Front)',
- 'id_card_back' => 'ID Card (Back)',
- 'truck_reg_front' => 'Truck Registration (Front)',
- 'truck_reg_back' => 'Truck Registration (Back)',
- 'truck_picture' => 'Truck Picture',
- 'create_account' => 'Create Account',
- 'back_to_admin' => 'Back to Admin',
- 'back_to_home' => 'Back to Home',
- 'total_revenue' => 'Total Revenue',
- 'shipments_analytics' => 'Shipments Analytics',
- 'export_csv' => 'Export CSV',
-),
- "ar" => array (
- 'app_name' => 'CargoLink',
- 'nav_home' => 'نظرة عامة',
- 'nav_login' => 'تسجيل الدخول',
- 'nav_shipper' => 'لوحة الشاحن',
- 'nav_owner' => 'لوحة مالك الشاحنة',
- 'nav_admin' => 'لوحة الإدارة',
- 'nav_theme' => 'المظهر',
- 'nav_get_started' => 'ابدأ الآن',
- 'hero_title' => 'انقل شحنتك بسرعة مع شاحنات موثوقة.',
- 'hero_subtitle' => 'أنشئ شحنة، استلم عروضاً، وادفع عبر ثواني أو التحويل البنكي.',
- 'hero_tagline' => 'منصة لوجستية متعددة اللغات',
- 'register_shipper' => 'التسجيل كشاحن',
- 'register_owner' => 'التسجيل كمالك شاحنة',
- 'cta_shipper' => 'إنشاء شحنة',
- 'cta_owner' => 'البحث عن الشحنات',
- 'cta_admin' => 'الدخول للإدارة',
- 'stats_shipments' => 'الشحنات المنشورة',
- 'stats_offers' => 'العروض الحالية',
- 'stats_confirmed' => 'الرحلات المؤكدة',
- 'section_workflow' => 'طريقة العمل',
- 'recent_shipments' => 'أحدث الشحنات',
- 'step_post' => 'يقوم الشاحن بإدخال تفاصيل الشحنة وطريقة الدفع.',
- 'step_offer' => 'يرسل أصحاب الشاحنات أفضل عروضهم.',
- 'step_confirm' => 'تؤكد الإدارة الحجز وتحدث الحالة.',
- 'step_confirm_desc' => 'حجز آمن وتتبع التسليم حتى الانتهاء.',
- 'shipper_dashboard' => 'لوحة الشاحن',
- 'new_shipment' => 'إنشاء شحنة',
- 'shipper_name' => 'اسم الشاحن',
- 'shipper_company' => 'الشركة',
- 'origin' => 'مدينة الانطلاق',
- 'destination' => 'مدينة الوصول',
- 'cargo' => 'وصف الحمولة',
- 'cargo_placeholder' => 'مثال: 20 منصة إلكترونيات',
- 'weight' => 'الوزن (طن)',
- 'pickup_date' => 'تاريخ الاستلام',
- 'delivery_date' => 'تاريخ التسليم',
- 'payment_method' => 'طريقة الدفع',
- 'payment_thawani' => 'الدفع الإلكتروني عبر ثواني',
- 'payment_bank' => 'تحويل بنكي',
- 'submit_shipment' => 'إرسال الشحنة',
- 'shipments_list' => 'أحدث الشحنات',
- 'status' => 'الحالة',
- 'offer' => 'أفضل عرض',
- 'actions' => 'إجراءات',
- 'view' => 'عرض',
- 'owner_dashboard' => 'لوحة مالك الشاحنة',
- 'available_shipments' => 'الشحنات المتاحة',
- 'offer_price' => 'سعر العرض',
- 'offer_owner' => 'اسم مالك الشاحنة',
- 'submit_offer' => 'إرسال العرض',
- 'admin_dashboard' => 'لوحة الإدارة',
- 'update_status' => 'تحديث الحالة',
- 'save' => 'حفظ',
- 'shipment_detail' => 'تفاصيل الشحنة',
- 'created_at' => 'تم الإنشاء',
- 'best_offer' => 'أفضل عرض',
- 'assign_owner' => 'المالك المعتمد',
- 'no_shipments' => 'لا توجد شحنات بعد. ابدأ بإنشاء أول شحنة.',
- 'no_offers' => 'لا توجد عروض بعد.',
- 'success_shipment' => 'تم نشر الشحنة بنجاح.',
- 'success_offer' => 'تم إرسال العرض إلى الشاحن.',
- 'success_status' => 'تم تحديث الحالة.',
- 'error_required' => 'يرجى تعبئة جميع الحقول المطلوبة.',
- 'error_invalid' => 'يرجى إدخال قيم صحيحة.',
- 'status_posted' => 'منشورة',
- 'status_offered' => 'بعرض',
- 'status_confirmed' => 'مؤكدة',
- 'status_in_transit' => 'قيد النقل',
- 'status_delivered' => 'تم التسليم',
- 'footer_note' => 'هذه هي النسخة الأولية. الدفع غير متصل بعد.',
- 'marketing_title_1' => 'للشاحنين',
- 'marketing_desc_1' => 'ابحث عن الشاحنة المناسبة لحمولتك بسرعة وأمان.',
- 'marketing_title_2' => 'لأصحاب الشاحنات',
- 'marketing_desc_2' => 'عظّم أرباحك وتجنب العودة فارغاً.',
- 'motivation_phrase' => 'تمكين الخدمات اللوجستية للمستقبل.',
- 'why_choose_us' => 'لماذا تختار كارجو لينك؟',
- 'feature_1_title' => 'مطابقة سريعة',
- 'feature_1_desc' => 'تواصل مع الشاحنات المتاحة في دقائق.',
- 'feature_2_title' => 'مدفوعات آمنة',
- 'feature_2_desc' => 'معاملاتك محمية بأعلى معايير الأمان.',
- 'feature_3_title' => 'مستخدمون موثوقون',
- 'feature_3_desc' => 'نقوم بالتحقق من جميع أصحاب الشاحنات لضمان راحتك.',
- 'view_faq' => 'عرض الأسئلة الشائعة',
- 'faq_title' => 'لديك أسئلة؟',
- 'faq_subtitle' => 'اطلع على الأسئلة الشائعة لمعرفة المزيد حول كيفية عمل منصتنا.',
- 'motivation_title' => 'هل أنت مستعد لتحويل خدماتك اللوجستية؟',
- 'motivation_subtitle' => 'انضم إلى منصتنا اليوم للعثور على شاحنات موثوقة أو تأمين أفضل الشحنات في السوق.',
- 'company' => 'الشركة',
- 'about_us' => 'معلومات عنا',
- 'careers' => 'الوظائف',
- 'contact' => 'اتصل بنا',
- 'resources' => 'الموارد',
- 'help_center' => 'مركز المساعدة / الأسئلة الشائعة',
- 'terms_of_service' => 'شروط الخدمة',
- 'privacy_policy' => 'سياسة الخصوصية',
- 'language' => 'اللغة',
- 'all_rights_reserved' => 'جميع الحقوق محفوظة.',
- 'dashboard' => 'لوحة القيادة',
- 'shipments' => 'الشحنات',
- 'reports' => 'التقارير',
- 'summary_report' => 'تقرير ملخص',
- 'shipments_by_origin_country' => 'الشحنات حسب بلد المنشأ',
- 'shipments_by_dest_country' => 'الشحنات حسب بلد الوجهة',
- 'shipments_by_origin_city' => 'الشحنات حسب مدينة المنشأ',
- 'shipments_by_dest_city' => 'الشحنات حسب مدينة الوجهة',
- 'shipments_by_shipper' => 'الشحنات حسب الشاحن',
- 'generated' => 'تم الإنشاء',
- 'report_type' => 'نوع التقرير',
- 'period' => 'الفترة',
- 'analyze_performance' => 'تحليل أداء المنصة والمقاييس.',
- 'print' => 'طباعة',
- 'start_date' => 'تاريخ البدء',
- 'end_date' => 'تاريخ الانتهاء',
- 'apply_filter' => 'تطبيق الفلتر',
- 'no_paid_shipments' => 'لم يتم العثور على شحنات مدفوعة لهذه الفترة.',
- 'name' => 'الاسم',
- 'total_amount' => 'المبلغ الإجمالي',
- 'profit' => 'الربح',
- 'total_label' => 'المجموع',
- 'printed_by' => 'طبع بواسطة',
- 'analytics' => 'التحليلات',
- 'shipper_shipments' => 'شحنات الشاحنين',
- 'truck_owners_statements' => 'كشوف حساب أصحاب الشاحنات',
- 'nav_platform_users' => 'مستخدمو المنصة',
- 'settings' => 'الإعدادات',
- 'company_setting' => 'إعدادات الشركة',
- 'integrations' => 'التكاملات',
- 'notification_templates' => 'قوالب الإشعارات',
- 'locations' => 'المواقع',
- 'countries' => 'البلدان',
- 'cities' => 'المدن',
- 'users' => 'المستخدمون',
- 'shippers' => 'الشاحنون',
- 'truck_owners' => 'أصحاب الشاحنات',
- 'user_registration' => 'تسجيل المستخدم',
- 'pages' => 'الصفحات',
- 'faqs' => 'الأسئلة الشائعة',
- 'landing_pages' => 'إعدادات الصفحة الرئيسية',
- 'edit_homepage' => 'تعديل محتوى الصفحة الرئيسية والأقسام',
- 'view_details' => 'عرض التفاصيل',
- 'manage_shippers' => 'إدارة الشاحنين',
- 'manage_registered_shippers' => 'إدارة الشاحنين المسجلين.',
- 'search_placeholder_shipper' => 'ابحث بالاسم، البريد، الشركة...',
- 'all_statuses' => 'كل الحالات',
- 'pending' => 'قيد الانتظار',
- 'rejected' => 'مرفوض',
- 'active' => 'نشط',
- 'no_shippers_criteria' => 'لم يتم العثور على شاحنين مطابقين لمعاييرك.',
- 'no_shippers_registered' => 'لا يوجد شاحنين مسجلين بعد.',
- 'name_company' => 'الاسم / الشركة',
- 'location' => 'الموقع',
- 'edit_shipper' => 'تعديل الشاحن',
- 'approve' => 'موافقة',
- 'reject' => 'رفض',
- 'delete' => 'حذف',
- 'delete_confirm_shipper' => 'هل أنت متأكد من حذف هذا الشاحن نهائياً؟',
- 'loading' => 'جاري التحميل...',
- 'manage_truck_owners' => 'إدارة أصحاب الشاحنات',
- 'review_registrations' => 'مراجعة التسجيلات والموافقة على أصحاب الشاحنات.',
- 'search_placeholder_owner' => 'ابحث بالاسم، البريد، اللوحة...',
- 'no_owners_criteria' => 'لم يتم العثور على أصحاب شاحنات مطابقين لمعاييرك.',
- 'no_owners_registered' => 'لا يوجد أصحاب شاحنات مسجلين بعد.',
- 'name_email' => 'الاسم / البريد',
- 'truck_info' => 'معلومات الشاحنة',
- 'documents' => 'المستندات',
- 'view_docs' => 'عرض المستندات',
- 'edit_owner' => 'تعديل المالك',
- 'delete_confirm_owner' => 'هل أنت متأكد من حذف مالك الشاحنة هذا نهائياً؟',
- 'docs_for' => 'مستندات',
- 'truck_reg' => 'تسجيل الشاحنة',
- 'no_picture' => 'لا توجد صورة محملة.',
- 'cap' => 'السعة',
- 'manage_shipments' => 'إدارة الشحنات',
- 'shipments_header' => 'الشحنات',
- 'shipments_subtitle' => 'إدارة جميع الشحنات عبر المنصة.',
- 'flash_shipment_deleted' => 'تم حذف الشحنة بنجاح.',
- 'search_shipments_placeholder' => 'البحث في الشحنات...',
- 'search_label' => 'بحث',
- 'sort_by' => 'ترتيب حسب',
- 'sort_newest' => 'الأحدث أولاً',
- 'sort_oldest' => 'الأقدم أولاً',
- 'sort_pickup_soonest' => 'تاريخ الاستلام (الأقرب)',
- 'sort_pickup_latest' => 'تاريخ الاستلام (الأبعد)',
- 'no_shipments_found_criteria' => 'لم يتم العثور على شحنات مطابقة لمعايير البحث.',
- 'no_shipments_platform' => 'لا توجد شحنات على المنصة بعد.',
- 'id_col' => 'المعرف',
- 'dates_col' => 'التواريخ',
- 'from_label' => 'من:',
- 'to_label' => 'إلى:',
- 'pick_label' => 'استلام:',
- 'drop_label' => 'تسليم:',
- 'view_shipment' => 'عرض الشحنة',
- 'edit_shipment_tooltip' => 'تعديل الشحنة',
- 'confirm_delete_shipment' => 'حذف هذه الشحنة؟',
- 'showing' => 'عرض',
- 'of' => 'من',
- 'previous' => 'السابق',
- 'next' => 'التالي',
- 'error_occurred' => 'حدث خطأ',
- 'failed_load_form' => 'فشل تحميل النموذج.',
- 'edit_shipment_title' => 'تعديل الشحنة #',
- 'update_shipment_details' => 'تحديث تفاصيل الشحنة والحالة.',
- 'shipment_not_found' => 'الشحنة غير موجودة',
- 'shipment_updated_success' => 'تم تحديث الشحنة بنجاح.',
- 'invalid_id' => 'معرف غير صحيح',
- 'back' => 'رجوع',
- 'shipment_details' => 'تفاصيل الشحنة',
- 'origin_country' => 'بلد الانطلاق',
- 'destination_country' => 'بلد الوصول',
- 'select_country_placeholder' => 'اختر البلد',
- 'select_city_placeholder' => 'اختر المدينة',
- 'loading_cities' => 'جاري التحميل...',
- 'error_loading_cities' => 'خطأ في تحميل المدن',
- 'cancel' => 'إلغاء',
- 'my_profile' => 'ملفي الشخصي',
- 'profile_picture' => 'صورة الملف الشخصي',
- 'change_picture' => 'تغيير الصورة',
- 'picture_hint' => 'انقر على أيقونة الكاميرا للتحديث.',
- 'full_name' => 'الاسم الكامل',
- 'email_address' => 'البريد الإلكتروني',
- 'email_hint' => 'لا يمكن تغيير البريد الإلكتروني.',
- 'account_role' => 'نوع الحساب',
- 'change_password' => 'تغيير كلمة المرور',
- 'new_password' => 'كلمة المرور الجديدة',
- 'confirm_password' => 'تأكيد كلمة المرور',
- 'save_changes' => 'حفظ التغييرات',
- 'passwords_do_not_match' => 'كلمات المرور غير متطابقة.',
- 'password_too_short' => 'يجب أن تكون كلمة المرور 6 أحرف على الأقل.',
- 'profile_updated' => 'تم تحديث الملف الشخصي بنجاح.',
- 'password_updated' => 'تم تحديث كلمة المرور بنجاح.',
- 'upload_failed' => 'فشل تحميل الملف.',
- 'invalid_image' => 'تنسيق الصورة غير صالح. المسموح: JPG, PNG, GIF, WEBP.',
- 'login_title' => 'تسجيل الدخول',
- 'login_subtitle' => 'الدخول إلى حسابك',
- 'forgot_password' => 'نسيت كلمة المرور؟',
- 'email_placeholder' => 'name@example.com',
- 'password_placeholder' => 'أدخل كلمة المرور',
- 'sign_in' => 'تسجيل الدخول',
- 'dont_have_account' => 'ليس لديك حساب؟',
- 'register_now' => 'سجل الآن',
- 'reset_password_title' => 'إعادة تعيين كلمة المرور',
- 'reset_password_subtitle' => 'أدخل بريدك الإلكتروني لتلقي رابط إعادة التعيين',
- 'send_reset_link' => 'إرسال رابط إعادة التعيين',
- 'back_to_login' => 'العودة لتسجيل الدخول',
- 'timezone' => 'المنطقة الزمنية',
- 'whatsapp_settings' => 'إعدادات واتساب',
- 'enable_whatsapp' => 'تفعيل إشعارات واتساب',
- 'wablas_domain' => 'نطاق Wablas',
- 'wablas_api_token' => 'رمز API لـ Wablas',
- 'reg_title' => 'إنشاء حساب جديد',
- 'reg_subtitle' => 'أنشئ حساباً للبدء',
- 'reg_success_pending' => 'تم التسجيل بنجاح. حسابك بانتظار الموافقة.',
- 'reg_success' => 'تم التسجيل بنجاح. يمكنك تسجيل الدخول الآن.',
- 'role' => 'نوع الحساب',
- 'shipper' => 'شاحن',
- 'truck_owner' => 'مالك شاحنة',
- 'email' => 'البريد الإلكتروني',
- 'password' => 'كلمة المرور',
- 'phone' => 'رقم الهاتف',
- 'country' => 'الدولة',
- 'select_country' => 'اختر الدولة',
- 'city' => 'المدينة',
- 'select_city' => 'اختر المدينة',
- 'address' => 'العنوان',
- 'shipper_details' => 'تفاصيل الشاحن',
- 'company_name' => 'اسم الشركة',
- 'truck_details' => 'تفاصيل الشاحنة',
- 'truck_type' => 'نوع الشاحنة',
- 'load_capacity' => 'سعة الحمولة (طن)',
- 'plate_no' => 'رقم اللوحة',
- 'bank_account' => 'رقم الحساب البنكي',
- 'bank_name' => 'اسم البنك',
- 'bank_branch' => 'اسم الفرع',
- 'id_card_front' => 'البطاقة الشخصية (أمام)',
- 'id_card_back' => 'البطاقة الشخصية (خلف)',
- 'truck_reg_front' => 'ملكية الشاحنة (أمام)',
- 'truck_reg_back' => 'ملكية الشاحنة (خلف)',
- 'truck_picture' => 'صورة الشاحنة',
- 'create_account' => 'إنشاء حساب',
- 'back_to_admin' => 'العودة للإدارة',
- 'back_to_home' => 'العودة للرئيسية',
- 'total_revenue' => 'إجمالي الإيرادات',
- 'shipments_analytics' => 'تحليلات الشحنات',
- 'export_csv' => 'تصدير CSV',
-)
+ 'en' => [
+ 'nav_home' => 'Home',
+ 'nav_dashboard' => 'Dashboard',
+ 'nav_login' => 'Login',
+ 'nav_logout' => 'Logout',
+ 'nav_register' => 'Register',
+ 'welcome' => 'Welcome to Logistics Platform',
+ 'hero_title' => 'Fast & Reliable Logistics',
+ 'hero_subtitle' => 'Connecting shippers and truck owners seamlessly.',
+ 'track_shipment' => 'Track Shipment',
+ 'enter_tracking' => 'Enter Tracking ID',
+ 'footer_rights' => 'All rights reserved.',
+ 'login_title' => 'Login',
+ 'email_label' => 'Email Address',
+ 'password_label' => 'Password',
+ 'login_btn' => 'Sign In',
+ 'register_link' => "Don't have an account? Register here.",
+ 'dashboard_title' => 'Dashboard',
+ 'post_shipment' => 'Post New Shipment',
+ 'recent_shipments' => 'Recent Shipments',
+ 'status' => 'Status',
+ 'actions' => 'Actions',
+ 'view_details' => 'View Details',
+ 'edit' => 'Edit',
+ 'delete' => 'Delete',
+ 'profile' => 'Profile',
+ 'settings' => 'Settings',
+ 'my_shipments' => 'My Shipments',
+ 'find_trucks' => 'Find Trucks',
+ 'contact_us' => 'Contact Us',
+ 'about_us' => 'About Us',
+ 'privacy_policy' => 'Privacy Policy',
+ 'terms_conditions' => 'Terms & Conditions',
+ 'admin_panel' => 'Admin Panel',
+ 'users' => 'Users',
+ 'reports' => 'Reports',
+ 'logout_confirm' => 'Are you sure you want to logout?',
+ 'yes' => 'Yes',
+ 'no' => 'No',
+ 'cancel' => 'Cancel',
+ 'save' => 'Save',
+ 'update' => 'Update',
+ 'created_at' => 'Created At',
+ 'updated_at' => 'Updated At',
+ 'id' => 'ID',
+ 'name' => 'Name',
+ 'role' => 'Role',
+ 'approved' => 'Approved',
+ 'pending' => 'Pending',
+ 'rejected' => 'Rejected',
+ 'active' => 'Active',
+ 'inactive' => 'Inactive',
+ 'success_message' => 'Operation successful.',
+ 'error_message' => 'An error occurred. Please try again.',
+ 'manage_shipments' => 'Manage Shipments',
+ 'manage_users' => 'Manage Users',
+ 'manage_trucks' => 'Manage Trucks',
+ 'truck_owner' => 'Truck Owner',
+ 'shipper' => 'Shipper',
+ 'admin' => 'Admin',
+ 'notifications' => 'Notifications',
+ 'mark_read' => 'Mark as Read',
+ 'view_all' => 'View All',
+ 'new_shipment_alert' => 'New shipment posted!',
+ 'shipment_update_alert' => 'Shipment status updated.',
+ 'offer_received' => 'New offer received.',
+ 'offer_accepted' => 'Offer accepted.',
+ 'offer_rejected' => 'Offer rejected.',
+ 'payment_received' => 'Payment received.',
+ 'payment_pending' => 'Payment pending.',
+ 'payment_failed' => 'Payment failed.',
+ 'search' => 'Search...',
+ 'filter' => 'Filter',
+ 'sort_by' => 'Sort By',
+ 'date' => 'Date',
+ 'price' => 'Price',
+ 'loading' => 'Loading...',
+ 'no_data' => 'No data available.',
+ 'unauthorized' => 'Unauthorized access.',
+ 'page_not_found' => 'Page not found.',
+ 'server_error' => 'Internal Server Error.',
+ 'go_back' => 'Go Back',
+ 'home_btn' => 'Go Home',
+ 'reset_password' => 'Reset Password',
+ 'forgot_password' => 'Forgot Password?',
+ 'send_link' => 'Send Reset Link',
+ 'password_reset_sent' => 'Password reset link sent to your email.',
+ 'password_changed' => 'Password changed successfully.',
+ 'confirm_password' => 'Confirm Password',
+ 'current_password' => 'Current Password',
+ 'new_password' => 'New Password',
+ 'change_password' => 'Change Password',
+ 'personal_info' => 'Personal Information',
+ 'company_info' => 'Company Information',
+ 'truck_info' => 'Truck Information',
+ 'documents' => 'Documents',
+ 'upload_doc' => 'Upload Document',
+ 'download' => 'Download',
+ 'file_too_large' => 'File is too large.',
+ 'invalid_file_type' => 'Invalid file type.',
+ 'upload_success' => 'File uploaded successfully.',
+ 'delete_confirm' => 'Are you sure you want to delete this?',
+ 'deleted_success' => 'Deleted successfully.',
+ 'feature_not_available' => 'Feature not available yet.',
+ 'coming_soon' => 'Coming Soon',
+ 'contact_support' => 'Contact Support',
+ 'faq' => 'FAQ',
+ 'language' => 'Language',
+ 'english' => 'English',
+ 'arabic' => 'Arabic',
+ 'switch_lang' => 'Switch Language',
+ 'dark_mode' => 'Dark Mode',
+ 'light_mode' => 'Light Mode',
+ 'notifications_settings' => 'Notification Settings',
+ 'email_notif' => 'Email Notifications',
+ 'sms_notif' => 'SMS Notifications',
+ 'push_notif' => 'Push Notifications',
+ 'enable' => 'Enable',
+ 'disable' => 'Disable',
+ 'account_settings' => 'Account Settings',
+ 'delete_account' => 'Delete Account',
+ 'delete_account_warning' => 'This action is irreversible.',
+ 'feedback' => 'Feedback',
+ 'rate_us' => 'Rate Us',
+ 'copyright' => 'Copyright © ' . date('Y'),
+ 'powered_by' => 'Powered by Logistics Platform',
+ 'terms_of_service' => 'Terms of Service',
+ 'cookie_policy' => 'Cookie Policy',
+ 'careers' => 'Careers',
+ 'blog' => 'Blog',
+ 'partners' => 'Partners',
+ 'help_center' => 'Help Center',
+ 'how_it_works' => 'How It Works',
+ 'pricing' => 'Pricing',
+ 'get_started' => 'Get Started',
+ 'learn_more' => 'Learn More',
+ 'demo' => 'Request Demo',
+ 'subscribe' => 'Subscribe',
+ 'newsletter' => 'Newsletter',
+ 'enter_email' => 'Enter your email',
+ 'invalid_email' => 'Invalid email address.',
+ 'message_sent' => 'Message sent successfully.',
+ 'thank_you' => 'Thank you!',
+ '404_msg' => 'The page you are looking for does not exist.',
+ '500_msg' => 'Something went wrong on our end.',
+ 'maintenance_msg' => 'System is under maintenance. Please try again later.',
+ 'session_expired' => 'Session expired. Please login again.',
+ 'login_required' => 'Login required to access this page.',
+ 'access_denied' => 'Access denied.',
+ 'csrf_error' => 'Invalid security token. Please refresh and try again.',
+ 'validation_error' => 'Please correct the errors below.',
+ 'required_field' => 'This field is required.',
+ 'min_length' => 'Minimum length is %s characters.',
+ 'max_length' => 'Maximum length is %s characters.',
+ 'numeric_only' => 'Only numbers are allowed.',
+ 'alpha_only' => 'Only letters are allowed.',
+ 'alphanumeric_only' => 'Only letters and numbers are allowed.',
+ 'email_exists' => 'Email already exists.',
+ 'username_exists' => 'Username already exists.',
+ 'password_mismatch' => 'Passwords do not match.',
+ 'invalid_credentials' => 'Invalid email or password.',
+ 'account_locked' => 'Account is locked. Please contact support.',
+ 'too_many_attempts' => 'Too many login attempts. Please try again later.',
+ 'verify_email' => 'Please verify your email address.',
+ 'email_verified' => 'Email verified successfully.',
+ 'verification_link_sent' => 'Verification link sent.',
+ 'invalid_token' => 'Invalid or expired token.',
+ 'token_expired' => 'Token has expired.',
+ 'resend_verification' => 'Resend Verification Email',
+ 'dashboard_overview' => 'Overview',
+ 'total_shipments' => 'Total Shipments',
+ 'active_trucks' => 'Active Trucks',
+ 'pending_approvals' => 'Pending Approvals',
+ 'revenue' => 'Revenue',
+ 'recent_activity' => 'Recent Activity',
+ 'view_all_shipments' => 'View All Shipments',
+ 'view_all_users' => 'View All Users',
+ 'add_new' => 'Add New',
+ 'export' => 'Export',
+ 'import' => 'Import',
+ 'print' => 'Print',
+ 'copy' => 'Copy',
+ 'csv' => 'CSV',
+ 'excel' => 'Excel',
+ 'pdf' => 'PDF',
+ 'search_results' => 'Search Results',
+ 'no_results' => 'No results found.',
+ 'showing_entries' => 'Showing %s to %s of %s entries',
+ 'next_page' => 'Next',
+ 'prev_page' => 'Previous',
+ 'first_page' => 'First',
+ 'last_page' => 'Last',
+ 'apply' => 'Apply',
+ 'clear' => 'Clear',
+ 'filter_by' => 'Filter by',
+ 'status_all' => 'All Statuses',
+ 'role_all' => 'All Roles',
+ 'date_range' => 'Date Range',
+ 'today' => 'Today',
+ 'yesterday' => 'Yesterday',
+ 'last_7_days' => 'Last 7 Days',
+ 'last_30_days' => 'Last 30 Days',
+ 'this_month' => 'This Month',
+ 'last_month' => 'Last Month',
+ 'custom_range' => 'Custom Range',
+ 'start_date' => 'Start Date',
+ 'end_date' => 'End Date',
+ 'to' => 'to',
+ 'from' => 'From',
+ 'subject' => 'Subject',
+ 'message' => 'Message',
+ 'send_message' => 'Send Message',
+ 'reply' => 'Reply',
+ 'forward' => 'Forward',
+ 'mark_unread' => 'Mark as Unread',
+ 'delete_selected' => 'Delete Selected',
+ 'archive' => 'Archive',
+ 'spam' => 'Spam',
+ 'trash' => 'Trash',
+ 'compose' => 'Compose',
+ 'inbox' => 'Inbox',
+ 'sent' => 'Sent',
+ 'drafts' => 'Drafts',
+ 'important' => 'Important',
+ 'starred' => 'Starred',
+ 'labels' => 'Labels',
+ 'add_label' => 'Add Label',
+ 'remove_label' => 'Remove Label',
+ 'color' => 'Color',
+ 'description' => 'Description',
+ 'edit_profile' => 'Edit Profile',
+ 'change_avatar' => 'Change Avatar',
+ 'bio' => 'Bio',
+ 'location' => 'Location',
+ 'website' => 'Website',
+ 'social_links' => 'Social Links',
+ 'facebook' => 'Facebook',
+ 'twitter' => 'Twitter',
+ 'linkedin' => 'LinkedIn',
+ 'instagram' => 'Instagram',
+ 'youtube' => 'YouTube',
+ 'github' => 'GitHub',
+ 'save_changes' => 'Save Changes',
+ 'discard_changes' => 'Discard Changes',
+ 'unsaved_changes' => 'You have unsaved changes.',
+ 'stay_on_page' => 'Stay on Page',
+ 'leave_page' => 'Leave Page',
+ 'confirm_action' => 'Confirm Action',
+ 'action_cannot_undone' => 'This action cannot be undone.',
+ 'type_confirm' => 'Type "CONFIRM" to proceed.',
+ 'notifications_permission' => 'Allow notifications?',
+ 'allow' => 'Allow',
+ 'deny' => 'Deny',
+ 'location_permission' => 'Allow location access?',
+ 'camera_permission' => 'Allow camera access?',
+ 'mic_permission' => 'Allow microphone access?',
+ 'cookie_consent' => 'We use cookies to improve your experience.',
+ 'accept_all' => 'Accept All',
+ 'reject_all' => 'Reject All',
+ 'customize' => 'Customize',
+ 'preferences' => 'Preferences',
+ 'general' => 'General',
+ 'security' => 'Security',
+ 'billing' => 'Billing',
+ 'integrations' => 'Integrations',
+ 'api_keys' => 'API Keys',
+ 'generate_key' => 'Generate Key',
+ 'revoke_key' => 'Revoke Key',
+ 'webhook_url' => 'Webhook URL',
+ 'secret_key' => 'Secret Key',
+ 'documentation' => 'Documentation',
+ 'support_ticket' => 'Support Ticket',
+ 'open_ticket' => 'Open Ticket',
+ 'ticket_id' => 'Ticket ID',
+ 'priority' => 'Priority',
+ 'low' => 'Low',
+ 'medium' => 'Medium',
+ 'high' => 'High',
+ 'critical' => 'Critical',
+ 'status_open' => 'Open',
+ 'status_closed' => 'Closed',
+ 'status_pending' => 'Pending',
+ 'last_reply' => 'Last Reply',
+ 'assigned_to' => 'Assigned To',
+ 'created_by' => 'Created By',
+ 'resolved_at' => 'Resolved At',
+ 'closed_at' => 'Closed At',
+ 'reopen' => 'Reopen',
+ 'close' => 'Close',
+ 'add_comment' => 'Add Comment',
+ 'attach_file' => 'Attach File',
+ 'max_size' => 'Max size: %s',
+ 'allowed_types' => 'Allowed types: %s',
+ 'drag_drop' => 'Drag and drop files here',
+ 'browse' => 'Browse',
+ 'uploading' => 'Uploading...',
+ 'completed' => 'Completed',
+ 'failed' => 'Failed',
+ 'retry' => 'Retry',
+ 'cancel_upload' => 'Cancel Upload',
+ 'remove' => 'Remove',
+ 'preview' => 'Preview',
+ 'zoom_in' => 'Zoom In',
+ 'zoom_out' => 'Zoom Out',
+ 'rotate' => 'Rotate',
+ 'fullscreen' => 'Fullscreen',
+ 'print_preview' => 'Print Preview',
+ 'download_pdf' => 'Download PDF',
+ 'share' => 'Share',
+ 'copy_link' => 'Copy Link',
+ 'email_link' => 'Email Link',
+ 'embed' => 'Embed',
+ 'qrcode' => 'QR Code',
+ 'scan_qrcode' => 'Scan QR Code',
+ 'auth_code' => 'Authentication Code',
+ '2fa' => 'Two-Factor Authentication',
+ 'setup_2fa' => 'Setup 2FA',
+ 'disable_2fa' => 'Disable 2FA',
+ 'enter_code' => 'Enter Code',
+ 'backup_codes' => 'Backup Codes',
+ 'generate_codes' => 'Generate Codes',
+ 'print_codes' => 'Print Codes',
+ 'recovery_email' => 'Recovery Email',
+ 'verify_phone' => 'Verify Phone Number',
+ 'sms_code' => 'SMS Code',
+ 'resend_code' => 'Resend Code',
+ 'code_sent' => 'Code sent.',
+ 'phone_verified' => 'Phone verified.',
+ 'country_code' => 'Country Code',
+ 'phone_number' => 'Phone Number',
+ 'address_line1' => 'Address Line 1',
+ 'address_line2' => 'Address Line 2',
+ 'city_state' => 'City/State',
+ 'postal_code' => 'Postal Code',
+ 'country_region' => 'Country/Region',
+ 'billing_address' => 'Billing Address',
+ 'shipping_address' => 'Shipping Address',
+ 'same_as_billing' => 'Same as billing address',
+ 'add_address' => 'Add Address',
+ 'edit_address' => 'Edit Address',
+ 'delete_address' => 'Delete Address',
+ 'default_address' => 'Default Address',
+ 'set_default' => 'Set as Default',
+ 'payment_method' => 'Payment Method',
+ 'credit_card' => 'Credit Card',
+ 'paypal' => 'PayPal',
+ 'bank_transfer' => 'Bank Transfer',
+ 'cash_on_delivery' => 'Cash on Delivery',
+ 'card_number' => 'Card Number',
+ 'expiry_date' => 'Expiry Date',
+ 'cvv' => 'CVV',
+ 'card_holder' => 'Card Holder Name',
+ 'save_card' => 'Save card for future use',
+ 'transaction_history' => 'Transaction History',
+ 'invoice' => 'Invoice',
+ 'receipt' => 'Receipt',
+ 'amount' => 'Amount',
+ 'currency' => 'Currency',
+ 'tax' => 'Tax',
+ 'discount' => 'Discount',
+ 'subtotal' => 'Subtotal',
+ 'total' => 'Total',
+ 'promo_code' => 'Promo Code',
+ 'apply_code' => 'Apply Code',
+ 'invalid_code' => 'Invalid promo code.',
+ 'checkout' => 'Checkout',
+ 'place_order' => 'Place Order',
+ 'order_summary' => 'Order Summary',
+ 'cart' => 'Cart',
+ 'empty_cart' => 'Your cart is empty.',
+ 'continue_shopping' => 'Continue Shopping',
+ 'add_to_cart' => 'Add to Cart',
+ 'remove_from_cart' => 'Remove from Cart',
+ 'update_cart' => 'Update Cart',
+ 'quantity' => 'Quantity',
+ 'unit_price' => 'Unit Price',
+ 'total_price' => 'Total Price',
+ 'product_details' => 'Product Details',
+ 'specifications' => 'Specifications',
+ 'reviews' => 'Reviews',
+ 'write_review' => 'Write a Review',
+ 'rating' => 'Rating',
+ 'stars' => 'Stars',
+ 'related_products' => 'Related Products',
+ 'wishlist' => 'Wishlist',
+ 'add_to_wishlist' => 'Add to Wishlist',
+ 'remove_from_wishlist' => 'Remove from Wishlist',
+ 'compare' => 'Compare',
+ 'add_to_compare' => 'Add to Compare',
+ 'clear_compare' => 'Clear Compare',
+ 'compare_products' => 'Compare Products',
+ 'category' => 'Category',
+ 'brand' => 'Brand',
+ 'model' => 'Model',
+ 'sku' => 'SKU',
+ 'availability' => 'Availability',
+ 'in_stock' => 'In Stock',
+ 'out_of_stock' => 'Out of Stock',
+ 'pre_order' => 'Pre-Order',
+ 'limited_stock' => 'Limited Stock',
+ 'new_arrival' => 'New Arrival',
+ 'best_seller' => 'Best Seller',
+ 'featured' => 'Featured',
+ 'sale' => 'Sale',
+ 'hot' => 'Hot',
+ 'deal_of_day' => 'Deal of the Day',
+ 'timer_end' => 'Offer ends in',
+ 'days' => 'Days',
+ 'hours' => 'Hours',
+ 'minutes' => 'Minutes',
+ 'seconds' => 'Seconds',
+ 'subscribe_text' => 'Subscribe to our newsletter for latest updates.',
+ 'follow_us' => 'Follow Us',
+ 'app_download' => 'Download App',
+ 'app_store' => 'App Store',
+ 'google_play' => 'Google Play',
+ 'secure_payment' => 'Secure Payment',
+ 'fast_delivery' => 'Fast Delivery',
+ '24_7_support' => '24/7 Support',
+ 'money_back' => 'Money Back Guarantee',
+ 'easy_returns' => 'Easy Returns',
+ 'gift_cards' => 'Gift Cards',
+ 'track_order' => 'Track Order',
+ 'order_id' => 'Order ID',
+ 'shipping_info' => 'Shipping Info',
+ 'billing_info' => 'Billing Info',
+ 'order_status' => 'Order Status',
+ 'processing' => 'Processing',
+ 'shipped' => 'Shipped',
+ 'delivered' => 'Delivered',
+ 'cancelled' => 'Cancelled',
+ 'returned' => 'Returned',
+ 'refunded' => 'Refunded',
+ 'return_policy' => 'Return Policy',
+ 'shipping_policy' => 'Shipping Policy',
+ 'sitemap' => 'Sitemap',
+ 'accessibility' => 'Accessibility',
+ 'accessibility_statement' => 'Accessibility Statement',
+ 'skip_to_content' => 'Skip to Content',
+ 'high_contrast' => 'High Contrast',
+ 'text_size' => 'Text Size',
+ 'increase' => 'Increase',
+ 'decrease' => 'Decrease',
+ 'reset' => 'Reset',
+ 'print_page' => 'Print Page',
+ 'read_aloud' => 'Read Aloud',
+ 'stop' => 'Stop',
+ 'pause' => 'Pause',
+ 'resume' => 'Resume',
+ 'mute' => 'Mute',
+ 'unmute' => 'Unmute',
+ 'volume' => 'Volume',
+ 'speed' => 'Speed',
+ 'normal' => 'Normal',
+ 'fast' => 'Fast',
+ 'slow' => 'Slow',
+ 'captions' => 'Captions',
+ 'subtitles' => 'Subtitles',
+ 'audio_desc' => 'Audio Description',
+ 'keyboard_shortcuts' => 'Keyboard Shortcuts',
+ 'help' => 'Help',
+ 'close_menu' => 'Close Menu',
+ 'open_menu' => 'Open Menu',
+ 'menu' => 'Menu',
+ 'navigation' => 'Navigation',
+ 'breadcrumbs' => 'Breadcrumbs',
+ 'pagination' => 'Pagination',
+ 'modal' => 'Modal',
+ 'dialog' => 'Dialog',
+ 'tooltip' => 'Tooltip',
+ 'popover' => 'Popover',
+ 'alert' => 'Alert',
+ 'notification' => 'Notification',
+ 'toast' => 'Toast',
+ 'banner' => 'Banner',
+ 'sidebar' => 'Sidebar',
+ 'footer' => 'Footer',
+ 'header' => 'Header',
+ 'main_content' => 'Main Content',
+ 'admin_dashboard_title' => 'Admin Dashboard',
+ 'wablas_server_url' => 'Wablas Server URL',
+ 'wablas_api_token' => 'Wablas API Token',
+ 'reg_title' => 'Create Account',
+ 'reg_subtitle' => 'Sign up to get started',
+ 'reg_success_pending' => 'Registration successful. Your account is pending approval.',
+ 'reg_success' => 'Registration successful. You can now login.',
+ 'role' => 'Role',
+ 'shipper' => 'Shipper',
+ 'truck_owner' => 'Truck Owner',
+ 'email' => 'Email',
+ 'password' => 'Password',
+ 'phone' => 'Phone',
+ 'country' => 'Country',
+ 'select_country' => 'Select Country',
+ 'city' => 'City',
+ 'select_city' => 'Select City',
+ 'address' => 'Address',
+ 'shipper_details' => 'Shipper Details',
+ 'company_name' => 'Company Name',
+ 'truck_details' => 'Truck Details',
+ 'truck_type' => 'Truck Type',
+ 'load_capacity' => 'Load Capacity (Tons)',
+ 'plate_no' => 'Plate Number',
+ 'bank_account' => 'Bank Account',
+ 'bank_name' => 'Bank Name',
+ 'bank_branch' => 'Branch Name',
+ 'id_card_front' => 'ID Card (Front)',
+ 'id_card_back' => 'ID Card (Back)',
+ 'truck_reg_front' => 'Truck Registration (Front)',
+ 'truck_reg_back' => 'Truck Registration (Back)',
+ 'truck_picture' => 'Truck Picture',
+ 'create_account' => 'Create Account',
+ 'back_to_admin' => 'Back to Admin',
+ 'back_to_home' => 'Back to Home',
+ 'total_revenue' => 'Total Revenue',
+ 'shipments_analytics' => 'Shipments Analytics',
+ 'export_csv' => 'Export CSV',
+ 'status_posted' => 'Posted',
+ 'status_offered' => 'Offered',
+ 'status_confirmed' => 'Confirmed',
+ 'status_in_transit' => 'In Transit',
+ 'status_delivered' => 'Delivered',
+ 'status_pending' => 'Pending',
+ 'status_active' => 'Active',
+ 'status_rejected' => 'Rejected',
+ 'status_unpaid' => 'Unpaid',
+ 'status_paid' => 'Paid',
+ 'payment_thawani' => 'Thawani',
+ 'payment_bank' => 'Bank Transfer',
+ 'currency_symbol' => 'OMR',
+ 'total_shippers' => 'Total Shippers',
+ 'active_shipments' => 'Active Shipments',
+ 'total_truck_owners' => 'Total Truck Owners',
+ 'admin_dashboard' => 'Admin Dashboard',
+ 'overview_performance' => 'Overview & Performance',
+ 'no_shipments' => 'No shipments found.',
+ 'shipment' => 'Shipment',
+ 'route' => 'Route',
+ 'action' => 'Action',
+ 'manage_countries' => 'Manage Countries',
+ 'add_remove_countries' => 'Add/Remove Countries',
+ 'manage_cities' => 'Manage Cities',
+ 'configure_cities' => 'Configure Cities',
+ 'register_user' => 'Register User',
+ 'manually_onboard' => 'Manually Onboard User',
+ 'company_profile' => 'Company Profile',
+ 'update_branding' => 'Update Branding',
+ 'summary_report' => 'Summary Report',
+ 'view_analytics' => 'View Analytics'
+ ],
+ 'ar' => [
+ 'nav_home' => 'الرئيسية',
+ 'nav_dashboard' => 'لوحة التحكم',
+ 'nav_login' => 'تسجيل الدخول',
+ 'nav_logout' => 'تسجيل الخروج',
+ 'nav_register' => 'تسجيل جديد',
+ 'welcome' => 'مرحباً بك في منصة الخدمات اللوجستية',
+ 'hero_title' => 'خدمات لوجستية سريعة وموثوقة',
+ 'hero_subtitle' => 'نربط الشاحنين وأصحاب الشاحنات بسلاسة.',
+ 'track_shipment' => 'تتبع الشحنة',
+ 'enter_tracking' => 'أدخل رقم التتبع',
+ 'footer_rights' => 'جميع الحقوق محفوظة.',
+ 'login_title' => 'تسجيل الدخول',
+ 'email_label' => 'البريد الإلكتروني',
+ 'password_label' => 'كلمة المرور',
+ 'login_btn' => 'دخول',
+ 'register_link' => 'ليس لديك حساب؟ سجل هنا.',
+ 'dashboard_title' => 'لوحة التحكم',
+ 'post_shipment' => 'نشر شحنة جديدة',
+ 'recent_shipments' => 'الشحنات الأخيرة',
+ 'status' => 'الحالة',
+ 'actions' => 'الإجراءات',
+ 'view_details' => 'عرض التفاصيل',
+ 'edit' => 'تعديل',
+ 'delete' => 'حذف',
+ 'profile' => 'الملف الشخصي',
+ 'settings' => 'الإعدادات',
+ 'my_shipments' => 'شحناتي',
+ 'find_trucks' => 'البحث عن شاحنات',
+ 'contact_us' => 'اتصل بنا',
+ 'about_us' => 'من نحن',
+ 'privacy_policy' => 'سياسة الخصوصية',
+ 'terms_conditions' => 'الشروط والأحكام',
+ 'admin_panel' => 'لوحة الإدارة',
+ 'users' => 'المستخدمين',
+ 'reports' => 'التقارير',
+ 'logout_confirm' => 'هل أنت متأكد من تسجيل الخروج؟',
+ 'yes' => 'نعم',
+ 'no' => 'لا',
+ 'cancel' => 'إلغاء',
+ 'save' => 'حفظ',
+ 'update' => 'تحديث',
+ 'created_at' => 'تاريخ الإنشاء',
+ 'updated_at' => 'تاريخ التحديث',
+ 'id' => 'المعرف',
+ 'name' => 'الاسم',
+ 'role' => 'الدور',
+ 'approved' => 'مقبول',
+ 'pending' => 'قيد الانتظار',
+ 'rejected' => 'مرفوض',
+ 'active' => 'نشط',
+ 'inactive' => 'غير نشط',
+ 'success_message' => 'تمت العملية بنجاح.',
+ 'error_message' => 'حدث خطأ. يرجى المحاولة مرة أخرى.',
+ 'manage_shipments' => 'إدارة الشحنات',
+ 'manage_users' => 'إدارة المستخدمين',
+ 'manage_trucks' => 'إدارة الشاحنات',
+ 'truck_owner' => 'مالك شاحنة',
+ 'shipper' => 'شاحن',
+ 'admin' => 'مسؤول',
+ 'notifications' => 'الإشعارات',
+ 'mark_read' => 'تحديد كمقروء',
+ 'view_all' => 'عرض الكل',
+ 'new_shipment_alert' => 'تم نشر شحنة جديدة!',
+ 'shipment_update_alert' => 'تم تحديث حالة الشحنة.',
+ 'offer_received' => 'تم استلام عرض جديد.',
+ 'offer_accepted' => 'تم قبول العرض.',
+ 'offer_rejected' => 'تم رفض العرض.',
+ 'payment_received' => 'تم استلام الدفعة.',
+ 'payment_pending' => 'الدفعة معلقة.',
+ 'payment_failed' => 'فشلت عملية الدفع.',
+ 'search' => 'بحث...',
+ 'filter' => 'تصفية',
+ 'sort_by' => 'فرز حسب',
+ 'date' => 'التاريخ',
+ 'price' => 'السعر',
+ 'loading' => 'جار التحميل...',
+ 'no_data' => 'لا توجد بيانات متاحة.',
+ 'unauthorized' => 'وصول غير مصرح به.',
+ 'page_not_found' => 'الصفحة غير موجودة.',
+ 'server_error' => 'خطأ في الخادم.',
+ 'go_back' => 'رجوع',
+ 'home_btn' => 'الصفحة الرئيسية',
+ 'reset_password' => 'إعادة تعيين كلمة المرور',
+ 'forgot_password' => 'نسيت كلمة المرور؟',
+ 'send_link' => 'إرسال رابط التعيين',
+ 'password_reset_sent' => 'تم إرسال رابط إعادة التعيين إلى بريدك الإلكتروني.',
+ 'password_changed' => 'تم تغيير كلمة المرور بنجاح.',
+ 'confirm_password' => 'تأكيد كلمة المرور',
+ 'current_password' => 'كلمة المرور الحالية',
+ 'new_password' => 'كلمة المرور الجديدة',
+ 'change_password' => 'تغيير كلمة المرور',
+ 'personal_info' => 'المعلومات الشخصية',
+ 'company_info' => 'معلومات الشركة',
+ 'truck_info' => 'معلومات الشاحنة',
+ 'documents' => 'المستندات',
+ 'upload_doc' => 'رفع مستند',
+ 'download' => 'تحميل',
+ 'file_too_large' => 'حجم الملف كبير جداً.',
+ 'invalid_file_type' => 'نوع الملف غير صالح.',
+ 'upload_success' => 'تم رفع الملف بنجاح.',
+ 'delete_confirm' => 'هل أنت متأكد من الحذف؟',
+ 'deleted_success' => 'تم الحذف بنجاح.',
+ 'feature_not_available' => 'الخدمة غير متوفرة حالياً.',
+ 'coming_soon' => 'قريباً',
+ 'contact_support' => 'اتصل بالدعم',
+ 'faq' => 'الأسئلة الشائعة',
+ 'language' => 'اللغة',
+ 'english' => 'إنجليزي',
+ 'arabic' => 'عربي',
+ 'switch_lang' => 'تغيير اللغة',
+ 'dark_mode' => 'الوضع الليلي',
+ 'light_mode' => 'الوضع النهاري',
+ 'notifications_settings' => 'إعدادات الإشعارات',
+ 'email_notif' => 'إشعارات البريد الإلكتروني',
+ 'sms_notif' => 'إشعارات الرسائل القصيرة',
+ 'push_notif' => 'إشعارات الدفع',
+ 'enable' => 'تفعيل',
+ 'disable' => 'تعطيل',
+ 'account_settings' => 'إعدادات الحساب',
+ 'delete_account' => 'حذف الحساب',
+ 'delete_account_warning' => 'هذا الإجراء لا يمكن التراجع عنه.',
+ 'feedback' => 'رأيك يهمنا',
+ 'rate_us' => 'قيمنا',
+ 'copyright' => 'حقوق النشر © ' . date('Y'),
+ 'powered_by' => 'مشغل بواسطة منصة اللوجستيات',
+ 'terms_of_service' => 'شروط الخدمة',
+ 'cookie_policy' => 'سياسة ملفات الارتباط',
+ 'careers' => 'وظائف',
+ 'blog' => 'المدونة',
+ 'partners' => 'الشركاء',
+ 'help_center' => 'مركز المساعدة',
+ 'how_it_works' => 'كيف نعمل',
+ 'pricing' => 'الأسعار',
+ 'get_started' => 'ابدأ الآن',
+ 'learn_more' => 'اعرف المزيد',
+ 'demo' => 'طلب عرض توضيحي',
+ 'subscribe' => 'اشترك',
+ 'newsletter' => 'النشرة البريدية',
+ 'enter_email' => 'أدخل بريدك الإلكتروني',
+ 'invalid_email' => 'بريد إلكتروني غير صالح.',
+ 'message_sent' => 'تم إرسال الرسالة بنجاح.',
+ 'thank_you' => 'شكراً لك!',
+ '404_msg' => 'الصفحة التي تبحث عنها غير موجودة.',
+ '500_msg' => 'حدث خطأ من جانبنا.',
+ 'maintenance_msg' => 'النظام تحت الصيانة. يرجى المحاولة لاحقاً.',
+ 'session_expired' => 'انتهت الجلسة. يرجى تسجيل الدخول مرة أخرى.',
+ 'login_required' => 'يجب تسجيل الدخول للوصول لهذه الصفحة.',
+ 'access_denied' => 'تم رفض الوصول.',
+ 'csrf_error' => 'رمز الحماية غير صالح. يرجى التحديث والمحاولة مرة أخرى.',
+ 'validation_error' => 'يرجى تصحيح الأخطاء أدناه.',
+ 'required_field' => 'هذا الحقل مطلوب.',
+ 'min_length' => 'الحد الأدنى للطول هو %s حرف.',
+ 'max_length' => 'الحد الأقصى للطول هو %s حرف.',
+ 'numeric_only' => 'الأرقام فقط مسموحة.',
+ 'alpha_only' => 'الحروف فقط مسموحة.',
+ 'alphanumeric_only' => 'الحروف والأرقام فقط مسموحة.',
+ 'email_exists' => 'البريد الإلكتروني موجود بالفعل.',
+ 'username_exists' => 'اسم المستخدم موجود بالفعل.',
+ 'password_mismatch' => 'كلمات المرور غير متطابقة.',
+ 'invalid_credentials' => 'البريد الإلكتروني أو كلمة المرور غير صحيحة.',
+ 'account_locked' => 'الحساب مقفل. يرجى الاتصال بالدعم.',
+ 'too_many_attempts' => 'محاولات دخول كثيرة جداً. يرجى المحاولة لاحقاً.',
+ 'verify_email' => 'يرجى تأكيد بريدك الإلكتروني.',
+ 'email_verified' => 'تم تأكيد البريد الإلكتروني بنجاح.',
+ 'verification_link_sent' => 'تم إرسال رابط التأكيد.',
+ 'invalid_token' => 'الرمز غير صالح أو منتهي.',
+ 'token_expired' => 'انتهت صلاحية الرمز.',
+ 'resend_verification' => 'إعادة إرسال بريد التأكيد',
+ 'dashboard_overview' => 'نظرة عامة',
+ 'total_shipments' => 'إجمالي الشحنات',
+ 'active_trucks' => 'الشاحنات النشطة',
+ 'pending_approvals' => 'بانتظار الموافقة',
+ 'revenue' => 'الإيرادات',
+ 'recent_activity' => 'النشاط الأخير',
+ 'view_all_shipments' => 'عرض كل الشحنات',
+ 'view_all_users' => 'عرض كل المستخدمين',
+ 'add_new' => 'إضافة جديد',
+ 'export' => 'تصدير',
+ 'import' => 'استيراد',
+ 'print' => 'طباعة',
+ 'copy' => 'نسخ',
+ 'csv' => 'CSV',
+ 'excel' => 'Excel',
+ 'pdf' => 'PDF',
+ 'search_results' => 'نتائج البحث',
+ 'no_results' => 'لا توجد نتائج.',
+ 'showing_entries' => 'عرض %s إلى %s من %s سجل',
+ 'next_page' => 'التالي',
+ 'prev_page' => 'السابق',
+ 'first_page' => 'الأول',
+ 'last_page' => 'الأخير',
+ 'apply' => 'تطبيق',
+ 'clear' => 'مسح',
+ 'filter_by' => 'تصفية حسب',
+ 'status_all' => 'كل الحالات',
+ 'role_all' => 'كل الأدوار',
+ 'date_range' => 'نطاق التاريخ',
+ 'today' => 'اليوم',
+ 'yesterday' => 'أمس',
+ 'last_7_days' => 'آخر 7 أيام',
+ 'last_30_days' => 'آخر 30 يوم',
+ 'this_month' => 'هذا الشهر',
+ 'last_month' => 'الشهر الماضي',
+ 'custom_range' => 'نطاق مخصص',
+ 'start_date' => 'تاريخ البدء',
+ 'end_date' => 'تاريخ الانتهاء',
+ 'to' => 'إلى',
+ 'from' => 'من',
+ 'subject' => 'الموضوع',
+ 'message' => 'الرسالة',
+ 'send_message' => 'إرسال الرسالة',
+ 'reply' => 'رد',
+ 'forward' => 'توجيه',
+ 'mark_unread' => 'تحديد كغير مقروء',
+ 'delete_selected' => 'حذف المحدد',
+ 'archive' => 'أرشفة',
+ 'spam' => 'بريد مزعج',
+ 'trash' => 'سلة المهملات',
+ 'compose' => 'إنشاء',
+ 'inbox' => 'الوارد',
+ 'sent' => 'المرسل',
+ 'drafts' => 'المسودات',
+ 'important' => 'مهم',
+ 'starred' => 'مميز بنجمة',
+ 'labels' => 'تسميات',
+ 'add_label' => 'إضافة تسمية',
+ 'remove_label' => 'إزالة تسمية',
+ 'color' => 'اللون',
+ 'description' => 'الوصف',
+ 'edit_profile' => 'تعديل الملف الشخصي',
+ 'change_avatar' => 'تغيير الصورة الرمزية',
+ 'bio' => 'نبذة',
+ 'location' => 'الموقع',
+ 'website' => 'الموقع الإلكتروني',
+ 'social_links' => 'روابط التواصل الاجتماعي',
+ 'facebook' => 'فيسبوك',
+ 'twitter' => 'تويتر',
+ 'linkedin' => 'لينكد إن',
+ 'instagram' => 'انستغرام',
+ 'youtube' => 'يوتيوب',
+ 'github' => 'جيت هب',
+ 'save_changes' => 'حفظ التغييرات',
+ 'discard_changes' => 'تجاهل التغييرات',
+ 'unsaved_changes' => 'لديك تغييرات غير محفوظة.',
+ 'stay_on_page' => 'البقاء في الصفحة',
+ 'leave_page' => 'مغادرة الصفحة',
+ 'confirm_action' => 'تأكيد الإجراء',
+ 'action_cannot_undone' => 'لا يمكن التراجع عن هذا الإجراء.',
+ 'type_confirm' => 'اكتب "CONFIRM" للمتابعة.',
+ 'notifications_permission' => 'هل تسمح بالإشعارات؟',
+ 'allow' => 'سماح',
+ 'deny' => 'رفض',
+ 'location_permission' => 'هل تسمح بالوصول للموقع؟',
+ 'camera_permission' => 'هل تسمح بالوصول للكاميرا؟',
+ 'mic_permission' => 'هل تسمح بالوصول للميكروفون؟',
+ 'cookie_consent' => 'نستخدم ملفات تعريف الارتباط لتحسين تجربتك.',
+ 'accept_all' => 'قبول الكل',
+ 'reject_all' => 'رفض الكل',
+ 'customize' => 'تخصيص',
+ 'preferences' => 'التفضيلات',
+ 'general' => 'عام',
+ 'security' => 'الأمان',
+ 'billing' => 'الفوترة',
+ 'integrations' => 'التكاملات',
+ 'api_keys' => 'مفاتيح API',
+ 'generate_key' => 'توليد مفتاح',
+ 'revoke_key' => 'إبطال مفتاح',
+ 'webhook_url' => 'رابط Webhook',
+ 'secret_key' => 'المفتاح السري',
+ 'documentation' => 'التوثيق',
+ 'support_ticket' => 'تذكرة دعم',
+ 'open_ticket' => 'فتح تذكرة',
+ 'ticket_id' => 'رقم التذكرة',
+ 'priority' => 'الأولوية',
+ 'low' => 'منخفض',
+ 'medium' => 'متوسط',
+ 'high' => 'عالي',
+ 'critical' => 'حرج',
+ 'status_open' => 'مفتوح',
+ 'status_closed' => 'مغلق',
+ 'status_pending' => 'قيد الانتظار',
+ 'last_reply' => 'آخر رد',
+ 'assigned_to' => 'مسند إلى',
+ 'created_by' => 'أنشئ بواسطة',
+ 'resolved_at' => 'تم الحل في',
+ 'closed_at' => 'تاريخ الإغلاق',
+ 'reopen' => 'إعادة فتح',
+ 'close' => 'إغلاق',
+ 'add_comment' => 'إضافة تعليق',
+ 'attach_file' => 'إرفاق ملف',
+ 'max_size' => 'الحجم الأقصى: %s',
+ 'allowed_types' => 'الأنواع المسموحة: %s',
+ 'drag_drop' => 'اسحب وأفلت الملفات هنا',
+ 'browse' => 'تصفح',
+ 'uploading' => 'جار الرفع...',
+ 'completed' => 'مكتمل',
+ 'failed' => 'فشل',
+ 'retry' => 'إعادة المحاولة',
+ 'cancel_upload' => 'إلغاء الرفع',
+ 'remove' => 'إزالة',
+ 'preview' => 'معاينة',
+ 'zoom_in' => 'تكبير',
+ 'zoom_out' => 'تصغير',
+ 'rotate' => 'تدوير',
+ 'fullscreen' => 'ملء الشاشة',
+ 'print_preview' => 'معاينة الطباعة',
+ 'download_pdf' => 'تحميل PDF',
+ 'share' => 'مشاركة',
+ 'copy_link' => 'نسخ الرابط',
+ 'email_link' => 'إرسال الرابط بالبريد',
+ 'embed' => 'تضمين',
+ 'qrcode' => 'رمز QR',
+ 'scan_qrcode' => 'مسح رمز QR',
+ 'auth_code' => 'رمز المصادقة',
+ '2fa' => 'المصادقة الثنائية',
+ 'setup_2fa' => 'إعداد المصادقة الثنائية',
+ 'disable_2fa' => 'تعطيل المصادقة الثنائية',
+ 'enter_code' => 'أدخل الرمز',
+ 'backup_codes' => 'رموز احتياطية',
+ 'generate_codes' => 'توليد رموز',
+ 'print_codes' => 'طباعة الرموز',
+ 'recovery_email' => 'بريد الاسترداد',
+ 'verify_phone' => 'تأكيد رقم الهاتف',
+ 'sms_code' => 'رمز SMS',
+ 'resend_code' => 'إعادة إرسال الرمز',
+ 'code_sent' => 'تم إرسال الرمز.',
+ 'phone_verified' => 'تم تأكيد رقم الهاتف.',
+ 'country_code' => 'رمز الدولة',
+ 'phone_number' => 'رقم الهاتف',
+ 'address_line1' => 'العنوان 1',
+ 'address_line2' => 'العنوان 2',
+ 'city_state' => 'المدينة/المنطقة',
+ 'postal_code' => 'الرمز البريدي',
+ 'country_region' => 'الدولة/المنطقة',
+ 'billing_address' => 'عنوان الفوترة',
+ 'shipping_address' => 'عنوان الشحن',
+ 'same_as_billing' => 'نفس عنوان الفوترة',
+ 'add_address' => 'إضافة عنوان',
+ 'edit_address' => 'تعديل عنوان',
+ 'delete_address' => 'حذف عنوان',
+ 'default_address' => 'العنوان الافتراضي',
+ 'set_default' => 'تعيين كافتراضي',
+ 'payment_method' => 'طريقة الدفع',
+ 'credit_card' => 'بطاقة ائتمان',
+ 'paypal' => 'باي بال',
+ 'bank_transfer' => 'تحويل بنكي',
+ 'cash_on_delivery' => 'الدفع عند الاستلام',
+ 'card_number' => 'رقم البطاقة',
+ 'expiry_date' => 'تاريخ الانتهاء',
+ 'cvv' => 'رمز CVV',
+ 'card_holder' => 'اسم حامل البطاقة',
+ 'save_card' => 'حفظ البطاقة للاستخدام المستقبلي',
+ 'transaction_history' => 'سجل المعاملات',
+ 'invoice' => 'فاتورة',
+ 'receipt' => 'إيصال',
+ 'amount' => 'المبلغ',
+ 'currency' => 'العملة',
+ 'tax' => 'الضريبة',
+ 'discount' => 'الخصم',
+ 'subtotal' => 'المجموع الفرعي',
+ 'total' => 'المجموع الكلي',
+ 'promo_code' => 'الرمز الترويجي',
+ 'apply_code' => 'تطبيق الرمز',
+ 'invalid_code' => 'الرمز غير صالح.',
+ 'checkout' => 'الدفع',
+ 'place_order' => 'تأكيد الطلب',
+ 'order_summary' => 'ملخص الطلب',
+ 'cart' => 'سلة التسوق',
+ 'empty_cart' => 'السلة فارغة.',
+ 'continue_shopping' => 'متابعة التسوق',
+ 'add_to_cart' => 'أضف إلى السلة',
+ 'remove_from_cart' => 'إزالة من السلة',
+ 'update_cart' => 'تحديث السلة',
+ 'quantity' => 'الكمية',
+ 'unit_price' => 'سعر الوحدة',
+ 'total_price' => 'السعر الإجمالي',
+ 'product_details' => 'تفاصيل المنتج',
+ 'specifications' => 'المواصفات',
+ 'reviews' => 'المراجعات',
+ 'write_review' => 'اكتب مراجعة',
+ 'rating' => 'التقييم',
+ 'stars' => 'نجوم',
+ 'related_products' => 'منتجات ذات صلة',
+ 'wishlist' => 'قائمة الرغبات',
+ 'add_to_wishlist' => 'أضف لقائمة الرغبات',
+ 'remove_from_wishlist' => 'إزالة من قائمة الرغبات',
+ 'compare' => 'مقارنة',
+ 'add_to_compare' => 'أضف للمقارنة',
+ 'clear_compare' => 'مسح المقارنة',
+ 'compare_products' => 'مقارنة المنتجات',
+ 'category' => 'الفئة',
+ 'brand' => 'العلامة التجارية',
+ 'model' => 'الموديل',
+ 'sku' => 'SKU',
+ 'availability' => 'التوفر',
+ 'in_stock' => 'متوفر',
+ 'out_of_stock' => 'غير متوفر',
+ 'pre_order' => 'طلب مسبق',
+ 'limited_stock' => 'كمية محدودة',
+ 'new_arrival' => 'وصل حديثاً',
+ 'best_seller' => 'الأكثر مبيعاً',
+ 'featured' => 'متميز',
+ 'sale' => 'تخفيضات',
+ 'hot' => 'رائج',
+ 'deal_of_day' => 'صفقة اليوم',
+ 'timer_end' => 'العرض ينتهي في',
+ 'days' => 'أيام',
+ 'hours' => 'ساعات',
+ 'minutes' => 'دقائق',
+ 'seconds' => 'ثواني',
+ 'subscribe_text' => 'Subscribe to our newsletter for latest updates.',
+ 'follow_us' => 'Follow Us',
+ 'app_download' => 'Download App',
+ 'app_store' => 'App Store',
+ 'google_play' => 'Google Play',
+ 'secure_payment' => 'Secure Payment',
+ 'fast_delivery' => 'Fast Delivery',
+ '24_7_support' => '24/7 Support',
+ 'money_back' => 'Money Back Guarantee',
+ 'easy_returns' => 'Easy Returns',
+ 'gift_cards' => 'Gift Cards',
+ 'track_order' => 'Track Order',
+ 'order_id' => 'Order ID',
+ 'shipping_info' => 'Shipping Info',
+ 'billing_info' => 'Billing Info',
+ 'order_status' => 'Order Status',
+ 'processing' => 'Processing',
+ 'shipped' => 'Shipped',
+ 'delivered' => 'Delivered',
+ 'cancelled' => 'Cancelled',
+ 'returned' => 'Returned',
+ 'refunded' => 'Refunded',
+ 'return_policy' => 'Return Policy',
+ 'shipping_policy' => 'Shipping Policy',
+ 'sitemap' => 'Sitemap',
+ 'accessibility' => 'Accessibility',
+ 'accessibility_statement' => 'Accessibility Statement',
+ 'skip_to_content' => 'Skip to Content',
+ 'high_contrast' => 'High Contrast',
+ 'text_size' => 'Text Size',
+ 'increase' => 'Increase',
+ 'decrease' => 'Decrease',
+ 'reset' => 'Reset',
+ 'print_page' => 'Print Page',
+ 'read_aloud' => 'Read Aloud',
+ 'stop' => 'Stop',
+ 'pause' => 'Pause',
+ 'resume' => 'Resume',
+ 'mute' => 'Mute',
+ 'unmute' => 'Unmute',
+ 'volume' => 'Volume',
+ 'speed' => 'Speed',
+ 'normal' => 'Normal',
+ 'fast' => 'Fast',
+ 'slow' => 'Slow',
+ 'captions' => 'Captions',
+ 'subtitles' => 'Subtitles',
+ 'audio_desc' => 'Audio Description',
+ 'keyboard_shortcuts' => 'Keyboard Shortcuts',
+ 'help' => 'Help',
+ 'close_menu' => 'Close Menu',
+ 'open_menu' => 'Open Menu',
+ 'menu' => 'Menu',
+ 'navigation' => 'Navigation',
+ 'breadcrumbs' => 'Breadcrumbs',
+ 'pagination' => 'Pagination',
+ 'modal' => 'Modal',
+ 'dialog' => 'Dialog',
+ 'tooltip' => 'Tooltip',
+ 'popover' => 'Popover',
+ 'alert' => 'Alert',
+ 'notification' => 'Notification',
+ 'toast' => 'Toast',
+ 'banner' => 'Banner',
+ 'sidebar' => 'Sidebar',
+ 'footer' => 'Footer',
+ 'header' => 'Header',
+ 'main_content' => 'Main Content',
+ 'admin_dashboard_title' => 'Admin Dashboard',
+ 'wablas_server_url' => 'Wablas Server URL',
+ 'wablas_api_token' => 'Wablas API Token',
+ 'reg_title' => 'Create Account',
+ 'reg_subtitle' => 'Sign up to get started',
+ 'reg_success_pending' => 'Registration successful. Your account is pending approval.',
+ 'reg_success' => 'Registration successful. You can now login.',
+ 'role' => 'Role',
+ 'shipper' => 'Shipper',
+ 'truck_owner' => 'Truck Owner',
+ 'email' => 'Email',
+ 'password' => 'Password',
+ 'phone' => 'Phone',
+ 'country' => 'Country',
+ 'select_country' => 'Select Country',
+ 'city' => 'City',
+ 'select_city' => 'Select City',
+ 'address' => 'Address',
+ 'shipper_details' => 'Shipper Details',
+ 'company_name' => 'Company Name',
+ 'truck_details' => 'Truck Details',
+ 'truck_type' => 'Truck Type',
+ 'load_capacity' => 'Load Capacity (Tons)',
+ 'plate_no' => 'Plate Number',
+ 'bank_account' => 'Bank Account',
+ 'bank_name' => 'Bank Name',
+ 'bank_branch' => 'Branch Name',
+ 'id_card_front' => 'ID Card (Front)',
+ 'id_card_back' => 'ID Card (Back)',
+ 'truck_reg_front' => 'Truck Registration (Front)',
+ 'truck_reg_back' => 'Truck Registration (Back)',
+ 'truck_picture' => 'Truck Picture',
+ 'create_account' => 'Create Account',
+ 'back_to_admin' => 'Back to Admin',
+ 'back_to_home' => 'Back to Home',
+ 'total_revenue' => 'Total Revenue',
+ 'shipments_analytics' => 'Shipments Analytics',
+ 'export_csv' => 'Export CSV',
+ 'status_posted' => 'تم النشر',
+ 'status_offered' => 'تم تقديم عرض',
+ 'status_confirmed' => 'مؤكدة',
+ 'status_in_transit' => 'قيد النقل',
+ 'status_delivered' => 'تم التوصيل',
+ 'status_pending' => 'قيد الانتظار',
+ 'status_active' => 'نشط',
+ 'status_rejected' => 'مرفوض',
+ 'status_unpaid' => 'غير مدفوع',
+ 'status_paid' => 'مدفوع',
+ 'payment_thawani' => 'ثواني',
+ 'payment_bank' => 'تحويل بنكي',
+ 'currency_symbol' => 'ر.ع.',
+ 'total_shippers' => 'إجمالي الشاحنين',
+ 'active_shipments' => 'الشحنات النشطة',
+ 'total_truck_owners' => 'إجمالي أصحاب الشاحنات',
+ 'admin_dashboard' => 'لوحة تحكم المسؤول',
+ 'overview_performance' => 'النظرة العامة والأداء',
+ 'no_shipments' => 'لم يتم العثور على شحنات.',
+ 'shipment' => 'الشحنة',
+ 'route' => 'المسار',
+ 'action' => 'الإجراء',
+ 'manage_countries' => 'إدارة الدول',
+ 'add_remove_countries' => 'إضافة/إزالة الدول',
+ 'manage_cities' => 'إدارة المدن',
+ 'configure_cities' => 'إعداد المدن',
+ 'register_user' => 'تسجيل مستخدم',
+ 'manually_onboard' => 'إضافة مستخدم يدوياً',
+ 'company_profile' => 'ملف الشركة',
+ 'update_branding' => 'تحديث الهوية',
+ 'summary_report' => 'تقرير ملخص',
+ 'view_analytics' => 'عرض التحليلات'
+ ]
];
function t(string $key): string
@@ -599,9 +1125,13 @@ function e($value): string
}
function ensure_schema(): void
- try { db()->exec("ALTER TABLE shipments ADD COLUMN pod_path VARCHAR(255) NULL AFTER offer_owner"); } catch (Exception $e) {}
{
- db()->exec("\n CREATE TABLE IF NOT EXISTS landing_sections (
+ // Make sure we have a connection
+ if (!db()) return;
+
+ try { db()->exec("ALTER TABLE shipments ADD COLUMN pod_path VARCHAR(255) NULL AFTER offer_owner"); } catch (Exception $e) {}
+
+ db()->exec(" CREATE TABLE IF NOT EXISTS landing_sections (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
subtitle TEXT NULL,
@@ -647,65 +1177,115 @@ SQL;
try { db()->exec("ALTER TABLE shipments ADD COLUMN platform_fee DECIMAL(10,2) DEFAULT 0.00 AFTER offer_price"); } catch (Exception $e) {}
try { db()->exec("ALTER TABLE shipments ADD COLUMN total_price DECIMAL(10,2) DEFAULT 0.00 AFTER platform_fee"); } catch (Exception $e) {}
try { db()->exec("ALTER TABLE shipments ADD COLUMN payment_status ENUM('unpaid', 'paid') DEFAULT 'unpaid' AFTER status"); } catch (Exception $e) {}
+
+ // Truck owner documents
+ try { db()->exec("ALTER TABLE users ADD COLUMN id_card_front VARCHAR(255) NULL"); } catch (Exception $e) {}
+ try { db()->exec("ALTER TABLE users ADD COLUMN id_card_back VARCHAR(255) NULL"); } catch (Exception $e) {}
+ try { db()->exec("ALTER TABLE users ADD COLUMN truck_reg_front VARCHAR(255) NULL"); } catch (Exception $e) {}
+ try { db()->exec("ALTER TABLE users ADD COLUMN truck_reg_back VARCHAR(255) NULL"); } catch (Exception $e) {}
+ try { db()->exec("ALTER TABLE users ADD COLUMN truck_picture VARCHAR(255) NULL"); } catch (Exception $e) {}
- db()->exec(
- "CREATE TABLE IF NOT EXISTS users (
+ try {
+ db()->exec("CREATE TABLE IF NOT EXISTS notifications (
id INT AUTO_INCREMENT PRIMARY KEY,
- email VARCHAR(255) NOT NULL UNIQUE,
- password VARCHAR(255) NOT NULL,
- full_name VARCHAR(255) NOT NULL,
- role ENUM('admin','shipper','truck_owner') NOT NULL,
- status ENUM('pending','active','rejected') NOT NULL DEFAULT 'active',
- profile_picture VARCHAR(255) NULL,
+ user_id INT NOT NULL,
+ title VARCHAR(255) NOT NULL,
+ message TEXT NOT NULL,
+ is_read TINYINT(1) DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"
- );
+ )");
+ } catch (Exception $e) {}
- db()->exec(
- "CREATE TABLE IF NOT EXISTS shipper_profiles (
- id INT AUTO_INCREMENT PRIMARY KEY,
- user_id INT NOT NULL UNIQUE,
- company_name VARCHAR(255) NOT NULL,
- phone VARCHAR(40) NOT NULL,
- country_id INT NULL,
- city_id INT NULL,
- address_line VARCHAR(255) NOT NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- CONSTRAINT fk_shipper_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"
- );
+ // Add bank fields to users table if they don't exist
+ try { db()->exec("ALTER TABLE users ADD COLUMN bank_name VARCHAR(100) NULL AFTER truck_picture"); } catch (Exception $e) {}
+ try { db()->exec("ALTER TABLE users ADD COLUMN bank_branch VARCHAR(100) NULL AFTER bank_name"); } catch (Exception $e) {}
+ try { db()->exec("ALTER TABLE users ADD COLUMN bank_account VARCHAR(100) NULL AFTER bank_branch"); } catch (Exception $e) {}
- db()->exec(
- "CREATE TABLE IF NOT EXISTS truck_owner_profiles (
+ // Create notification_templates table
+ try {
+ db()->exec("CREATE TABLE IF NOT EXISTS notification_templates (
id INT AUTO_INCREMENT PRIMARY KEY,
- user_id INT NOT NULL UNIQUE,
- phone VARCHAR(40) NOT NULL,
- country_id INT NULL,
- city_id INT NULL,
- address_line VARCHAR(255) NOT NULL,
- truck_type VARCHAR(120) NOT NULL,
- load_capacity DECIMAL(10,2) NOT NULL,
- plate_no VARCHAR(80) NOT NULL,
- bank_account VARCHAR(100) NULL,
- bank_name VARCHAR(100) NULL,
- bank_branch VARCHAR(100) NULL,
- id_card_path TEXT NOT NULL,
- truck_pic_path VARCHAR(255) NOT NULL,
- registration_path TEXT NOT NULL,
+ code VARCHAR(50) NOT NULL UNIQUE,
+ name VARCHAR(100) NOT NULL,
+ subject VARCHAR(255) NOT NULL,
+ body TEXT NOT NULL,
+ sms_body TEXT NULL,
+ variables TEXT NULL COMMENT 'Comma separated list of available variables',
+ is_active TINYINT(1) DEFAULT 1,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- CONSTRAINT fk_owner_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"
- );
+ updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
+ )");
+ } catch (Exception $e) {}
+
+ // Settings table
+ try {
+ db()->exec("CREATE TABLE IF NOT EXISTS settings (
+ id INT AUTO_INCREMENT PRIMARY KEY,
+ setting_key VARCHAR(50) NOT NULL UNIQUE,
+ setting_value TEXT NULL,
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
+ )");
+ } catch (Exception $e) {}
+
+ // Permissions tables
+ try {
+ db()->exec("CREATE TABLE IF NOT EXISTS permissions (
+ id INT AUTO_INCREMENT PRIMARY KEY,
+ name VARCHAR(50) NOT NULL UNIQUE,
+ description VARCHAR(255) NULL,
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
+ )");
+
+ db()->exec("CREATE TABLE IF NOT EXISTS user_permissions (
+ user_id INT NOT NULL,
+ permission_id INT NOT NULL,
+ PRIMARY KEY (user_id, permission_id),
+ FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
+ FOREIGN KEY (permission_id) REFERENCES permissions(id) ON DELETE CASCADE
+ )");
+ } catch (Exception $e) {}
+
+ // Add user_id to shipments
+ try { db()->exec("ALTER TABLE shipments ADD COLUMN user_id INT NULL AFTER id"); } catch (Exception $e) {}
+ try { db()->exec("ALTER TABLE shipments ADD INDEX (user_id)"); } catch (Exception $e) {}
+
+ // Add pod_file to shipments
+ try { db()->exec("ALTER TABLE shipments ADD COLUMN pod_file VARCHAR(255) NULL AFTER status"); } catch (Exception $e) {}
}
-function set_flash(string $type, string $message): void
+function get_setting(string $key, $default = null)
{
- $_SESSION['flash'] = ['type' => $type, 'message' => $message];
+ // Try to get from database first
+ try {
+ $stmt = db()->prepare("SELECT setting_value FROM settings WHERE setting_key = ?");
+ $stmt->execute([$key]);
+ $val = $stmt->fetchColumn();
+ if ($val !== false) {
+ return $val;
+ }
+ } catch (Throwable $e) {}
+
+ return $default;
+}
+
+function require_role(string $role): void
+{
+ if (!isset($_SESSION['user_id']) || !isset($_SESSION['user_role'])) {
+ header('Location: login.php');
+ exit;
+ }
+
+ if ($_SESSION['user_role'] !== $role && $_SESSION['user_role'] !== 'admin') {
+ // Admin can access everything
+ http_response_code(403);
+ die('Access Denied');
+ }
}
function get_flash(): ?array
{
- if (!empty($_SESSION['flash'])) {
+ if (isset($_SESSION['flash'])) {
$flash = $_SESSION['flash'];
unset($_SESSION['flash']);
return $flash;
@@ -713,137 +1293,67 @@ function get_flash(): ?array
return null;
}
-function url_with_lang(string $path, array $params = []): string
+function set_flash(string $type, string $message): void
{
- global $lang;
- $params = array_merge(['lang' => $lang], $params);
- return $path . '?' . http_build_query($params);
+ $_SESSION['flash'] = ['type' => $type, 'message' => $message];
}
-function current_url_with_lang(string $newLang): string
+function url_with_lang(string $url, array $params = []): string
+{
+ global $lang;
+ $params['lang'] = $lang;
+
+ $query = http_build_query($params);
+
+ if (strpos($url, '?') !== false) {
+ return $url . '&' . $query;
+ }
+ return $url . '?' . $query;
+}
+
+function current_url_with_lang(string $targetLang): string
{
$params = $_GET;
- $params['lang'] = $newLang;
- $path = basename($_SERVER['PHP_SELF'] ?? 'index.php');
- return $path . '?' . http_build_query($params);
+ $params['lang'] = $targetLang;
+ $query = http_build_query($params);
+ $path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
+ return $path . '?' . $query;
}
function status_label(string $status): string
{
- $map = [
- 'posted' => t('status_posted'),
- 'offered' => t('status_offered'),
- 'confirmed' => t('status_confirmed'),
- 'in_transit' => t('status_in_transit'),
- 'delivered' => t('status_delivered'),
- ];
- return $map[$status] ?? $status;
-}
-
-function get_settings(): array
-{
- static $settings = null;
- if ($settings !== null) {
- return $settings;
- }
- $settings = [];
- try {
- $stmt = db()->query("SELECT setting_key, setting_value FROM settings");
- while ($row = $stmt->fetch()) {
- $settings[$row['setting_key']] = $row['setting_value'];
- }
- } catch (Throwable $e) {}
- return $settings;
-}
-
-function get_setting(string $key, $default = ''): string
-{
- $settings = get_settings();
- return $settings[$key] ?? $default;
-}
-
-function has_permission(string $permissionSlug, ?int $userId = null): bool
-{
- if ($userId === null) {
- if (!isset($_SESSION['user_id'])) {
- return false;
- }
- $userId = $_SESSION['user_id'];
- }
-
- static $cache = [];
- $key = $userId . ':' . $permissionSlug;
-
- if (isset($cache[$key])) {
- return $cache[$key];
- }
-
- try {
- $stmt = db()->prepare(
- "SELECT 1
- FROM user_permissions up
- JOIN permissions p ON up.permission_id = p.id
- WHERE up.user_id = ? AND p.slug = ?"
- );
- $stmt->execute([$userId, $permissionSlug]);
- $result = (bool) $stmt->fetchColumn();
- $cache[$key] = $result;
- return $result;
- } catch (Throwable $e) {
- return false;
- }
+ $key = 'status_' . $status;
+ return t($key);
}
function format_currency(float $amount): string
{
- return number_format($amount, 3) . ' OMR';
+ return number_format($amount, 2) . ' ' . t('currency_symbol');
}
-function require_login(): void
-{
- if (!isset($_SESSION['user_id'])) {
- header('Location: login.php');
- exit;
- }
-}
-
-function require_role(string $role): void
-{
- require_login();
- if ($_SESSION['role'] !== $role && $_SESSION['role'] !== 'admin') {
- http_response_code(403);
- die("Access Denied. You must be a " . ucfirst($role) . " to view this page.");
- }
-}
-
-function generate_csrf_token(): string
+function csrf_token(): string
{
if (empty($_SESSION['csrf_token'])) {
- $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
+ try {
+ $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
+ } catch (Exception $e) {
+ $_SESSION['csrf_token'] = bin2hex(openssl_random_pseudo_bytes(32));
+ }
}
return $_SESSION['csrf_token'];
}
function csrf_field(): string
{
- $token = generate_csrf_token();
- return '';
+ return '';
}
function validate_csrf_token(): void
{
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
- if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {
+ if (!isset($_POST['csrf_token']) || !hash_equals(csrf_token(), $_POST['csrf_token'])) {
http_response_code(403);
- die("CSRF validation failed. Please refresh the page and try again.");
+ die(t('csrf_error'));
}
}
-}
-
-// Set timezone from settings
-try {
- $tz = get_setting('timezone', 'UTC');
- if ($tz && in_array($tz, DateTimeZone::listIdentifiers())) {
- date_default_timezone_set($tz);
- }
-} catch (Throwable $e) {}
\ No newline at end of file
+}
\ No newline at end of file