Stand: SMTP-Test, Admin-Mail-Tab, Notifiable-Fix, Lazy-Quill

- Fix: Notifiable-Trait zum User-Model hinzugefuegt (behebt notify()-500er)
- Installer: SMTP-Verbindungstest mit EsmtpTransport + Ueberspringen-Link
- Admin: Neuer E-Mail-Tab mit SMTP-Konfiguration + Verbindungstest
- Admin: Lazy Quill-Initialisierung (nur sichtbare Locale wird geladen)
- Uebersetzungen: 17 neue Mail-Keys in allen 6 Sprachen

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Rhino
2026-03-02 07:30:37 +01:00
commit 2e24a40d68
9633 changed files with 1300799 additions and 0 deletions

549
lang/ar/admin.php Executable file
View File

@@ -0,0 +1,549 @@
<?php
return [
'dashboard_title' => 'لوحة تحكم الإدارة',
'stat_users' => 'المستخدمون',
'stat_players' => 'اللاعبون',
'stat_upcoming' => 'المواعيد القادمة',
'stat_invitations' => 'الدعوات المفتوحة',
'quick_links' => 'وصول سريع',
'new_event' => 'موعد جديد',
'new_player' => 'لاعب جديد',
'new_invitation' => 'دعوة جديدة',
'new_team' => 'فريق جديد',
'open_responses_title' => 'مواعيد بردود مفتوحة',
'x_open' => ':count مفتوح',
'nav_teams' => 'الفرق',
'nav_players' => 'اللاعبون',
'nav_users' => 'المستخدمون',
'nav_invitations' => 'الدعوات',
'nav_events' => 'الأحداث',
'nav_settings' => 'الإعدادات',
'nav_verwaltung' => 'الإدارة',
'actions' => 'الإجراءات',
'action' => 'إجراء',
'please_select' => 'يرجى الاختيار',
'back_to_list' => 'العودة إلى القائمة',
'inactive' => 'غير نشط',
'nr' => 'رقم',
'photo' => 'صورة',
'date' => 'التاريخ',
'location' => 'الموقع',
'all_status' => 'جميع الحالات',
'copied' => 'تم النسخ!',
'copy' => 'نسخ',
'created_by' => 'بواسطة',
'valid_until' => 'صالح حتى',
'teams_title' => 'الفرق',
'team_created' => 'تم إنشاء الفريق.',
'team_updated' => 'تم تحديث الفريق.',
'team_name' => 'اسم الفريق',
'year_group' => 'الفئة العمرية',
'year_group_placeholder' => 'مثلاً 2017/18',
'active' => 'نشط',
'team_is_active' => 'الفريق نشط',
'create_team' => 'إنشاء فريق',
'edit_team' => 'تعديل الفريق',
'no_teams_yet' => 'لا توجد فرق بعد.',
'team_notes' => 'ملاحظات',
'team_notes_placeholder' => 'ملاحظات حول الفريق (داخلية، مرئية فقط للمسؤولين)...',
'team_coaches' => 'المدربون',
'no_coaches_available' => 'لا يوجد مدربون في النظام.',
'team_players' => 'اللاعبون',
'team_parent_reps' => 'ممثلو أولياء الأمور',
'team_parent_reps_hint' => 'أولياء الأمور الذين لديهم دور "ممثل أولياء الأمور" ولديهم أطفال في هذا الفريق.',
'no_parent_reps' => 'لا يوجد ممثلون لأولياء الأمور لهذا الفريق.',
'log_team_updated' => 'تم تحديث الفريق ":name"',
'log_player_team_changed' => 'تم نقل اللاعب :name إلى فريق آخر',
'players_title' => 'اللاعبون',
'player_created' => 'تم إنشاء اللاعب.',
'player_updated' => 'تم تحديث اللاعب.',
'first_name' => 'الاسم الأول',
'last_name' => 'اسم العائلة',
'birth_year' => 'سنة الميلاد',
'jersey_number' => 'رقم القميص',
'photo_permission' => 'إذن التصوير',
'notes' => 'ملاحظات',
'parent_assigned' => 'تم تعيين ولي الأمر.',
'parent_removed' => 'تم إزالة التعيين.',
'assign_parent' => 'تعيين ولي أمر',
'add_parent' => 'إضافة ولي أمر',
'select_user' => 'اختيار مستخدم',
'assign' => 'تعيين',
'relationship_label' => 'صلة القرابة',
'relationship_placeholder' => 'مثال: أم، أب',
'parents' => 'أولياء الأمور',
'player_data' => 'البيانات الأساسية',
'parent_assignment' => 'تعيين أولياء الأمور',
'no_parents_yet' => 'لم يتم تعيين أولياء أمور بعد.',
'confirm_remove_parent' => 'هل تريد إزالة التعيين فعلاً؟',
'remove' => 'إزالة',
'no_players_yet' => 'لا يوجد لاعبون بعد.',
'users_title' => 'المستخدمون',
'user_toggled' => 'تم :status المستخدم.',
'role_updated' => 'تم تحديث الدور.',
'cannot_deactivate_self' => 'لا يمكنك تعطيل حسابك الخاص.',
'cannot_change_own_role' => 'لا يمكنك تغيير دورك الخاص.',
'activated' => 'تفعيل',
'deactivated' => 'تعطيل',
'deactivated_label' => 'معطّل',
'children' => 'الأطفال',
'phone' => 'الهاتف',
'last_login' => 'آخر تسجيل دخول',
'never' => 'أبداً',
'deactivate' => 'تعطيل',
'activate' => 'تفعيل',
'you_suffix' => '(أنت)',
'edit' => 'تعديل',
'edit_user' => 'تعديل المستخدم',
'user_data' => 'بيانات المستخدم',
'user_updated' => 'تم تحديث المستخدم.',
'reset_password' => 'إعادة تعيين كلمة المرور',
'reset_password_hint' => 'ينشئ كلمة مرور عشوائية جديدة. ستصبح كلمة المرور القديمة غير صالحة.',
'reset_password_confirm' => 'إنشاء كلمة مرور عشوائية جديدة؟ ستصبح كلمة المرور القديمة غير صالحة.',
'password_reset_success' => 'تم إنشاء كلمة مرور جديدة.',
'new_password_label' => 'كلمة المرور الجديدة (مرئية مرة واحدة فقط):',
'password_only_visible_now' => 'تُعرض كلمة المرور هذه الآن فقط. يرجى مشاركتها وعدم إعادة تحميل الصفحة.',
'cannot_edit_own_role' => 'لا يمكنك تغيير دورك هنا.',
'cannot_assign_admin_role' => 'لا يمكنك تعيين دور المدير.',
'cannot_reset_own_password' => 'لا يمكنك إعادة تعيين كلمة المرور الخاصة بك عبر منطقة الإدارة.',
'registered_at' => 'تاريخ التسجيل',
'invitations_title' => 'الدعوات',
'invitation_created' => 'تم إنشاء الدعوة. الرابط: :link',
'invitation_deleted' => 'تم حذف الدعوة.',
'invitation_already_used' => 'لا يمكن حذف الدعوات التي تم استخدامها.',
'create_invitation' => 'إنشاء دعوة',
'assign_players' => 'تعيين لاعبين',
'email_optional' => 'البريد الإلكتروني (اختياري)',
'email_optional_hint' => 'إذا تم تحديده، يمكن لهذا البريد الإلكتروني فقط التسجيل',
'expires_at' => 'صالح حتى',
'valid_for_days' => 'صالح لمدة (أيام)',
'token' => 'الرمز',
'status' => 'الحالة',
'used' => 'مستخدَم',
'expired' => 'منتهي الصلاحية',
'pending' => 'مفتوح',
'copy_link' => 'نسخ الرابط',
'invite_link' => 'رابط الدعوة',
'no_assignment' => 'بدون تعيين',
'no_invitations_yet' => 'لم يتم إنشاء دعوات بعد.',
'no_active_players' => 'لا يوجد لاعبون نشطون.',
'confirm_delete_invitation' => 'هل تريد حذف الدعوة فعلاً؟',
'created_label' => 'تم الإنشاء',
'player_assignment_hint' => 'اختر الأطفال الذين سيتم تعيينهم تلقائياً لحساب ولي الأمر الجديد.',
'events_title' => 'الأحداث',
'event_created' => 'تم إنشاء الحدث.',
'event_updated' => 'تم تحديث الحدث.',
'event_deleted' => 'تم حذف الحدث.',
'event_title' => 'العنوان',
'start_at' => 'البداية',
'date' => 'التاريخ',
'time' => 'الوقت',
'end_at' => 'النهاية',
'location_name' => 'اسم الموقع',
'address' => 'العنوان',
'description' => 'الوصف',
'search_address' => 'البحث عن عنوان...',
'new_event_title' => 'حدث جديد',
'edit_event_title' => 'تعديل الحدث',
'no_events_yet' => 'لا توجد أحداث بعد.',
'confirm_delete_event' => 'هل تريد حذف الحدث فعلاً؟',
'location_address' => 'الموقع / العنوان',
'location_name_hint' => 'اسم الموقع (مثلاً: الصالة الرياضية الشمالية)',
'search_by_name' => 'البحث عن العنوان',
'location_name_placeholder' => 'مثال: ملعب BVB، صالة رياضية...',
'search_address_hint' => 'أدخل العنوان (٣ أحرف على الأقل)...',
'description_placeholder' => 'أدخل الوصف...',
'assignments' => 'التعيينات',
'catering_assignment' => 'التموين',
'timekeeper_assignment' => 'ميقاتي',
'geocoding_error' => 'فشل البحث عن العنوان. حاول مرة أخرى.',
'geocoding_rate_limit' => 'طلبات كثيرة جداً. انتظر لحظة.',
'geocoding_no_results' => 'لم يتم العثور على عنوان. كن أكثر تحديداً.',
'min_requirements' => 'الحد الأدنى من المتطلبات',
'min_players' => 'الحد الأدنى للاعبين',
'min_parents' => 'الحد الأدنى للأولياء',
'min_catering' => 'الحد الأدنى للتموين',
'min_timekeepers' => 'الحد الأدنى للميقاتيين',
'event_defaults_title' => 'القيم الافتراضية للحد الأدنى للأحداث',
'event_defaults_description' => 'حدد القيم الافتراضية للحد الأدنى للأحداث الجديدة حسب النوع. يمكن للمسؤولين تغييرها عند الإنشاء.',
// إدارة المواقع
'nav_locations' => 'المواقع',
'locations_title' => 'إدارة المواقع',
'location_add' => 'إضافة موقع جديد',
'location_name_label' => 'الاسم',
'location_save' => 'حفظ',
'location_created' => 'تم إنشاء الموقع.',
'location_updated' => 'تم تحديث الموقع.',
'location_deleted' => 'تم حذف الموقع.',
'location_confirm_delete' => 'هل تريد حقاً حذف هذا الموقع؟',
'locations_empty' => 'لا توجد مواقع بعد.',
'known_locations' => 'مواقع معروفة',
'address_manual_hint' => 'أدخل العنوان يدوياً...',
// الإعدادات
'settings_title' => 'الإعدادات',
'settings_saved' => 'تم حفظ الإعدادات.',
'settings_tab_general' => 'عام',
'settings_tab_legal' => 'قانوني',
'settings_tab_defaults' => 'معايير الأحداث',
'settings_tab_categories' => 'فئات الملفات',
// إدارة الملفات
'nav_files' => 'الملفات',
'files_title' => 'إدارة الملفات',
'upload_file' => 'رفع ملف',
'file_uploaded' => 'تم رفع الملف.',
'file_deleted' => 'تم حذف الملف.',
'file_category' => 'الفئة',
'select_category' => 'اختر الفئة',
'no_files_yet' => 'لا توجد ملفات في هذه الفئة بعد.',
'no_files_at_all' => 'لم يتم رفع أي ملفات بعد.',
'file_size' => 'الحجم',
'uploaded_by' => 'رُفع بواسطة',
'uploaded_at' => 'تاريخ الرفع',
'confirm_delete_file' => 'هل تريد حذف هذا الملف حقاً؟ سيتم إزالة جميع ارتباطات الأحداث.',
'allowed_file_types' => 'أنواع الملفات المسموحة: PDF, DOCX, XLSX, صور (JPG, PNG, GIF, WEBP)',
'max_file_size' => 'الحد الأقصى لحجم الملف: 10 ميجابايت',
'file_categories' => 'فئات الملفات',
'file_categories_description' => 'إدارة فئات الملفات.',
'new_category' => 'فئة جديدة',
'category_name' => 'اسم الفئة',
'category_created' => 'تم إنشاء الفئة.',
'category_updated' => 'تم تحديث الفئة.',
'category_deleted' => 'تم حذف الفئة.',
'category_not_empty' => 'لا يمكن حذف الفئة لأنها تحتوي على ملفات.',
'confirm_delete_category' => 'هل تريد حذف هذه الفئة حقاً؟',
'event_files' => 'الملفات',
'attach_from_library' => 'إرفاق من المكتبة',
'upload_new_file' => 'رفع ملف جديد',
'attached_files' => 'الملفات المرفقة',
'detach_file' => 'إزالة',
'no_attached_files' => 'لا توجد ملفات مرفقة.',
'profile_picture' => 'صورة الملف الشخصي',
'upload_picture' => 'رفع صورة',
'remove_picture' => 'إزالة الصورة',
'picture_uploaded' => 'تم تحديث صورة الملف الشخصي.',
'picture_removed' => 'تم إزالة صورة الملف الشخصي.',
'max_picture_size' => 'حد أقصى 2 ميجابايت (JPG, PNG, GIF, WEBP)',
'html_anchor_hint' => 'تلميح: أضف علامات ربط بسمة id، مثال &lt;h3 id="cookies"&gt;',
// Soft-Delete
'danger_zone' => 'منطقة الخطر',
'delete_user' => 'حذف المستخدم',
'delete_user_hint' => 'سيتم تعطيل المستخدم ويمكن استعادته خلال 7 أيام. ستبقى البيانات التاريخية (التعليقات، المشاركات) محفوظة.',
'delete_player' => 'حذف اللاعب',
'delete_player_hint' => 'سيتم إزالة اللاعب ويمكن استعادته خلال 7 أيام. ستبقى البيانات التاريخية (المشاركات، الأحداث) محفوظة.',
'user_status_label' => 'حالة المستخدم',
'player_status_label' => 'حالة اللاعب',
'deactivate_user_hint' => 'لن يتمكن المستخدم من تسجيل الدخول بعد الآن.',
'activate_user_hint' => 'سيتمكن المستخدم من تسجيل الدخول مرة أخرى.',
'deactivate_player_hint' => 'لن يظهر اللاعب في قوائم المواعيد.',
'activate_player_hint' => 'سيظهر اللاعب في قوائم المواعيد مرة أخرى.',
'player_toggled' => 'اللاعب :status.',
'log_player_toggled' => 'اللاعب :name :status',
'confirm_delete_user' => 'هل أنت متأكد أنك تريد حذف هذا المستخدم؟ يمكن استعادته خلال 7 أيام.',
'confirm_delete_player' => 'هل أنت متأكد أنك تريد حذف هذا اللاعب؟ يمكن استعادته خلال 7 أيام.',
'user_deleted' => 'تم حذف المستخدم.',
'user_restored' => 'تم استعادة المستخدم.',
'player_deleted' => 'تم حذف اللاعب.',
'player_restored' => 'تم استعادة اللاعب.',
'cannot_delete_self' => 'لا يمكنك حذف نفسك.',
'cannot_delete_main_admin' => 'لا يمكن حذف المسؤول الرئيسي.',
'restore_expired' => 'انتهت فترة الاستعادة.',
'trash' => 'سلة المحذوفات',
'restore' => 'استعادة',
'delete' => 'حذف',
'deleted_at' => 'تاريخ الحذف',
// Activity Log
'activity_log_title' => 'سجل النشاط',
'nav_activity_log' => 'سجل النشاط',
'log_category' => 'الفئة',
'log_all_categories' => 'جميع الفئات',
'log_cat_auth' => 'المصادقة',
'log_cat_users' => 'المستخدمون',
'log_cat_players' => 'اللاعبون',
'log_cat_events' => 'المواعيد',
'log_cat_files' => 'الملفات',
'log_cat_settings' => 'الإعدادات',
'log_cat_dsgvo' => 'حماية البيانات',
'log_from' => 'من',
'log_to' => 'إلى',
'log_filter' => 'تصفية',
'log_reset' => 'إعادة تعيين',
'log_time' => 'الوقت',
'log_user' => 'المستخدم',
'log_action' => 'الإجراء',
'log_description' => 'الوصف',
'log_ip' => 'عنوان IP',
'log_system' => 'النظام',
'log_empty' => 'لا توجد سجلات.',
'log_details' => 'تفاصيل',
'log_field' => 'الحقل',
'log_old_value' => 'قبل',
'log_new_value' => 'بعد',
// Log descriptions
'log_login' => ':name قام بتسجيل الدخول',
'log_logout' => ':name قام بتسجيل الخروج',
'log_login_failed' => 'محاولة تسجيل دخول فاشلة لـ :email',
'log_registered' => ':name قام بالتسجيل',
'log_user_updated' => 'تم تحديث المستخدم :name',
'log_user_toggled' => 'المستخدم :name: تم تغيير الحالة إلى :status',
'log_role_changed' => 'تم تغيير دور :name إلى :role',
'log_password_reset' => 'تم إعادة تعيين كلمة مرور :name',
'log_user_deleted' => 'تم حذف المستخدم :name',
'log_user_restored' => 'تم استعادة المستخدم :name',
'log_player_created' => 'تم إنشاء اللاعب :name',
'log_player_updated' => 'تم تحديث اللاعب :name',
'log_player_deleted' => 'تم حذف اللاعب :name',
'log_player_restored' => 'تم استعادة اللاعب :name',
'log_parent_assigned' => 'تم تعيين :parent كوالد لـ :player',
'log_parent_removed' => 'تم إزالة :parent كوالد لـ :player',
'log_event_created' => 'تم إنشاء الموعد ":title"',
'log_event_updated' => 'تم تحديث الموعد ":title"',
'log_event_deleted' => 'تم حذف الموعد ":title"',
'log_participant_changed' => 'تم تغيير حالة المشاركة لـ ":event" إلى :status',
'log_catering_changed' => 'تم تغيير حالة التموين لـ ":event" إلى :status',
'log_timekeeper_changed' => 'تم تغيير حالة الميقاتي لـ ":event" إلى :status',
'log_comment_created' => 'تم إضافة تعليق إلى ":event"',
'log_comment_deleted' => 'تم حذف تعليق من ":event"',
'log_file_uploaded' => 'تم رفع الملف ":name"',
'log_file_deleted' => 'تم حذف الملف ":name"',
'log_settings_updated' => 'تم تحديث الإعدادات',
'log_invitation_created' => 'تم إنشاء دعوة لـ :email',
// الإحصائيات
'nav_statistics' => 'الإحصائيات',
'statistics_title' => 'إحصائيات المباريات',
'total_games' => 'إجمالي المباريات',
'wins' => 'انتصارات',
'losses' => 'خسارات',
'draws' => 'تعادلات',
'win_rate' => 'نسبة الفوز',
'chart_win_loss' => 'انتصارات / خسارات',
'chart_player_participation' => 'مشاركة اللاعبين',
'chart_parent_involvement' => 'مشاركة الأهالي',
'no_games_yet' => 'لا توجد مباريات بعد.',
'filter_from' => 'من',
'filter_to' => 'إلى',
'filter_apply' => 'تصفية',
'filter_reset' => 'إعادة تعيين',
'all_teams' => 'جميع الفرق',
'not_applicable' => 'غ/م',
'min_users' => 'الحد الأدنى للمستخدمين',
'home_short' => 'د',
'away_short' => 'خ',
'player_ranking_title' => 'مشاركة اللاعبين',
'player_ranking_desc' => 'نسبة مشاركة اللاعبين في :count مباراة (محلية وخارجية).',
'games_played' => 'لعب',
'games_assigned' => 'مُعيَّن',
'participation_rate' => 'النسبة',
'parent_ranking_title' => 'مشاركة أولياء الأمور',
'parent_ranking_desc' => 'التموين (:catering فعالية) والتحكيم الزمني (:timekeeper فعالية) — جميع الفعاليات المنشورة.',
'total_contributions' => 'الإجمالي',
'statistics_enabled_label' => 'تفعيل صفحة الإحصائيات',
'statistics_enabled_hint' => 'عند التعطيل، تكون صفحة الإحصائيات مرئية فقط للمشرف.',
// Slogan & Favicon
'slogan_label' => 'الشعار',
'slogan_hint' => 'يُعرض على صفحة تسجيل الدخول وفي التذييل.',
'favicon_label' => 'أيقونة الموقع',
'favicon_hint' => 'ICO, PNG, SVG, JPG (الحد الأقصى 512 كيلوبايت)',
'favicon_current' => 'الأيقونة الحالية',
'favicon_remove' => 'إزالة الأيقونة',
'favicon_uploaded' => 'تم تحديث الأيقونة.',
'favicon_removed' => 'تم إزالة الأيقونة.',
// Undo / Revert
'log_revert' => 'تراجع',
'log_revert_confirm' => 'هل تريد حقاً التراجع عن هذا الإجراء؟',
'log_revert_success' => 'تم التراجع عن الإجراء بنجاح.',
'log_revert_not_possible' => 'لا يمكن التراجع عن هذا الإجراء.',
'log_reverted' => 'تم التراجع: ":desc"',
'event_restored' => 'تمت استعادة الحدث.',
'log_event_restored' => 'تمت استعادة الحدث ":title"',
// الرؤية
'settings_tab_visibility' => 'الرؤية',
'visibility_description' => 'تحكم في الوظائف المرئية لكل دور. يرى المشرفون كل شيء دائماً.',
'visibility_feature_statistics' => 'صفحة الإحصائيات',
'visibility_feature_catering_history' => 'سجل التموين/التوقيت',
// إنشاء القوائم
'nav_list_generator' => 'إنشاء القوائم',
'list_generator_title' => 'إنشاء قائمة',
'list_title' => 'الموضوع',
'list_subtitle' => 'العنوان الفرعي (اختياري)',
'list_notes' => 'ملاحظات / وصف',
'list_source' => 'مصدر الصفوف',
'list_source_players' => 'اللاعبون',
'list_source_parents' => 'أولياء الأمور',
'list_source_freetext' => 'نص حر',
'list_freetext_hint' => 'سطر واحد لكل إدخال',
'list_columns' => 'الأعمدة',
'list_custom_columns' => 'أعمدة إضافية',
'list_add_column' => 'إضافة عمود',
'list_column_name' => 'اسم العمود',
'list_generate' => 'إنشاء القائمة',
'list_result_title' => 'تم إنشاء القائمة',
'list_print' => 'طباعة / حفظ كـ PDF',
'list_new' => 'إنشاء قائمة جديدة',
'list_to_library' => 'إلى مكتبة الملفات',
'list_generated_at' => 'تم الإنشاء في',
'list_all_teams' => 'جميع الفرق',
'list_saved_info' => 'تم حفظ الملف ":name" تلقائياً في المكتبة تحت "عام".',
'list_download_pdf' => 'تحميل PDF',
'list_entries_count' => 'إدخالات',
'log_list_generated' => 'تم إنشاء القائمة ":title"',
'no_entries' => 'لا توجد إدخالات.',
// حماية البيانات GDPR
'dsgvo_title' => 'إقرار الموافقة على حماية البيانات',
'dsgvo_short' => 'GDPR',
'dsgvo_consent_label' => 'تم تأكيد إقرار الموافقة',
'dsgvo_view_document' => 'عرض المستند',
'dsgvo_confirm' => 'تأكيد',
'dsgvo_revoke' => 'إلغاء',
'dsgvo_toggled' => 'تم تحديث حالة حماية البيانات.',
'dsgvo_no_file' => 'لم يتم تحميل أي مستند بعد.',
'dsgvo_no_document' => 'لم يقم المستخدم بتحميل إقرار موافقة بعد.',
'dsgvo_not_confirmed' => 'لم يتم التأكيد بعد. يرجى مراجعة المستند ثم التأكيد.',
'dsgvo_confirmed_info' => 'تم التأكيد بواسطة :name في :date',
'dsgvo_confirmed_tooltip' => 'تم تأكيد موافقة حماية البيانات',
'dsgvo_pending_tooltip' => 'تم تحميل المستند، التأكيد معلق',
'dsgvo_missing_tooltip' => 'لم يتم تحميل مستند',
'dsgvo_events_title' => 'أحداث حماية البيانات (آخر 10)',
'dsgvo_action_dsgvo_consent_uploaded' => 'تم التحميل',
'dsgvo_action_dsgvo_consent_confirmed' => 'تم التأكيد',
'dsgvo_action_dsgvo_consent_revoked' => 'تم الإلغاء',
'dsgvo_action_dsgvo_consent_removed' => 'تمت الإزالة',
'dsgvo_action_account_self_deleted' => 'تم حذف الحساب',
'dsgvo_action_child_auto_deactivated' => 'تم تعطيل الطفل',
'log_dsgvo_consent_uploaded' => ':name قام بتحميل إقرار موافقة',
'log_dsgvo_confirmed' => 'تم تأكيد إقرار موافقة :name',
'log_dsgvo_revoked' => 'تم إلغاء تأكيد إقرار موافقة :name',
'log_dsgvo_consent_removed' => ':name قام بإزالة إقرار الموافقة',
'log_account_self_deleted' => ':name قام بحذف حسابه',
'log_child_auto_deactivated' => 'تم تعطيل اللاعب :child تلقائيًا (الوالد الوحيد :parent حذف الحساب)',
// حماية البيانات - ويدجت الانتظار
'dsgvo_pending_title' => 'حماية البيانات — التأكيد معلق',
'dsgvo_pending_count' => ':count إقرار(ات) معلقة',
'dsgvo_consent_document' => 'إقرار الموافقة على حماية البيانات',
'dsgvo_reject' => 'رفض',
'dsgvo_reject_confirm' => 'هل أنت متأكد أنك تريد رفض إقرار الموافقة هذا؟ سيتم حذف المستند وسيحتاج المستخدم إلى تحميله مرة أخرى.',
'dsgvo_rejected' => 'تم رفض إقرار الموافقة.',
'log_dsgvo_rejected' => 'تم رفض إقرار موافقة :name',
'dsgvo_action_dsgvo_consent_rejected' => 'مرفوض',
'dsgvo_preview_not_available' => 'المعاينة غير متاحة لهذا النوع من الملفات.',
// Factory Reset
'factory_reset_title' => 'إعادة تعيين كاملة',
'factory_reset_description' => 'يعيد تعيين التطبيق بالكامل إلى حالته الأولية. بعد إعادة التعيين، سيبدأ معالج التثبيت من جديد.',
'factory_reset_deletes' => 'سيتم حذف ما يلي نهائياً',
'factory_reset_item_users' => 'جميع المستخدمين (بما في ذلك المدير)',
'factory_reset_item_data' => 'جميع الفرق واللاعبين والمواعيد والتعليقات',
'factory_reset_item_settings' => 'جميع الإعدادات وفئات الملفات',
'factory_reset_item_files' => 'جميع الملفات المرفوعة وصور الملفات الشخصية',
'factory_reset_warning' => 'لا يمكن التراجع عن هذا الإجراء! سيتم إعادة تعيين التطبيق بالكامل وتشغيل معالج التثبيت.',
'factory_reset_confirm' => 'تحذير: سيتم إعادة تعيين التطبيق بالكامل بشكل لا رجعة فيه وحذف جميع البيانات. سيبدأ معالج التثبيت من جديد. هل أنت متأكد؟',
'factory_reset_button' => 'إعادة تعيين التطبيق بالكامل',
// الترخيص والدعم
'settings_tab_license' => 'الترخيص والدعم',
'license_title' => 'مفتاح الترخيص',
'license_description' => 'أدخل مفتاح الترخيص للحصول على الدعم والتحديثات.',
'license_key_label' => 'مفتاح الترخيص',
'license_invalid' => 'مفتاح الترخيص المدخل غير صالح.',
'registration_status' => 'حالة التسجيل',
'registration_active' => 'مسجّل',
'registration_inactive' => 'غير مسجّل',
'register_now' => 'سجّل الآن',
'registration_success' => 'تم تسجيل التثبيت بنجاح.',
'registration_failed' => 'فشل التسجيل. يرجى المحاولة مرة أخرى لاحقاً.',
'version_info' => 'معلومات النظام',
'update_available' => 'تحديث متاح: الإصدار :version',
'update_details' => 'عرض التفاصيل',
'download_update' => 'تحميل التحديث',
'installation_id_label' => 'معرّف التثبيت',
'nav_support' => 'الدعم',
'support_title' => 'تذاكر الدعم',
'support_not_registered' => 'التثبيت غير مسجّل',
'support_register_hint' => 'يجب تسجيل التثبيت لاستخدام الدعم. يتم إرسال البيانات التقنية فقط (اسم التطبيق، الرابط، إصدار PHP).',
'support_new_ticket' => 'إنشاء تذكرة جديدة',
'support_subject' => 'الموضوع',
'support_category' => 'الفئة',
'support_category_bug' => 'تقرير خطأ',
'support_category_feature' => 'طلب ميزة',
'support_category_question' => 'سؤال',
'support_category_other' => 'أخرى',
'support_message' => 'الرسالة',
'support_submit' => 'إرسال التذكرة',
'support_reply' => 'الرد',
'support_send_reply' => 'إرسال الرد',
'support_reply_placeholder' => 'اكتب ردك...',
'support_ticket_created' => 'تم إنشاء التذكرة بنجاح.',
'support_reply_sent' => 'تم إرسال الرد.',
'support_submit_failed' => 'تعذر إنشاء التذكرة. يرجى المحاولة مرة أخرى لاحقاً.',
'support_reply_failed' => 'تعذر إرسال الرد. يرجى المحاولة مرة أخرى لاحقاً.',
'support_ticket_not_found' => 'التذكرة غير موجودة.',
'support_no_tickets' => 'لا توجد تذاكر حتى الآن.',
'support_no_messages' => 'لا توجد رسائل حتى الآن.',
'support_ticket_id' => 'رقم التذكرة',
'support_status' => 'الحالة',
'support_status_open' => 'مفتوحة',
'support_status_in_progress' => 'قيد المعالجة',
'support_status_waiting' => 'في الانتظار',
'support_status_closed' => 'مغلقة',
'support_created_at' => 'تاريخ الإنشاء',
'support_last_reply' => 'آخر رد',
'support_back_to_list' => 'العودة إلى القائمة',
'support_system_info_note' => 'يتم إرسال معلومات النظام تلقائياً.',
'support_sender_support' => 'الدعم',
'support_sender_you' => 'أنت',
'support_ticket_closed' => 'هذه التذكرة مغلقة.',
'installer_register_label' => 'تسجيل التثبيت',
'installer_register_hint' => 'يتيح إشعارات التحديث والدعم. يتم إرسال البيانات التقنية فقط (اسم التطبيق، الرابط، إصدار PHP، إصدار التطبيق).',
'installer_license_label' => 'مفتاح الترخيص (اختياري)',
'installer_license_hint' => 'يمكن إدخاله لاحقاً في الإعدادات.',
// إعادة تعيين كلمة المرور (المسؤول + الخدمة الذاتية)
'settings_tab_maintenance' => 'الصيانة',
'factory_reset_password_label' => 'كلمة المرور الخاصة بك للتأكيد',
'factory_reset_confirmation_label' => 'تأكيد الأمان',
'factory_reset_confirmation_hint' => 'اكتب RESET-BESTÄTIGT لتأكيد العملية.',
'password_reset_link_sent' => 'تم إرسال رابط إعادة تعيين كلمة المرور عبر البريد الإلكتروني.',
'password_reset_email_label' => 'قالب بريد إعادة تعيين كلمة المرور',
'password_reset_email_hint' => 'المتغيرات: {name} = اسم المستخدم، {link} = رابط إعادة التعيين، {app_name} = اسم التطبيق',
'log_password_reset_requested' => 'تم طلب إعادة تعيين كلمة المرور',
'log_password_changed_self' => ':name غيّر كلمة المرور',
'log_dsgvo_viewed' => 'تم عرض مستند GDPR للمستخدم :name',
// محرر النصوص القانونية متعدد اللغات
'legal_language_label' => 'اللغة',
'legal_impressum_label' => 'بيان قانوني',
'legal_datenschutz_label' => 'سياسة الخصوصية',
'legal_password_reset_email_label' => 'بريد إعادة تعيين كلمة المرور',
// تبويب البريد الإلكتروني
'settings_tab_mail' => 'البريد الإلكتروني',
'mail_config_title' => 'إعدادات البريد الإلكتروني',
'mail_config_hint' => 'إعدادات SMTP لإرسال رسائل البريد الإلكتروني (مثل إعادة تعيين كلمة المرور والإشعارات).',
'mail_mailer_label' => 'طريقة الإرسال',
'mail_log_mode' => 'بدون إرسال (سجل)',
'mail_host_label' => 'مضيف SMTP',
'mail_port_label' => 'المنفذ',
'mail_username_label' => 'اسم المستخدم',
'mail_password_label' => 'كلمة المرور',
'mail_from_address_label' => 'عنوان المرسل',
'mail_from_name_label' => 'اسم المرسل',
'mail_encryption_label' => 'التشفير',
'mail_encryption_none' => 'بدون',
'mail_save' => 'حفظ إعدادات البريد',
'mail_saved' => 'تم حفظ إعدادات البريد الإلكتروني.',
'mail_test_button' => 'اختبار الاتصال',
'mail_testing' => 'جاري اختبار الاتصال...',
'mail_test_success' => 'اتصال SMTP ناجح!',
];

