diff --git a/admin_company_profile.php b/admin_company_profile.php index ffd77a6..144edd6 100644 --- a/admin_company_profile.php +++ b/admin_company_profile.php @@ -48,7 +48,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { validate_csrf_token(); $updates['logo_path'] = '/uploads/logos/' . $logoName; } } else { - $errors[] = "Invalid logo format."; + $errors[] = t('invalid_logo_format'); } } @@ -63,7 +63,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { validate_csrf_token(); $updates['favicon_path'] = '/uploads/logos/' . $faviconName; } } else { - $errors[] = "Invalid favicon format."; + $errors[] = t('invalid_favicon_format'); } } @@ -73,7 +73,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { validate_csrf_token(); $stmt = $pdo->prepare("INSERT INTO settings (setting_key, setting_value) VALUES (:k, :v) ON DUPLICATE KEY UPDATE setting_value = :v2"); $stmt->execute([':k' => $key, ':v' => $val, ':v2' => $val]); } - $success = "Company profile updated successfully."; + $success = t('company_profile_updated'); } } @@ -93,7 +93,7 @@ $currentTermsAr = $settings['terms_ar'] ?? ''; $currentPrivacyEn = $settings['privacy_en'] ?? ''; $currentPrivacyAr = $settings['privacy_ar'] ?? ''; -render_header('Company Profile', 'admin', true); +render_header(t('company_profile'), 'admin', true); ?>
@@ -102,8 +102,8 @@ render_header('Company Profile', 'admin', true);
-

Company Profile

-

Update your app name, logo, favicon, contact details, platform charge, and legal policies.

+

+

@@ -118,17 +118,17 @@ render_header('Company Profile', 'admin', true); @@ -138,55 +138,55 @@ render_header('Company Profile', 'admin', true);
- +
- + -
Displayed in the footer.
+
- + -
Displayed in the footer.
+
- + -
Displayed in the footer.
+
- +
>
>
- +
%
-
Percentage applied as a platform fee (only for Percentage Model).
+
@@ -198,7 +198,7 @@ render_header('Company Profile', 'admin', true); -
System Timezone
+
@@ -206,25 +206,25 @@ render_header('Company Profile', 'admin', true);
- +
Logo
-
Recommended size: 150x40px (PNG, JPG, SVG). Leave empty to keep current.
+
- +
Favicon
-
Recommended size: 32x32px (ICO, PNG, SVG). Leave empty to keep current.
+
@@ -233,15 +233,15 @@ render_header('Company Profile', 'admin', true); @@ -250,22 +250,22 @@ render_header('Company Profile', 'admin', true);
-
Privacy Policy
+
- - + +
- - + +

