# i18n Coverage Report

Generated by `php artisan i18n:check --write`

## Summary

- Missing keys in `fr`: **0**
- Missing keys in `ar`: **0**
- Empty or TODO values: **0**
- Potential hardcoded UI strings: **678**
- Potential unused keys: **1947**

## Glossary

- Course = **دورة** / **Formation**
- Cohort = **فوج** / **Cohorte**
- Enrollment = **تسجيل** / **Inscription**
- Payment = **دفع** / **Paiement**
- Attendance = **حضور** / **Présence**

## Missing Keys In fr

- None

## Missing Keys In ar

- None

## Empty Or TODO Values

- None

## Potential Hardcoded Strings

| File | Line | Snippet |
| --- | ---: | --- |
| `resources/views/components/layouts/auth.blade.php` | 29 | x-on:notify.window="toasts.push({ message: $event.detail.message, type: $event.detail.type \|\| 'success' }); setTimeout(() => toasts.shift(),... |
| `resources/views/components/layouts/portal.blade.php` | 34 | <script>document.addEventListener('alpine:init', () => { window.dispatchEvent(new CustomEvent('toast', { detail: { type: 'success', message:... |
| `resources/views/components/layouts/portal.blade.php` | 37 | <script>document.addEventListener('alpine:init', () => { window.dispatchEvent(new CustomEvent('toast', { detail: { type: 'error', message: '... |
| `resources/views/components/layouts/public.blade.php` | 47 | x-on:notify.window="toasts.push({ message: $event.detail.message, type: $event.detail.type \|\| 'success' }); setTimeout(() => toasts.shift(),... |
| `resources/views/components/portal/breadcrumbs.blade.php` | 5 | - items: array of ['label' => string, 'url' => string (optional)] |
| `resources/views/components/portal/breadcrumbs.blade.php` | 8 | <x-portal.breadcrumbs :items="[['label' => 'Home', 'url' => '/'], ['label' => 'Current']]" /> |
| `resources/views/components/portal/sidebar.blade.php` | 139 | ['title' => null, 'links' => [ |
| `resources/views/components/portal/sidebar.blade.php` | 157 | ['title' => null, 'links' => [ |
| `resources/views/components/portal/sidebar.blade.php` | 235 | @if(isset($section['title']) && $section['title']) |
| `resources/views/components/ui/modal-confirm.blade.php` | 2 | 'title' => '', |
| `resources/views/components/ui/modal-confirm.blade.php` | 93 | <button @click="$dispatch('modal-confirmed'); open = false" |
| `resources/views/components/ui/modal.blade.php` | 30 | aria-labelledby="modal-title" |
| `resources/views/components/ui/table.blade.php` | 2 | 'headers' => [], // Array of header titles |
| `resources/views/components/ui/textarea.blade.php` | 8 | 'placeholder' => '', |
| `resources/views/exports/finance-report.blade.php` | 120 | <th>Label</th> |
| `resources/views/exports/finance-report.blade.php` | 134 | <td>{{ $row['label'] ?? '—' }}</td> |
| `resources/views/exports/finance-report.blade.php` | 140 | <td colspan="2"><strong>Total</strong></td> |
| `resources/views/exports/payment-detail.blade.php` | 129 | <h1>Payment Details</h1> |
| `resources/views/exports/payment-detail.blade.php` | 195 | <th>Date</th> |
| `resources/views/exports/payment-detail.blade.php` | 196 | <th>Decision</th> |
| `resources/views/exports/payment-detail.blade.php` | 197 | <th>Reason</th> |
| `resources/views/layouts/admin.blade.php` | 82 | <x-portal.topbar context="admin" :title="$title ?? null" /> |
| `resources/views/layouts/admin.blade.php` | 161 | x-on:notify.window="toasts.push({ message: $event.detail.message, type: $event.detail.type \|\| 'success' }); setTimeout(() => toasts.shift(),... |
| `resources/views/layouts/finance.blade.php` | 107 | Livewire.dispatch('keyboard-shortcut', { key: e.key }); |
| `resources/views/layouts/partials/finance-topbar.blade.php` | 64 | aria-labelledby="user-menu-button" |
| `resources/views/layouts/partials/instructor-topbar.blade.php` | 45 | aria-labelledby="user-menu-button" |
| `resources/views/layouts/partials/student-topbar.blade.php` | 38 | :title="darkMode ? 'Switch to Light Mode' : 'Switch to Dark Mode'" |
| `resources/views/layouts/partials/student-topbar.blade.php` | 55 | >عربي</button> |
| `resources/views/livewire/admin/audit/admin-audit-logs-explorer-page.blade.php` | 20 | <option value="">All</option> |
| `resources/views/livewire/admin/audit/admin-audit-logs-explorer-page.blade.php` | 21 | <option value="info">Info</option> |
| `resources/views/livewire/admin/audit/admin-audit-logs-explorer-page.blade.php` | 22 | <option value="warning">Warning</option> |
| `resources/views/livewire/admin/audit/admin-audit-logs-explorer-page.blade.php` | 23 | <option value="critical">Critical</option> |
| `resources/views/livewire/admin/audit/admin-audit-retention-page.blade.php` | 83 | <button wire:click="$set('showForm', false)">&times;</button> |
| `resources/views/livewire/admin/audit/admin-audit-retention-page.blade.php` | 98 | <option value="anonymize">Anonymize</option> |
| `resources/views/livewire/admin/audit/admin-audit-retention-page.blade.php` | 99 | <option value="hard_delete">Hard Delete</option> |
| `resources/views/livewire/admin/blog/admin-blog-categories-page.blade.php` | 36 | <label>Active</label> |
| `resources/views/livewire/admin/blog/admin-blog-posts-index.blade.php` | 23 | <option value="draft">Draft</option> |
| `resources/views/livewire/admin/blog/admin-blog-posts-index.blade.php` | 24 | <option value="published">Published</option> |
| `resources/views/livewire/admin/blog/admin-blog-posts-index.blade.php` | 25 | <option value="scheduled">Scheduled</option> |
| `resources/views/livewire/admin/certificates/admin-certificate-template-designer-page.blade.php` | 128 | <option value="A4">A4</option> |
| `resources/views/livewire/admin/certificates/admin-certificate-template-designer-page.blade.php` | 129 | <option value="Letter">Letter</option> |
| `resources/views/livewire/admin/certificates/admin-certificate-template-designer-page.blade.php` | 132 | <option value="landscape">Landscape</option> |
| `resources/views/livewire/admin/certificates/admin-certificate-template-designer-page.blade.php` | 133 | <option value="portrait">Portrait</option> |
| `resources/views/livewire/admin/certificates/admin-certificate-template-designer-page.blade.php` | 137 | <option value="draft">📁 Draft (مسودة)</option> |
| `resources/views/livewire/admin/certificates/admin-certificate-template-designer-page.blade.php` | 138 | <option value="active">✅ Active (مفعل)</option> |
| `resources/views/livewire/admin/certificates/admin-certificate-template-designer-page.blade.php` | 139 | <option value="archived">🗂 Archived (مؤرشف)</option> |
| `resources/views/livewire/admin/certificates/admin-certificate-template-designer-page.blade.php` | 279 | <option value="">إختر متغيراً...</option> |
| `resources/views/livewire/admin/certificates/admin-certificate-template-designer-page.blade.php` | 319 | <option value="normal">عادي (Normal)</option> |
| `resources/views/livewire/admin/certificates/admin-certificate-template-designer-page.blade.php` | 320 | <option value="bold">عريض (Bold)</option> |
| `resources/views/livewire/admin/certificates/admin-certificate-template-designer-page.blade.php` | 321 | <option value="black">سميك جداً (Black)</option> |
| `resources/views/livewire/admin/certificates/admin-certificates-dashboard-page.blade.php` | 6 | <span>لوحة التحكم</span> |
| `resources/views/livewire/admin/certificates/admin-certificates-dashboard-page.blade.php` | 8 | <span>الشهادات</span> |
| `resources/views/livewire/admin/certificates/admin-certificates-dashboard-page.blade.php` | 157 | <option value="">تصفية حسب الدورة</option> |
| `resources/views/livewire/admin/cms/admin-cms-page-builder-page.blade.php` | 142 | <input type="text" wire:model="editorData.primary_cta_url" placeholder="https://" |
| `resources/views/livewire/admin/cms/admin-cms-page-builder-page.blade.php` | 154 | <strong>⚠️ Items Editor:</strong> Complex list editing is disabled in this preview. |
| `resources/views/livewire/admin/cohorts/admin-cohort-sessions-page.blade.php` | 202 | @if(!empty($item['slot_label'])) |
| `resources/views/livewire/admin/corporate-cohorts/detail-page.blade.php` | 98 | @foreach(['full_name', 'phone', 'email', 'job_title', 'employee_code', 'department'] as $field) |
| `resources/views/livewire/admin/finance/manage-payment-plan.blade.php` | 7 | aria-labelledby="modal-title" |
| `resources/views/livewire/admin/finance/payout-drafts.blade.php` | 43 | <option value="">Tous les statuts</option> |
| `resources/views/livewire/admin/finance/payout-drafts.blade.php` | 44 | <option value="draft">📝 Brouillon</option> |
| `resources/views/livewire/admin/finance/payout-drafts.blade.php` | 45 | <option value="pending_approval">⏳ En attente</option> |
| `resources/views/livewire/admin/finance/payout-drafts.blade.php` | 46 | <option value="approved">✅ Approuvé</option> |
| `resources/views/livewire/admin/finance/payout-drafts.blade.php` | 47 | <option value="paid">💰 Payé</option> |
| `resources/views/livewire/admin/finance/payout-drafts.blade.php` | 48 | <option value="rejected">❌ Rejeté</option> |
| `resources/views/livewire/admin/finance/payout-drafts.blade.php` | 147 | <x-slot name="title">Approuver le Payout</x-slot> |
| `resources/views/livewire/admin/finance/students-billing.blade.php` | 50 | <option value="">Tous les statuts</option> |
| `resources/views/livewire/admin/finance/students-billing.blade.php` | 51 | <option value="good">✅ Bon</option> |
| `resources/views/livewire/admin/finance/students-billing.blade.php` | 52 | <option value="at_risk">⚠️ À Risque</option> |
| `resources/views/livewire/admin/finance/students-billing.blade.php` | 53 | <option value="overdue">🔴 En Retard</option> |
| `resources/views/livewire/admin/finance/students-billing.blade.php` | 255 | <x-slot name="title">Confirmer l'envoi de rappels</x-slot> |
| `resources/views/livewire/admin/finance/students-billing.blade.php` | 272 | <span wire:loading.remove wire:target="executeBulkReminder">Confirmer</span> |
| `resources/views/livewire/admin/finance/students-billing.blade.php` | 273 | <span wire:loading wire:target="executeBulkReminder">Envoi...</span> |
| `resources/views/livewire/admin/governance/catalog/dataset-form.blade.php` | 24 | <option value="admin">Admin Panel</option> |
| `resources/views/livewire/admin/governance/catalog/dataset-form.blade.php` | 25 | <option value="student_portal">Student Portal</option> |
| `resources/views/livewire/admin/governance/catalog/dataset-form.blade.php` | 26 | <option value="finance">Finance</option> |
| `resources/views/livewire/admin/governance/catalog/dataset-form.blade.php` | 27 | <option value="public_site">Public Website</option> |
| `resources/views/livewire/admin/governance/dsar/dsar-details.blade.php` | 71 | <span>Deadline</span> |
| `resources/views/livewire/admin/guide/admin-guide-page.blade.php` | 27 | <template x-for="(label, key) in sections" :key="key"> |
| `resources/views/livewire/admin/health/admin-health-dashboard-page.blade.php` | 36 | <span>&rarr;</span> |
| `resources/views/livewire/admin/health/admin-health-rules-page.blade.php` | 52 | <button wire:click="$set('showModal', false)">&times;</button> |
| `resources/views/livewire/admin/health/admin-health-rules-page.blade.php` | 62 | <option value="info">Info</option> |
| `resources/views/livewire/admin/health/admin-health-rules-page.blade.php` | 63 | <option value="warning">Warning</option> |
| `resources/views/livewire/admin/health/admin-health-rules-page.blade.php` | 64 | <option value="critical">Critical</option> |
| `resources/views/livewire/admin/messaging/messaging-logs-page.blade.php` | 10 | <option value="telegram">Telegram</option> |
| `resources/views/livewire/admin/messaging/messaging-logs-page.blade.php` | 11 | <option value="whatsapp">WhatsApp</option> |
| `resources/views/livewire/admin/messaging/messaging-logs-page.blade.php` | 12 | <option value="email">Email</option> |
| `resources/views/livewire/admin/messaging/messaging-settings-page.blade.php` | 43 | <option value="HTML">HTML</option> |
| `resources/views/livewire/admin/messaging/messaging-settings-page.blade.php` | 44 | <option value="Markdown">Markdown</option> |
| `resources/views/livewire/admin/messaging/messaging-settings-page.blade.php` | 67 | <option value="outbox">Outbox</option> |
| `resources/views/livewire/admin/messaging/messaging-settings-page.blade.php` | 68 | <option value="api">API</option> |
| `resources/views/livewire/admin/notifications-dropdown.blade.php` | 6 | aria-label="Admin Notifications" |
| `resources/views/livewire/admin/notifications-dropdown.blade.php` | 56 | @if($notify['subject_type'] === 'PaymentScheduleItem') |
| `resources/views/livewire/admin/notifications-dropdown.blade.php` | 58 | @elseif($notify['subject_type'] === 'InstructorPayout') |
| `resources/views/livewire/admin/notifications-dropdown.blade.php` | 67 | {{ str_replace('_', ' ', ucfirst($notify['template'])) }} |
| `resources/views/livewire/admin/notifications-dropdown.blade.php` | 71 | @if(isset($notify['payload']['amount_due'])) |
| `resources/views/livewire/admin/notifications-dropdown.blade.php` | 72 | Amount: {{ number_format($notify['payload']['amount_due']) }} |
| `resources/views/livewire/admin/notifications-dropdown.blade.php` | 74 | @if(isset($notify['payload']['registration_id'])) |
| `resources/views/livewire/admin/notifications-dropdown.blade.php` | 89 | @if(!$notify['is_read']) |
| `resources/views/livewire/admin/notifications/admin-notification-templates-page.blade.php` | 26 | <option value="registrations">Registrations</option> |
| `resources/views/livewire/admin/notifications/admin-notification-templates-page.blade.php` | 27 | <option value="payments">Payments</option> |
| `resources/views/livewire/admin/notifications/admin-notification-templates-page.blade.php` | 28 | <option value="certificates">Certificates</option> |
| `resources/views/livewire/admin/notifications/admin-notification-templates-page.blade.php` | 29 | <option value="system">System</option> |
| `resources/views/livewire/admin/notifications/admin-notification-triggers-page.blade.php` | 55 | <option value="">Select Event...</option> |
| `resources/views/livewire/admin/notifications/admin-notification-triggers-page.blade.php` | 64 | <option value="in_app">In-App</option> |
| `resources/views/livewire/admin/notifications/admin-notification-triggers-page.blade.php` | 65 | <option value="email">Email</option> |
| `resources/views/livewire/admin/notifications/admin-notification-triggers-page.blade.php` | 71 | <option value="">Select Template...</option> |
| `resources/views/livewire/admin/notifications/admin-notifications-log-page.blade.php` | 9 | <option value="">All Statuses</option> |
| `resources/views/livewire/admin/notifications/admin-notifications-log-page.blade.php` | 10 | <option value="sent">Sent</option> |
| `resources/views/livewire/admin/notifications/admin-notifications-log-page.blade.php` | 11 | <option value="queued">Queued</option> |
| `resources/views/livewire/admin/notifications/admin-notifications-log-page.blade.php` | 12 | <option value="failed">Failed</option> |
| `resources/views/livewire/admin/notifications/admin-notifications-log-page.blade.php` | 13 | <option value="cancelled">Cancelled</option> |
| `resources/views/livewire/admin/notifications/admin-notifications-log-page.blade.php` | 16 | <option value="">All Channels</option> |
| `resources/views/livewire/admin/notifications/admin-notifications-log-page.blade.php` | 17 | <option value="in_app">In-App</option> |
| `resources/views/livewire/admin/notifications/admin-notifications-log-page.blade.php` | 18 | <option value="email">Email</option> |
| `resources/views/livewire/admin/payment-review.blade.php` | 41 | {{ $payment->registration?->course?->title[app()->getLocale()] ?? $payment->registration?->course?->title['ar'] ?? '—' }} |
| `resources/views/livewire/admin/payments/payment-review-modal.blade.php` | 127 | placeholder="اكتب سبب الرفض هنا... (مثال: الوصل غير واضح)" |
| `resources/views/livewire/admin/payments/payment-review-modal.blade.php` | 145 | <span wire:loading.remove wire:target="reject">رفض الدفعة</span> |
| `resources/views/livewire/admin/payments/payment-review-modal.blade.php` | 146 | <span wire:loading wire:target="reject">جاري الرفض...</span> |
| `resources/views/livewire/admin/payments/payment-review-modal.blade.php` | 156 | <span wire:loading.remove wire:target="confirm">تأكيد ومتابعة</span> |
| `resources/views/livewire/admin/payments/payments-review-split-page.blade.php` | 223 | <x-slot name="title"> |

## Potential Unused Keys

- `about.feat_1`
- `about.feat_2`
- `about.feat_3`
- `admin.messaging.nav.logs`
- `admin.messaging.nav.outbox`
- `admin.messaging.nav.templates`
- `admin.messaging.templates.active`
- `admin.messaging.templates.body`
- `admin.messaging.templates.channel`
- `admin.messaging.templates.create_title`
- `admin.messaging.templates.duplicate_error`
- `admin.messaging.templates.edit`
- `admin.messaging.templates.edit_title`
- `admin.messaging.templates.inactive`
- `admin.messaging.templates.key`
- `admin.messaging.templates.new`
- `admin.messaging.templates.preview`
- `admin.messaging.templates.saved`
- `admin.messaging.templates.search_placeholder`
- `admin.messaging.templates.subject`
- `admin.messaging.templates.subtitle`
- `admin.messaging.templates.template_active`
- `admin.messaging.templates.title`
- `admin.messaging.templates.variables`
- `admin.portal.student`
- `admin_blog.tags`
- `admin_certificates.certificate_status.issued`
- `admin_certificates.certificate_status.revoked`
- `admin_certificates.certificate_status.superseded`
- `admin_certificates.eligibility_reasons.absence_limit_exceeded`
- `admin_certificates.eligibility_reasons.attendance_below_minimum`
- `admin_certificates.eligibility_reasons.attendance_not_finalized`
- `admin_certificates.eligibility_reasons.certificate_already_issued`
- `admin_certificates.eligibility_reasons.cohort_not_finished`
- `admin_certificates.eligibility_reasons.enrollment_not_ready`
- `admin_certificates.eligibility_reasons.payment_not_confirmed`
- `admin_certificates.eligibility_reasons.student_account_missing`
- `admin_certificates.eligible_now`
- `admin_certificates.generate_new`
- `admin_certificates.recent_activity`
- `admin_certificates.revoked_total`
- `admin_certificates.student_account_required`
- `admin_certificates.template`
- `admin_certificates.templates_delete_blocked_used`
- `admin_certificates.variable_labels.certificate_verify_url`
- `admin_certificates.variable_labels.cohort_code`
- `admin_certificates.variable_labels.cohort_end_date`
- `admin_certificates.variable_labels.cohort_name`
- `admin_certificates.variable_labels.cohort_schedule`
- `admin_certificates.variable_labels.cohort_start_date`
- `admin_certificates.variable_labels.course_code`
- `admin_certificates.variable_labels.course_duration_hours`
- `admin_certificates.variable_labels.course_title`
- `admin_certificates.variable_labels.instructor_full_name`
- `admin_certificates.variable_labels.issued_at`
- `admin_certificates.variable_labels.serial`
- `admin_certificates.variable_labels.student_first_name`
- `admin_certificates.variable_labels.student_full_name`
- `admin_certificates.variable_labels.student_last_name`
- `admin_certificates.verifications_30d`
- `admin_certificates.view_all_issued`
- `admin_cms.add_block`
- `admin_cms.blocks`
- `admin_cms.blocks_types.features_grid`
- `admin_cms.blocks_types.hero`
- `admin_cms.blocks_types.rich_content`
- `admin_cms.blocks_types.stats`
- `admin_cms.delete_block`
- `admin_cms.edit_block`
- `admin_cms.page_key`
- `admin_cms.save_block`
- `admin_cms.select_block_to_edit`
- `admin_cms.statuses.draft`
- `admin_cms.statuses.published`
- `admin_cms.statuses.scheduled`
- `admin_cohorts.billing_policy.preview_acompte`
- `admin_cohorts.billing_policy.save_cohort_first_desc`
- `admin_cohorts.billing_policy.save_cohort_first_title`
- `admin_cohorts.schedule.existing_sessions`
- `admin_cohorts.schedule.locked_sessions`
- `admin_cohorts.schedule.recorded_sessions`
- `admin_cohorts.schedule.safe_notice_body`
- `admin_cohorts.schedule.safe_notice_title`
- `admin_cohorts.schedule.save_first_error`
- `admin_cohorts.schedule.save_first_title`
- `admin_cohorts.schedule.subtitle`
- `admin_cohorts.statuses.all`
- `admin_cohorts.statuses.cancelled`
- `admin_cohorts.statuses.closed`
- `admin_cohorts.statuses.full`
- `admin_cohorts.statuses.open`
- `admin_cohorts.statuses.upcoming`
- `admin_cohorts.tabs.attendance_schedule`
- `admin_cohorts.tabs.basics`
- `admin_cohorts.tabs.billing_policy`
- `admin_cohorts.tabs.instructor`
- `admin_cohorts.tabs.registration`
- `admin_cohorts.tabs.scheduling`
- `admin_cohorts.tabs.seats`
- `admin_courses.categories.notifications.created`
- `admin_courses.categories.notifications.deleted`
- `admin_courses.categories.notifications.updated`
- `admin_courses.categories.table.status`
- `admin_courses.form.video_upload_title`
- `admin_courses.form.video_uploading`
- `admin_courses.tabs.basic`
- `admin_courses.tabs.content`
- `admin_courses.tabs.marketing`
- `admin_courses.tabs.publication`
- `admin_dashboard.actions.check`
- `admin_dashboard.actions.manage`
- `admin_dashboard.actions.rejected`
- `admin_dashboard.actions.review`
- `admin_dashboard.actions.review_receipt`
- `admin_dashboard.actions.starts_soon`
- `admin_dashboard.actions.user_updated_info`
- `admin_dashboard.queues.needs_followup`
- `admin_dashboard.queues.pending_reviews`
- `admin_dashboard.queues.todays_sessions`
- `admin_nav.academy`

## Organization Notes

- Keep shared actions and UX labels in `common.php`.
- Keep statuses and toast messages in `messages.php`.
- Keep enrollment funnel copy in `enroll.php`.
- Keep shared payment terminology in `payments.php`.
- Keep admin messaging screens in `admin.php`.