7
lang/ar/auth.php Executable file
View File

@@ -0,0 +1,7 @@
<?php
return [
'failed' => 'بيانات الاعتماد هذه غير متطابقة مع سجلاتنا.',
'password' => 'كلمة المرور المدخلة غير صحيحة.',
'throttle' => 'محاولات تسجيل دخول كثيرة جداً. يرجى المحاولة مرة أخرى بعد :seconds ثانية.',
];

34
lang/ar/auth_ui.php Executable file
View File

@@ -0,0 +1,34 @@
<?php
return [
'login_title' => 'تسجيل الدخول',
'email_label' => 'البريد الإلكتروني',
'password_label' => 'كلمة المرور',
'remember_me' => 'تذكرني',
'login_button' => 'تسجيل الدخول',
'register_title' => 'إنشاء حساب',
'name_label' => 'الاسم',
'children_assigned' => 'سيتم ربط حسابك بالأطفال التالية أسماؤهم:',
'password_min' => '(٨ أحرف على الأقل)',
'password_confirm_label' => 'تأكيد كلمة المرور',
'create_account' => 'إنشاء الحساب',
'already_registered' => 'لديك حساب بالفعل؟',
'go_to_login' => 'تسجيل الدخول',
'email_fixed_by_invitation' => 'عنوان البريد الإلكتروني محدد بواسطة الدعوة.',
'invalid_invitation' => 'رابط الدعوة هذا غير صالح أو منتهي الصلاحية.',
'welcome' => 'مرحباً! تم إنشاء حسابك بنجاح.',
'forgot_password_link' => 'نسيت كلمة المرور؟',
'forgot_password_title' => 'إعادة تعيين كلمة المرور',
'forgot_password_description' => 'أدخل عنوان بريدك الإلكتروني وسنرسل لك رابطاً لإعادة تعيين كلمة المرور.',
'send_reset_link' => 'إرسال الرابط',
'back_to_login' => 'العودة لتسجيل الدخول',
'reset_password_title' => 'تعيين كلمة مرور جديدة',
'reset_password_button' => 'إعادة تعيين كلمة المرور',
'new_password_label' => 'كلمة المرور الجديدة',
'confirm_password_label' => 'تأكيد كلمة المرور',
'login_failed' => 'بيانات الاعتماد غير صالحة.',
'email_must_match_invitation' => 'يجب أن يتطابق عنوان البريد الإلكتروني مع الدعوة: :email',
'cookie_notice' => 'يستخدم هذا الموقع فقط ملف تعريف ارتباط جلسة ضروري تقنياً. لا يوجد تتبع.',
'cookie_notice_link' => 'اقرأ المزيد',
'account_deactivated' => 'تم تعطيل حسابك. يرجى التواصل مع المسؤول.',
];