- + diff --git a/includes/app.php b/includes/app.php index 3d72277..ff51fe2 100644 --- a/includes/app.php +++ b/includes/app.php @@ -336,330 +336,37 @@ $translations = [ 'target_price' => 'Target Price', 'status_pending_approval' => 'Pending Approval', 'pending_approval_msg' => 'Your shipment is pending admin approval.', -), - "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' => 'أصحاب الشاحنات', - 'trucks' => 'الشاحنات', - 'view_truck_docs_in_edit' => 'عرض مستندات الشاحنة في صفحة التعديل.', - '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', - 'edit_template' => 'تعديل القالب', - 'back_to_list' => 'العودة للقائمة', - 'template_not_found' => 'القالب غير موجود.', - 'english_required' => 'موضوع ونص البريد الإنجليزي مطلوبان.', - 'template_updated' => 'تم تحديث القالب بنجاح.', - 'english_version' => 'الإنجليزية', - 'arabic_version' => 'العربية', - 'email_subject' => 'موضوع البريد الإلكتروني', - 'email_body' => 'نص البريد الإلكتروني', - 'email_body_help' => 'استخدم المتغيرات مثل {shipment_id}, {user_name}, {offer_price}.', - 'whatsapp_body' => 'نص الواتساب', - 'event_name' => 'اسم الحدث', - 'subject_en' => 'الموضوع (إنجليزي)', - 'subject_ar' => 'الموضوع (عربي)', - 'is_company_checkbox' => 'هل التسجيل كشركة؟', - 'ctr_number' => 'رقم السجل التجاري (CTR)', - 'ctr_document' => 'وثيقة السجل التجاري', - 'notes' => 'ملاحظات', - 'profile' => 'الملف الشخصي', - 'view_full_size' => 'عرض بالحجم الكامل', - 'no_trucks_found' => 'لم يتم العثور على شاحنات.', - 'create_shipper' => 'إنشاء شاحن', - 'create_owner' => 'إنشاء مالك شاحنة', - 'create_success' => 'تم إنشاء المستخدم بنجاح.', - 'add_truck' => 'إضافة شاحنة', - 'new_truck_details' => 'تفاصيل الشاحنة الجديدة', - 'reg_expiry' => 'انتهاء التسجيل', - 'ins_expiry' => 'انتهاء التأمين', - 'registration_doc' => 'وثيقة التسجيل', - 'shipment_type' => 'نوع الشحنة', - 'type_frozen' => 'مجمد', - 'type_cold' => 'مبرد', - 'type_dry' => 'جاف', - 'target_price' => 'السعر المستهدف', - 'status_pending_approval' => 'بانتظار الموافقة', - 'pending_approval_msg' => 'شحنتك بانتظار موافقة الإدارة.', + 'company_profile' => 'Company Profile', + 'company_profile_intro' => 'Update your app name, logo, favicon, contact details, platform charge, and legal policies.', + 'company_profile_updated' => 'Company profile updated successfully.', + 'invalid_logo_format' => 'Invalid logo format.', + 'invalid_favicon_format' => 'Invalid favicon format.', + 'tab_company_setting' => 'Company Setting', + 'tab_legal_policies' => 'Legal & Policies', + 'tab_privacy_policy' => 'Privacy Policy', + 'company_app_name' => 'Company / App Name', + 'contact_email' => 'Contact Email', + 'displayed_in_footer' => 'Displayed in the footer.', + 'contact_phone' => 'Contact Phone', + 'pricing_model' => 'Pricing Model', + 'pricing_percentage_model' => 'Percentage Fee Model', + 'default_label' => '(Default)', + 'pricing_percentage_desc' => 'Shipper posts details. Truck Owners make offers. Platform adds fee on top of offer.', + 'pricing_fixed_model' => 'Shipper Offer & Confirmation', + 'pricing_fixed_desc' => 'Shipper sets price. Admin confirms. Truck Owner accepts fixed price.', + 'platform_charge_percent' => 'Platform Charge (%)', + 'platform_charge_help' => 'Percentage applied as a platform fee (only for Percentage Model).', + 'system_timezone' => 'System Timezone', + 'company_logo' => 'Company Logo', + 'logo_help' => 'Recommended size: 150x40px (PNG, JPG, SVG). Leave empty to keep current.', + 'favicon' => 'Favicon', + 'favicon_help' => 'Recommended size: 32x32px (ICO, PNG, SVG). Leave empty to keep current.', + 'english_label' => 'English', + 'arabic_label' => 'Arabic', + 'terms_placeholder_en' => 'Enter Terms of Service in English...', + 'terms_placeholder_ar' => 'Enter Terms of Service in Arabic...', + 'privacy_placeholder_en' => 'Enter Privacy Policy in English...', + 'privacy_placeholder_ar' => 'Enter Privacy Policy in Arabic...', ) ]; @@ -923,4 +630,4 @@ try { if ($tz && in_array($tz, DateTimeZone::listIdentifiers())) { date_default_timezone_set($tz); } -} catch (Throwable $e) {} \ No newline at end of file +} catch (Throwable $e) {}