feat: translate admin company profile page to arabic
This commit is contained in:
parent
c51c984fbc
commit
4804c27495
@ -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>
|
||||
|
||||
357
includes/app.php
357
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) {}
|
||||
} catch (Throwable $e) {}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user