64
lang/ar/events.php Executable file
View File

@@ -0,0 +1,64 @@
<?php
return [
'title' => 'المواعيد',
'no_events' => 'لم يتم العثور على مواعيد.',
'no_upcoming' => 'لا توجد مواعيد قادمة.',
'upcoming_title' => 'المواعيد القادمة',
'cancelled_label' => 'ملغى',
'draft_label' => 'مسودة',
'cancelled_banner' => 'تم إلغاء هذا الموعد.',
'draft_banner' => 'مسودة — مرئي للمسؤولين فقط.',
'back_to_list' => 'العودة إلى قائمة المواعيد',
'description' => 'الوصف',
'plan_route' => 'تخطيط المسار',
'start_navigation' => 'بدء الملاحة',
'participants' => 'المشاركون',
'confirmations' => 'تأكيدات الحضور',
'rejections' => 'الاعتذارات',
'open_responses' => 'مفتوح',
'participation_updated' => 'تم تحديث المشاركة.',
'catering' => 'التموين / الطعام',
'bring_something' => 'سأحضر شيئاً',
'bring_nothing' => 'لن أحضر شيئاً',
'catering_note_placeholder' => 'مثلاً: سأحضر كعكة',
'catering_updated' => 'تم تحديث حالة التموين.',
'no_catering_yet' => 'لا توجد تأكيدات للتموين بعد.',
'timekeeper' => 'ميقاتي',
'timekeeper_yes' => 'نعم، أستطيع',
'timekeeper_no' => 'لا',
'catering_short' => 'تموين',
'timekeeper_short' => 'ميقاتي',
'no_timekeeper_yet' => 'لم يتم تعيين ميقاتي بعد.',
'timekeeper_updated' => 'تم تحديث حالة الميقاتي.',
'comments' => 'التعليقات',
'comment_placeholder' => 'اكتب تعليقاً...',
'no_comments' => 'لا توجد تعليقات بعد.',
'comment_deleted' => '[محذوف]',
'confirm_delete_comment' => 'حذف التعليق؟',
'comment_added' => 'تمت إضافة التعليق.',
'comment_removed' => 'تم حذف التعليق.',
'hello_user' => 'مرحباً، :name!',
'upcoming_events' => 'المواعيد القادمة',
'calendar' => 'التقويم',
'today' => 'اليوم',
'month_view' => 'شهر',
'year_view' => 'سنة',
// الملفات
'files' => 'الملفات',
'download' => 'تحميل',
'no_files' => 'لا توجد ملفات مرفقة.',
// الخصم والنتيجة
'opponent' => 'الخصم',
'score' => 'النتيجة',
'score_home' => 'الفريق المضيف',
'score_away' => 'الفريق الضيف',
'vs' => 'ضد',
// Staff visibility
'signed_up' => 'سجّل',
'withdrawn' => 'انسحب',
'deleted_label' => 'محذوف',
];

