feat: translate admin company profile page to arabic

This commit is contained in:
Flatlogic Bot 2026-03-24 06:33:05 +00:00
parent c51c984fbc
commit 4804c27495
2 changed files with 71 additions and 364 deletions

View File

@ -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);
?>
<div class="row g-0">
@ -102,8 +102,8 @@ render_header('Company Profile', 'admin', true);
</div>
<div class="col-md-10 p-4">
<div class="page-intro mb-4">
<h1 class="section-title mb-1">Company Profile</h1>
<p class="muted mb-0">Update your app name, logo, favicon, contact details, platform charge, and legal policies.</p>
<h1 class="section-title mb-1"><?= t('company_profile') ?></h1>
<p class="muted mb-0"><?= t('company_profile_intro') ?></p>
</div>
<?php if ($success): ?>
@ -118,17 +118,17 @@ render_header('Company Profile', 'admin', true);
<ul class="nav nav-tabs mb-4" id="companySettingsTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="company-tab" data-bs-toggle="tab" data-bs-target="#company" type="button" role="tab" aria-controls="company" aria-selected="true">
<i class="bi bi-building me-2"></i>Company Setting
<i class="bi bi-building me-2"></i><?= t('tab_company_setting') ?>
</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="legal-tab" data-bs-toggle="tab" data-bs-target="#legal" type="button" role="tab" aria-controls="legal" aria-selected="false">
<i class="bi bi-file-earmark-text me-2"></i>Legal & Policies
<i class="bi bi-file-earmark-text me-2"></i><?= t('tab_legal_policies') ?>
</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="privacy-tab" data-bs-toggle="tab" data-bs-target="#privacy" type="button" role="tab" aria-controls="privacy" aria-selected="false">
<i class="bi bi-shield-lock me-2"></i>Privacy Policy
<i class="bi bi-shield-lock me-2"></i><?= t('tab_privacy_policy') ?>
</button>
</li>
</ul>
@ -138,55 +138,55 @@ render_header('Company Profile', 'admin', true);
<div class="tab-pane fade show active" id="company" role="tabpanel" aria-labelledby="company-tab">
<div class="row g-3">
<div class="col-md-6">
<label class="form-label fw-bold">Company / App Name</label>
<label class="form-label fw-bold"><?= t('company_app_name') ?></label>
<input type="text" name="company_name" class="form-control" value="<?= e($currentName) ?>" required>
</div>
<div class="col-md-6">
<label class="form-label fw-bold">Contact Email</label>
<label class="form-label fw-bold"><?= t('contact_email') ?></label>
<input type="email" name="company_email" class="form-control" value="<?= e($currentEmail) ?>">
<div class="form-text">Displayed in the footer.</div>
<div class="form-text"><?= t('displayed_in_footer') ?></div>
</div>
<div class="col-md-6">
<label class="form-label fw-bold">Contact Phone</label>
<label class="form-label fw-bold"><?= t('contact_phone') ?></label>
<input type="text" name="company_phone" class="form-control" value="<?= e($currentPhone) ?>">
<div class="form-text">Displayed in the footer.</div>
<div class="form-text"><?= t('displayed_in_footer') ?></div>
</div>
<div class="col-md-6">
<label class="form-label fw-bold">Address</label>
<label class="form-label fw-bold"><?= t('address') ?></label>
<input type="text" name="company_address" class="form-control" value="<?= e($currentAddress) ?>">
<div class="form-text">Displayed in the footer.</div>
<div class="form-text"><?= t('displayed_in_footer') ?></div>
</div>
<div class="col-md-12">
<label class="form-label fw-bold">Pricing Model</label>
<label class="form-label fw-bold"><?= t('pricing_model') ?></label>
<div class="card p-3 bg-light border-0">
<div class="form-check mb-2">
<input class="form-check-input" type="radio" name="pricing_model" id="model_percentage" value="percentage" <?= $currentPricingModel === 'percentage' ? 'checked' : '' ?>>
<label class="form-check-label" for="model_percentage">
<strong>Percentage Fee Model</strong> (Default)<br>
<span class="text-muted small">Shipper posts details. Truck Owners make offers. Platform adds fee on top of offer.</span>
<strong><?= t('pricing_percentage_model') ?></strong> <?= t('default_label') ?><br>
<span class="text-muted small"><?= t('pricing_percentage_desc') ?></span>
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="pricing_model" id="model_fixed" value="fixed_price" <?= $currentPricingModel === 'fixed_price' ? 'checked' : '' ?>>
<label class="form-check-label" for="model_fixed">
<strong>Shipper Offer & Confirmation</strong><br>
<span class="text-muted small">Shipper sets price. Admin confirms. Truck Owner accepts fixed price.</span>
<strong><?= t('pricing_fixed_model') ?></strong><br>
<span class="text-muted small"><?= t('pricing_fixed_desc') ?></span>
</label>
</div>
</div>
</div>
<div class="col-md-6">
<label class="form-label fw-bold">Platform Charge (%)</label>
<label class="form-label fw-bold"><?= t('platform_charge_percent') ?></label>
<div class="input-group">
<input type="number" step="0.01" min="0" max="100" name="platform_charge_percentage" class="form-control" value="<?= e($currentPlatformCharge) ?>">
<span class="input-group-text">%</span>
</div>
<div class="form-text">Percentage applied as a platform fee (only for Percentage Model).</div>
<div class="form-text"><?= t('platform_charge_help') ?></div>
</div>
<div class="col-md-6">
@ -198,7 +198,7 @@ render_header('Company Profile', 'admin', true);
</option>
<?php endforeach; ?>
</select>
<div class="form-text">System Timezone</div>
<div class="form-text"><?= t('system_timezone') ?></div>
</div>
<div class="col-md-12">
@ -206,25 +206,25 @@ render_header('Company Profile', 'admin', true);
</div>
<div class="col-md-6">
<label class="form-label fw-bold">Company Logo</label>
<label class="form-label fw-bold"><?= t('company_logo') ?></label>
<?php if ($currentLogo): ?>
<div class="mb-2">
<img src="<?= e($currentLogo) ?>" alt="Logo" height="40" class="border rounded p-1">
</div>
<?php endif; ?>
<input type="file" name="logo_file" class="form-control" accept="image/*">
<div class="form-text">Recommended size: 150x40px (PNG, JPG, SVG). Leave empty to keep current.</div>
<div class="form-text"><?= t('logo_help') ?></div>
</div>
<div class="col-md-6">
<label class="form-label fw-bold">Favicon</label>
<label class="form-label fw-bold"><?= t('favicon') ?></label>
<?php if ($currentFavicon): ?>
<div class="mb-2">
<img src="<?= e($currentFavicon) ?>" alt="Favicon" height="32" class="border rounded p-1">
</div>
<?php endif; ?>
<input type="file" name="favicon_file" class="form-control" accept="image/png, image/x-icon, image/svg+xml">
<div class="form-text">Recommended size: 32x32px (ICO, PNG, SVG). Leave empty to keep current.</div>
<div class="form-text"><?= t('favicon_help') ?></div>
</div>
</div>
</div>
@ -233,15 +233,15 @@ render_header('Company Profile', 'admin', true);
<div class="tab-pane fade" id="legal" role="tabpanel" aria-labelledby="legal-tab">
<div class="row g-3">
<div class="col-12">
<h5 class="fw-bold mb-3">Terms of Service</h5>
<h5 class="fw-bold mb-3"><?= t('terms_of_service') ?></h5>
</div>
<div class="col-md-6">
<label class="form-label fw-bold">English</label>
<textarea name="terms_en" class="form-control" rows="10" placeholder="Enter Terms of Service in English..."><?= e($currentTermsEn) ?></textarea>
<label class="form-label fw-bold"><?= t('english_label') ?></label>
<textarea name="terms_en" class="form-control" rows="10" placeholder="<?= t('terms_placeholder_en') ?>"><?= e($currentTermsEn) ?></textarea>
</div>
<div class="col-md-6">
<label class="form-label fw-bold">Arabic</label>
<textarea name="terms_ar" class="form-control" rows="10" dir="rtl" placeholder="أدخل شروط الخدمة باللغة العربية..."><?= e($currentTermsAr) ?></textarea>
<label class="form-label fw-bold"><?= t('arabic_label') ?></label>
<textarea name="terms_ar" class="form-control" rows="10" dir="rtl" placeholder="<?= t('terms_placeholder_ar') ?>"><?= e($currentTermsAr) ?></textarea>
</div>
</div>
</div>
@ -250,22 +250,22 @@ render_header('Company Profile', 'admin', true);
<div class="tab-pane fade" id="privacy" role="tabpanel" aria-labelledby="privacy-tab">
<div class="row g-3">
<div class="col-12">
<h5 class="fw-bold mb-3">Privacy Policy</h5>
<h5 class="fw-bold mb-3"><?= t('tab_privacy_policy') ?></h5>
</div>
<div class="col-md-6">
<label class="form-label fw-bold">English</label>
<textarea name="privacy_en" class="form-control" rows="10" placeholder="Enter Privacy Policy in English..."><?= e($currentPrivacyEn) ?></textarea>
<label class="form-label fw-bold"><?= t('english_label') ?></label>
<textarea name="privacy_en" class="form-control" rows="10" placeholder="<?= t('privacy_placeholder_en') ?>"><?= e($currentPrivacyEn) ?></textarea>
</div>
<div class="col-md-6">
<label class="form-label fw-bold">Arabic</label>
<textarea name="privacy_ar" class="form-control" rows="10" dir="rtl" placeholder="أدخل سياسة الخصوصية باللغة العربية..."><?= e($currentPrivacyAr) ?></textarea>
<label class="form-label fw-bold"><?= t('arabic_label') ?></label>
<textarea name="privacy_ar" class="form-control" rows="10" dir="rtl" placeholder="<?= t('privacy_placeholder_ar') ?>"><?= e($currentPrivacyAr) ?></textarea>
</div>
</div>
</div>
</div>
<hr class="my-4">
<button type="submit" class="btn btn-primary px-4">Save Changes</button>
<button type="submit" class="btn btn-primary px-4"><?= t('save_changes') ?></button>
</form>
</div>
</div>

View File

@ -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) {}
} catch (Throwable $e) {}