6
lang/ar/pagination.php Executable file
View File

@@ -0,0 +1,6 @@
<?php
return [
'previous' => '&laquo; السابق',
'next' => 'التالي &raquo;',
];

14
lang/ar/passwords.php Executable file
View File

@@ -0,0 +1,14 @@
<?php
return [
'reset' => 'تم إعادة تعيين كلمة المرور.',
'sent' => 'تم إرسال رابط إعادة تعيين كلمة المرور إلى بريدك الإلكتروني.',
'throttled' => 'يرجى الانتظار قبل المحاولة مرة أخرى.',
'token' => 'رمز إعادة تعيين كلمة المرور هذا غير صالح.',
'user' => 'لم يتم العثور على مستخدم بهذا البريد الإلكتروني.',
'reset_subject' => 'إعادة تعيين كلمة المرور — :app',
'reset_greeting' => 'مرحباً :name،',
'reset_line1' => 'لقد تلقيت هذا البريد الإلكتروني لأنه تم طلب إعادة تعيين كلمة المرور لحسابك.',
'reset_line2' => 'ستنتهي صلاحية رابط إعادة التعيين بعد :count دقيقة.',
'reset_line3' => 'إذا لم تطلب إعادة تعيين كلمة المرور، يمكنك تجاهل هذا البريد.',
];

44
lang/ar/profile.php Executable file
View File

@@ -0,0 +1,44 @@
<?php
return [
'title' => 'ملفي الشخصي',
'name_label' => 'الاسم',
'email_label' => 'البريد الإلكتروني',
'email_readonly' => 'لا يمكن تغيير عنوان البريد الإلكتروني.',
'phone_label' => 'الهاتف (المحمول)',
'role_label' => 'الدور',
'language_label' => 'اللغة',
'my_children' => 'أطفالي',
'updated' => 'تم تحديث الملف الشخصي.',
// صورة الملف الشخصي
'profile_picture' => 'صورة الملف الشخصي',
'upload_picture' => 'رفع صورة',
'remove_picture' => 'إزالة الصورة',
'max_picture_size' => 'حد أقصى 2 ميجابايت (JPG, PNG, GIF, WEBP)',
// موافقة GDPR
'dsgvo_title' => 'إقرار الموافقة على حماية البيانات',
'dsgvo_description' => 'قم بتحميل إقرار الموافقة الموقّع كصورة أو ملف PDF هنا. إقرار واحد يسري لكلا الوالدين معًا.',
'dsgvo_upload' => 'تحميل الإقرار',
'dsgvo_replace' => 'استبدال',
'dsgvo_remove' => 'إزالة الإقرار',
'dsgvo_file_hint' => 'PDF أو صورة (بحد أقصى 10 ميجابايت)',
'dsgvo_uploaded' => 'تم تحميل إقرار الموافقة.',
'dsgvo_removed' => 'تم إزالة إقرار الموافقة.',
'dsgvo_view' => 'عرض',
'dsgvo_confirmed' => 'مؤكّد',
'dsgvo_pending' => 'في انتظار التأكيد من المسؤول/المدرب',
'dsgvo_confirmed_by' => 'تم التأكيد بواسطة :name في :date',
'dsgvo_confirm_remove' => 'هل تريد حقًا إزالة إقرار الموافقة؟ سيتم إعادة تعيين أي تأكيد موجود أيضًا.',
// حذف الحساب
'danger_zone' => 'منطقة الخطر',
'delete_account' => 'حذف الحساب',
'delete_account_hint' => 'سيتم تعطيل ملفك الشخصي ويمكن للمسؤول استعادته خلال 7 أيام. البيانات التاريخية (التعليقات، المشاركات) ستبقى محفوظة.',
'delete_warning_children' => 'تحذير: أنت الوالد الوحيد للأطفال التالين. سيتم تعطيلهم أيضًا:',
'delete_confirm' => 'هل تريد حقًا حذف حسابك؟ يمكن التراجع عن هذا فقط بواسطة المسؤول.',
'account_deleted' => 'تم حذف حسابك.',
'cannot_delete_admin' => 'لا يمكن حذف حساب المسؤول.',
'cannot_delete_staff' => 'لا يمكن للمدربين والمسؤولين حذف حسابهم عبر صفحة الملف الشخصي.',
];

109
lang/ar/ui.php Executable file
View File

@@ -0,0 +1,109 @@
<?php
return [
'dashboard' => 'لوحة التحكم',
'events' => 'المواعيد',
'admin' => 'الإدارة',
'profile' => 'الملف الشخصي',
'logout' => 'تسجيل الخروج',
'back_to_app' => 'العودة إلى التطبيق',
'login' => 'تسجيل الدخول',
'save' => 'حفظ',
'cancel' => 'إلغاء',
'edit' => 'تعديل',
'delete' => 'حذف',
'create' => 'إنشاء',
'filter' => 'تصفية',
'send' => 'إرسال',
'back' => 'رجوع',
'yes' => 'نعم',
'no' => 'لا',
'open' => 'مفتوح',
'all_teams' => 'جميع الفرق',
'all_types' => 'جميع الأنواع',
'upcoming' => 'القادمة',
'past' => 'السابقة',
'period' => 'الفترة',
'team' => 'الفريق',
'type' => 'النوع',
'name' => 'الاسم',
'email' => 'البريد الإلكتروني',
'password' => 'كلمة المرور',
'role' => 'الدور',
'language' => 'اللغة',
'impressum' => 'بيانات الموقع',
'privacy' => 'سياسة الخصوصية',
'no_entries' => 'لا توجد إدخالات.',
'clock' => '',
'date_format' => 'D، d/m/Y، H:i',
'date_format_long' => 'l، d. F Y، H:i',
'date_format_short' => 'd/m/Y H:i',
'date_format_date' => 'd/m/Y',
'footer_impressum' => 'بيانات الموقع',
'footer_privacy' => 'سياسة الخصوصية',
'pwa_install_title' => 'تثبيت التطبيق',
'pwa_install_text' => 'أضف التطبيق إلى شاشتك الرئيسية للوصول السريع.',
'pwa_install_btn' => 'تثبيت',
'pwa_ios_steps' => 'اضغط على <strong>⋯</strong> (القائمة)، ثم <strong>⬆</strong> (مشاركة) واختر «إضافة إلى الشاشة الرئيسية».',
'error_403_title' => 'الوصول مرفوض',
'error_403_text' => 'ليس لديك صلاحية للوصول إلى هذه الصفحة.',
'error_404_title' => 'الصفحة غير موجودة',
'error_404_text' => 'لم يتم العثور على الصفحة المطلوبة.',
'error_500_title' => 'خطأ في الخادم',
'error_500_text' => 'حدث خطأ داخلي. يرجى المحاولة مرة أخرى لاحقاً.',
'back_to_dashboard' => 'العودة إلى لوحة التحكم',
'enums' => [
'event_type' => [
'home_game' => 'مباراة على أرضنا',
'away_game' => 'مباراة خارج الأرض',
'training' => 'تدريب',
'tournament' => 'بطولة',
'meeting' => 'اجتماع',
'other' => 'أخرى',
],
'event_status' => [
'published' => 'منشور',
'cancelled' => 'ملغى',
'draft' => 'مسودة',
],
'participant_status' => [
'yes' => 'مؤكد',
'no' => 'معتذر',
'unknown' => 'مفتوح',
],
'catering_status' => [
'yes' => 'نعم',
'no' => 'لا',
'unknown' => 'مفتوح',
],
'user_role' => [
'admin' => 'مدير',
'coach' => 'مدرب',
'parent_rep' => 'ممثل أولياء الأمور',
'user' => 'ولي أمر',
],
],
'locales' => [
'de' => 'Deutsch',
'en' => 'English',
'pl' => 'Polski',
'ru' => 'Русский',
'ar' => 'العربية',
'tr' => 'Türkçe',
],
// شعار حماية البيانات
'dsgvo_banner_title' => 'مطلوب إقرار الموافقة على حماية البيانات (DSGVO)',
'dsgvo_banner_text' => 'يجب تقديم إقرار موافقة موقّع على حماية البيانات لاستخدام هذا التطبيق. يرجى تحميل الإقرار كصورة أو ملف PDF في ملفك الشخصي. لا يمكن استخدام التطبيق بالكامل إلا بعد التحميل.',
'dsgvo_banner_action' => 'تحميل في الملف الشخصي الآن',
'dsgvo_banner_pending_title' => 'إقرار الموافقة قيد المراجعة',
'dsgvo_banner_pending_text' => 'تم تقديم إقرار الموافقة على حماية البيانات الخاص بك وهو قيد المراجعة. حتى يتم التأكيد من قبل المسؤول، يعمل التطبيق في وضع القراءة فقط — المشاركة والتموين والتوقيت والتعليقات مقفلة.',
'dsgvo_restricted' => 'لم يتم تأكيد إقرار الموافقة على حماية البيانات الخاص بك بعد. يرجى الانتظار حتى الموافقة من قبل المسؤول.',
'dsgvo_restricted_hint' => 'إقرار حماية البيانات غير مؤكد — الإجراءات مقفلة.',
// الملفات
'files' => 'الملفات',
'download' => 'تحميل',
'all' => 'الكل',
'close' => 'إغلاق',
];

130
lang/ar/validation.php Executable file
View File

@@ -0,0 +1,130 @@
<?php
return [
'accepted' => 'يجب قبول :attribute.',
'active_url' => ':attribute ليس عنوان URL صالحاً.',
'after' => ':attribute يجب أن يكون تاريخاً بعد :date.',
'after_or_equal' => ':attribute يجب أن يكون تاريخاً بعد أو يساوي :date.',
'alpha' => ':attribute يجب أن يحتوي على أحرف فقط.',
'alpha_dash' => ':attribute يجب أن يحتوي على أحرف وأرقام وشرطات وشرطات سفلية فقط.',
'alpha_num' => ':attribute يجب أن يحتوي على أحرف وأرقام فقط.',
'array' => ':attribute يجب أن يكون مصفوفة.',
'before' => ':attribute يجب أن يكون تاريخاً قبل :date.',
'before_or_equal' => ':attribute يجب أن يكون تاريخاً قبل أو يساوي :date.',
'between' => [
'numeric' => ':attribute يجب أن يكون بين :min و :max.',
'file' => ':attribute يجب أن يكون بين :min و :max كيلوبايت.',
'string' => ':attribute يجب أن يكون بين :min و :max حرفاً.',
'array' => ':attribute يجب أن يحتوي على بين :min و :max عنصراً.',
],
'boolean' => ':attribute يجب أن يكون صحيحاً أو خاطئاً.',
'confirmed' => 'تأكيد :attribute غير متطابق.',
'date' => ':attribute ليس تاريخاً صالحاً.',
'date_equals' => ':attribute يجب أن يكون تاريخاً مساوياً لـ :date.',
'date_format' => ':attribute لا يتوافق مع الصيغة :format.',
'different' => ':attribute و :other يجب أن يكونا مختلفين.',
'digits' => ':attribute يجب أن يتكون من :digits رقماً.',
'digits_between' => ':attribute يجب أن يتكون من بين :min و :max رقماً.',
'email' => ':attribute يجب أن يكون عنوان بريد إلكتروني صالحاً.',
'exists' => 'القيمة المختارة لـ :attribute غير صالحة.',
'file' => ':attribute يجب أن يكون ملفاً.',
'filled' => ':attribute يجب أن يحتوي على قيمة.',
'gt' => [
'numeric' => ':attribute يجب أن يكون أكبر من :value.',
'file' => ':attribute يجب أن يكون أكبر من :value كيلوبايت.',
'string' => ':attribute يجب أن يحتوي على أكثر من :value حرفاً.',
'array' => ':attribute يجب أن يحتوي على أكثر من :value عنصراً.',
],
'gte' => [
'numeric' => ':attribute يجب أن يكون أكبر من أو يساوي :value.',
'file' => ':attribute يجب أن يكون أكبر من أو يساوي :value كيلوبايت.',
'string' => ':attribute يجب أن يحتوي على :value حرفاً على الأقل.',
'array' => ':attribute يجب أن يحتوي على :value عنصراً على الأقل.',
],
'image' => ':attribute يجب أن يكون صورة.',
'in' => 'القيمة المختارة لـ :attribute غير صالحة.',
'in_array' => ':attribute غير موجود في :other.',
'integer' => ':attribute يجب أن يكون عدداً صحيحاً.',
'ip' => ':attribute يجب أن يكون عنوان IP صالحاً.',
'json' => ':attribute يجب أن يكون نص JSON صالحاً.',
'lt' => [
'numeric' => ':attribute يجب أن يكون أقل من :value.',
'file' => ':attribute يجب أن يكون أقل من :value كيلوبايت.',
'string' => ':attribute يجب أن يحتوي على أقل من :value حرفاً.',
'array' => ':attribute يجب أن يحتوي على أقل من :value عنصراً.',
],
'lte' => [
'numeric' => ':attribute يجب أن يكون أقل من أو يساوي :value.',
'file' => ':attribute يجب أن يكون أقل من أو يساوي :value كيلوبايت.',
'string' => ':attribute يجب ألا يتجاوز :value حرفاً.',
'array' => ':attribute يجب ألا يتجاوز :value عنصراً.',
],
'max' => [
'numeric' => ':attribute يجب ألا يكون أكبر من :max.',
'file' => ':attribute يجب ألا يكون أكبر من :max كيلوبايت.',
'string' => ':attribute يجب ألا يتجاوز :max حرفاً.',
'array' => ':attribute يجب ألا يتجاوز :max عنصراً.',
],
'min' => [
'numeric' => ':attribute يجب أن يكون :min على الأقل.',
'file' => ':attribute يجب أن يكون :min كيلوبايت على الأقل.',
'string' => ':attribute يجب أن يحتوي على :min حرفاً على الأقل.',
'array' => ':attribute يجب أن يحتوي على :min عنصراً على الأقل.',
],
'not_in' => 'القيمة المختارة لـ :attribute غير صالحة.',
'numeric' => ':attribute يجب أن يكون رقماً.',
'present' => ':attribute يجب أن يكون موجوداً.',
'regex' => 'صيغة :attribute غير صالحة.',
'required' => ':attribute مطلوب.',
'required_if' => ':attribute مطلوب عندما يكون :other هو :value.',
'required_unless' => ':attribute مطلوب ما لم يكن :other ضمن :values.',
'required_with' => ':attribute مطلوب عند وجود :values.',
'required_with_all' => ':attribute مطلوب عند وجود :values.',
'required_without' => ':attribute مطلوب عند عدم وجود :values.',
'required_without_all' => ':attribute مطلوب عند عدم وجود أي من :values.',
'same' => ':attribute و :other يجب أن يتطابقا.',
'size' => [
'numeric' => ':attribute يجب أن يكون :size.',
'file' => ':attribute يجب أن يكون :size كيلوبايت.',
'string' => ':attribute يجب أن يتكون من :size حرفاً.',
'array' => ':attribute يجب أن يحتوي على :size عنصراً.',
],
'string' => ':attribute يجب أن يكون نصاً.',
'timezone' => ':attribute يجب أن يكون منطقة زمنية صالحة.',
'unique' => ':attribute مستخدم بالفعل.',
'url' => ':attribute يجب أن يكون عنوان URL صالحاً.',
'password' => [
'letters' => ':attribute يجب أن يحتوي على حرف واحد على الأقل.',
'mixed' => ':attribute يجب أن يحتوي على حرف كبير وحرف صغير على الأقل.',
'numbers' => ':attribute يجب أن يحتوي على رقم واحد على الأقل.',
'symbols' => ':attribute يجب أن يحتوي على رمز واحد على الأقل.',
'uncompromised' => ':attribute ظهر في تسريب بيانات. يرجى اختيار كلمة مرور مختلفة.',
],
'attributes' => [
'name' => 'الاسم',
'email' => 'البريد الإلكتروني',
'password' => 'كلمة المرور',
'password_confirmation' => 'تأكيد كلمة المرور',
'title' => 'العنوان',
'body' => 'الرسالة',
'type' => 'النوع',
'status' => 'الحالة',
'team_id' => 'الفريق',
'start_date' => 'التاريخ',
'start_time' => 'الوقت',
'location_name' => 'الموقع',
'address_text' => 'العنوان',
'description_html' => 'الوصف',
'first_name' => 'الاسم الأول',
'last_name' => 'اسم العائلة',
'birth_year' => 'سنة الميلاد',
'jersey_number' => 'رقم القميص',
'note' => 'ملاحظة',
'season' => 'الموسم',
'player_id' => 'اللاعب',
'parent_id' => 'ولي الأمر',
'relationship_label' => 'صلة القرابة',
],
];