diff --git a/NorahUniversity/__pycache__/settings.cpython-312.pyc b/NorahUniversity/__pycache__/settings.cpython-312.pyc index 5d650c3..a700acd 100644 Binary files a/NorahUniversity/__pycache__/settings.cpython-312.pyc and b/NorahUniversity/__pycache__/settings.cpython-312.pyc differ diff --git a/NorahUniversity/__pycache__/urls.cpython-312.pyc b/NorahUniversity/__pycache__/urls.cpython-312.pyc index 0e668c6..29d9d50 100644 Binary files a/NorahUniversity/__pycache__/urls.cpython-312.pyc and b/NorahUniversity/__pycache__/urls.cpython-312.pyc differ diff --git a/NorahUniversity/settings.py b/NorahUniversity/settings.py index cecb890..a402e87 100644 --- a/NorahUniversity/settings.py +++ b/NorahUniversity/settings.py @@ -66,7 +66,7 @@ INSTALLED_APPS = [ SITE_ID = 1 -LOGIN_REDIRECT_URL = 'dashboard' +LOGIN_REDIRECT_URL = '/' ACCOUNT_LOGOUT_REDIRECT_URL = '/' @@ -155,27 +155,19 @@ DATABASES = { -# AUTH_PASSWORD_VALIDATORS = [ -# { -# 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', -# }, -# { -# 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', -# }, -# { -# 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', -# }, -# { -# 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', -# }, -# ] - -# settings.py - AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, ] @@ -183,8 +175,10 @@ ACCOUNT_LOGIN_METHODS = ['email'] ACCOUNT_SIGNUP_FIELDS = ['email*', 'password1*', 'password2*'] ACCOUNT_UNIQUE_EMAIL = True +ACCOUNT_EMAIL_VERIFICATION = 'none' ACCOUNT_USER_MODEL_USERNAME_FIELD = None -ACCOUNT_EMAIL_VERIFICATION = "mandatory" + + ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION = True @@ -195,7 +189,7 @@ EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' # Crispy Forms Configuration CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5" -CRISPY_TEMPLATE_PACK = "bootstrapconsole5" +CRISPY_TEMPLATE_PACK = "bootstrap5" # Bootstrap 5 Configuration CRISPY_BS5 = { @@ -236,7 +230,7 @@ STATICFILES_DIRS = [ BASE_DIR / 'static' ] STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') -MEDIA_ROOT = os.path.join(BASE_DIR, 'media') +MEDIA_ROOT = os.path.join(BASE_DIR, 'static/media') # Default primary key field type # https://docs.djangoproject.com/en/5.2/ref/settings/#default-auto-field @@ -407,3 +401,11 @@ CKEDITOR_5_CONFIGS = { # Define a constant in settings.py to specify file upload permissions CKEDITOR_5_FILE_UPLOAD_PERMISSION = "staff" # Possible values: "staff", "authenticated", "any" + + + + +from django.contrib.messages import constants as messages +MESSAGE_TAGS = { + messages.ERROR: 'danger', +} diff --git a/NorahUniversity/urls.py b/NorahUniversity/urls.py index bf381ce..432af79 100644 --- a/NorahUniversity/urls.py +++ b/NorahUniversity/urls.py @@ -27,6 +27,7 @@ urlpatterns = [ path('application//submit/', views.application_submit, name='application_submit'), path('application//apply/', views.application_detail, name='application_detail'), path('application//success/', views.application_success, name='application_success'), + path('application/applicant/profile', views.applicant_profile, name='applicant_profile'), path('api/templates/', views.list_form_templates, name='list_form_templates'), path('api/templates/save/', views.save_form_template, name='save_form_template'), diff --git a/locale/ar/LC_MESSAGES/django.po b/locale/ar/LC_MESSAGES/django.po index e112fa0..a97763b 100644 --- a/locale/ar/LC_MESSAGES/django.po +++ b/locale/ar/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-08 13:37+0300\n" +"POT-Creation-Date: 2025-11-03 13:54+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,1586 +18,17166 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: recruitment/forms.py:14 recruitment/models.py:200 + +#: recruitment/forms.py:240 recruitment/forms.py:1063 recruitment/models.py:424 +#: templates/recruitment/agency_portal_assignment_detail.html:539 +#: templates/recruitment/agency_portal_submit_candidate.html:187 +#: templates/user/profile.html:129 msgid "First Name" -msgstr "" +msgstr "الاسم الأول" -#: recruitment/forms.py:15 recruitment/models.py:201 +#: recruitment/forms.py:241 recruitment/forms.py:1064 recruitment/models.py:425 +#: templates/recruitment/agency_portal_assignment_detail.html:545 +#: templates/recruitment/agency_portal_submit_candidate.html:198 +#: templates/user/profile.html:134 msgid "Last Name" -msgstr "" +msgstr "اسم العائلة" -#: recruitment/forms.py:16 recruitment/models.py:203 -#: templates/recruitment/candidate_list.html:152 +#: recruitment/forms.py:242 recruitment/models.py:427 +#: templates/jobs/job_candidates_list.html:228 +#: templates/jobs/job_candidates_list.html:340 +#: templates/participants/participants_list.html:214 +#: templates/recruitment/agency_confirm_delete.html:253 +#: templates/recruitment/agency_detail.html:289 +#: templates/recruitment/agency_list.html:187 +#: templates/recruitment/agency_portal_assignment_detail.html:560 msgid "Phone" -msgstr "" +msgstr "الهاتف" -#: recruitment/forms.py:17 recruitment/models.py:202 -#: templates/recruitment/candidate_detail.html:242 -#: templates/recruitment/candidate_list.html:151 +#: recruitment/forms.py:243 recruitment/models.py:426 +#: recruitment/models.py:1683 recruitment/models.py:1757 +#: templates/jobs/job_candidates_list.html:227 +#: templates/meetings/meeting_details.html:305 +#: templates/participants/participants_list.html:213 +#: templates/recruitment/agency_confirm_delete.html:241 +#: templates/recruitment/agency_detail.html:266 +#: templates/recruitment/agency_detail.html:301 +#: templates/recruitment/agency_list.html:186 +#: templates/recruitment/agency_portal_assignment_detail.html:554 +#: templates/recruitment/candidate_detail.html:337 +#: templates/recruitment/candidate_list.html:270 +#: templates/recruitment/notification_list.html:50 +#: templates/user/admin_settings.html:176 msgid "Email" -msgstr "" +msgstr "البريد الإلكتروني" -#: recruitment/forms.py:18 recruitment/models.py:204 -#: templates/recruitment/candidate_detail.html:218 +#: recruitment/forms.py:244 recruitment/forms.py:1067 recruitment/models.py:429 msgid "Resume" msgstr "" -#: recruitment/forms.py:19 -msgid "Application Stage" +#: recruitment/forms.py:245 +msgid "Hiring Type" msgstr "" -#: recruitment/forms.py:22 +#: recruitment/forms.py:246 recruitment/models.py:180 recruitment/models.py:501 +#: recruitment/models.py:1310 +msgid "Hiring Agency" +msgstr "" + +#: recruitment/forms.py:249 +#: templates/recruitment/agency_portal_submit_candidate.html:194 +#, fuzzy +#| msgid "First name" msgid "Enter first name" -msgstr "" +msgstr "الاسم الأول" -#: recruitment/forms.py:23 +#: recruitment/forms.py:250 +#: templates/recruitment/agency_portal_submit_candidate.html:205 +#, fuzzy +#| msgid "Enter a number." msgid "Enter last name" -msgstr "" +msgstr "أدخل رقماً." -#: recruitment/forms.py:24 +#: recruitment/forms.py:251 +#: templates/recruitment/agency_portal_submit_candidate.html:237 +#, fuzzy +#| msgid "Enter a whole number." msgid "Enter phone number" -msgstr "" +msgstr "أدخل عدداً صحيحاً." -#: recruitment/forms.py:25 +#: recruitment/forms.py:252 +#, fuzzy +#| msgid "Enter remarks" msgid "Enter email" -msgstr "" +msgstr "أدخل الملاحظات" -#: recruitment/forms.py:50 +#: recruitment/forms.py:281 msgid "Submit" -msgstr "" +msgstr "إرسال" -#: recruitment/forms.py:60 +#: recruitment/forms.py:292 +#, fuzzy +#| msgid "Next Action Date" msgid "New Application Stage" -msgstr "" +msgstr "تاريخ الإجراء التالي" -#: recruitment/forms.py:85 recruitment/models.py:180 recruitment/models.py:206 -#: templates/jobs/job_detail.html:420 -#: templates/recruitment/candidate_list.html:154 -msgid "Applied" -msgstr "" - -#: recruitment/forms.py:92 -msgid "Please select a stage." -msgstr "" - -#: recruitment/forms.py:101 -#, python-format -msgid "" -"Cannot transition from \"%(current)s\" to \"%(new)s\". Allowed transitions: " -"%(allowed)s" -msgstr "" - -#: recruitment/forms.py:116 recruitment/models.py:306 +#: recruitment/forms.py:303 recruitment/models.py:736 +#: templates/includes/meeting_form.html:10 #: templates/meetings/create_meeting.html:162 +#: templates/meetings/list_meetings.html:306 +#: templates/meetings/update_meeting.html:215 +#: templates/recruitment/candidate_interview_view.html:263 msgid "Topic" msgstr "" -#: recruitment/forms.py:117 recruitment/models.py:308 recruitment/models.py:727 +#: recruitment/forms.py:304 recruitment/models.py:740 +#: recruitment/models.py:1587 recruitment/models.py:1606 +#: templates/interviews/schedule_interviews.html:169 +#: templates/interviews/schedule_interviews.html:201 #: templates/meetings/create_meeting.html:166 -#: templates/meetings/list_meetings.html:260 -#: templates/meetings/meeting_details.html:29 +#: templates/meetings/list_meetings.html:310 +#: templates/meetings/reschedule_meeting.html:39 +#: templates/meetings/schedule_meeting_form.html:46 +#: templates/meetings/update_meeting.html:219 +#: templates/recruitment/schedule_meeting_form.html:55 msgid "Start Time" -msgstr "" +msgstr "وقت البدء" -#: recruitment/forms.py:118 recruitment/models.py:309 -#: templates/meetings/list_meetings.html:265 -#: templates/meetings/meeting_details.html:33 +#: recruitment/forms.py:305 recruitment/models.py:742 +#: templates/meetings/list_meetings.html:266 +#: templates/meetings/list_meetings.html:311 +#: templates/meetings/meeting_details.html:265 +#: templates/recruitment/candidate_interview_view.html:264 msgid "Duration" -msgstr "" +msgstr "المدة" -#: recruitment/forms.py:121 +#: recruitment/forms.py:308 msgid "Enter meeting topic" msgstr "" -#: recruitment/forms.py:123 +#: recruitment/forms.py:310 msgid "60" msgstr "" -#: recruitment/forms.py:137 templates/meetings/create_meeting.html:180 -#: templates/meetings/list_meetings.html:242 +#: recruitment/forms.py:324 templates/meetings/create_meeting.html:180 +#: templates/meetings/list_meetings.html:179 +#, fuzzy +#| msgid "Sales Meeting" msgid "Create Meeting" -msgstr "" +msgstr "اجتماع مبيعات" -#: recruitment/forms.py:147 recruitment/models.py:290 -#: templates/recruitment/training_list.html:150 +#: recruitment/forms.py:332 recruitment/models.py:711 +#: templates/recruitment/training_list.html:204 #: templates/recruitment/training_update.html:144 msgid "Title" -msgstr "" +msgstr "العنوان" -#: recruitment/forms.py:148 recruitment/models.py:291 +#: recruitment/forms.py:333 recruitment/models.py:712 recruitment/models.py:806 #: templates/recruitment/training_update.html:158 +#, fuzzy +#| msgid "Contact" msgid "Content" -msgstr "" +msgstr "جهة الاتصال" -#: recruitment/forms.py:149 recruitment/models.py:292 +#: recruitment/forms.py:334 recruitment/models.py:713 #: templates/recruitment/training_update.html:150 msgid "Video Link" msgstr "" -#: recruitment/forms.py:150 recruitment/models.py:293 +#: recruitment/forms.py:335 recruitment/models.py:715 #: templates/recruitment/training_update.html:166 msgid "File" -msgstr "" +msgstr "الملف" -#: recruitment/forms.py:153 -msgid "Enter title" -msgstr "" +#: recruitment/forms.py:338 +#, fuzzy +#| msgid "Enter a valid time." +msgid "Enter material title" +msgstr "أدخل وقتاً صالحاً." -#: recruitment/forms.py:154 +#: recruitment/forms.py:339 +#, fuzzy +#| msgid "Font size for table content" msgid "Enter material content" -msgstr "" +msgstr "حجم الخط لمحتوى الجدول" -#: recruitment/forms.py:155 +#: recruitment/forms.py:340 +#, fuzzy +#| msgid "http://www.mywebsite.com..." msgid "https://www.youtube.com/watch?v=..." -msgstr "" +msgstr "http://www.mywebsite.com..." -#: recruitment/forms.py:174 -msgid "Save Material" -msgstr "" +#: recruitment/forms.py:359 +#, fuzzy +#| msgid "Create date" +msgid "Create Material" +msgstr "تاريخ الإنشاء" -#: recruitment/forms.py:377 recruitment/models.py:199 -#: templates/recruitment/candidate_list.html:153 +#: recruitment/forms.py:516 recruitment/models.py:422 +#: recruitment/models.py:1334 templates/forms/form_templates_list.html:270 +#: templates/meetings/list_meetings.html:256 +#: templates/meetings/list_meetings.html:308 +#: templates/meetings/reschedule_meeting.html:11 +#: templates/meetings/schedule_meeting_form.html:12 +#: templates/recruitment/agency_assignment_detail.html:129 +#: templates/recruitment/agency_assignment_list.html:113 +#: templates/recruitment/candidate_list.html:273 +#: templates/recruitment/schedule_meeting_form.html:18 msgid "Job" msgstr "" -#: recruitment/forms.py:378 +#: recruitment/forms.py:517 templates/forms/form_templates_list.html:269 +#, fuzzy +#| msgid "Plate Number" msgid "Template Name" -msgstr "" +msgstr "رقم اللوحة" -#: recruitment/forms.py:379 recruitment/models.py:542 +#: recruitment/forms.py:518 recruitment/models.py:1120 +#: templates/recruitment/agency_detail.html:377 msgid "Description" -msgstr "" +msgstr "الوصف" -#: recruitment/forms.py:380 recruitment/models.py:576 +#: recruitment/forms.py:519 recruitment/models.py:1154 +#: recruitment/models.py:1319 templates/jobs/job_list.html:230 +#: templates/recruitment/agency_access_link_detail.html:31 +#: templates/recruitment/agency_access_link_form.html:89 +#: templates/recruitment/agency_assignment_list.html:87 +#: templates/recruitment/agency_detail.html:457 +#: templates/recruitment/agency_portal_dashboard.html:148 +#: templates/user/admin_settings.html:194 msgid "Active" -msgstr "" +msgstr "نشط" -#: recruitment/forms.py:385 +#: recruitment/forms.py:524 +#, fuzzy +#| msgid "Enter a complete value." msgid "Enter template name" -msgstr "" +msgstr "أدخل قيمة كاملة." -#: recruitment/forms.py:391 +#: recruitment/forms.py:530 msgid "Enter template description (optional)" msgstr "" -#: recruitment/forms.py:410 +#: recruitment/forms.py:549 templates/forms/form_templates_list.html:384 +#, fuzzy +#| msgid "Create date" msgid "Create Template" +msgstr "تاريخ الإنشاء" + +#: recruitment/forms.py:620 +#, fuzzy +#| msgid "Enter your credentials." +msgid "Enter your comment or note" +msgstr "أدخل بيانات الاعتماد الخاصة بك." + +#: recruitment/forms.py:625 templates/meetings/meeting_details.html:422 +#, fuzzy +#| msgid "Comments" +msgid "Comment" +msgstr "ملاحظات" + +#: recruitment/forms.py:637 +#, fuzzy +#| msgid "Add Document" +msgid "Add Comment" +msgstr "إضافة مستند" + +#: recruitment/forms.py:768 recruitment/models.py:1295 +#: templates/recruitment/agency_confirm_delete.html:218 +#: templates/recruitment/agency_list.html:184 +#, fuzzy +#| msgid "Inventory Name" +msgid "Agency Name" +msgstr "اسم المخزون" + +#: recruitment/forms.py:769 recruitment/models.py:1297 +#: templates/recruitment/agency_confirm_delete.html:229 +#: templates/recruitment/agency_list.html:185 +msgid "Contact Person" +msgstr "الشخص المسؤول" + +#: recruitment/forms.py:770 recruitment/forms.py:1065 +#: templates/participants/participants_detail.html:172 +#: templates/recruitment/agency_portal_submit_candidate.html:219 +#: templates/user/profile.html:139 +msgid "Email Address" +msgstr "عنوان البريد الإلكتروني" + +#: recruitment/forms.py:771 recruitment/forms.py:1066 recruitment/models.py:32 +#: recruitment/models.py:1758 templates/meetings/meeting_details.html:306 +#: templates/participants/participants_detail.html:178 +#: templates/recruitment/agency_portal_submit_candidate.html:230 +msgid "Phone Number" +msgstr "رقم الهاتف" + +#: recruitment/forms.py:772 templates/recruitment/agency_detail.html:261 +#: templates/recruitment/agency_detail.html:313 +#: templates/recruitment/agency_list.html:189 +msgid "Website" +msgstr "الموقع الإلكتروني" + +#: recruitment/forms.py:773 templates/jobs/create_job.html:302 +#: templates/jobs/edit_job.html:302 +#: templates/recruitment/agency_detail.html:363 +#: templates/recruitment/agency_list.html:188 +msgid "Country" +msgstr "الدولة" + +#: recruitment/forms.py:774 recruitment/models.py:428 +#: templates/recruitment/agency_detail.html:339 +#: templates/recruitment/agency_portal_assignment_detail.html:568 +msgid "Address" +msgstr "العنوان" + +#: recruitment/forms.py:775 +#, fuzzy +#| msgid "Internal ID" +msgid "Internal Notes" +msgstr "المعرف الداخلي" + +#: recruitment/forms.py:799 +#, fuzzy +#| msgid "Solvency" +msgid "Save Agency" +msgstr "الملاءة المالية" + +#: recruitment/forms.py:888 recruitment/models.py:1328 +#: templates/recruitment/agency_access_link_detail.html:46 +#: templates/recruitment/agency_assignment_detail.html:124 +#: templates/recruitment/agency_assignment_list.html:112 +msgid "Agency" msgstr "" -#: recruitment/models.py:13 +#: recruitment/forms.py:889 +msgid "Job Posting" +msgstr "" + +#: recruitment/forms.py:890 recruitment/models.py:1339 +#: templates/recruitment/agency_portal_assignment_detail.html:174 +msgid "Maximum Candidates" +msgstr "" + +#: recruitment/forms.py:891 recruitment/models.py:1351 +#, fuzzy +#| msgid "Delivery Date" +msgid "Deadline Date" +msgstr "تاريخ التسليم" + +#: recruitment/forms.py:892 recruitment/forms.py:987 recruitment/models.py:1356 +#: recruitment/models.py:1524 +msgid "Is Active" +msgstr "نشط" + +#: recruitment/forms.py:893 recruitment/models.py:769 +#: recruitment/models.py:1361 recruitment/models.py:1710 +#: templates/includes/candidate_modal_body.html:70 +#: templates/includes/easy_logs.html:209 +#: templates/meetings/list_meetings.html:312 +#: templates/recruitment/agency_access_link_form.html:84 +#: templates/recruitment/agency_assignment_detail.html:136 +#: templates/recruitment/agency_assignment_list.html:84 +#: templates/recruitment/agency_assignment_list.html:116 +#: templates/recruitment/agency_portal_assignment_detail.html:148 +#: templates/recruitment/candidate_detail.html:571 +#: templates/recruitment/candidate_hired_view.html:236 +#: templates/recruitment/notification_detail.html:155 +#: templates/recruitment/notification_list.html:37 +#: templates/recruitment/partials/_candidate_table.html:12 +#: templates/user/admin_settings.html:177 +msgid "Status" +msgstr "الحالة" + +#: recruitment/forms.py:894 recruitment/models.py:1379 +#: templates/recruitment/agency_assignment_detail.html:160 +#, fuzzy +#| msgid "Add Note" +msgid "Admin Notes" +msgstr "إضافة ملاحظة" + +#: recruitment/forms.py:928 +#, fuzzy +#| msgid "Assigned To" +msgid "Save Assignment" +msgstr "مُعين إلى" + +#: recruitment/forms.py:985 recruitment/models.py:1489 +#: templates/recruitment/agency_access_link_detail.html:37 +#: templates/recruitment/agency_access_link_form.html:37 +#, fuzzy +#| msgid "Assigned" +msgid "Assignment" +msgstr "مُعين" + +#: recruitment/forms.py:986 recruitment/models.py:1508 +#: templates/recruitment/agency_access_link_detail.html:56 +#: templates/recruitment/agency_access_link_form.html:52 +msgid "Expires At" +msgstr "ينتهي في" + +#: recruitment/forms.py:1011 +#: templates/recruitment/agency_access_link_form.html:4 +#: templates/recruitment/agency_access_link_form.html:12 +#: templates/recruitment/agency_access_link_form.html:130 +#, fuzzy +#| msgid "Create Account" +msgid "Create Access Link" +msgstr "إنشاء حساب" + +#: recruitment/forms.py:1091 +#: templates/recruitment/agency_portal_dashboard.html:198 +#: templates/recruitment/agency_portal_submit_candidate.html:4 +#: templates/recruitment/agency_portal_submit_candidate.html:104 +#: templates/recruitment/agency_portal_submit_candidate.html:337 +#: templates/recruitment/agency_portal_submit_candidate.html:561 +#, fuzzy +#| msgid "Submit" +msgid "Submit Candidate" +msgstr "إرسال" + +#: recruitment/forms.py:1155 +#: templates/recruitment/agency_access_link_detail.html:98 +#: templates/recruitment/agency_assignment_detail.html:187 +#: templates/recruitment/agency_portal_login.html:145 +#, fuzzy +#| msgid "Forbidden" +msgid "Access Token" +msgstr "ممنوع" + +#: recruitment/forms.py:1164 recruitment/models.py:752 +#: templates/account/login.html:164 templates/meetings/list_meetings.html:266 +#: templates/recruitment/agency_access_link_detail.html:109 +#: templates/recruitment/agency_assignment_detail.html:198 +#: templates/recruitment/agency_portal_login.html:167 +msgid "Password" +msgstr "كلمة المرور" + +#: recruitment/forms.py:1253 +#, fuzzy +#| msgid "Select a Plan" +msgid "Select Participants" +msgstr "اختر خطة" + +#: recruitment/forms.py:1259 +#, fuzzy +#| msgid "Select Stage" +msgid "Select Users" +msgstr "اختر المرحلة" + +#: recruitment/forms.py:1276 templates/includes/email_compose_form.html:20 +#: templates/recruitment/agency_portal_assignment_detail.html:488 +msgid "Subject" +msgstr "الموضوع" + +#: recruitment/forms.py:1287 templates/includes/email_compose_form.html:56 +#: templates/recruitment/agency_portal_assignment_detail.html:503 +msgid "Message" +msgstr "رسالة" + +#: recruitment/forms.py:1295 templates/includes/email_compose_form.html:35 +msgid "Recipients" +msgstr "" + +#: recruitment/forms.py:1303 +#, fuzzy +#| msgid "Invalid data." +msgid "Include candidate information" +msgstr "بيانات غير صالحة." + +#: recruitment/forms.py:1312 +msgid "Include meeting details" +msgstr "" + +#: recruitment/forms.py:1376 +#, fuzzy +#| msgid "Please select a date and time" +msgid "Please select at least one recipient." +msgstr "يرجى اختيار تاريخ ووقت" + +#: recruitment/models.py:20 +#, fuzzy +#| msgid "Created Date" msgid "Created at" -msgstr "" +msgstr "تاريخ الإنشاء" -#: recruitment/models.py:14 +#: recruitment/models.py:21 +#, fuzzy +#| msgid "Updated At" msgid "Updated at" -msgstr "" +msgstr "تم التحديث" -#: recruitment/models.py:15 +#: recruitment/models.py:23 msgid "Slug" +msgstr "المُعرّف الفريد (Slug)" + +#: recruitment/models.py:60 +msgid "Internal Participant" msgstr "" -#: recruitment/models.py:120 recruitment/models.py:714 -msgid "Hiring Agency" +#: recruitment/models.py:61 +msgid "Internal staff involved in the recruitment process for this job" msgstr "" -#: recruitment/models.py:121 +#: recruitment/models.py:66 +msgid "External Participant" +msgstr "" + +#: recruitment/models.py:67 +msgid "External participants involved in the recruitment process for this job" +msgstr "" + +#: recruitment/models.py:182 msgid "External agency responsible for sourcing candidates for this role" msgstr "" -#: recruitment/models.py:181 +#: recruitment/models.py:187 +#, fuzzy +#| msgid "Reason for Cancellation" +msgid "Reason for canceling the job posting" +msgstr "سبب الإلغاء" + +#: recruitment/models.py:188 +#, fuzzy +#| msgid "Cancellation Reason" +msgid "Cancel Reason" +msgstr "سبب الإلغاء" + +#: recruitment/models.py:193 +msgid "Name of person who cancelled this job" +msgstr "" + +#: recruitment/models.py:194 +#, fuzzy +#| msgid "Cancelled" +msgid "Cancelled By" +msgstr "ملغى" + +#: recruitment/models.py:392 recruitment/models.py:437 +#: templates/jobs/job_candidates_list.html:211 +#: templates/recruitment/candidate_list.html:231 +#, fuzzy +#| msgid "Apply" +msgid "Applied" +msgstr "تطبيق" + +#: recruitment/models.py:393 templates/jobs/job_candidates_list.html:212 +#: templates/jobs/job_list.html:283 +#: templates/jobs/partials/applicant_tracking.html:128 +#: templates/recruitment/candidate_detail.html:410 +#: templates/recruitment/candidate_list.html:232 msgid "Exam" msgstr "" -#: recruitment/models.py:182 templates/jobs/job_detail.html:426 +#: recruitment/models.py:394 templates/jobs/job_candidates_list.html:213 +#: templates/jobs/job_list.html:284 +#: templates/jobs/partials/applicant_tracking.html:144 +#: templates/recruitment/candidate_detail.html:425 +#: templates/recruitment/candidate_list.html:233 +#, fuzzy +#| msgid "In Review" msgid "Interview" -msgstr "" +msgstr "قيد المراجعة" -#: recruitment/models.py:183 templates/jobs/job_detail.html:432 +#: recruitment/models.py:395 templates/jobs/job_candidates_list.html:214 +#: templates/jobs/job_list.html:285 +#: templates/jobs/partials/applicant_tracking.html:160 +#: templates/recruitment/candidate_detail.html:440 +#: templates/recruitment/candidate_detail.html:454 +#: templates/recruitment/candidate_list.html:234 +#: templates/recruitment/candidate_offer_view.html:248 +#, fuzzy +#| msgid "Offered by" msgid "Offer" -msgstr "" +msgstr "مقدم من" -#: recruitment/models.py:185 +#: recruitment/models.py:396 +#: templates/jobs/partials/applicant_tracking.html:176 +#: templates/recruitment/agency_detail.html:463 +#: templates/recruitment/candidate_hired_view.html:273 +#, fuzzy +#| msgid "Expired" +msgid "Hired" +msgstr "منتهي الصلاحية" + +#: recruitment/models.py:399 +#: templates/includes/candidate_update_exam_form.html:5 +#: templates/includes/candidate_update_interview_form.html:5 +#, fuzzy +#| msgid "Password" msgid "Passed" -msgstr "" +msgstr "كلمة المرور" -#: recruitment/models.py:186 +#: recruitment/models.py:400 recruitment/models.py:1690 +#: templates/includes/candidate_update_exam_form.html:8 +#: templates/includes/candidate_update_interview_form.html:8 +#: templates/includes/easy_logs.html:267 msgid "Failed" -msgstr "" +msgstr "فشل" -#: recruitment/models.py:188 +#: recruitment/models.py:403 +#: templates/includes/candidate_update_offer_form.html:5 msgid "Accepted" -msgstr "" +msgstr "تم القبول" -#: recruitment/models.py:189 +#: recruitment/models.py:404 +#: templates/includes/candidate_update_offer_form.html:8 +#: templates/recruitment/agency_detail.html:469 +#, fuzzy +#| msgid "Reject" msgid "Rejected" +msgstr "رفض" + +#: recruitment/models.py:407 +msgid "Applicant" msgstr "" -#: recruitment/models.py:205 -msgid "Parsed Summary" -msgstr "" - -#: recruitment/models.py:207 -msgid "Stage" -msgstr "" - -#: recruitment/models.py:209 -msgid "Exam Date" -msgstr "" - -#: recruitment/models.py:210 -msgid "Exam Status" -msgstr "" - -#: recruitment/models.py:211 recruitment/models.py:744 -msgid "Interview Date" -msgstr "" - -#: recruitment/models.py:212 -msgid "Interview Status" -msgstr "" - -#: recruitment/models.py:213 -msgid "Offer Date" -msgstr "" - -#: recruitment/models.py:214 -msgid "Offer Status" -msgstr "" - -#: recruitment/models.py:215 -msgid "Join Date" -msgstr "" - -#: recruitment/models.py:230 -msgid "Submitted by Agency" -msgstr "" - -#: recruitment/models.py:234 +#: recruitment/models.py:408 recruitment/models.py:505 +#: templates/meetings/list_meetings.html:248 +#: templates/meetings/list_meetings.html:307 +#, fuzzy +#| msgid "End date" msgid "Candidate" +msgstr "تاريخ الانتهاء" + +#: recruitment/models.py:431 +msgid "Resume Parsed" msgstr "" -#: recruitment/models.py:235 templates/base.html:298 -#: templates/jobs/job_detail.html:414 +#: recruitment/models.py:434 +msgid "Potential Candidate" +msgstr "" + +#: recruitment/models.py:436 +#, fuzzy +#| msgid "Order Summary" +msgid "Parsed Summary" +msgstr "ملخص الطلب" + +#: recruitment/models.py:442 templates/jobs/job_candidates_list.html:229 +#: templates/recruitment/agency_assignment_detail.html:241 +#: templates/recruitment/agency_portal_assignment_detail.html:243 +#: templates/recruitment/candidate_list.html:275 +#: templates/recruitment/partials/_candidate_table.html:13 +msgid "Stage" +msgstr "المرحلة" + +#: recruitment/models.py:450 +#, fuzzy +#| msgid "Payment Status" +msgid "Applicant Status" +msgstr "حالة الدفع" + +#: recruitment/models.py:452 templates/recruitment/candidate_exam_view.html:253 +#, fuzzy +#| msgid "End Date" +msgid "Exam Date" +msgstr "تاريخ الانتهاء" + +#: recruitment/models.py:458 +#, fuzzy +#| msgid "Status" +msgid "Exam Status" +msgstr "الحالة" + +#: recruitment/models.py:461 recruitment/models.py:1653 +#, fuzzy +#| msgid "In Review Date" +msgid "Interview Date" +msgstr "تاريخ المراجعة" + +#: recruitment/models.py:468 +#, fuzzy +#| msgid "Invoice Status" +msgid "Interview Status" +msgstr "حالة الفاتورة" + +#: recruitment/models.py:470 +#, fuzzy +#| msgid "Order Date" +msgid "Offer Date" +msgstr "تاريخ الطلب" + +#: recruitment/models.py:476 +#, fuzzy +#| msgid "PO Status" +msgid "Offer Status" +msgstr "حالة طلب الشراء" + +#: recruitment/models.py:478 +#: templates/recruitment/candidate_hired_view.html:235 +#, fuzzy +#| msgid "Paid Date" +msgid "Hired Date" +msgstr "تاريخ الدفع" + +#: recruitment/models.py:479 +#, fuzzy +#| msgid "Void Date" +msgid "Join Date" +msgstr "تاريخ الإبطال" + +#: recruitment/models.py:491 templates/recruitment/candidate_list.html:276 +#, fuzzy +#| msgid "Source" +msgid "Hiring Source" +msgstr "المصدر" + +#: recruitment/models.py:506 +#: templates/recruitment/agency_assignment_list.html:114 +#: templates/recruitment/agency_portal_dashboard.html:173 +#, fuzzy +#| msgid "End date" msgid "Candidates" -msgstr "" +msgstr "تاريخ الانتهاء" -#: recruitment/models.py:294 +#: recruitment/models.py:718 +#, fuzzy +#| msgid "created by" msgid "Created by" -msgstr "" +msgstr "تم الإنشاء بواسطة" -#: recruitment/models.py:297 +#: recruitment/models.py:722 +#, fuzzy +#| msgid "Time & Materials" msgid "Training Material" -msgstr "" +msgstr "الوقت والمواد" -#: recruitment/models.py:298 templates/recruitment/training_list.html:4 -#: templates/recruitment/training_list.html:126 +#: recruitment/models.py:723 templates/recruitment/training_list.html:4 +#: templates/recruitment/training_list.html:128 +#, fuzzy +#| msgid "Time & Materials" msgid "Training Materials" +msgstr "الوقت والمواد" + +#: recruitment/models.py:731 templates/meetings/list_meetings.html:203 +#, fuzzy +#| msgid "Karting" +msgid "Waiting" +msgstr "كارتينج" + +#: recruitment/models.py:732 templates/meetings/list_meetings.html:204 +#, fuzzy +#| msgid "Get Started" +msgid "Started" +msgstr "ابدأ الآن" + +#: recruitment/models.py:733 templates/meetings/list_meetings.html:205 +msgid "Ended" msgstr "" -#: recruitment/models.py:307 templates/meetings/meeting_details.html:25 +#: recruitment/models.py:734 recruitment/models.py:1322 +#: recruitment/models.py:1660 +#: templates/recruitment/agency_assignment_list.html:90 +#: templates/recruitment/agency_portal_dashboard.html:152 +msgid "Cancelled" +msgstr "ملغى" + +#: recruitment/models.py:738 templates/meetings/meeting_details.html:266 +#, fuzzy +#| msgid "Meeting" msgid "Meeting ID" -msgstr "" +msgstr "اجتماع" -#: recruitment/models.py:310 +#: recruitment/models.py:744 msgid "Timezone" -msgstr "" +msgstr "المنطقة الزمنية" -#: recruitment/models.py:311 templates/meetings/list_meetings.html:286 +#: recruitment/models.py:746 templates/meetings/meeting_details.html:274 msgid "Join URL" msgstr "" -#: recruitment/models.py:312 templates/meetings/meeting_details.html:62 +#: recruitment/models.py:749 msgid "Participant Video" msgstr "" -#: recruitment/models.py:313 templates/meetings/meeting_details.html:66 +#: recruitment/models.py:755 msgid "Join Before Host" msgstr "" -#: recruitment/models.py:314 templates/meetings/meeting_details.html:70 +#: recruitment/models.py:758 +#, fuzzy +#| msgid "Create Journal Entry" msgid "Mute Upon Entry" -msgstr "" +msgstr "إنشاء إدخال يومية" -#: recruitment/models.py:315 templates/meetings/meeting_details.html:74 +#: recruitment/models.py:760 msgid "Waiting Room" msgstr "" -#: recruitment/models.py:317 +#: recruitment/models.py:763 msgid "Zoom Gateway Response" msgstr "" -#: recruitment/models.py:532 -msgid "Source Name" +#: recruitment/models.py:797 +msgid "Meeting" +msgstr "اجتماع" + +#: recruitment/models.py:803 +msgid "Author" msgstr "" -#: recruitment/models.py:533 recruitment/models.py:538 +#: recruitment/models.py:812 +#, fuzzy +#| msgid "Post Comment" +msgid "Meeting Comment" +msgstr "نشر تعليق" + +#: recruitment/models.py:813 +#, fuzzy +#| msgid "Order Comments" +msgid "Meeting Comments" +msgstr "ملاحظات الطلب" + +#: recruitment/models.py:1112 +#, fuzzy +#| msgid "Service Name" +msgid "Source Name" +msgstr "اسم الخدمة" + +#: recruitment/models.py:1113 recruitment/models.py:1116 msgid "e.g., ATS, ERP " msgstr "" -#: recruitment/models.py:537 +#: recruitment/models.py:1116 templates/meetings/meeting_details.html:307 +#, fuzzy +#| msgid "Stock Type" msgid "Source Type" -msgstr "" +msgstr "نوع المخزون" -#: recruitment/models.py:543 +#: recruitment/models.py:1121 +#, fuzzy +#| msgid "Optional description about the showroom placement." msgid "A description of the source" -msgstr "" +msgstr "وصف اختياري حول وضع السيارة في صالة العرض." -#: recruitment/models.py:548 recruitment/models.py:667 +#: recruitment/models.py:1126 recruitment/models.py:1266 +#: templates/includes/easy_logs.html:210 msgid "IP Address" -msgstr "" +msgstr "عنوان IP" -#: recruitment/models.py:549 +#: recruitment/models.py:1127 msgid "The IP address of the source" msgstr "" -#: recruitment/models.py:558 +#: recruitment/models.py:1136 msgid "API Key" msgstr "" -#: recruitment/models.py:559 +#: recruitment/models.py:1137 msgid "API key for authentication (will be encrypted)" msgstr "" -#: recruitment/models.py:565 +#: recruitment/models.py:1143 +#, fuzzy +#| msgid "TOTP Secret:" msgid "API Secret" -msgstr "" +msgstr "السر الخاص بـ TOTP:" -#: recruitment/models.py:566 +#: recruitment/models.py:1144 msgid "API secret for authentication (will be encrypted)" msgstr "" -#: recruitment/models.py:571 +#: recruitment/models.py:1149 +#, fuzzy +#| msgid "IP Address" msgid "Trusted IP Addresses" -msgstr "" +msgstr "عنوان IP" -#: recruitment/models.py:572 +#: recruitment/models.py:1150 +#, fuzzy +#| msgid "Comma-separated integers" msgid "Comma-separated list of trusted IP addresses" -msgstr "" +msgstr "أرقام مفصولة بفواصل" -#: recruitment/models.py:577 +#: recruitment/models.py:1155 msgid "Whether this source is active for integration" msgstr "" -#: recruitment/models.py:582 +#: recruitment/models.py:1160 +#, fuzzy +#| msgid "Cancellation Reason" msgid "Integration Version" -msgstr "" +msgstr "سبب الإلغاء" -#: recruitment/models.py:583 +#: recruitment/models.py:1161 msgid "Version of the integration protocol" msgstr "" -#: recruitment/models.py:588 +#: recruitment/models.py:1166 msgid "Last Sync At" msgstr "" -#: recruitment/models.py:589 +#: recruitment/models.py:1167 msgid "Timestamp of the last successful synchronization" msgstr "" -#: recruitment/models.py:601 +#: recruitment/models.py:1179 +#, fuzzy +#| msgid "Invoice Status" msgid "Sync Status" +msgstr "حالة الفاتورة" + +#: recruitment/models.py:1186 +msgid "Sync Endpoint" msgstr "" -#: recruitment/models.py:610 recruitment/models.py:630 +#: recruitment/models.py:1187 +msgid "Endpoint URL for sending candidate data (for outbound sync)" +msgstr "" + +#: recruitment/models.py:1197 +#, fuzzy +#| msgid "Payment Method" +msgid "Sync Method" +msgstr "طريقة الدفع" + +#: recruitment/models.py:1198 +msgid "HTTP method for outbound sync requests" +msgstr "" + +#: recruitment/models.py:1208 +#, fuzzy +#| msgid "Cash Method" +msgid "Test Method" +msgstr "طريقة النقد" + +#: recruitment/models.py:1209 +msgid "HTTP method for connection testing" +msgstr "" + +#: recruitment/models.py:1214 +#, fuzzy +#| msgid "Customers" +msgid "Custom Headers" +msgstr "العملاء" + +#: recruitment/models.py:1215 +msgid "JSON object with custom HTTP headers for sync requests" +msgstr "" + +#: recruitment/models.py:1219 +msgid "Supports Outbound Sync" +msgstr "" + +#: recruitment/models.py:1220 +msgid "Whether this source supports receiving candidate data from ATS" +msgstr "" + +#: recruitment/models.py:1227 recruitment/models.py:1249 +#: templates/jobs/job_list.html:269 msgid "Source" -msgstr "" +msgstr "المصدر" -#: recruitment/models.py:611 +#: recruitment/models.py:1228 +#, fuzzy +#| msgid "Source" msgid "Sources" -msgstr "" +msgstr "المصدر" -#: recruitment/models.py:619 +#: recruitment/models.py:1238 +#, fuzzy +#| msgid "Bad Request" msgid "Request" -msgstr "" +msgstr "طلب غير صالح" -#: recruitment/models.py:620 +#: recruitment/models.py:1239 msgid "Response" msgstr "" -#: recruitment/models.py:621 +#: recruitment/models.py:1240 msgid "Error" -msgstr "" +msgstr "خطأ" -#: recruitment/models.py:622 +#: recruitment/models.py:1241 msgid "Sync" msgstr "" -#: recruitment/models.py:623 templates/jobs/create_job.html:392 +#: recruitment/models.py:1242 templates/jobs/job_list.html:395 +#, fuzzy +#| msgid "Created " msgid "Create Job" -msgstr "" +msgstr "تم الإنشاء" -#: recruitment/models.py:624 +#: recruitment/models.py:1243 +#, fuzzy +#| msgid "Update" msgid "Update Job" -msgstr "" +msgstr "تحديث" -#: recruitment/models.py:635 +#: recruitment/models.py:1252 templates/includes/easy_logs.html:199 msgid "Action" -msgstr "" +msgstr "الإجراء" -#: recruitment/models.py:640 +#: recruitment/models.py:1254 msgid "Endpoint" msgstr "" -#: recruitment/models.py:645 +#: recruitment/models.py:1255 +#, fuzzy +#| msgid "Method" msgid "HTTP Method" -msgstr "" +msgstr "طريقة" -#: recruitment/models.py:650 +#: recruitment/models.py:1257 +#, fuzzy +#| msgid "Request a Feature" msgid "Request Data" -msgstr "" +msgstr "طلب ميزة" -#: recruitment/models.py:655 +#: recruitment/models.py:1260 +#, fuzzy +#| msgid "Report Date" msgid "Response Data" -msgstr "" +msgstr "الإبلاغ عن خطأ" -#: recruitment/models.py:660 +#: recruitment/models.py:1263 +#, fuzzy +#| msgid "Status Date" msgid "Status Code" -msgstr "" +msgstr "تاريخ الحالة" -#: recruitment/models.py:664 +#: recruitment/models.py:1265 +#, fuzzy +#| msgid "Error: {message}" msgid "Error Message" -msgstr "" +msgstr "خطأ: {message}" -#: recruitment/models.py:672 +#: recruitment/models.py:1268 +#, fuzzy +#| msgid "User Management" msgid "User Agent" -msgstr "" +msgstr "إدارة المستخدمين" -#: recruitment/models.py:677 +#: recruitment/models.py:1271 msgid "Processing Time (seconds)" msgstr "" -#: recruitment/models.py:685 +#: recruitment/models.py:1279 +#, fuzzy +#| msgid "generation" msgid "Integration Log" -msgstr "" +msgstr "الجيل" -#: recruitment/models.py:686 +#: recruitment/models.py:1280 +#, fuzzy +#| msgid "Interior Colors" msgid "Integration Logs" -msgstr "" +msgstr "الألوان الداخلية" -#: recruitment/models.py:701 -msgid "Agency Name" -msgstr "" - -#: recruitment/models.py:702 -msgid "Contact Person" -msgstr "" - -#: recruitment/models.py:706 +#: recruitment/models.py:1302 msgid "Internal notes about the agency" msgstr "" -#: recruitment/models.py:707 +#: recruitment/models.py:1303 +#, fuzzy +#| msgid "Create Account" msgid "Select country" -msgstr "" +msgstr "إنشاء حساب" -#: recruitment/models.py:715 +#: recruitment/models.py:1311 templates/recruitment/agency_list.html:4 +#: templates/recruitment/agency_list.html:131 msgid "Hiring Agencies" msgstr "" -#: recruitment/models.py:724 -msgid "Start Date" +#: recruitment/models.py:1320 recruitment/models.py:1661 +#: templates/recruitment/agency_assignment_list.html:89 +#: templates/recruitment/agency_portal_dashboard.html:150 +msgid "Completed" +msgstr "مكتمل" + +#: recruitment/models.py:1321 +#: templates/recruitment/agency_access_link_detail.html:60 +#: templates/recruitment/agency_assignment_detail.html:151 +#: templates/recruitment/agency_assignment_list.html:88 +#: templates/recruitment/agency_assignment_list.html:148 +#: templates/recruitment/agency_portal_assignment_detail.html:165 +#: templates/recruitment/agency_portal_dashboard.html:154 +msgid "Expired" +msgstr "منتهي الصلاحية" + +#: recruitment/models.py:1340 +msgid "Maximum candidates agency can submit for this job" msgstr "" -#: recruitment/models.py:725 -msgid "End Date" +#: recruitment/models.py:1344 +#: templates/recruitment/agency_access_link_detail.html:71 +msgid "Candidates Submitted" msgstr "" -#: recruitment/models.py:726 -msgid "Working Days" +#: recruitment/models.py:1345 +msgid "Number of candidates submitted so far" msgstr "" -#: recruitment/models.py:728 +#: recruitment/models.py:1349 +#: templates/recruitment/agency_portal_assignment_detail.html:410 +#, fuzzy +#| msgid "Assigned To" +msgid "Assigned Date" +msgstr "مُعين إلى" + +#: recruitment/models.py:1352 +msgid "Deadline for agency to submit candidates" +msgstr "" + +#: recruitment/models.py:1367 +msgid "Deadline Extended" +msgstr "" + +#: recruitment/models.py:1372 +#, fuzzy +#| msgid "Original Appointment:" +msgid "Original Deadline" +msgstr "الموعد الأصلي:" + +#: recruitment/models.py:1373 +msgid "Original deadline before extensions" +msgstr "" + +#: recruitment/models.py:1380 +msgid "Internal notes about this assignment" +msgstr "" + +#: recruitment/models.py:1384 +msgid "Agency Job Assignment" +msgstr "" + +#: recruitment/models.py:1385 +msgid "Agency Job Assignments" +msgstr "" + +#: recruitment/models.py:1424 +msgid "Deadline date must be in the future" +msgstr "" + +#: recruitment/models.py:1427 +#, fuzzy +#| msgid "Payment amount must be greater than 0" +msgid "Maximum candidates must be greater than 0" +msgstr "يجب أن يكون مبلغ الدفع أكبر من 0" + +#: recruitment/models.py:1430 +msgid "Candidates submitted cannot exceed maximum candidates" +msgstr "" + +#: recruitment/models.py:1497 +msgid "Unique Token" +msgstr "" + +#: recruitment/models.py:1501 +#, fuzzy +#| msgid "Reset Password" +msgid "Access Password" +msgstr "إعادة تعيين كلمة المرور" + +#: recruitment/models.py:1502 +#, fuzzy +#| msgid "Password reset successfully." +msgid "Password for agency access" +msgstr "تمت إعادة تعيين كلمة المرور بنجاح." + +#: recruitment/models.py:1506 templates/participants/participants_list.html:217 +#: templates/recruitment/agency_access_link_detail.html:51 +msgid "Created At" +msgstr "تاريخ الإنشاء" + +#: recruitment/models.py:1509 +msgid "When this access link expires" +msgstr "" + +#: recruitment/models.py:1514 +#: templates/recruitment/agency_access_link_detail.html:141 +#, fuzzy +#| msgid "Access" +msgid "Last Accessed" +msgstr "الوصول" + +#: recruitment/models.py:1520 +#, fuzzy +#| msgid "Account" +msgid "Access Count" +msgstr "الحساب" + +#: recruitment/models.py:1528 +msgid "Agency Access Link" +msgstr "" + +#: recruitment/models.py:1529 +msgid "Agency Access Links" +msgstr "" + +#: recruitment/models.py:1543 +msgid "Expiration date must be in the future" +msgstr "" + +#: recruitment/models.py:1588 recruitment/models.py:1607 +#: templates/interviews/schedule_interviews.html:176 +#: templates/interviews/schedule_interviews.html:205 msgid "End Time" -msgstr "" +msgstr "وقت الانتهاء" -#: recruitment/models.py:729 +#: recruitment/models.py:1601 templates/interviews/schedule_interviews.html:146 +msgid "Start Date" +msgstr "تاريخ البدء" + +#: recruitment/models.py:1602 templates/interviews/schedule_interviews.html:153 +msgid "End Date" +msgstr "تاريخ الانتهاء" + +#: recruitment/models.py:1604 templates/interviews/schedule_interviews.html:160 +#, fuzzy +#| msgid "Working Hours" +msgid "Working Days" +msgstr "ساعات العمل" + +#: recruitment/models.py:1609 +#, fuzzy +#| msgid "Start Time" msgid "Break Start Time" -msgstr "" +msgstr "وقت البدء" -#: recruitment/models.py:730 +#: recruitment/models.py:1610 +#, fuzzy +#| msgid "End Time" msgid "Break End Time" -msgstr "" +msgstr "وقت الانتهاء" -#: recruitment/models.py:731 +#: recruitment/models.py:1613 msgid "Interview Duration (minutes)" msgstr "" -#: recruitment/models.py:732 +#: recruitment/models.py:1616 msgid "Buffer Time (minutes)" msgstr "" -#: recruitment/models.py:745 +#: recruitment/models.py:1654 +#, fuzzy +#| msgid "Inactive" msgid "Interview Time" -msgstr "" +msgstr "غير نشط" -#: recruitment/models.py:749 +#: recruitment/models.py:1658 msgid "Scheduled" -msgstr "" +msgstr "مجدول" -#: recruitment/models.py:750 +#: recruitment/models.py:1659 +#, fuzzy +#| msgid "Confirm" msgid "Confirmed" +msgstr "تأكيد" + +#: recruitment/models.py:1684 templates/recruitment/notification_list.html:49 +msgid "In-App" msgstr "" -#: recruitment/models.py:751 -msgid "Cancelled" +#: recruitment/models.py:1687 +msgid "Pending" +msgstr "قيد الانتظار" + +#: recruitment/models.py:1688 templates/recruitment/notification_list.html:42 +#, fuzzy +#| msgid "Sent:" +msgid "Sent" +msgstr "مرسلة:" + +#: recruitment/models.py:1689 templates/recruitment/notification_list.html:41 +#, fuzzy +#| msgid "Is Read" +msgid "Read" +msgstr "تمت قراءته" + +#: recruitment/models.py:1691 +msgid "Retrying" msgstr "" -#: recruitment/models.py:752 -msgid "Completed" +#: recruitment/models.py:1697 +msgid "Recipient" msgstr "" -#: templates/base.html:7 -msgid "King Abdullah Academic University Hospital - Applicant Tracking System" +#: recruitment/models.py:1699 +#, fuzzy +#| msgid "Notification" +msgid "Notification Message" +msgstr "إشعار" + +#: recruitment/models.py:1704 +#, fuzzy +#| msgid "Notification" +msgid "Notification Type" +msgstr "إشعار" + +#: recruitment/models.py:1718 templates/recruitment/notification_detail.html:62 +#, fuzzy +#| msgid "Sales Meeting" +msgid "Related Meeting" +msgstr "اجتماع مبيعات" + +#: recruitment/models.py:1721 +#, fuzzy +#| msgid "Scheduled Type" +msgid "Scheduled Send Time" +msgstr "نوع الجدول" + +#: recruitment/models.py:1722 +#, fuzzy +#| msgid "The date and time the reschedule was recorded." +msgid "The date and time this notification is scheduled to be sent." +msgstr "التاريخ والوقت الذي تم تسجيل إعادة الجدولة فيه." + +#: recruitment/models.py:1726 +#, fuzzy +#| msgid "Save Estimate" +msgid "Send Attempts" +msgstr "حفظ التقدير" + +#: recruitment/models.py:1727 +#, fuzzy +#| msgid "Error: {message}" +msgid "Last Error Message" +msgstr "خطأ: {message}" + +#: recruitment/models.py:1731 +msgid "Notification" +msgstr "إشعار" + +#: recruitment/models.py:1732 templates/recruitment/notification_list.html:4 +#: templates/recruitment/notification_list.html:12 +msgid "Notifications" +msgstr "الإشعارات" + +#: recruitment/models.py:1756 +#, fuzzy +#| msgid "Product Name" +msgid "Participant Name" +msgstr "اسم المنتج" + +#: recruitment/models.py:1760 +#: templates/participants/participants_detail.html:184 +#: templates/participants/participants_list.html:216 +#, fuzzy +#| msgid "Description" +msgid "Designation" +msgstr "الوصف" + +#: recruitment/views.py:609 +#, python-brace-format +msgid "" +"✅ Job posting process for job with JOB ID: {job.internal_job_id} started! " +"Check the job details page in a moment for the final status." msgstr "" -#: templates/base.html:8 -msgid "University ATS" +#: recruitment/views.py:614 +#, fuzzy +#| msgid "We couldn't process your payment. Please try again" +msgid "Failed to start the job posting process. Please try again." +msgstr "تعذر معالجة دفعتك. يرجى المحاولة مرة أخرى" + +#: recruitment/views.py:863 +msgid "" +"Application limit reached: This job is no longer accepting new applications." msgstr "" -#: templates/base.html:258 +#: recruitment/views.py:869 +msgid "" +"Application deadline passed: This job is no longer accepting new " +"applications." +msgstr "" + +#: recruitment/views.py:2197 templates/includes/easy_logs.html:176 +#, fuzzy +#| msgid "User Actions" +msgid "User Authentication" +msgstr "إجراءات المستخدم" + +#: recruitment/views.py:2200 templates/includes/easy_logs.html:182 +#, fuzzy +#| msgid "Bad Request" +msgid "HTTP Requests" +msgstr "طلب غير صالح" + +#: recruitment/views.py:2203 templates/includes/easy_logs.html:170 +msgid "Model Changes (CRUD)" +msgstr "" + +#: recruitment/views_frontend.py:276 +#, fuzzy +#| msgid "You do not have permission to access this appointment." +msgid "You don't have permission to view this page." +msgstr "ليس لديك إذن للوصول إلى هذا الموعد." + +#: templates/account/account_inactive.html:7 +#: templates/account/account_inactive.html:131 +msgid "Account Inactive" +msgstr "الحساب غير نشط" + +#: templates/account/account_inactive.html:114 +#: templates/account/password_reset_done.html:136 +#: templates/account/password_reset_from_key.html:55 +#: templates/account/password_reset_from_key_done.html:52 +msgid "جامعة الأميرة نورة بنت عبدالرحمن الأكاديمية" +msgstr "" + +#: templates/account/account_inactive.html:115 +#: templates/account/password_reset_done.html:137 +#: templates/account/password_reset_from_key.html:56 +#: templates/account/password_reset_from_key_done.html:53 +msgid "ومستشفى الملك عبدالله بن عبدالعزيز التخصصي" +msgstr "" + +#: templates/account/account_inactive.html:116 +#: templates/account/password_reset_done.html:138 +#: templates/account/password_reset_from_key.html:57 +#: templates/account/password_reset_from_key_done.html:54 +msgid "Princess Nourah bint Abdulrahman University" +msgstr "" + +#: templates/account/account_inactive.html:117 +#: templates/account/password_reset_done.html:139 +#: templates/account/password_reset_from_key.html:58 +#: templates/account/password_reset_from_key_done.html:55 +msgid "King Abdullah bin Abdulaziz University Hospital" +msgstr "" + +#: templates/account/account_inactive.html:135 +msgid "" +"Access denied. This account has been marked as inactive by an administrator." +msgstr "" + +#: templates/account/account_inactive.html:138 +msgid "" +"If you believe this is an error, please contact the system administrator for " +"assistance." +msgstr "" + +#: templates/account/account_inactive.html:143 +#: templates/account/password_reset_from_key.html:109 +#, fuzzy +#| msgid "Return on Equity" +msgid "Return to Sign In" +msgstr "العائد على حقوق الملكية" + +#: templates/account/email.html:6 templates/account/email.html:33 +#: templates/account/email.html:52 templates/account/logout.html:29 +msgid "Email Addresses" +msgstr "عناوين البريد الإلكتروني" + +#: templates/account/email.html:13 templates/account/logout.html:12 +#: templates/user/profile.html:111 +#, fuzzy +#| msgid "Accounting" +msgid "Account Settings" +msgstr "المحاسبة" + +#: templates/account/email.html:14 templates/account/logout.html:13 +#: templates/user/profile.html:112 +msgid "Manage your personal details and security." +msgstr "" + +#: templates/account/email.html:28 templates/account/logout.html:26 +#: templates/recruitment/agency_portal_submit_candidate.html:182 +#: templates/user/profile.html:123 +msgid "Personal Information" +msgstr "المعلومات الشخصية" + +#: templates/account/email.html:36 templates/account/logout.html:32 +#: templates/account/password_change.html:4 +#: templates/account/password_change.html:15 +#: templates/account/password_change.html:34 +#: templates/account/password_reset_from_key.html:90 +#: templates/user/admin_settings.html:225 templates/user/profile.html:161 +#: templates/user/staff_password_create.html:4 +#: templates/user/staff_password_create.html:16 +#: templates/user/staff_password_create.html:35 +msgid "Change Password" +msgstr "تغيير كلمة المرور" + +#: templates/account/email.html:40 templates/account/logout.html:5 +#: templates/account/logout.html:37 templates/account/logout.html:66 +#: templates/base.html:213 +msgid "Sign Out" +msgstr "تسجيل الخروج" + +#: templates/account/email.html:53 +msgid "" +"These email addresses are linked to your account. You can set the primary " +"address, resend verification, or remove an address." +msgstr "" + +#: templates/account/email.html:73 +msgid "Primary" +msgstr "رئيسي" + +#: templates/account/email.html:76 +msgid "Verified" +msgstr "تم التحقق" + +#: templates/account/email.html:78 +msgid "Unverified" +msgstr "لم يتم التحقق" + +#: templates/account/email.html:89 +msgid "Make Primary" +msgstr "تعيين كرئيسي" + +#: templates/account/email.html:98 +msgid "Re-send Verification" +msgstr "إعادة إرسال التحقق" + +#: templates/account/email.html:107 +msgid "Remove" +msgstr "إزالة" + +#: templates/account/email.html:114 +#, fuzzy +#| msgid "No Cars Found" +msgid "No email addresses found." +msgstr "لم يتم العثور على سيارات" + +#: templates/account/email.html:121 +msgid "Add Email Address" +msgstr "إضافة عنوان بريد إلكتروني" + +#: templates/account/email.html:136 +msgid "Add Email" +msgstr "إضافة بريد إلكتروني" + +#: templates/account/email/email_confirmation_message.html:5 +#: templates/account/email/email_confirmation_message.txt:4 +#: templates/account/email/password_reset_key_message.html:14 +#: templates/account/email/password_reset_key_message.txt:7 +#, fuzzy +#| msgid "Hello" +msgid "Hello," +msgstr "مرحبًا" + +#: templates/account/email/email_confirmation_message.html:9 +#: templates/account/email/email_confirmation_message.txt:6 +msgid "" +"To verify the ownership of your email address, please click the confirmation " +"link below:" +msgstr "" + +#: templates/account/email/email_confirmation_message.html:15 +#: templates/account/email/email_confirmation_message.txt:9 +msgid "Confirm My KAAUH ATS Email" +msgstr "" + +#: templates/account/email/email_confirmation_message.html:20 +#: templates/account/email/email_confirmation_message.txt:13 +msgid "" +"If you did not request this verification, you can safely ignore this email." +msgstr "" + +#: templates/account/email/email_confirmation_message.html:24 +#: templates/account/email/email_confirmation_message.txt:15 +#, fuzzy +#| msgid "" +#| "If the button above does not work, please copy and paste the following " +#| "link into your browser:" +msgid "Alternatively, copy and paste this link into your browser:" +msgstr "إذا لم يعمل الزر أعلاه، يرجى نسخ ولصق الرابط التالي في متصفحك:" + +#: templates/account/email/password_reset_key_message.html:10 +#: templates/account/email/password_reset_key_message.txt:5 +#, fuzzy +#| msgid "Password Reset" +msgid "Password Reset Request" +msgstr "إعادة تعيين كلمة المرور" + +#: templates/account/email/password_reset_key_message.html:16 +#: templates/account/email/password_reset_key_message.txt:9 +#, fuzzy +#| msgid "" +#| "You are receiving this mail because the following change was made to your " +#| "account:" +msgid "" +"You are receiving this email because you or someone else has requested a " +"password reset for your account at" +msgstr "" +"لقد تلقيت هذا البريد الإلكتروني لأن التغيير التالي تم إجراؤه على حسابك:" + +#: templates/account/email/password_reset_key_message.html:21 +#: templates/account/email/password_reset_key_message.txt:12 +#, fuzzy +#| msgid "Reset Your Password" +msgid "Click Here to Reset Your Password" +msgstr "إعادة تعيين كلمة المرور الخاصة بك" + +#: templates/account/email/password_reset_key_message.html:25 +#: templates/account/email/password_reset_key_message.txt:16 +#, fuzzy +#| msgid "The password reset link is invalid or has expired." +msgid "This link is only valid for a limited time." +msgstr "رابط إعادة تعيين كلمة المرور غير صالح أو انتهت صلاحيته." + +#: templates/account/email/password_reset_key_message.html:27 +#: templates/account/email/password_reset_key_message.txt:18 +msgid "" +"If you did not request a password reset, please ignore this email. Your " +"password will remain unchanged." +msgstr "" + +#: templates/account/email/password_reset_key_message.html:30 +#: templates/account/email/password_reset_key_message.txt:20 +msgid "Thank you," +msgstr "شكرًا،" + +#: templates/account/email/password_reset_key_message.html:31 +#: templates/account/email/password_reset_key_message.txt:21 +msgid "KAAUH ATS Team" +msgstr "" + +#: templates/account/email/password_reset_key_message.html:36 +#: templates/account/email/password_reset_key_message.txt:24 +#, fuzzy +#| msgid "" +#| "If the button above does not work, please copy and paste the following " +#| "link into your browser:" +msgid "" +"If the button above does not work, copy and paste the following link into " +"your browser:" +msgstr "إذا لم يعمل الزر أعلاه، يرجى نسخ ولصق الرابط التالي في متصفحك:" + +#: templates/account/email_confirm.html:5 +msgid "Confirm Email Address" +msgstr "تأكيد عنوان البريد الإلكتروني" + +#: templates/account/email_confirm.html:13 +#, fuzzy +#| msgid "Account Activation" +msgid "Account Verification" +msgstr "تفعيل الحساب" + +#: templates/account/email_confirm.html:14 +msgid "Verify your email to secure your account and unlock full features." +msgstr "" + +#: templates/account/email_confirm.html:32 +#, fuzzy +#| msgid "Confirm Email Address" +msgid "Confirm Your Email Address" +msgstr "تأكيد عنوان البريد الإلكتروني" + +#: templates/account/email_confirm.html:35 +#, fuzzy, python-format +#| msgid "" +#| "Please confirm that %(email)s is an " +#| "email address for user %(user_display)s." +msgid "" +"Please confirm that **%(email)s** is the correct email address for your " +"account." +msgstr "" +"يرجى تأكيد أن %(email)s هو عنوان البريد " +"الإلكتروني للمستخدم %(user_display)s." + +#: templates/account/email_confirm.html:44 +#, fuzzy +#| msgid "Confirm Appointment" +msgid "Confirm & Activate" +msgstr "تأكيد الموعد" + +#: templates/account/email_confirm.html:53 +#, fuzzy +#| msgid "Specification Value" +msgid "Verification Failed" +msgstr "قيمة المواصفة" + +#: templates/account/email_confirm.html:56 +msgid "The email confirmation link is expired or invalid." +msgstr "" + +#: templates/account/email_confirm.html:59 +msgid "" +"If you recently requested a link, please ensure you use the newest one. You " +"can request a new verification email from your account settings." +msgstr "" + +#: templates/account/email_confirm.html:63 +#, fuzzy +#| msgid "Settings" +msgid "Go to Settings" +msgstr "الإعدادات" + +#: templates/account/login.html:151 templates/account/login.html:178 +msgid "Sign In" +msgstr "تسجيل الدخول" + +#: templates/account/login.html:158 +#, fuzzy +#| msgid "Email" +msgid "Email *" +msgstr "البريد الإلكتروني" + +#: templates/account/login.html:159 +#, fuzzy +#| msgid "Enter your credentials." +msgid "Enter your email" +msgstr "أدخل بيانات الاعتماد الخاصة بك." + +#: templates/account/login.html:163 +#, fuzzy +#| msgid "Password" +msgid "Password *" +msgstr "كلمة المرور" + +#: templates/account/login.html:167 templates/account/password_reset.html:150 +msgid "Forgot Password?" +msgstr "نسيت كلمة المرور؟" + +#: templates/account/login.html:174 +msgid "Keep me signed in" +msgstr "" + +#: templates/account/logout.html:50 +#, fuzzy +#| msgid "Sign Out" +msgid "Confirm Sign Out" +msgstr "تسجيل الخروج" + +#: templates/account/logout.html:52 +#, fuzzy +#| msgid "Are you sure you want to sign out?" +msgid "Are you sure you want to sign out of your account?" +msgstr "هل أنت متأكد أنك تريد تسجيل الخروج؟" + +#: templates/account/logout.html:71 +#: templates/forms/form_templates_list.html:382 +#: templates/includes/email_compose_form.html:110 +#: templates/includes/meeting_form.html:40 +#: templates/interviews/schedule_interviews.html:221 +#: templates/jobs/create_job.html:327 templates/jobs/edit_job.html:327 +#: templates/jobs/job_detail.html:540 +#: templates/meetings/create_meeting.html:184 +#: templates/meetings/delete_meeting_form.html:8 +#: templates/meetings/meeting_details.html:399 +#: templates/meetings/set_candidate_form.html:6 +#: templates/meetings/update_meeting.html:237 +#: templates/participants/participants_detail.html:252 +#: templates/participants/participants_list.html:334 +#: templates/recruitment/agency_access_link_form.html:127 +#: templates/recruitment/agency_assignment_detail.html:430 +#: templates/recruitment/agency_assignment_form.html:213 +#: templates/recruitment/agency_confirm_delete.html:357 +#: templates/recruitment/agency_form.html:337 +#: templates/recruitment/agency_portal_assignment_detail.html:510 +#: templates/recruitment/agency_portal_assignment_detail.html:575 +#: templates/recruitment/agency_portal_assignment_detail.html:609 +#: templates/recruitment/agency_portal_submit_candidate.html:333 +#: templates/recruitment/notification_confirm_all_read.html:53 +#: templates/recruitment/notification_confirm_delete.html:33 +#: templates/recruitment/schedule_meeting_form.html:89 +msgid "Cancel" +msgstr "إلغاء" + +#: templates/account/password_change.html:19 +#: templates/user/staff_password_create.html:20 +#, fuzzy +#| msgid "" +#| "We've successfully set your password. You can now log in to your account." +msgid "" +"Please enter your current password and a new password to secure your account." +msgstr "" +"تم تعيين كلمة المرور الخاصة بك بنجاح. يمكنك الآن تسجيل الدخول إلى حسابك." + +#: templates/account/password_change.html:41 +#, fuzzy +#| msgid "View Profile" +msgid "Return to Profile" +msgstr "عرض الملف الشخصي" + +#: templates/account/password_reset.html:154 +msgid "Enter your e-mail address to reset your password." +msgstr "" + +#: templates/account/password_reset.html:162 +#, fuzzy +#| msgid "Email Address" +msgid "E-mail Address" +msgstr "عنوان البريد الإلكتروني" + +#: templates/account/password_reset.html:179 +msgid "Reset My Password" +msgstr "إعادة تعيين كلمة المرور الخاصة بي" + +#: templates/account/password_reset.html:185 +#, fuzzy +#| msgid "Enter your password:" +msgid "Remember your password?" +msgstr "أدخل كلمة المرور الخاصة بك:" + +#: templates/account/password_reset.html:186 +#, fuzzy +#| msgid "Log in" +msgid "Log In" +msgstr "تسجيل الدخول" + +#: templates/account/password_reset_done.html:7 +#: templates/account/password_reset_done.html:151 +#, fuzzy +#| msgid "Password Reset" +msgid "Password Reset Sent" +msgstr "إعادة تعيين كلمة المرور" + +#: templates/account/password_reset_done.html:160 +#, fuzzy +#| msgid "" +#| "\n" +#| " Invoice for this order will be issued for:\n" +#| " " +msgid "" +"\n" +" We've **sent an email** to the address you provided " +"with instructions on how to reset your password.\n" +" " +msgstr "" +"\n" +" سيتم إصدار فاتورة لهذا الطلب لـ:\n" +" " + +#: templates/account/password_reset_done.html:168 +msgid "" +"Please check your inbox (and spam folder). The link in the email is " +"temporary and will expire soon for security reasons." +msgstr "" + +#: templates/account/password_reset_done.html:175 +#, fuzzy +#| msgid "Click here to Login" +msgid "Return to Login" +msgstr "انقر هنا للتسجيل" + +#: templates/account/password_reset_from_key.html:7 +#: templates/account/password_reset_from_key.html:70 +#, fuzzy +#| msgid "Set Password" +msgid "Set New Password" +msgstr "تعيين كلمة المرور" + +#: templates/account/password_reset_from_key.html:76 +#, fuzzy +#| msgid "Enter your password:" +msgid "Please enter your new password below." +msgstr "أدخل كلمة المرور الخاصة بك:" + +#: templates/account/password_reset_from_key.html:79 +msgid "You can then log in." +msgstr "" + +#: templates/account/password_reset_from_key.html:96 +#, fuzzy +#| msgid "Password Reset Email" +msgid "Password Reset Failed" +msgstr "إعادة تعيين كلمة المرور عبر البريد الإلكتروني" + +#: templates/account/password_reset_from_key.html:98 +msgid "The password reset link is invalid or has expired." +msgstr "رابط إعادة تعيين كلمة المرور غير صالح أو انتهت صلاحيته." + +#: templates/account/password_reset_from_key.html:102 +#, fuzzy +#| msgid "Request a New Feature" +msgid "Request New Reset Link" +msgstr "طلب ميزة جديدة" + +#: templates/account/password_reset_from_key_done.html:7 +msgid "Password Changed" +msgstr "تم تغيير كلمة المرور" + +#: templates/account/password_reset_from_key_done.html:69 +#, fuzzy +#| msgid "Password Reset Successful" +msgid "Password Changed Successfully" +msgstr "تمت إعادة تعيين كلمة المرور بنجاح" + +#: templates/account/password_reset_from_key_done.html:72 +#, fuzzy +#| msgid "Your password has been set." +msgid "" +"Your password has been set. You can now use your new password to sign in." +msgstr "تم تعيين كلمة المرور الخاصة بك." + +#: templates/account/password_reset_from_key_done.html:77 +#: templates/account/verification_sent.html:182 +#, fuzzy +#| msgid "Sign In" +msgid "Go to Sign In" +msgstr "تسجيل الدخول" + +#: templates/account/verification_sent.html:153 +msgid "Verify Your Email Address" +msgstr "تحقق من عنوان بريدك الإلكتروني" + +#: templates/account/verification_sent.html:159 +#, fuzzy +#| msgid "" +#| "\n" +#| " This order could not be processed as it is not valid. " +#| "Please contact with customer service.\n" +#| " " +msgid "" +"\n" +" We have sent an email to your email id for " +"verification. Follow the link provided to finalize the signup process.\n" +" " +msgstr "" +"\n" +" لا يمكن معالجة هذا الطلب لأنه غير صالح. يرجى الاتصال بخدمة " +"العملاء.\n" +" " + +#: templates/account/verification_sent.html:165 +msgid "" +"If you do not see the verification email in your main inbox, please check " +"your spam folder." +msgstr "" + +#: templates/account/verification_sent.html:169 +msgid "" +"Please contact us if you do not receive the verification email within a few " +"minutes." +msgstr "" + +#: templates/account/verification_sent.html:176 +#, fuzzy +#| msgid "Change Email" +msgid "Change or Resend Email" +msgstr "تغيير البريد الإلكتروني" + +#: templates/admin/sync_dashboard.html:4 +msgid "Django site admin" +msgstr "" + +#: templates/agency_base.html:9 +msgid "King Abdullah Academic University Hospital - Agency Portal" +msgstr "" + +#: templates/agency_base.html:10 +msgid "KAAUH Agency Portal" +msgstr "" + +#: templates/agency_base.html:31 templates/base.html:38 msgid "Saudi Vision 2030" msgstr "" -#: templates/base.html:259 -msgid "King Abdullah Academic University Hospital" +#: templates/agency_base.html:59 templates/base.html:59 templates/base.html:63 +msgid "kaauh logo green bg" msgstr "" -#: templates/base.html:272 +#: templates/agency_base.html:60 templates/agency_base.html:137 +#: templates/recruitment/agency_portal_login.html:126 +msgid "Agency Portal" +msgstr "" + +#: templates/agency_base.html:64 templates/base.html:68 +#, fuzzy +#| msgid "Navigation" msgid "Toggle navigation" -msgstr "" +msgstr "التنقل" -#: templates/base.html:282 -msgid "Dashboard" -msgstr "" - -#: templates/base.html:290 -msgid "Jobs" -msgstr "" - -#: templates/base.html:309 -msgid "Training" -msgstr "" - -#: templates/base.html:320 templates/base.html:340 -msgid "Meetings" -msgstr "" - -#: templates/base.html:330 templates/forms/form_templates_list.html:190 -msgid "Form Templates" -msgstr "" - -#: templates/base.html:337 -msgid "More" -msgstr "" - -#: templates/base.html:341 -msgid "Schedule" -msgstr "" - -#: templates/base.html:343 -msgid "Active Jobs" -msgstr "" - -#: templates/base.html:344 -msgid "Draft Jobs" -msgstr "" - -#: templates/base.html:346 -msgid "All Candidates" -msgstr "" - -#: templates/base.html:347 -msgid "New Candidates" -msgstr "" - -#: templates/base.html:356 +#: templates/agency_base.html:75 templates/base.html:77 +#: templates/forms/partials/candidate_facing_base.html:267 msgid "Toggle language menu" msgstr "" -#: templates/base.html:392 -msgid "Toggle user menu" -msgstr "" +#: templates/agency_base.html:103 templates/includes/easy_logs.html:261 +msgid "Logout" +msgstr "تسجيل الخروج" -#: templates/base.html:396 -msgid "Your account" -msgstr "" - -#: templates/base.html:419 -msgid "My Profile" -msgstr "" - -#: templates/base.html:420 templates/meetings/meeting_details.html:56 -msgid "Settings" -msgstr "" - -#: templates/base.html:421 -msgid "Activity Log" -msgstr "" - -#: templates/base.html:422 -msgid "Help & Support" -msgstr "" - -#: templates/base.html:428 -msgid "Connect LinkedIn" -msgstr "" - -#: templates/base.html:435 -msgid "LinkedIn Connected" -msgstr "" - -#: templates/base.html:447 -msgid "Sign out" -msgstr "" - -#: templates/base.html:450 -msgid "Sign Out" -msgstr "" - -#: templates/base.html:466 +#: templates/agency_base.html:119 templates/base.html:302 +#: templates/jobs/job_detail.html:524 +#: templates/recruitment/candidate_exam_view.html:355 +#: templates/recruitment/candidate_hired_view.html:344 +#: templates/recruitment/candidate_interview_view.html:505 +#: templates/recruitment/candidate_screening_view.html:495 msgid "Close" -msgstr "" +msgstr "إغلاق" -#: templates/base.html:478 +#: templates/agency_base.html:133 templates/base.html:315 msgid "King Abdullah Academic University Hospital (KAAUH)." msgstr "" -#: templates/base.html:479 +#: templates/agency_base.html:134 templates/base.html:316 +#, fuzzy +#| msgid "All rights reserved" msgid "All rights reserved." +msgstr "جميع الحقوق محفوظة" + +#: templates/agency_base.html:175 +#, fuzzy +#| msgid "Are you sure you want to sign out?" +msgid "Are you sure you want to logout?" +msgstr "هل أنت متأكد أنك تريد تسجيل الخروج؟" + +#: templates/base.html:9 +msgid "King Abdullah Academic University Hospital - Applicant Tracking System" msgstr "" -#: templates/base.html:511 +#: templates/base.html:10 +msgid "University ATS" +msgstr "" + +#: templates/base.html:134 +msgid "Toggle user menu" +msgstr "" + +#: templates/base.html:141 templates/base.html:143 templates/base.html:159 +#, fuzzy +#| msgid "Your Account" +msgid "Your account" +msgstr "حسابك" + +#: templates/base.html:175 +#, fuzzy +#| msgid "Profile" +msgid "My Profile" +msgstr "الملف الشخصي" + +#: templates/base.html:179 +msgid "Settings" +msgstr "الإعدادات" + +#: templates/base.html:180 +#, fuzzy +#| msgid "User Activity Log" +msgid "Activity Log" +msgstr "سجل نشاط المستخدم" + +#: templates/base.html:192 +msgid "Connect LinkedIn" +msgstr "" + +#: templates/base.html:198 +msgid "LinkedIn Connected" +msgstr "" + +#: templates/base.html:210 +#, fuzzy +#| msgid "Sign Out" +msgid "Sign out" +msgstr "تسجيل الخروج" + +#: templates/base.html:232 templates/jobs/job_candidates_list.html:123 +#: templates/recruitment/partials/ai_overview_breadcromb.html:49 +msgid "Jobs" +msgstr "" + +#: templates/base.html:240 templates/jobs/job_candidates_list.html:125 +#: templates/jobs/job_candidates_list.html:207 +#: templates/jobs/job_detail.html:291 templates/jobs/job_list.html:354 +#: templates/recruitment/partials/ai_overview_breadcromb.html:71 +msgid "Applicants" +msgstr "" + +#: templates/base.html:248 +msgid "Agencies" +msgstr "" + +#: templates/base.html:258 +#, fuzzy +#| msgid "Meeting" +msgid "Meetings" +msgstr "اجتماع" + +#: templates/base.html:270 +#: templates/recruitment/candidate_interview_view.html:483 +msgid "Participants" +msgstr "" + +#: templates/base.html:320 +msgid "Powered by" +msgstr "مدعوم من" + +#: templates/base.html:361 msgid "Are you sure you want to sign out?" +msgstr "هل أنت متأكد أنك تريد تسجيل الخروج؟" + +#: templates/forms/application_detail.html:7 +#: templates/forms/application_detail.html:61 +msgid "Job Overview" msgstr "" -#: templates/forms/form_templates_list.html:208 -msgid "Search templates by name..." +#: templates/forms/application_detail.html:39 +#, fuzzy +#| msgid "Get Started" +msgid "Ready to Apply?" +msgstr "ابدأ الآن" + +#: templates/forms/application_detail.html:42 +msgid "Review the job details, then apply below." msgstr "" +#: templates/forms/application_detail.html:46 +#: templates/forms/application_detail.html:106 +msgid "Apply for this Position" +msgstr "" + +#: templates/forms/application_detail.html:66 +#: templates/jobs/job_detail.html:240 +#, fuzzy +#| msgid "Salary" +msgid "Salary:" +msgstr "الراتب" + +#: templates/forms/application_detail.html:73 +#: templates/jobs/job_detail.html:177 +#: templates/recruitment/agency_portal_submit_candidate.html:142 +#, fuzzy +#| msgid "Declined" +msgid "Deadline:" +msgstr "مرفوض" + +#: templates/forms/application_detail.html:77 +msgid "EXPIRED" +msgstr "" + +#: templates/forms/application_detail.html:80 +#, fuzzy +#| msgid "No month specified" +msgid "Not specified" +msgstr "لم يتم تحديد الشهر" + +#: templates/forms/application_detail.html:84 +#: templates/jobs/job_candidates_list.html:149 +#: templates/jobs/job_detail.html:231 +#, fuzzy +#| msgid "Stock Type" +msgid "Job Type:" +msgstr "نوع المخزون" + +#: templates/forms/application_detail.html:85 +#: templates/jobs/job_candidates_list.html:146 +#: templates/jobs/job_detail.html:237 +#, fuzzy +#| msgid "Location" +msgid "Location:" +msgstr "الموقع" + +#: templates/forms/application_detail.html:86 +#: templates/jobs/job_candidates_list.html:143 +#: templates/jobs/job_detail.html:225 +#: templates/recruitment/agency_portal_submit_candidate.html:139 +#, fuzzy +#| msgid "payment" +msgid "Department:" +msgstr "الدفعة" + +#: templates/forms/application_detail.html:87 +msgid "JOB ID:" +msgstr "" + +#: templates/forms/application_detail.html:88 +#: templates/jobs/job_candidates_list.html:152 +#: templates/jobs/job_detail.html:234 +msgid "Workplace:" +msgstr "" + +#: templates/forms/application_detail.html:91 +#: templates/jobs/create_job.html:189 templates/jobs/edit_job.html:189 +#: templates/jobs/job_detail.html:256 +#, fuzzy +#| msgid "CoA Description" +msgid "Job Description" +msgstr "وصف قائمة الحسابات" + +#: templates/forms/application_detail.html:92 +#, fuzzy +#| msgid "Qualification" +msgid "Qualifications" +msgstr "التأهيل" + +#: templates/forms/application_detail.html:93 +#: templates/jobs/create_job.html:221 templates/jobs/edit_job.html:221 +#: templates/jobs/job_detail.html:268 +msgid "Benefits" +msgstr "" + +#: templates/forms/application_detail.html:94 +#: templates/jobs/create_job.html:229 templates/jobs/edit_job.html:229 +#: templates/jobs/job_detail.html:274 +#, fuzzy +#| msgid "Additional Information" +msgid "Application Instructions" +msgstr "معلومات إضافية" + +#: templates/forms/application_submit_form.html:489 +#: templates/forms/partials/candidate_facing_base.html:11 +msgid "Application Form" +msgstr "" + +#: templates/forms/application_submit_form.html:504 +msgid "Review Your Application" +msgstr "" + +#: templates/forms/application_submit_form.html:516 +msgid "Back" +msgstr "عودة" + +#: templates/forms/application_submit_form.html:520 +msgid "Next" +msgstr "التالي" + +#: templates/forms/application_submit_form.html:529 +#, fuzzy +#| msgid "Submit" +msgid "Submit Application" +msgstr "إرسال" + +#: templates/forms/form_submission_details.html:160 +#, fuzzy +#| msgid "Lead Details" +msgid "Submission Details" +msgstr "تفاصيل العميل المحتمل" + +#: templates/forms/form_submission_details.html:162 +#: templates/forms/form_template_all_submissions.html:249 +#: templates/forms/form_template_all_submissions.html:364 +#, fuzzy +#| msgid "Bank Commissions" +msgid "Back to Submissions" +msgstr "عمولات البنوك" + +#: templates/forms/form_submission_details.html:170 +#, fuzzy +#| msgid "Admin Management" +msgid "Submission Metadata" +msgstr "إدارة المشرفين" + +#: templates/forms/form_submission_details.html:176 +msgid "Submission ID:" +msgstr "" + +#: templates/forms/form_submission_details.html:180 +#: templates/recruitment/agency_portal_submit_candidate.html:151 +#, fuzzy +#| msgid "Submit" +msgid "Submitted:" +msgstr "إرسال" + +#: templates/forms/form_submission_details.html:184 +#, fuzzy +#| msgid "Form" +msgid "Form:" +msgstr "نموذج" + +#: templates/forms/form_submission_details.html:192 +#, fuzzy +#| msgid "Client Name" +msgid "Applicant Name:" +msgstr "اسم العميل" + +#: templates/forms/form_submission_details.html:198 +#, fuzzy +#| msgid "Email" +msgid "Email:" +msgstr "البريد الإلكتروني" + +#: templates/forms/form_submission_details.html:208 +msgid "Form Responses" +msgstr "" + +#: templates/forms/form_submission_details.html:219 +#, fuzzy +#| msgid "Fixed Price" +msgid "Field Property" +msgstr "سعر ثابت" + +#: templates/forms/form_submission_details.html:227 +#, fuzzy +#| msgid "Option Value" +msgid "Response Value" +msgstr "قيمة الخيار" + +#: templates/forms/form_submission_details.html:233 +#, fuzzy +#| msgid "Download PDF" +msgid "Download File" +msgstr "تنزيل PDF" + +#: templates/forms/form_submission_details.html:234 +#, fuzzy +#| msgid "Download PDF" +msgid "Download" +msgstr "تنزيل PDF" + +#: templates/forms/form_submission_details.html:250 +#, fuzzy +#| msgid "No image provided" +msgid "Not provided" +msgstr "لم يتم تقديم صورة" + +#: templates/forms/form_submission_details.html:256 +#, fuzzy +#| msgid "Latest Bills" +msgid "Associated Stage" +msgstr "أحدث الفواتير" + +#: templates/forms/form_submission_details.html:264 +#, fuzzy +#| msgid "This field is required." +msgid "Field Required" +msgstr "هذا الحقل مطلوب." + +#: templates/forms/form_submission_details.html:268 +#: templates/recruitment/candidate_detail.html:552 +msgid "Yes" +msgstr "نعم" + +#: templates/forms/form_submission_details.html:270 +#: templates/recruitment/candidate_detail.html:554 +msgid "No" +msgstr "لا" + +#: templates/forms/form_submission_details.html:281 +#, fuzzy +#| msgid "No accounts found in this category." +msgid "No response fields were found for this submission." +msgstr "لم يتم العثور على أي حسابات في هذه الفئة." + +#: templates/forms/form_submission_details.html:282 +msgid "" +"This may occur if the form template was modified or responses were cleared." +msgstr "" + +#: templates/forms/form_template_all_submissions.html:232 +#: templates/forms/form_template_submissions_list.html:188 +#: templates/jobs/job_candidates_list.html:122 +#: templates/recruitment/agency_portal_submit_candidate.html:95 +msgid "Dashboard" +msgstr "لوحة القيادة" + +#: templates/forms/form_template_all_submissions.html:233 +#: templates/forms/form_template_submissions_list.html:189 +#: templates/forms/form_templates_list.html:152 +msgid "Form Templates" +msgstr "" + +#: templates/forms/form_template_all_submissions.html:234 +#: templates/forms/form_template_submissions_list.html:193 +#: templates/forms/form_templates_list.html:240 +#: templates/forms/form_templates_list.html:295 +#: templates/jobs/job_list.html:320 templates/jobs/job_list.html:373 +#: templates/recruitment/agency_access_link_detail.html:151 +#, fuzzy +#| msgid "Permission" +msgid "Submissions" +msgstr "الإذن" + +#: templates/forms/form_template_all_submissions.html:235 +msgid "All Submissions Table" +msgstr "" + +#: templates/forms/form_template_all_submissions.html:244 +#, fuzzy +#| msgid "Edit Permission" +msgid "All Submissions for" +msgstr "تحرير الإذن" + +#: templates/forms/form_template_all_submissions.html:258 +#: templates/forms/form_template_submissions_list.html:227 +#, fuzzy +#| msgid "Permission" +msgid "Submission ID" +msgstr "الإذن" + +#: templates/forms/form_template_all_submissions.html:259 +#: templates/forms/form_template_submissions_list.html:228 +#: templates/forms/form_template_submissions_list.html:265 +#, fuzzy +#| msgid "Client Name" +msgid "Applicant Name" +msgstr "اسم العميل" + +#: templates/forms/form_template_all_submissions.html:260 +#: templates/forms/form_template_submissions_list.html:229 +#: templates/forms/form_template_submissions_list.html:266 +#, fuzzy +#| msgid "Client Email" +msgid "Applicant Email" +msgstr "البريد الإلكتروني للعميل" + +#: templates/forms/form_template_all_submissions.html:261 +#: templates/forms/form_template_submissions_list.html:230 +#: templates/forms/form_template_submissions_list.html:267 +#, fuzzy +#| msgid "Submit" +msgid "Submitted At" +msgstr "إرسال" + +#: templates/forms/form_template_all_submissions.html:315 +#: templates/forms/form_template_submissions_list.html:286 +#, fuzzy, python-format +#| msgid "" +#| "\n" +#| " Invoice for this order will be issued for:\n" +#| " " +msgid "" +"\n" +" Showing %(start)s to %(end)s of %(total)s " +"results.\n" +" " +msgstr "" +"\n" +" سيتم إصدار فاتورة لهذا الطلب لـ:\n" +" " + +#: templates/forms/form_template_all_submissions.html:336 +#: templates/forms/form_template_submissions_list.html:307 +msgid "Page" +msgstr "صفحة" + +#: templates/forms/form_template_all_submissions.html:336 +#: templates/forms/form_template_submissions_list.html:307 +#: templates/includes/easy_logs.html:159 +#, fuzzy +#| msgid "Prof" +msgid "of" +msgstr "الأستاذ" + +#: templates/forms/form_template_all_submissions.html:359 +#: templates/forms/form_template_submissions_list.html:330 +#, fuzzy +#| msgid "No Quotations Found" +msgid "No Submissions Found" +msgstr "لم يتم العثور على عروض" + +#: templates/forms/form_template_all_submissions.html:361 +#: templates/forms/form_template_submissions_list.html:332 +msgid "There are no submissions for this form template yet." +msgstr "" + +#: templates/forms/form_template_submissions_list.html:202 +#, fuzzy +#| msgid "Edit Permission" +msgid "Submissions for" +msgstr "تحرير الإذن" + +#: templates/forms/form_template_submissions_list.html:208 +#, fuzzy +#| msgid "View Vendor" +msgid "View All in Table" +msgstr "عرض المورد" + +#: templates/forms/form_template_submissions_list.html:211 +#: templates/forms/form_template_submissions_list.html:335 +#, fuzzy +#| msgid "Back to Tickets" +msgid "Back to Templates" +msgstr "العودة إلى التذاكر" + +#: templates/forms/form_template_submissions_list.html:231 +#: templates/forms/form_templates_list.html:275 +#: templates/jobs/job_candidates_list.html:231 templates/jobs/job_list.html:272 +#: templates/meetings/list_meetings.html:313 +#: templates/participants/participants_list.html:218 +#: templates/recruitment/agency_access_link_detail.html:168 +#: templates/recruitment/agency_assignment_detail.html:243 +#: templates/recruitment/agency_assignment_detail.html:339 +#: templates/recruitment/agency_assignment_list.html:117 +#: templates/recruitment/agency_list.html:191 +#: templates/recruitment/agency_portal_assignment_detail.html:245 +#: templates/recruitment/candidate_exam_view.html:255 +#: templates/recruitment/candidate_hired_view.html:237 +#: templates/recruitment/candidate_interview_view.html:269 +#: templates/recruitment/candidate_list.html:278 +#: templates/recruitment/candidate_offer_view.html:249 +#: templates/recruitment/candidate_screening_view.html:382 +#: templates/recruitment/notification_detail.html:126 +#: templates/recruitment/partials/_candidate_table.html:14 +#: templates/recruitment/training_list.html:207 +#: templates/user/admin_settings.html:180 +msgid "Actions" +msgstr "الإجراءات" + +#: templates/forms/form_template_submissions_list.html:243 +#: templates/forms/form_template_submissions_list.html:272 +#: templates/recruitment/agency_assignment_detail.html:268 +#: templates/recruitment/agency_assignment_list.html:160 +#: templates/recruitment/agency_portal_dashboard.html:209 +msgid "View Details" +msgstr "عرض التفاصيل" + +#: templates/forms/form_template_submissions_list.html:260 +#, fuzzy +#| msgid "Permission" +msgid "Submission" +msgstr "الإذن" + +#: templates/forms/form_templates_list.html:155 +#, fuzzy +#| msgid "Create New Lead" +msgid "Create New Template" +msgstr "إنشاء فرصة جديد" + +#: templates/forms/form_templates_list.html:165 +msgid "Search by Template Name" +msgstr "" + +#: templates/forms/form_templates_list.html:169 +#, fuzzy +#| msgid "The item name..." +msgid "Search templates by name..." +msgstr "اسم العنصر..." + +#: templates/forms/form_templates_list.html:177 +#: templates/includes/search_form.html:16 +#: templates/recruitment/agency_assignment_list.html:77 +#: templates/recruitment/agency_assignment_list.html:98 +#: templates/recruitment/agency_list.html:167 +msgid "Search" +msgstr "بحث" + +#: templates/forms/form_templates_list.html:183 +#, fuzzy +#| msgid "Search" +msgid "Clear Search" +msgstr "بحث" + +#: templates/forms/form_templates_list.html:213 +#: templates/forms/form_templates_list.html:271 +#, fuzzy +#| msgid "Stage" +msgid "Stages" +msgstr "المرحلة" + +#: templates/forms/form_templates_list.html:217 +#: templates/forms/form_templates_list.html:272 +#, fuzzy +#| msgid "Field" +msgid "Fields" +msgstr "الحقل" + +#: templates/forms/form_templates_list.html:226 +#, fuzzy +#| msgid "No additional details provided." +msgid "No description provided" +msgstr "لم يتم تقديم تفاصيل إضافية." + +#: templates/forms/form_templates_list.html:234 +#: templates/forms/form_templates_list.html:289 +#: templates/jobs/job_list.html:314 +msgid "Preview" +msgstr "عرض" + +#: templates/forms/form_templates_list.html:237 +#: templates/forms/form_templates_list.html:292 +#: templates/jobs/job_candidates_list.html:257 +#: templates/jobs/job_candidates_list.html:353 templates/jobs/job_list.html:306 +#: templates/jobs/job_list.html:317 +#: templates/participants/participants_list.html:236 +#: templates/participants/participants_list.html:280 +#: templates/recruitment/agency_assignment_list.html:164 +#: templates/recruitment/agency_list.html:251 +#: templates/recruitment/agency_list.html:323 +#: templates/recruitment/candidate_list.html:329 +#: templates/recruitment/candidate_list.html:377 +#: templates/recruitment/training_list.html:181 +#: templates/recruitment/training_list.html:222 +msgid "Edit" +msgstr "تحديث" + #: templates/forms/form_templates_list.html:243 -msgid "ago" -msgstr "" - -#: templates/forms/form_templates_list.html:253 -msgid "Stages" -msgstr "" - -#: templates/forms/form_templates_list.html:257 -msgid "Fields" -msgstr "" - -#: templates/forms/form_templates_list.html:264 -msgid "No description provided" -msgstr "" - -#: templates/forms/form_templates_list.html:274 -msgid "Preview" -msgstr "" - -#: templates/forms/form_templates_list.html:277 -#: templates/recruitment/candidate_list.html:178 -#: templates/recruitment/training_list.html:168 -msgid "Edit" -msgstr "" - -#: templates/forms/form_templates_list.html:282 -#: templates/includes/delete_modal.html:26 -#: templates/meetings/list_meetings.html:307 -#: templates/recruitment/candidate_list.html:181 -#: templates/recruitment/training_list.html:171 +#: templates/forms/form_templates_list.html:298 +#: templates/jobs/job_candidates_list.html:260 +#: templates/jobs/job_candidates_list.html:356 +#: templates/meetings/list_meetings.html:284 +#: templates/meetings/list_meetings.html:372 +#: templates/participants/participants_detail.html:142 +#: templates/participants/participants_detail.html:255 +#: templates/participants/participants_list.html:239 +#: templates/participants/participants_list.html:282 +#: templates/participants/participants_list.html:337 +#: templates/recruitment/candidate_list.html:332 +#: templates/recruitment/candidate_list.html:379 +#: templates/recruitment/notification_detail.html:141 +#: templates/recruitment/training_list.html:183 +#: templates/recruitment/training_list.html:225 #: templates/recruitment/training_update.html:184 msgid "Delete" -msgstr "" +msgstr "حذف" -#: templates/forms/form_templates_list.html:326 +#: templates/forms/form_templates_list.html:254 +#: templates/recruitment/agency_detail.html:520 +#: templates/recruitment/agency_form.html:393 +#: templates/recruitment/notification_confirm_delete.html:23 +msgid "Created:" +msgstr "تم الإنشاء:" + +#: templates/forms/form_templates_list.html:255 +msgid "ago" +msgstr "منذ" + +#: templates/forms/form_templates_list.html:273 +#: templates/recruitment/agency_confirm_delete.html:264 +#: templates/recruitment/agency_list.html:190 +#: templates/recruitment/agency_list.html:328 +#: templates/recruitment/notification_detail.html:169 +#: templates/recruitment/training_list.html:206 +msgid "Created" +msgstr "تاريخ الإنشاء" + +#: templates/forms/form_templates_list.html:274 +#: templates/participants/participants_detail.html:218 +msgid "Last Updated" +msgstr "آخر تحديث" + +#: templates/forms/form_templates_list.html:346 +#, fuzzy +#| msgid "No Payments Found" msgid "No Form Templates Found" -msgstr "" +msgstr "لم يتم العثور على عملية دفع" -#: templates/forms/form_templates_list.html:329 +#: templates/forms/form_templates_list.html:349 #, python-format msgid "No templates match your search \"%(query)s\"." msgstr "" -#: templates/forms/form_templates_list.html:331 +#: templates/forms/form_templates_list.html:351 +#, fuzzy +#| msgid "If you have not created an account yet, then please" msgid "You haven't created any form templates yet." -msgstr "" +msgstr "إذا لم تقم بإنشاء حساب بعد، يرجى التسجيل أولاً." -#: templates/forms/form_templates_list.html:335 +#: templates/forms/form_templates_list.html:355 +#, fuzzy +#| msgid "Create Customer Estimate" msgid "Create Your First Template" -msgstr "" +msgstr "إنشاء تقدير للعميل" -#: templates/forms/form_wizard.html:7 templates/forms/form_wizard.html:470 -#: templates/jobs/job_detail_candidate.html:7 -msgid "Application Form" -msgstr "" +#: templates/forms/form_templates_list.html:370 +#: templates/jobs/job_detail.html:347 +#, fuzzy +#| msgid "Create New Lead" +msgid "Create New Form Template" +msgstr "إنشاء فرصة جديد" -#: templates/forms/form_wizard.html:439 -#: templates/jobs/job_detail_candidate.html:121 +#: templates/forms/partials/candidate_facing_base.html:244 +#: templates/jobs/application_success.html:126 msgid "KAAUH IMAGE" msgstr "" -#: templates/forms/form_wizard.html:449 -#: templates/jobs/job_detail_candidate.html:132 -msgid "Applications" +#: templates/forms/partials/candidate_facing_base.html:261 +#: templates/jobs/application_success.html:141 +msgid "Careers" msgstr "" -#: templates/forms/form_wizard.html:452 -#: templates/jobs/job_detail_candidate.html:135 -msgid "Profile" +#: templates/includes/candidate_exam_status_form.html:6 +#: templates/meetings/list_meetings.html:369 +msgid "Update" +msgstr "تحديث" + +#: templates/includes/candidate_modal_body.html:2 +#: templates/recruitment/candidate_exam_view.html:252 +#: templates/recruitment/candidate_screening_view.html:370 +#: templates/recruitment/partials/_candidate_table.html:11 +msgid "AI Score" msgstr "" -#: templates/forms/form_wizard.html:480 -msgid "Review Your Application" +#: templates/includes/candidate_modal_body.html:8 +msgid "Job Fit" msgstr "" -#: templates/forms/form_wizard.html:487 -msgid "Back" +#: templates/includes/candidate_modal_body.html:15 +#: templates/recruitment/candidate_detail.html:525 +msgid "Top Keywords" msgstr "" -#: templates/forms/form_wizard.html:491 -msgid "Next" +#: templates/includes/candidate_modal_body.html:29 +#, fuzzy +#| msgid "Expense" +msgid "Experience" +msgstr "المصروف" + +#: templates/includes/candidate_modal_body.html:31 +#, fuzzy +#| msgid "year" +msgid "years" +msgstr "السنة" + +#: templates/includes/candidate_modal_body.html:32 +#, fuzzy +#| msgid "Account Role" +msgid "Recent Role:" +msgstr "دور الحساب" + +#: templates/includes/candidate_modal_body.html:37 +#, fuzzy +#| msgid "bills" +msgid "Skills" +msgstr "الفواتير" + +#: templates/includes/candidate_modal_body.html:39 +msgid "Soft Skills:" msgstr "" -#: templates/forms/form_wizard.html:495 -msgid "Submit Application" +#: templates/includes/candidate_modal_body.html:40 +msgid "Industry Match:" msgstr "" -#: templates/includes/delete_modal.html:11 -msgid "Confirm Delete" +#: templates/includes/candidate_modal_body.html:49 +#: templates/recruitment/candidate_detail.html:519 +msgid "Recommendation" msgstr "" -#: templates/includes/delete_modal.html:16 -msgid "Are you sure you want to delete this item?" +#: templates/includes/candidate_modal_body.html:54 +#: templates/recruitment/candidate_detail.html:510 +msgid "Strengths" msgstr "" -#: templates/includes/delete_modal.html:19 templates/jobs/create_job.html:389 -#: templates/meetings/create_meeting.html:184 -#: templates/meetings/update_meeting.html:222 -msgid "Cancel" +#: templates/includes/candidate_modal_body.html:59 +#: templates/recruitment/candidate_detail.html:513 +msgid "Weaknesses" msgstr "" -#: templates/includes/search_form.html:11 +#: templates/includes/candidate_modal_body.html:64 +#: templates/recruitment/candidate_detail.html:565 +msgid "Criteria Assessment" +msgstr "" + +#: templates/includes/candidate_modal_body.html:69 +#: templates/recruitment/candidate_detail.html:570 +#, fuzzy +#| msgid "Critical" +msgid "Criteria" +msgstr "حرج" + +#: templates/includes/candidate_modal_body.html:79 +#: templates/includes/candidate_modal_body.html:100 +#: templates/recruitment/candidate_detail.html:580 +#, fuzzy +#| msgid "Make" +msgid "Met" +msgstr "الصانع" + +#: templates/includes/candidate_modal_body.html:81 +#: templates/includes/candidate_modal_body.html:102 +#: templates/recruitment/candidate_detail.html:582 +#, fuzzy +#| msgid "Not set." +msgid "Not Met" +msgstr "غير محدد" + +#: templates/includes/candidate_modal_body.html:97 +msgid "Minimum Requirements" +msgstr "" + +#: templates/includes/candidate_modal_body.html:108 +#: templates/recruitment/candidate_screening_view.html:275 +msgid "Screening Rating" +msgstr "" + +#: templates/includes/candidate_modal_body.html:116 +#: templates/recruitment/candidate_detail.html:597 +msgid "Language Fluency" +msgstr "" + +#: templates/includes/copy_to_clipboard.html:5 +#: templates/includes/easy_logs.html:269 +#: templates/recruitment/agency_assignment_detail.html:453 +msgid "Success" +msgstr "ناجحة" + +#: templates/includes/copy_to_clipboard.html:9 +#, python-format +msgid "Copied \"%(text)s\" to clipboard!" +msgstr "" + +#: templates/includes/easy_logs.html:5 +#, fuzzy +#| msgid "Audit Log Dashboard" +msgid "Audit Dashboard" +msgstr "لوحة سجل التدقيق" + +#: templates/includes/easy_logs.html:153 +#, fuzzy +#| msgid "Audit Log Dashboard" +msgid "System Audit Logs" +msgstr "لوحة سجل التدقيق" + +#: templates/includes/easy_logs.html:157 +#, fuzzy +#| msgid "New Leads" +msgid "Viewing Logs" +msgstr "عملاء محتملون جدد" + +#: templates/includes/easy_logs.html:159 +msgid "Displaying" +msgstr "" + +#: templates/includes/easy_logs.html:160 +#, fuzzy +#| msgid "Total cars" +msgid "total records." +msgstr "إجمالي السيارات" + +#: templates/includes/easy_logs.html:197 templates/includes/easy_logs.html:206 +#: templates/includes/easy_logs.html:214 +#, fuzzy +#| msgid "Start Time" +msgid "Date/Time" +msgstr "وقت البدء" + +#: templates/includes/easy_logs.html:198 templates/includes/easy_logs.html:207 +#: templates/includes/easy_logs.html:215 +msgid "User" +msgstr "المستخدم" + +#: templates/includes/easy_logs.html:200 +msgid "Model" +msgstr "الموديل" + +#: templates/includes/easy_logs.html:201 +#, fuzzy +#| msgid "Object ID" +msgid "Object PK" +msgstr "معرّف الكائن" + +#: templates/includes/easy_logs.html:202 +#, fuzzy +#| msgid "Change" +msgid "Changes" +msgstr "تغيير" + +#: templates/includes/easy_logs.html:208 +#: templates/recruitment/notification_detail.html:161 +#: templates/recruitment/notification_list.html:46 +msgid "Type" +msgstr "النوع" + +#: templates/includes/easy_logs.html:216 +msgid "Method" +msgstr "طريقة" + +#: templates/includes/easy_logs.html:217 +msgid "Path" +msgstr "" + +#: templates/includes/easy_logs.html:234 +msgid "CREATE" +msgstr "" + +#: templates/includes/easy_logs.html:235 +msgid "UPDATE" +msgstr "" + +#: templates/includes/easy_logs.html:236 +msgid "DELETE" +msgstr "" + +#: templates/includes/easy_logs.html:260 +msgid "Login" +msgstr "تسجيل الدخول" + +#: templates/includes/easy_logs.html:262 +#, fuzzy +#| msgid "Failed" +msgid "Failed Login" +msgstr "فشل" + +#: templates/includes/easy_logs.html:288 +msgid "No logs found for this section or the database is empty." +msgstr "" + +#: templates/includes/email_compose_form.html:10 +#: templates/recruitment/candidate_interview_view.html:520 +#, fuzzy +#| msgid "Customer Email" +msgid "Compose Email" +msgstr "ايميل العميل" + +#: templates/includes/email_compose_form.html:103 +msgid "Email will be sent to all selected recipients" +msgstr "" + +#: templates/includes/email_compose_form.html:116 +#: templates/includes/email_compose_form.html:236 +#: templates/includes/email_compose_form.html:267 +msgid "Send Email" +msgstr "إرسال البريد الإلكتروني" + +#: templates/includes/email_compose_form.html:131 +#: templates/recruitment/agency_portal_submit_candidate.html:381 +#: templates/recruitment/candidate_detail.html:613 +#, fuzzy +#| msgid "Loading" +msgid "Loading..." +msgstr "تحميل" + +#: templates/includes/email_compose_form.html:134 +#, fuzzy +#| msgid "Entity email..." +msgid "Sending email..." +msgstr "بريد الكيان الإلكتروني..." + +#: templates/includes/email_compose_form.html:208 +#, fuzzy +#| msgid "Savings" +msgid "Sending..." +msgstr "حساب توفير" + +#: templates/includes/meeting_form.html:15 +#, fuzzy +#| msgid "Start Time" +msgid "Start Time and Date" +msgstr "وقت البدء" + +#: templates/includes/meeting_form.html:20 +#: templates/meetings/create_meeting.html:170 +#: templates/meetings/reschedule_meeting.html:51 +#: templates/meetings/schedule_meeting_form.html:62 +#: templates/meetings/update_meeting.html:223 +#: templates/recruitment/schedule_meeting_form.html:72 +#, fuzzy +#| msgid "Duration" +msgid "Duration (minutes)" +msgstr "المدة" + +#: templates/includes/meeting_form.html:25 +msgid "Meeting Details (will appear after scheduling):" +msgstr "" + +#: templates/includes/meeting_form.html:26 +msgid "Join URL:" +msgstr "" + +#: templates/includes/meeting_form.html:27 +#, fuzzy +#| msgid "Meeting" +msgid "Meeting ID:" +msgstr "اجتماع" + +#: templates/includes/meeting_form.html:32 +#, fuzzy +#| msgid "Click here to Login" +msgid "Click here to join meeting" +msgstr "انقر هنا للتسجيل" + +#: templates/includes/meeting_form.html:42 +#, fuzzy +#| msgid "Rescheduling" +msgid "Reschedule Meeting" +msgstr "إعادة الجدولة" + +#: templates/includes/meeting_form.html:42 +#: templates/includes/meeting_form.html:71 +#: templates/meetings/schedule_meeting_form.html:84 +#: templates/recruitment/schedule_meeting_form.html:4 +#: templates/recruitment/schedule_meeting_form.html:86 +#, fuzzy +#| msgid "Sales Meeting" +msgid "Schedule Meeting" +msgstr "اجتماع مبيعات" + +#: templates/includes/meeting_form.html:67 +#: templates/meetings/schedule_meeting_form.html:9 +#: templates/recruitment/candidate_interview_view.html:418 +#: templates/recruitment/schedule_meeting_form.html:15 +#, fuzzy +#| msgid "Scheduled Date" +msgid "Schedule Interview" +msgstr "تاريخ المجدول" + +#: templates/includes/meeting_form.html:83 +#, fuzzy +#| msgid "Loading" +msgid "Processing..." +msgstr "تحميل" + +#: templates/includes/meeting_form.html:129 +#, fuzzy +#| msgid "unknown error" +msgid "An unknown error occurred." +msgstr "خطأ غير معروف" + +#: templates/includes/meeting_form.html:137 +msgid "An error occurred while processing your request." +msgstr "حدث خطأ أثناء معالجة طلبك." + +#: templates/includes/search_form.html:14 msgid "Search..." +msgstr "بحث..." + +#: templates/interviews/schedule_interviews.html:110 +msgid "Bulk Interview Scheduling" msgstr "" -#: templates/includes/search_form.html:13 -msgid "Search" +#: templates/interviews/schedule_interviews.html:113 +msgid "Configure time slots for:" msgstr "" -#: templates/jobs/create_job.html:113 -msgid "Create New Job Posting" +#: templates/interviews/schedule_interviews.html:117 +#: templates/recruitment/candidate_exam_view.html:187 +#: templates/recruitment/candidate_hired_view.html:211 +#: templates/recruitment/candidate_interview_view.html:190 +#: templates/recruitment/candidate_offer_view.html:189 +#: templates/recruitment/candidate_screening_view.html:238 +#, fuzzy +#| msgid "Back to Home" +msgid "Back to Job" +msgstr "العودة إلى الرئيسية" + +#: templates/interviews/schedule_interviews.html:127 +#, fuzzy +#| msgid "Select Car Makes" +msgid "Select Candidates" +msgstr "اختر ماركات السيارات" + +#: templates/interviews/schedule_interviews.html:131 +msgid "Candidates to Schedule (Hold Ctrl/Cmd to select multiple)" msgstr "" -#: templates/jobs/create_job.html:121 -msgid "Basic Information" +#: templates/interviews/schedule_interviews.html:141 +#, fuzzy +#| msgid "Scheduled Date" +msgid "Schedule Details" +msgstr "تاريخ المجدول" + +#: templates/interviews/schedule_interviews.html:183 +#, fuzzy +#| msgid "Duration" +msgid "Duration (min)" +msgstr "المدة" + +#: templates/interviews/schedule_interviews.html:190 +msgid "Buffer (min)" msgstr "" -#: templates/jobs/create_job.html:127 +#: templates/interviews/schedule_interviews.html:197 +msgid "Daily Break Times" +msgstr "" + +#: templates/interviews/schedule_interviews.html:218 +#, fuzzy +#| msgid "View Schedules" +msgid "Preview Schedule" +msgstr "عرض الجداول" + +#: templates/jobs/application_success.html:7 +msgid "Application Submitted - Thank You" +msgstr "" + +#: templates/jobs/application_success.html:135 +#: templates/recruitment/dashboard.html:305 +#, fuzzy +#| msgid "Actions" +msgid "Applications" +msgstr "الإجراءات" + +#: templates/jobs/application_success.html:138 +msgid "Profile" +msgstr "الملف الشخصي" + +#: templates/jobs/application_success.html:150 +#, fuzzy +#| msgid "Email Confirmation" +msgid "Application Confirmation" +msgstr "تأكيد البريد الإلكتروني" + +#: templates/jobs/application_success.html:168 +#, fuzzy +#| msgid "Thank You" +msgid "Thank You!" +msgstr "شكرًا لك" + +#: templates/jobs/application_success.html:169 +#, fuzzy +#| msgid "Location updated successfully" +msgid "Your application has been submitted successfully" +msgstr "تم تحديث البريد الإلكتروني بنجاح!" + +#: templates/jobs/application_success.html:183 +msgid "" +"We appreciate your interest in joining our team. Our hiring team will review " +"your application and contact you if there's a potential match for this " +"position." +msgstr "" + +#: templates/jobs/application_success.html:188 +#, fuzzy +#| msgid "Return on Assets" +msgid "Return to Job Listings" +msgstr "العائد على الأصول" + +#: templates/jobs/career.html:224 templates/jobs/career.html:237 +msgid "Job ID#" +msgstr "" + +#: templates/jobs/career.html:225 templates/jobs/career.html:239 +#: templates/jobs/create_job.html:122 templates/jobs/edit_job.html:122 +#: templates/meetings/meeting_details.html:251 +#: templates/recruitment/agency_portal_assignment_detail.html:143 +#, fuzzy +#| msgid "Title" msgid "Job Title" +msgstr "العنوان" + +#: templates/jobs/career.html:226 templates/jobs/career.html:241 +msgid "Hiring" msgstr "" -#: templates/jobs/create_job.html:137 +#: templates/jobs/career.html:227 templates/jobs/career.html:244 +#, fuzzy +#| msgid "Closing Date" +msgid "Posting Date" +msgstr "تاريخ الإغلاق" + +#: templates/jobs/career.html:228 templates/jobs/career.html:247 +#, fuzzy +#| msgid "Apply Filter" +msgid "Apply Before" +msgstr "تطبيق" + +#: templates/jobs/career.html:229 templates/jobs/career.html:249 +#: templates/recruitment/candidate_interview_view.html:266 +msgid "Link" +msgstr "" + +#: templates/jobs/career.html:253 +#: templates/participants/participants_list.html:186 +#: templates/recruitment/candidate_list.html:243 +msgid "Apply" +msgstr "تطبيق" + +#: templates/jobs/create_job.html:105 templates/jobs/edit_job.html:105 +msgid "Edit Job Posting" +msgstr "" + +#: templates/jobs/create_job.html:105 templates/jobs/edit_job.html:105 +#, fuzzy +#| msgid "Create New Product" +msgid "Create New Job Posting" +msgstr "إنشاء منتج جديد" + +#: templates/jobs/create_job.html:116 templates/jobs/edit_job.html:116 +#, fuzzy +#| msgid "Colors Details" +msgid "Core Position Details" +msgstr "تفاصيل الألوان" + +#: templates/jobs/create_job.html:129 templates/jobs/edit_job.html:129 +#: templates/meetings/meeting_details.html:254 +#, fuzzy +#| msgid "Stock Type" msgid "Job Type" -msgstr "" +msgstr "نوع المخزون" -#: templates/jobs/create_job.html:148 -msgid "Department" -msgstr "" - -#: templates/jobs/create_job.html:158 -msgid "Position Number" -msgstr "" - -#: templates/jobs/create_job.html:169 +#: templates/jobs/create_job.html:137 templates/jobs/edit_job.html:137 +#, fuzzy +#| msgid "Balance Type" msgid "Workplace Type" +msgstr "نوع الرصيد" + +#: templates/jobs/create_job.html:144 templates/jobs/edit_job.html:144 +#, fuzzy +#| msgid "Expiration Date" +msgid "Application Deadline" +msgstr "تاريخ الانتهاء" + +#: templates/jobs/create_job.html:151 templates/jobs/edit_job.html:151 +#, fuzzy +#| msgid "payment" +msgid "Department" +msgstr "الدفعة" + +#: templates/jobs/create_job.html:158 templates/jobs/edit_job.html:158 +#: templates/recruitment/partials/stats_cards.html:37 +#, fuzzy +#| msgid "Position" +msgid "Open Positions" +msgstr "المركز" + +#: templates/jobs/create_job.html:165 templates/jobs/edit_job.html:165 +#, fuzzy +#| msgid "Car Locations" +msgid "Max Applications" +msgstr "مواقف السيارات" + +#: templates/jobs/create_job.html:183 templates/jobs/edit_job.html:183 +msgid "Job Content" msgstr "" -#: templates/jobs/create_job.html:179 -#: templates/recruitment/training_list.html:151 -msgid "Created By" -msgstr "" - -#: templates/jobs/create_job.html:193 -msgid "Location" -msgstr "" - -#: templates/jobs/create_job.html:199 -msgid "City" -msgstr "" - -#: templates/jobs/create_job.html:209 -msgid "State/Province" -msgstr "" - -#: templates/jobs/create_job.html:219 -msgid "Country" -msgstr "" - -#: templates/jobs/create_job.html:233 -msgid "Job Details" -msgstr "" - -#: templates/jobs/create_job.html:239 templates/jobs/job_detail.html:341 -msgid "Job Description" -msgstr "" - -#: templates/jobs/create_job.html:250 +#: templates/jobs/create_job.html:197 templates/jobs/edit_job.html:197 msgid "Qualifications and Requirements" msgstr "" -#: templates/jobs/create_job.html:261 -msgid "Salary Range" +#: templates/jobs/create_job.html:211 templates/jobs/edit_job.html:211 +msgid "Benefits & Application Instructions" msgstr "" -#: templates/jobs/create_job.html:271 templates/jobs/job_detail.html:353 -msgid "Benefits" -msgstr "" +#: templates/jobs/create_job.html:243 templates/jobs/edit_job.html:243 +#, fuzzy +#| msgid "Personal Information" +msgid "Internal & Promotion" +msgstr "المعلومات الشخصية" -#: templates/jobs/create_job.html:285 -msgid "Application Information" -msgstr "" +#: templates/jobs/create_job.html:249 templates/jobs/edit_job.html:249 +#, fuzzy +#| msgid "Quotation Number" +msgid "Position Number" +msgstr "رقم عرض السعر" -#: templates/jobs/create_job.html:291 -msgid "Application URL" -msgstr "" - -#: templates/jobs/create_job.html:297 -msgid "Full URL where candidates will apply" -msgstr "" - -#: templates/jobs/create_job.html:303 -msgid "Application Deadline" -msgstr "" - -#: templates/jobs/create_job.html:313 -msgid "Desired Start Date" -msgstr "" - -#: templates/jobs/create_job.html:324 templates/jobs/job_detail.html:363 -msgid "Application Instructions" -msgstr "" - -#: templates/jobs/create_job.html:338 -msgid "Post Reach Field" -msgstr "" - -#: templates/jobs/create_job.html:344 -msgid "Hashtags" -msgstr "" - -#: templates/jobs/create_job.html:358 templates/jobs/job_detail.html:545 -msgid "Internal Information" -msgstr "" - -#: templates/jobs/create_job.html:364 +#: templates/jobs/create_job.html:256 templates/jobs/edit_job.html:256 +#, fuzzy +#| msgid "Reports" msgid "Reports To" +msgstr "التقارير" + +#: templates/jobs/create_job.html:266 templates/jobs/edit_job.html:266 +msgid "Hashtags (For Promotion/Search on Linkedin)" msgstr "" -#: templates/jobs/create_job.html:374 -msgid "Open Positions" +#: templates/jobs/create_job.html:269 templates/jobs/edit_job.html:269 +msgid "Comma-separated list of hashtags, e.g., #hiring, #professor" msgstr "" -#: templates/jobs/job_detail.html:262 -#: templates/recruitment/candidate_detail.html:236 -msgid "Core Details" +#: templates/jobs/create_job.html:282 templates/jobs/edit_job.html:282 +#, fuzzy +#| msgid "Location" +msgid "Location & Salary" +msgstr "الموقع" + +#: templates/jobs/create_job.html:288 templates/jobs/edit_job.html:288 +#: templates/recruitment/agency_detail.html:351 +msgid "City" +msgstr "المدينة" + +#: templates/jobs/create_job.html:295 templates/jobs/edit_job.html:295 +msgid "State/Province" +msgstr "الولاية/المقاطعة" + +#: templates/jobs/create_job.html:312 templates/jobs/edit_job.html:312 +#, fuzzy +#| msgid "Salary" +msgid "Salary Range" +msgstr "الراتب" + +#: templates/jobs/create_job.html:330 templates/jobs/edit_job.html:330 +#, fuzzy +#| msgid "Save PO" +msgid "Save Job" +msgstr "حفظ أمر الشراء" + +#: templates/jobs/job_candidates_list.html:118 +msgid "Applicants for" msgstr "" -#: templates/jobs/job_detail.html:267 -msgid "Description & Requirements" +#: templates/jobs/job_candidates_list.html:131 +#, fuzzy +#| msgid "Add New Account" +msgid "Add New Applicant" +msgstr "إضافة حساب جديد" + +#: templates/jobs/job_candidates_list.html:162 +#: templates/jobs/job_detail.html:315 +#, fuzzy +#| msgid "Total Accounts" +msgid "Total Applicants" +msgstr "إجمالي الحسابات" + +#: templates/jobs/job_candidates_list.html:175 +#, fuzzy +#| msgid "Search files" +msgid "Search Applicants" +msgstr "البحث في الملفات" + +#: templates/jobs/job_candidates_list.html:179 +msgid "Search by name, email, phone, or stage..." msgstr "" -#: templates/jobs/job_detail.html:273 -msgid "Application" +#: templates/jobs/job_candidates_list.html:185 +#, fuzzy +#| msgid "Filters" +msgid "Filter Results" +msgstr "التصفية" + +#: templates/jobs/job_candidates_list.html:190 +#: templates/recruitment/notification_list.html:200 +#, fuzzy +#| msgid "Filters" +msgid "Clear Filters" +msgstr "التصفية" + +#: templates/jobs/job_candidates_list.html:210 +#: templates/recruitment/candidate_list.html:230 +msgid "All Stages" +msgstr "جميع المراحل" + +#: templates/jobs/job_candidates_list.html:226 +#: templates/meetings/meeting_details.html:303 +#: templates/participants/participants_list.html:212 +#: templates/recruitment/agency_assignment_detail.html:239 +#: templates/recruitment/agency_portal_assignment_detail.html:241 +#: templates/recruitment/candidate_exam_view.html:250 +#: templates/recruitment/candidate_hired_view.html:232 +#: templates/recruitment/candidate_interview_view.html:261 +#: templates/recruitment/candidate_list.html:269 +#: templates/recruitment/candidate_offer_view.html:246 +#: templates/recruitment/candidate_screening_view.html:364 +msgid "Name" +msgstr "الاسم" + +#: templates/jobs/job_candidates_list.html:230 +#: templates/jobs/job_candidates_list.html:343 +#: templates/recruitment/candidate_detail.html:355 +#, fuzzy +#| msgid "Approved Date" +msgid "Applied Date" +msgstr "تاريخ الموافقة" + +#: templates/jobs/job_candidates_list.html:253 templates/jobs/job_list.html:303 +#: templates/jobs/job_list.html:365 templates/meetings/list_meetings.html:272 +#: templates/meetings/list_meetings.html:366 +#: templates/participants/participants_list.html:232 +#: templates/participants/participants_list.html:276 +#: templates/recruitment/agency_list.html:246 +#: templates/recruitment/agency_list.html:319 +#: templates/recruitment/candidate_list.html:325 +#: templates/recruitment/candidate_list.html:373 +#: templates/recruitment/candidate_update.html:104 +#: templates/recruitment/training_list.html:177 +#: templates/recruitment/training_list.html:218 +#: templates/recruitment/training_update.html:119 +msgid "View" +msgstr "عرض" + +#: templates/jobs/job_candidates_list.html:277 +#, fuzzy +#| msgid "select" +msgid "Selected" +msgstr "اختيار" + +#: templates/jobs/job_candidates_list.html:280 +#, fuzzy +#| msgid "Mark as Review" +msgid "Mark Interview" +msgstr "وضع قيد المراجعة" + +#: templates/jobs/job_candidates_list.html:284 +msgid "Mark Offer" msgstr "" -#: templates/jobs/job_detail.html:284 +#: templates/jobs/job_candidates_list.html:349 +msgid "View Profile" +msgstr "عرض الملف الشخصي" + +#: templates/jobs/job_candidates_list.html:376 +#, fuzzy +#| msgid "No Entries found" +msgid "No applicants found" +msgstr "لم يتم العثور على أي مدخلات" + +#: templates/jobs/job_candidates_list.html:377 +msgid "There are no candidates who have applied for this position yet." +msgstr "" + +#: templates/jobs/job_candidates_list.html:379 +msgid "Add First Applicant" +msgstr "" + +#: templates/jobs/job_detail.html:171 +msgid "JOB ID: " +msgstr "" + +#: templates/jobs/job_detail.html:208 +msgid "Share Public Link" +msgstr "" + +#: templates/jobs/job_detail.html:212 +#: templates/meetings/meeting_details.html:270 +#: templates/meetings/meeting_details.html:475 +msgid "Copied!" +msgstr "" + +#: templates/jobs/job_detail.html:220 msgid "Administrative & Location" msgstr "" -#: templates/jobs/job_detail.html:287 -msgid "Department:" -msgstr "" +#: templates/jobs/job_detail.html:221 +#, fuzzy +#| msgid "Edit Order" +msgid "Edit JOb" +msgstr "تعديل الطلب" -#: templates/jobs/job_detail.html:290 +#: templates/jobs/job_detail.html:228 +#, fuzzy +#| msgid "Position" msgid "Position No:" -msgstr "" +msgstr "المركز" -#: templates/jobs/job_detail.html:293 -msgid "Job Type:" -msgstr "" +#: templates/jobs/job_detail.html:243 +#, fuzzy +#| msgid "Created By" +msgid "Created By:" +msgstr "تم الإنشاء بواسطة" + +#: templates/jobs/job_detail.html:246 +#, fuzzy +#| msgid "Created At" +msgid "Created At:" +msgstr "تاريخ الإنشاء" + +#: templates/jobs/job_detail.html:249 +#, fuzzy +#| msgid "Updated At" +msgid "Updated At:" +msgstr "تم التحديث" + +#: templates/jobs/job_detail.html:262 +#, fuzzy +#| msgid "Qualification" +msgid "Required Qualifications" +msgstr "التأهيل" #: templates/jobs/job_detail.html:296 -msgid "Workplace:" +#, fuzzy +#| msgid "Lead Tracking" +msgid "Tracking" +msgstr "تتبع العملاء المحتملين" + +#: templates/jobs/job_detail.html:301 +msgid "Form Template" msgstr "" -#: templates/jobs/job_detail.html:299 -msgid "Location:" -msgstr "" - -#: templates/jobs/job_detail.html:302 -msgid "Created By:" -msgstr "" - -#: templates/jobs/job_detail.html:305 -msgid "Financial & Timeline" -msgstr "" - -#: templates/jobs/job_detail.html:311 -msgid "Salary:" +#: templates/jobs/job_detail.html:306 +msgid "LinkedIn" msgstr "" #: templates/jobs/job_detail.html:319 -msgid "Start Date:" -msgstr "" +#, fuzzy +#| msgid "Create Account" +msgid "Create Applicant" +msgstr "إنشاء حساب" -#: templates/jobs/job_detail.html:327 -msgid "Deadline:" -msgstr "" +#: templates/jobs/job_detail.html:322 +#, fuzzy +#| msgid "Manage Groups" +msgid "Manage Applicants" +msgstr "إدارة المجموعات" #: templates/jobs/job_detail.html:329 -msgid "EXPIRED" +#, fuzzy +#| msgid "All Stages" +msgid "Applicant Stages" +msgstr "جميع المراحل" + +#: templates/jobs/job_detail.html:332 +msgid "" +"The applicant tracking flow is defined by the attached Form Template. View " +"the Form Template tab to manage stages and fields." msgstr "" -#: templates/jobs/job_detail.html:347 -msgid "Required Qualifications" -msgstr "" - -#: templates/jobs/job_detail.html:375 -msgid "Edit Job" -msgstr "" - -#: templates/jobs/job_detail.html:380 -msgid "Upload Image for Post" -msgstr "" - -#: templates/jobs/job_detail.html:395 -msgid "Applicants" -msgstr "" - -#: templates/jobs/job_detail.html:400 -msgid "Manage" -msgstr "" - -#: templates/jobs/job_detail.html:405 -msgid "Info" -msgstr "" - -#: templates/jobs/job_detail.html:464 -msgid "View All Applicants" -msgstr "" - -#: templates/jobs/job_detail.html:471 -msgid "No applicants yet" -msgstr "" - -#: templates/jobs/job_detail.html:472 -msgid "Candidates will appear here once they apply for this position." -msgstr "" - -#: templates/jobs/job_detail.html:481 -msgid "LinkedIn Integration" -msgstr "" - -#: templates/jobs/job_detail.html:485 -msgid "Posted successfully!" -msgstr "" - -#: templates/jobs/job_detail.html:489 -msgid "View on LinkedIn" -msgstr "" - -#: templates/jobs/job_detail.html:493 -msgid "Posted on:" -msgstr "" - -#: templates/jobs/job_detail.html:496 -msgid "This job has not been posted to LinkedIn yet." -msgstr "" - -#: templates/jobs/job_detail.html:504 -msgid "Re-post to LinkedIn" -msgstr "" - -#: templates/jobs/job_detail.html:504 -msgid "Post to LinkedIn" -msgstr "" - -#: templates/jobs/job_detail.html:510 -msgid "You need to" -msgstr "" - -#: templates/jobs/job_detail.html:510 -msgid "authenticate with LinkedIn" -msgstr "" - -#: templates/jobs/job_detail.html:510 -msgid "first." -msgstr "" - -#: templates/jobs/job_detail.html:517 -msgid "Error:" -msgstr "" - -#: templates/jobs/job_detail.html:523 +#: templates/jobs/job_detail.html:339 +#, fuzzy +#| msgid "User Management" msgid "Form Management" -msgstr "" +msgstr "إدارة المستخدمين" -#: templates/jobs/job_detail.html:526 +#: templates/jobs/job_detail.html:342 msgid "Manage the custom application forms associated with this job posting." msgstr "" -#: templates/jobs/job_detail.html:530 -msgid "Create New Form" +#: templates/jobs/job_detail.html:352 +#, fuzzy +#| msgid "Revenue Estimate" +msgid "View Form Template" +msgstr "تقدير الإيرادات" + +#: templates/jobs/job_detail.html:355 +msgid "Manage Form Template" msgstr "" -#: templates/jobs/job_detail.html:534 -msgid "View All Existing Forms" +#: templates/jobs/job_detail.html:358 +msgid "" +"This job status is not active, the form will appear once the job is made " +"active" msgstr "" -#: templates/jobs/job_detail.html:538 -#: templates/recruitment/candidate_create.html:131 -msgid "Create Candidate" +#: templates/jobs/job_detail.html:371 +#, fuzzy +#| msgid "Client Information" +msgid "LinkedIn Integration" +msgstr "معلومات العميل" + +#: templates/jobs/job_detail.html:375 +#, fuzzy +#| msgid "Note added successfully" +msgid "Posted successfully!" +msgstr "تمت إضافة الملاحظة بنجاح" + +#: templates/jobs/job_detail.html:379 +msgid "View on LinkedIn" msgstr "" -#: templates/jobs/job_detail.html:547 -msgid "Internal Job ID:" +#: templates/jobs/job_detail.html:383 +#, fuzzy +#| msgid "Posted" +msgid "Posted on:" +msgstr "تم النشر" + +#: templates/jobs/job_detail.html:386 +msgid "This job has not been posted to LinkedIn yet." msgstr "" -#: templates/jobs/job_detail.html:548 -msgid "Created:" +#: templates/jobs/job_detail.html:394 +msgid "Re-post to LinkedIn" msgstr "" -#: templates/jobs/job_detail.html:549 -msgid "Last Updated:" +#: templates/jobs/job_detail.html:394 +msgid "Post to LinkedIn" msgstr "" -#: templates/jobs/job_detail.html:551 -msgid "Reports To:" +#: templates/jobs/job_detail.html:399 +#, fuzzy +#| msgid "Upload Cars CSV" +msgid "Upload Image for Post" +msgstr "رفع بيانات السيارات " + +#: templates/jobs/job_detail.html:404 +#, fuzzy +#| msgid "You Still Owe" +msgid "You need to" +msgstr "ما زلت مديناً" + +#: templates/jobs/job_detail.html:404 +msgid "authenticate with LinkedIn" msgstr "" -#: templates/jobs/job_detail.html:557 -msgid "Back to Jobs" +#: templates/jobs/job_detail.html:404 +#, fuzzy +#| msgid "First" +msgid "first." +msgstr "الأول" + +#: templates/jobs/job_detail.html:411 +#: templates/recruitment/candidate_hired_view.html:466 +#, fuzzy +#| msgid "Error" +msgid "Error:" +msgstr "خطأ" + +#: templates/jobs/job_detail.html:416 +#, fuzzy +#| msgid "Update Lead Actions" +msgid "Update LinkedIn Content" +msgstr "تحديث إجراءات العميل المحتمل" + +#: templates/jobs/job_detail.html:429 +msgid "Candidate Categories & Scores" msgstr "" -#: templates/jobs/job_detail_candidate.html:144 -msgid "Job Overview" +#: templates/jobs/job_detail.html:444 +#, fuzzy +#| msgid "Service Performance Issues:" +msgid "Key Performance Indicators" +msgstr "مشاكل أداء الخدمة:" + +#: templates/jobs/job_detail.html:457 +msgid "Avg. AI Score" +msgstr "" + +#: templates/jobs/job_detail.html:468 +#: templates/recruitment/partials/stats_cards.html:98 +msgid "High Potential" +msgstr "" + +#: templates/jobs/job_detail.html:501 +msgid "Vacancy Fill Rate" +msgstr "" + +#: templates/jobs/job_detail.html:523 +#, fuzzy +#| msgid "Estimate Model Status" +msgid "Edit Job Status" +msgstr "حالة نموذج التقدير" + +#: templates/jobs/job_detail.html:529 +#, fuzzy +#| msgid "New Status" +msgid "Select New Status" +msgstr "الحالة الجديدة" + +#: templates/jobs/job_detail.html:535 +msgid "Status form not available. Please check your view." +msgstr "" + +#: templates/jobs/job_detail.html:541 +#: templates/meetings/meeting_details.html:396 +#: templates/recruitment/agency_portal_assignment_detail.html:578 +#: templates/user/profile.html:147 +msgid "Save Changes" +msgstr "حفظ التغييرات" + +#: templates/jobs/job_list.html:204 +msgid "Job Postings" +msgstr "" + +#: templates/jobs/job_list.html:207 +#, fuzzy +#| msgid "Create New PO" +msgid "Create New Job" +msgstr "إنشاء أمر شراء جديد" + +#: templates/jobs/job_list.html:216 +msgid "Search by Title or Department" +msgstr "" + +#: templates/jobs/job_list.html:226 templates/meetings/list_meetings.html:200 +#, fuzzy +#| msgid "bill Status" +msgid "Filter by Status" +msgstr "حالة الفاتورة" + +#: templates/jobs/job_list.html:228 templates/meetings/list_meetings.html:202 +#: templates/recruitment/agency_assignment_list.html:86 +#, fuzzy +#| msgid "All Stages" +msgid "All Statuses" +msgstr "جميع المراحل" + +#: templates/jobs/job_list.html:229 +msgid "Draft" +msgstr "مسودة" + +#: templates/jobs/job_list.html:231 +msgid "Closed" +msgstr "مغلقة" + +#: templates/jobs/job_list.html:232 +#, fuzzy +#| msgid "Received" +msgid "Archived" +msgstr "تم الاستلام" + +#: templates/jobs/job_list.html:238 templates/meetings/list_meetings.html:215 +#, fuzzy +#| msgid "Apply Filter" +msgid "Apply Filters" +msgstr "تطبيق" + +#: templates/jobs/job_list.html:242 templates/meetings/list_meetings.html:219 +#: templates/participants/participants_list.html:190 +#: templates/recruitment/candidate_list.html:247 +#: templates/recruitment/notification_list.html:60 +msgid "Clear" +msgstr "مسح" + +#: templates/jobs/job_list.html:268 +msgid "Job Title / ID" +msgstr "" + +#: templates/jobs/job_list.html:270 +msgid "Max Apps" +msgstr "" + +#: templates/jobs/job_list.html:271 +#: templates/recruitment/agency_assignment_detail.html:144 +#: templates/recruitment/agency_assignment_list.html:115 +#: templates/recruitment/agency_portal_assignment_detail.html:158 +#: templates/recruitment/agency_portal_dashboard.html:162 +#, fuzzy +#| msgid "Declined" +msgid "Deadline" +msgstr "مرفوض" + +#: templates/jobs/job_list.html:273 +#, fuzzy +#| msgid "Managers" +msgid "Manage Forms" +msgstr "المديرون" + +#: templates/jobs/job_list.html:276 +msgid "Applicants Metrics" +msgstr "" + +#: templates/jobs/job_list.html:281 +msgid "All" +msgstr "الكل" + +#: templates/jobs/job_list.html:282 +#: templates/jobs/partials/applicant_tracking.html:112 +msgid "Screened" +msgstr "" + +#: templates/jobs/job_list.html:355 +msgid "Offers Made" +msgstr "" + +#: templates/jobs/job_list.html:356 +msgid "Form" +msgstr "نموذج" + +#: templates/jobs/job_list.html:359 +msgid "N/A" +msgstr "غير متوفر" + +#: templates/jobs/job_list.html:366 +msgid "Details" +msgstr "التفاصيل" + +#: templates/jobs/job_list.html:369 +#, fuzzy +#| msgid "Edit Group" +msgid "Edit Job" +msgstr "تعديل المجموعة" + +#: templates/jobs/job_list.html:392 +#, fuzzy +#| msgid "No bill found." +msgid "No job postings found" +msgstr "لم يتم العثور على فاتورة." + +#: templates/jobs/job_list.html:393 +msgid "Create your first job posting to get started or adjust your filters." msgstr "" #: templates/meetings/create_meeting.html:4 +#, fuzzy +#| msgid "Create Quotation" msgid "Create Zoom Meeting" -msgstr "" +msgstr "إنشاء عرض" #: templates/meetings/create_meeting.html:151 +#, fuzzy +#| msgid "Create New Customer" msgid "Create New Zoom Meeting" -msgstr "" +msgstr "إنشاء عميل جديد" #: templates/meetings/create_meeting.html:155 -#: templates/meetings/meeting_details.html:19 +#: templates/meetings/meeting_details.html:210 +#, fuzzy +#| msgid "Back to list" msgid "Back to Meetings" -msgstr "" +msgstr "العودة إلى القائمة" -#: templates/meetings/create_meeting.html:170 -msgid "Duration (minutes)" -msgstr "" +#: templates/meetings/delete_meeting_form.html:4 +#, fuzzy +#| msgid "Are you sure you want to delete this working hours?" +msgid "" +"Are you sure you want to delete this meeting? This action is irreversible." +msgstr "هل أنت متأكد أنك تريد حذف ساعات العمل هذه؟" + +#: templates/meetings/delete_meeting_form.html:7 +#: templates/meetings/meeting_details.html:222 +#, fuzzy +#| msgid "Sales Meeting" +msgid "Delete Meeting" +msgstr "اجتماع مبيعات" #: templates/meetings/list_meetings.html:4 -#: templates/meetings/list_meetings.html:233 +#: templates/meetings/list_meetings.html:176 +#, fuzzy +#| msgid "Meeting" msgid "Zoom Meetings" +msgstr "اجتماع" + +#: templates/meetings/list_meetings.html:187 +msgid "Search by Topic" msgstr "" -#: templates/meetings/list_meetings.html:255 +#: templates/meetings/list_meetings.html:209 +#: templates/meetings/meeting_details.html:252 +#, fuzzy +#| msgid "Contact Name" +msgid "Candidate Name" +msgstr "اسم جهة الاتصال" + +#: templates/meetings/list_meetings.html:210 +#, fuzzy +#| msgid "Search opportunities..." +msgid "Search by candidate..." +msgstr "ابحث في الفرص..." + +#: templates/meetings/list_meetings.html:264 +#: templates/meetings/list_meetings.html:309 +#: templates/user/admin_settings.html:174 msgid "ID" msgstr "" -#: templates/meetings/list_meetings.html:270 -msgid "Status" -msgstr "" - -#: templates/meetings/list_meetings.html:274 -msgid "Waiting" -msgstr "" - -#: templates/meetings/list_meetings.html:276 -msgid "Started" -msgstr "" - -#: templates/meetings/list_meetings.html:278 -msgid "Ended" -msgstr "" - -#: templates/meetings/list_meetings.html:289 -#: templates/meetings/meeting_details.html:45 -msgid "Join Meeting" -msgstr "" - -#: templates/meetings/list_meetings.html:296 -#: templates/recruitment/candidate_list.html:174 -#: templates/recruitment/candidate_update.html:104 -#: templates/recruitment/training_list.html:164 -#: templates/recruitment/training_update.html:119 -msgid "View" -msgstr "" - -#: templates/meetings/list_meetings.html:302 -msgid "Update" -msgstr "" - -#: templates/meetings/list_meetings.html:356 -msgid "No meetings found." -msgstr "" +#: templates/meetings/list_meetings.html:265 +#, fuzzy +#| msgid "Start Time" +msgid "Start" +msgstr "وقت البدء" +#: templates/meetings/list_meetings.html:277 #: templates/meetings/list_meetings.html:362 +#, fuzzy +#| msgid "Joined" +msgid "Join" +msgstr "انضم" + +#: templates/meetings/list_meetings.html:423 +#, fuzzy +#| msgid "No bill found." +msgid "No Zoom meetings found" +msgstr "لم يتم العثور على فاتورة." + +#: templates/meetings/list_meetings.html:424 +msgid "Create your first meeting or adjust your filters." +msgstr "" + +#: templates/meetings/list_meetings.html:426 +#, fuzzy +#| msgid "Create Invoice" msgid "Create Your First Meeting" +msgstr "إنشاء فاتورة" + +#: templates/meetings/meeting_details.html:216 +#, fuzzy +#| msgid "Meeting" +msgid "Edit Meeting" +msgstr "اجتماع" + +#: templates/meetings/meeting_details.html:221 +#, fuzzy +#| msgid "Are you sure you want to delete this account?" +msgid "Are you sure you want to delete this meeting? This action is permanent." +msgstr "هل أنت متأكد أنك تريد حذف هذا الحساب؟" + +#: templates/meetings/meeting_details.html:249 +#, fuzzy +#| msgid "Service Details" +msgid "Interview Detail" +msgstr "تفاصيل الخدمة" + +#: templates/meetings/meeting_details.html:253 +#, fuzzy +#| msgid "Change Email" +msgid "Candidate Email" +msgstr "تغيير البريد الإلكتروني" + +#: templates/meetings/meeting_details.html:262 +#, fuzzy +#| msgid "Contact Details" +msgid "Connection Details" +msgstr "تفاصيل الاتصال" + +#: templates/meetings/meeting_details.html:264 +#, fuzzy +#| msgid "Start Time" +msgid "Date & Time" +msgstr "وقت البدء" + +#: templates/meetings/meeting_details.html:265 +#: templates/recruitment/notification_detail.html:71 +msgid "minutes" msgstr "" -#: templates/meetings/meeting_details.html:4 -msgid "Meeting Details" -msgstr "" - -#: templates/meetings/meeting_details.html:23 -#: templates/meetings/update_meeting.html:191 -msgid "Meeting Information" -msgstr "" - -#: templates/meetings/meeting_details.html:37 +#: templates/meetings/meeting_details.html:267 +#, fuzzy +#| msgid "To Email" msgid "Host Email" +msgstr "إلى البريد الإلكتروني" + +#: templates/meetings/meeting_details.html:277 +msgid "Copy URL" msgstr "" -#: templates/meetings/meeting_details.html:44 -msgid "Join Information" +#: templates/meetings/meeting_details.html:298 +#, fuzzy +#| msgid "Assigned Groups" +msgid "Assigned Participants" +msgstr "مُعين إلى" + +#: templates/meetings/meeting_details.html:304 +msgid "Role/Designation" msgstr "" -#: templates/meetings/meeting_details.html:48 -msgid "Password" +#: templates/meetings/meeting_details.html:317 +msgid "External Participants" msgstr "" -#: templates/meetings/meeting_details.html:58 -msgid "Host Video" +#: templates/meetings/meeting_details.html:326 +#, fuzzy +#| msgid "System" +msgid "System User" +msgstr "نظام" + +#: templates/meetings/meeting_details.html:346 +msgid "Comments" +msgstr "ملاحظات" + +#: templates/meetings/meeting_details.html:369 +#: templates/meetings/meeting_details.html:391 +#, fuzzy +#| msgid "Post Comment" +msgid "Edit Comment" +msgstr "نشر تعليق" + +#: templates/meetings/meeting_details.html:376 +#, fuzzy +#| msgid "Create Account" +msgid "Delete Comment" +msgstr "إنشاء حساب" + +#: templates/meetings/meeting_details.html:376 +#, fuzzy +#| msgid "Are you sure you want to delete this account?" +msgid "Are you sure you want to delete this comment?" +msgstr "هل أنت متأكد أنك تريد حذف هذا الحساب؟" + +#: templates/meetings/meeting_details.html:407 +msgid "No comments yet. Be the first to comment!" msgstr "" -#: templates/meetings/meeting_details.html:81 -msgid "View API Response" +#: templates/meetings/meeting_details.html:414 +#, fuzzy +#| msgid "Add New Customer" +msgid "Add a New Comment" +msgstr "إضافة عميل جديد" + +#: templates/meetings/meeting_details.html:427 +#, fuzzy +#| msgid "Post Comment" +msgid "Submit Comment" +msgstr "نشر تعليق" + +#: templates/meetings/meeting_details.html:431 +msgid "You must be logged in to add a comment." msgstr "" -#: templates/meetings/meeting_details.html:83 -#: templates/meetings/update_meeting.html:218 +#: templates/meetings/meeting_details.html:475 +#, fuzzy +#| msgid "Failed" +msgid "Copy Failed." +msgstr "فشل" + +#: templates/meetings/reschedule_meeting.html:9 +#: templates/meetings/schedule_meeting_form.html:7 +#: templates/recruitment/schedule_meeting_form.html:13 +#, fuzzy +#| msgid "Update Invoice" +msgid "Update Interview" +msgstr "تحديث الفاتورة" + +#: templates/meetings/reschedule_meeting.html:15 +#, fuzzy +#| msgid "You do not have permission to schedule lead" +msgid "You are updating the existing meeting schedule." +msgstr "ليست لديك صلاحية جدولة هذا العميل المتوقع" + +#: templates/meetings/reschedule_meeting.html:27 +#: templates/meetings/schedule_meeting_form.html:27 +#: templates/recruitment/schedule_meeting_form.html:38 +#, fuzzy +#| msgid "Meeting" +msgid "Meeting Topic" +msgstr "اجتماع" + +#: templates/meetings/reschedule_meeting.html:65 +#: templates/meetings/schedule_meeting_form.html:82 +#: templates/meetings/update_meeting.html:233 +#, fuzzy +#| msgid "Sales Meeting" msgid "Update Meeting" +msgstr "اجتماع مبيعات" + +#: templates/meetings/schedule_meeting_form.html:16 +msgid "Candidate has upcoming interviews. Updating existing schedule." msgstr "" -#: templates/meetings/meeting_details.html:86 -msgid "Are you sure?" +#: templates/meetings/schedule_meeting_form.html:38 +msgid "e.g., Technical Screening, HR Interview" msgstr "" -#: templates/meetings/meeting_details.html:86 -msgid "Delete Meeting" -msgstr "" +#: templates/meetings/set_candidate_form.html:5 +#: templates/recruitment/candidate_interview_view.html:506 +msgid "Save" +msgstr "حفظ" -#: templates/meetings/meeting_details.html:93 -msgid "Zoom API Response" -msgstr "" - -#: templates/meetings/update_meeting.html:3 -#: templates/meetings/update_meeting.html:174 +#: templates/meetings/update_meeting.html:4 +#: templates/meetings/update_meeting.html:196 +#, fuzzy +#| msgid "Sales Meeting" msgid "Update Zoom Meeting" -msgstr "" +msgstr "اجتماع مبيعات" -#: templates/meetings/update_meeting.html:175 +#: templates/meetings/update_meeting.html:198 +#, fuzzy +#| msgid "Indicates the status of the reschedule action." msgid "Modify the details of your scheduled meeting" +msgstr "يشير إلى حالة إجراء إعادة الجدولة." + +#: templates/meetings/update_meeting.html:207 +#, fuzzy +#| msgid "Back to PO Detail" +msgid "Back to Details" +msgstr "العودة إلى تفاصيل أمر الشراء" + +#: templates/participants/participants_create.html:94 +#, fuzzy +#| msgid "Create New Product" +msgid "Create New Participant" +msgstr "إنشاء منتج جديد" + +#: templates/participants/participants_create.html:96 +msgid "Enter details to create a new participant record." msgstr "" -#: templates/meetings/update_meeting.html:197 -msgid "Topic:" +#: templates/participants/participants_create.html:99 +#: templates/participants/participants_create.html:101 +#: templates/participants/participants_detail.html:135 +#: templates/participants/participants_detail.html:136 +#: templates/recruitment/candidate_create.html:99 +#: templates/recruitment/candidate_create.html:101 +#: templates/recruitment/candidate_detail.html:645 +#: templates/recruitment/candidate_update.html:97 +#: templates/recruitment/candidate_update.html:99 +#: templates/recruitment/training_create.html:112 +#: templates/recruitment/training_create.html:114 +#: templates/recruitment/training_update.html:112 +#: templates/recruitment/training_update.html:114 +msgid "Back to List" +msgstr "العودة إلى القائمة" + +#: templates/participants/participants_create.html:112 +#, fuzzy +#| msgid "Client Information" +msgid "Participant Information" +msgstr "معلومات العميل" + +#: templates/participants/participants_create.html:131 +#, fuzzy +#| msgid "Mark as Draft" +msgid "Save Participant" +msgstr "وضع كمسودة" + +#: templates/participants/participants_detail.html:131 +#, fuzzy +#| msgid "Plan Details" +msgid "Participant Details" +msgstr "تفاصيل الخطة" + +#: templates/participants/participants_detail.html:139 +#, fuzzy +#| msgid "Edit Permission" +msgid "Edit Participant" +msgstr "تحرير الإذن" + +#: templates/participants/participants_detail.html:140 +msgid "Edit Profile" +msgstr "تعديل الملف الشخصي" + +#: templates/participants/participants_detail.html:161 +#, fuzzy +#| msgid "Contact Information" +msgid "Contact & Role Information" +msgstr "معلومات العميل" + +#: templates/participants/participants_detail.html:166 +#: templates/user/admin_settings.html:175 +msgid "Full Name" +msgstr "الاسم الكامل" + +#: templates/participants/participants_detail.html:192 +#, fuzzy +#| msgid "Assigned To" +msgid "Assigned Jobs" +msgstr "مُعين إلى" + +#: templates/participants/participants_detail.html:199 +#, fuzzy +#| msgid "This user is not assigned to any groups." +msgid "This participant is not currently assigned to any job." +msgstr "هذا المستخدم غير مُعين إلى أي مجموعات." + +#: templates/participants/participants_detail.html:210 +msgid "Metadata" msgstr "" -#: templates/meetings/update_meeting.html:202 -msgid "Start Time (ISO 8601):" +#: templates/participants/participants_detail.html:213 +#, fuzzy +#| msgid "Date Created" +msgid "Record Created" +msgstr "تاريخ الإنشاء" + +#: templates/participants/participants_detail.html:214 +#: templates/participants/participants_detail.html:219 +msgid "at" +msgstr "في" + +#: templates/participants/participants_detail.html:225 +#, fuzzy +#| msgid "Assigned To" +msgid "Total Assigned Jobs" +msgstr "مُعين إلى" + +#: templates/participants/participants_detail.html:240 +#: templates/participants/participants_list.html:322 +msgid "Confirm Deletion" +msgstr "تأكيد الحذف" + +#: templates/participants/participants_detail.html:244 +#: templates/participants/participants_list.html:326 +#, fuzzy +#| msgid "Are you sure you want to delete this lead?" +msgid "Are you sure you want to delete" +msgstr "هل أنت متأكد أنك تريد حذف هذا العميل المحتمل؟" + +#: templates/participants/participants_detail.html:248 +#: templates/participants/participants_list.html:330 +msgid "This action cannot be undone." +msgstr "لا يمكن التراجع عن هذا الإجراء." + +#: templates/participants/participants_list.html:143 +msgid "Participants List" msgstr "" -#: templates/meetings/update_meeting.html:209 -msgid "Duration (minutes):" +#: templates/participants/participants_list.html:147 +#, fuzzy +#| msgid "Add New Car" +msgid "Add New Participant" +msgstr "إضافة سيارة" + +#: templates/participants/participants_list.html:156 +#: templates/recruitment/candidate_list.html:206 +msgid "Search by Name or Email" msgstr "" +#: templates/participants/participants_list.html:172 +#, fuzzy +#| msgid "Assigned To" +msgid "Filter by Assigned Job" +msgstr "مُعين إلى" + +#: templates/participants/participants_list.html:174 +#: templates/recruitment/candidate_list.html:224 +#: templates/recruitment/dashboard.html:437 +#, fuzzy +#| msgid "All Models" +msgid "All Jobs" +msgstr "جميع النماذج" + +#: templates/participants/participants_list.html:304 +#, fuzzy +#| msgid "No Entries found" +msgid "No participants found" +msgstr "لم يتم العثور على أي مدخلات" + +#: templates/participants/participants_list.html:305 +msgid "Create your first participant record or adjust your filters." +msgstr "" + +#: templates/participants/participants_list.html:308 +#, fuzzy +#| msgid "Add Permission" +msgid "Add Participant" +msgstr "إضافة إذن" + +#: templates/recruitment/agency_access_link_detail.html:4 +#: templates/recruitment/agency_access_link_detail.html:12 +#, fuzzy +#| msgid "Lead Details" +msgid "Access Link Details" +msgstr "تفاصيل العميل المحتمل" + +#: templates/recruitment/agency_access_link_detail.html:14 +msgid "Secure access link for agency candidate submissions" +msgstr "" + +#: templates/recruitment/agency_access_link_detail.html:17 +#: templates/recruitment/agency_portal_submit_candidate.html:122 +#: templates/recruitment/agency_portal_submit_candidate.html:365 +#, fuzzy +#| msgid "Back to Estimate" +msgid "Back to Assignment" +msgstr "العودة إلى التقدير" + +#: templates/recruitment/agency_access_link_detail.html:28 +#, fuzzy +#| msgid "Account Information" +msgid "Access Information" +msgstr "معلومات الحساب" + +#: templates/recruitment/agency_access_link_detail.html:31 +#: templates/user/admin_settings.html:196 +msgid "Inactive" +msgstr "غير نشط" + +#: templates/recruitment/agency_access_link_detail.html:66 +msgid "Max Candidates" +msgstr "" + +#: templates/recruitment/agency_access_link_detail.html:83 +#: templates/recruitment/agency_assignment_detail.html:172 +#, fuzzy +#| msgid "Forbidden" +msgid "Access Credentials" +msgstr "ممنوع" + +#: templates/recruitment/agency_access_link_detail.html:87 +#: templates/recruitment/agency_assignment_detail.html:176 +#, fuzzy +#| msgid "Login" +msgid "Login URL" +msgstr "تسجيل الدخول" + +#: templates/recruitment/agency_access_link_detail.html:121 +#: templates/recruitment/agency_assignment_detail.html:210 +msgid "" +"Share these credentials securely with the agency. They can use this " +"information to log in and submit candidates." +msgstr "" + +#: templates/recruitment/agency_access_link_detail.html:132 +msgid "Usage Statistics" +msgstr "" + +#: templates/recruitment/agency_access_link_detail.html:137 +#, fuzzy +#| msgid "Total users" +msgid "Total Accesses" +msgstr "إجمالي المستخدمين" + +#: templates/recruitment/agency_access_link_detail.html:146 +#, fuzzy +#| msgid "Leverage" +msgid "Never" +msgstr "الرافعة المالية" + +#: templates/recruitment/agency_access_link_detail.html:173 +#, fuzzy +#| msgid "New Appointment" +msgid "View Assignment" +msgstr "موعد جديد" + +#: templates/recruitment/agency_access_link_detail.html:178 +#: templates/user/admin_settings.html:234 +msgid "Deactivate" +msgstr "إلغاء التفعيل" + +#: templates/recruitment/agency_access_link_detail.html:184 +#, fuzzy +#| msgid "Deactivate" +msgid "Reactivate" +msgstr "إلغاء التفعيل" + +#: templates/recruitment/agency_access_link_detail.html:217 +#: templates/recruitment/agency_assignment_detail.html:489 +#, fuzzy +#| msgid "Are you sure you want to delete this account?" +msgid "" +"Are you sure you want to deactivate this access link? Agencies will no " +"longer be able to use it." +msgstr "هل أنت متأكد أنك تريد حذف هذا الحساب؟" + +#: templates/recruitment/agency_access_link_detail.html:224 +#: templates/recruitment/agency_assignment_detail.html:496 +#, fuzzy +#| msgid "Are you sure you want to delete this account?" +msgid "Are you sure you want to reactivate this access link?" +msgstr "هل أنت متأكد أنك تريد حذف هذا الحساب؟" + +#: templates/recruitment/agency_access_link_form.html:14 +msgid "Generate a secure access link for agency to submit candidates" +msgstr "" + +#: templates/recruitment/agency_access_link_form.html:17 +#: templates/recruitment/agency_assignment_detail.html:103 +#: templates/recruitment/agency_assignment_form.html:114 +#, fuzzy +#| msgid "Back to Tickets" +msgid "Back to Assignments" +msgstr "العودة إلى التذاكر" + +#: templates/recruitment/agency_access_link_form.html:47 +msgid "Select the agency job assignment" +msgstr "" + +#: templates/recruitment/agency_access_link_form.html:62 +msgid "When will this access link expire?" +msgstr "" + +#: templates/recruitment/agency_access_link_form.html:69 +#, fuzzy +#| msgid "Manage Permissions" +msgid "Max Submissions" +msgstr "ادارة الصلاحيات" + +#: templates/recruitment/agency_access_link_form.html:79 +msgid "" +"Maximum number of candidates agency can submit (leave blank for unlimited)" +msgstr "" + +#: templates/recruitment/agency_access_link_form.html:99 +#, fuzzy +#| msgid "The Chart of Accounts is currently active." +msgid "Whether this access link is currently active" +msgstr "قائمة الحسابات نشطة حاليًا." + +#: templates/recruitment/agency_access_link_form.html:105 +msgid "Notes" +msgstr "ملاحظات" + +#: templates/recruitment/agency_access_link_form.html:115 +msgid "Additional notes or instructions for the agency" +msgstr "" + +#: templates/recruitment/agency_access_link_form.html:122 +msgid "" +"Access links will be generated with a secure token that agencies can use to " +"log in" +msgstr "" + +#: templates/recruitment/agency_assignment_detail.html:98 +#, fuzzy +#| msgid "Admin Management" +msgid "Assignment Details and Management" +msgstr "إدارة المشرفين" + +#: templates/recruitment/agency_assignment_detail.html:106 +#: templates/recruitment/agency_assignment_detail.html:357 +#, fuzzy +#| msgid "Assigned To" +msgid "Edit Assignment" +msgstr "مُعين إلى" + +#: templates/recruitment/agency_assignment_detail.html:118 +#: templates/recruitment/agency_portal_assignment_detail.html:110 +#: templates/recruitment/agency_portal_assignment_detail.html:137 +#: templates/recruitment/agency_portal_submit_candidate.html:133 +#, fuzzy +#| msgid "Appointment Details" +msgid "Assignment Details" +msgstr "تفاصيل الموعد" + +#: templates/recruitment/agency_assignment_detail.html:215 +#, fuzzy +#| msgid "View Details" +msgid "View Access Links Details" +msgstr "عرض التفاصيل" + +#: templates/recruitment/agency_assignment_detail.html:225 +#: templates/recruitment/agency_portal_assignment_detail.html:231 +msgid "Submitted Candidates" +msgstr "" + +#: templates/recruitment/agency_assignment_detail.html:229 +#, fuzzy +#| msgid "Preview" +msgid "Preview Portal" +msgstr "عرض" + +#: templates/recruitment/agency_assignment_detail.html:240 +#: templates/recruitment/agency_portal_assignment_detail.html:242 +#: templates/recruitment/candidate_exam_view.html:251 +#: templates/recruitment/candidate_hired_view.html:233 +#: templates/recruitment/candidate_interview_view.html:262 +#: templates/recruitment/candidate_offer_view.html:247 +msgid "Contact" +msgstr "جهة الاتصال" + +#: templates/recruitment/agency_assignment_detail.html:242 +#: templates/recruitment/agency_portal_assignment_detail.html:244 +#, fuzzy +#| msgid "Submit" +msgid "Submitted" +msgstr "إرسال" + +#: templates/recruitment/agency_assignment_detail.html:280 +#: templates/recruitment/agency_portal_assignment_detail.html:319 +#, fuzzy +#| msgid "No file was submitted." +msgid "No candidates submitted yet" +msgstr "لم يتم تقديم أي ملف." + +#: templates/recruitment/agency_assignment_detail.html:282 +msgid "" +"Candidates will appear here once the agency submits them through their " +"portal." +msgstr "" + +#: templates/recruitment/agency_assignment_detail.html:294 +#: templates/recruitment/agency_portal_assignment_detail.html:333 +#: templates/recruitment/agency_portal_dashboard.html:181 +#, fuzzy +#| msgid "In Progress" +msgid "Submission Progress" +msgstr "قيد التنفيذ" + +#: templates/recruitment/agency_assignment_detail.html:325 +#: templates/recruitment/agency_portal_assignment_detail.html:175 +#: templates/recruitment/agency_portal_assignment_detail.html:364 +#, fuzzy +#| msgid "End date" +msgid "candidates" +msgstr "تاريخ الانتهاء" + +#: templates/recruitment/agency_assignment_detail.html:345 +#: templates/recruitment/agency_portal_assignment_detail.html:513 +#, fuzzy +#| msgid "Message" +msgid "Send Message" +msgstr "رسالة" + +#: templates/recruitment/agency_assignment_detail.html:351 +#: templates/recruitment/agency_assignment_detail.html:433 +#, fuzzy +#| msgid "Expected Delivery" +msgid "Extend Deadline" +msgstr "موعد التسليم المتوقع" + +#: templates/recruitment/agency_assignment_detail.html:369 +#: templates/recruitment/agency_portal_assignment_detail.html:437 +#, fuzzy +#| msgid "Messages" +msgid "Recent Messages" +msgstr "الرسائل" + +#: templates/recruitment/agency_assignment_detail.html:381 +#: templates/recruitment/agency_portal_assignment_detail.html:449 +msgid "From" +msgstr "من" + +#: templates/recruitment/agency_assignment_detail.html:385 +#: templates/recruitment/agency_portal_assignment_detail.html:453 +msgid "New" +msgstr "جديد" + +#: templates/recruitment/agency_assignment_detail.html:395 +#: templates/recruitment/agency_portal_assignment_detail.html:463 +#, fuzzy +#| msgid "Messages" +msgid "View All Messages" +msgstr "الرسائل" + +#: templates/recruitment/agency_assignment_detail.html:410 +msgid "Extend Assignment Deadline" +msgstr "" + +#: templates/recruitment/agency_assignment_detail.html:419 +#, fuzzy +#| msgid "New Value" +msgid "New Deadline" +msgstr "القيمة الجديدة" + +#: templates/recruitment/agency_assignment_detail.html:424 +#, fuzzy +#| msgid "Current email" +msgid "Current deadline:" +msgstr "البريد الإلكتروني الحالي" + +#: templates/recruitment/agency_assignment_detail.html:457 +msgid "Token copied to clipboard!" +msgstr "" + +#: templates/recruitment/agency_assignment_form.html:110 +msgid "Assign a job to an external hiring agency" +msgstr "" + +#: templates/recruitment/agency_assignment_form.html:170 +#, fuzzy +#| msgid "Maximum number of times an appointment can be rescheduled." +msgid "Maximum number of candidates the agency can submit" +msgstr "الحد الأقصى لعدد مرات إعادة جدولة الموعد." + +#: templates/recruitment/agency_assignment_form.html:187 +msgid "Date and time when submission period ends" +msgstr "" + +#: templates/recruitment/agency_assignment_form.html:207 +msgid "Internal notes about this assignment (not visible to agency)" +msgstr "" + +#: templates/recruitment/agency_assignment_list.html:4 +#: templates/recruitment/agency_assignment_list.html:59 +msgid "Agency Assignments" +msgstr "" + +#: templates/recruitment/agency_assignment_list.html:62 +#, fuzzy +#| msgid "Total Amount" +msgid "Total Assignments:" +msgstr "المبلغ الإجمالي" + +#: templates/recruitment/agency_assignment_list.html:67 +#, fuzzy +#| msgid "New Appointment" +msgid "New Assignment" +msgstr "موعد جديد" + +#: templates/recruitment/agency_assignment_list.html:79 +msgid "Search by agency or job title..." +msgstr "" + +#: templates/recruitment/agency_assignment_list.html:169 +#, fuzzy +#| msgid "New Leads" +msgid "View Access Link" +msgstr "عملاء محتملون جدد" + +#: templates/recruitment/agency_assignment_list.html:183 +#, fuzzy +#| msgid "Appointment application" +msgid "Assignments pagination" +msgstr "تطبيق المواعيد" + +#: templates/recruitment/agency_assignment_list.html:228 +#, fuzzy +#| msgid "No Payments Found" +msgid "No assignments found" +msgstr "لم يتم العثور على عملية دفع" + +#: templates/recruitment/agency_assignment_list.html:229 +msgid "Create your first agency assignment to get started." +msgstr "" + +#: templates/recruitment/agency_assignment_list.html:231 +#, fuzzy +#| msgid "Create Payment" +msgid "Create Assignment" +msgstr "إجراء الدفع" + +#: templates/recruitment/agency_confirm_delete.html:4 +#: templates/recruitment/agency_confirm_delete.html:179 +#, fuzzy +#| msgid "Delete Vendor" +msgid "Delete Agency" +msgstr "حذف مورد" + +#: templates/recruitment/agency_confirm_delete.html:182 +#, fuzzy +#| msgid "Are you sure you want to delete this account?" +msgid "You are about to delete a hiring agency. This action cannot be undone." +msgstr "هل أنت متأكد أنك تريد حذف هذا الحساب؟" + +#: templates/recruitment/agency_confirm_delete.html:186 +#, fuzzy +#| msgid "Back to Home" +msgid "Back to Agency" +msgstr "العودة إلى الرئيسية" + +#: templates/recruitment/agency_confirm_delete.html:197 +#, fuzzy +#| msgid "This action cannot be undone." +msgid "Warning: This action cannot be undone!" +msgstr "لا يمكن التراجع عن هذا الإجراء." + +#: templates/recruitment/agency_confirm_delete.html:199 +msgid "" +"Deleting this agency will permanently remove all associated data. Please " +"review the information below carefully before proceeding." +msgstr "" + +#: templates/recruitment/agency_confirm_delete.html:208 +msgid "Agency to be Deleted" +msgstr "" + +#: templates/recruitment/agency_confirm_delete.html:277 +#, fuzzy +#| msgid "Associated Entity Unit" +msgid "Associated Candidates Found" +msgstr "وحدة الكيان المرتبطة" + +#: templates/recruitment/agency_confirm_delete.html:280 +#, fuzzy +#| msgid "Journal Entry to be associated with this transaction." +msgid "candidate(s) are associated with this agency." +msgstr "إدخال دفتر اليومية المرتبط بهذه المعاملة." + +#: templates/recruitment/agency_confirm_delete.html:283 +msgid "" +"Deleting this agency will affect these candidates. Their agency reference " +"will be removed, but the candidates themselves will not be deleted." +msgstr "" + +#: templates/recruitment/agency_confirm_delete.html:293 +msgid "What will happen when you delete this agency?" +msgstr "" + +#: templates/recruitment/agency_confirm_delete.html:300 +msgid "The agency profile and all its information will be permanently deleted" +msgstr "" + +#: templates/recruitment/agency_confirm_delete.html:304 +msgid "All contact information and agency details will be removed" +msgstr "" + +#: templates/recruitment/agency_confirm_delete.html:309 +msgid "Associated candidates will lose their agency reference" +msgstr "" + +#: templates/recruitment/agency_confirm_delete.html:313 +msgid "Historical data linking candidates to this agency will be lost" +msgstr "" + +#: templates/recruitment/agency_confirm_delete.html:318 +#, fuzzy +#| msgid "This action cannot be undone." +msgid "This action cannot be undone under any circumstances" +msgstr "لا يمكن التراجع عن هذا الإجراء." + +#: templates/recruitment/agency_confirm_delete.html:332 +msgid "Type the agency name to confirm deletion:" +msgstr "" + +#: templates/recruitment/agency_confirm_delete.html:341 +msgid "This is required to prevent accidental deletions." +msgstr "" + +#: templates/recruitment/agency_confirm_delete.html:349 +msgid "" +"I understand that this action cannot be undone and I want to permanently " +"delete this agency." +msgstr "" + +#: templates/recruitment/agency_confirm_delete.html:364 +#, fuzzy +#| msgid "Delete Entity " +msgid "Delete Agency Permanently" +msgstr "حذف الكيان" + +#: templates/recruitment/agency_confirm_delete.html:402 +#, fuzzy +#| msgid "Are you sure you want to delete this account?" +msgid "" +"Are you absolutely sure you want to delete this agency? This action cannot " +"be undone." +msgstr "هل أنت متأكد أنك تريد حذف هذا الحساب؟" + +#: templates/recruitment/agency_detail.html:4 +#, fuzzy +#| msgid "Lead Details" +msgid "Agency Details" +msgstr "تفاصيل العميل المحتمل" + +#: templates/recruitment/agency_detail.html:220 +msgid "Hiring Agency Details and Candidate Management" +msgstr "" + +#: templates/recruitment/agency_detail.html:225 +#, fuzzy +#| msgid "Assigned To" +msgid "Assign job" +msgstr "مُعين إلى" + +#: templates/recruitment/agency_detail.html:228 +#, fuzzy +#| msgid "Edit Vendor" +msgid "Edit Agency" +msgstr "تعديل مورد" + +#: templates/recruitment/agency_detail.html:231 +#: templates/recruitment/agency_form.html:131 +#, fuzzy +#| msgid "Back to list" +msgid "Back to Agencies" +msgstr "العودة إلى القائمة" + +#: templates/recruitment/agency_detail.html:248 +#: templates/recruitment/agency_list.html:285 +#, fuzzy +#| msgid "Contact" +msgid "Contact:" +msgstr "جهة الاتصال" + +#: templates/recruitment/agency_detail.html:280 +#: templates/recruitment/agency_form.html:216 +#: templates/recruitment/agency_portal_submit_candidate.html:214 +msgid "Contact Information" +msgstr "معلومات العميل" + +#: templates/recruitment/agency_detail.html:330 +#: templates/recruitment/agency_form.html:273 +#, fuzzy +#| msgid "Client Information" +msgid "Location Information" +msgstr "معلومات العميل" + +#: templates/recruitment/agency_detail.html:391 +msgid "Recent Candidates" +msgstr "" + +#: templates/recruitment/agency_detail.html:428 +#, fuzzy +#| msgid "No comments yet" +msgid "No candidates yet" +msgstr "لا توجد تعليقات بعد" + +#: templates/recruitment/agency_detail.html:429 +msgid "This agency hasn't submitted any candidates yet." +msgstr "" + +#: templates/recruitment/agency_detail.html:443 +msgid "Candidate Statistics" +msgstr "" + +#: templates/recruitment/agency_detail.html:451 +msgid "Total" +msgstr "الإجمالي" + +#: templates/recruitment/agency_detail.html:515 +#: templates/recruitment/agency_form.html:390 +#, fuzzy +#| msgid "VAT Information" +msgid "Agency Information" +msgstr "معلومات المستخدم" + +#: templates/recruitment/agency_detail.html:524 +#: templates/recruitment/agency_form.html:397 +#, fuzzy +#| msgid "Last Updated" +msgid "Last Updated:" +msgstr "آخر تحديث" + +#: templates/recruitment/agency_detail.html:528 +msgid "Agency ID:" +msgstr "" + +#: templates/recruitment/agency_form.html:124 +#, fuzzy +#| msgid "Update Dealer Information" +msgid "Update the hiring agency information below." +msgstr "تحديث معلومات المعرض" + +#: templates/recruitment/agency_form.html:126 +msgid "Fill in the details to add a new hiring agency." +msgstr "" + +#: templates/recruitment/agency_form.html:144 +#, fuzzy +#| msgid "Please correct the duplicate values below." +msgid "Please correct the errors below:" +msgstr "يرجى تصحيح القيم المكررة أدناه." + +#: templates/recruitment/agency_form.html:159 +#, fuzzy +#| msgid "Client Information" +msgid "Basic Information" +msgstr "معلومات العميل" + +#: templates/recruitment/agency_form.html:313 +msgid "Additional Information" +msgstr "معلومات إضافية" + +#: templates/recruitment/agency_form.html:362 +#, fuzzy +#| msgid "Quick Ratio" +msgid "Quick Tips" +msgstr "النسبة السريعة" + +#: templates/recruitment/agency_form.html:367 +msgid "Provide accurate contact information for better communication" +msgstr "" + +#: templates/recruitment/agency_form.html:371 +msgid "Include a valid website URL if available" +msgstr "" + +#: templates/recruitment/agency_form.html:375 +msgid "Add a detailed description to help identify the agency" +msgstr "" + +#: templates/recruitment/agency_form.html:379 +#, fuzzy +#| msgid "This field is required." +msgid "All fields marked with * are required" +msgstr "هذا الحقل مطلوب." + +#: templates/recruitment/agency_form.html:401 +#, fuzzy +#| msgid "Slug" +msgid "Slug:" +msgstr "المُعرّف الفريد (Slug)" + +#: templates/recruitment/agency_list.html:134 +#, fuzzy +#| msgid "Total Expenses" +msgid "Total Agencies:" +msgstr "مجموع مصاريف الضرائب" + +#: templates/recruitment/agency_list.html:141 +msgid "View All Job Assignments" +msgstr "" + +#: templates/recruitment/agency_list.html:145 +#, fuzzy +#| msgid "Add New Vendor" +msgid "Add New Agency" +msgstr "مورد جديد" + +#: templates/recruitment/agency_list.html:161 +msgid "Search by name, contact person, email, or country..." +msgstr "" + +#: templates/recruitment/agency_list.html:341 +msgid "Agency pagination" +msgstr "" + +#: templates/recruitment/agency_list.html:385 +#, fuzzy +#| msgid "Try adjusting your search criteria or filters" +msgid "No agencies found matching your search criteria." +msgstr "جرب تعديل معايير البحث أو المرشحات" + +#: templates/recruitment/agency_list.html:387 +#, fuzzy +#| msgid "No working hours have been set" +msgid "No hiring agencies have been added yet." +msgstr "لم يتم تحديد ساعات عمل" + +#: templates/recruitment/agency_list.html:391 +msgid "" +"Start by adding your first hiring agency to manage your recruitment partners." +msgstr "" + +#: templates/recruitment/agency_list.html:394 +msgid "Add Your First Agency" +msgstr "" + +#: templates/recruitment/agency_portal_assignment_detail.html:115 +msgid "Back to Dashboard" +msgstr "العودة إلى لوحة القيادة" + +#: templates/recruitment/agency_portal_assignment_detail.html:118 +#: templates/recruitment/agency_portal_submit_candidate.html:114 +msgid "Submit New Candidate" +msgstr "" + +#: templates/recruitment/agency_portal_assignment_detail.html:169 +msgid "days remaining" +msgstr "" + +#: templates/recruitment/agency_portal_assignment_detail.html:182 +#, fuzzy +#| msgid "CoA Description" +msgid "Job Description " +msgstr "وصف قائمة الحسابات" + +#: templates/recruitment/agency_portal_assignment_detail.html:269 +#: templates/recruitment/agency_portal_assignment_detail.html:528 +#, fuzzy +#| msgid "Edit Car" +msgid "Edit Candidate" +msgstr "تعديل السيارة" + +#: templates/recruitment/agency_portal_assignment_detail.html:272 +#: templates/recruitment/agency_portal_assignment_detail.html:593 +#: templates/recruitment/agency_portal_assignment_detail.html:612 +#, fuzzy +#| msgid "Remove Car" +msgid "Remove Candidate" +msgstr "إزالة السيارة" + +#: templates/recruitment/agency_portal_assignment_detail.html:321 +msgid "Submit candidates using the form above to get started." +msgstr "" + +#: templates/recruitment/agency_portal_assignment_detail.html:374 +#: templates/recruitment/agency_portal_submit_candidate.html:156 +#, fuzzy +#| msgid "Submit" +msgid "Can Submit" +msgstr "إرسال" + +#: templates/recruitment/agency_portal_assignment_detail.html:376 +#: templates/recruitment/agency_portal_submit_candidate.html:158 +#, fuzzy +#| msgid "Submit" +msgid "Cannot Submit" +msgstr "إرسال" + +#: templates/recruitment/agency_portal_assignment_detail.html:406 +#, fuzzy +#| msgid "Assigned To" +msgid "Assignment Info" +msgstr "مُعين إلى" + +#: templates/recruitment/agency_portal_assignment_detail.html:415 +msgid "Days Remaining" +msgstr "" + +#: templates/recruitment/agency_portal_assignment_detail.html:417 +#: templates/recruitment/agency_portal_submit_candidate.html:147 +msgid "days" +msgstr "أيام" + +#: templates/recruitment/agency_portal_assignment_detail.html:422 +#, fuzzy +#| msgid "Next Action Date" +msgid "Submission Rate" +msgstr "تاريخ الإجراء التالي" + +#: templates/recruitment/agency_portal_assignment_detail.html:478 +msgid "Send Message to Admin" +msgstr "" + +#: templates/recruitment/agency_portal_assignment_detail.html:493 +msgid "Priority" +msgstr "الأولوية" + +#: templates/recruitment/agency_portal_assignment_detail.html:495 +msgid "Low" +msgstr "منخفض" + +#: templates/recruitment/agency_portal_assignment_detail.html:496 +msgid "Medium" +msgstr "متوسط" + +#: templates/recruitment/agency_portal_assignment_detail.html:497 +msgid "High" +msgstr "مرتفع" + +#: templates/recruitment/agency_portal_assignment_detail.html:498 +msgid "Urgent" +msgstr "" + +#: templates/recruitment/agency_portal_assignment_detail.html:603 +#, fuzzy +#| msgid "Are you sure you want to delete this account?" +msgid "" +"Are you sure you want to remove this candidate? This action cannot be undone." +msgstr "هل أنت متأكد أنك تريد حذف هذا الحساب؟" + +#: templates/recruitment/agency_portal_assignment_detail.html:605 +#, fuzzy +#| msgid "End date" +msgid "Candidate:" +msgstr "تاريخ الانتهاء" + +#: templates/recruitment/agency_portal_assignment_detail.html:644 +#, fuzzy +#| msgid "Error loading form. Please try again later" +msgid "Error loading candidate data. Please try again." +msgstr "حدث خطأ أثناء تحميل النموذج. يرجى المحاولة مرة أخرى لاحقًا." + +#: templates/recruitment/agency_portal_assignment_detail.html:679 +#: templates/recruitment/agency_portal_assignment_detail.html:684 +#, fuzzy +#| msgid "Error loading form. Please try again later" +msgid "Error updating candidate. Please try again." +msgstr "حدث خطأ أثناء تحميل النموذج. يرجى المحاولة مرة أخرى لاحقًا." + +#: templates/recruitment/agency_portal_assignment_detail.html:706 +#: templates/recruitment/agency_portal_assignment_detail.html:711 +#, fuzzy +#| msgid "Error loading form. Please try again later" +msgid "Error removing candidate. Please try again." +msgstr "حدث خطأ أثناء تحميل النموذج. يرجى المحاولة مرة أخرى لاحقًا." + +#: templates/recruitment/agency_portal_dashboard.html:4 +#: templates/recruitment/agency_portal_dashboard.html:45 +#, fuzzy +#| msgid "My Dashboard" +msgid "Agency Dashboard" +msgstr "لوحة القيادة الخاصة بي" + +#: templates/recruitment/agency_portal_dashboard.html:48 +#, fuzzy +#| msgid "Go back" +msgid "Welcome back" +msgstr "الرجوع" + +#: templates/recruitment/agency_portal_dashboard.html:76 +#, fuzzy +#| msgid "Total Amount" +msgid "Total Assignments" +msgstr "المبلغ الإجمالي" + +#: templates/recruitment/agency_portal_dashboard.html:87 +#, fuzzy +#| msgid "Save Estimate" +msgid "Active Assignments" +msgstr "حفظ التقدير" + +#: templates/recruitment/agency_portal_dashboard.html:98 +#: templates/recruitment/partials/stats_cards.html:28 +#, fuzzy +#| msgid "Total Paid" +msgid "Total Candidates" +msgstr "المبلغ المدفوع" + +#: templates/recruitment/agency_portal_dashboard.html:109 +#, fuzzy +#| msgid "Messages" +msgid "Unread Messages" +msgstr "الرسائل" + +#: templates/recruitment/agency_portal_dashboard.html:121 +#, fuzzy +#| msgid "Return on Assets" +msgid "Your Job Assignments" +msgstr "العائد على الأصول" + +#: templates/recruitment/agency_portal_dashboard.html:123 +#, fuzzy +#| msgid "Assigned To" +msgid "assignments" +msgstr "مُعين إلى" + +#: templates/recruitment/agency_portal_dashboard.html:166 +#, fuzzy +#| msgid "Days left" +msgid "days left" +msgstr "الأيام المتبقية" + +#: templates/recruitment/agency_portal_dashboard.html:168 +msgid "days overdue" +msgstr "" + +#: templates/recruitment/agency_portal_dashboard.html:202 +#, fuzzy +#| msgid "Permission Denied" +msgid "Submissions Closed" +msgstr "تم رفض الإذن" + +#: templates/recruitment/agency_portal_dashboard.html:230 +#, fuzzy +#| msgid "No Payments Found" +msgid "No Job Assignments Found" +msgstr "لم يتم العثور على عملية دفع" + +#: templates/recruitment/agency_portal_dashboard.html:232 +#, fuzzy +#| msgid "" +#| "User doesn't have a staff member instance. Please contact the " +#| "administrator." +msgid "" +"You don't have any job assignments yet. Please contact the administrator if " +"you expect to have assignments." +msgstr "المستخدم ليس لديه حساب كعضو فريق. يرجى التواصل مع المسؤول." + +#: templates/recruitment/agency_portal_login.html:4 +msgid "Agency Portal Login" +msgstr "" + +#: templates/recruitment/agency_portal_login.html:128 +msgid "Submit candidates for job assignments" +msgstr "" + +#: templates/recruitment/agency_portal_login.html:159 +msgid "Enter the access token provided by the hiring organization" +msgstr "" + +#: templates/recruitment/agency_portal_login.html:181 +msgid "Enter the password for this access token" +msgstr "" + +#: templates/recruitment/agency_portal_login.html:189 +#, fuzzy +#| msgid "Access" +msgid "Access Portal" +msgstr "الوصول" + +#: templates/recruitment/agency_portal_login.html:198 +msgid "Need Help?" +msgstr "هل تحتاج لمساعدة" + +#: templates/recruitment/agency_portal_login.html:206 +#, fuzzy +#| msgid "Contact Information" +msgid "Contact Support" +msgstr "معلومات العميل" + +#: templates/recruitment/agency_portal_login.html:208 +msgid "Reach out to your hiring contact" +msgstr "" + +#: templates/recruitment/agency_portal_login.html:215 +#, fuzzy +#| msgid "Django Documentation" +msgid "Documentation" +msgstr "وثائق Django" + +#: templates/recruitment/agency_portal_login.html:217 +#, fuzzy +#| msgid "New Leads and Customers" +msgid "View user guides and tutorials" +msgstr "العملاء والفرص الجديدة." + +#: templates/recruitment/agency_portal_login.html:227 +#, fuzzy +#| msgid "Securities" +msgid "Security Notice" +msgstr "الأوراق المالية" + +#: templates/recruitment/agency_portal_login.html:230 +msgid "" +"This portal is for authorized agency partners only. Access is monitored and " +"logged." +msgstr "" + +#: templates/recruitment/agency_portal_login.html:234 +msgid "" +"If you believe you've received this link in error, please contact the hiring " +"organization immediately." +msgstr "" + +#: templates/recruitment/agency_portal_login.html:295 +#, fuzzy +#| msgid "Please enter an Arabic name." +msgid "Please enter your access token." +msgstr "يرجى إدخال اسم باللغة العربية." + +#: templates/recruitment/agency_portal_login.html:302 +#, fuzzy +#| msgid "Enter your password:" +msgid "Please enter your password." +msgstr "أدخل كلمة المرور الخاصة بك:" + +#: templates/recruitment/agency_portal_submit_candidate.html:117 +msgid "Submit a candidate for" +msgstr "" + +#: templates/recruitment/agency_portal_submit_candidate.html:136 +#, fuzzy +#| msgid "Position" +msgid "Position:" +msgstr "المركز" + +#: templates/recruitment/agency_portal_submit_candidate.html:145 +msgid "Days Remaining:" +msgstr "" + +#: templates/recruitment/agency_portal_submit_candidate.html:154 +msgid "Status:" +msgstr "الحالة" + +#: templates/recruitment/agency_portal_submit_candidate.html:170 +#: templates/recruitment/candidate_create.html:112 +#, fuzzy +#| msgid "Contact Information" +msgid "Candidate Information" +msgstr "معلومات العميل" + +#: templates/recruitment/agency_portal_submit_candidate.html:226 +#, fuzzy +#| msgid "Email address" +msgid "Enter email address" +msgstr "عنوان البريد الإلكتروني" + +#: templates/recruitment/agency_portal_submit_candidate.html:246 +#, fuzzy +#| msgid "VAT Information" +msgid "Address Information" +msgstr "معلومات المستخدم" + +#: templates/recruitment/agency_portal_submit_candidate.html:251 +#, fuzzy +#| msgid "Default Address" +msgid "Full Address" +msgstr "العنوان الافتراضي" + +#: templates/recruitment/agency_portal_submit_candidate.html:258 +#, fuzzy +#| msgid "Default Address" +msgid "Enter full address" +msgstr "العنوان الافتراضي" + +#: templates/recruitment/agency_portal_submit_candidate.html:267 +msgid "Resume/CV" +msgstr "" + +#: templates/recruitment/agency_portal_submit_candidate.html:272 +#, fuzzy +#| msgid "Upload Cars CSV" +msgid "Upload Resume" +msgstr "رفع بيانات السيارات " + +#: templates/recruitment/agency_portal_submit_candidate.html:284 +msgid "Click to upload or drag and drop" +msgstr "" + +#: templates/recruitment/agency_portal_submit_candidate.html:286 +msgid "Accepted formats: PDF, DOC, DOCX (Maximum 5MB)" +msgstr "" + +#: templates/recruitment/agency_portal_submit_candidate.html:294 +#, fuzzy +#| msgid "Remove" +msgid "Remove File" +msgstr "إزالة" + +#: templates/recruitment/agency_portal_submit_candidate.html:306 +#, fuzzy +#| msgid "Additional Info" +msgid "Additional Notes" +msgstr "معلومات إضافية" + +#: templates/recruitment/agency_portal_submit_candidate.html:311 +msgid "Notes (Optional)" +msgstr "" + +#: templates/recruitment/agency_portal_submit_candidate.html:317 +#, fuzzy +#| msgid "Additional information" +msgid "Any additional information about the candidate" +msgstr "معلومات إضافية" + +#: templates/recruitment/agency_portal_submit_candidate.html:328 +msgid "Submitted candidates will be reviewed by the hiring team." +msgstr "" + +#: templates/recruitment/agency_portal_submit_candidate.html:349 +msgid "Cannot Submit Candidates" +msgstr "" + +#: templates/recruitment/agency_portal_submit_candidate.html:353 +msgid "This assignment has expired. Submissions are no longer accepted." +msgstr "" + +#: templates/recruitment/agency_portal_submit_candidate.html:356 +msgid "Maximum candidate limit reached for this assignment." +msgstr "" + +#: templates/recruitment/agency_portal_submit_candidate.html:359 +#, fuzzy +#| msgid "The Chart of Accounts is currently active." +msgid "This assignment is not currently active." +msgstr "قائمة الحسابات نشطة حاليًا." + +#: templates/recruitment/agency_portal_submit_candidate.html:383 +msgid "Submitting candidate..." +msgstr "" + +#: templates/recruitment/agency_portal_submit_candidate.html:384 +msgid "Please wait while we process your submission." +msgstr "" + +#: templates/recruitment/agency_portal_submit_candidate.html:450 +msgid "Please upload a PDF, DOC, or DOCX file." +msgstr "" + +#: templates/recruitment/agency_portal_submit_candidate.html:457 +#, fuzzy +#| msgid "PO Title must be greater than 5" +msgid "File size must be less than 5MB." +msgstr "يجب أن يكون عنوان أمر الشراء أكثر من 5 أحرف" + +#: templates/recruitment/agency_portal_submit_candidate.html:478 +#, fuzzy +#| msgid "Savings" +msgid "Submitting..." +msgstr "حساب توفير" + +#: templates/recruitment/agency_portal_submit_candidate.html:500 +#, fuzzy +#| msgid "Car updated successfully" +msgid "Candidate submitted successfully!" +msgstr "تم تحديث السيارة بنجاح" + +#: templates/recruitment/agency_portal_submit_candidate.html:531 +#, fuzzy +#| msgid "Error loading form. Please try again later" +msgid "Error submitting candidate. Please try again." +msgstr "حدث خطأ أثناء تحميل النموذج. يرجى المحاولة مرة أخرى لاحقًا." + +#: templates/recruitment/agency_portal_submit_candidate.html:553 +#, fuzzy +#| msgid "We couldn't process your payment. Please try again" +msgid "Network error. Please check your connection and try again." +msgstr "تعذر معالجة دفعتك. يرجى المحاولة مرة أخرى" + #: templates/recruitment/candidate_create.html:94 +#, fuzzy +#| msgid "Create New Lead" msgid "Create New Candidate" -msgstr "" +msgstr "إنشاء فرصة جديد" #: templates/recruitment/candidate_create.html:96 msgid "Enter details to create a new candidate record." msgstr "" -#: templates/recruitment/candidate_create.html:99 -#: templates/recruitment/candidate_create.html:101 -#: templates/recruitment/candidate_detail.html:326 -#: templates/recruitment/candidate_update.html:97 -#: templates/recruitment/candidate_update.html:99 -#: templates/recruitment/training_create.html:124 -#: templates/recruitment/training_create.html:126 -#: templates/recruitment/training_update.html:112 -#: templates/recruitment/training_update.html:114 -msgid "Back to List" -msgstr "" +#: templates/recruitment/candidate_create.html:131 +#, fuzzy +#| msgid "Create date" +msgid "Create Candidate" +msgstr "تاريخ الإنشاء" -#: templates/recruitment/candidate_create.html:112 -msgid "Candidate Information" -msgstr "" - -#: templates/recruitment/candidate_detail.html:191 +#: templates/recruitment/candidate_detail.html:292 +#, fuzzy +#| msgid "Stage" msgid "Stage:" -msgstr "" +msgstr "المرحلة" -#: templates/recruitment/candidate_detail.html:196 +#: templates/recruitment/candidate_detail.html:297 msgid "Applied for:" msgstr "" -#: templates/recruitment/candidate_detail.html:202 +#: templates/recruitment/candidate_detail.html:303 +#: templates/recruitment/candidate_exam_view.html:229 +#: templates/recruitment/candidate_interview_view.html:222 +#: templates/recruitment/candidate_offer_view.html:222 +#: templates/recruitment/candidate_screening_view.html:341 +#, fuzzy +#| msgid "Change to" msgid "Change Stage" -msgstr "" +msgstr "التغيير إلى" -#: templates/recruitment/candidate_detail.html:212 +#: templates/recruitment/candidate_detail.html:313 +#, fuzzy +#| msgid "Contact" msgid "Contact & Job" -msgstr "" - -#: templates/recruitment/candidate_detail.html:225 -msgid "Summary" -msgstr "" - -#: templates/recruitment/candidate_detail.html:251 -msgid "Position Applied" -msgstr "" - -#: templates/recruitment/candidate_detail.html:260 -msgid "Applied Date" -msgstr "" - -#: templates/recruitment/candidate_detail.html:277 -msgid "Resume Document" -msgstr "" - -#: templates/recruitment/candidate_detail.html:285 -msgid "Download Resume" -msgstr "" - -#: templates/recruitment/candidate_detail.html:294 -msgid "AI Generated Summary" -msgstr "" - -#: templates/recruitment/candidate_detail.html:312 -msgid "Management Actions" -msgstr "" +msgstr "جهة الاتصال" #: templates/recruitment/candidate_detail.html:320 -msgid "Edit Details" +msgid "Journey Timeline" msgstr "" -#: templates/recruitment/candidate_detail.html:322 -msgid "Are you sure you want to delete this candidate?" +#: templates/recruitment/candidate_detail.html:331 +#, fuzzy +#| msgid "Car Details" +msgid "Core Details" +msgstr "تفاصيل السيارة" + +#: templates/recruitment/candidate_detail.html:346 +#, fuzzy +#| msgid "Position" +msgid "Position Applied" +msgstr "المركز" + +#: templates/recruitment/candidate_detail.html:377 +msgid "Candidate Journey" msgstr "" -#: templates/recruitment/candidate_detail.html:323 -msgid "Delete Candidate" +#: templates/recruitment/candidate_detail.html:381 +msgid "Current Stage" +msgstr "المرحلة الحالية" + +#: templates/recruitment/candidate_detail.html:385 +#, fuzzy +#| msgid "Settings updated" +msgid "Latest status update:" +msgstr "تم تحديث الإعدادات" + +#: templates/recruitment/candidate_detail.html:389 +msgid "Historical Timeline" msgstr "" -#: templates/recruitment/candidate_detail.html:338 -msgid "Parsed Data" +#: templates/recruitment/candidate_detail.html:397 +msgid "Application Submitted" msgstr "" -#: templates/recruitment/candidate_detail.html:343 -msgid "Activity" +#: templates/recruitment/candidate_detail.html:472 +#, fuzzy +#| msgid "Report Summary" +msgid "AI Generated Summary" +msgstr "ملخص الطلب" + +#: templates/recruitment/candidate_detail.html:482 +#, fuzzy +#| msgid "Car Sale Report" +msgid "AI Analysis Report" +msgstr "تقارير مبيعات السيارات" + +#: templates/recruitment/candidate_detail.html:488 +msgid "Match Score" msgstr "" -#: templates/recruitment/candidate_detail.html:352 -msgid "Structured Resume Data" +#: templates/recruitment/candidate_detail.html:501 +#, fuzzy +#| msgid "Series" +msgid "Category" +msgstr "السلسلة" + +#: templates/recruitment/candidate_detail.html:504 +msgid "Job Fit Narrative" msgstr "" -#: templates/recruitment/candidate_detail.html:372 +#: templates/recruitment/candidate_detail.html:535 +#, fuzzy +#| msgid "Lead Details" +msgid "Professional Details" +msgstr "تفاصيل العميل المحتمل" + +#: templates/recruitment/candidate_detail.html:536 +msgid "Years of Experience:" +msgstr "" + +#: templates/recruitment/candidate_detail.html:537 +msgid "Most Recent Job Title:" +msgstr "" + +#: templates/recruitment/candidate_detail.html:538 +msgid "Experience Industry Match:" +msgstr "" + +#: templates/recruitment/candidate_detail.html:543 +msgid "Soft Skills Score:" +msgstr "" + +#: templates/recruitment/candidate_detail.html:548 +#, fuzzy +#| msgid "New Status" +msgid "Screening Status" +msgstr "الحالة الجديدة" + +#: templates/recruitment/candidate_detail.html:550 +msgid "Minimum Requirements Met:" +msgstr "" + +#: templates/recruitment/candidate_detail.html:558 +msgid "Screening Stage Rating:" +msgstr "" + +#: templates/recruitment/candidate_detail.html:615 +#, fuzzy +#| msgid "Your order is being processed" +msgid "Resume is being parsed" +msgstr "يتم الآن معالجة طلبك" + +#: templates/recruitment/candidate_detail.html:616 msgid "" -"Activity feed (e.g., stage changes, notes, interview history) will appear " -"here." +"Our AI is analyzing the candidate's resume to generate insights. This may " +"take a few moments." msgstr "" -#: templates/recruitment/candidate_list.html:129 +#: templates/recruitment/candidate_detail.html:636 +#, fuzzy +#| msgid "Manage Car Location" +msgid "Management Actions" +msgstr "إدارة موقع السيارة" + +#: templates/recruitment/candidate_detail.html:639 +#, fuzzy +#| msgid "Event Details" +msgid "Edit Details" +msgstr "تفاصيل الحدث" + +#: templates/recruitment/candidate_detail.html:641 +#, fuzzy +#| msgid "Are you sure you want to delete this lead?" +msgid "Are you sure you want to delete this candidate?" +msgstr "هل أنت متأكد أنك تريد حذف هذا العميل المحتمل؟" + +#: templates/recruitment/candidate_detail.html:642 +#, fuzzy +#| msgid "Delete" +msgid "Delete Candidate" +msgstr "حذف" + +#: templates/recruitment/candidate_detail.html:651 +#, fuzzy +#| msgid "View Schedules" +msgid "View Actual Resume" +msgstr "عرض الجداول" + +#: templates/recruitment/candidate_detail.html:655 +#, fuzzy +#| msgid "Download PDF" +msgid "Download Resume" +msgstr "تنزيل PDF" + +#: templates/recruitment/candidate_detail.html:660 +msgid "View Resume AI Overview" +msgstr "" + +#: templates/recruitment/candidate_detail.html:668 +msgid "Time to Hire:" +msgstr "" + +#: templates/recruitment/candidate_detail.html:702 +msgid "Unable to Parse Resume , click to retry" +msgstr "" + +#: templates/recruitment/candidate_exam_view.html:174 +#, fuzzy +#| msgid "Admin Management" +msgid "Exam Management" +msgstr "إدارة المشرفين" + +#: templates/recruitment/candidate_exam_view.html:177 +msgid "Candidates in Exam Stage:" +msgstr "" + +#: templates/recruitment/candidate_exam_view.html:183 +msgid "Export exam candidates to CSV" +msgstr "" + +#: templates/recruitment/candidate_exam_view.html:184 +#: templates/recruitment/candidate_hired_view.html:208 +#: templates/recruitment/candidate_interview_view.html:187 +#: templates/recruitment/candidate_offer_view.html:186 +#: templates/recruitment/candidate_screening_view.html:235 +msgid "Export CSV" +msgstr "تصدير CSV" + +#: templates/recruitment/candidate_exam_view.html:197 +#: templates/recruitment/candidate_screening_view.html:312 +#, fuzzy +#| msgid "Detailed Sale List" +msgid "Candidate List" +msgstr "قائمة مبيعات مفصلة" + +#: templates/recruitment/candidate_exam_view.html:219 +#, fuzzy +#| msgid "Invoice State" +msgid "Interview Stage" +msgstr "حالة الفاتورة" + +#: templates/recruitment/candidate_exam_view.html:222 +#, fuzzy +#| msgid "Select Stage" +msgid "Screening Stage" +msgstr "اختر المرحلة" + +#: templates/recruitment/candidate_exam_view.html:254 +#, fuzzy +#| msgid "results" +msgid "Exam Results" +msgstr "نتائج" + +#: templates/recruitment/candidate_exam_view.html:330 +msgid "No candidates are currently in the Exam stage for this job." +msgstr "" + +#: templates/recruitment/candidate_exam_view.html:343 +msgid "Candidate Details & Exam Update" +msgstr "" + +#: templates/recruitment/candidate_exam_view.html:350 +#: templates/recruitment/candidate_screening_view.html:490 +msgid "Loading candidate data..." +msgstr "" + +#: templates/recruitment/candidate_hired_view.html:192 +msgid "Hired Candidates" +msgstr "" + +#: templates/recruitment/candidate_hired_view.html:195 +#, fuzzy +#| msgid "Successfully fetched services." +msgid "Successfully Hired:" +msgstr "تم جلب الخدمات بنجاح." + +#: templates/recruitment/candidate_hired_view.html:202 +msgid "Sync hired candidates to external sources" +msgstr "" + +#: templates/recruitment/candidate_hired_view.html:203 +#: templates/recruitment/candidate_hired_view.html:407 +msgid "Sync to Sources" +msgstr "" + +#: templates/recruitment/candidate_hired_view.html:207 +msgid "Export hired candidates to CSV" +msgstr "" + +#: templates/recruitment/candidate_hired_view.html:219 +#, fuzzy +#| msgid "Create Quotation" +msgid "Congratulations!" +msgstr "إنشاء عرض" + +#: templates/recruitment/candidate_hired_view.html:220 +msgid "" +"These candidates have successfully completed the hiring process and joined " +"your team." +msgstr "" + +#: templates/recruitment/candidate_hired_view.html:234 +#, fuzzy +#| msgid "Position" +msgid "Applied Position" +msgstr "المركز" + +#: templates/recruitment/candidate_hired_view.html:300 +msgid "No candidates have been hired for this position yet." +msgstr "" + +#: templates/recruitment/candidate_hired_view.html:313 +#, fuzzy +#| msgid "Organization Details" +msgid "Hired Candidate Details" +msgstr "تفاصيل الشركة" + +#: templates/recruitment/candidate_hired_view.html:320 +#: templates/recruitment/candidate_interview_view.html:451 +#: templates/recruitment/candidate_interview_view.html:626 +#: templates/recruitment/candidate_offer_view.html:333 +#, fuzzy +#| msgid "Loading" +msgid "Loading content..." +msgstr "تحميل" + +#: templates/recruitment/candidate_hired_view.html:333 +#, fuzzy +#| msgid "results" +msgid "Sync Results" +msgstr "نتائج" + +#: templates/recruitment/candidate_hired_view.html:340 +msgid "Syncing candidates..." +msgstr "" + +#: templates/recruitment/candidate_hired_view.html:369 +msgid "Syncing hired candidates..." +msgstr "" + +#: templates/recruitment/candidate_hired_view.html:370 +msgid "Please wait while we sync candidates to external sources." +msgstr "" + +#: templates/recruitment/candidate_hired_view.html:378 +#, fuzzy +#| msgid "Savings" +msgid "Syncing..." +msgstr "حساب توفير" + +#: templates/recruitment/candidate_hired_view.html:402 +#, fuzzy +#| msgid "An error occurred while decoding the VIN." +msgid "An unexpected error occurred during sync." +msgstr "حدث خطأ أثناء فك تشفير الهيكل" + +#: templates/recruitment/candidate_hired_view.html:419 +#, fuzzy +#| msgid "Order Summary" +msgid "Sync Summary" +msgstr "ملخص الطلب" + +#: templates/recruitment/candidate_hired_view.html:422 +#, fuzzy +#| msgid "Top Lead Sources" +msgid "Total Sources:" +msgstr "مصادر العملاء المحتمل" + +#: templates/recruitment/candidate_hired_view.html:425 +#, fuzzy +#| msgid "Success" +msgid "Successful:" +msgstr "ناجحة" + +#: templates/recruitment/candidate_hired_view.html:428 +#, fuzzy +#| msgid "Failed" +msgid "Failed:" +msgstr "فشل" + +#: templates/recruitment/candidate_hired_view.html:431 +msgid "Candidates Synced:" +msgstr "" + +#: templates/recruitment/candidate_hired_view.html:439 +#, fuzzy +#| msgid "Service Details" +msgid "Source Details" +msgstr "تفاصيل الخدمة" + +#: templates/recruitment/candidate_hired_view.html:457 +msgid "Candidates Processed:" +msgstr "" + +#: templates/recruitment/candidate_hired_view.html:461 +#: templates/recruitment/notification_detail.html:71 +#, fuzzy +#| msgid "Duration" +msgid "Duration:" +msgstr "المدة" + +#: templates/recruitment/candidate_hired_view.html:465 +#: templates/recruitment/notification_confirm_delete.html:21 +#, fuzzy +#| msgid "Message" +msgid "Message:" +msgstr "رسالة" + +#: templates/recruitment/candidate_hired_view.html:494 +#, fuzzy +#| msgid "Activation failed" +msgid "Sync task failed" +msgstr "فشل في التفعيل" + +#: templates/recruitment/candidate_hired_view.html:503 +msgid "Failed to check sync status" +msgstr "" + +#: templates/recruitment/candidate_hired_view.html:510 +msgid "Sync timed out after 5 minutes" +msgstr "" + +#: templates/recruitment/candidate_hired_view.html:521 +#, fuzzy +#| msgid "In Progress" +msgid "Sync in progress..." +msgstr "قيد التنفيذ" + +#: templates/recruitment/candidate_hired_view.html:532 +#, fuzzy +#| msgid "Payment Failed" +msgid "Sync Failed" +msgstr "فشل الدفع" + +#: templates/recruitment/candidate_interview_view.html:177 +#, fuzzy +#| msgid "Inventory Management" +msgid "Interview Management" +msgstr "إدارة المخزون" + +#: templates/recruitment/candidate_interview_view.html:180 +msgid "Candidates in Interview Stage:" +msgstr "" + +#: templates/recruitment/candidate_interview_view.html:186 +msgid "Export interview candidates to CSV" +msgstr "" + +#: templates/recruitment/candidate_interview_view.html:215 +msgid "To Offer" +msgstr "" + +#: templates/recruitment/candidate_interview_view.html:218 +#, fuzzy +#| msgid "To Email" +msgid "To Exam" +msgstr "إلى البريد الإلكتروني" + +#: templates/recruitment/candidate_interview_view.html:232 +#, fuzzy +#| msgid "Schedule Delivery" +msgid "Schedule Interviews" +msgstr "جدولة التسليم" + +#: templates/recruitment/candidate_interview_view.html:240 +#, fuzzy +#| msgid "Manage Permissions" +msgid "Manage Participants" +msgstr "ادارة الصلاحيات" + +#: templates/recruitment/candidate_interview_view.html:265 +#, fuzzy +#| msgid "Receiving Date" +msgid "Meeting Date" +msgstr "تاريخ الاستلام" + +#: templates/recruitment/candidate_interview_view.html:267 +#, fuzzy +#| msgid "Meeting" +msgid "Meeting Status" +msgstr "اجتماع" + +#: templates/recruitment/candidate_interview_view.html:268 +#, fuzzy +#| msgid "Service Requested" +msgid "Interview Result" +msgstr "الخدمة المطلوبة" + +#: templates/recruitment/candidate_interview_view.html:310 +msgid "Minutes" +msgstr "" + +#: templates/recruitment/candidate_interview_view.html:432 +msgid "No candidates are currently in the Interview stage for this job." +msgstr "" + +#: templates/recruitment/candidate_interview_view.html:444 +#: templates/recruitment/candidate_interview_view.html:630 +#: templates/recruitment/candidate_offer_view.html:326 +msgid "Candidate Details / Bulk Action Form" +msgstr "" + +#: templates/recruitment/candidate_interview_view.html:464 +#, fuzzy +#| msgid "Manage Car Location" +msgid "Manage all participants" +msgstr "إدارة موقع السيارة" + +#: templates/recruitment/candidate_interview_view.html:484 +msgid "Users" +msgstr "المستخدمون" + +#: templates/recruitment/candidate_interview_view.html:527 +#, fuzzy +#| msgid "Loading" +msgid "Loading email form..." +msgstr "تحميل" + +#: templates/recruitment/candidate_list.html:193 +#, fuzzy +#| msgid "Manage Profile" msgid "Candidate Profiles" -msgstr "" +msgstr "عرض الملف الشخصي" -#: templates/recruitment/candidate_list.html:138 +#: templates/recruitment/candidate_list.html:197 +#, fuzzy +#| msgid "Add New Car" msgid "Add New Candidate" +msgstr "إضافة سيارة" + +#: templates/recruitment/candidate_list.html:221 +#, fuzzy +#| msgid "Filter" +msgid "Filter by Job" +msgstr "تصفية" + +#: templates/recruitment/candidate_list.html:274 +msgid "Major" msgstr "" -#: templates/recruitment/candidate_list.html:150 -msgid "Name" +#: templates/recruitment/candidate_list.html:277 +#, fuzzy +#| msgid "Created At" +msgid "created At" +msgstr "تاريخ الإنشاء" + +#: templates/recruitment/candidate_list.html:401 +#, fuzzy +#| msgid "No Entries found" +msgid "No candidate profiles found" +msgstr "لم يتم العثور على أي مدخلات" + +#: templates/recruitment/candidate_list.html:402 +msgid "Create your first candidate profile or adjust your filters." msgstr "" -#: templates/recruitment/candidate_list.html:155 -#: templates/recruitment/training_list.html:152 -msgid "Created" +#: templates/recruitment/candidate_list.html:405 +#, fuzzy +#| msgid "Add Car" +msgid "Add Candidate" +msgstr "إضافة سيارة" + +#: templates/recruitment/candidate_offer_view.html:176 +#, fuzzy +#| msgid "User Management" +msgid "Offer Management" +msgstr "إدارة المستخدمين" + +#: templates/recruitment/candidate_offer_view.html:179 +msgid "Candidates in Offer Stage:" msgstr "" -#: templates/recruitment/candidate_list.html:156 -#: templates/recruitment/training_list.html:153 -msgid "Actions" +#: templates/recruitment/candidate_offer_view.html:185 +msgid "Export offer candidates to CSV" msgstr "" -#: templates/recruitment/candidate_list.html:233 -msgid "No candidates found." +#: templates/recruitment/candidate_offer_view.html:213 +msgid "To Hired" msgstr "" -#: templates/recruitment/candidate_list.html:234 -msgid "Start by adding a new profile or adjusting your search filters." +#: templates/recruitment/candidate_offer_view.html:216 +#, fuzzy +#| msgid "In Review" +msgid "To Interview" +msgstr "قيد المراجعة" + +#: templates/recruitment/candidate_offer_view.html:313 +msgid "No candidates are currently in the Offer stage for this job." msgstr "" -#: templates/recruitment/candidate_list.html:238 -msgid "Add Your First Candidate" +#: templates/recruitment/candidate_screening_view.html:224 +msgid "Applicant Screening" +msgstr "" + +#: templates/recruitment/candidate_screening_view.html:227 +msgid "Job:" +msgstr "" + +#: templates/recruitment/candidate_screening_view.html:234 +msgid "Export screening candidates to CSV" +msgstr "" + +#: templates/recruitment/candidate_screening_view.html:249 +msgid "AI Scoring & Top Candidate Filter" +msgstr "" + +#: templates/recruitment/candidate_screening_view.html:257 +msgid "Min AI Score" +msgstr "" + +#: templates/recruitment/candidate_screening_view.html:266 +msgid "Min Years Exp" +msgstr "" + +#: templates/recruitment/candidate_screening_view.html:278 +#, fuzzy +#| msgid "Accounting" +msgid "Any Rating" +msgstr "المحاسبة" + +#: templates/recruitment/candidate_screening_view.html:296 +msgid "Top N Candidates" +msgstr "" + +#: templates/recruitment/candidate_screening_view.html:304 +#, fuzzy +#| msgid "Update Notes" +msgid "Update Filters" +msgstr "تحديث الملاحظات" + +#: templates/recruitment/candidate_screening_view.html:333 +#, fuzzy +#| msgid "Stage" +msgid "Exam Stage" +msgstr "المرحلة" + +#: templates/recruitment/candidate_screening_view.html:367 +#, fuzzy +#| msgid "Contact Information" +msgid "Contact Info" +msgstr "معلومات العميل" + +#: templates/recruitment/candidate_screening_view.html:373 +#, fuzzy +#| msgid "Qualified" +msgid "Is Qualified?" +msgstr "مؤهل" + +#: templates/recruitment/candidate_screening_view.html:376 +#, fuzzy +#| msgid "Professional Services:" +msgid "Professional Category" +msgstr "الخدمات المهنية:" + +#: templates/recruitment/candidate_screening_view.html:379 +msgid "Top 3 Skills" +msgstr "" + +#: templates/recruitment/candidate_screening_view.html:422 +msgid "AI scoring.." +msgstr "" + +#: templates/recruitment/candidate_screening_view.html:469 +msgid "No candidates match the current stage and filter criteria." +msgstr "" + +#: templates/recruitment/candidate_screening_view.html:483 +msgid "Candidate Criteria Review" msgstr "" #: templates/recruitment/candidate_update.html:92 +#, fuzzy +#| msgid "Updated At" msgid "Update Candidate:" -msgstr "" +msgstr "تم التحديث" #: templates/recruitment/candidate_update.html:94 msgid "Edit candidate information and details" msgstr "" #: templates/recruitment/candidate_update.html:102 +#, fuzzy +#| msgid "View Vendor" msgid "View Candidate" -msgstr "" +msgstr "عرض المورد" #: templates/recruitment/candidate_update.html:116 +#, fuzzy +#| msgid "Invalid data." msgid "Candidate Form" -msgstr "" +msgstr "بيانات غير صالحة." #: templates/recruitment/candidate_update.html:135 +#, fuzzy +#| msgid "Updated At" msgid "Update Candidate" +msgstr "تم التحديث" + +#: templates/recruitment/dashboard.html:4 +#, fuzzy +#| msgid "Accountant" +msgid "Recruitment Dashboard" +msgstr "محاسب" + +#: templates/recruitment/dashboard.html:182 +#, fuzzy +#| msgid "Advanced Analytics" +msgid "Recruitment Analytics" +msgstr "تحليلات متقدمة" + +#: templates/recruitment/dashboard.html:192 +msgid "Data Scope: " msgstr "" -#: templates/recruitment/training_create.html:119 +#: templates/recruitment/dashboard.html:194 +#, fuzzy +#| msgid "Data Import Jobs" +msgid "Data Scope: All Jobs" +msgstr "مهام استيراد البيانات" + +#: templates/recruitment/dashboard.html:199 +#, fuzzy +#| msgid "Filter" +msgid "Filter Job:" +msgstr "تصفية" + +#: templates/recruitment/dashboard.html:201 +msgid "All Jobs (Default View)" +msgstr "" + +#: templates/recruitment/dashboard.html:227 +msgid "Daily Candidate Applications Trend" +msgstr "" + +#: templates/recruitment/dashboard.html:241 +#, fuzzy +#| msgid "Specification Value" +msgid "Top 5 Application Volume" +msgstr "قيمة المواصفة" + +#: templates/recruitment/dashboard.html:257 +msgid "Pipeline Funnel: " +msgstr "" + +#: templates/recruitment/dashboard.html:259 +msgid "Total Pipeline Funnel (All Jobs)" +msgstr "" + +#: templates/recruitment/dashboard.html:273 +msgid "Time-to-Hire Target Check" +msgstr "" + +#: templates/recruitment/dashboard.html:320 +msgid "Top 5 Most Applied Jobs" +msgstr "" + +#: templates/recruitment/dashboard.html:328 +#, fuzzy +#| msgid "Total Accounts" +msgid "Total Applications" +msgstr "إجمالي الحسابات" + +#: templates/recruitment/dashboard.html:380 +#, fuzzy +#| msgid "Transaction Count" +msgid "Candidate Count" +msgstr "عدد المعاملات" + +#: templates/recruitment/dashboard.html:448 +#, fuzzy +#| msgid "Current Ratio" +msgid "Current Job" +msgstr "نسبة التداول" + +#: templates/recruitment/dashboard.html:473 +msgid "Daily Applications (Last 30 Days)" +msgstr "" + +#: templates/recruitment/dashboard.html:488 +msgid "Date" +msgstr "التاريخ" + +#: templates/recruitment/dashboard.html:493 +#, fuzzy +#| msgid "New Leads" +msgid "New Candidates" +msgstr "عملاء محتملون جدد" + +#: templates/recruitment/notification_confirm_all_read.html:4 +#, fuzzy +#| msgid "Mark all as read" +msgid "Mark All as Read" +msgstr "وضع علامة مقروء على الكل" + +#: templates/recruitment/notification_confirm_all_read.html:22 +msgid "What this will do" +msgstr "" + +#: templates/recruitment/notification_confirm_all_read.html:25 +#, fuzzy, python-format +#| msgid "" +#| "\n" +#| " This order is expired. It will accept an incoming " +#| "payment made earlier, but new payment cannot be\n" +#| " initialized. Please make a new order if necessary.\n" +#| " " +msgid "" +"\n" +" This will mark %(count)s unread " +"notification as read.\n" +" " +msgid_plural "" +"\n" +" This will mark all %(count)s unread " +"notifications as read.\n" +" " +msgstr[0] "" +"\n" +" انتهت صلاحية هذا الطلب. سيتم قبول أي دفعة سابقة، لكن لا " +"يمكن بدء دفعة جديدة.\n" +" يرجى إنشاء طلب جديد إذا لزم الأمر.\n" +" " +msgstr[1] "" +"\n" +" انتهت صلاحية هذا الطلب. سيتم قبول أي دفعة سابقة، لكن لا " +"يمكن بدء دفعة جديدة.\n" +" يرجى إنشاء طلب جديد إذا لزم الأمر.\n" +" " +msgstr[2] "" +"\n" +" انتهت صلاحية هذا الطلب. سيتم قبول أي دفعة سابقة، لكن لا " +"يمكن بدء دفعة جديدة.\n" +" يرجى إنشاء طلب جديد إذا لزم الأمر.\n" +" " +msgstr[3] "" +"\n" +" انتهت صلاحية هذا الطلب. سيتم قبول أي دفعة سابقة، لكن لا " +"يمكن بدء دفعة جديدة.\n" +" يرجى إنشاء طلب جديد إذا لزم الأمر.\n" +" " +msgstr[4] "" +"\n" +" انتهت صلاحية هذا الطلب. سيتم قبول أي دفعة سابقة، لكن لا " +"يمكن بدء دفعة جديدة.\n" +" يرجى إنشاء طلب جديد إذا لزم الأمر.\n" +" " +msgstr[5] "" +"\n" +" انتهت صلاحية هذا الطلب. سيتم قبول أي دفعة سابقة، لكن لا " +"يمكن بدء دفعة جديدة.\n" +" يرجى إنشاء طلب جديد إذا لزم الأمر.\n" +" " + +#: templates/recruitment/notification_confirm_all_read.html:32 +msgid "" +"You can still view all notifications in your notification list, but they " +"won't appear as unread." +msgstr "" + +#: templates/recruitment/notification_confirm_all_read.html:38 +msgid "All caught up!" +msgstr "" + +#: templates/recruitment/notification_confirm_all_read.html:41 +#, fuzzy +#| msgid "Quotation marked as " +msgid "You don't have any unread notifications to mark as read." +msgstr "تم وضع علامة على عرض السعر كـ" + +#: templates/recruitment/notification_confirm_all_read.html:50 +#, fuzzy +#| msgid "Mark all as read" +msgid "Yes, Mark All as Read" +msgstr "وضع علامة مقروء على الكل" + +#: templates/recruitment/notification_confirm_all_read.html:58 +#: templates/recruitment/notification_detail.html:18 +#, fuzzy +#| msgid "Notifications" +msgid "Back to Notifications" +msgstr "الإشعارات" + +#: templates/recruitment/notification_confirm_delete.html:4 +#, fuzzy +#| msgid "Recall Notification" +msgid "Delete Notification" +msgstr "إشعار استدعاء" + +#: templates/recruitment/notification_confirm_delete.html:20 +#, fuzzy +#| msgid "Notification" +msgid "Notification Preview" +msgstr "إشعار" + +#: templates/recruitment/notification_confirm_delete.html:30 +#, fuzzy +#| msgid " Delete" +msgid "Yes, Delete" +msgstr "حذف" + +#: templates/recruitment/notification_detail.html:4 +#: templates/recruitment/notification_detail.html:12 +#, fuzzy +#| msgid "Notification" +msgid "Notification Details" +msgstr "إشعار" + +#: templates/recruitment/notification_detail.html:14 +msgid "View notification details and manage your preferences" +msgstr "" + +#: templates/recruitment/notification_detail.html:47 +#: templates/recruitment/notification_detail.html:132 +#, fuzzy +#| msgid "Mark as Paid" +msgid "Mark as Read" +msgstr "وضع علامة مدفوعة" + +#: templates/recruitment/notification_detail.html:51 +#: templates/recruitment/notification_detail.html:136 +#, fuzzy +#| msgid "Mark as Paid" +msgid "Mark as Unread" +msgstr "وضع علامة مدفوعة" + +#: templates/recruitment/notification_detail.html:65 +msgid "Topic:" +msgstr "" + +#: templates/recruitment/notification_detail.html:68 +#, fuzzy +#| msgid "Start Time" +msgid "Start Time:" +msgstr "وقت البدء" + +#: templates/recruitment/notification_detail.html:75 +#, fuzzy +#| msgid "Meeting" +msgid "View Meeting" +msgstr "اجتماع" + +#: templates/recruitment/notification_detail.html:84 +#: templates/recruitment/notification_detail.html:175 +#, fuzzy +#| msgid "Scheduled" +msgid "Scheduled For" +msgstr "مجدول" + +#: templates/recruitment/notification_detail.html:95 +#: templates/recruitment/notification_detail.html:182 +#, fuzzy +#| msgid "Delivery Date" +msgid "Delivery Attempts" +msgstr "تاريخ التسليم" + +#: templates/recruitment/notification_detail.html:98 +#, fuzzy, python-format +#| msgid "" +#| "\n" +#| " This order could not be processed as it is not valid. " +#| "Please contact with customer service.\n" +#| " " +msgid "" +"\n" +" This notification has been attempted " +"%(count)s time.\n" +" " +msgid_plural "" +"\n" +" This notification has been attempted " +"%(count)s times.\n" +" " +msgstr[0] "" +"\n" +" لا يمكن معالجة هذا الطلب لأنه غير صالح. يرجى الاتصال بخدمة " +"العملاء.\n" +" " +msgstr[1] "" +"\n" +" لا يمكن معالجة هذا الطلب لأنه غير صالح. يرجى الاتصال بخدمة " +"العملاء.\n" +" " +msgstr[2] "" +"\n" +" لا يمكن معالجة هذا الطلب لأنه غير صالح. يرجى الاتصال بخدمة " +"العملاء.\n" +" " +msgstr[3] "" +"\n" +" لا يمكن معالجة هذا الطلب لأنه غير صالح. يرجى الاتصال بخدمة " +"العملاء.\n" +" " +msgstr[4] "" +"\n" +" لا يمكن معالجة هذا الطلب لأنه غير صالح. يرجى الاتصال بخدمة " +"العملاء.\n" +" " +msgstr[5] "" +"\n" +" لا يمكن معالجة هذا الطلب لأنه غير صالح. يرجى الاتصال بخدمة " +"العملاء.\n" +" " + +#: templates/recruitment/notification_detail.html:110 +#, fuzzy +#| msgid "Error" +msgid "Last Error" +msgstr "خطأ" + +#: templates/recruitment/notification_detail.html:150 +#, fuzzy +#| msgid "VAT Information" +msgid "Information" +msgstr "معلومات المستخدم" + +#: templates/recruitment/notification_list.html:15 +#, fuzzy, python-format +#| msgid "" +#| "\n" +#| " Invoice for this order will be issued for:\n" +#| " " +msgid "" +"\n" +" %(count)s notification\n" +" " +msgid_plural "" +"\n" +" %(count)s notifications\n" +" " +msgstr[0] "" +"\n" +" سيتم إصدار فاتورة لهذا الطلب لـ:\n" +" " +msgstr[1] "" +"\n" +" سيتم إصدار فاتورة لهذا الطلب لـ:\n" +" " +msgstr[2] "" +"\n" +" سيتم إصدار فاتورة لهذا الطلب لـ:\n" +" " +msgstr[3] "" +"\n" +" سيتم إصدار فاتورة لهذا الطلب لـ:\n" +" " +msgstr[4] "" +"\n" +" سيتم إصدار فاتورة لهذا الطلب لـ:\n" +" " +msgstr[5] "" +"\n" +" سيتم إصدار فاتورة لهذا الطلب لـ:\n" +" " + +#: templates/recruitment/notification_list.html:26 +#, fuzzy +#| msgid "Mark all read" +msgid "Mark All Read" +msgstr "وضع علامة مقروء على الكل" + +#: templates/recruitment/notification_list.html:39 +#, fuzzy +#| msgid "bill Status" +msgid "All Status" +msgstr "حالة الفاتورة" + +#: templates/recruitment/notification_list.html:40 +#: templates/recruitment/notification_list.html:82 +msgid "Unread" +msgstr "" + +#: templates/recruitment/notification_list.html:48 +#, fuzzy +#| msgid "All Stock Types" +msgid "All Types" +msgstr "جميع أنواع المخزون" + +#: templates/recruitment/notification_list.html:57 +msgid "Filter" +msgstr "تصفية" + +#: templates/recruitment/notification_list.html:74 +#, fuzzy +#| msgid "Recall Notifications" +msgid "Total Notifications" +msgstr "إشعارات الاستدعاءات" + +#: templates/recruitment/notification_list.html:90 +#, fuzzy +#| msgid "Recall Notifications" +msgid "Email Notifications" +msgstr "إشعارات الاستدعاءات" + +#: templates/recruitment/notification_list.html:122 +#, fuzzy +#| msgid "Related Items" +msgid "Related to meeting:" +msgstr "العناصر ذات الصلة" + +#: templates/recruitment/notification_list.html:130 +#, fuzzy +#| msgid "Mark as Paid" +msgid "Mark as read" +msgstr "وضع علامة مدفوعة" + +#: templates/recruitment/notification_list.html:136 +#, fuzzy +#| msgid "Mark as Paid" +msgid "Mark as unread" +msgstr "وضع علامة مدفوعة" + +#: templates/recruitment/notification_list.html:142 +#, fuzzy +#| msgid "Notifications" +msgid "Delete notification" +msgstr "الإشعارات" + +#: templates/recruitment/notification_list.html:155 +#, fuzzy +#| msgid "Notifications" +msgid "Notifications pagination" +msgstr "الإشعارات" + +#: templates/recruitment/notification_list.html:190 +#, fuzzy +#| msgid "Notifications" +msgid "No notifications found" +msgstr "الإشعارات" + +#: templates/recruitment/notification_list.html:193 +#, fuzzy +#| msgid "Try adjusting your search criteria or filters" +msgid "Try adjusting your filters to see more notifications." +msgstr "جرب تعديل معايير البحث أو المرشحات" + +#: templates/recruitment/notification_list.html:195 +#, fuzzy +#| msgid "You don't have any backup codes yet." +msgid "You don't have any notifications yet." +msgstr "ليس لديك أي رموز احتياطية حتى الآن." + +#: templates/recruitment/partials/_candidate_table.html:10 +#, fuzzy +#| msgid "Contact" +msgid "Name / Contact" +msgstr "جهة الاتصال" + +#: templates/recruitment/partials/_candidate_table.html:64 +msgid "View Details and Score Breakdown" +msgstr "" + +#: templates/recruitment/partials/_candidate_table.html:75 +#, fuzzy +#| msgid "Mark as Paid" +msgid "Mark as Potential Candidate" +msgstr "وضع علامة مدفوعة" + +#: templates/recruitment/partials/_candidate_table.html:83 +#, fuzzy +#| msgid "Select Stage" +msgid "Move to Next Stage" +msgstr "اختر المرحلة" + +#: templates/recruitment/partials/_candidate_table.html:92 +msgid "Move to" +msgstr "" + +#: templates/recruitment/partials/_candidate_table.html:102 +#, fuzzy +#| msgid "Estimate Model Status" +msgid "Update Exam Status" +msgstr "حالة نموذج التقدير" + +#: templates/recruitment/partials/_candidate_table.html:120 +#, fuzzy +#| msgid "No accounts found in this category." +msgid "No candidates found in this list." +msgstr "لم يتم العثور على أي حسابات في هذه الفئة." + +#: templates/recruitment/partials/_candidate_table.html:122 +msgid "" +"Adjust your 'Top N' filter in the controls above or check the All Applicants " +"list." +msgstr "" + +#: templates/recruitment/partials/_guage_chart.html:36 +#: templates/recruitment/partials/_guage_chart.html:50 +#, fuzzy +#| msgid "Days Off" +msgid "Days" +msgstr "أيام الإجازة" + +#: templates/recruitment/partials/_guage_chart.html:50 +#, fuzzy +#| msgid "Target Price" +msgid "Target:" +msgstr "سعر الهدف" + +#: templates/recruitment/partials/_guage_chart.html:50 +msgid "Max Scale:" +msgstr "" + +#: templates/recruitment/partials/ai_overview_breadcromb.html:25 +msgid "Home" +msgstr "الرئيسية" + +#: templates/recruitment/partials/ai_overview_breadcromb.html:113 +#, fuzzy +#| msgid "In Review" +msgid "AI Overview" +msgstr "قيد المراجعة" + +#: templates/recruitment/partials/stats_cards.html:10 +#, fuzzy +#| msgid "Total Cost" +msgid "Total Jobs" +msgstr "إجمالي التكلفة" + +#: templates/recruitment/partials/stats_cards.html:13 +msgid "All Active & Drafted Positions" +msgstr "" + +#: templates/recruitment/partials/stats_cards.html:19 +#, fuzzy +#| msgid "Active" +msgid "Active Jobs" +msgstr "نشط" + +#: templates/recruitment/partials/stats_cards.html:22 +#, fuzzy +#| msgid "Current Ratio" +msgid "Currently Open Requisitions" +msgstr "نسبة التداول" + +#: templates/recruitment/partials/stats_cards.html:31 +#, fuzzy +#| msgid "Appointment application" +msgid "Total applications" +msgstr "تطبيق المواعيد" + +#: templates/recruitment/partials/stats_cards.html:40 +msgid "Total Slots to be Filled " +msgstr "" + +#: templates/recruitment/partials/stats_cards.html:46 +#, fuzzy +#| msgid "total permission" +msgid "Total Participants" +msgstr "إجمالي الأذونات" + +#: templates/recruitment/partials/stats_cards.html:49 +#, fuzzy +#| msgid "Total Revenue from Services" +msgid "Total Recruiters/Interviewers" +msgstr "الإيرادات الإجمالية من الخدمات" + +#: templates/recruitment/partials/stats_cards.html:72 +msgid "Avg. Apps per Job" +msgstr "" + +#: templates/recruitment/partials/stats_cards.html:75 +msgid "Average Applications per Job" +msgstr "" + +#: templates/recruitment/partials/stats_cards.html:82 +#, fuzzy +#| msgid "Timezone" +msgid "Time-to-Hire" +msgstr "المنطقة الزمنية" + +#: templates/recruitment/partials/stats_cards.html:85 +#, fuzzy +#| msgid "Leverage" +msgid "Average Days" +msgstr "الرافعة المالية" + +#: templates/recruitment/partials/stats_cards.html:90 +msgid "Avg. Match Score" +msgstr "" + +#: templates/recruitment/partials/stats_cards.html:93 +msgid "Average AI Score " +msgstr "" + +#: templates/recruitment/partials/stats_cards.html:101 +#, python-format +msgid "Score ≥ 75%% Profiles" +msgstr "" + +#: templates/recruitment/schedule_meeting_form.html:22 +msgid "" +"This candidate has upcoming interviews. You are updating an existing " +"schedule." +msgstr "" + +#: templates/recruitment/schedule_meeting_form.html:27 +#, fuzzy +#| msgid "Back to Estimate" +msgid "Back to Candidates" +msgstr "العودة إلى التقدير" + +#: templates/recruitment/schedule_meeting_form.html:49 +msgid "" +"Default topic will be 'Interview: [Job Title] with [Candidate Name]' if left " +"empty." +msgstr "" + +#: templates/recruitment/schedule_meeting_form.html:66 +#, fuzzy +#| msgid "Please select a date and time" +msgid "Please select a date and time for the interview." +msgstr "يرجى اختيار تاريخ ووقت" + +#: templates/recruitment/training_create.html:107 +#, fuzzy +#| msgid "Create New Service" msgid "Create New Training Material" -msgstr "" +msgstr "إنشاء خدمة جديدة" -#: templates/recruitment/training_create.html:121 +#: templates/recruitment/training_create.html:109 msgid "Upload a new document or guide for your team." msgstr "" -#: templates/recruitment/training_create.html:137 +#: templates/recruitment/training_create.html:125 #: templates/recruitment/training_update.html:131 +#, fuzzy +#| msgid "Lead Details" msgid "Material Details" -msgstr "" +msgstr "تفاصيل العميل المحتمل" -#: templates/recruitment/training_create.html:158 -msgid "Create Material" -msgstr "" - -#: templates/recruitment/training_list.html:135 -#: templates/recruitment/training_list.html:137 +#: templates/recruitment/training_list.html:132 +#, fuzzy +#| msgid "Add New Car" msgid "Add New Material" +msgstr "إضافة سيارة" + +#: templates/recruitment/training_list.html:141 +msgid "Search by Title or Creator" msgstr "" -#: templates/recruitment/training_list.html:223 -msgid "No training materials found." -msgstr "" +#: templates/recruitment/training_list.html:170 +#: templates/recruitment/training_list.html:205 +msgid "Created By" +msgstr "تم الإنشاء بواسطة" -#: templates/recruitment/training_list.html:224 +#: templates/recruitment/training_list.html:171 +msgid "Created On" +msgstr "تم الإنشاء في" + +#: templates/recruitment/training_list.html:274 +#, fuzzy +#| msgid "No Transactions Found" +msgid "No training materials found" +msgstr "لم يتم العثور على معاملات" + +#: templates/recruitment/training_list.html:275 msgid "It looks like there are no materials yet. Start by adding one!" msgstr "" -#: templates/recruitment/training_list.html:228 +#: templates/recruitment/training_list.html:278 +#, fuzzy +#| msgid "Create Invoice" msgid "Create Your First Material" -msgstr "" +msgstr "إنشاء فاتورة" #: templates/recruitment/training_update.html:107 +#, fuzzy +#| msgid "Update Transactions" msgid "Update Training Material:" -msgstr "" +msgstr "تحديث المعاملات" #: templates/recruitment/training_update.html:109 msgid "Edit the details of this training document or guide." msgstr "" #: templates/recruitment/training_update.html:117 +#, fuzzy +#| msgid "Material" msgid "View Material" -msgstr "" +msgstr "المواد" #: templates/recruitment/training_update.html:180 +#, fuzzy +#| msgid "Updated At" msgid "Update Material" -msgstr "" +msgstr "تم التحديث" #: templates/recruitment/training_update.html:182 +#, fuzzy +#| msgid "Are you sure you want to delete this lead?" msgid "Are you sure you want to delete this material?" -msgstr "" +msgstr "هل أنت متأكد أنك تريد حذف هذا العميل المحتمل؟" #: templates/unfold/components/table.html:43 msgid "No data" msgstr "" -# Source Management -msgid "Data Sources" -msgstr "مصادر البيانات" - -msgid "Create New Source" -msgstr "إنشاء مصدر جديد" - -msgid "Search by name, type, or description..." -msgstr "البحث بالاسم، النوع، أو الوصف..." - -msgid "Filter" -msgstr "تصفية" - -msgid "Available Sources" -msgstr "المصادر المتاحة" - -msgid "sources" -msgstr "مصادر" - -msgid "View Details" -msgstr "عرض التفاصيل" - -msgid "Edit" -msgstr "تعديل" - -msgid "Delete" -msgstr "حذف" - -msgid "First" -msgstr "الأول" - -msgid "Previous" -msgstr "السابق" - -msgid "Next" -msgstr "التالي" - -msgid "Last" -msgstr "الأخير" - -msgid "No sources found" -msgstr "لم يتم العثور على مصادر" - -msgid "Get started by creating your first data source." -msgstr "ابدأ بإنشاء أول مصدر بيانات لك." - -msgid "Network Configuration" -msgstr "تكوين الشبكة" - -msgid "Settings" +#: templates/user/admin_settings.html:6 +#, fuzzy +#| msgid "Settings" +msgid "Admin Settings" msgstr "الإعدادات" -msgid "API Configuration" -msgstr "تكوين واجهة برمجة التطبيقات" +#: templates/user/admin_settings.html:149 +#, fuzzy +#| msgid "My Dashboard" +msgid "Staff Management Dashboard" +msgstr "لوحة القيادة الخاصة بي" -msgid "API Keys" -msgstr "مفاتيح واجهة برمجة التطبيقات" +#: templates/user/admin_settings.html:159 +#, fuzzy +#| msgid "Staff Members List" +msgid "Staff User List" +msgstr "قائمة أعضاء الفريق" -msgid "Generate secure API keys for external integrations" -msgstr "إنشاء مفاتيح واجهة برمجة التطبيقات الآمنة للتكاملات الخارجية" +#: templates/user/admin_settings.html:163 +#, fuzzy +#| msgid "Create New Customer" +msgid "Create New User" +msgstr "إنشاء عميل جديد" -msgid "Active" +#: templates/user/admin_settings.html:178 +#, fuzzy +#| msgid "First name" +msgid "First Join" +msgstr "الاسم الأول" + +#: templates/user/admin_settings.html:179 templates/user/profile.html:178 +#, fuzzy +#| msgid "last login" +msgid "Last Login" +msgstr "آخر تسجيل دخول" + +#: templates/user/admin_settings.html:233 +#, fuzzy +#| msgid "Deactivate" +msgid "Deactivate User" +msgstr "إلغاء التفعيل" + +#: templates/user/admin_settings.html:240 +#, fuzzy +#| msgid "Active" +msgid "Activate User" msgstr "نشط" -msgid "Inactive" -msgstr "غير نشط" +#: templates/user/admin_settings.html:241 +#, fuzzy +#| msgid "Active" +msgid "Activate" +msgstr "نشط" -msgid "Not generated" -msgstr "لم يتم إنشاؤه" +#: templates/user/admin_settings.html:250 +#, fuzzy +#| msgid "No staff members found." +msgid "No staff users found." +msgstr "لم يتم العثور على أعضاء فريق." -msgid "Created By" -msgstr "أنشأ بواسطة" +#: templates/user/create_staff.html:6 templates/user/create_staff.html:37 +#: templates/user/create_staff.html:69 +#, fuzzy +#| msgid "Create Sale Order" +msgid "Create Staff User" +msgstr "إنشاء أمر بيع" -msgid "Created At" -msgstr "أنشأ في" - -msgid "Updated At" -msgstr "حدث في" - -msgid "IP Address" -msgstr "عنوان IP" - -msgid "Trusted IPs" -msgstr "عناوين IP الموثوقة" - -msgid "Integration Version" -msgstr "إصدار التكامل" - -msgid "API Key" -msgstr "مفتاح واجهة برمجة التطبيقات" - -msgid "API Secret" -msgstr "سر واجهة برمجة التطبيقات" - -msgid "Recent Integration Logs" -msgstr "سجلات التكامل الأخيرة" - -msgid "Time" -msgstr "الوقت" - -msgid "Action" -msgstr "الإجراء" - -msgid "Endpoint" -msgstr "نقطة النهاية" - -msgid "Method" -msgstr "الطريقة" - -msgid "Status" -msgstr "الحالة" - -msgid "Success" -msgstr "نجح" - -msgid "Failed" -msgstr "فشل" - -msgid "No integration logs found" -msgstr "لم يتم العثور على سجلات تكامل" - -msgid "Integration logs will appear here when this source is used for external integrations." -msgstr "ستظهر سجلات التكامل هنا عند استخدام هذا المصدر للتكاملات الخارجية." - -msgid "Delete Source" -msgstr "حذف المصدر" - -msgid "Confirm Deletion" -msgstr "تأكيد الحذف" - -msgid "Are you sure you want to delete the following source? This action cannot be undone." -msgstr "هل أنت متأكد من رغبتك في حذف المصدر التالي؟ لا يمكن التراجع عن هذا الإجراء." - -msgid "Important Note" -msgstr "ملاحظة هامة" - -msgid "All associated API keys will be permanently deleted." -msgstr "ستتم حذف جميع مفاتيح واجهة برمجة التطبيقات المرتبطة بشكل دائم." - -msgid "Integration logs related to this source will remain but will show 'Source deleted'." -msgstr "ستبقى سجلات التكامل المتعلقة بهذا المصدر ولكنها ستظهر 'تم حذف المصدر'." - -msgid "Any active integrations using this source will be disconnected." -msgstr "سيتم فصل أي تكاملات نشطة تستخدم هذا المصدر." - -msgid "Back to List" +#: templates/user/create_staff.html:76 +#, fuzzy +#| msgid "Back to Staffs" +msgid "Back to Settings" msgstr "العودة إلى القائمة" -msgid "Delete Source" -msgstr "حذف المصدر" +#: templates/user/profile.html:5 +#, fuzzy +#| msgid "View Profile" +msgid "User Profile" +msgstr "عرض الملف الشخصي" -msgid "Generate API Keys" -msgstr "إنشاء مفاتيح واجهة برمجة التطبيقات" +#: templates/user/profile.html:142 +#, fuzzy +#| msgid "Email address" +msgid "Manage email addresses" +msgstr "عنوان البريد الإلكتروني" -msgid "Copy to Clipboard" -msgstr "نسخ إلى الحافظة" +#: templates/user/profile.html:157 +#, fuzzy +#| msgid "Securities" +msgid "Security" +msgstr "الأوراق المالية" -msgid "Failed to copy to clipboard" -msgstr "فشل نسخ إلى الحافظة" +#: templates/user/profile.html:164 +#, fuzzy +#| msgid "Manage Profile" +msgid "Change Profile Image" +msgstr "عرض الملف الشخصي" -msgid "Generate random API key" -msgstr "إنشاء مفتاح واجهة برمجة تطبيقات عشوائي" +#: templates/user/profile.html:170 +#, fuzzy +#| msgid "Accountant" +msgid "Account Status" +msgstr "محاسب" -msgid "Generate random API secret" -msgstr "إنشاء سر واجهة برمجة تطبيقات عشوائي" +#: templates/user/profile.html:173 +msgid "Username" +msgstr "اسم المستخدم" -msgid "Source updated successfully." -msgstr "تم تحديث المصدر بنجاح." +#: templates/user/profile.html:185 +#, fuzzy +#| msgid "Date Void" +msgid "Date Joined" +msgstr "تاريخ الإبطال" -msgid "Source created successfully." -msgstr "تم إنشاء المصدر بنجاح." +#~ msgid "VIN" +#~ msgstr "رقم الهيكل" -msgid "Source deleted successfully." -msgstr "تم حذف المصدر بنجاح." +#~ msgid "Invalid VIN number provided" +#~ msgstr "تم تقديم رقم تعريف مركبة (VIN) غير صالح" + +#~ msgid "VIN not found in any source" +#~ msgstr "لم يتم العثور على رقم الهيكل (VIN) في أي مصدر" + +#~ msgid "English" +#~ msgstr "الإنجليزية" + +#~ msgid "Arabic" +#~ msgstr "العربية" + +#~ msgid "SAR" +#~ msgstr "ريال" + +#~ msgid "AI Assistant" +#~ msgstr "المساعد الذكي" + +#~ msgid "Prompt is required." +#~ msgstr "الإدخال مطلوب." + +#~ msgid "Group" +#~ msgstr "مجموعة" + +#~ msgid "Custom Date" +#~ msgstr "تاريخ البطاقة الجمركية" + +#~ msgid "Both exterior and interior colors must be selected." +#~ msgstr "يجب اختيار اللونين الخارجي والداخلي." + +#~ msgid "Email address" +#~ msgstr "عنوان البريد الإلكتروني" + +#~ msgid "email" +#~ msgstr "البريد الإلكتروني" + +#~ msgid "You must add an email." +#~ msgstr "يجب إضافة بريد إلكتروني." + +#~ msgid "Confirm Password" +#~ msgstr "تأكيد كلمة المرور" + +#~ msgid "I accept the Terms and Privacy Policy" +#~ msgstr "أوافق على الشروط وسياسة الخصوصية" + +#~ msgid "You must accept the terms and privacy policy." +#~ msgstr "يجب أن تقبل الشروط وسياسة الخصوصية." + +#~ msgid "An account with this email already exists." +#~ msgstr "يوجد بالفعل حساب بهذا البريد الإلكتروني." + +#~ msgid "Passwords do not match." +#~ msgstr "كلمات المرور غير متطابقة." + +#~ msgid "English Name" +#~ msgstr "الاسم بالإنجليزية" + +#~ msgid "Please enter an English Name." +#~ msgstr "يرجى إدخال اسم باللغة الإنجليزية." + +#~ msgid "Arabic Name" +#~ msgstr "الاسم بالعربية" + +#~ msgid "Please enter an Arabic name." +#~ msgstr "يرجى إدخال اسم باللغة العربية." + +#~ msgid "CRN" +#~ msgstr "رقم السجل التجاري" + +#~ msgid "Commercial Registration Number" +#~ msgstr "رقم السجل التجاري" + +#~ msgid "Commercial Registration Number must be 10 characters" +#~ msgstr "رقم السجل التجاري يجب أن يتكون من 10 أرقام" + +#~ msgid "VRN" +#~ msgstr "الرقم الضريبي" + +#~ msgid "VAT Registration Number" +#~ msgstr "رقم التسجيل في ضريبة القيمة المضافة" + +#~ msgid "VAT Registration Number must be 15 characters." +#~ msgstr "يجب أن يكون رقم التسجيل الضريبي مكونًا من 15 حرفًا." + +#~ msgid "Item" +#~ msgstr "العنصر" + +#~ msgid "Quantity" +#~ msgstr "الكمية" + +#~ msgid "Invoice" +#~ msgstr "فاتورة" + +#~ msgid "Bill" +#~ msgstr "الفاتورة" + +#~ msgid "Amount" +#~ msgstr "المبلغ" + +#~ msgid "cash" +#~ msgstr "نقداً" + +#~ msgid "credit" +#~ msgstr "دائن" + +#~ msgid "transfer" +#~ msgstr "نقل" + +#~ msgid "debit" +#~ msgstr "مدين" + +#~ msgid "SADAD" +#~ msgstr "سداد" + +#~ msgid "Payment Date" +#~ msgstr "تاريخ الدفع" + +#~ msgid "Payment amount is greater than amount due" +#~ msgstr "مبلغ الدفع أكبر من المبلغ المستحق" + +#~ msgid "Invoice is already paid" +#~ msgstr "تم دفع الفاتورة بالفعل" + +#~ msgid "To" +#~ msgstr "إلى" + +#~ msgid "Make" +#~ msgstr "الصانع" + +#~ msgid "Scheduled At" +#~ msgstr "مجدول فِي" + +#, fuzzy +#~| msgid "reminder" +#~ msgid "Reminder" +#~ msgstr "تذكير" + +#~ msgid "Send a reminder?" +#~ msgstr "هل ترسل تذكيرًا" + +#~ msgid "Expected Closing Date" +#~ msgstr "تاريخ الإغلاق المتوقع" + +#~ msgid "Car" +#~ msgstr "سيارة" + +#, fuzzy +#~| msgid "Expected Delivery" +#~ msgid "Expected Delivery Date" +#~ msgstr "موعد التسليم المتوقع" + +#~ msgid "Please enter a valid credit card number" +#~ msgstr "يرجى إدخال رقم بطاقة ائتمان صالح" + +#~ msgid "Please enter a valid month (01-12)" +#~ msgstr "يرجى إدخال شهر صالح (01-12)" + +#~ msgid "This card appears to be expired" +#~ msgstr "يبدو أن هذه البطاقة منتهية الصلاحية" + +#~ msgid "Please enter a valid expiry date in MM/YY format" +#~ msgstr "يرجى إدخال تاريخ انتهاء صلاحية صحيح بصيغة MM/YY" + +#~ msgid "CVV must contain only digits" +#~ msgstr "يجب أن يحتوي رمز التحقق (CVV) على أرقام فقط" + +#~ msgid "CVV must be 3 or 4 digits" +#~ msgstr "يجب أن يكون رمز التحقق (CVV) مكونًا من 3 أو 4 أرقام" + +#~ msgid "Card Number" +#~ msgstr "رقم البطاقة" + +#~ msgid "Security Code (CVV)" +#~ msgstr "رمز الأمان (CVV)" + +#~ msgid "Name on Card" +#~ msgstr "الاسم على البطاقة" + +#~ msgid "I agree to the Terms and Conditions" +#~ msgstr "أوافق على الشروط وسياسة الخصوصية" + +#~ msgid "You must accept the terms and conditions" +#~ msgstr "يجب أن تقبل الشروط وسياسة الخصوصية." + +#~ msgid "Serie" +#~ msgstr "السلسلة" + +#~ msgid "Trim" +#~ msgstr "الفئة" + +#~ msgid "Dealer" +#~ msgstr "المعرض" + +#~ msgid "Vendor" +#~ msgstr "المورد" + +#~ msgid "Year" +#~ msgstr "السنة" + +#~ msgid "Exterior Color" +#~ msgstr "اللون الخارجي" + +#~ msgid "Interior Color" +#~ msgstr "اللون الداخلي" + +#~ msgid "File is not a CSV file" +#~ msgstr "الملف ليس ملف CSV" + +#, python-format +#~ msgid "CSV is missing required columns: %(missing)s" +#~ msgstr "ملف CSV يفتقد الأعمدة المطلوبة: %(missing)s" + +#, python-format +#~ msgid "Error reading CSV file: %(error)s" +#~ msgstr "حدث خطأ أثناء قراءة ملف CSV: %(error)s" + +#, fuzzy +#~| msgid "Probability must be between 0 and 100." +#~ msgid "VAT rate as decimal between 0 and 1 (e.g., 0.2 for 20%)" +#~ msgstr "يجب أن تكون الاحتمالية بين 0 و 100." + +#~ msgid "Series" +#~ msgstr "السلسلة" + +#, fuzzy +#~| msgid "From Dealer" +#~ msgid "From Year" +#~ msgstr "من معرض" + +#, fuzzy +#~| msgid "Year" +#~ msgid "To Year" +#~ msgstr "السنة" + +#, fuzzy, python-brace-format +#~| msgid "" +#~| "\n" +#~| " Your account is not active. Possibly you are over some " +#~| "limits.\n" +#~| " Try to activate your account.\n" +#~| " " +#~ msgid "" +#~ "\n" +#~ " Invoice {invoice_number} is past due,please your\n" +#~ " View.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " حسابك غير نشط. ربما تجاوزت بعض الحدود.\n" +#~ " حاول تفعيل حسابك.\n" +#~ " " + +#~ msgid "Populates COA with basic accounts." +#~ msgstr "يملأ دليل الحسابات بالحسابات الأساسية." + +#~ msgid "Primary Key" +#~ msgstr "المفتاح الأساسي" + +#~ msgid "Light Commercial" +#~ msgstr "مركبات تجارية خفيفة" + +#~ msgid "Heavy-Duty Tractors" +#~ msgstr "جرارات ثقيلة" + +#~ msgid "Trailers" +#~ msgstr "مقطورات" + +#~ msgid "Medium Trucks" +#~ msgstr "شاحنات متوسطة" + +#~ msgid "Buses" +#~ msgstr "حافلات" + +#~ msgid "Motorcycles" +#~ msgstr "دراجات نارية" + +#~ msgid "Buggy" +#~ msgstr "باجي" + +#~ msgid "Moto ATV" +#~ msgstr "موتو ATV" + +#~ msgid "Scooters" +#~ msgstr "دراجات سكوتر" + +#~ msgid "ATV" +#~ msgstr "مركبات ATV" + +#~ msgid "Snowmobiles" +#~ msgstr "دراجات الثلج" + +#~ msgid "logo" +#~ msgstr "الشعار" + +#~ msgid "Equipment" +#~ msgstr "المعدات" + +#~ msgid "Specification" +#~ msgstr "المواصفة" + +#~ msgid "Option" +#~ msgstr "الخيار" + +#~ msgid "Approved" +#~ msgstr "تمت الموافقة" + +#~ msgid "Available" +#~ msgstr "متاح" + +#~ msgid "Sold" +#~ msgstr "تم البيع" + +#~ msgid "Hold" +#~ msgstr "في الانتظار" + +#~ msgid "Damaged" +#~ msgstr "تالف" + +#~ msgid "Reserved" +#~ msgstr "محجوزة" + +#~ msgid "Transfer" +#~ msgstr "نقل" + +#~ msgid "Used" +#~ msgstr "مستعمل" + +#~ msgid "Price" +#~ msgstr "السعر" + +#~ msgid "taxable" +#~ msgstr "خاضع للضريبة" + +#~ msgid "Unit of Measurement" +#~ msgstr "وحدة القياس" + +#~ msgid "Additional Services" +#~ msgstr "الخدمات الإضافية" + +#~ msgid "Item Model" +#~ msgstr "نموذج العنصر" + +#~ msgid "Cost Price" +#~ msgstr "سعر التكلفة" + +#~ msgid "Selling Price" +#~ msgstr "سعر البيع" + +#~ msgid "Marked Price" +#~ msgstr "سعر العرض" + +#~ msgid "Discount Amount" +#~ msgstr "مبلغ الخصم" + +#~ msgid "Remarks" +#~ msgstr "ملاحظات" + +#~ msgid "Mileage" +#~ msgstr "عدد الكيلومترات" + +#~ msgid "Sold Date" +#~ msgstr "تاريخ البيع" + +#~ msgid "Hash" +#~ msgstr "رمز" + +#~ msgid "Cars" +#~ msgstr "السيارات" + +#~ msgid "From Dealer" +#~ msgstr "من معرض" + +#~ msgid "To Dealer" +#~ msgstr "الى معرض" + +#~ msgid "Transfer Date" +#~ msgstr "تاريخ النقل" + +#~ msgid "Car Transfer Log" +#~ msgstr "سجل نقل السيارة" + +#~ msgid "Car Transfer Logs" +#~ msgstr "سجلات نقل السيارات" + +#~ msgid "Reserved By" +#~ msgstr "محجوز بواسطة" + +#~ msgid "Reserved At" +#~ msgstr "تاريخ الحجز" + +#~ msgid "Reserved Until" +#~ msgstr "محجوز حتى" + +#~ msgid "Car Reservation" +#~ msgstr "حجز السيارة" + +#~ msgid "Car Reservations" +#~ msgstr "حجوزات السيارات" + +#~ msgid "RGB" +#~ msgstr "آر جي بي" + +#~ msgid "Exterior Colors" +#~ msgstr "الألوان الخارجية" + +#~ msgid "Color" +#~ msgstr "اللون" + +#~ msgid "Colors" +#~ msgstr "الألوان" + +#~ msgid "Custom Number" +#~ msgstr "رقم البطاقة الجمركية" + +#~ msgid "Custom Card" +#~ msgstr "البطاقة الجمركية" + +#~ msgid "Custom Cards" +#~ msgstr "البطاقات الجمركية" + +#~ msgid "Owner" +#~ msgstr "المالك" + +#~ msgid "Dealer who owns the car." +#~ msgstr "التاجر الذي يمتلك السيارة." + +#~ msgid "Showroom" +#~ msgstr "صالة العرض" + +#~ msgid "Dealer where the car is displayed (can be the owner)." +#~ msgstr "التاجر الذي تُعرض السيارة في صالته (يمكن أن يكون المالك)." + +#~ msgid "Car Location" +#~ msgstr "موقع السيارة" + +#~ msgid "Text 1" +#~ msgstr "النص 1" + +#~ msgid "Text 2" +#~ msgstr "النص 2" + +#~ msgid "Text 3" +#~ msgstr "النص 3" + +#~ msgid "Registration Date" +#~ msgstr "تاريخ التسجيل" + +#~ msgid "Registration" +#~ msgstr "التسجيل" + +#~ msgid "Registrations" +#~ msgstr "تسجيل السيارات" + +#~ msgid "Updated" +#~ msgstr "تم التحديث" + +#~ msgid "Logo" +#~ msgstr "الشعار" + +#~ msgid "Joined At" +#~ msgstr "انضم في" + +#~ msgid "Dealers" +#~ msgstr "المعارض" + +#~ msgid "Inventory" +#~ msgstr "المخزن" + +#~ msgid "Sales" +#~ msgstr "المبيعات" + +#~ msgid "Staff Type" +#~ msgstr "نوع الموظف" + +#~ msgid "Image" +#~ msgstr "الصورة" + +#~ msgid "Staff" +#~ msgstr "الموظفون" + +#~ msgid "Referrals" +#~ msgstr "إحالات" + +#~ msgid "WhatsApp" +#~ msgstr "واتساب" + +#~ msgid "TikTok" +#~ msgstr "تيك توك" + +#~ msgid "Instagram" +#~ msgstr "إنستغرام" + +#~ msgid "X" +#~ msgstr "إكس" + +#~ msgid "Facebook" +#~ msgstr "فيسبوك" + +#~ msgid "Motory" +#~ msgstr "موتري" + +#~ msgid "Influencers" +#~ msgstr "المؤثرون" + +#~ msgid "Youtube" +#~ msgstr "يوتيوب" + +#~ msgid "Campaign" +#~ msgstr "حملة" + +#~ msgid "Walk In" +#~ msgstr "زيارة مباشرة" + +#~ msgid "Toll Free" +#~ msgstr "رقم مجاني" + +#~ msgid "Contacted" +#~ msgstr "تم الاتصال" + +#~ msgid "Unqualified" +#~ msgstr "غير مؤهل" + +#~ msgid "Converted" +#~ msgstr "تم التحويل" + +#~ msgid "Mr" +#~ msgstr "السيد" + +#~ msgid "Mrs" +#~ msgstr "السيدة" + +#~ msgid "Ms" +#~ msgstr "الآنسة" + +#~ msgid "Miss" +#~ msgstr "الآنسة" + +#~ msgid "Dr" +#~ msgstr "الدكتور" + +#~ msgid "Prof" +#~ msgstr "الأستاذ" + +#~ msgid "Prince" +#~ msgstr "الأمير" + +#~ msgid "Princess" +#~ msgstr "الأميرة" + +#~ msgid "Company" +#~ msgstr "الشركة" + +#~ msgid "Call" +#~ msgstr "مكالمة" + +#~ msgid "SMS" +#~ msgstr "رسالة نصية" + +#~ msgid "Visit" +#~ msgstr "زيارة" + +#~ msgid "Negotiation" +#~ msgstr "مفاوضات" + +#~ msgid "Follow Up" +#~ msgstr "متابعة" + +#~ msgid "Won" +#~ msgstr "تم الفوز" + +#~ msgid "Lost" +#~ msgstr "تم الفقد" + +#~ msgid "Sale Car" +#~ msgstr "بيع سيارة" + +#~ msgid "Reserve Car" +#~ msgstr "حجز السيارة" + +#~ msgid "Transfer Car" +#~ msgstr "نقل السيارة" + +#~ msgid "Cancel Quotation" +#~ msgstr "إلغاء العرض" + +#~ msgid "Create Order" +#~ msgstr "إنشاء طلب" + +#~ msgid "Cancel Order" +#~ msgstr "إلغاء الطلب" + +#~ msgid "Create Invoice" +#~ msgstr "إنشاء فاتورة" + +#~ msgid "Cancel Invoice" +#~ msgstr "إلغاء الفاتورة" + +#~ msgid "Test Drive" +#~ msgstr "تجربة القيادة" + +#~ msgid "Quotation" +#~ msgstr "عرض سعر" + +#~ msgid "Financing" +#~ msgstr "تمويل" + +#~ msgid "Closed Won" +#~ msgstr "مغلقة - ناجحة" + +#~ msgid "Closed Lost" +#~ msgstr "مغلقة - خسارة" + +#~ msgid "On Hold" +#~ msgstr "في الانتظار" + +#~ msgid "Male" +#~ msgstr "ذكر" + +#~ msgid "Female" +#~ msgstr "أنثى" + +#~ msgid "Gender" +#~ msgstr "الجنس" + +#~ msgid "Date of Birth" +#~ msgstr "تاريخ الميلاد" + +#~ msgid "National ID" +#~ msgstr "رقم الهوية الوطنية" + +#~ msgid "Customer" +#~ msgstr "العميل" + +#~ msgid "Organization" +#~ msgstr "شركة" + +#~ msgid "Organizations" +#~ msgstr "الشركات" + +#~ msgid "ID Number" +#~ msgstr "رقم الهوية" + +#~ msgid "Representative" +#~ msgstr "ممثل شركة" + +#~ msgid "Representatives" +#~ msgstr "ممثلي الشركات" + +#~ msgid "Lead Type" +#~ msgstr "نوع العميل المتوقع" + +#~ msgid "Channel" +#~ msgstr "القناة" + +#~ msgid "Next Action" +#~ msgstr "الإجراء التالي" + +#, fuzzy +#~| msgid "Reassign Lead" +#~ msgid "Can reassign lead" +#~ msgstr "إعادة تعيين الفرصة" + +#~ msgid "Lead" +#~ msgstr "فرصة" + +#~ msgid "Leads" +#~ msgstr "الفرص" + +#~ msgid "Product Demo" +#~ msgstr "عرض توضيحي للمنتج" + +#~ msgid "Follow-Up Call" +#~ msgstr "مكالمة متابعة" + +#~ msgid "Contract Discussion" +#~ msgstr "مناقشة العقد" + +#~ msgid "Support Call" +#~ msgstr "مكالمة دعم" + +#~ msgid "Other" +#~ msgstr "أخرى" + +#~ msgid "Canceled" +#~ msgstr "ملغى" + +#~ msgid "Purpose" +#~ msgstr "الغرض" + +#~ msgid "What is the purpose of this schedule?" +#~ msgstr "ما هو الغرض من هذا الجدول؟" + +#~ msgid "What type of schedule is this?" +#~ msgstr "ما نوع الجدول هذا؟" + +#~ msgid "Has this schedule been completed?" +#~ msgstr "هل تم اكتمال هذا الجدول؟" + +#, fuzzy +#~| msgid "Indicates the status of the reschedule action." +#~ msgid "What is the status of this schedule?" +#~ msgstr "يشير إلى حالة إجراء إعادة الجدولة." + +#~ msgid "Schedule" +#~ msgstr "الجدولة" + +#, fuzzy +#~| msgid "Schedule" +#~ msgid "Schedules" +#~ msgstr "الجدولة" + +#~ msgid "Old Status" +#~ msgstr "الحالة القديمة" + +#~ msgid "Changed At" +#~ msgstr "تم التغيير في" + +#~ msgid "Lead Status History" +#~ msgstr "تاريخ حالة العميل المحتمل" + +#~ msgid "Lead Status Histories" +#~ msgstr "تواريخ حالات العملاء المحتملين" + +#~ msgid "Probability must be between 0 and 100." +#~ msgstr "يجب أن تكون الاحتمالية بين 0 و 100." + +#~ msgid "Expected Revenue" +#~ msgstr "الإيرادات المتوقعة" + +#~ msgid "Opportunity" +#~ msgstr "فرصة" + +#~ msgid "Opportunities" +#~ msgstr "الفرص" + +#~ msgid "Note" +#~ msgstr "ملاحظة" + +#~ msgid "Due Date" +#~ msgstr "تاريخ الاستحقاق" + +#~ msgid "Task" +#~ msgstr "مهمة" + +#~ msgid "Tasks" +#~ msgstr "مهام" + +#~ msgid "From Email" +#~ msgstr "من البريد الإلكتروني" + +#~ msgid "Emails" +#~ msgstr "رسائل البريد الإلكتروني" + +#~ msgid "Activity Type" +#~ msgstr "نوع النشاط" + +#~ msgid "Activity" +#~ msgstr "النشاط" + +#~ msgid "Activities" +#~ msgstr "الأنشطة" + +#~ msgid "Is Read" +#~ msgstr "تمت قراءته" + +#~ msgid "Vendor Model" +#~ msgstr "نموذج المورد" + +#~ msgid "Vendors" +#~ msgstr "الموردين" + +#~ msgid "amount" +#~ msgstr "المبلغ" + +#~ msgid "method" +#~ msgstr "طريقة" + +#~ msgid "reference number" +#~ msgstr "رقم المرجع" + +#~ msgid "date" +#~ msgstr "التاريخ" + +#, fuzzy +#~| msgid "invoices" +#~ msgid "invoice" +#~ msgstr "الفواتير" + +#~ msgid "payments" +#~ msgstr "المدفوعات" + +#~ msgid "reason" +#~ msgstr "السبب" + +#~ msgid "refund date" +#~ msgstr "تاريخ الاسترداد" + +#~ msgid "refund" +#~ msgstr "استرداد" + +#~ msgid "refunds" +#~ msgstr "استردادات" + +#~ msgid "User Activity Logs" +#~ msgstr "سجلات نشاط المستخدم" + +#~ msgid "Estimate" +#~ msgstr "تقدير" + +#, fuzzy +#~| msgid "Sale Order" +#~ msgid "Sales Order" +#~ msgstr "أمر بيع" + +#, fuzzy +#~| msgid "Sale Order" +#~ msgid "Sales Orders" +#~ msgstr "أمر بيع" + +#, fuzzy +#~| msgid "Customer" +#~ msgid "Custom Group" +#~ msgstr "العميل" + +#, fuzzy +#~| msgid "Customers" +#~ msgid "Custom Groups" +#~ msgstr "العملاء" + +#~ msgid "Cash account to track cash transactions when an invoice is created." +#~ msgstr "حساب نقدي لمراقبة المعاملات النقدي عندما يتم إنشاء فاتورة" + +#~ msgid "Invoice Cash Account" +#~ msgstr "حساب الفاتورة النقدي" + +#~ msgid "" +#~ "Prepaid Revenue account to track prepaid revenue when an invoice is " +#~ "created." +#~ msgstr "حساب دخل الدفع لمراقبة الدخل عندما يتم إنشاء فاتورة" + +#~ msgid "Invoice Prepaid Account" +#~ msgstr "حساب مسبق الدفع" + +#~ msgid "" +#~ "Unearned Revenue account to track unearned revenue when an invoice is " +#~ "created." +#~ msgstr "حساب غير مكتسب لمراقبة الدخل عندما يتم إنشاء فاتورة" + +#~ msgid "Invoice Unearned Account" +#~ msgstr "حساب غير مكتسب" + +#~ msgid "" +#~ "Tax Payable account to track tax liabilities when an invoice is created." +#~ msgstr "حساب دائن لمراقبة الدخل عندما يتم إنشاء فاتورة" + +#~ msgid "Invoice Tax Payable Account" +#~ msgstr "حساب دائن" + +#~ msgid "" +#~ "Vehicle Sales account to track vehicle sales revenue when an invoice is " +#~ "created." +#~ msgstr "حساب مبيعات لمراقبة الدخل عندما يتم إنشاء فاتورة" + +#~ msgid "Invoice Vehicle Sale Account" +#~ msgstr "حساب مبيعات لمراقبة الدخل" + +#~ msgid "" +#~ "Additional Services account to track additional services revenue when an " +#~ "invoice is created." +#~ msgstr "حساب خدمات إضافية لمراقبة الدخل عندما يتم إنشاء فاتورة" + +#~ msgid "Invoice Additional Services Account" +#~ msgstr "حساب خدمات إضافية" + +#~ msgid "" +#~ "Cost of Goods Sold account to track the cost of goods sold when an " +#~ "invoice is created." +#~ msgstr "حساب تكلفة البضائع المباعة لمراقبة الدخل عندما يتم إنشاء فاتورة" + +#~ msgid "Invoice Cost of Goods Sold Account" +#~ msgstr "حساب تكلفة البضائع المباعة" + +#~ msgid "" +#~ "Inventory account to track the cost of goods sold when an invoice is " +#~ "created." +#~ msgstr "حساب المخزون لمراقبة الدخل عندما يتم إنشاء فاتورة" + +#~ msgid "Invoice Inventory Account" +#~ msgstr "حساب المخزون لمراقبة الدخل" + +#~ msgid "Cash account to track cash transactions when a bill is created." +#~ msgstr "حساب نقدي لمراقبة المعاملات النقدي عندما يتم إنشاء فاتورة" + +#~ msgid "Bill Cash Account" +#~ msgstr "حساب الفاتورة النقدي" + +#~ msgid "Prepaid account to track prepaid expenses when a bill is created." +#~ msgstr "حساب دخل الدفع لمراقبة الدخل عندما يتم إنشاء فاتورة" + +#~ msgid "Bill Prepaid Account" +#~ msgstr "حساب مسبق الدفع" + +#~ msgid "Unearned account to track unearned expenses when a bill is created." +#~ msgstr "حساب غير مكتسب لمراقبة الدخل عندما يتم إنشاء فاتورة" + +#~ msgid "Bill Unearned Account" +#~ msgstr "حساب غير مكتسب" + +#~ msgid "Payment History" +#~ msgstr "سجل المدفوعات" + +#~ msgid "Payment Histories" +#~ msgstr "سجلات المدفوعات" + +#~ msgid "PO Items" +#~ msgstr "عناصر أمر الشراء" + +#~ msgid "Extra Info" +#~ msgstr "معلومات إضافية" + +#~ msgid "Recall Title" +#~ msgstr "عنوان الاستدعاء" + +#~ msgid "Recall" +#~ msgstr "استدعاء" + +#~ msgid "Recalls" +#~ msgstr "استدعاءات" + +#~ msgid "Open" +#~ msgstr "مفتوح" + +#~ msgid "Resolved" +#~ msgstr "تم الحل" + +#~ msgid "Short description" +#~ msgstr "وصف قصير" + +#~ msgid "Resolution Notes" +#~ msgstr "ملاحظات" + +#~ msgid "Vehicle Registration Number" +#~ msgstr "رقم التسجيل في ضريبة القيمة المضافة" + +#~ msgid "Inventory Status" +#~ msgstr "حالة المخزون" + +#~ msgid "Ordered/In Transit/On Hand" +#~ msgstr "تم الطلب/في النقل/متوفر" + +#~ msgid "Create Chart of Accounts" +#~ msgstr "إنشاء دليل الحسابات" + +#~ msgid "Create Chart of Account" +#~ msgstr "إنشاء دليل الحسابات" + +#~ msgid "Successfully updated {} Default Chart of Account to " +#~ msgstr "تم تحديث دليل الحسابات الافتراضي {} بنجاح إلى" + +#, fuzzy, python-brace-format +#~| msgid "" +#~| "\n" +#~| " Your account is not active. Possibly you are over some " +#~| "limits.\n" +#~| " Try to activate your account.\n" +#~| " " +#~ msgid "" +#~ "\n" +#~ " PO {po_number} has been fulfilled.\n" +#~ " View\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " حسابك غير نشط. ربما تجاوزت بعض الحدود.\n" +#~ " حاول تفعيل حسابك.\n" +#~ " " + +#, python-brace-format +#~ msgid "" +#~ "\n" +#~ " New Vendor {vendor_name} has been added to dealer " +#~ "{dealer_name}.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " تم إضافة تاجر جديدي {vendor_name} إلى تاجر " +#~ "{dealer_name}.\n" +#~ " " + +#, fuzzy, python-brace-format +#~| msgid "" +#~| "\n" +#~| " Your account is not active. Possibly you are over some " +#~| "limits.\n" +#~| " Try to activate your account.\n" +#~| " " +#~ msgid "" +#~ "\n" +#~ " New Sale Order has been added for estimate:" +#~ "{estimate_number}.\n" +#~ " View\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " حسابك غير نشط. ربما تجاوزت بعض الحدود.\n" +#~ " حاول تفعيل حسابك.\n" +#~ " " + +#, fuzzy, python-brace-format +#~| msgid "" +#~| "\n" +#~| " Your account is not active. Possibly you are over some " +#~| "limits.\n" +#~| " Try to activate your account.\n" +#~| " " +#~ msgid "" +#~ "\n" +#~ " New Lead has been added.\n" +#~ " View\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " حسابك غير نشط. ربما تجاوزت بعض الحدود.\n" +#~ " حاول تفعيل حسابك.\n" +#~ " " + +#, fuzzy, python-brace-format +#~| msgid "" +#~| "\n" +#~| " Your account is not active. Possibly you are over some " +#~| "limits.\n" +#~| " Try to activate your account.\n" +#~| " " +#~ msgid "" +#~ "\n" +#~ " Bill {bill_number} is in review,please review and " +#~ "approve it\n" +#~ " View.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " حسابك غير نشط. ربما تجاوزت بعض الحدود.\n" +#~ " حاول تفعيل حسابك.\n" +#~ " " + +#, fuzzy, python-brace-format +#~| msgid "" +#~| "\n" +#~| " Your account is not active. Possibly you are over some " +#~| "limits.\n" +#~| " Try to activate your account.\n" +#~| " " +#~ msgid "" +#~ "\n" +#~ " Support Ticket #{ticket_number} has been updated.\n" +#~ " View.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " حسابك غير نشط. ربما تجاوزت بعض الحدود.\n" +#~ " حاول تفعيل حسابك.\n" +#~ " " + +#~ msgid "Age" +#~ msgstr "العمر" + +#~ msgid "success" +#~ msgstr "ناجحة" + +#~ msgid "error" +#~ msgstr "خطأ" + +#~ msgid "Car reserved successfully." +#~ msgstr "تم حجز السيارة بنجاح." + +#~ msgid "Enter a valid Saudi phone number (05XXXXXXXX or +9665XXXXXXXX)" +#~ msgstr "أدخل رقم جوال سعودي صحيح 05XXXXXXXX" + +#, fuzzy, python-format +#~| msgid "Probability must be between 0 and 100." +#~ msgid "%(value)s is not a valid VAT rate. It must be between 0 and 1." +#~ msgstr "يجب أن تكون الاحتمالية بين 0 و 100." + +#, fuzzy +#~| msgid "Vendor with this email already exists" +#~ msgid "Email already exists" +#~ msgstr "يوجد مورد مسجل مسبقًا بهذا البريد الإلكتروني" + +#, fuzzy +#~| msgid "Enter a valid email address." +#~ msgid "Please enter a valid email address" +#~ msgstr "أدخل عنوان بريد إلكتروني صالح." + +#, fuzzy +#~| msgid "Unit name must be at least 10 characters long" +#~ msgid "Password must be at least 8 characters" +#~ msgstr "يجب أن يتكون اسم الوحدة من 10 أحرف على الأقل" + +#~ msgid "Passwords do not match" +#~ msgstr "كلمات المرور غير متطابقة." + +#~ msgid "User created successfully" +#~ msgstr "تم إنشاء المستخدم بنجاح." + +#~ msgid "Car Added successfully to the inventory" +#~ msgstr "تمت إضافة السيارة إلى المخزون بنجاح" + +#~ msgid "Car saved successfully" +#~ msgstr "تم حفظ السيارة بنجاح" + +#~ msgid "VIN number exists" +#~ msgstr "رقم الهيكل موجود مسبقاً" + +#~ msgid "Manufacturer not found in the database" +#~ msgstr "لم يتم العثور على الشركة المصنعة في قاعدة البيانات" + +#~ msgid "VIN not found in all sources" +#~ msgstr "لم يتم العثور على رقم التعريف (VIN) في جميع المصادر" + +#~ msgid "Server error occurred" +#~ msgstr "حدث خطأ في الخادم" + +#~ msgid "No QR/Barcode detected" +#~ msgstr "لم يتم اكتشاف رمز QR أو الباركود" + +#~ msgid "inventory" +#~ msgstr "المخزون" + +#~ msgid "Car colors details added successfully" +#~ msgstr "تم تحديث تفاصيل ألوان السيارة بنجاح" + +#~ msgid "Car Colors details updated successfully" +#~ msgstr "تم تحديث تفاصيل ألوان السيارة بنجاح" + +#, python-format +#~ msgid "Update Colors for %(car_name)s" +#~ msgstr "تحديث الألوان لـ %(car_name)s" + +#, fuzzy +#~| msgid "cars" +#~ msgid "car" +#~ msgstr "السيارات" + +#~ msgid "Car deleted successfully" +#~ msgstr "تم حذف السيارة بنجاح." + +#~ msgid "Could not determine dealer for redirection." +#~ msgstr "غير قادر علي تحديد معرض" + +#~ msgid "Location saved successfully" +#~ msgstr "تم حفظ الموقع بنجاح." + +#~ msgid "Car transfer canceled successfully" +#~ msgstr "تم إلغاء نقل السيارة بنجاح." + +#~ msgid "Car transfer approved successfully" +#~ msgstr "تمت الموافقة على نقل السيارة بنجاح." + +#~ msgid "Car transfer rejected successfully" +#~ msgstr "تم رفض نقل السيارة بنجاح." + +#~ msgid "Car Transfer Completed successfully." +#~ msgstr "تم إكمال نقل السيارة بنجاح." + +#~ msgid "Custom Card added successfully" +#~ msgstr "تم إضافة البطاقة الجمركية بنجاح." + +#~ msgid "Registration added successfully" +#~ msgstr "تم إلغاء الحجز بنجاح." + +#~ msgid "This car is already reserved" +#~ msgstr "هذه السيارة محجوزة بالفعل." + +#~ msgid "Reservation renewed successfully" +#~ msgstr "تم تجديد الحجز بنجاح" + +#~ msgid "Reservation canceled successfully" +#~ msgstr "تم إلغاء الحجز بنجاح." + +#~ msgid "Invalid action" +#~ msgstr "إجراء غير صالح." + +#~ msgid "Invalid request method" +#~ msgstr "طريقة الطلب غير صالحة" + +#, fuzzy +#~| msgid "Note updated successfully" +#~ msgid "VAT rate updated successfully" +#~ msgstr "تم تحديث الملاحظة بنجاح" + +#, fuzzy +#~| msgid "Probability must be between 0 and 100." +#~ msgid "Please enter valid vat rate between 0 and 1." +#~ msgstr "يجب أن تكون الاحتمالية بين 0 و 100." + +#~ msgid "Dealer updated successfully" +#~ msgstr "تم تحديث المعرض بنجاح." + +#~ msgid "customers" +#~ msgstr "العملاء" + +#~ msgid "Customer created successfully" +#~ msgstr "تم إنشاء المستخدم بنجاح." + +#~ msgid "Customer Account with this email is Deactivated,Please Contact Admin" +#~ msgstr "" +#~ "تم تعطيل حساب العميل المرتبط بهذا البريد الإلكتروني، يرجى التواصل مع " +#~ "المسؤول" + +#~ msgid "Customer with this email already exists" +#~ msgstr "يوجد عميل مسجل مسبقًا بهذا البريد الإلكتروني" + +#~ msgid "Customer updated successfully" +#~ msgstr "تم تحديث المستخدم بنجاح" + +#~ msgid "Customer deactivated successfully" +#~ msgstr "تم تعطيل حساب العميل بنجاح" + +#~ msgid "Vendor created successfully" +#~ msgstr "تم إنشاء المورد بنجاح" + +#~ msgid "Vendor Account with this email is Deactivated,Please Contact Admin" +#~ msgstr "" +#~ "تم تعطيل حساب المورد المرتبط بهذا البريد الإلكتروني، يرجى التواصل مع " +#~ "المسؤول" + +#~ msgid "Vendor with this email already exists" +#~ msgstr "يوجد مورد مسجل مسبوقًا بهذا البريد الإلكتروني" + +#~ msgid "Something went wrong" +#~ msgstr "حدث خطأ ما" + +#~ msgid "Vendor updated successfully" +#~ msgstr "تم تحديث المورد بنجاح" + +#~ msgid "Vendor deleted successfully" +#~ msgstr "تم حذف المورد بنجاح" + +#~ msgid "Group created successfully" +#~ msgstr "تم إنشاء المجموعة بنجاح." + +#~ msgid "Group name already exists" +#~ msgstr "الحساب موجود بالفعل" + +#~ msgid "Group updated successfully" +#~ msgstr "تم تحديث المجموعة بنجاح" + +#~ msgid "Group deleted successfully" +#~ msgstr "تم حذف المجموعة بنجاح" + +#, fuzzy +#~| msgid "Permission added successfully" +#~ msgid "Permissions updated successfully" +#~ msgstr "تمت إضافة الصلاحية بنجاح." + +#~ msgid "Error updating permissions: " +#~ msgstr "خطأ في تحميل الصلاحيات." + +#~ msgid "Group added successfully" +#~ msgstr "تمت إضافة المجموعة بنجاح." + +#, fuzzy +#~| msgid "Staff" +#~ msgid "staff" +#~ msgstr "الموظفون" + +#~ msgid "A user with this email already exists. Please use a different email." +#~ msgstr "" +#~ "يوجد مستخدم بهذا البريد الإلكتروني بالفعل. يرجى استخدام بريد إلكتروني " +#~ "مختلف." + +#~ msgid "User updated successfully" +#~ msgstr "تم تحديث المستخدم بنجاح." + +#~ msgid "User deleted successfully" +#~ msgstr "تم حذف المستخدم بنجاح." + +#, fuzzy +#~| msgid "Organization" +#~ msgid "organization" +#~ msgstr "شركة" + +#, fuzzy +#~| msgid "Organization updated successfully" +#~ msgid "Organization created successfully" +#~ msgstr "تم إلغاء تفعيل المؤسسة بنجاح" + +#~ msgid "" +#~ "Organization Account with this email is Deactivated,Please Contact Admin" +#~ msgstr "" +#~ "تم تعطيل حساب المؤسسة المرتبط بهذا البريد الإلكتروني، يرجى التواصل مع " +#~ "المسؤول" + +#~ msgid "Organization with this email already exists" +#~ msgstr "يوجد مؤسسة مسجلة مسبوقًا بهذا البريد الإلكتروني" + +#~ msgid "Organization updated successfully" +#~ msgstr "تم إلغاء تفعيل المؤسسة بنجاح" + +#~ msgid "Organization Deactivated successfully" +#~ msgstr "تم إلغاء تفعيل المؤسسة بنجاح" + +#~ msgid "Representative created successfully" +#~ msgstr "تم إنشاء الخدمة بنجاح." + +#~ msgid "Representative updated successfully" +#~ msgstr "تم تحديث الخدمة بنجاح." + +#~ msgid "Representative deleted successfully" +#~ msgstr "تم حذف الخدمة بنجاح!" + +#~ msgid "Bank account created successfully" +#~ msgstr "تم إنشاء الحساب البنكي بنجاح." + +#~ msgid "Bank account updated successfully" +#~ msgstr "تم تحديث المجموعة بنجاح." + +#~ msgid "Bank account deleted successfully" +#~ msgstr "تم حذف الملاحظة بنجاح." + +#~ msgid "Account created successfully" +#~ msgstr "تم إنشاء الحساب بنجاح." + +#~ msgid "Account updated successfully" +#~ msgstr "تم تحديث الحساب بنجاح." + +#~ msgid "Account deleted successfully" +#~ msgstr "تم حذف الحساب بنجاح." + +#, fuzzy +#~| msgid "Preview Sale Order" +#~ msgid "Sales Order Details" +#~ msgstr "معاينة أمر البيع" + +#~ msgid "Items and Quantities are required" +#~ msgstr "المنتجات والكميات مطلوبة" + +#~ msgid "Quantity must be greater than zero" +#~ msgstr "يجب أن تكون مدة الفاصل الزمني أكبر من 0." + +#~ msgid "Quantity must be less than or equal to the number of cars in stock" +#~ msgstr "يجب أن تكون الكمية أقل من أو تساوي عدد السيارات المتوفرة في المخزون" + +#~ msgid "Quotation created successfully" +#~ msgstr "تم إنشاء عرض السعر بنجاح" + +#, fuzzy +#~| msgid "Please add at least one car before creating a quotation." +#~ msgid "" +#~ "Please add at least one car or complete the car info before creating a " +#~ "quotation." +#~ msgstr "يرجى إضافة سيارة واحدة على الأقل قبل إنشاء عرض السعر." + +#, fuzzy +#~| msgid "add car" +#~ msgid "Add car" +#~ msgstr "إضافة سيارة" + +#~ msgid "Please add at least one customer before creating a quotation." +#~ msgstr "يرجى إضافة عميل واحد على الأقل قبل إنشاء عرض السعر." + +#~ msgid "Add Customer" +#~ msgstr "إضافة عميل" + +#, fuzzy +#~| msgid "Payment amount must be greater than 0" +#~ msgid "Discount amount cannot be greater than marked price" +#~ msgstr "يجب أن يكون مبلغ الدفع أكبر من 0" + +#, fuzzy +#~| msgid "Account updated successfully" +#~ msgid "Discount updated successfully" +#~ msgstr "تم تحديث المجموعة بنجاح." + +#~ msgid "Quotation is not ready for review" +#~ msgstr "العرض غير جاهز للمراجعة." + +#~ msgid "Quotation is not ready for approval" +#~ msgstr "العرض غير جاهز للموافقة." + +#~ msgid "Quotation approved successfully" +#~ msgstr "تمت الموافقة على العرض بنجاح." + +#~ msgid "Quotation is not ready for rejection" +#~ msgstr "العرض غير جاهز للرفض." + +#~ msgid "Quotation canceled successfully" +#~ msgstr "تم إلغاء الحجز بنجاح." + +#~ msgid "Quotation is not ready for completion" +#~ msgstr "العرض غير جاهز للإكمال." + +#~ msgid "Quotation is not ready for cancellation" +#~ msgstr "العرض غير جاهز للإلغاء." + +#~ msgid "Quotation marked as " +#~ msgstr "تم وضع علامة على عرض السعر كـ" + +#, fuzzy +#~| msgid "Amount exceeds due amount" +#~ msgid "Amount cannot be less than due amount" +#~ msgstr "المبلغ يتجاوز المبلغ المستحق" + +#~ msgid "fully paid" +#~ msgstr "مدفوع بالكامل" + +#~ msgid "Amount exceeds due amount" +#~ msgstr "المبلغ يتجاوز المبلغ المستحق" + +#~ msgid "Payment created successfully" +#~ msgstr "تم إنشاء الدفعة بنجاح" + +#~ msgid "Invoice is not fully paid, Payment cannot be marked as paid" +#~ msgstr "لم يتم دفع الفاتورة بالكامل، لا يمكن وضع علامة مدفوعة على الدفعة" + +#, fuzzy +#~| msgid "leads" +#~ msgid "lead" +#~ msgstr "الفرص" + +#~ msgid "Lead created successfully" +#~ msgstr "تم إنشاء العميل المتوقع بنجاح" + +#, fuzzy +#~| msgid "Location updated successfully" +#~ msgid "Actions updated successfully" +#~ msgstr "تم تحديث البريد الإلكتروني بنجاح!" + +#, fuzzy +#~| msgid "User not found" +#~ msgid "Lead not found" +#~ msgstr "المستخدم غير موجود" + +#, fuzzy +#~| msgid "An error occurred while decoding the VIN." +#~ msgid "An error occurred while updating lead actions" +#~ msgstr "حدث خطأ أثناء فك تشفير الهيكل" + +#~ msgid "Lead deleted successfully" +#~ msgstr "تم حذف العميل المتوقع بنجاح" + +#~ msgid "Note deleted successfully." +#~ msgstr "تم حذف الملاحظة بنجاح." + +#~ msgid "Lead is already converted to customer" +#~ msgstr "تم تحويل العميل المتوقع بالفعل إلى عميل" + +#~ msgid "Lead converted to customer successfully" +#~ msgstr "تم تحويل العميل المتوقع إلى عميل بنجاح" + +#~ msgid "Appointment Created Successfully" +#~ msgstr "تم إنشاء الموعد بنجاح" + +#~ msgid "Lead transferred successfully" +#~ msgstr "تم نقل العميل المتوقع بنجاح" + +#~ msgid "Email Draft successfully" +#~ msgstr "تم إنشاء مسودة البريد الإلكتروني بنجاح" + +#~ msgid "Email sent successfully" +#~ msgstr "تم إرسال البريد الإلكتروني بنجاح!" + +#, fuzzy +#~| msgid "Opportunity deleted successfully" +#~ msgid "Opportunity created successfully." +#~ msgstr "تم حذف الفرصة بنجاح." + +#, fuzzy +#~| msgid "Opportunity deleted successfully" +#~ msgid "Opportunity updated successfully." +#~ msgstr "تم حذف الفرصة بنجاح." + +#, fuzzy +#~| msgid "Opportunity status updated successfully" +#~ msgid "Opportunity Stage updated successfully." +#~ msgstr "تم تحديث حالة الفرصة بنجاح" + +#, fuzzy +#~| msgid "Opportunity" +#~ msgid "opportunity" +#~ msgstr "فرصة" + +#~ msgid "Opportunity deleted successfully" +#~ msgstr "تم حذف الفرصة بنجاح." + +#~ msgid "Opportunity status updated successfully" +#~ msgstr "تم تحديث حالة الفرصة بنجاح" + +#~ msgid "Service created successfully" +#~ msgstr "تم إنشاء الخدمة بنجاح" + +#~ msgid "Service updated successfully" +#~ msgstr "تم تحديث الخدمة بنجاح" + +#, fuzzy +#~| msgid "User created successfully" +#~ msgid "Expense created successfully" +#~ msgstr "تم إنشاء المستخدم بنجاح." + +#~ msgid "Create Bill" +#~ msgstr "إنشاء فاتورة" + +#, fuzzy +#~| msgid "User created successfully" +#~ msgid "Bill created successfully" +#~ msgstr "تم إنشاء المستخدم بنجاح." + +#~ msgid "Quotation has no items" +#~ msgstr "عرض السعر لا يحتوي على أي عناصر" + +#~ msgid "Unauthorized" +#~ msgstr "غير مصرح" + +#~ msgid "Settings updated" +#~ msgstr "تم تحديث الإعدادات" + +#, fuzzy +#~| msgid "Lead created successfully" +#~ msgid "Ledger created successfully" +#~ msgstr "تم إنشاء العميل المتوقع بنجاح" + +#, fuzzy +#~| msgid "Lead deleted successfully" +#~ msgid "Ledger deleted successfully" +#~ msgstr "تم حذف العميل المتوقع بنجاح" + +#, fuzzy +#~| msgid "Account created successfully" +#~ msgid "Journal Entry created successfully" +#~ msgstr "تم إنشاء المجموعة بنجاح." + +#~ msgid "Journal Entry cannot be deleted" +#~ msgstr "لا يمكن حذف قيد اليومية" + +#~ msgid "Ledger is already locked" +#~ msgstr "دفتر الأستاذ مقفل بالفعل" + +#~ msgid "Ledger is already Unlocked" +#~ msgstr "دفتر الأستاذ غير مقفل بالفعل" + +#~ msgid "Ledger is already posted" +#~ msgstr "دفتر الأستاذ تم ترحيله بالفعل" + +#~ msgid "Ledger is already Unposted" +#~ msgstr "دفتر الأستاذ لم يتم ترحيله بعد" + +#, fuzzy +#~| msgid "Already have an account?" +#~ msgid "You already have an plan!!" +#~ msgstr "هل لديك حساب بالفعل؟" + +#, fuzzy +#~| msgid "No car makes selected." +#~ msgid "No plan selected." +#~ msgstr "لم يتم اختيار أي عضو من الفريق." + +#~ msgid "Activity added successfully" +#~ msgstr "تمت إضافة النشاط بنجاح" + +#~ msgid "Activity form is not valid" +#~ msgstr "نموذج النشاط غير صالح" + +#~ msgid "Task added successfully" +#~ msgstr "تمت إضافة المهمة بنجاح" + +#~ msgid "Task form is not valid" +#~ msgstr "نموذج المهمة غير صالح" + +#~ msgid "Note form is not valid" +#~ msgstr "نموذج الملاحظة غير صالح" + +#~ msgid "Note updated successfully" +#~ msgstr "تم تحديث الملاحظة بنجاح" + +#~ msgid "Account activated successfully" +#~ msgstr "تم تفعيل الحساب بنجاح" + +#~ msgid "Account Deleted successfully" +#~ msgstr "تم حذف الحساب بنجاح" + +#~ msgid "You cannot delete this account,it is related to another account" +#~ msgstr "لا يمكنك حذف هذا الحساب، لأنه مرتبط بحساب آخر" + +#~ msgid "Purchase order created successfully" +#~ msgstr "تم إنشاء أمر الشراء بنجاح" + +#, fuzzy +#~| msgid "Vendor with this email already exists" +#~ msgid "Inventory item already exists" +#~ msgstr "يوجد مورد مسجل مسبقًا بهذا البريد الإلكتروني" + +#~ msgid "Inventory item created successfully" +#~ msgstr "تم إنشاء عنصر المخزون بنجاح" + +#, fuzzy +#~| msgid "purchase Orders" +#~ msgid "purchase order" +#~ msgstr "أوامر الشراء" + +#, fuzzy +#~| msgid "Lead created successfully" +#~ msgid "Recall created and notifications sent successfully" +#~ msgstr "تم إنشاء العميل المتوقع بنجاح" + +#~ msgid "Car Dealership Registration" +#~ msgstr "تسجيل معرض السيارات الخاص بك" + +#~ msgid "Your request has been submitted. We will contact you soon." +#~ msgstr "لقد تم ارسال طلبك. سيتصل بك فريقنا قريباً." + +#~ msgid "Powered By Tenhal, Riyadh Saudi Arabia" +#~ msgstr "مدعوم من تنحل, الرياض، المملكة العربية السعودية" + +#, fuzzy +#~| msgid "Home" +#~ msgid "Go Home" +#~ msgstr "الرئيسية" + +#~ msgid "This account is inactive." +#~ msgstr "هذا الحساب غير نشط." + +#~ msgid "Email Verification" +#~ msgstr "التحقق من البريد الإلكتروني" + +#~ msgid "Enter Email Verification Code" +#~ msgstr "أدخل رمز التحقق من البريد الإلكتروني" + +#, python-format +#~ msgid "" +#~ "We’ve sent a code to %(email_link)s. The code expires shortly, so please " +#~ "enter it soon." +#~ msgstr "" +#~ "لقد أرسلنا رمزًا إلى %(email_link)s. سينتهي صلاحية الرمز قريبًا، لذا يرجى " +#~ "إدخاله في أسرع وقت ممكن." + +#~ msgid "home" +#~ msgstr "الرئيسية" + +#~ msgid "Enter Sign-In Code" +#~ msgstr "أدخل رمز تسجيل الدخول" + +#~ msgid "The following email addresses are associated with your account:" +#~ msgstr "عناوين البريد الإلكتروني التالية مرتبطة بحسابك:" + +#~ msgid "Do you really want to remove the selected email address?" +#~ msgstr "هل أنت متأكد أنك تريد إزالة عنوان البريد الإلكتروني المحدد؟" + +#, python-format +#~ msgid "" +#~ "You are receiving this email because you or someone else tried to signup " +#~ "for an\n" +#~ "account using email address:\n" +#~ "\n" +#~ "%(email)s\n" +#~ "\n" +#~ "However, an account using that email address already exists. In case you " +#~ "have\n" +#~ "forgotten about this, please use the password forgotten procedure to " +#~ "recover\n" +#~ "your account:\n" +#~ "\n" +#~ "%(password_reset_url)s" +#~ msgstr "" +#~ "لقد تلقيت هذا البريد الإلكتروني لأنك أو شخصًا آخر حاول التسجيل في حساب " +#~ "باستخدام عنوان البريد الإلكتروني:\n" +#~ "\n" +#~ "%(email)s\n" +#~ "\n" +#~ "ولكن، يوجد بالفعل حساب باستخدام هذا البريد الإلكتروني. إذا كنت قد نسيت " +#~ "ذلك، يرجى استخدام إجراء استعادة كلمة المرور لاستعادة حسابك:\n" +#~ "\n" +#~ "%(password_reset_url)s" + +#~ msgid "Account Already Exists" +#~ msgstr "الحساب موجود بالفعل" + +#, python-format +#~ msgid "Hello from %(site_name)s!" +#~ msgstr "مرحبًا من %(site_name)s!" + +#, python-format +#~ msgid "" +#~ "Thank you for using %(site_name)s!\n" +#~ "%(site_domain)s" +#~ msgstr "" +#~ "شكرًا لاستخدامك %(site_name)s!\n" +#~ "%(site_domain)s" + +#, python-format +#~ msgid "" +#~ "If you do not recognize this change then please take proper security " +#~ "precautions immediately. The change to your account originates from:\n" +#~ "\n" +#~ "- IP address: %(ip)s\n" +#~ "- Browser: %(user_agent)s\n" +#~ "- Date: %(timestamp)s" +#~ msgstr "" +#~ "إذا كنت لا تتعرف على هذا التغيير، يرجى اتخاذ الإجراءات الأمنية المناسبة " +#~ "فورًا. التغيير في حسابك مصدره:\n" +#~ "\n" +#~ "- عنوان IP: %(ip)s\n" +#~ "- المتصفح: %(user_agent)s\n" +#~ "- التاريخ: %(timestamp)s" + +#, python-format +#~ msgid "Your email has been changed from %(from_email)s to %(to_email)s." +#~ msgstr "تم تغيير بريدك الإلكتروني من %(from_email)s إلى %(to_email)s." + +#~ msgid "Email Changed" +#~ msgstr "تم تغيير البريد الإلكتروني" + +#~ msgid "Your email has been confirmed." +#~ msgstr "تم تأكيد بريدك الإلكتروني." + +#~ msgid "Please Confirm Your Email Address" +#~ msgstr "يرجى تأكيد عنوان بريدك الإلكتروني" + +#, python-format +#~ msgid "Email address %(deleted_email)s has been removed from your account." +#~ msgstr "تمت إزالة عنوان البريد الإلكتروني %(deleted_email)s من حسابك." + +#~ msgid "Email Removed" +#~ msgstr "تمت إزالة البريد الإلكتروني" + +#~ msgid "" +#~ "Your sign-in code is listed below. Please enter it in your open browser " +#~ "window." +#~ msgstr "" +#~ "رمز تسجيل الدخول الخاص بك مدرج أدناه. يرجى إدخاله في نافذة المتصفح " +#~ "المفتوحة." + +#~ msgid "This mail can be safely ignored if you did not initiate this action." +#~ msgstr "يمكنك تجاهل هذا البريد الإلكتروني بأمان إذا لم تقم بهذا الإجراء." + +#~ msgid "Sign-In Code" +#~ msgstr "رمز تسجيل الدخول" + +#~ msgid "Your password has been changed." +#~ msgstr "تم تغيير كلمة المرور الخاصة بك." + +#~ msgid "" +#~ "You're receiving this email because you or someone else has requested a " +#~ "password reset for your user account.\n" +#~ "It can be safely ignored if you did not request a password reset. Click " +#~ "the link below to reset your password." +#~ msgstr "" +#~ "لقد تلقيت هذا البريد الإلكتروني لأنك أو شخصًا آخر طلب إعادة تعيين كلمة " +#~ "المرور لحسابك.\n" +#~ "يمكنك تجاهله بأمان إذا لم تطلب إعادة تعيين كلمة المرور. انقر على الرابط " +#~ "أدناه لإعادة تعيينها." + +#, python-format +#~ msgid "In case you forgot, your username is %(username)s." +#~ msgstr "في حال نسيت، اسم المستخدم الخاص بك هو %(username)s." + +#~ msgid "Your password has been reset." +#~ msgstr "تم إعادة تعيين كلمة المرور الخاصة بك." + +#~ msgid "Your password has been set." +#~ msgstr "تم تعيين كلمة المرور الخاصة بك." + +#~ msgid "Password Set" +#~ msgstr "تم تعيين كلمة المرور" + +#, python-format +#~ msgid "" +#~ "You are receiving this email because you, or someone else, tried to " +#~ "access an account with email %(email)s. However, we do not have any " +#~ "record of such an account in our database." +#~ msgstr "" +#~ "لقد تلقيت هذا البريد الإلكتروني لأنك أو شخصًا آخر حاول الوصول إلى حساب " +#~ "باستخدام البريد الإلكتروني %(email)s. ومع ذلك، ليس لدينا أي سجل لهذا " +#~ "الحساب في قاعدة بياناتنا." + +#~ msgid "If it was you, you can sign up for an account using the link below." +#~ msgstr "إذا كنت أنت، يمكنك التسجيل للحصول على حساب باستخدام الرابط أدناه." + +#~ msgid "Unknown Account" +#~ msgstr "حساب غير معروف" + +#~ msgid "Changing to" +#~ msgstr "التغيير إلى" + +#~ msgid "Your email address is still pending verification." +#~ msgstr "عنوان بريدك الإلكتروني لا يزال قيد التحقق." + +#~ msgid "Cancel Change" +#~ msgstr "إلغاء التغيير" + +#, python-format +#~ msgid "" +#~ "Unable to confirm %(email)s because it is already confirmed by a " +#~ "different account." +#~ msgstr "تعذر تأكيد %(email)s لأنه تم تأكيده بالفعل بواسطة حساب آخر." + +#, python-format +#~ msgid "" +#~ "This email confirmation link expired or is invalid. Please issue a new email confirmation request." +#~ msgstr "" +#~ "انتهت صلاحية رابط تأكيد البريد الإلكتروني هذا أو أنه غير صالح. يرجى طلب تأكيد بريد إلكتروني جديد." + +#~ msgid "Remember Me" +#~ msgstr "تذكرني" + +#~ msgid "Sign Up" +#~ msgstr "إنشاء حساب" + +#~ msgid "Sign in with a passkey" +#~ msgstr "تسجيل الدخول باستخدام مفتاح مرور" + +#~ msgid "Mail me a sign-in code" +#~ msgstr "أرسل لي رمز تسجيل الدخول عبر البريد الإلكتروني" + +#, python-format +#~ msgid "You cannot remove your primary email address (%(email)s)." +#~ msgstr "لا يمكنك إزالة عنوان بريدك الإلكتروني الأساسي (%(email)s)." + +#, python-format +#~ msgid "Confirmation email sent to %(email)s." +#~ msgstr "تم إرسال بريد تأكيد إلى %(email)s." + +#, python-format +#~ msgid "You have confirmed %(email)s." +#~ msgstr "لقد قمت بتأكيد %(email)s." + +#, python-format +#~ msgid "Removed email address %(email)s." +#~ msgstr "تمت إزالة عنوان البريد الإلكتروني %(email)s." + +#, python-format +#~ msgid "Successfully signed in as %(name)s." +#~ msgstr "تم تسجيل الدخول بنجاح باسم %(name)s." + +#~ msgid "You have signed out." +#~ msgstr "لقد قمت بتسجيل الخروج." + +#, python-format +#~ msgid "A sign-in code has been mailed to %(email)s." +#~ msgstr "تم إرسال رمز تسجيل الدخول إلى %(email)s عبر البريد الإلكتروني." + +#~ msgid "Password successfully changed." +#~ msgstr "تم تغيير كلمة المرور بنجاح." + +#~ msgid "Password successfully set." +#~ msgstr "تم تعيين كلمة المرور بنجاح." + +#~ msgid "Primary email address set." +#~ msgstr "تم تعيين عنوان البريد الإلكتروني الأساسي." + +#~ msgid "Your primary email address must be verified." +#~ msgstr "يجب التحقق من عنوان بريدك الإلكتروني الأساسي." + +#~ msgid "Enter the verification code" +#~ msgstr "أدخل رمز التحقق" + +#~ msgid "" +#~ "An email containing a 6-digit verification code has been sent to your " +#~ "email." +#~ msgstr "" +#~ "تم إرسال بريد إلكتروني يحتوي على رمز تحقق مكون من 6 أرقام إلى بريدك " +#~ "الإلكتروني." + +#~ msgid "Verify" +#~ msgstr "تحقق" + +#~ msgid "Didn’t receive the code" +#~ msgstr "لم تستلم الرمز؟" + +#~ msgid "" +#~ "Forgotten your password? Enter your email address below, and we'll send " +#~ "you an email allowing you to reset it." +#~ msgstr "" +#~ "هل نسيت كلمة المرور؟ أدخل عنوان بريدك الإلكتروني أدناه، وسنرسل لك بريدًا " +#~ "إلكترونيًا يسمح لك بإعادة تعيينها." + +#~ msgid "Please contact us if you have any trouble resetting your password." +#~ msgstr "" +#~ "يرجى التواصل معنا إذا واجهت أي مشكلة في إعادة تعيين كلمة المرور الخاصة بك." + +#~ msgid "" +#~ "We have sent you an email. If you have not received it please check your " +#~ "spam folder. Otherwise contact us if you do not receive it in a few " +#~ "minutes." +#~ msgstr "" +#~ "لقد أرسلنا لك رسالة بريد إلكتروني. إذا لم تتلقاها، يرجى التحقق من مجلد " +#~ "البريد الغير هام. وإذا لم تصلك في غضون بضع دقائق، يرجى التواصل معنا." + +#~ msgid "Bad Token" +#~ msgstr "رمز غير صالح" + +#, fuzzy +#~| msgid "" +#~| "The password reset link was invalid, possibly because it has already " +#~| "been used. Please request a new " +#~| "password reset." +#~ msgid "" +#~ "The password reset link was invalid, possibly because it has already been " +#~ "used. Please request a" +#~ msgstr "" +#~ "رابط إعادة تعيين كلمة المرور غير صالح، ربما لأنه تم استخدامه بالفعل. يرجى " +#~ "طلب إعادة تعيين كلمة مرور جديدة." + +#, fuzzy +#~| msgid "Password Reset" +#~ msgid "new password reset." +#~ msgstr "إعادة تعيين كلمة المرور" + +#, fuzzy +#~| msgid "Your password is now changed." +#~ msgid "Congratulations, Your password is now changed." +#~ msgstr "تم تغيير كلمة المرور الخاصة بك." + +#~ msgid "Set Password" +#~ msgstr "تعيين كلمة المرور" + +#~ msgid "" +#~ "You will receive an email containing a special code for a password-free " +#~ "sign-in." +#~ msgstr "" +#~ "ستتلقى بريدًا إلكترونيًا يحتوي على رمز خاص لتسجيل الدخول بدون كلمة مرور." + +#~ msgid "Request Code" +#~ msgstr "طلب الرمز" + +#~ msgid "Other sign-in options" +#~ msgstr "خيارات تسجيل الدخول الأخرى" + +#~ msgid "Create your dealership account today" +#~ msgstr "أنشئ حسابك اليوم" + +#~ msgid "Our Refund Policy" +#~ msgstr "سياسة الاسترداد" + +#~ msgid "Please Wait" +#~ msgstr "الرجاء الإنتظار" + +#~ msgid "Loading" +#~ msgstr "تحميل" + +#~ msgid "Create your account today" +#~ msgstr "أنشئ حسابك اليوم" + +#~ msgid "Sign up using a passkey" +#~ msgstr "إنشاء حساب باستخدام مفتاح المرور" + +#~ msgid "Already have an account?" +#~ msgstr "هل لديك حساب بالفعل؟" + +#, python-format +#~ msgid "You are already logged in as %(user_display)s." +#~ msgstr "أنت مسجل الدخول بالفعل باسم %(user_display)s." + +#~ msgid "Warning:" +#~ msgstr "تحذير:" + +#~ msgid "" +#~ "You currently do not have any email address set up. You should really add " +#~ "an email address so you can receive notifications, reset your password, " +#~ "etc." +#~ msgstr "" +#~ "ليس لديك حاليًا أي عنوان بريد إلكتروني مُسجل. يجب عليك إضافة عنوان بريد " +#~ "إلكتروني حتى تتمكن من تلقي الإشعارات وإعادة تعيين كلمة المرور وما إلى ذلك." + +#, fuzzy +#~| msgid "Registration added successfully" +#~ msgid "Registration Successful!" +#~ msgstr "تم إلغاء الحجز بنجاح." + +#, fuzzy +#~| msgid "" +#~| "\n" +#~| " Invoice for this order will be issued for:\n" +#~| " " +#~ msgid "" +#~ "\n" +#~ "\n" +#~ " Thank you for registering at Haikal. " +#~ "We've received your information and a member of our team will contact you " +#~ "shortly to confirm your account details.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " سيتم إصدار فاتورة لهذا الطلب لـ:\n" +#~ " " + +#~ msgid "Dealer Settings" +#~ msgstr "إعدادات المستخدم" + +#~ msgid "Default Invoice Accounts" +#~ msgstr "قائمة الحسابات الافتراضية" + +#~ msgid "Default Bill Accounts" +#~ msgstr "الحسابات الافتراضية للدفاتر" + +#~ msgid "" +#~ "We have sent an email to you for verification. Follow the link provided " +#~ "to finalize the signup process. If you do not see the verification email " +#~ "in your main inbox, check your spam folder. Please contact us if you do " +#~ "not receive the verification email within a few minutes." +#~ msgstr "" +#~ "لقد أرسلنا إليك بريدًا إلكترونيًا للتحقق. يرجى اتباع الرابط المرفق لإكمال " +#~ "عملية التسجيل. إذا لم تجد البريد الإلكتروني للتحقق في صندوق الوارد " +#~ "الرئيسي، تحقق من مجلد البريد العشوائي. يرجى الاتصال بنا إذا لم تتلقَ " +#~ "البريد الإلكتروني خلال بضع دقائق." + +#, fuzzy +#~| msgid "" +#~| "This part of the site requires us to verify that\n" +#~| "you are who you claim to be. For this purpose, we require that you\n" +#~| "verify ownership of your email address. " +#~ msgid "" +#~ "This part of the site requires us to verify that\n" +#~ " you are who you claim to be. For this purpose, we " +#~ "require that you\n" +#~ " verify ownership of your email address. " +#~ msgstr "" +#~ "يتطلب هذا الجزء من الموقع التحقق من أنك الشخص الذي تدّعي أنه أنت. لهذا " +#~ "السبب، نطلب منك تأكيد ملكية عنوان بريدك الإلكتروني." + +#, fuzzy +#~| msgid "" +#~| "We have sent an email to you for\n" +#~| "verification. Please click on the link inside that email. If you do not " +#~| "see the verification email in your main inbox, check your spam folder. " +#~| "Otherwise\n" +#~| "contact us if you do not receive it within a few minutes." +#~ msgid "" +#~ "We have sent an email to you for\n" +#~ " verification. Please click on the link inside " +#~ "that email. If you do not see the verification email in your main inbox, " +#~ "check your spam folder. Otherwise\n" +#~ " contact us if you do not receive it within a few " +#~ "minutes." +#~ msgstr "" +#~ "لقد أرسلنا لك بريدًا إلكترونيًا للتحقق. يرجى النقر على الرابط الموجود داخل " +#~ "البريد الإلكتروني. إذا لم تجد البريد الإلكتروني للتحقق في صندوق الوارد " +#~ "الرئيسي، تحقق من مجلد البريد العشوائي. بخلاف ذلك، اتصل بنا إذا لم تستلمه " +#~ "خلال بضع دقائق." + +#, python-format +#~ msgid "" +#~ "Note: you can still change " +#~ "your email address." +#~ msgstr "" +#~ "ملاحظة: لا يزال بإمكانك تغيير " +#~ "عنوان بريدك الإلكتروني." + +#~ msgid "Accounts" +#~ msgstr "الحسابات" + +#~ msgid "Timestamp" +#~ msgstr "الطابع الزمني" + +#~ msgid "Event Type" +#~ msgstr "نوع الحدث" + +#~ msgid "username" +#~ msgstr "اسم المستخدم" + +#, fuzzy +#~| msgid "No model change audit events found." +#~ msgid "No authentication audit events found." +#~ msgstr "لم يتم العثور على أحداث تدقيق لتغييرات النماذج." + +#, fuzzy +#~| msgid "Active Accounts" +#~ msgid "Activate Account" +#~ msgstr "الحسابات النشطة" + +#, fuzzy +#~| msgid "Audit Log Dashboard" +#~ msgid "Admin Dashboard" +#~ msgstr "لوحة سجل التدقيق" + +#~ msgid "Object Representation" +#~ msgstr "تمثيل الكائن" + +#~ msgid "Old Value" +#~ msgstr "القيمة القديمة" + +#~ msgid "Object created." +#~ msgstr "تم إنشاء الكائن." + +#~ msgid "Object deleted." +#~ msgstr "تم حذف الكائن." + +#~ msgid "No specific field changes recorded." +#~ msgstr "لم يتم تسجيل تغييرات محددة في الحقول." + +#~ msgid "No model change audit events found." +#~ msgstr "لم يتم العثور على أحداث تدقيق لتغييرات النماذج." + +#~ msgid "User Login Events" +#~ msgstr "أحداث تسجيل دخول المستخدم" + +#~ msgid "User Page Requests" +#~ msgstr "طلبات صفحات المستخدم" + +#, fuzzy +#~| msgid "Permenantly Delete" +#~ msgid "Permanent Delete instance" +#~ msgstr "حذف نهائي" + +#~ msgid "URL" +#~ msgstr "رابط URL" + +#, fuzzy +#~| msgid "No model change audit events found." +#~ msgid "No request audit events found." +#~ msgstr "لم يتم العثور على أحداث تدقيق لتغييرات النماذج." + +#~ msgid "Created date" +#~ msgstr "تاريخ الإنشاء" + +#~ msgid "Permenantly Delete" +#~ msgstr "حذف نهائي" + +#~ msgid "No data available in table" +#~ msgstr "لا توجد بيانات في الجدول" + +#~ msgid "Start time" +#~ msgstr "وقت البدء" + +#~ msgid "End time" +#~ msgstr "وقت الانتهاء" + +#~ msgid "Service" +#~ msgstr "الخدمة" + +#~ msgid "Client" +#~ msgstr "العميل" + +#~ msgid "Wants reminder" +#~ msgstr "يريد تذكيرًا" + +#~ msgid "Client address" +#~ msgstr "عنوان العميل" + +#~ msgid "Is paid" +#~ msgstr "مدفوع" + +#~ msgid "Service price" +#~ msgstr "سعر الخدمة" + +#~ msgid "Enter Verification Code" +#~ msgstr "أدخل رمز التحقق" + +#~ msgid "We've sent a verification code to your email. Please enter it below" +#~ msgstr "لقد أرسلنا رمز التحقق إلى بريدك الإلكتروني. يرجى إدخاله أدناه." + +#~ msgid "Code" +#~ msgstr "الكود" + +#~ msgid "Manage Days Off" +#~ msgstr "إدارة أيام الإجازة" + +#~ msgid "Staff Member" +#~ msgstr "عضو الفريق" + +#~ msgid "Start date" +#~ msgstr "تاريخ البدء" + +#~ msgid "Down Payment" +#~ msgstr "دفعة مقدمة" + +#~ msgid "Background Color" +#~ msgstr "لون الخلفية" + +#~ msgid "Are you sure you want to delete this service?" +#~ msgstr "هل أنت متأكد أنك تريد حذف هذه الخدمة؟" + +#~ msgid "Staff Appointment Information" +#~ msgstr "معلومات مواعيد الفريق" + +#~ msgid "User not found" +#~ msgstr "المستخدم غير موجود" + +#~ msgid "Create staff member manually" +#~ msgstr "إنشاء عضو فريق يدويًا" + +#~ msgid "Hold down “Control”, or “Command” on a Mac, to select more than one." +#~ msgstr "" +#~ "اضغط مع الاستمرار على “Control” أو “Command” على جهاز Mac لتحديد أكثر من " +#~ "خيار." + +#~ msgid "Staff Personal Information" +#~ msgstr "المعلومات الشخصية للموظفين" + +#~ msgid "Manage Working Hours" +#~ msgstr "إدارة ساعات العمل" + +#~ msgid "Day of Week" +#~ msgstr "يوم الأسبوع" + +#~ msgid "Service List" +#~ msgstr "قائمة الخدمات" + +#~ msgid "No service found" +#~ msgstr "لم يتم العثور على خدمة" + +#~ msgid "Are you sure you want to delete this appointment?" +#~ msgstr "هل أنت متأكد أنك تريد حذف هذا الموعد؟" + +#~ msgid "Events on" +#~ msgstr "الأحداث في" + +#~ msgid "No events for this day." +#~ msgstr "لا توجد أحداث لهذا اليوم." + +#~ msgid "New Event" +#~ msgstr "حدث جديد" + +#~ msgid "Error: Unable to delete appointment." +#~ msgstr "خطأ: لا يمكن حذف الموعد." + +#~ msgid "Appointment not found." +#~ msgstr "لم يتم العثور على الموعد." + +#~ msgid "You're not a staff member. Can't perform this action !" +#~ msgstr "لست عضوًا في الفريق. لا يمكن تنفيذ هذا الإجراء!" + +#~ msgid "You don't offer any service. Add new service from your profile." +#~ msgstr "أنت لا تقدم أي خدمة. أضف خدمة جديدة من ملفك الشخصي." + +#~ msgid "Client wants this and that" +#~ msgstr "العميل يريد هذا وذاك" + +#~ msgid "Staff Members List" +#~ msgstr "قائمة أعضاء الفريق" + +#~ msgid "List of all staff members" +#~ msgstr "قائمة جميع أعضاء الفريق" + +#~ msgid "Staff Members" +#~ msgstr "أعضاء الفريق" + +#~ msgid "Add" +#~ msgstr "إضافة" + +#~ msgid "No staff members found" +#~ msgstr "لم يتم العثور على أعضاء فريق" + +#~ msgid "" +#~ "PS: Remove means, deleting the staff status of the user. The user account " +#~ "is still active." +#~ msgstr "" +#~ "ملاحظة: إزالة تعني حذف حالة الموظف للمستخدم. لا يزال حساب المستخدم نشطًا." + +#~ msgid "Last name" +#~ msgstr "اسم العائلة" + +#~ msgid "Appointments Information" +#~ msgstr "معلومات المواعيد" + +#~ msgid "Slot duration" +#~ msgstr "مدة الفاصل الزمني" + +#~ msgid "General start time" +#~ msgstr "وقت البدء العام" + +#~ msgid "General end time" +#~ msgstr "وقت الانتهاء العام" + +#~ msgid "Weekend days you work" +#~ msgstr "أيام عطلة نهاية الأسبوع التي تعمل فيها" + +#~ msgid "Appointment buffer time" +#~ msgstr "وقت التخزين المؤقت للموعد" + +#~ msgid "No staff member information yet for this user" +#~ msgstr "لا توجد معلومات عن عضو فريق لهذا المستخدم حتى الآن" + +#~ msgid "Days Off" +#~ msgstr "أيام الإجازة" + +#~ msgid "" +#~ "Days off are days you're not working, you need to set them for holidays " +#~ "as well so clients don't book you those days." +#~ msgstr "" +#~ "أيام الإجازة هي الأيام التي لا تعمل فيها. تحتاج إلى تحديدها للعطلات أيضًا " +#~ "حتى لا يحجز العملاء في تلك الأيام." + +#~ msgid "No days off have been set" +#~ msgstr "لم يتم تحديد أيام إجازة" + +#~ msgid "" +#~ "Note: If you are a staff member, your working hours will be used to " +#~ "determine when you are available for appointments." +#~ msgstr "" +#~ "ملاحظة: إذا كنت عضوًا في الفريق، فستُستخدم ساعات عملك لتحديد أوقات توافرك " +#~ "للمواعيد." + +#~ msgid "Day" +#~ msgstr "اليوم" + +#~ msgid "Sunday" +#~ msgstr "الأحد" + +#~ msgid "Monday" +#~ msgstr "الاثنين" + +#~ msgid "Tuesday" +#~ msgstr "الثلاثاء" + +#~ msgid "Wednesday" +#~ msgstr "الأربعاء" + +#~ msgid "Thursday" +#~ msgstr "الخميس" + +#~ msgid "Friday" +#~ msgstr "الجمعة" + +#~ msgid "Saturday" +#~ msgstr "السبت" + +#~ msgid "Service Offered" +#~ msgstr "الخدمات المقدمة" + +#~ msgid "To add/modify a new service, make a request to an admin." +#~ msgstr "لإضافة/تعديل خدمة جديدة، قدم طلبًا للإدارة." + +#~ msgid "Changes made in one service will change it for every staff member." +#~ msgstr "أي تغييرات تُجرى على خدمة واحدة ستُطبق على جميع أعضاء الفريق." + +#~ msgid "Down payment" +#~ msgstr "دفعة مقدمة" + +#~ msgid "No service offered yet" +#~ msgstr "لم تُقدم أي خدمة حتى الآن" + +#, python-format +#~ msgid "" +#~ "\n" +#~ " Your appointment request for %(service_name)s has been " +#~ "submitted.\n" +#~ " Please provide your information to create an account and complete " +#~ "the payment process.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " تم تقديم طلب موعدك لخدمة %(service_name)s.\n" +#~ " يرجى تقديم معلوماتك لإنشاء حساب واستكمال عملية الدفع.\n" +#~ " " + +#~ msgid "Fill out your details" +#~ msgstr "املأ بياناتك" + +#~ msgid "Tell us a bit about yourself" +#~ msgstr "أخبرنا قليلاً عن نفسك" + +#~ msgid "for faster booking." +#~ msgstr "لحجز أسرع." + +#~ msgid "" +#~ "I want to receive an EMAIL reminder 24 hours before this session starts" +#~ msgstr "" +#~ "أريد استلام تذكير عبر البريد الإلكتروني قبل بدء هذه الجلسة بـ 24 ساعة" + +#~ msgid "City and State" +#~ msgstr "المدينة والولاية" + +#~ msgid "Payment Details" +#~ msgstr "تفاصيل الدفع" + +#~ msgid "Pay" +#~ msgstr "ادفع" + +#~ msgid "Finish" +#~ msgstr "إنهاء" + +#~ msgid "" +#~ "Check out our availability and book the date and time that works for you" +#~ msgstr "تحقق من توافرنا واحجز التاريخ والوقت الذي يناسبك" + +#~ msgid "Select a date and time" +#~ msgstr "اختر التاريخ والوقت" + +#~ msgid "Reason for rescheduling" +#~ msgstr "سبب إعادة الجدولة" + +#~ msgid "Please select a staff member" +#~ msgstr "يرجى اختيار أحد أعضاء الفريق" + +#~ msgid "Request next available slot" +#~ msgstr "طلب الفترة الزمنية المتاحة التالية" + +#~ msgid "No staff member selected." +#~ msgstr "لم يتم اختيار أي عضو من الفريق." + +#~ msgid "Please select a time slot before submitting the appointment request." +#~ msgstr "يرجى اختيار فترة زمنية قبل تقديم طلب الموعد." + +#~ msgid "Date is in the past." +#~ msgstr "التاريخ في الماضي." + +#~ msgid "See you soon" +#~ msgstr "نراك قريبًا" + +#~ msgid "" +#~ "We've successfully scheduled your appointment! Please check your email " +#~ "for all the details" +#~ msgstr "" +#~ "تم جدولة موعدك بنجاح! يرجى التحقق من بريدك الإلكتروني للحصول على جميع " +#~ "التفاصيل." + +#~ msgid "Appointment details" +#~ msgstr "تفاصيل الموعد" + +#~ msgid "Appointment Date" +#~ msgstr "تاريخ الموعد" + +#~ msgid "Appointment Time" +#~ msgstr "وقت الموعد" + +#~ msgid "Rescheduling Successful" +#~ msgstr "تمت إعادة الجدولة بنجاح" + +#~ msgid "" +#~ "Your appointment rescheduling was successful. Please confirm via email." +#~ msgstr "تمت إعادة جدولة موعدك بنجاح. يرجى التأكيد عبر البريد الإلكتروني." + +#~ msgid "" +#~ "Your appointment rescheduling request has been successfully submitted. " +#~ "Please check your email and click on the confirmation link to finalize " +#~ "the rescheduling process." +#~ msgstr "" +#~ "تم تقديم طلب إعادة جدولة موعدك بنجاح. يرجى التحقق من بريدك الإلكتروني " +#~ "والنقر على رابط التأكيد لإكمال عملية إعادة الجدولة." + +#~ msgid "Go to Homepage" +#~ msgstr "الانتقال إلى الصفحة الرئيسية" + +#~ msgid "HAIKAL" +#~ msgstr "هيكل" + +#~ msgid "Bill for" +#~ msgstr "فاتورة لـ" + +#, fuzzy +#~| msgid "Lead Details" +#~ msgid "Bill Details" +#~ msgstr "تفاصيل العميل المحتمل" + +#~ msgid "Cash Account" +#~ msgstr "حساب نقدي" + +#~ msgid "Prepaid Account" +#~ msgstr "حساب مسبق الدفع" + +#~ msgid "Accounts Payable" +#~ msgstr "الحسابات الدائنة" + +#~ msgid "Accrued" +#~ msgstr "متراكم" + +#~ msgid "You Still Owe" +#~ msgstr "ما زلت مديناً" + +#~ msgid "Bill Items" +#~ msgstr "بنود الفاتورة" + +#~ msgid "Entity Unit" +#~ msgstr "وحدة الكيان" + +#~ msgid "Unit Cost" +#~ msgstr "تكلفة الوحدة" + +#~ msgid "PO" +#~ msgstr "أمر الشراء" + +#~ msgid "View PO" +#~ msgstr "عرض أمر الشراء" + +#~ msgid "Bill Transactions" +#~ msgstr "معاملات الفاتورة" + +#~ msgid "Save Bill" +#~ msgstr "حفظ الفاتورة" + +#~ msgid "Back to Bill Detail" +#~ msgstr "العودة إلى تفاصيل الفاتورة" + +#~ msgid "Due in" +#~ msgstr "مستحق في" + +#~ msgid "Past Due" +#~ msgstr "مستحق" + +#~ msgid "Amount Due" +#~ msgstr "المبلغ المستحق" + +#~ msgid "Amount Paid" +#~ msgstr "المبلغ المدفوع" + +#~ msgid "Progress" +#~ msgstr "التقدم" + +#, fuzzy +#~| msgid "Back to List" +#~ msgid "Back to Bill List" +#~ msgstr "العودة إلى القائمة" + +#~ msgid "This bill is" +#~ msgstr "هذه الفاتورة هي" + +#, fuzzy +#~| msgid "Vendor Number" +#~ msgid "Vendor Name" +#~ msgstr "رقم المورد" + +#~ msgid "Is Accrued" +#~ msgstr "مستحقة" + +#~ msgid "External Ref" +#~ msgstr "المرجع الخارجي" + +#~ msgid "Bill Amount" +#~ msgstr "قيمة الفاتورة" + +#~ msgid "Mark as Draft" +#~ msgstr "وضع كمسودة" + +#~ msgid "Waiting for Manager Approval" +#~ msgstr "في انتظار موافقة المدير" + +#~ msgid "Mark as Approved" +#~ msgstr "وضع علامة معتمد" + +#~ msgid "Mark as Void" +#~ msgstr "وضع كملغي" + +#~ msgid "Mark as Canceled" +#~ msgstr "وضع علامة ملغاة" + +#~ msgid "New Bill" +#~ msgstr "فاتورة جديدة" + +#~ msgid "No available notes to display..." +#~ msgstr "لا توجد ملاحظات متاحة للعرض..." + +#~ msgid "Vendor Info" +#~ msgstr "معلومات المورد" + +#~ msgid "PO Qty" +#~ msgstr "كمية أمر الشراء" + +#~ msgid "PO Amount" +#~ msgstr "مبلغ أمر الشراء" + +#~ msgid "Unit" +#~ msgstr "الوحدة" + +#~ msgid "Number" +#~ msgstr "الرقم" + +#~ msgid "Payments" +#~ msgstr "المدفوعات" + +#~ msgid "Account Name" +#~ msgstr "اسم الحساب" + +#~ msgid "Credit" +#~ msgstr "دائن" + +#~ msgid "Debit" +#~ msgstr "مدين" + +#~ msgid "Create" +#~ msgstr "إنشاء" + +#~ msgid "Chart of Accounts" +#~ msgstr "قائمة الحسابات" + +#~ msgid "Add New" +#~ msgstr "إضافة جديد" + +#~ msgid "Show Inactive" +#~ msgstr "عرض غير النشطة" + +#~ msgid "Show Active" +#~ msgstr "عرض النشطة" + +#, fuzzy +#~| msgid "Create Chart of Account" +#~ msgid "Update chart of Account" +#~ msgstr "إنشاء دليل الحسابات" + +#~ msgid "DEFAULT" +#~ msgstr "الافتراضي" + +#~ msgid "Entity Default" +#~ msgstr "الكيان الافتراضي" + +#~ msgid "CoA Name" +#~ msgstr "اسم جهة الحسابات" + +#~ msgid "CoA ID" +#~ msgstr "رقم جهة الحسابات" + +#~ msgid "Active Accounts" +#~ msgstr "الحسابات النشطة" + +#~ msgid "Locked Accounts" +#~ msgstr "الحسابات المقفلة" + +#~ msgid "Add Account" +#~ msgstr "إضافة حساب" + +#~ msgid "Mark as Default" +#~ msgstr "وضع كافتراضي" + +#~ msgid "Mark as Inactive" +#~ msgstr "وضع كغير نشط" + +#~ msgid "Mark as Active" +#~ msgstr "وضع كنشط" + +#~ msgid "Select Date" +#~ msgstr "اختر التاريخ" + +#, fuzzy +#~| msgid "Activity" +#~ msgid "Add Activity to" +#~ msgstr "النشاط" + +#, fuzzy +#~| msgid "Activity" +#~ msgid "Add Activity" +#~ msgstr "النشاط" + +#~ msgid "view" +#~ msgstr "عرض" + +#~ msgid "Lead Detail" +#~ msgstr "تفاصيل الفرصة المحتملة" + +#~ msgid "Lead Details" +#~ msgstr "تفاصيل الفرصة المحتملة" + +#~ msgid "Car Requested" +#~ msgstr "السيارة المطلوبة" + +#~ msgid "Related Records" +#~ msgstr "السجلات المرتبطة" + +#~ msgid "No Opportunity" +#~ msgstr "لا توجد فرصة" + +#~ msgid "Lead Source" +#~ msgstr "مصدر العميل المحتمل" + +#~ msgid "Lead Channel" +#~ msgstr "قناة العميل المحتمل" + +#~ msgid "Reassign Lead" +#~ msgstr "إعادة تعيين الفرصة" + +#~ msgid "Update Actions" +#~ msgstr "تحديث الإجراءات" + +#~ msgid "Reassign Lead To Another Employee" +#~ msgstr "إعادة تعيين العميل المحتمل إلى موظف آخر" + +#~ msgid "Add Opportunity" +#~ msgstr "إضافة فرصة" + +#~ msgid "Probability" +#~ msgstr "الاحتمالية" + +#, fuzzy +#~| msgid "Current Asset" +#~ msgid "Sent by" +#~ msgstr "الأصول الحالية" + +#~ msgid "sent" +#~ msgstr "مرسلة" + +#~ msgid "Add Task" +#~ msgstr "إضافة مهمة" + +#~ msgid "Update Lead" +#~ msgstr "تحديث العميل المحتمل" + +#~ msgid "Add New Lead" +#~ msgstr "إضافة عميل محتمل جديد" + +#~ msgid "Add Lead" +#~ msgstr "إضافة عميل محتمل" + +#~ msgid "Lead Name" +#~ msgstr "اسم العميل المحتمل" + +#~ msgid "Scheduled at" +#~ msgstr "مجدول في" + +#~ msgid "Convert to Opportunity" +#~ msgstr "تحويل إلى فرصة" + +#~ msgid "Send Mail" +#~ msgstr "إرسال بريد" + +#~ msgid "Send" +#~ msgstr "إرسال" + +#~ msgid "Leads Tracking" +#~ msgstr "متابعة العملاء المحتملين" + +#~ msgid "Follow Ups" +#~ msgstr "متابعات" + +#~ msgid "Negotiation Ups" +#~ msgstr "مفاوضات إضافية" + +#~ msgid "Select Next Action" +#~ msgstr "اختر الإجراء التالي" + +#~ msgid "No Action" +#~ msgstr "لا يوجد إجراء" + +#~ msgid "Notification history" +#~ msgstr "الإشعارات" + +#~ msgid "Inbox" +#~ msgstr "البريد" + +#~ msgid "No new notifications" +#~ msgstr "الإشعارات" + +#~ msgid "Delete Opportunity" +#~ msgstr "حذف الفرصة" + +#, fuzzy +#~| msgid " Delete" +#~ msgid "Yes, delete" +#~ msgstr "حذف" + +#~ msgid "Opportunity Detail" +#~ msgstr "تفاصيل الفرصة" + +#~ msgid "Opportunity details" +#~ msgstr "تفاصيل الفرصة" + +#~ msgid "View Quotation" +#~ msgstr "مشاهدة عرض السعر" + +#, fuzzy +#~| msgid "Save Estimate" +#~ msgid "Create Estimate" +#~ msgstr "حفظ التقدير" + +#~ msgid "Update Opportunity" +#~ msgstr "تحديث الفرصة" + +#, fuzzy +#~| msgid "Update Staff" +#~ msgid "Update Stage" +#~ msgstr "تحديث الموظف" + +#, fuzzy +#~| msgid "Marked Price" +#~ msgid "Marked Price: " +#~ msgstr "سعر العرض" + +#~ msgid "Individual" +#~ msgstr "فرد" + +#~ msgid "STAGE" +#~ msgstr "المرحلة" + +#~ msgid "Upcoming Events" +#~ msgstr "الأحداث القادمة" + +#~ msgid "No upcoming events" +#~ msgstr "لا توجد أحداث قادمة" + +#~ msgid "No Estimate" +#~ msgstr "لا يوجد تقدير" + +#~ msgid "View Invoice" +#~ msgstr "عرض الفاتورة" + +#~ msgid "No Invoice" +#~ msgstr "لا توجد فاتورة" + +#~ msgid "System Information" +#~ msgstr "معلومات النظام" + +#~ msgid "You" +#~ msgstr "أنت" + +#~ msgid "Create Date" +#~ msgstr "تاريخ الإنشاء" + +#, fuzzy +#~| msgid "View Bill" +#~ msgid "View all" +#~ msgstr "عرض الفاتورة" + +#, fuzzy +#~| msgid "Update Opportunity" +#~ msgid "Update Opportunity Stage" +#~ msgstr "تحديث الفرصة" + +#, fuzzy +#~| msgid "Are you sure you want to delete this opportunity?" +#~ msgid "Are you sure you want to create an estimate from this opportunity?" +#~ msgstr "هل أنت متأكد أنك تريد حذف هذه الفرصة؟" + +#~ msgid "Add New Opportunity" +#~ msgstr "إضافة فرصة جديدة" + +#~ msgid "Edit Opportunity" +#~ msgstr "تعديل الفرصة" + +#~ msgid "Create New Opportunity" +#~ msgstr "إنشاء فرصة جديدة" + +#~ msgid "Reset" +#~ msgstr "إعادة تعيين" + +#~ msgid "Opportunity Guidelines" +#~ msgstr "إرشادات الفرص" + +#~ msgid "Update stage as deal progresses" +#~ msgstr "تحديث المرحلة مع تقدم الصفقة" + +#~ msgid "Set realistic closing dates" +#~ msgstr "تحديد تواريخ إغلاق واقعية" + +#~ msgid "Are you sure you want to delete this opportunity?" +#~ msgstr "هل أنت متأكد أنك تريد حذف هذه الفرصة؟" + +#~ msgid "Newest First" +#~ msgstr "الأحدث أولاً" + +#~ msgid "Highest Value" +#~ msgstr "أعلى قيمة" + +#~ msgid "Earliest Close Date" +#~ msgstr "أقرب تاريخ إغلاق" + +#, fuzzy +#~| msgid "Opportunity" +#~ msgid "Opportunity for" +#~ msgstr "فرصة" + +#~ msgid "Car Bulk Upload" +#~ msgstr "رفع بيانات السيارات بالكم" + +#~ msgid "Upload Cars CSV" +#~ msgstr "رفع بيانات السيارات " + +#~ msgid "Download Sample CSV" +#~ msgstr "تنزيل قالب" + +#~ msgid "List of Items" +#~ msgstr "قائمة الطلبات" + +#, fuzzy +#~| msgid "File" +#~ msgid "CSV File" +#~ msgstr "الملف" + +#~ msgid "CSV should include columns: vin" +#~ msgstr "ينبغي أن يحتوي الملف على الأعمدة: الرقم التسلسلي" + +#~ msgid "Upload" +#~ msgstr "رفع" + +#~ msgid "Update Customer" +#~ msgstr "تحديث العميل" + +#~ msgid "Are you sure you want to delete this customer" +#~ msgstr "هل أنت متأكد أنك تريد حذف هذا العميل" + +#, fuzzy +#~| msgid "No staff members found." +#~ msgid "No Customers found." +#~ msgstr "لم يتم العثور على أعضاء فريق." + +#~ msgid "View Customer" +#~ msgstr "عرض العميل" + +#~ msgid "Customer details" +#~ msgstr "تفاصيل العميل" + +#, fuzzy +#~| msgid "Are you sure you want to delete this customer" +#~ msgid "Are you sure you want to delete this customer?" +#~ msgstr "هل أنت متأكد أنك تريد حذف هذا العميل" + +#~ msgid "Member since:" +#~ msgstr "عضو منذ:" + +#~ msgid "Invoices" +#~ msgstr "الفواتير" + +#~ msgid "Quotations" +#~ msgstr "العروض" + +#, fuzzy +#~| msgid "Personal Information" +#~ msgid "Default Information" +#~ msgstr "المعلومات الشخصية" + +#, fuzzy +#~| msgid "Payment History" +#~ msgid "Sales History" +#~ msgstr "سجل المدفوعات" + +#, fuzzy +#~| msgid "Estimate" +#~ msgid "Estimates" +#~ msgstr "تقدير" + +#, fuzzy +#~| msgid "No accounts found in this category." +#~ msgid "No leads found for this customer." +#~ msgstr "لم يتم العثور على أي حسابات في هذه الفئة." + +#, fuzzy +#~| msgid "No accounts found in this category." +#~ msgid "No opportunities found for this customer." +#~ msgstr "لم يتم العثور على أي حسابات في هذه الفئة." + +#~ msgid "Paid" +#~ msgstr "مدفوع" + +#, fuzzy +#~| msgid "Is paid" +#~ msgid "Unpaid" +#~ msgstr "مدفوع" + +#, fuzzy +#~| msgid "Inventory" +#~ msgid "Aging Inventory" +#~ msgstr "المخزن" + +#~ msgid "Aging Inventory Total" +#~ msgstr "إجمالي قيمة المخزن" + +#~ msgid "Cars in inventory for more than 60 days." +#~ msgstr "السيارات الموجودة في المخزن منذ أكثر من 60 يوم." + +#, fuzzy +#~| msgid "Make" +#~ msgid "Make:" +#~ msgstr "الصانع" + +#, fuzzy +#~| msgid "Model" +#~ msgid "Model:" +#~ msgstr "الموديل" + +#, fuzzy +#~| msgid "Series" +#~ msgid "Series:" +#~ msgstr "السلسلة" + +#, fuzzy +#~| msgid "Year" +#~ msgid "Year:" +#~ msgstr "السنة" + +#, fuzzy +#~| msgid "Total cars" +#~ msgid "Total Aging Cars:" +#~ msgstr "إجمالي السيارات" + +#~ msgid "VIN:" +#~ msgstr "رقم الهيكل:" + +#~ msgid "Age:" +#~ msgstr "العمر:" + +#~ msgid "Excellent! There are no cars in the aging inventory at the moment." +#~ msgstr "ممتاز! لا توجد أي سيارات في المخزن القديم في الوقت الحالي." + +#~ msgid "Dealership Dashboard" +#~ msgstr "لوحة القيادة الخاصة بي" + +#~ msgid "Business Health Dashboard" +#~ msgstr "لوحة القيادة الخاصة بي" + +#, fuzzy +#~| msgid "My Dashboard" +#~ msgid "Inventory Dashboard" +#~ msgstr "لوحة القيادة الخاصة بي" + +#~ msgid "Total Cars Sold" +#~ msgstr "إجمالي السيارات" + +#~ msgid "Monthly Revenue" +#~ msgstr "إجمالي الإيرادات" + +#~ msgid "Monthly Net Profit" +#~ msgstr "صافي الربح الشهري" + +#, fuzzy +#~| msgid "Sales Tax Rate" +#~ msgid "Car Sale by Make" +#~ msgstr "معدل ضريبة المبيعات" + +#, fuzzy +#~| msgid "Cars Sold by model" +#~ msgid "Car Sale by Model" +#~ msgstr "السيارات المباعة بالموديل" + +#~ msgid "Car Count by Make" +#~ msgstr "ماركات السيارات" + +#, fuzzy +#~| msgid "Car Count by Make" +#~ msgid "Car Count by Model" +#~ msgstr "ماركات السيارات" + +#, fuzzy +#~| msgctxt "abbrev. month" +#~| msgid "Jan." +#~ msgid "Jan" +#~ msgstr "يناير" + +#~ msgid "Feb" +#~ msgstr "فبراير" + +#~ msgid "Mar" +#~ msgstr "السيد" + +#, fuzzy +#~| msgid "April" +#~ msgid "Apr" +#~ msgstr "أبريل" + +#~ msgid "May" +#~ msgstr "مايو" + +#, fuzzy +#~| msgid "June" +#~ msgid "Jun" +#~ msgstr "يونيو" + +#, fuzzy +#~| msgid "July" +#~ msgid "Jul" +#~ msgstr "يوليو" + +#, fuzzy +#~| msgctxt "abbrev. month" +#~| msgid "Aug." +#~ msgid "Aug" +#~ msgstr "أغسطس" + +#, fuzzy +#~| msgctxt "abbrev. month" +#~| msgid "Sept." +#~ msgid "Sep" +#~ msgstr "سبتمبر" + +#, fuzzy +#~| msgctxt "abbrev. month" +#~| msgid "Oct." +#~ msgid "Oct" +#~ msgstr "أكتوبر" + +#, fuzzy +#~| msgctxt "abbrev. month" +#~| msgid "Nov." +#~ msgid "Nov" +#~ msgstr "نوفمبر" + +#, fuzzy +#~| msgctxt "abbrev. month" +#~| msgid "Dec." +#~ msgid "Dec" +#~ msgstr "ديسمبر" + +#~ msgid "cars" +#~ msgstr "السيارات" + +#, python-format +#~ msgid "" +#~ "\n" +#~ " Monthly Performance Trends (%(start_date)s - %(end_date)s)\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " اتجاهات الأداء الشهري (%(start_date)s - %(end_date)s)\n" +#~ " " + +#~ msgid "Monthly Revenue & Profit" +#~ msgstr "الإيرادات والربح الشهري" + +#~ msgid "Monthly Cars Sold" +#~ msgstr "السيارات المباعة الشهري" + +#~ msgid "Sales by Make" +#~ msgstr "المبيعات حسب العلامات التجارية" + +#~ msgid "Models Sold By Make" +#~ msgstr "الموديلات المباعة حسب العلامات التجارية" + +#~ msgid "Select Make" +#~ msgstr "اختر العلامة التجارية" + +#~ msgid "Go" +#~ msgstr "اذهب" + +#~ msgid "Please Select a Make from above to see the Statistics" +#~ msgstr "يرجى انتخاب العلامة التجارية الخاصة بي من فوق لمشاهدة الإحصائيات" + +#~ msgid "Inventory Trends" +#~ msgstr "اتجاهات المخزون" + +#~ msgid "Inventory by Make" +#~ msgstr "المخزون حسب العلامات التجارية" + +#~ msgid "Models in Inventory" +#~ msgstr "الموديلات المخزون" + +#, python-format +#~ msgid "" +#~ "\n" +#~ " Sales KPIs (%(start_date)s - %(end_date)s)\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ "اتجاهات مبيعات السيارات (%(start_date)s - %(end_date)s)\n" +#~ " " + +#~ msgid "Total Revenue from Cars" +#~ msgstr "إجمالي الإيرادات من السيارات" + +#~ msgid "Net Profit from Cars" +#~ msgstr "هامش الربح الصافي" + +#~ msgid "Total Discount on Cars" +#~ msgstr "إجمالي الخصم على السيارات" + +#~ msgid "Total Cost of Cars Sold" +#~ msgstr "تكلفة البضائع المباعة" + +#~ msgid "Total VAT from Cars" +#~ msgstr "إجمالي الضريبة من السيارات" + +#~ msgid "Sales of New Cars" +#~ msgstr "مبيعات السيارات الجديدة" + +#~ msgid "New Cars Sold" +#~ msgstr "السيارات الجديدة المباعة" + +#~ msgid "New Cars Revenue" +#~ msgstr "إيرادات السيارات الجديدة" + +#~ msgid "New Cars Net Profit" +#~ msgstr "صافي ربح السيارات الجديدة" + +#~ msgid "New Cars VAT" +#~ msgstr "ضريبة القيمة المضافة على السيارات الجديدة" + +#~ msgid "New Cars Cost" +#~ msgstr "تكلفة السيارات الجديدة" + +#~ msgid "Sales of Used Cars" +#~ msgstr "مبيعات السيارات المستخدمة" + +#~ msgid "Used Cars Sold" +#~ msgstr "مبيعات السيارات المستخدمة" + +#~ msgid "Used Cars Revenue" +#~ msgstr "إيرادات مبيعات السيارات المستخدمة" + +#~ msgid "Used Cars Net Profit" +#~ msgstr "صافي ربح السيارات المستخدمة" + +#~ msgid "Used Cars VAT" +#~ msgstr "ضريبة القيمة المضافة على السيارات المستخدمة" + +#~ msgid "Used Cars Cost" +#~ msgstr "تكلفة السيارات المستخدمة" + +#~ msgid "Inventory KPIs" +#~ msgstr "مؤشرات المخزون" + +#~ msgid "Total Cars in Inventory" +#~ msgstr "إجمالي السيارات في المخزون" + +#~ msgid "Total Inventory Value" +#~ msgstr "إجمالي قيمة المخزون" + +#~ msgid "New Cars in Inventory" +#~ msgstr "إجمالي السيارات الجديدة في المخزون" + +#~ msgid "Used Cars in Inventory" +#~ msgstr "إجمالي السيارات المستخدمة في المخزون" + +#~ msgid "New Cars Inventory Value" +#~ msgstr "إجمالي قيمة السيارات الجديدة في المخزون" + +#~ msgid "Used Cars Inventory Value" +#~ msgstr "قيمة السيارات المستخدمة في المخزون" + +#~ msgid "Aging Inventory (> 60 days)" +#~ msgstr "المخزون القديم (أكثر من 60 يوم)" + +#, python-format +#~ msgid "" +#~ "\n" +#~ " Financial Health KPIs (%(start_date)s - %(end_date)s)\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " اتجاهات الصحة المالية (%(start_date)s - %(end_date)s)\n" +#~ " " + +#~ msgid "Total VAT from Services" +#~ msgstr "الضريبة الإجمالية من الخدمات" + +#~ msgid "Total Revenue Generated" +#~ msgstr "الإيرادات الإجمالية الناتجة" + +#~ msgid "Total VAT Collected" +#~ msgstr "إجمالي الضريبة المحصلة" + +#~ msgid "Gross Profit" +#~ msgstr "الربح الصافي" + +#~ msgid "Sales Dashboard" +#~ msgstr "لوحة مبيعات السيارات" + +#~ msgid "Total Leads: " +#~ msgstr "إجمالي العملاء المحتمل" + +#~ msgid "Lead Conversion Funnel" +#~ msgstr "مهرجان تحويل العملاء المحتملين إلى عملاء" + +#~ msgid "Number of Leads" +#~ msgstr "عدد العملاء المحتمل" + +#, fuzzy +#~| msgid "Opportunities" +#~ msgid "Number of Opportunities" +#~ msgstr "الفرص" + +#~ msgid "Car Makes" +#~ msgstr "ماركات السيارات" + +#~ msgid "Select Car Makes You Sell" +#~ msgstr "اختر ماركات السيارات التي تبيعها" + +#~ msgid "Billing Information" +#~ msgstr "معلومات الفوترة" + +#~ msgid "Plans History" +#~ msgstr "سجل المدفوعات" + +#, fuzzy +#~| msgid "last login" +#~ msgid "Last login" +#~ msgstr "آخر تسجيل دخول" + +#~ msgid "Plan & Subscription" +#~ msgstr "الاشتراكات" + +#~ msgid "Company Details" +#~ msgstr "تفاصيل السيارة" + +#~ msgid "Car Brands" +#~ msgstr "نقل السيارة" + +#, fuzzy +#~| msgid "No Action" +#~ msgid "No Active Plan" +#~ msgstr "لا يوجد إجراء" + +#~ msgid "Active until" +#~ msgstr "نشط حتى" + +#~ msgid "Please subscribe or renew your plan to continue using our services." +#~ msgstr "يرجى الاشتراك أو تجديد خطتك لاستمرار استخدام خدماتنا." + +#, fuzzy +#~| msgid "Subscribe" +#~ msgid "Subscribe Now" +#~ msgstr "الاشتراك" + +#~ msgid "Renew" +#~ msgstr "تجديد" + +#~ msgid "Upgrade Plan" +#~ msgstr "ترقية الخطة" + +#~ msgid "Manage Users & Cars" +#~ msgstr "إدارة المجموعات والأذونات" + +#~ msgid "Contact support to increase your limits" +#~ msgstr "اتصل بدعم لزيادة الباقة" + +#~ msgid "Update VAT" +#~ msgstr "تم التحديث" + +#~ msgid "Makes you are selling" +#~ msgstr "الماركات التي تبيعها" + +#~ msgid "No car makes selected." +#~ msgstr "لم يتم اختيار أي عضو من الفريق." + +#~ msgid "Select Makes" +#~ msgstr "اختر العلامات التجارية" + +#~ msgid "Appointment Request Notification" +#~ msgstr "إشعار طلب موعد" + +#~ msgid "New Appointment Request" +#~ msgstr "طلب موعد جديد" + +#~ msgid "Dear Admin," +#~ msgstr "عزيزي المسؤول،" + +#~ msgid "You have received a new appointment request. Here are the details:" +#~ msgstr "لقد تلقيت طلب موعد جديد. إليك التفاصيل:" + +#~ msgid "Time" +#~ msgstr "الوقت" + +#~ msgid "Please review the appointment request and take the necessary action." +#~ msgstr "يرجى مراجعة طلب الموعد واتخاذ الإجراء اللازم." + +#~ msgid "" +#~ "This is an automated message. Please do not reply directly to this email." +#~ msgstr "هذه رسالة تلقائية. يرجى عدم الرد مباشرة على هذا البريد الإلكتروني." + +#~ msgid "Appointment Reminder" +#~ msgstr "تذكير بالموعد" + +#~ msgid "Dear" +#~ msgstr "عزيزي/عزيزتي" + +#~ msgid "Dear Administrator," +#~ msgstr "عزيزي المسؤول،" + +#~ msgid "This is a reminder for your upcoming appointment." +#~ msgstr "هذه تذكرة بموعدك القادم." + +#~ msgid "" +#~ "If you need to reschedule, please click the button below or contact us " +#~ "for further assistance." +#~ msgstr "" +#~ "إذا كنت بحاجة إلى إعادة الجدولة، يرجى النقر على الزر أدناه أو الاتصال بنا " +#~ "للحصول على مزيد من المساعدة." + +#~ msgid "Reschedule Appointment" +#~ msgstr "إعادة جدولة الموعد" + +#~ msgid "Thank you for choosing us!" +#~ msgstr "شكرًا لاختيارك لنا!" + +#~ msgid "" +#~ "Please ensure the appointment setup is complete and ready for the client." +#~ msgstr "يرجى التأكد من أن إعداد الموعد مكتمل وجاهز للعميل." + +#~ msgid "Appointment Reschedule Confirmation" +#~ msgstr "تأكيد إعادة جدولة الموعد" + +#~ msgid "Appointment Reschedule" +#~ msgstr "إعادة جدولة الموعد" + +#~ msgid "Hi" +#~ msgstr "مرحبًا" + +#~ msgid "" +#~ "You have requested to reschedule your appointment. Please review the " +#~ "changes below and confirm:" +#~ msgstr "لقد طلبت إعادة جدولة موعدك. يرجى مراجعة التغييرات أدناه والتأكيد:" + +#~ msgid "An appointment with" +#~ msgstr "موعد مع" + +#~ msgid "for the service" +#~ msgstr "لخدمة" + +#~ msgid "has been rescheduled." +#~ msgstr "تمت إعادة جدولته." + +#~ msgid "Reason for rescheduling:" +#~ msgstr "سبب إعادة الجدولة:" + +#~ msgid " to " +#~ msgstr " إلى " + +#~ msgid "Rescheduled Appointment:" +#~ msgstr "الموعد المعاد جدولته:" + +#~ msgid "" +#~ "This link will expire in 5 minutes. If you do not confirm within this " +#~ "time frame, you will need to submit a new reschedule request." +#~ msgstr "" +#~ "ستنتهي صلاحية هذا الرابط في غضون 5 دقائق. إذا لم تؤكد خلال هذه الفترة " +#~ "الزمنية، ستحتاج إلى تقديم طلب إعادة جدولة جديد." + +#~ msgid "Thank you for choosing us." +#~ msgstr "شكرًا لاختيارك لنا." + +#, fuzzy, python-format +#~| msgid "" +#~| "\n" +#~| " To activate your account and set " +#~| "your password, please use the following secure\n" +#~| " link: Set Your Password. Please\n" +#~| " note that this link will expire " +#~| "in 2 days for your security.\n" +#~| " " +#~ msgid "" +#~ "\n" +#~ " To activate your account " +#~ "and set your password, please use the following secure\n" +#~ " link: Set Your Password. " +#~ "Please\n" +#~ " note that this link will " +#~ "expire in 2 days for your security.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " لتفعيل حسابك وتعيين كلمة المرور، " +#~ "يرجى استخدام الرابط الآمن التالي: تعيين كلمة المرور. يرجى\n" +#~ " ملاحظة أن هذا الرابط سينتهي " +#~ "صلاحيته خلال يومين لضمان الأمان.\n" +#~ " " + +#~ msgid "" +#~ "If your plans change and you need to reschedule your appointment, you can " +#~ "easily do so by following this link: " +#~ msgstr "" +#~ "إذا تغيرت خططك واحتجت إلى إعادة جدولة موعدك، يمكنك بسهولة القيام بذلك عبر " +#~ "اتباع هذا الرابط: " + +#~ msgid "Support" +#~ msgstr "الدعم" + +#, fuzzy +#~| msgid "" +#~| "\n" +#~| " Should you have any inquiries or require " +#~| "further assistance, our support team is here to\n" +#~| " help. You can reach us anytime.\n" +#~| " " +#~ msgid "" +#~ "\n" +#~ " Should you have any inquiries or " +#~ "require further assistance, our support team is here to\n" +#~ " help. You can reach us anytime.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " إذا كان لديك أي استفسارات أو كنت بحاجة " +#~ "إلى مزيد من المساعدة، فإن فريق الدعم لدينا هنا\n" +#~ " لمساعدتك. يمكنك التواصل معنا في أي وقت.\n" +#~ " " + +#~ msgid "" +#~ "We look forward to serving you and ensuring that your experience with us " +#~ "is both rewarding and satisfactory." +#~ msgstr "نتطلع لخدمتك وضمان أن تكون تجربتك معنا مُرضية ومجزية." + +#~ msgid "Warm regards" +#~ msgstr "أطيب التحيات" + +#~ msgid "The Team" +#~ msgstr "الفريق" + +#, fuzzy +#~| msgid "This is a reminder for your upcoming appointment." +#~ msgid "This is a friendly reminder for your upcoming schedule" +#~ msgstr "هذه تذكرة بموعدك القادم." + +#~ msgid "Please be prepared for your schedule" +#~ msgstr "يرجى التحضير لجدولك" + +#~ msgid "Thank you" +#~ msgstr "شكرًا،" + +#, fuzzy +#~| msgid "The Team at %(site_name)s" +#~ msgid "The team at Tenhal" +#~ msgstr "فريق العمل في %(site_name)s" + +#, fuzzy +#~| msgid "" +#~| "This is an automated message. Please do not reply directly to this email." +#~ msgid "This is an automated reminder. Please do not reply to this email." +#~ msgstr "هذه رسالة تلقائية. يرجى عدم الرد مباشرة على هذا البريد الإلكتروني." + +#, fuzzy +#~| msgid "The Team at %(site_name)s" +#~ msgid " The Team at Tenhal" +#~ msgstr "فريق العمل في %(site_name)s" + +#, fuzzy +#~| msgid "" +#~| "This is an automated message. Please do not reply directly to this email." +#~ msgid "This is an automated reminder. Please do not reply to this email" +#~ msgstr "هذه رسالة تلقائية. يرجى عدم الرد مباشرة على هذا البريد الإلكتروني." + +#~ msgid "No entries yet. Add one now!" +#~ msgstr "لا يوجد أي مدخلات بعد. أضف واحد الآن!" + +#~ msgid "400" +#~ msgstr "400" + +#~ msgid "Go Back" +#~ msgstr "العودة" + +#, fuzzy +#~| msgid "Forbidden" +#~ msgid "Access Forbidden!" +#~ msgstr "ممنوع" + +#~ msgid "View Group" +#~ msgstr "عرض المجموعة" + +#~ msgid "Are you sure you want to delete this group?" +#~ msgstr "هل أنت متأكد أنك تريد حذف هذه المجموعة؟" + +#~ msgid "Group Details" +#~ msgstr "تفاصيل المجموعة" + +#, fuzzy +#~| msgid "Products List" +#~ msgid "Groups List" +#~ msgstr "قائمة المنتجات" + +#, fuzzy +#~| msgid "User" +#~ msgid "No User" +#~ msgstr "المستخدم" + +#~ msgid "name" +#~ msgstr "الاسم" + +#~ msgid "No Permissions" +#~ msgstr "بدون أذونات" + +#~ msgid "Update Group" +#~ msgstr "تحديث المجموعة" + +#~ msgid "Add New Group" +#~ msgstr "إضافة مجموعة جديدة" + +#, fuzzy +#~| msgid "Update Group" +#~ msgid "Create Group" +#~ msgstr "تحديث المجموعة" + +#~ msgid "Groups" +#~ msgstr "المجموعات" + +#, fuzzy +#~| msgid "total Users" +#~ msgid "Total Users" +#~ msgstr "إجمالي المستخدمين" + +#, fuzzy +#~| msgid "Permission" +#~ msgid "View Permissions" +#~ msgstr "الإذن" + +#, fuzzy +#~| msgid "Add Permission" +#~ msgid "Add Permissions" +#~ msgstr "إضافة إذن" + +#, fuzzy +#~| msgid "Read Permissions" +#~ msgid "Search permissions..." +#~ msgstr "أذونات القراءة" + +#~ msgid "Checked items are currently assigned permissions" +#~ msgstr "العناصر المحددة حالياً لديها أذونات منسوبة" + +#, fuzzy +#~| msgid "Customer" +#~ msgid "Custom" +#~ msgstr "العميل" + +#~ msgid "Permissions will be updated immediately" +#~ msgstr "سيتم تحديث الأذونات على الفور" + +#~ msgid "Haikal DMS Refund Policy" +#~ msgstr "سياسة استرداد الأموال لنظام هيكل لإدارة المستندات" + +#~ msgid "" +#~ "This policy outlines the refund terms for Haikal DMS by Tenhal. We're " +#~ "committed to transparency and fairness in all our financial transactions." +#~ msgstr "" +#~ "توضح هذه السياسة شروط استرداد الأموال لنظام هيكل لإدارة معارض السيارات من " +#~ "شركة تنحل. نحن ملتزمون بالشفافية في جميع معاملاتنا المالية." + +#~ msgid "Special Offer: First Month Free" +#~ msgstr "عرض خاص: الشهر الأول مجاناً" + +#~ msgid "" +#~ "New customers can enjoy Haikal DMS completely free for the first month. " +#~ "No credit card required to start your trial. Experience all our features " +#~ "with no commitment." +#~ msgstr "" +#~ "يمكن للعملاء الجدد الاستمتاع بنظام هيكل لإدارة معارض السيارات مجاناً " +#~ "بالكامل في الشهر الأول. لا يتطلب بطاقة ائتمانية لبدء الفترة التجريبية. " +#~ "جرب جميع ميزاتنا دون أي التزام." + +#~ msgid "1. 30-Day Satisfaction Guarantee" +#~ msgstr "1. ضمان الرضا لمدة 30 يوماً" + +#~ msgid "" +#~ "We stand behind our product with a 30-day money-back guarantee. If you're not completely satisfied with Haikal DMS within 30 " +#~ "days of your initial paid subscription, we'll provide a full refund of " +#~ "your subscription fee." +#~ msgstr "" +#~ "نقف خلف منتجنا مع ضمان استرداد الأموال لمدة 30 يوماً. إذا " +#~ "لم تكن راضياً تماماً عن نظام هيكل لإدارة معارض السيارات خلال 30 يوماً من " +#~ "تاريخ اشتراكك المدفوع الأول، سنقوم بتوفير استرداد كامل لرسوم اشتراكك." + +#~ msgid "" +#~ "This guarantee applies to new customers only and excludes any non-" +#~ "refundable fees mentioned in section 3." +#~ msgstr "" +#~ "ينطبق هذا الضمان على العملاء الجدد فقط ويستثني أي رسوم غير قابلة " +#~ "للاسترداد المذكورة في القسم 3." + +#~ msgid "2. Refund Eligibility" +#~ msgstr "2. أهلية استرداد الأموال" + +#~ msgid "Refunds are provided under the following circumstances:" +#~ msgstr "يتم توفير استرداد الأموال في الظروف التالية:" + +#~ msgid "" +#~ "If our service consistently fails to perform as described and our " +#~ "technical support team is unable to resolve the issue within a reasonable " +#~ "timeframe." +#~ msgstr "" +#~ "إذا فشلت خدمتنا بشكل مستمر في الأداء كما هو موصوف وفريق الدعم الفني لدينا " +#~ "غير قادر على حل المشكلة في إطار زمني معقول." + +#~ msgid "Billing Errors:" +#~ msgstr "أخطاء الفوترة:" + +#~ msgid "" +#~ "For any incorrect, unauthorized, or duplicate charges on your account." +#~ msgstr "لأي رسوم غير صحيحة أو غير مصرح بها أو مكررة على حسابك." + +#~ msgid "Service Downtime:" +#~ msgstr "انقطاع الخدمة:" + +#~ msgid "" +#~ "If our service experiences significant downtime that exceeds our Service " +#~ "Level Agreement (SLA) commitments." +#~ msgstr "" +#~ "إذا واجهت خدمتنا انقطاعاً كبيراً يتجاوز التزاماتنا في اتفاقية مستوى الخدمة " +#~ "(SLA)." + +#~ msgid "3. Non-Refundable Items and Situations" +#~ msgstr "3. البنود والحالات غير القابلة لاسترداد الأموال" + +#~ msgid "The following are not eligible for refunds:" +#~ msgstr "البنود التالية غير مؤهلة لاسترداد الأموال:" + +#~ msgid "Change of Mind:" +#~ msgstr "تغيير الرأي:" + +#~ msgid "" +#~ "If you simply decide not to use the service after the 30-day guarantee " +#~ "period." +#~ msgstr "إذا قررت ببساطة عدم استخدام الخدمة بعد فترة الضمان لمدة 30 يوماً." + +#~ msgid "Recurring Subscription Payments:" +#~ msgstr "دفعات الاشتراك المتكررة:" + +#~ msgid "Payments made after the initial 30-day guarantee period." +#~ msgstr "الدفعات التي تتم بعد فترة الضمان الأولية لمدة 30 يوماً." + +#~ msgid "Partial Usage:" +#~ msgstr "الاستخدام الجزئي:" + +#~ msgid "" +#~ "We do not provide prorated refunds for partial months or years of service." +#~ msgstr "لا نقدم استرداداً متناسباً للأشهر أو السنوات الجزئية من الخدمة." + +#~ msgid "" +#~ "Fees for setup, customization, training, consultation, and other " +#~ "professional services are non-refundable." +#~ msgstr "" +#~ "رسوم الإعداد والتخصيص والتدريب والاستشارات وغيرها من الخدمات المهنية غير " +#~ "قابلة للاسترداد." + +#~ msgid "Third-Party Integrations:" +#~ msgstr "التكامل مع أطراف ثالثة:" + +#~ msgid "Costs associated with third-party services or integrations." +#~ msgstr "التكاليف المرتبطة بخدمات أطراف ثالثة أو تكاملاتها." + +#~ msgid "4. How to Request a Refund" +#~ msgstr "4. كيفية طلب استرداد الأموال" + +#~ msgid "To request a refund, please contact our Billing and Support team at" +#~ msgstr "لطلب استرداد الأموال، يرجى التواصل مع فريق الفوترة والدعم لدينا على" + +#~ msgid "with the following information:" +#~ msgstr "بالمعلومات التالية:" + +#~ msgid "Your full name and company name" +#~ msgstr "اسمك الكامل واسم الشركة" + +#~ msgid "Account ID and registered email address" +#~ msgstr "معرف الحساب وعنوان البريد الإلكتروني المسجل" + +#~ msgid "Invoice number and date of purchase" +#~ msgstr "رقم الفاتورة وتاريخ الشراء" + +#~ msgid "Detailed reason for your refund request" +#~ msgstr "سبب مفصل لطلب استرداد الأموال الخاص بك" + +#~ msgid "Any relevant screenshots or documentation supporting your claim" +#~ msgstr "أي لقطات شاشة أو وثائق ذات صلة تدعم مطالبتك" + +#~ msgid "" +#~ "Refund requests must be submitted within the 30-day guarantee period or " +#~ "within 15 days of a billing error." +#~ msgstr "" +#~ "يجب تقديم طلبات استرداد الأموال خلال فترة الضمان لمدة 30 يوماً أو خلال 15 " +#~ "يوماً من حدوث خطأ في الفوترة." + +#~ msgid "5. Refund Processing" +#~ msgstr "5. معالجة استرداد الأموال" + +#~ msgid "" +#~ "Once your refund request is approved, we will process it within " +#~ "5-7 business days. The refund will be issued to your " +#~ "original payment method. Please note that it may take additional time for " +#~ "the refund to appear in your account, depending on your financial " +#~ "institution's policies." +#~ msgstr "" +#~ "بمجرد الموافقة على طلب استرداد الأموال الخاص بك، سنقوم بمعالجته خلال " +#~ "5-7 أيام عمل. سيتم إصدار استرداد الأموال إلى طريقة الدفع " +#~ "الأصلية الخاصة بك. يرجى ملاحظة أنه قد يستغرق وقتاً إضافياً لظهور استرداد " +#~ "الأموال في حسابك، اعتماداً على سياسات مؤسستك المالية." + +#~ msgid "6. Account Termination and Data" +#~ msgstr "6. إنهاء الحساب والبيانات" + +#~ msgid "" +#~ "Upon approval of your refund request, your access to Haikal DMS will be " +#~ "terminated at the end of the current billing cycle. You are responsible " +#~ "for exporting all your data before the termination date. After account " +#~ "termination, we will retain your data for 30 days before permanent " +#~ "deletion, in case you wish to reactivate your account." +#~ msgstr "" +#~ "بعد الموافقة على طلب استرداد الأموال الخاص بك، سيتم إنهاء وصولك إلى نظام " +#~ "هيكل لإدارة المستندات في نهاية دورة الفوترة الحالية. أنت مسؤول عن تصدير " +#~ "جميع بياناتك قبل تاريخ الإنهاء. بعد إنهاء الحساب، سنحتفظ ببياناتك لمدة 30 " +#~ "يوماً قبل الحذف الدائم، في حال رغبت في إعادة تنشيط حسابك." + +#~ msgid "7. Policy Changes" +#~ msgstr "7. تغييرات السياسة" + +#~ msgid "" +#~ "Tenhal reserves the right to modify this refund policy at any time. Any " +#~ "changes will be effective immediately upon posting on our website. Your " +#~ "continued use of our services after any changes constitutes acceptance of " +#~ "the new policy." +#~ msgstr "" +#~ "تحتفظ شركة تنحل بالحق في تعديل سياسة استرداد الأموال هذه في أي وقت. ستكون " +#~ "أي التغييرات سارية المفعول فور نشرها على موقعنا الإلكتروني. استخدامك " +#~ "المستمر لخدماتنا بعد أي تغييرات يشكل قبولاً للسياسة الجديدة." + +#~ msgid "This policy was last updated on" +#~ msgstr "تم تحديث هذه السياسة في" + +#~ msgid "For questions about this policy, please contact us at" +#~ msgstr "للأسئلة حول هذه السياسة، يرجى التواصل معنا على" + +#, fuzzy +#~| msgid "HaikalBot" +#~ msgid "Haikal Bot" +#~ msgstr "هيكل بوت" + +#~ msgid "HaikalBot" +#~ msgstr "هيكل بوت" + +#~ msgid "Type your question..." +#~ msgstr "اكتب سؤالك..." + +#~ msgid "Chart displayed below." +#~ msgstr "تم عرض المخطط أدناه." + +#~ msgid "Haikalbot" +#~ msgstr "هيكل بوت" + +#, fuzzy +#~| msgid "AI Assistant" +#~ msgid "AI assistant" +#~ msgstr "المساعد الذكي" + +#~ msgid "How many cars are in inventory" +#~ msgstr "كم عدد السيارات في المخزون" + +#~ msgid "Show me sales analysis" +#~ msgstr "اعرض لي تحليل المبيعات" + +#~ msgid "What are the best-selling cars" +#~ msgstr "ما هي السيارات الأكثر مبيعًا" + +#~ msgid "Type your message here" +#~ msgstr "اكتب رسالتك هنا" + +#~ msgid "add car" +#~ msgstr "إضافة سيارة" + +#~ msgid "Stock" +#~ msgstr "المخزون" + +#~ msgid "purchase Orders" +#~ msgstr "أوامر الشراء" + +#~ msgid "Inventory List" +#~ msgstr "حجم المخزون" + +#~ msgid "crm" +#~ msgstr "إدارة علاقات العملاء" + +#~ msgid "leads" +#~ msgstr "الفرص" + +#~ msgid "leads Tracking" +#~ msgstr "متابعة العملاء المحتملين" + +#~ msgid "sales" +#~ msgstr "المبيعات" + +#~ msgid "quotations" +#~ msgstr "العروض" + +#~ msgid "Sale Orders" +#~ msgstr "اوامر البيع" + +#~ msgid "invoices" +#~ msgstr "الفواتير" + +#~ msgid "Financials" +#~ msgstr "البيانات المالية" + +#~ msgid "Bank Accounts" +#~ msgstr "الحسابات المصرفية" + +#~ msgid "Ledgers" +#~ msgstr "دفاتر الأستاذ" + +#~ msgid "Services" +#~ msgstr "الخدمات" + +#~ msgid "Expenses" +#~ msgstr "المصروفات" + +#~ msgid "vendors" +#~ msgstr "الموردين" + +#~ msgid "Cash Flow" +#~ msgstr "التدفق النقدي" + +#~ msgid "Income Statement" +#~ msgstr "بيان الدخل" + +#~ msgid "Balance Sheet" +#~ msgstr "الميزانية العمومية" + +#~ msgid "Car purchase Report" +#~ msgstr "تقارير شراء السيارات" + +#~ msgid "Haikal" +#~ msgstr "هيكل" + +#~ msgid "Logged in as " +#~ msgstr "المستخدم " + +#~ msgid "Hello, " +#~ msgstr "مرحبا" + +#~ msgid "Switch theme" +#~ msgstr "تبديل النمط" + +#~ msgid "profile" +#~ msgstr "الملف الشخصي" + +#~ msgid "Staff & Groups" +#~ msgstr "الموظفون والمجموعات" + +#~ msgid "Admin Managemnet" +#~ msgstr "إدارة المشرفين" + +#~ msgid "Help Center" +#~ msgstr "مركز المساعدة" + +#~ msgid "My Calendar" +#~ msgstr "تقويمي" + +#~ msgid "Privacy policy" +#~ msgstr "سياسة الخصوصية" + +#~ msgid "Terms" +#~ msgstr "الشروط" + +#~ msgid "Add Colors" +#~ msgstr "إضافة لون" + +#~ msgid "Select exterior and interior colors for" +#~ msgstr "اختر الألوان الخارجية والداخلية لـ" + +#, fuzzy +#~| msgid "Are you sure you want to delete this lead?" +#~ msgid "Are you absolutely sure you want to delete the car" +#~ msgstr "هل أنت متأكد أنك تريد حذف هذا العميل المحتمل؟" + +#, fuzzy +#~| msgid "This action cannot be undone." +#~ msgid "This action is permanent and cannot be undone." +#~ msgstr "لا يمكن التراجع عن هذا الإجراء." + +#, fuzzy +#~| msgid "Confirm Deletion" +#~ msgid "Confirm Delete" +#~ msgstr "تأكيد الحذف" + +#~ msgid "" +#~ "This car information is not complete , please add colors and finances " +#~ "both before making it ready for sale ." +#~ msgstr "" +#~ "معلومات هذه السيارة غير مكتملة، يرجى إضافة الألوان والبيانات المالية معًا " +#~ "قبل جعلها جاهزة للبيع." + +#, fuzzy +#~| msgid "" +#~| "This car information is not complete , please add colors and finances " +#~| "before making it ready for sale ." +#~ msgid "" +#~ "This car information is not complete , please add colors before making it " +#~ "ready for sale ." +#~ msgstr "" +#~ "معلومات هذه السيارة غير مكتملة، يرجى إضافة الألوان قبل جعلها جاهزة للبيع." + +#~ msgid "" +#~ "This car information is not complete , please add finances before making " +#~ "it ready for sale ." +#~ msgstr "" +#~ "معلومات هذه السيارة غير مكتملة، يرجى إضافة البيانات المالية قبل جعلها " +#~ "جاهزة للبيع." + +#~ msgid "Action Required , Please Approved The Tranfer Request Of This Car ." +#~ msgstr "الإجراء مطلوب، يرجى الموافقة على طلب نقل هذه السيارة." + +#~ msgid "" +#~ "Car Is In Transfer Process To Another Dealer, Please Wait For The " +#~ "Acceptance ." +#~ msgstr "السيارة قيد عملية النقل إلى تاجر آخر، يرجى انتظار القبول." + +#~ msgid "This car is reserved until " +#~ msgstr "هذه السيارة محجوزة حتى " + +#~ msgid "make" +#~ msgstr "الصانع" + +#~ msgid "model" +#~ msgstr "الموديل" + +#~ msgid "series" +#~ msgstr "السلسلة" + +#~ msgid "trim" +#~ msgstr "الفئة" + +#~ msgid "specifications" +#~ msgstr "المواصفات" + +#~ msgid "Our Showroom" +#~ msgstr "معرضنا" + +#~ msgid "No location available." +#~ msgstr "لا يوجد موقع متاح." + +#~ msgid "Cannot Edit, Car in Transfer." +#~ msgstr "لا يمكن التعديل، السيارة قيد النقل." + +#~ msgid "Financial Details" +#~ msgstr "التفاصيل المالية" + +#~ msgid "No finance details available." +#~ msgstr "لا توجد تفاصيل مالية متاحة." + +#~ msgid "Exterior" +#~ msgstr "الخارجي" + +#~ msgid "Interior" +#~ msgstr "الداخلي" + +#~ msgid "No color details available." +#~ msgstr "لا توجد تفاصيل ألوان متاحة." + +#~ msgid "Add Color" +#~ msgstr "إضافة لون" + +#~ msgid "Reservations Details" +#~ msgstr "تفاصيل الحجز" + +#~ msgid "Reserve" +#~ msgstr "حجز" + +#~ msgid "Transfer Details" +#~ msgstr "تفاصيل النقل" + +#~ msgid "From Showroom" +#~ msgstr "من صالة العرض" + +#~ msgid "To Showroom" +#~ msgstr "إلى صالة العرض" + +#, fuzzy +#~| msgid "Quotation is not ready for approval" +#~ msgid "waiting for approval" +#~ msgstr "العرض غير جاهز للموافقة." + +#~ msgid "waiting for dealer acceptance" +#~ msgstr "في انتظار قبول التاجر" + +#~ msgid "Approve" +#~ msgstr "الموافقة" + +#~ msgid "Are you sure you want to reserve this car?" +#~ msgstr "هل أنت متأكد أنك تريد حجز هذه السيارة؟" + +#, fuzzy +#~| msgid "created by" +#~ msgid " created by: " +#~ msgstr "تم الإنشاء بواسطة" + +#~ msgid "No specifications available." +#~ msgstr "لا توجد مواصفات متاحة." + +#~ msgid "Error loading specifications." +#~ msgstr "حدث خطأ أثناء تحميل المواصفات." + +#~ msgid "Car Finance Details" +#~ msgstr "التفاصيل المالية السيارة" + +#~ msgid "Finance Details for" +#~ msgstr "التفاصيل المالية لـ" + +#~ msgid "Scan VIN" +#~ msgstr "مسح رقم الهيكل" + +#~ msgid "Decode VIN" +#~ msgstr "تحليل رقم الهيكل" + +#~ msgid "Select" +#~ msgstr "اختيار" + +#~ msgid "options" +#~ msgstr "الخيارات" + +#~ msgid "Add to Inventory" +#~ msgstr "أضف السيارة إلى المخزون" + +#~ msgid "Options" +#~ msgstr "الخيارات" + +#~ msgid "equipment" +#~ msgstr "التجهيزات" + +#~ msgid "scanner" +#~ msgstr "الماسح الضوئي" + +#~ msgid "VIN will appear here." +#~ msgstr "رقم الهيكل سيظهر هنا." + +#~ msgid "Use OCR Fallback" +#~ msgstr "التعرف الآلي على الحروف" + +#~ msgid "Please enter a valid VIN." +#~ msgstr "الرجاء إدخال رقم هيكل صالح مكون من 17 حرفًا." + +#~ msgid "An error occurred while decoding the VIN." +#~ msgstr "حدث خطأ أثناء فك تشفير الهيكل" + +#~ msgid "Save and Add Another" +#~ msgstr "حفظ وإضافة آخر" + +#~ msgid "Save and Go to Inventory" +#~ msgstr "حفظ والانتقال إلى المخزون" + +#~ msgid "History" +#~ msgstr "التاريخ" + +#~ msgid "Showroom Location" +#~ msgstr "موقع صالة العرض" + +#~ msgid "No Color" +#~ msgstr "بدون لون" + +#~ msgid "No cars available." +#~ msgstr "لا توجد سيارات متاحة." + +#~ msgid "Add a Car" +#~ msgstr "إضافة سيارة" + +#, fuzzy +#~| msgid "Car Details" +#~ msgid "Car list" +#~ msgstr "تفاصيل السيارة" + +#~ msgid "search" +#~ msgstr "بحث" + +#~ msgid "select" +#~ msgstr "اختيار" + +#~ msgid "save" +#~ msgstr "حفظ" + +#~ msgid "Make not found for the decoded VIN." +#~ msgstr "لم يتم العثور على الشركة الصانعة الخاصة برقم الهيكل المدخل." + +#~ msgid "Please enter a valid 17-character VIN number." +#~ msgstr "الرجاء إدخال رقم هيكل صالح مكون من 17 حرفًا." + +#~ msgid "No options available." +#~ msgstr "لا توجد سيارات متاحة." + +#~ msgid "Error loading options." +#~ msgstr "خطأ في تحميل الخيارات." + +#~ msgid "Excel" +#~ msgstr "إكسل" + +#~ msgid "Inventory Ready" +#~ msgstr "المخزون جاهز" + +#, fuzzy +#~| msgid "Is Read" +#~ msgid "Ready" +#~ msgstr "تمت قراءته" + +#, fuzzy +#~| msgid "Not created yet" +#~ msgid "Not Ready" +#~ msgstr "لم يتم الإنشاء بعد" + +#, fuzzy +#~| msgid "No service found" +#~ msgid "No vehicles found" +#~ msgstr "لم يتم العثور على خدمة" + +#~ msgid "Car Transfer" +#~ msgstr "نقل السيارة" + +#~ msgid "Sell car to another dealer" +#~ msgstr "بيع السيارة لتاجر آخر" + +#~ msgid "Sell" +#~ msgstr "بيع" + +#~ msgid "Update Color" +#~ msgstr "تحديث اللون" + +#~ msgid "Add Color for" +#~ msgstr "إضافة لون الى" + +#~ msgid "Color Type" +#~ msgstr "نوع اللون" + +#, fuzzy +#~| msgid "Inventory Status" +#~ msgid "Inventory Stats" +#~ msgstr "حالة المخزون" + +#, fuzzy +#~| msgid "Powered by" +#~ msgid "Powered By Tenhal" +#~ msgstr "مدعوم من" + +#~ msgid "models" +#~ msgstr "الموديلات" + +#~ msgid "Trims" +#~ msgstr "الفئات" + +#~ msgid "No trims available" +#~ msgstr "لا يوجد فئات متاحة." + +#~ msgid "No models available." +#~ msgstr "لا توجد موديلات متاحة." + +#, fuzzy +#~| msgid "Inventory" +#~ msgid "Track Inventory" +#~ msgstr "المخزن" + +#~ msgid "Inventory Ordered" +#~ msgstr "المخزون جاهز" + +#~ msgid "No inventory in ordered status." +#~ msgstr "إجمالي المخزون المستلم." + +#~ msgid "Inventory In Transit" +#~ msgstr "إدارة المخزون" + +#~ msgid "No inventory in transit." +#~ msgstr "إجمالي المخزون المستلم." + +#~ msgid "Inventory Received" +#~ msgstr "المخزون جاهز" + +#~ msgid "No inventory in received status." +#~ msgstr "إجمالي المخزون المستلم." + +#~ msgid "You are reserving" +#~ msgstr "أنت تحجز" + +#~ msgid "Reservation Start Time" +#~ msgstr "وقت بدء الحجز" + +#~ msgid "Reservation End Time" +#~ msgstr "وقت انتهاء الحجز" + +#~ msgid "Scan Vehicle Code" +#~ msgstr "مسح رمز السيارة" + +#~ msgid "VIN / Barcode / QR Code" +#~ msgstr "رمز VIN / الباركود / رمز QR" + +#~ msgid "Start Scanning" +#~ msgstr "ابدأ المسح" + +#~ msgid "Switch Camera" +#~ msgstr "تبديل الكاميرا" + +#~ msgid "Scan" +#~ msgstr "مسح" + +#~ msgid "UOM" +#~ msgstr "وحدة القياس" + +#, fuzzy +#~| msgid "Old Value" +#~ msgid "Value" +#~ msgstr "القيمة القديمة" + +#, fuzzy +#~| msgid "Total users" +#~ msgid "Total Value" +#~ msgstr "إجمالي المستخدمين" + +#~ msgid "transfer car" +#~ msgstr "نقل السيارة" + +#~ msgid "Car Transfer Details" +#~ msgstr "تفاصيل نقل السيارة" + +#~ msgid "Car Transfer Approve" +#~ msgstr "الموافقة على نقل السيارة" + +#~ msgid "Are you sure?" +#~ msgstr "هل أنت متأكد؟" + +#~ msgid "Cancel Transfer" +#~ msgstr "إلغاء النقل" + +#~ msgid "Are you sure" +#~ msgstr "هل أنت متأكد" + +#~ msgid "VAT" +#~ msgstr "ضريبة القيمة المضافة" + +#~ msgid "Total Amount written" +#~ msgstr "المبلغ بالحروف" + +#~ msgid "only" +#~ msgstr "فقط لا غير" + +#~ msgid "Page Missing!" +#~ msgstr "الإذن" + +#~ msgid "But no worries! Our ostrich is looking everywhere" +#~ msgstr "لا تقلق! ننقرح في كل مكان" + +#~ msgid "Download transfer" +#~ msgstr "تحميل النقل" + +#~ msgid "Accept transfer" +#~ msgstr "قبول النقل" + +#~ msgid "Reject transfer" +#~ msgstr "رفض النقل" + +#~ msgid "Are you sure you want to accept this transfer?" +#~ msgstr "هل أنت متأكد أنك تريد قبول هذا النقل؟" + +#~ msgid "Are you sure you want to reject this transfer?" +#~ msgstr "هل أنت متأكد أنك تريد رفض هذا النقل؟" + +#~ msgid "Thank you for choosing us. We appreciate your business" +#~ msgstr "شكرًا لاختيارك لنا. نحن نقدر عملك معنا." + +#~ msgid "Unit Price" +#~ msgstr "سعر الوحدة" + +#~ msgid "If you have any questions, feel free to contact us at" +#~ msgstr "إذا كان لديك أي أسئلة، يرجى التواصل معنا على" + +#~ msgid "Thank you for your business" +#~ msgstr "شكراً لتعاملك معنا" + +#~ msgid "Add New Expense" +#~ msgstr "إضافة مصروف جديد" + +#~ msgid "Add Expense" +#~ msgstr "إضافة مصروف" + +#, fuzzy +#~| msgid "Event Details" +#~ msgid "Expense Detail" +#~ msgstr "تفاصيل الحدث" + +#, fuzzy +#~| msgid "User Information" +#~ msgid "Expense Information" +#~ msgstr "معلومات المستخدم" + +#, fuzzy +#~| msgid "Vat Amount" +#~ msgid "Default Amount" +#~ msgstr "مبلغ ضريبة القيمة المضافة" + +#~ msgid "Expense Account" +#~ msgstr "حساب المصروف" + +#~ msgid "Bill Number" +#~ msgstr "رقم الفاتورة" + +#~ msgid "Update Expense" +#~ msgstr "تحديث المصروف" + +#~ msgid "Item Number" +#~ msgstr "رقم العنصر" + +#~ msgid "Unit of Measure" +#~ msgstr "وحدة القياس" + +#, fuzzy +#~| msgid "Create Bill" +#~ msgid "Create Expense Bill" +#~ msgstr "إنشاء فاتورة" + +#, fuzzy +#~| msgid "No Entries found" +#~ msgid "No Expenses Found" +#~ msgstr "لم يتم العثور على أي مدخلات" + +#~ msgid "Update Service" +#~ msgstr "تحديث الخدمة" + +#~ msgid "Add New Service" +#~ msgstr "إضافة خدمة جديدة" + +#, fuzzy +#~| msgid "Company" +#~ msgid "My Company" +#~ msgstr "الشركة" + +#~ msgid "Taxable" +#~ msgstr "خاضع للضريبة" + +#, fuzzy +#~| msgid "Taxable" +#~ msgid "Non Taxable" +#~ msgstr "خاضع للضريبة" + +#, fuzzy +#~| msgid "Total Revenue Estimate" +#~ msgid "Total Revenue from this service" +#~ msgstr "الإيرادات الإجمالية المقدرة" + +#~ msgid "Add Service" +#~ msgstr "إضافة خدمة" + +#, fuzzy +#~| msgid "Service Details" +#~ msgid "service detail" +#~ msgstr "تفاصيل الخدمة" + +#~ msgid "No Services Found" +#~ msgstr "لم يتم العثور على خدمة" + +#~ msgid "View Bank Account" +#~ msgstr "عرض الحساب البنكي" + +#~ msgid "Are you sure you want to delete this bank account?" +#~ msgstr "هل أنت متأكد أنك تريد حذف هذا الحساب البنكي؟" + +#~ msgid "Bank Account Details" +#~ msgstr "تفاصيل الحساب البنكي" + +#~ msgid "Bank Account Name" +#~ msgstr "اسم الحساب البنكي" + +#~ msgid "Update Bank Account" +#~ msgstr "تحديث الحساب المصرفي" + +#~ msgid "Add New Bank Account" +#~ msgstr "إضافة حساب بنكي جديد" + +#~ msgid "Add Bank Account" +#~ msgstr "إضافة حساب بنكي" + +#~ msgid "Account Number" +#~ msgstr "رقم الحساب" + +#~ msgid "No Accounts Found" +#~ msgstr "لم يتم العثور على أي حسابات" + +#~ msgid "View Bill" +#~ msgstr "عرض الفاتورة" + +#~ msgid "Review Bill" +#~ msgstr "مراجعة الفاتورة" + +#~ msgid "Record Payment" +#~ msgstr "تسجيل عملية دفع" + +#~ msgid "Paid Amount" +#~ msgstr "المبلغ المدفوع" + +#~ msgid "Date Due" +#~ msgstr "تاريخ الاستحقاق" + +#~ msgid "Due in Days" +#~ msgstr "الاستحقاق بالأيام" + +#~ msgid "Is Past Due" +#~ msgstr "متأخر عن السداد" + +#~ msgid "Due Amount" +#~ msgstr "المبلغ الكلي" + +#~ msgid "Bill Date" +#~ msgstr "تاريخ الفاتورة" + +#~ msgid "Customer Name" +#~ msgstr "اسم العميل" + +#~ msgid "Vat Amount" +#~ msgstr "مبلغ ضريبة القيمة المضافة" + +#~ msgid "Grand Total" +#~ msgstr "الإجمالي" + +#, fuzzy +#~| msgid "Bill Items" +#~ msgid "Unit Items" +#~ msgstr "بنود الفاتورة" + +#~ msgid "Add More" +#~ msgstr "إضافة المزيد" + +#~ msgid "Bills" +#~ msgstr "الفواتير" + +#~ msgid "Bill Status" +#~ msgstr "حالة الفاتورة" + +#~ msgid "No bill found." +#~ msgstr "لم يتم العثور على فاتورة." + +#, fuzzy +#~| msgid "Bill Date" +#~ msgid "Bill Update" +#~ msgstr "تاريخ الفاتورة" + +#~ msgid "Mark As Review" +#~ msgstr "وضع قيد المراجعة" + +#~ msgid "Account Code" +#~ msgstr "رمز الحساب" + +#~ msgid "JE Number" +#~ msgstr "رقم القيد المحاسبي" + +#, fuzzy +#~| msgid "View Tranactions" +#~ msgid "view Transactions" +#~ msgstr "عرض المعالملات" + +#, fuzzy +#~| msgid "Back to CoA List" +#~ msgid "Back to COA List" +#~ msgstr "العودة إلى قائمة مخطط الحسابات" + +#~ msgid "Update Account" +#~ msgstr "تحديث الحساب" + +#~ msgid "New Account" +#~ msgstr "حساب جديد" + +#~ msgid "Assets" +#~ msgstr "الأصول" + +#~ msgid "COGS" +#~ msgstr "تكلفة البضائع المباعة" + +#~ msgid "Capital" +#~ msgstr "رأس المال" + +#~ msgid "Income" +#~ msgstr "الإيرادات" + +#~ msgid "Liabilities" +#~ msgstr "الالتزامات" + +#~ msgid "Are you sure you want to delete this Account?" +#~ msgstr "هل أنت متأكد أنك تريد حذف هذا الحساب؟" + +#~ msgid "View Journal Entries" +#~ msgstr "عرض إدخالات دفتر اليومية" + +#~ msgid "Accrue" +#~ msgstr "يتراكم" + +#~ msgid "Owed to You" +#~ msgstr "المبلغ المستحق لك" + +#~ msgid "Progressed" +#~ msgstr "متقدم" + +#~ msgid "Invoice Info" +#~ msgstr "معلومات الفاتورة" + +#~ msgid "This invoice is" +#~ msgstr "هذه الفاتورة هي" + +#, fuzzy +#~| msgid "No Invoice Found" +#~ msgid "Invoice Amount" +#~ msgstr "لم يتم العثور على فاتورة" + +#~ msgid "Void" +#~ msgstr "باطل" + +#~ msgid "New Invoice" +#~ msgstr "فاتورة جديدة" + +#~ msgid "Journal Entry Detail" +#~ msgstr "تفاصيل إدخال اليومية" + +#~ msgid "Locked" +#~ msgstr "مقفل" + +#~ msgid "Lock" +#~ msgstr "قفل" + +#~ msgid "UnLock" +#~ msgstr "إلغاء القفل" + +#~ msgid "Post" +#~ msgstr "نشر" + +#~ msgid "UnPost" +#~ msgstr "إلغاء النشر" + +#~ msgid "Create Journal Entry" +#~ msgstr "إنشاء إدخال يومية" + +#~ msgid "Journal Entries" +#~ msgstr "إدخالات دفتر اليومية" + +#~ msgid "Are you sure ?" +#~ msgstr "هل أنت متأكد؟" + +#~ msgid "Add Journal Entry" +#~ msgstr "إضافة قيد يومية" + +#~ msgid "Document Number" +#~ msgstr "رقم المستند" + +#~ msgid "Transactions" +#~ msgstr "المعاملات" + +#~ msgid "No Bank Accounts Found" +#~ msgstr "لم يتم العثور على أي حساب بنكي." + +#~ msgid "#" +#~ msgstr "#" + +#~ msgid "No Transactions Found" +#~ msgstr "لم يتم العثور على معاملات" + +#, fuzzy +#~| msgid "Journal Entry Transactions" +#~ msgid "Jorunal Entry Transactions" +#~ msgstr "معاملات إدخال اليومية" + +#~ msgid "TX Type" +#~ msgstr "نوع المعاملة" + +#~ msgid "Done" +#~ msgstr "تم" + +#, fuzzy +#~| msgid "Delete Closing Entry" +#~ msgid "Delete Ledger Entry" +#~ msgstr "حذف القيد الختامي" + +#, fuzzy +#~| msgid "Order Details" +#~ msgid "ledger Detail" +#~ msgstr "تفاصيل الطلب" + +#~ msgid "Invoice List" +#~ msgstr "قائمة الفواتير" + +#~ msgid "Accounts Receivable" +#~ msgstr "الحسابات المدينة" + +#~ msgid "Deferred Revenue" +#~ msgstr "الإيرادات المؤجلة" + +#~ msgid "Invoice Items" +#~ msgstr "عناصر الفاتورة" + +#~ msgid "Cash Flow Statement" +#~ msgstr "بيان التدفقات النقدية" + +#~ msgid "Balance Sheet PDF" +#~ msgstr "الميزانية العمومية PDF" + +#~ msgid "Income Statement PDF" +#~ msgstr "بيان الدخل PDF" + +#~ msgid "Cash Flow Statement PDF" +#~ msgstr "بيان التدفقات النقدية PDF" + +#~ msgid "Invoice Transactions" +#~ msgstr "معاملات الفاتورة" + +#~ msgid "Create Ledger" +#~ msgstr "إنشاء دفتر الأستاذ" + +#~ msgid "Ledger" +#~ msgstr "دفتر الأستاذ" + +#~ msgid "Ledger Name" +#~ msgstr "اسم دفتر الأستاذ" + +#~ msgid "Hide" +#~ msgstr "إخفاء" + +#~ msgid "UnHide" +#~ msgstr "إلغاء الإخفاء" + +#~ msgid "Fiscal Year" +#~ msgstr "السنة المالية" + +#~ msgid "As of" +#~ msgstr "حتى" + +#~ msgid "All Makes" +#~ msgstr "جميع الماركات" + +#~ msgid "All Series" +#~ msgstr "جميع السلسلات" + +#~ msgid "All Years" +#~ msgstr "جميع السنوات" + +#~ msgid "Stock Types" +#~ msgstr "أنواع المخزون" + +#~ msgid "Total Revenue" +#~ msgstr "إجمالي الإيرادات" + +#~ msgid "Total VAT" +#~ msgstr "الضريبة الكلية" + +#~ msgid "Total Discount Amount" +#~ msgstr "مجموع مبلغ الخصم" + +#~ msgid "Download as CSV" +#~ msgstr "تنزيل كملف CSV" + +#~ msgid "VAT on Car" +#~ msgstr "الضريبة على السيارة" + +#~ msgid "Services Price" +#~ msgstr "سعر الخدمة" + +#~ msgid "VAT on Services" +#~ msgstr "الضريبة على الخدمات" + +#~ msgid "Final Total" +#~ msgstr "الإجمالي النهائي" + +#~ msgid "Invoice Number" +#~ msgstr "رقم الفاتورة" + +#~ msgid "Quarter" +#~ msgstr "ربع السنة" + +#~ msgid "Month" +#~ msgstr "الشهر" + +#~ msgid "thru" +#~ msgstr "عبر" + +#~ msgid "Go To Current Month" +#~ msgstr "الذهاب إلى الشهر الحالي" + +#~ msgid "Receivables" +#~ msgstr "المستحقات" + +#~ msgid "Payables" +#~ msgstr "الحسابات الدائنة" + +#~ msgid "Equity" +#~ msgstr "حقوق الملكية" + +#~ msgid "Cash" +#~ msgstr "نقداً" + +#~ msgid "Revenue" +#~ msgstr "الإيرادات" + +#~ msgid "Earnings (Loss)" +#~ msgstr "الأرباح (الخسارة)" + +#~ msgid "Net Receivables" +#~ msgstr "صافي الذمم المدينة" + +#~ msgid "According to the sales data" +#~ msgstr "وفقًا لبيانات المبيعات" + +#~ msgid "Financial Analysis" +#~ msgstr "التحليل المالي" + +#~ msgid "Debt to Equity" +#~ msgstr "نسبة الدين إلى حقوق الملكية" + +#~ msgid "Profitability" +#~ msgstr "الربحية" + +#~ msgid "Net Profit Margin" +#~ msgstr "هامش الربح الصافي" + +#~ msgid "Gross Profit Margin" +#~ msgstr "هامش الربح الإجمالي" + +#~ msgid "Car Purchase Report" +#~ msgstr "إنشاء أمر شراء" + +#~ msgid "Total Purchase Amount" +#~ msgstr "إجمالي مبلغ أمر الشراء" + +#~ msgid "Total Cars Purchased" +#~ msgstr "إجمالي مشتريات السيارات" + +#~ msgid "Total Purchase Orders" +#~ msgstr "إجمالي أوامر الشراء" + +#~ msgid "Detailed Purchase List" +#~ msgstr "قائمة مبيعات الشراء مفصلة" + +#~ msgid "Purchase ID" +#~ msgstr "رقم أمر الشراء" + +#~ msgid "Date Fulfilled" +#~ msgstr "تاريخ الاكتمال" + +#~ msgid "Cars Purchased" +#~ msgstr "السيارات المباعة" + +#, fuzzy +#~| msgid "Not scheduled" +#~ msgid "Not fulfilled" +#~ msgstr "لم يتم الجدولة" + +#~ msgid "Balance Through" +#~ msgstr "الرصيد حتى" + +#~ msgid "Total:" +#~ msgstr "المجموع:" + +#~ msgid "Retained Earnings" +#~ msgstr "الأرباح المحتجزة" + +#~ msgid "Total EQUITY" +#~ msgstr "إجمالي حقوق الملكية" + +#~ msgid "Total Equity + Liabilities" +#~ msgstr "إجمالي حقوق الملكية + الالتزامات" + +#~ msgid "Cash from Operating Activities" +#~ msgstr "النقد من الأنشطة التشغيلية" + +#~ msgid "Noncash Charges to Non-current Accounts" +#~ msgstr "تكاليف غير نقدية لحسابات غير جارية" + +#~ msgid "Non cash Charges to Current Accounts" +#~ msgstr "تكاليف غير نقدية لحسابات جارية" + +#~ msgid "Net Cash Provided by Operating Activities" +#~ msgstr "صافي النقد المقدم من الأنشطة التشغيلية" + +#~ msgid "Cash from Financing Activities" +#~ msgstr "النقد من الأنشطة التمويلية" + +#~ msgid "Net Cash Provided by Financing Activities" +#~ msgstr "صافي النقد المقدم من الأنشطة التمويلية" + +#~ msgid "Cash from Investing Activities" +#~ msgstr "النقد من الأنشطة الاستثمارية" + +#~ msgid "Net Cash Provided by Investing Activities" +#~ msgstr "صافي النقد المقدم من الأنشطة الاستثمارية" + +#~ msgid "Net Cashflow" +#~ msgstr "صافي التدفق النقدي" + +#~ msgid "Net Cash From" +#~ msgstr "صافي النقد من" + +#~ msgid "Balance" +#~ msgstr "الرصيد" + +#~ msgid "Operating Revenues" +#~ msgstr "الإيرادات التشغيلية" + +#~ msgid "Net Operating Revenues" +#~ msgstr "صافي الإيرادات التشغيلية" + +#~ msgid "Less: Cost of Goods Sold" +#~ msgstr "ناقص: تكلفة البضائع المباعة" + +#~ msgid "Net COGS" +#~ msgstr "صافي تكلفة البضائع المباعة" + +#~ msgid "Operating Expenses" +#~ msgstr "المصروفات التشغيلية" + +#~ msgid "Net Operating Expenses" +#~ msgstr "صافي المصروفات التشغيلية" + +#~ msgid "Net Operating Income (Loss)" +#~ msgstr "صافي الدخل التشغيلي (الخسارة)" + +#~ msgid "Other Revenues" +#~ msgstr "إيرادات أخرى" + +#~ msgid "Net Other Revenues" +#~ msgstr "صافي الإيرادات الأخرى" + +#~ msgid "Other Expenses" +#~ msgstr "مصروفات أخرى" + +#~ msgid "Net Other Expenses" +#~ msgstr "صافي النفقات الأخرى" + +#~ msgid "Net Other Income (Loss)" +#~ msgstr "صافي الدخل الآخر (الخسارة)" + +#~ msgid "through" +#~ msgstr "خلال" + +#~ msgid "Net Income" +#~ msgstr "صافي الدخل" + +#, python-format +#~ msgid "" +#~ "Your current plan is %(plan_name)s and it will expire on %(expire)s. " +#~ msgstr "خطة الاشتراك الحالية هي %(plan_name)s وستنتهي في %(expire)s." + +#, python-format +#~ msgid "Your current plan is %(plan_name)s. " +#~ msgstr "خطة الاشتراك الحالية هي %(plan_name)s." + +#, fuzzy +#~| msgid "The Team at %(site_name)s" +#~ msgid "The Team at Tenhal" +#~ msgstr "فريق العمل في %(site_name)s" + +#, python-format +#~ msgid "Your account %(user)s has new plan %(plan)s" +#~ msgstr "حسابك %(user)s يحتوي الآن على الخطة الجديدة %(plan)s" + +#~ msgid "Your account has just expired." +#~ msgstr "انتهت صلاحية حسابك للتو." + +#, python-format +#~ msgid "You can restore your current plan %(plan_name)s here:" +#~ msgstr "يمكنك استعادة خطتك الحالية %(plan_name)s هنا:" + +#~ msgid "or you can upgrade your plan here:" +#~ msgstr "أو يمكنك ترقية خطتك هنا:" + +#, python-format +#~ msgid "Your account %(user)s has just expired" +#~ msgstr "انتهت صلاحية حسابك %(user)s للتو" + +#, python-format +#~ msgid "" +#~ "Your account has just been extended by %(days)s days. Your current plan " +#~ "is %(plan_name)s and it will expire on %(expire)s. " +#~ msgstr "" +#~ "تم تمديد حسابك لمدة %(days)s يومًا. خطتك الحالية هي %(plan_name)s وستنتهي " +#~ "في %(expire)s." + +#~ msgid "" +#~ "An invoice will be sent with another e-mail, if billing data was provided." +#~ msgstr "سيتم إرسال فاتورة مع بريد إلكتروني آخر إذا تم توفير بيانات الفوترة." + +#, python-format +#~ msgid "Your account %(user)s has been extended by %(days)s days" +#~ msgstr "تم تمديد حسابك %(user)s لمدة %(days)s يومًا" + +#, python-format +#~ msgid "" +#~ "We are writing to inform you, that %(invoice_type)s %(invoice_number)s " +#~ "has been issued. You can view it and print it at:\n" +#~ "http://%(site_domain)s%(url)s\n" +#~ msgstr "" +#~ "نحيطك علمًا بأن %(invoice_type)s %(invoice_number)s قد تم إصدارها. يمكنك " +#~ "عرضها وطباعتها على الرابط:\n" +#~ "http://%(site_domain)s%(url)s\n" + +#~ msgid "Details of the order can be see on:" +#~ msgstr "يمكنك رؤية تفاصيل الطلب على الرابط:" + +#~ msgid "Order" +#~ msgstr "طلب" + +#, python-format +#~ msgid "%(invoice_type)s %(invoice_number)s has been issued for %(user)s" +#~ msgstr "تم إصدار %(invoice_type)s %(invoice_number)s لـ %(user)s" + +#, python-format +#~ msgid "Your account will expire in %(days)s days." +#~ msgstr "سينتهي حسابك في غضون %(days)s يومًا." + +#, python-format +#~ msgid "You can extend your current plan %(plan_name)s on page:" +#~ msgstr "يمكنك تمديد خطتك الحالية %(plan_name)s على الصفحة:" + +#, python-format +#~ msgid "Your account %(user)s will expire in %(days)s day" +#~ msgid_plural "Your account %(user)s will expire in %(days)s days" +#~ msgstr[0] "سينتهي حسابك %(user)s خلال %(days)s يوم." +#~ msgstr[1] "سينتهي حسابك %(user)s خلال %(days)s يومين." +#~ msgstr[2] "سينتهي حسابك %(user)s خلال %(days)s أيام." +#~ msgstr[3] "سينتهي حسابك %(user)s خلال %(days)s أيام." +#~ msgstr[4] "سينتهي حسابك %(user)s خلال %(days)s أيام." +#~ msgstr[5] "سينتهي حسابك %(user)s خلال %(days)s أيام." + +#~ msgid "Update Organization" +#~ msgstr "تحديث المؤسسة" + +#~ msgid "Add New Organization" +#~ msgstr "إضافة مؤسسة جديدة" + +#~ msgid "add organization" +#~ msgstr "إضافة شركة" + +#, fuzzy +#~| msgid "Update Organization" +#~ msgid "Delete Organization" +#~ msgstr "تحديث المؤسسة" + +#~ msgid "Are you sure you want to delete this Organization?" +#~ msgstr "هل أنت متأكد أنك تريد حذف هذه الشركة؟" + +#~ msgid "An OTP has been sent to your email. Please enter it below" +#~ msgstr "" +#~ "تم إرسال رمز التحقق لمرة واحدة (OTP) إلى بريدك الإلكتروني. يرجى إدخاله " +#~ "أدناه." + +#~ msgid "Enter OTP" +#~ msgstr "أدخل رمز OTP" + +#~ msgid "OTP" +#~ msgstr "رمز التحقق (OTP)" + +#~ msgid "Showing" +#~ msgstr "عرض" + +#, fuzzy +#~| msgid " to " +#~ msgid "to" +#~ msgstr " إلى " + +#~ msgid "Scanner" +#~ msgstr "ماسح ضوئي" + +#~ msgid "Specifications" +#~ msgstr "المواصفات" + +#, fuzzy +#~| msgid "We couldn't process your payment. Please try again" +#~ msgid "" +#~ "We couldn't process your payment. Please review your information and try " +#~ "again." +#~ msgstr "تعذر معالجة دفعتك. يرجى المحاولة مرة أخرى" + +#~ msgid "Payment Successful" +#~ msgstr "تم الدفع بنجاح" + +#~ msgid "Your payment was successful" +#~ msgstr "تمت عملية الدفع بنجاح" + +#~ msgid "Activation successful" +#~ msgstr "تم التفعيل بنجاح" + +#~ msgid "" +#~ "\n" +#~ " Your panels will be available again soon.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " سيتم إعادة تفعيل لوحاتك قريبًا.\n" +#~ " " + +#~ msgid "" +#~ "\n" +#~ " Your account cannot by activated because your account exceeds " +#~ "plan limits. Please adjust usage of limits and then try to activate your " +#~ "account again.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " لا يمكن تفعيل حسابك لأن الحساب يتجاوز حدود الخطة. يرجى تعديل " +#~ "استخدام الحدود ثم حاول تفعيل حسابك مرة أخرى.\n" +#~ " " + +#~ msgid "Provide billing data" +#~ msgstr "تقديم بيانات الفوترة" + +#~ msgid "Billing data" +#~ msgstr "بيانات الفوترة" + +#~ msgid "Are you sure to delete billing info?" +#~ msgstr "هل أنت متأكد من حذف بيانات الفوترة؟" + +#~ msgid "Confirm order" +#~ msgstr "تأكيد الطلب" + +#~ msgid "" +#~ "If you downgrade your plan please remember that new lower limits are used " +#~ "immediately after\n" +#~ " finishing the order." +#~ msgstr "" +#~ "إذا قمت بخفض خطتك، يرجى ملاحظة أن الحدود الجديدة الأدنى ستُطبق فورًا بعد\n" +#~ " إكمال الطلب." + +#~ msgid "Continue" +#~ msgstr "متابعة" + +#~ msgid "VAT ID" +#~ msgstr "رقم ضريبة القيمة المضافة" + +#, fuzzy, python-format +#~| msgid "" +#~| "\n" +#~| " If this data is not correct please edit billing data before\n" +#~| " making an order.\n" +#~| " " +#~ msgid "" +#~ "\n" +#~ " If this data is not correct please edit billing data before\n" +#~ " making an order.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " إذا كانت هذه البيانات غير صحيحة، يرجى تعديل بيانات الفوترة قبل\n" +#~ " إجراء الطلب.\n" +#~ " " + +#, fuzzy, python-format +#~| msgid "" +#~| "\n" +#~| " Invoice will not be issued. If you need " +#~| "an invoice please provide\n" +#~| " billing data before making an order.\n" +#~| " " +#~ msgid "" +#~ "\n" +#~ " Invoice will not be issued. If you " +#~ "need an invoice please provide\n" +#~ " billing " +#~ "data before making an order.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " لن يتم إصدار فاتورة. إذا كنت بحاجة إلى فاتورة، " +#~ "يرجى تقديم\n" +#~ " بيانات الفوترة قبل إجراء الطلب.\n" +#~ " " + +#~ msgid "Plan" +#~ msgstr "الخطة" + +#~ msgid "Upgrade" +#~ msgstr "ترقية" + +#, fuzzy, python-format +#~| msgid "" +#~| "Your account has expired.\n" +#~| " Please extend your account." +#~ msgid "" +#~ "Your account has expired.\n" +#~ " Please extend your account." +#~ msgstr "" +#~ "لقد انتهت صلاحية حسابك.\n" +#~ " يرجى تمديد حسابك." + +#, fuzzy, python-format +#~| msgid "" +#~| "\n" +#~| " Your account is not active. Possibly you are over some " +#~| "limits.\n" +#~| " Try to activate your account.\n" +#~| " " +#~ msgid "" +#~ "\n" +#~ " Your account is not active. Possibly you are over " +#~ "some limits.\n" +#~ " Try to activate your account.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " حسابك غير نشط. ربما تجاوزت بعض الحدود.\n" +#~ " حاول تفعيل حسابك.\n" +#~ " " + +#, fuzzy, python-format +#~| msgid "" +#~| "\n" +#~| " Your account will expire soon (in %(days_to_expire)s " +#~| "days).\n" +#~| " We recommend to extend your " +#~| "account now.\n" +#~| " " +#~ msgid "" +#~ "\n" +#~ " Your account will expire soon (in %(days_to_expire)s " +#~ "days).\n" +#~ " We recommend to extend " +#~ "your account now.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " سينتهي حسابك قريبًا (خلال %(days_to_expire)s أيام).\n" +#~ " نوصي بتمديد حسابك الآن.\n" +#~ " " + +#~ msgid "Quotas" +#~ msgstr "الحصص" + +#~ msgid "yes" +#~ msgstr "نعم" + +#~ msgid "no" +#~ msgstr "لا" + +#~ msgid "Pricing" +#~ msgstr "السعر" + +#, fuzzy, python-format +#~| msgid "" +#~| "\n" +#~| " Unfortunately your current plan is not available any " +#~| "more. You need to upgrade your plan.\n" +#~| " " +#~ msgid "" +#~ "\n" +#~ " Unfortunately your current plan is not available any " +#~ "more. You need to upgrade your plan.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " للأسف، خطتك الحالية لم تعد متاحة. تحتاج إلى ترقية خطتك.\n" +#~ " " + +#~ msgid "Order Confirmation" +#~ msgstr "تأكيد الطلب" + +#~ msgid "Invoice (Duplicate)" +#~ msgstr "فاتورة (نسخة)" + +#~ msgid "COPY" +#~ msgstr "نسخة" + +#~ msgid "ORIGINAL" +#~ msgstr "أصل" + +#~ msgid "Issued" +#~ msgstr "تاريخ الإصدار" + +#~ msgid "Seller" +#~ msgstr "البائع" + +#~ msgid "Buyer" +#~ msgstr "المشتري" + +#~ msgid "Shipping Address" +#~ msgstr "عنوان الشحن" + +#~ msgid "Rebate" +#~ msgstr "الخصم" + +#~ msgid "Subtotal" +#~ msgstr "الإجمالي الفرعي" + +#~ msgid "VAT Amount" +#~ msgstr "مبلغ ضريبة القيمة المضافة" + +#~ msgid "units" +#~ msgstr "وحدات" + +#~ msgid "n/a" +#~ msgstr "غير متوفر" + +#~ msgid "Payment Information" +#~ msgstr "معلومات الدفع" + +#~ msgid "Electronic Payment" +#~ msgstr "دفع إلكتروني" + +#~ msgid "Payment Received" +#~ msgstr "تم استلام الدفع" + +#~ msgid "This document is not an invoice" +#~ msgstr "هذا المستند ليس فاتورة" + +#~ msgid "Reverse charge applied" +#~ msgstr "تم تطبيق الضريبة العكسية" + +#~ msgid "If you have any questions about this invoice, please contact us" +#~ msgstr "إذا كانت لديك أي أسئلة بخصوص هذه الفاتورة، يرجى الاتصال بنا" + +#~ msgid "Order Details" +#~ msgstr "تفاصيل الطلب" + +#~ msgid "Printable documents" +#~ msgstr "مستندات قابلة للطباعة" + +#~ msgid "Payment" +#~ msgstr "الدفع" + +#, fuzzy +#~| msgid "Payment Information" +#~ msgid "Payment completed on : " +#~ msgstr "معلومات الدفع" + +#~ msgid "Net price" +#~ msgstr "السعر الصافي" + +#~ msgid "VAT total" +#~ msgstr "إجمالي الضريبة" + +#~ msgid "Order completed" +#~ msgstr "تم اكتمال الطلب" + +#~ msgid "Plan valid from" +#~ msgstr "الخطة صالحة من" + +#~ msgid "Plan valid until" +#~ msgstr "الخطة صالحة حتى" + +#~ msgid "EU VAT" +#~ msgstr "ضريبة القيمة المضافة في الاتحاد الأوروبي" + +#~ msgid " VAT is not applied to order. " +#~ msgstr "لم يتم تطبيق الضريبة على الطلب." + +#~ msgid "Plans Orders" +#~ msgstr "طلبات الخطط" + +#~ msgid "Plan Purchase History" +#~ msgstr "سجل المدفوعات" + +#~ msgctxt "order created" +#~ msgid "Created" +#~ msgstr "تم الإنشاء" + +#~ msgctxt "order status" +#~ msgid "Status" +#~ msgstr "الحالة" + +#~ msgctxt "order completed" +#~ msgid "Completed" +#~ msgstr "مكتمل" + +#~ msgctxt "total amount, value" +#~ msgid "Total" +#~ msgstr "الإجمالي" + +#~ msgid "You do not have any orders so far." +#~ msgstr "ليس لديك أي طلبات حتى الآن." + +#~ msgid "Current Plan" +#~ msgstr "الخطة الحالية" + +#~ msgid "No Limit" +#~ msgstr "لا يوجد حد" + +#~ msgid "Buy" +#~ msgstr "شراء" + +#~ msgid "Free" +#~ msgstr "مجاني" + +#~ msgid "no expiry" +#~ msgstr "لا يوجد انتهاء" + +#, fuzzy, python-format +#~| msgid "" +#~| "\n" +#~| " This plan is not available anymore " +#~| "and cannot be extended.
\n" +#~| " You need to upgrade your account to " +#~| "any of currently " +#~| "available plans.\n" +#~| " " +#~ msgid "" +#~ "\n" +#~ "

\"This plan is no " +#~ "longer available.\"

\n" +#~ " \"Upgrade to current plans →\"\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " هذه الخطة لم تعد متاحة ولا يمكن " +#~ "تمديدها.
\n" +#~ " يجب عليك ترقية حسابك إلى إحدى الخطط المتاحة حاليًا.\n" +#~ " " + +#~ msgid "See our great value plans" +#~ msgstr "اطلع على خططنا ذات القيمة الرائعة" + +#~ msgid "Choose plan" +#~ msgstr "اختر الخطة" + +#~ msgid "Choose Your Plan" +#~ msgstr "اختر خطتك" + +#, fuzzy +#~| msgid "Vendor Info" +#~ msgid "Your Info" +#~ msgstr "معلومات المورد" + +#, fuzzy +#~| msgid "Select a Plan" +#~ msgid "1. Select a Plan" +#~ msgstr "اختر خطة" + +#, fuzzy +#~| msgid "Included" +#~ msgid "Includes:" +#~ msgstr "متضمن" + +#, fuzzy +#~| msgid "Enter Your Information" +#~ msgid "2. Enter Your Information" +#~ msgstr "أدخل معلوماتك" + +#, fuzzy +#~| msgid "Please enter an Arabic name." +#~ msgid "Please enter your first name." +#~ msgstr "يرجى إدخال اسم باللغة العربية." + +#, fuzzy +#~| msgid "Enter a valid email address." +#~ msgid "Please enter a valid email address." +#~ msgstr "أدخل عنوان بريد إلكتروني صالح." + +#, fuzzy +#~| msgid "Please enter a valid phone number" +#~ msgid "Please enter a valid 10-digit phone number." +#~ msgstr "يرجى إدخال رقم هاتف صالح" + +#, fuzzy +#~| msgid "Company" +#~ msgid "Company Name" +#~ msgstr "الشركة" + +#, fuzzy +#~| msgid "Payment Information" +#~ msgid "3. Payment Information" +#~ msgstr "معلومات الدفع" + +#~ msgid "Cardholder Name" +#~ msgstr "اسم حامل البطاقة" + +#, fuzzy +#~| msgid "Please enter a valid phone number" +#~ msgid "Please enter the cardholder name." +#~ msgstr "يرجى إدخال رقم هاتف صالح" + +#, fuzzy +#~| msgid "Please enter a valid credit card number" +#~ msgid "Please enter a valid 16-digit card number." +#~ msgstr "يرجى إدخال رقم بطاقة ائتمان صالح" + +#~ msgid "Expiry Date" +#~ msgstr "تاريخ الانتهاء" + +#, fuzzy +#~| msgid "Please enter a valid expiry date in MM/YY format" +#~ msgid "Please enter a valid expiry date (MM/YY)." +#~ msgstr "يرجى إدخال تاريخ انتهاء صلاحية صحيح بصيغة MM/YY" + +#~ msgid "CVV" +#~ msgstr "رمز الأمان (CVV)" + +#, fuzzy +#~| msgid "Please enter a valid VIN." +#~ msgid "Please enter a valid 3-digit CVV." +#~ msgstr "الرجاء إدخال رقم هيكل صالح مكون من 17 حرفًا." + +#, fuzzy +#~| msgid "Confirm Your Information" +#~ msgid "4. Confirm Your Information" +#~ msgstr "تأكيد معلوماتك" + +#~ msgid "User Information" +#~ msgstr "معلومات المستخدم" + +#~ msgid "Cardholder" +#~ msgstr "حامل البطاقة" + +#~ msgid "Expiry" +#~ msgstr "الانتهاء" + +#~ msgid "Previous" +#~ msgstr "السابق" + +#~ msgid "Purchase Order List" +#~ msgstr "أوامر الشراء" + +#~ msgid "Draft Date" +#~ msgstr "تاريخ المسودة" + +#~ msgid "Review Date" +#~ msgstr "تاريخ المراجعة" + +#~ msgid "Fulfilled Date" +#~ msgstr "تاريخ التنفيذ" + +#~ msgid "Amount Received" +#~ msgstr "المبلغ المستلم" + +#~ msgid "Mark as Fulfilled" +#~ msgstr "تمييز كمنفذ" + +#, fuzzy +#~| msgid "Purchase Order Detail" +#~ msgid "Purchase Order Delete" +#~ msgstr "نموذج أمر الشراء" + +#~ msgid "New Purchase Order" +#~ msgstr "أمر شراء جديد" + +#, fuzzy +#~| msgid "Is an item for inventory" +#~ msgid "Add New Item To Inventory" +#~ msgstr "هو عنصر للمخزون" + +#~ msgid "Purchase Order Items" +#~ msgstr "عناصر أمر الشراء" + +#~ msgid "Add Item" +#~ msgstr "إضافة عنصر" + +#~ msgid "Bill Paid?" +#~ msgstr "هل تم دفع الفاتورة؟" + +#~ msgid "PO Number" +#~ msgstr "رقم الطلب" + +#~ msgid " Delete" +#~ msgstr "حذف" + +#, fuzzy, python-format +#~| msgid "Are you sure you want to delete this user?" +#~ msgid "" +#~ "\n" +#~ " Are you sure you want to delete #%(po_number)s?\n" +#~ " " +#~ msgstr "هل أنت متأكد أنك تريد حذف هذا المستخدم؟" + +#~ msgid "Purchase Order Detail" +#~ msgstr "نموذج أمر الشراء" + +#, fuzzy +#~| msgid "Download PDF" +#~ msgid "Download PO EN" +#~ msgstr "تنزيل PDF" + +#~ msgid "View Purchase Order" +#~ msgstr "عرض أمر الشراء" + +#~ msgid "Update Purchase Order" +#~ msgstr "تعديل أمر الشراء" + +#~ msgid "Create Purchase Order" +#~ msgstr "إنشاء أمر شراء" + +#~ msgid "Purchase Orders" +#~ msgstr "أوامر الشراء" + +#~ msgid "Create New Purchase" +#~ msgstr "إنشاء طلب شراء جديد" + +#~ msgid "Inventory Items" +#~ msgstr "عناصر المخزون" + +#~ msgid "Fulfill the PO Before Viewing Inventory" +#~ msgstr "املأ أمر الشراء قبل عرض المخزون" + +#, fuzzy +#~| msgid "No staff members found." +#~ msgid "No purchase orders found." +#~ msgstr "لم يتم العثور على أعضاء فريق." + +#~ msgid "Create New Vendor" +#~ msgstr "إنشاء مورد جديد" + +#~ msgid "Contract" +#~ msgstr "العقد" + +#~ msgid "Avg Unit Price" +#~ msgstr "متوسط سعر الوحدة" + +#~ msgid "Total Contracted Cost" +#~ msgstr "إجمالي التكلفة المتعاقد عليها" + +#~ msgid "Is Data Uploaded ?" +#~ msgstr "هل تم رفع البيانات؟" + +#~ msgid "Upload Data" +#~ msgstr "رفع بيانات السيارات" + +#~ msgid "Billed" +#~ msgstr "مفوترة" + +#~ msgid "Total PO Amount" +#~ msgstr "إجمالي مبلغ أمر الشراء" + +#, fuzzy +#~| msgid "Bad Request" +#~ msgid "Recall Request" +#~ msgstr "طلب غير صالح" + +#, fuzzy +#~| msgid "Select Makes" +#~ msgid "Select Model" +#~ msgstr "اختر العلامات التجارية" + +#, fuzzy +#~| msgid "Select" +#~ msgid "Select Trim" +#~ msgstr "اختيار" + +#, fuzzy +#~| msgid "Year" +#~ msgid "Any Year" +#~ msgstr "السنة" + +#, fuzzy +#~| msgid "Confirm Cancellation" +#~ msgid "Confirm and Send Recall Notifications" +#~ msgstr "تأكيد الإلغاء" + +#, fuzzy +#~| msgid "Back to List" +#~ msgid "Back to Recall List" +#~ msgstr "العودة إلى القائمة" + +#, fuzzy +#~| msgid "Description" +#~ msgid "Description:" +#~ msgstr "الوصف" + +#~ msgid "Cars Affected" +#~ msgstr "السيارات المتأثرة" + +#, fuzzy +#~| msgid "Notifications" +#~ msgid "No notifications sent" +#~ msgstr "الإشعارات" + +#, fuzzy +#~| msgid "History" +#~ msgid "Recall History" +#~ msgstr "التاريخ" + +#, fuzzy +#~| msgid "Create Bill" +#~ msgid "Create Recall" +#~ msgstr "إنشاء فاتورة" + +#, fuzzy +#~| msgid "Current Asset" +#~ msgid "Sent At" +#~ msgstr "الأصول الحالية" + +#, fuzzy +#~| msgid "Expected Delivery" +#~ msgid "Affected Dealers" +#~ msgstr "موعد التسليم المتوقع" + +#, fuzzy +#~| msgid "Add Car" +#~ msgid "Affected Cars" +#~ msgstr "إضافة سيارة" + +#, fuzzy +#~| msgid "View Details" +#~ msgid "View details" +#~ msgstr "عرض التفاصيل" + +#, fuzzy +#~| msgid "No Entries found" +#~ msgid "No recalls found" +#~ msgstr "لم يتم العثور على أي مدخلات" + +#, fuzzy +#~| msgid "Email updated successfully!" +#~ msgid "Recall Initiated Successfully!" +#~ msgstr "تم تحديث البريد الإلكتروني بنجاح!" + +#, fuzzy +#~| msgid "User Management" +#~ msgid "Back to Recall Management" +#~ msgstr "إدارة المستخدمين" + +#, fuzzy +#~| msgid "Dealers" +#~ msgid "Dealership" +#~ msgstr "المعارض" + +#~ msgid "Password does not match. or length is less than 8 characters." +#~ msgstr "كلمة المرور لا تتطابق أو طولها أقل من 8 محارف." + +#, fuzzy +#~| msgid "Dealership Dashboard" +#~ msgid "Dealership Name" +#~ msgstr "لوحة القيادة الخاصة بي" + +#, fuzzy +#~| msgid "Enter a valid Saudi phone number (05XXXXXXXX or +9665XXXXXXXX)" +#~ msgid "Please enter a valid Saudi phone number (e.g., 05XXXXXXXX)" +#~ msgstr "أدخل رقم جوال سعودي صحيح 05XXXXXXXX" + +#, fuzzy +#~| msgid "Commercial Registration Number" +#~ msgid "Commercial Registration Number (CRN)" +#~ msgstr "رقم السجل التجاري" + +#~ msgid "Vehicle Registration Number (VRN)" +#~ msgstr "رقم التسجيل في ضريبة القيمة المضافة" + +#, fuzzy +#~| msgid "Customer Address" +#~ msgid "Business Address" +#~ msgstr "عنوان العميل" + +#~ msgid "You are all set!" +#~ msgstr "كل شيء جاهز!" + +#, fuzzy +#~| msgid "Now you can access your account" +#~ msgid "Now you can access your dealership account" +#~ msgstr "الآن يمكنك الوصول إلى حسابك" + +#~ msgid "anytime" +#~ msgstr "في أي وقت" + +#~ msgid "anywhere" +#~ msgstr "في أي مكان" + +#, fuzzy +#~| msgid "Registration" +#~ msgid "Complete Registration" +#~ msgstr "التسجيل" + +#, fuzzy +#~| msgid "An error occurred while decoding the VIN." +#~ msgid "Processing your registration" +#~ msgstr "حدث خطأ أثناء فك تشفير الهيكل" + +#, fuzzy +#~| msgid "Bank account created successfully" +#~ msgid "Dealership account created successfully" +#~ msgstr "تم إنشاء الحساب البنكي بنجاح." + +#~ msgid "Representative Details" +#~ msgstr "تفاصيل ممثل الشركة" + +#~ msgid "Add Representative" +#~ msgstr "إضافة ممثل شركة" + +#~ msgid "No representatives found." +#~ msgstr "لم يتم العثور على ممثلين للشركات." + +#~ msgid "Are you sure you want to Cancel this Estimate?" +#~ msgstr "هل أنت متأكد أنك تريد إلغاء هذا التقدير؟" + +#, fuzzy +#~| msgid "Mark as Approved" +#~ msgid "Mark As Approved" +#~ msgstr "وضع علامة معتمد" + +#~ msgid "Send Quotation" +#~ msgstr "إرسال عرض السعر" + +#~ msgid "Print EN" +#~ msgstr "طباعة باللغة الإنجليزية" + +#~ msgid "Print AR" +#~ msgstr "طباعة باللغة العربية" + +#~ msgid "Preview Sale Order" +#~ msgstr "معاينة أمر البيع" + +#~ msgid "Quotation Date" +#~ msgstr "تاريخ عرض السعر" + +#~ msgid "Quotation Status" +#~ msgstr "حالة عرض السعر" + +#~ msgid "Vat" +#~ msgstr "الضريبة" + +#~ msgid "Please add at least one car before creating a quotation." +#~ msgstr "يرجى إضافة سيارة واحدة على الأقل قبل إنشاء عرض السعر." + +#~ msgid "No Cars Found" +#~ msgstr "لم يتم العثور على سيارات" + +#~ msgid "Sale Order" +#~ msgstr "أمر بيع" + +#~ msgid "Estimate Number" +#~ msgstr "رقم التقدير" + +#~ msgid "Add Invoice" +#~ msgstr "إضافة فاتورة" + +#~ msgid "Accept" +#~ msgstr "قبول" + +#~ msgid "Owned" +#~ msgstr "متبقي" + +#~ msgid "Invoice Date" +#~ msgstr "تاريخ الفاتورة" + +#, fuzzy +#~| msgid "No Invoice Found" +#~ msgid "No invoices found." +#~ msgstr "لم يتم العثور على فاتورة" + +#, fuzzy +#~| msgid "No Invoice" +#~ msgid "No Invoices Yet" +#~ msgstr "لا توجد فاتورة" + +#, fuzzy +#~| msgid "Invoice Progress" +#~ msgid "Invoice Preview" +#~ msgstr "تقدم الفاتورة" + +#, fuzzy +#~| msgid "Payment" +#~ msgid "Add Payment" +#~ msgstr "الدفع" + +#~ msgid "Save Invoice" +#~ msgstr "حفظ الفاتورة" + +#, fuzzy +#~| msgid "No Accounts Found" +#~ msgid "No journal entry Found" +#~ msgstr "لم يتم العثور على أي حسابات" + +#~ msgid "Print" +#~ msgstr "طباعة" + +#~ msgid "Share" +#~ msgstr "مشاركة" + +#~ msgid "Not scheduled" +#~ msgstr "لم يتم الجدولة" + +#~ msgid "Vehicle Details" +#~ msgstr "تفاصيل المركبة" + +#~ msgid "km" +#~ msgstr "كم" + +#~ msgid "No vehicle assigned to this order" +#~ msgstr "لم يتم تخصيص مركبة لهذا الطلب" + +#~ msgid "Agreed Price" +#~ msgstr "السعر المتفق عليه" + +#~ msgid "Trade-In Value" +#~ msgstr "قيمة الاستبدال" + +#~ msgid "Loan Amount" +#~ msgstr "قيمة القرض" + +#~ msgid "Remaining Balance" +#~ msgstr "المبلغ المتبقي" + +#~ msgid "Documents" +#~ msgstr "المستندات" + +#~ msgid "Drag & drop files here or click to browse" +#~ msgstr "اسحب وأفلت الملفات هنا أو انقر للتصفح" + +#~ msgid "No documents uploaded yet" +#~ msgstr "لم يتم تحميل أي مستندات بعد" + +#~ msgid "Comments & Notes" +#~ msgstr "التعليقات والملاحظات" + +#~ msgid "Order Actions" +#~ msgstr "إجراءات الطلب" + +#, fuzzy +#~| msgid "Approved" +#~ msgid "Approve Order" +#~ msgstr "تمت الموافقة" + +#~ msgid "Order Status Timeline" +#~ msgstr "الجدول الزمني لحالة الطلب" + +#~ msgid "Changed by" +#~ msgstr "تم التغيير بواسطة" + +#~ msgid "No status history available" +#~ msgstr "لا يوجد سجل للحالة" + +#~ msgid "Not created yet" +#~ msgstr "لم يتم الإنشاء بعد" + +#~ msgid "Trade-In Vehicle" +#~ msgstr "مركبة الاستبدال" + +#~ msgid "Confirm Cancellation" +#~ msgstr "تأكيد الإلغاء" + +#~ msgid "Orders" +#~ msgstr "طلبات" + +#~ msgid "Order Number" +#~ msgstr "رقم الطلب" + +#~ msgid "For Quotation" +#~ msgstr "لعرض سعر" + +#, fuzzy +#~| msgid "No Cars Found" +#~ msgid "No Order Found" +#~ msgstr "لم يتم العثور على سيارات" + +#~ msgid "Purchase Order" +#~ msgstr "أمر شراء" + +#, fuzzy +#~| msgid "Additional Fee" +#~ msgid "Additionals :" +#~ msgstr "رسوم إضافية" + +#~ msgid "Signature" +#~ msgstr "التوقيع" + +#~ msgid "Make Payment" +#~ msgstr "إجراء الدفع" + +#~ msgid "Payment Already Made" +#~ msgstr "تم الدفع بالفعل" + +#~ msgid "Payment Number" +#~ msgstr "رقم عملية الدفع" + +#~ msgid "View Tranactions" +#~ msgstr "عرض المعالملات" + +#~ msgid "Customer Information" +#~ msgstr "معلومات العميل" + +#, fuzzy +#~| msgid "Pending" +#~ msgid "Pending Approval" +#~ msgstr "قيد الانتظار" + +#, fuzzy +#~| msgid "Financing" +#~ msgid "In Financing" +#~ msgstr "تمويل" + +#, fuzzy +#~| msgid "Bill Paid?" +#~ msgid "Partially Paid" +#~ msgstr "هل تم دفع الفاتورة؟" + +#, fuzzy +#~| msgid "fully paid" +#~ msgid "Fully Paid" +#~ msgstr "مدفوع بالكامل" + +#, fuzzy +#~| msgid "Expected Delivery" +#~ msgid "Pending Delivery" +#~ msgstr "موعد التسليم المتوقع" + +#, fuzzy +#~| msgid "Delivery Date" +#~ msgid "Delivered" +#~ msgstr "تاريخ التسليم" + +#, fuzzy +#~| msgid "Client Information" +#~ msgid "Vehicles Information" +#~ msgstr "معلومات العميل" + +#~ msgid "Vin" +#~ msgstr "رقمVIN" + +#, fuzzy +#~| msgid "Customer Information" +#~ msgid "Estimate Information" +#~ msgstr "معلومات العميل" + +#, fuzzy +#~| msgid "Invoice Configuration" +#~ msgid "Invoice Information" +#~ msgstr "تكوين الفاتورة" + +#, fuzzy +#~| msgid "Balance Type" +#~ msgid "Balance Due" +#~ msgstr "نوع الرصيد" + +#~ msgid "Amount Unearned" +#~ msgstr "المبلغ غير المكتسب" + +#~ msgid "Amount Receivable" +#~ msgstr "المبلغ المستحق الاستلام" + +#, fuzzy +#~| msgid "User Information" +#~ msgid "Ledger Information" +#~ msgstr "معلومات المستخدم" + +#, fuzzy +#~| msgid "Ledger Name" +#~ msgid "Ledger Number" +#~ msgstr "اسم دفتر الأستاذ" + +#, fuzzy +#~| msgid "Client Information" +#~ msgid "Delivery Information" +#~ msgstr "معلومات العميل" + +#, fuzzy +#~| msgid "Schedule Delivery" +#~ msgid "Actual Delivery" +#~ msgstr "جدولة التسليم" + +#, fuzzy +#~| msgid "Cancelled" +#~ msgid "Order Cancelled" +#~ msgstr "ملغى" + +#, fuzzy +#~| msgid "Cancellation Reason" +#~ msgid "Cancellation Date" +#~ msgstr "سبب الإلغاء" + +#, fuzzy +#~| msgid "reason" +#~ msgid "Reason" +#~ msgstr "السبب" + +#, fuzzy +#~| msgid "View Invoice" +#~ msgid "View Full Invoice" +#~ msgstr "عرض الفاتورة" + +#~ msgid "Customer Address" +#~ msgstr "عنوان العميل" + +#~ msgid "Customer Phone" +#~ msgstr "هاتف العميل" + +#, fuzzy +#~| msgid "Preview Sale Order" +#~ msgid "View Sales Order Detail" +#~ msgstr "معاينة أمر البيع" + +#~ msgid "New Item" +#~ msgstr "عنصر جديد" + +#~ msgid "Staff Profile" +#~ msgstr "الملف الشخصي للموظف" + +#~ msgid "Role" +#~ msgstr "الدور" + +#~ msgid "Per month" +#~ msgstr "شهريًا" + +#~ msgid "Max Users" +#~ msgstr "الحد الأقصى للمستخدمين" + +#~ msgid "Inventory Size" +#~ msgstr "حجم المخزون" + +#~ msgid "Subscribe" +#~ msgstr "الاشتراك" + +#~ msgid "Now" +#~ msgstr "الآن" + +#, fuzzy +#~| msgid "Back to list" +#~ msgid "Raise Ticket" +#~ msgstr "العودة إلى القائمة" + +#~ msgid "Create Support Ticket" +#~ msgstr "إنشاء تذكرة جديدة" + +#~ msgid "Need help?" +#~ msgstr "تطلب مساعدة؟" + +#~ msgid "Raise a ticket and we will get back to you as soon as possible." +#~ msgstr "قم بإنشاء تذكرة وسيتم التواصل معك في أقرب وقت ممكن." + +#, fuzzy +#~| msgid "Back to list" +#~ msgid "Raise a Ticket" +#~ msgstr "العودة إلى القائمة" + +#, fuzzy +#~| msgid "Travel Tickets" +#~ msgid "Ticket" +#~ msgstr "تذاكر السفر" + +#~ msgid "Priority:" +#~ msgstr "الأولوية" + +#, fuzzy +#~| msgid "Travel Tickets" +#~ msgid "My Tickets" +#~ msgstr "تذاكر السفر" + +#~ msgid "" +#~ "\n" +#~ " Our support team is ready to assist " +#~ "you. Raise a new ticket below, and we'll get back to you as soon as " +#~ "possible.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " فريق الدعم الخاص بنا جاهز لمساعدتك. " +#~ "قم برفع تذكرة جديدة أدناه، وسنعود إليك في أقرب وقت ممكن.\n" +#~ " " + +#~ msgid "Raise a New Ticket" +#~ msgstr "قم برفع تذكرة جديدة" + +#~ msgid "All your past and present tickets will appear here." +#~ msgstr "جميع التذاكر الخاصة بك ستظهر هنا." + +#, fuzzy +#~| msgid "Update Service" +#~ msgid "Update Ticket" +#~ msgstr "تحديث الخدمة" + +#~ msgid "Terms of use and privacy policy" +#~ msgstr "شروط الاستخدام وسياسة الخصوصية" + +#, fuzzy +#~| msgid "Start time" +#~ msgid "Start Guide Now" +#~ msgstr "وقت البدء" + +#, fuzzy +#~| msgid "Inactive" +#~ msgid "Interactive Guides" +#~ msgstr "غير نشط" + +#, fuzzy +#~| msgid "Start time" +#~ msgid "Start Guide" +#~ msgstr "وقت البدء" + +#, fuzzy +#~| msgid "No finance details available." +#~ msgid "No interactive guides available at this time." +#~ msgstr "لا توجد تفاصيل مالية متاحة." + +#~ msgid "Backup Tokens" +#~ msgstr "الرموز الاحتياطية" + +#~ msgid "" +#~ "Backup tokens can be used when your primary and backup phone numbers " +#~ "aren't available. The backup tokens below can be used for login " +#~ "verification. If you've used up all your backup tokens, you can generate " +#~ "a new set of backup tokens. Only the backup tokens shown below will be " +#~ "valid." +#~ msgstr "" +#~ "يمكن استخدام الرموز الاحتياطية عندما لا تكون أرقام هاتفك الأساسية " +#~ "والاحتياطية متاحة. يمكن استخدام الرموز الاحتياطية أدناه للتحقق عند تسجيل " +#~ "الدخول. إذا استهلكت جميع الرموز الاحتياطية، يمكنك إنشاء مجموعة جديدة. فقط " +#~ "الرموز الاحتياطية المعروضة أدناه ستكون صالحة." + +#~ msgid "Print these tokens and keep them somewhere safe." +#~ msgstr "اطبع هذه الرموز واحتفظ بها في مكان آمن." + +#~ msgid "Back to Account Security" +#~ msgstr "العودة إلى أمان الحساب" + +#~ msgid "Generate Tokens" +#~ msgstr "إنشاء رموز" + +#~ msgid "" +#~ "Use this form for entering backup tokens for logging in. These tokens " +#~ "have been generated for you to print and keep safe. Please enter one of " +#~ "these backup tokens to login to your account." +#~ msgstr "" +#~ "استخدم هذا النموذج لإدخال الرموز الاحتياطية لتسجيل الدخول. تم إنشاء هذه " +#~ "الرموز لك لطبعها والاحتفاظ بها في مكان آمن. يرجى إدخال أحد هذه الرموز " +#~ "الاحتياطية لتسجيل الدخول إلى حسابك." + +#~ msgid "Or, alternatively, use one of your other authentication methods:" +#~ msgstr "أو، بدلاً من ذلك، استخدم إحدى طرق المصادقة الأخرى:" + +#~ msgid "As a last resort, you can use a backup token:" +#~ msgstr "كحل أخير، يمكنك استخدام رمز احتياطي:" + +#~ msgid "Use Backup Token" +#~ msgstr "استخدام رمز احتياطي" + +#~ msgid "Permission Denied" +#~ msgstr "تم رفض الإذن" + +#~ msgid "" +#~ "The page you requested, enforces users to verify using two-factor " +#~ "authentication for security reasons. You need to enable these security " +#~ "features in order to access this page." +#~ msgstr "" +#~ "الصفحة التي طلبتها تتطلب من المستخدمين التحقق باستخدام المصادقة الثنائية " +#~ "لأسباب أمنية. تحتاج إلى تمكين هذه الميزات الأمنية للوصول إلى هذه الصفحة." + +#~ msgid "" +#~ "Two-factor authentication is not enabled for your account. Enable two-" +#~ "factor authentication for enhanced account security." +#~ msgstr "" +#~ "المصادقة الثنائية غير مفعلة لحسابك. قم بتمكين المصادقة الثنائية لتعزيز " +#~ "أمان الحساب." + +#~ msgid "Enable Two-Factor Authentication" +#~ msgstr "تمكين المصادقة الثنائية" + +#~ msgid "Add Backup Phone" +#~ msgstr "إضافة هاتف احتياطي" + +#~ msgid "" +#~ "You'll be adding a backup phone number to your account. This number will " +#~ "be used if your primary method of registration is not available." +#~ msgstr "" +#~ "ستقوم بإضافة رقم هاتف احتياطي إلى حسابك. سيتم استخدام هذا الرقم إذا لم " +#~ "يكن خيار التسجيل الأساسي متاحًا." + +#~ msgid "" +#~ "We've sent a token to your phone number. Please enter the token you've " +#~ "received." +#~ msgstr "لقد أرسلنا رمزًا إلى رقم هاتفك. يرجى إدخال الرمز الذي تلقيته." + +#~ msgid "" +#~ "You are about to take your account security to the next level. Follow the " +#~ "steps in this wizard to enable two-factor authentication." +#~ msgstr "" +#~ "أنت على وشك رفع أمان حسابك إلى مستوى أعلى. اتبع الخطوات في هذا المعالج " +#~ "لتمكين المصادقة الثنائية." + +#~ msgid "Please select which authentication method you would like to use." +#~ msgstr "يرجى اختيار طريقة المصادقة التي ترغب في استخدامها." + +#~ msgid "" +#~ "To start using a token generator, please use your smartphone to scan the " +#~ "QR code below. For example, use Google Authenticator." +#~ msgstr "" +#~ "لبدء استخدام مولد الرموز، يرجى استخدام هاتفك الذكي لمسح رمز QR أدناه. على " +#~ "سبيل المثال، استخدم تطبيق Google Authenticator." + +#~ msgid "" +#~ "Alternatively you can use the following secret to setup TOTP in your " +#~ "authenticator or password manager manually." +#~ msgstr "" +#~ "بدلاً من ذلك، يمكنك استخدام السر التالي لإعداد TOTP في تطبيق المصادقة أو " +#~ "مدير كلمات المرور الخاص بك يدويًا." + +#~ msgid "Then, enter the token generated by the app." +#~ msgstr "ثم، أدخل الرمز الذي تم إنشاؤه بواسطة التطبيق." + +#~ msgid "" +#~ "Please enter the phone number you wish to receive the text messages on. " +#~ "This number will be validated in the next step." +#~ msgstr "" +#~ "يرجى إدخال رقم الهاتف الذي ترغب في تلقي الرسائل النصية عليه. سيتم التحقق " +#~ "من هذا الرقم في الخطوة التالية." + +#~ msgid "" +#~ "Please enter the phone number you wish to be called on. This number will " +#~ "be validated in the next step." +#~ msgstr "" +#~ "يرجى إدخال رقم الهاتف الذي ترغب في تلقي المكالمات عليه. سيتم التحقق من " +#~ "هذا الرقم في الخطوة التالية." + +#~ msgid "" +#~ "We are calling your phone right now, please enter the digits you hear." +#~ msgstr "نقوم بالاتصال بهاتفك الآن، يرجى إدخال الأرقام التي تسمعها." + +#~ msgid "We sent you a text message, please enter the tokens we sent." +#~ msgstr "لقد أرسلنا لك رسالة نصية، يرجى إدخال الرموز التي أرسلناها." + +#~ msgid "" +#~ "We've encountered an issue with the selected authentication method. " +#~ "Please go back and verify that you entered your information correctly, " +#~ "try again, or use a different authentication method instead. If the issue " +#~ "persists, contact the site administrator." +#~ msgstr "" +#~ "واجهنا مشكلة في طريقة المصادقة التي اخترتها. يرجى العودة والتحقق من صحة " +#~ "المعلومات التي أدخلتها، ثم حاول مرة أخرى، أو استخدم طريقة مصادقة مختلفة. " +#~ "إذا استمرت المشكلة، يرجى الاتصال بمسؤول الموقع." + +#~ msgid "" +#~ "To identify and verify your YubiKey, please insert a token in the field " +#~ "below. Your YubiKey will be linked to your account." +#~ msgstr "" +#~ "لتحديد والتحقق من YubiKey الخاص بك، يرجى إدخال رمز في الحقل أدناه. سيتم " +#~ "ربط YubiKey بحسابك." + +#~ msgid "" +#~ "Congratulations, you've successfully enabled two-factor authentication." +#~ msgstr "تهانينا، لقد قمت بتمكين المصادقة الثنائية بنجاح." + +#~ msgid "" +#~ "However, it might happen that you don't have access to your primary token " +#~ "device. To enable account recovery, add a phone number." +#~ msgstr "" +#~ "ومع ذلك، قد يحدث أنك لا تستطيع الوصول إلى جهاز الرمز الأساسي. لتمكين " +#~ "استعادة الحساب، أضف رقم هاتف." + +#~ msgid "Add Phone Number" +#~ msgstr "إضافة رقم هاتف" + +#~ msgid "Disable Two-factor Authentication" +#~ msgstr "تعطيل المصادقة الثنائية" + +#~ msgid "" +#~ "You are about to disable two-factor authentication. This weakens your " +#~ "account security, are you sure?" +#~ msgstr "" +#~ "أنت على وشك تعطيل المصادقة الثنائية. سيؤدي هذا إلى تقليل أمان حسابك، هل " +#~ "أنت متأكد؟" + +#~ msgid "Disable" +#~ msgstr "تعطيل" + +#~ msgid "Account Security" +#~ msgstr "أمان الحساب" + +#, python-format +#~ msgid "Primary method: %(primary)s" +#~ msgstr "الطريقة الأساسية: %(primary)s" + +#~ msgid "Backup Phone Numbers" +#~ msgstr "أرقام الهواتف الاحتياطية" + +#~ msgid "" +#~ "If your primary method is not available, we are able to send backup " +#~ "tokens to the phone numbers listed below." +#~ msgstr "" +#~ "إذا لم تكن الطريقة الأساسية متاحة، يمكننا إرسال الرموز الاحتياطية إلى " +#~ "أرقام الهواتف المدرجة أدناه." + +#~ msgid "Unregister" +#~ msgstr "إلغاء التسجيل" + +#~ msgid "" +#~ "If you don't have any device with you, you can access your account using " +#~ "backup tokens." +#~ msgstr "" +#~ "إذا لم يكن لديك أي جهاز معك، يمكنك الوصول إلى حسابك باستخدام الرموز " +#~ "الاحتياطية." + +#, python-format +#~ msgid "You have only one backup token remaining." +#~ msgid_plural "You have %(counter)s backup tokens remaining." +#~ msgstr[0] "لم يتبق لديك سوى رمز احتياطي واحد." +#~ msgstr[1] "لم يتبق لديك سوى رمزين احتياطيين." +#~ msgstr[2] "لم يتبق لديك سوى %(counter)s رموز احتياطية." +#~ msgstr[3] "لم يتبق لديك سوى %(counter)s رموز احتياطية." +#~ msgstr[4] "لم يتبق لديك سوى %(counter)s رموز احتياطية." +#~ msgstr[5] "لم يتبق لديك سوى %(counter)s رموز احتياطية." + +#~ msgid "Show Codes" +#~ msgstr "إظهار الرموز" + +#~ msgid "Disable Two-Factor Authentication" +#~ msgstr "تعطيل المصادقة الثنائية" + +#~ msgid "" +#~ "However we strongly discourage you to do so, you can also disable two-" +#~ "factor authentication for your account." +#~ msgstr "" +#~ "ومع ذلك، لا ننصحك بفعل ذلك، ولكن يمكنك أيضًا تعطيل المصادقة الثنائية " +#~ "لحسابك." + +#~ msgid "Are you sure you want to delete this user?" +#~ msgstr "هل أنت متأكد أنك تريد حذف هذا المستخدم؟" + +#, fuzzy +#~| msgid "Arabic" +#~ msgid "Name (Arabic)" +#~ msgstr "العربية" + +#~ msgid "Group Name" +#~ msgstr "اسم المجموعة" + +#~ msgid "Update Staff" +#~ msgstr "تحديث الموظف" + +#~ msgid "Add New Staff" +#~ msgstr "إضافة موظف جديد" + +#~ msgid "Staffs" +#~ msgstr "الموظفون" + +#~ msgid "Manage Groups & Permissions" +#~ msgstr "أذونات القراءة" + +#, fuzzy +#~| msgid "phone number" +#~ msgid "Phone number" +#~ msgstr "رقم الهاتف" + +#~ msgid "No active plan, Please create a subscription plan." +#~ msgstr "لا يوجد اشتراك نشط، يرجى تفعيل اشتراكك." + +#~ msgid "Buy Plan" +#~ msgstr "شراء باقة " + +#~ msgid "Remember to choose a strong password." +#~ msgstr "تذكر اختيار كلمة مرور قوية." + +#~ msgid "Update Vendor" +#~ msgstr "تحديث المورد" + +#~ msgid "Add Vendor" +#~ msgstr "إضافة مورد" + +#~ msgid "Contact name" +#~ msgstr "اسم جهة الاتصال" + +#~ msgid "Are you sure you want to delete this vendor" +#~ msgstr "هل أنت متأكد أنك تريد حذف هذا المورد" + +#, fuzzy +#~| msgid "No Cars Found" +#~ msgid "No Vendors Found" +#~ msgstr "لم يتم العثور على سيارات" + +#~ msgid "View Vendor" +#~ msgstr "عرض المورد" + +#~ msgid "Vendor Details" +#~ msgstr "تفاصيل المورد" + +#~ msgid "There is no Purchase from this vendor yet" +#~ msgstr "لم يتم شراء أي شيء من هذا المورد بعد" + +#~ msgid "Bill Amount Paid" +#~ msgstr "المبلغ المدفوع" + +#~ msgid "Bill Amount Due" +#~ msgstr "قيمة الفاتورة" + +#~ msgid "No Bills Found For the Vendor : " +#~ msgstr "لم يتم العثور على فواتير لمورد : " + +#~ msgid "Features" +#~ msgstr "الميزات" + +#~ msgid "Subscriptions" +#~ msgstr "الاشتراكات" + +#~ msgid "Streamline" +#~ msgstr "تسهيل" + +#~ msgid "Your Car Dealership Operations" +#~ msgstr "عمليات معرض السيارات الخاص بك" + +#~ msgid "Because Inventory Needs Order" +#~ msgstr "لأن المخزون يحتاج إلى تنظيم" + +#~ msgid "" +#~ "Manage inventory, sales, transfers, and accounting seamlessly with Haikal." +#~ msgstr "قم بإدارة المخزون والمبيعات والتحويلات والمحاسبة بسلاسة مع هيكل." + +#~ msgid "Learn More" +#~ msgstr "تعرف على المزيد" + +#~ msgid "Empowering Your Dealership with Precision and Efficiency" +#~ msgstr "تمكين معرضك بالدقة والكفاءة" + +#~ msgid "" +#~ "Effortlessly manage your car inventory with real-time updates and " +#~ "intuitive tools." +#~ msgstr "" +#~ "قم بإدارة مخزون السيارات بسهولة مع التحديثات الفورية والأدوات البسيطة." + +#~ msgid "Seamless Accounting" +#~ msgstr "محاسبة سلسة" + +#~ msgid "Integrated double-entry accounting tailored for car dealers." +#~ msgstr "نظام محاسبة مزدوج القيد مدمج ومصمم خصيصًا لتجار السيارات." + +#~ msgid "Gain insights and make data-driven decisions for your business." +#~ msgstr "احصل على رؤى دقيقة واتخذ قرارات مستندة إلى البيانات لنشاطك التجاري." + +#~ msgid "Choose the Plan that Fits Your Needs" +#~ msgstr "اختر الخطة التي تناسب احتياجاتك" + +#~ msgid "" +#~ "Flexible plans designed to meet the unique needs of every dealership." +#~ msgstr "خطط مرنة مصممة لتلبية الاحتياجات الفريدة لكل معرض سيارات." + +#~ msgid "Why us" +#~ msgstr "لماذا نحن" + +#~ msgid "CRM" +#~ msgstr "إدارة علاقات العملاء" + +#~ msgid "Reporting" +#~ msgstr "التقارير" + +#~ msgid "" +#~ "Haikal empowers car dealers with a seamless, structured system to manage " +#~ "their inventory effortlessly, ensuring every vehicle is tracked, " +#~ "accounted for, and ready for sale with precision and efficiency." +#~ msgstr "" +#~ "يمكن هيكل معارض السيارات من إدارة مخزونهم بسهولة من خلال نظام منظم وسلس، " +#~ "مما يضمن تتبع كل مركبة وتسجيلها وجعلها جاهزة للبيع بدقة وكفاءة." + +#~ msgid "" +#~ "Specialized customer relationship management system designed for car " +#~ "dealers, offering streamlined sales." +#~ msgstr "" +#~ "نظام متخصص لإدارة علاقات العملاء مصمم لتجار السيارات، يوفر عمليات بيع " +#~ "سلسة ومنظمة." + +#~ msgid "Quarterly" +#~ msgstr "ربع سنوي" + +#~ msgid "Biannually" +#~ msgstr "نصف سنوي" + +#~ msgid "Annually" +#~ msgstr "سنوي" + +#~ msgid "Other features" +#~ msgstr "ميزات أخرى" + +#~ msgid "Find out other features included in Haikal" +#~ msgstr "اكتشف الميزات الأخرى المضمنة في هيكل" + +#~ msgid "Manage Everything from one place" +#~ msgstr "إدارة كل شيء من مكان واحد" + +#~ msgid "The Car is in the center of your business" +#~ msgstr "السيارة هي محور عملك" + +#~ msgid "Fully Integrated System" +#~ msgstr "نظام متكامل بالكامل" + +#~ msgid "Advanced Dashboards for better decisions" +#~ msgstr "لوحات تحكم متقدمة لاتخاذ قرارات أفضل" + +#~ msgid "All right reserved" +#~ msgstr "جميع الحقوق محفوظة" + +#~ msgid "This policy for Haikal DMS by Tenhal outlines refund conditions." +#~ msgstr "هذه السياسة لهيكل من تنحل وتحديد شروط رد الأموال." + +#~ msgid "" +#~ "Get a full refund of your initial subscription fee " +#~ "within 14 days of purchase if you're not satisfied. This " +#~ "is for new customers only and excludes non-refundable fees." +#~ msgstr "" +#~ "احصل على رد كامل لرسم اشتراكك الأولي الرسم الأولي للاشتراك في غضون 14 يوما من تاريخ الشراء إذا لم تكن راضيًا " +#~ "عنها. هذا للزبائن الجدد فقط ولا يشمل الرسوم غير القابلة للاسترداد." + +#~ msgid "Refunds are given for:" +#~ msgstr "تُمنح رد الأموال لما يلي:" + +#~ msgid "Service Failure:" +#~ msgstr "فشل الخدمة:" + +#~ msgid "If the service consistently fails and our support team can't fix it." +#~ msgstr "إذا فشل الخدمة باستمرار ولم يكن فريق الدعم لدينا قادرا على إصلاحها." + +#~ msgid "We don't offer refunds for:" +#~ msgstr "لا نمنح رد أموال لما يلي:" + +#~ msgid "One-Time Fees:" +#~ msgstr "الرسوم ذات مرة واحدة:" + +#~ msgid "" +#~ "with your company name, account ID, invoice number, and a detailed reason " +#~ "for the refund." +#~ msgstr " مع اسم الشركة، رقم حسابك، رقم الفاتورة، وسبب مفصل لرد الأموال." + +#~ msgid "" +#~ "Approved refunds are processed in 10-14 business days to " +#~ "your original payment method." +#~ msgstr "" +#~ "تتم معالجة رد الأموال المعتمدة في غضون 10-14 يوما عمل " +#~ "إلى طريقة الدفع الأصلية لديك." + +#~ msgid "" +#~ "Once a refund is issued, your access is revoked. You are responsible for " +#~ "exporting your data before termination." +#~ msgstr "" +#~ "عندما يتم إصدار رد أموال، يتوقف الوصول إلى حسابك. أنت مسؤول عن تصدير " +#~ "بياناتك قبل إلغاء الحساب." + +#~ msgid "" +#~ "You haven't added any entry yet. Click the button below to create your " +#~ "first one!" +#~ msgstr "" +#~ "لم تقم بإضافة أي %(value)s إلى حسابك بعد.\n" +#~ " أنقر على الزر أدناه لبدء استخدام الخدمة وإضافة " +#~ "%(value)s " + +#, fuzzy, python-format +#~| msgid "Create New Service" +#~ msgid "Create New %(value)s" +#~ msgstr "إنشاء خدمة جديدة" + +#~ msgid "Included" +#~ msgstr "متضمن" + +#~ msgid "" +#~ "Slug for the object. If not provided, it will be generated automatically." +#~ msgstr "المُعرّف الفريد للكائن. إذا لم يتم توفيره، فسيتم إنشاؤه تلقائيًا." + +#~ msgid "Unique slug for the opportunity." +#~ msgstr "المُعرّف الفريد للفرصة (slug)." + +#~ msgid "Add Group" +#~ msgstr "إضافة مجموعة" + +#~ msgid "actions" +#~ msgstr "الإجراءات" + +#~ msgid "create quotation" +#~ msgstr "إنشاء عرض" + +#, fuzzy, python-format +#~| msgid "" +#~| "\n" +#~| " Payment completed on: %(completed)s\n" +#~| " " +#~ msgid "" +#~ "\n" +#~ " Payment completed on: " +#~ "%(completed|date:\"F j, Y\")s\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " تم إتمام الدفع بتاريخ: %(completed)s\n" +#~ " " + +#~ msgid "PO List" +#~ msgstr "قائمة أوامر الشراء" + +#, fuzzy +#~| msgid "Are you sure you want to delete this user?" +#~ msgid "Are you sure you want to delete the Purchase Order" +#~ msgstr "هل أنت متأكد أنك تريد حذف هذا المستخدم؟" + +#, fuzzy +#~| msgid "Delete Purchase Order " +#~ msgid "Delete Purchase Order" +#~ msgstr "حذف أمر الشراء" + +#~ msgid "click here" +#~ msgstr "انقر هنا" + +#~ msgid "This email is already taken." +#~ msgstr "هذا البريد الإلكتروني مستخدم بالفعل." + +#~ msgid "Example value: 30, 60, 90, 120... (in minutes)" +#~ msgstr "قيمة مثال: 30، 60، 90، 120... (بالدقائق)" + +#~ msgid "Example value: 08:00:00, 09:00:00... (24-hour format)" +#~ msgstr "قيمة مثال: 08:00:00، 09:00:00... (بتنسيق 24 ساعة)" + +#~ msgid "Example value: 17:00:00, 18:00:00... (24-hour format)" +#~ msgstr "قيمة مثال: 17:00:00، 18:00:00... (بتنسيق 24 ساعة)" + +#~ msgid "Example value: 15, 30, 45, 60... (in minutes)" +#~ msgstr "قيمة مثال: 15، 30، 45، 60... (بالدقائق)" + +#~ msgid "Example: First Consultation" +#~ msgstr "مثال: الاستشارة الأولى" + +#~ msgid "We're excited to have you on board!" +#~ msgstr "نحن متحمسون لانضمامك إلينا!" + +#~ msgid "" +#~ "We're excited to have you on board! The next step is \n" +#~ "to pay for the booking. You have the choice to pay the whole amount or a " +#~ "down deposit.\n" +#~ "If you choose the deposit, you will have to pay the rest of the amount on " +#~ "the day of the booking." +#~ msgstr "" +#~ "نحن متحمسون لانضمامك إلينا! الخطوة التالية هي دفع الحجز. لديك خيار دفع " +#~ "المبلغ بالكامل أو دفعة مقدمة. إذا اخترت الدفعة المقدمة، سيتعين عليك دفع " +#~ "باقي المبلغ في يوم الحجز." + +#~ msgid "" +#~ "We're excited to have you on board! Thank you for booking us. The next " +#~ "step is to pay for\n" +#~ "the booking." +#~ msgstr "" +#~ "نحن متحمسون لانضمامك إلينا! شكرًا لحجزك معنا. الخطوة التالية هي دفع الحجز." + +#~ msgid "Appointment updated successfully." +#~ msgstr "تم تحديث الموعد بنجاح." + +#~ msgid "Full payment" +#~ msgstr "الدفع الكامل" + +#~ msgid "Indicates whether appointments for this service can be rescheduled." +#~ msgstr "يشير إلى ما إذا كان يمكن إعادة جدولة المواعيد لهذه الخدمة." + +#~ msgid "Minimum time for an appointment in minutes, recommended 30." +#~ msgstr "الحد الأدنى للوقت للموعد بالدقائق، الموصى به 30." + +#~ msgid "Time when the staff member starts working." +#~ msgstr "الوقت الذي يبدأ فيه الموظف العمل." + +#~ msgid "Time when the staff member stops working." +#~ msgstr "الوقت الذي يتوقف فيه الموظف عن العمل." + +#~ msgid "" +#~ "Time between now and the first available slot for the current day " +#~ "(doesn't affect tomorrow). e.g: If you start working at 9:00 AM and the " +#~ "current time is 8:30 AM and you set it to 30 minutes, the first available " +#~ "slot will be at 9:00 AM. If you set the appointment buffer time to 60 " +#~ "minutes, the first available slot will be at 9:30 AM." +#~ msgstr "" +#~ "الوقت بين الآن وأول فترة زمنية متاحة لليوم الحالي (لا يؤثر على الغد). " +#~ "مثال: إذا بدأت العمل الساعة 9:00 صباحًا وكان الوقت الحالي 8:30 صباحًا وقمت " +#~ "بتعيينه على 30 دقيقة، فسيكون أول وقت متاح في الساعة 9:00 صباحًا. إذا قمت " +#~ "بتعيين وقت تخزين المؤقت للموعد إلى 60 دقيقة، فسيكون أول وقت متاح في " +#~ "الساعة 9:30 صباحًا." + +#~ msgid "Saturday and Sunday" +#~ msgstr "السبت والأحد" + +#~ msgid "None" +#~ msgstr "لا شيء" + +#~ msgid "Start time must be before end time" +#~ msgstr "يجب أن يكون وقت البدء قبل وقت الانتهاء." + +#~ msgid "Start time and end time cannot be the same" +#~ msgstr "لا يمكن أن يكون وقت البدء والانتهاء متماثلين." + +#~ msgid "Date cannot be in the past" +#~ msgstr "لا يمكن أن يكون التاريخ في الماضي." + +#~ msgid "Duration cannot exceed the service duration" +#~ msgstr "لا يمكن أن تتجاوز المدة مدة الخدمة." + +#~ msgid "The previous date of the appointment before it was rescheduled." +#~ msgstr "التاريخ السابق للموعد قبل إعادة جدولته." + +#~ msgid "" +#~ "The previous start time of the appointment before it was rescheduled." +#~ msgstr "وقت البدء السابق للموعد قبل إعادة جدولته." + +#~ msgid "The previous end time of the appointment before it was rescheduled." +#~ msgstr "وقت الانتهاء السابق للموعد قبل إعادة جدولته." + +#~ msgid "" +#~ "The previous staff member of the appointment before it was rescheduled." +#~ msgstr "الموظف السابق للموعد قبل إعادة جدولته." + +#~ msgid "Reason for the appointment reschedule." +#~ msgstr "سبب إعادة جدولة الموعد." + +#~ msgid "The date and time the reschedule was confirmed." +#~ msgstr "التاريخ والوقت الذي تم فيه تأكيد إعادة الجدولة." + +#~ msgid "Appointment Reschedule History" +#~ msgstr "تاريخ إعادة جدولة المواعيد" + +#~ msgid "Appointment Reschedule Histories" +#~ msgstr "تواريخ إعادة جدولة المواعيد" + +#~ msgid "The date is not valid" +#~ msgstr "التاريخ غير صالح." + +#~ msgid "Does not have to be specific, just the city and the state" +#~ msgstr "لا يلزم أن تكون التفاصيل دقيقة، فقط المدينة والولاية." + +#, python-brace-format +#~ msgid "{staff_member} does not work on this day." +#~ msgstr "{staff_member} لا يعمل في هذا اليوم." + +#, python-brace-format +#~ msgid "" +#~ "The appointment start time is outside of {staff_member}'s working hours." +#~ msgstr "وقت بدء الموعد خارج ساعات عمل {staff_member}." + +#, python-brace-format +#~ msgid "{staff_member} already has an appointment at this time." +#~ msgstr "{staff_member} لديه موعد بالفعل في هذا الوقت." + +#, python-brace-format +#~ msgid "{staff_member} has a day off on this date." +#~ msgstr "{staff_member} لديه يوم عطلة في هذا التاريخ." + +#~ msgid "Time when we start working." +#~ msgstr "الوقت الذي نبدأ فيه العمل." + +#~ msgid "Time when we stop working." +#~ msgstr "الوقت الذي نتوقف فيه عن العمل." + +#~ msgid "" +#~ "Time between now and the first available slot for the current day " +#~ "(doesn't affect tomorrow)." +#~ msgstr "الوقت بين الآن وأول فترة متاحة لليوم الحالي (لا يؤثر على الغد)." + +#~ msgid "Name of your website." +#~ msgstr "اسم موقعك الإلكتروني." + +#~ msgid "Label for `Offered by` on the appointment page" +#~ msgstr "التسمية الخاصة بـ 'مقدم من' في صفحة الموعد" + +#~ msgid "" +#~ "Default maximum number of times an appointment can be rescheduled across " +#~ "all services." +#~ msgstr "" +#~ "الحد الأقصى الافتراضي لعدد مرات إعادة جدولة الموعد عبر جميع الخدمات." + +#~ msgid "" +#~ "Allows clients to change the staff member when rescheduling an " +#~ "appointment." +#~ msgstr "يسمح للعملاء بتغيير الموظف عند إعادة جدولة الموعد." + +#~ msgid "You can only create one Config object" +#~ msgstr "يمكنك إنشاء كائن إعداد واحد فقط." + +#~ msgid "Lead time must be before finish time" +#~ msgstr "يجب أن يكون وقت البدء قبل وقت الانتهاء." + +#~ msgid "Appointment buffer time cannot be negative" +#~ msgstr "لا يمكن أن يكون وقت التخزين المؤقت للموعد سالبًا." + +#~ msgid "Slot duration must be greater than 0" +#~ msgstr "يجب أن تكون مدة الفاصل الزمني أكبر من 0." + +#~ msgid "Start date must be before end date" +#~ msgstr "يجب أن يكون تاريخ البدء قبل تاريخ الانتهاء." + +#~ msgid "Appointment does not exist." +#~ msgstr "الموعد غير موجود." + +#~ msgid "You are not authorized to view this appointment." +#~ msgstr "غير مصرح لك بعرض هذا الموعد." + +#, python-brace-format +#~ msgid ": {client_name}" +#~ msgstr ": {client_name}" + +#~ msgid "You can only view your own profile" +#~ msgstr "يمكنك فقط عرض ملفك الشخصي." + +#~ msgid "Not authorized." +#~ msgstr "غير مصرح." + +#~ msgid "" +#~ "Here you can add/remove services offered by this staff member by " +#~ "modifying this section." +#~ msgstr "" +#~ "هنا يمكنك إضافة/إزالة الخدمات المقدمة من قبل هذا الموظف عن طريق تعديل هذا " +#~ "القسم." + +#~ msgid "" +#~ "Here you can add/remove services offered by you by modifying this section." +#~ msgstr "هنا يمكنك إضافة/إزالة الخدمات التي تقدمها عن طريق تعديل هذا القسم." + +#~ msgid "Days off for this date range already exist." +#~ msgstr "أيام الإجازة لهذا النطاق الزمني موجودة بالفعل." + +#~ msgid "Day off saved successfully." +#~ msgstr "تم حفظ يوم الإجازة بنجاح." + +#~ msgid "Invalid data." +#~ msgstr "بيانات غير صالحة." + +#~ msgid "Start time must be before end time." +#~ msgstr "يجب أن يكون وقت البدء قبل وقت الانتهاء." + +#~ msgid "Working hours already exist for this day." +#~ msgstr "ساعات العمل لهذا اليوم موجودة بالفعل." + +#~ msgid "Invalid or no working_hours_id provided." +#~ msgstr "معرف ساعات العمل غير صالح أو غير موجود." + +#~ msgid "Working hours does not exist." +#~ msgstr "ساعات العمل غير موجودة." + +#~ msgid "Working hours saved successfully." +#~ msgstr "تم حفظ ساعات العمل بنجاح." + +#~ msgid "Pay Now" +#~ msgstr "ادفع الآن" + +#~ msgid "Empty fields are not allowed." +#~ msgstr "لا يُسمح بترك الحقول فارغة." + +#~ msgid "User not found." +#~ msgstr "المستخدم غير موجود." + +#~ msgid "A user with this email already exists." +#~ msgstr "يوجد مستخدم بهذا البريد الإلكتروني بالفعل." + +#~ msgid "Service saved successfully." +#~ msgstr "تم حفظ الخدمة بنجاح." + +#~ msgid "Reminder: Upcoming Appointment" +#~ msgstr "تذكير: موعد قادم" + +#~ msgid "Admin Reminder: Upcoming Appointment" +#~ msgstr "تذكير للإدارة: موعد قادم" + +#~ msgid "Appointment Information" +#~ msgstr "معلومات الموعد" + +#~ msgid "A new appointment request has been received for" +#~ msgstr "تم استلام طلب موعد جديد لـ" + +#~ msgid "Here are the details:" +#~ msgstr "فيما يلي التفاصيل:" + +#~ msgid "Please ensure that" +#~ msgstr "يرجى التأكد من أن" + +#~ msgid "reviews this appointment request and takes the necessary action." +#~ msgstr "يقوم بمراجعة طلب الموعد هذا واتخاذ الإجراءات اللازمة." + +#~ msgid "Not authorized!" +#~ msgstr "غير مصرح!" + +#~ msgid "Form resubmission not allowed." +#~ msgstr "لا يُسمح بإعادة تقديم النموذج." + +#~ msgid "Sorry, re-submission is not allowed" +#~ msgstr "عذرًا، لا يُسمح بإعادة التقديم" + +#~ msgid "But don't worry, you can create a new appointment" +#~ msgstr "لكن لا تقلق، يمكنك إنشاء موعد جديد" + +#~ msgid "yes, please do" +#~ msgstr "نعم، يرجى القيام بذلك" + +#~ msgid "Reality" +#~ msgstr "الواقع" + +#~ msgid "Error 403" +#~ msgstr "خطأ 403" + +#~ msgid "You don't have permission to view this resource, and you know it" +#~ msgstr "ليس لديك إذن لعرض هذا المورد، وأنت تعرف ذلك" + +#~ msgid "Go to profile" +#~ msgstr "الانتقال إلى الملف الشخصي" + +#~ msgid "Sorry, it's not allowed to reschedule this appointment at this time" +#~ msgstr "عذرًا، لا يُسمح بإعادة جدولة هذا الموعد في الوقت الحالي" + +#~ msgid "Please, send us a message or schedule a new appointment" +#~ msgstr "يرجى إرسال رسالة إلينا أو تحديد موعد جديد" + +#~ msgid "O-o-oh! Something broke." +#~ msgstr "أوه! حدث خطأ ما." + +#~ msgid "Go home" +#~ msgstr "الذهاب إلى الصفحة الرئيسية" + +#~ msgid "Service matching query does not exist" +#~ msgstr "الخدمة المطابقة للاستعلام غير موجودة" + +#~ msgid "Invalid verification code." +#~ msgstr "رمز التحقق غير صالح." + +#~ msgid "Staff member deleted successfully!" +#~ msgstr "تم حذف عضو الفريق بنجاح!" + +#~ msgid "User is a staff member." +#~ msgstr "المستخدم هو عضو في الفريق." + +#~ msgid "User is not a staff member." +#~ msgstr "المستخدم ليس عضوًا في الفريق." + +#~ msgid "Appointment deleted successfully!" +#~ msgstr "تم حذف الموعد بنجاح!" + +#~ msgid "You can only delete your own appointments." +#~ msgstr "يمكنك فقط حذف مواعيدك الخاصة." + +#~ msgid "No services offered by this staff member." +#~ msgstr "لا توجد خدمات يقدمها هذا العضو من الفريق." + +#~ msgid "Service deleted successfully!" +#~ msgstr "تم حذف الخدمة بنجاح!" + +#~ msgid "No staff member selected" +#~ msgstr "لم يتم اختيار أي عضو من الفريق" + +#~ msgid "Successfully retrieved non-working days" +#~ msgstr "تم استرجاع أيام الإجازة بنجاح" + +#~ msgid "" +#~ "There was an error in your submission. Please check the form and try " +#~ "again." +#~ msgstr "حدث خطأ في تقديمك. يرجى التحقق من النموذج والمحاولة مرة أخرى." + +#~ msgid "Confirm Your Appointment Rescheduling" +#~ msgstr "تأكيد إعادة جدولة موعدك" + +#~ msgid "Date is in the past" +#~ msgstr "التاريخ في الماضي" + +#, fuzzy, python-format +#~| msgid "%(count)d day" +#~| msgid_plural "%(count)d days" +#~ msgid "%(count)d day" +#~ msgid_plural "%(count)d days" +#~ msgstr[0] "%(num)d يوم" +#~ msgstr[1] "%(num)d أيام" + +#, fuzzy, python-format +#~| msgid "%(count)d hour" +#~| msgid_plural "%(count)d hours" +#~ msgid "%(count)d hour" +#~ msgid_plural "%(count)d hours" +#~ msgstr[0] "%(num)d ساعة" +#~ msgstr[1] "%(num)d ساعات" + +#, fuzzy, python-format +#~| msgid "%(count)d minute" +#~| msgid_plural "%(count)d minutes" +#~ msgid "%(count)d minute" +#~ msgid_plural "%(count)d minutes" +#~ msgstr[0] "%(num)d دقيقة" +#~ msgstr[1] "%(num)d دقائق" + +#, python-brace-format +#~ msgid "{first_part} and {second_part}" +#~ msgstr "{first_part} و {second_part}" + +#, python-brace-format +#~ msgid "{days}, {hours} and {minutes}" +#~ msgstr "{days}، {hours} و {minutes}" + +#~ msgid "" +#~ "To enhance your experience, we have created a personalized account for " +#~ "you. It will allow you to manage your appointments, view service details, " +#~ "and make any necessary adjustments with ease." +#~ msgstr "" +#~ "لتعزيز تجربتك، قمنا بإنشاء حساب مخصص لك. سيمكنك ذلك من إدارة مواعيدك، " +#~ "وعرض تفاصيل الخدمات، وإجراء أي تعديلات ضرورية بسهولة." + +#~ msgid "Appointment successfully scheduled" +#~ msgstr "تم جدولة الموعد بنجاح" + +#~ msgid "Thank you for booking us." +#~ msgstr "شكرًا لحجزك معنا." + +#, python-brace-format +#~ msgid "" +#~ "\n" +#~ " Hello {first_name},\n" +#~ "\n" +#~ " A request has been received to set a password for your staff " +#~ "account for the year {current_year} at {company}.\n" +#~ "\n" +#~ " Please click the link below to set up your new password:\n" +#~ " {activation_link}\n" +#~ " \n" +#~ " To login, if ask for a username, use '{username}', otherwise use " +#~ "your email address.\n" +#~ "\n" +#~ " If you did not request this, please ignore this email.\n" +#~ "\n" +#~ " {account_details}\n" +#~ "\n" +#~ " Regards,\n" +#~ " {company}\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " مرحبًا {first_name},\n" +#~ "\n" +#~ " تم استلام طلب لتعيين كلمة مرور لحسابك الخاص بالسنة {current_year} " +#~ "في {company}.\n" +#~ "\n" +#~ " يرجى النقر على الرابط أدناه لإعداد كلمة مرورك الجديدة:\n" +#~ " {activation_link}\n" +#~ " \n" +#~ " لتسجيل الدخول، إذا طُلب منك اسم مستخدم، استخدم '{username}'، خلاف " +#~ "ذلك استخدم عنوان بريدك الإلكتروني.\n" +#~ "\n" +#~ " إذا لم تطلب ذلك، يرجى تجاهل هذا البريد الإلكتروني.\n" +#~ "\n" +#~ " {account_details}\n" +#~ "\n" +#~ " مع التحية،\n" +#~ " {company}\n" +#~ " " + +#, python-brace-format +#~ msgid "Set Your Password for {company}" +#~ msgstr "قم بتعيين كلمة المرور الخاصة بك لـ {company}" + +#~ msgid "New Appointment Request for " +#~ msgstr "طلب موعد جديد لـ " + +#, python-brace-format +#~ msgid "Your verification code is {code}." +#~ msgstr "رمز التحقق الخاص بك هو {code}." + +#~ msgid "Reschedule Request for " +#~ msgstr "طلب إعادة جدولة لـ " + +#, python-brace-format +#~ msgid "Email '{email}' already exists. Login to your account." +#~ msgstr "" +#~ "البريد الإلكتروني '{email}' موجود بالفعل. يرجى تسجيل الدخول إلى حسابك." + +#~ msgid "Day off. Please select another date!" +#~ msgstr "يوم عطلة. يرجى اختيار تاريخ آخر!" + +#, python-brace-format +#~ msgid "Not a working day for {staff_member}. Please select another date!" +#~ msgstr "ليس يوم عمل لـ {staff_member}. يرجى اختيار تاريخ آخر!" + +#~ msgid "No availability" +#~ msgstr "لا توجد مواعيد متاحة" + +#~ msgid "Successfully retrieved next available date" +#~ msgstr "تم استرجاع التاريخ المتاح التالي بنجاح" + +#, python-brace-format +#~ msgid "Book an appointment for {s} at {wn}." +#~ msgstr "احجز موعدًا لـ {s} في {wn}." + +#~ msgid "Selected staff member does not exist." +#~ msgstr "عضو الفريق المحدد غير موجود." + +#~ msgid "An account was created for you." +#~ msgstr "تم إنشاء حساب لك." + +#~ msgid "Email verified successfully." +#~ msgstr "تم التحقق من البريد الإلكتروني بنجاح." + +#~ msgid "" +#~ "Please try resetting your password again or contact support for help." +#~ msgstr "" +#~ "يرجى محاولة إعادة تعيين كلمة المرور مرة أخرى أو الاتصال بالدعم للحصول على " +#~ "المساعدة." + +#~ msgid "You can now use your new password to log in." +#~ msgstr "يمكنك الآن استخدام كلمة المرور الجديدة لتسجيل الدخول." + +#, python-brace-format +#~ msgid "Rescheduling appointment for {s}" +#~ msgstr "إعادة جدولة الموعد لـ {s}" + +#, python-brace-format +#~ msgid "Reschedule your appointment for {s} at {wn}." +#~ msgstr "قم بإعادة جدولة موعدك لـ {s} في {wn}." + +#~ msgid "Appointment rescheduled successfully" +#~ msgstr "تمت إعادة جدولة الموعد بنجاح" + +#~ msgid "O-o-oh! This link is no longer valid." +#~ msgstr "أوه! هذا الرابط لم يعد صالحًا." + +#~ msgid "O-o-oh! Can't find the pending reschedule request." +#~ msgstr "أوه! لا يمكن العثور على طلب إعادة الجدولة المعلق." + +#~ msgid "You can only add your own days off" +#~ msgstr "يمكنك فقط إضافة أيام العطلة الخاصة بك" + +#~ msgid "You can only update your own days off." +#~ msgstr "يمكنك فقط تحديث أيام العطلة الخاصة بك." + +#~ msgid "You can only delete your own days off." +#~ msgstr "يمكنك فقط حذف أيام العطلة الخاصة بك." + +#~ msgid "You can only add your own working hours." +#~ msgstr "يمكنك فقط إضافة ساعات العمل الخاصة بك." + +#~ msgid "You can only update your own working hours." +#~ msgstr "يمكنك فقط تحديث ساعات العمل الخاصة بك." + +#~ msgid "You can only delete your own working hours." +#~ msgstr "يمكنك فقط حذف ساعات العمل الخاصة بك." + +#~ msgid "You do not have permission to access this appointment." +#~ msgstr "ليس لديك إذن للوصول إلى هذا الموعد." + +#~ msgid "Appointment date and time are valid." +#~ msgstr "تاريخ ووقت الموعد صالحان." + +#~ msgid "Email updated successfully!" +#~ msgstr "تم تحديث البريد الإلكتروني بنجاح!" + +#~ msgid "The verification code provided is incorrect. Please try again." +#~ msgstr "رمز التحقق المقدم غير صحيح. يرجى المحاولة مرة أخرى." + +#~ msgid "View Service" +#~ msgstr "عرض الخدمة" + +#~ msgid "Appointment deleted successfully." +#~ msgstr "تم حذف الموعد بنجاح." + +#~ msgid "User is a superuser." +#~ msgstr "المستخدم هو مشرف عام." + +#~ msgid "French" +#~ msgstr "الفرنسية" + +#~ msgid "Select an image to embed" +#~ msgstr "اختر صورة لإدراجها" + +#~ msgid "" +#~ "Browse for the image you want, then click 'Embed Image' to continue..." +#~ msgstr "" +#~ "تصفح للعثور على الصورة المطلوبة، ثم انقر على 'إدراج الصورة' للمتابعة..." + +#~ msgid "" +#~ "No images found. Upload images using the 'Image Button' dialog's 'Upload' " +#~ "tab." +#~ msgstr "" +#~ "لم يتم العثور على صور. قم بتحميل الصور باستخدام تبويب 'تحميل' في مربع " +#~ "حوار 'زر الصورة'." + +#~ msgid "Images in: " +#~ msgstr "الصور في: " + +#~ msgid "Embed Image" +#~ msgstr "إدراج الصورة" + +#~ msgid "Play Slideshow" +#~ msgstr "تشغيل عرض الشرائح" + +#~ msgid "Pause Slideshow" +#~ msgstr "إيقاف عرض الشرائح مؤقتاً" + +#~ msgid "‹ Previous Photo" +#~ msgstr "‹ الصورة السابقة" + +#~ msgid "Next Photo ›" +#~ msgstr "الصورة التالية ›" + +#~ msgid "Next ›" +#~ msgstr "التالي ›" + +#~ msgid "‹ Prev" +#~ msgstr "‹ السابق" + +#, python-brace-format +#~ msgid "{editor}: Editing failed" +#~ msgstr "{editor}: فشل التحرير" + +#, python-brace-format +#~ msgid "{editor}: Editing failed: {e}" +#~ msgstr "{editor}: فشل التحرير: {e}" + +#, python-brace-format +#~ msgid "Got unexpected extra argument ({args})" +#~ msgid_plural "Got unexpected extra arguments ({args})" +#~ msgstr[0] "تم الحصول على وسيط إضافي غير متوقع ({args})" +#~ msgstr[1] "تم الحصول على وسيطين إضافيين غير متوقعين ({args})" +#~ msgstr[2] "تم الحصول على ثلاثة وسائط إضافية غير متوقعة ({args})" +#~ msgstr[3] "تم الحصول على أربعة وسائط إضافية غير متوقعة ({args})" +#~ msgstr[4] "تم الحصول على خمسة وسائط إضافية غير متوقعة ({args})" +#~ msgstr[5] "تم الحصول على عدد كبير من الوسائط الإضافية غير المتوقعة ({args})" + +#, fuzzy +#~| msgid "DeprecationWarning: The command {name!r} is deprecated." +#~ msgid "" +#~ "DeprecationWarning: The command {name!r} is deprecated.{extra_message}" +#~ msgstr "تحذير إهمال: الأمر {name!r} مهمل." + +#~ msgid "Aborted!" +#~ msgstr "تم الإلغاء!" + +#~ msgid "Commands" +#~ msgstr "الأوامر" + +#~ msgid "Missing command." +#~ msgstr "الأمر مفقود." + +#~ msgid "No such command {name!r}." +#~ msgstr "لا يوجد أمر باسم {name!r}." + +#~ msgid "Value must be an iterable." +#~ msgstr "يجب أن تكون القيمة قابلة للتكرار." + +#, python-brace-format +#~ msgid "Takes {nargs} values but 1 was given." +#~ msgid_plural "Takes {nargs} values but {len} were given." +#~ msgstr[0] "يتطلب {nargs} قيمة، ولكن تم تقديم 1." +#~ msgstr[1] "يتطلب {nargs} قيمة، ولكن تم تقديم {len}." +#~ msgstr[2] "" +#~ msgstr[3] "" +#~ msgstr[4] "" +#~ msgstr[5] "" + +#, fuzzy +#~| msgid "DeprecationWarning: The command {name!r} is deprecated." +#~ msgid "" +#~ "DeprecationWarning: The {param_type} {name!r} is deprecated." +#~ "{extra_message}" +#~ msgstr "تحذير إهمال: الأمر {name!r} مهمل." + +#, python-brace-format +#~ msgid "env var: {var}" +#~ msgstr "متغير البيئة: {var}" + +#, python-brace-format +#~ msgid "default: {default}" +#~ msgstr "القيمة الافتراضية: {default}" + +#~ msgid "(dynamic)" +#~ msgstr "(ديناميكي)" + +#, python-format +#~ msgid "%(prog)s, version %(version)s" +#~ msgstr "%(prog)s، الإصدار %(version)s" + +#~ msgid "Show the version and exit." +#~ msgstr "عرض الإصدار والخروج." + +#~ msgid "Show this message and exit." +#~ msgstr "إظهار رسالة المساعدة هذه والخروج" + +#, python-brace-format +#~ msgid "Try '{command} {option}' for help." +#~ msgstr "حاول '{command} {option}' للحصول على المساعدة." + +#, python-brace-format +#~ msgid "Invalid value: {message}" +#~ msgstr "قيمة غير صالحة: {message}" + +#, python-brace-format +#~ msgid "Invalid value for {param_hint}: {message}" +#~ msgstr "قيمة غير صالحة لـ {param_hint}: {message}" + +#~ msgid "Missing argument" +#~ msgstr "الوسيطة مفقودة" + +#~ msgid "Missing option" +#~ msgstr "الخيار مفقود" + +#~ msgid "Missing parameter" +#~ msgstr "المعلمة مفقودة" + +#, python-brace-format +#~ msgid "Missing {param_type}" +#~ msgstr "مفقود {param_type}" + +#, python-brace-format +#~ msgid "Missing parameter: {param_name}" +#~ msgstr "المعلمة مفقودة: {param_name}" + +#, python-brace-format +#~ msgid "No such option: {name}" +#~ msgstr "لا يوجد خيار باسم: {name}" + +#, python-brace-format +#~ msgid "Did you mean {possibility}?" +#~ msgid_plural "(Possible options: {possibilities})" +#~ msgstr[0] "(الخيارات الممكنة: {possibilities})" +#~ msgstr[1] "" +#~ msgstr[2] "" +#~ msgstr[3] "" +#~ msgstr[4] "" +#~ msgstr[5] "" + +#~ msgid "Could not open file {filename!r}: {message}" +#~ msgstr "تعذر فتح الملف {filename!r}: {message}" + +#~ msgid "Usage:" +#~ msgstr "الاستخدام:" + +#~ msgid "Argument {name!r} takes {nargs} values." +#~ msgstr "الوسيطة {name!r} تتطلب {nargs} قيمة." + +#~ msgid "Option {name!r} does not take a value." +#~ msgstr "الخيار {name!r} لا يأخذ قيمة." + +#~ msgid "Option {name!r} requires an argument." +#~ msgid_plural "Option {name!r} requires {nargs} arguments." +#~ msgstr[0] "الخيار {name!r} يتطلب وسيطة." +#~ msgstr[1] "الخيار {name!r} يتطلب {nargs} وسائط." +#~ msgstr[2] "" +#~ msgstr[3] "" +#~ msgstr[4] "" +#~ msgstr[5] "" + +#~ msgid "Shell completion is not supported for Bash versions older than 4.4." +#~ msgstr "" +#~ "إكمال الأوامر في القشرة غير مدعوم للإصدارات القديمة من Bash قبل 4.4." + +#~ msgid "Couldn't detect Bash version, shell completion is not supported." +#~ msgstr "تعذر اكتشاف إصدار Bash، إكمال الأوامر غير مدعوم." + +#~ msgid "Repeat for confirmation" +#~ msgstr "أعد المحاولة للتأكيد" + +#~ msgid "Error: The value you entered was invalid." +#~ msgstr "خطأ: القيمة التي أدخلتها غير صالحة." + +#, python-brace-format +#~ msgid "Error: {e.message}" +#~ msgstr "خطأ: {e.message}" + +#~ msgid "Error: The two entered values do not match." +#~ msgstr "خطأ: القيمتان المدخلتان لا تتطابقان." + +#~ msgid "Error: invalid input" +#~ msgstr "خطأ: إدخال غير صالح" + +#~ msgid "Press any key to continue..." +#~ msgstr "اضغط أي مفتاح للمتابعة..." + +#, python-brace-format +#~ msgid "" +#~ "Choose from:\n" +#~ "\t{choices}" +#~ msgstr "" +#~ "اختر من:\n" +#~ "\t{choices}" + +#~ msgid "{value!r} is not {choice}." +#~ msgid_plural "{value!r} is not one of {choices}." +#~ msgstr[0] "القيمة %(value)r ليست خياراً صالحاً." +#~ msgstr[1] "القيمة %(value)r ليست خياراً صالحاً." +#~ msgstr[2] "القيمة %(value)r ليست خياراً صالحاً." +#~ msgstr[3] "القيمة %(value)r ليست خياراً صالحاً." +#~ msgstr[4] "القيمة %(value)r ليست خياراً صالحاً." +#~ msgstr[5] "القيمة %(value)r ليست خياراً صالحاً." + +#~ msgid "{value!r} is not a valid {number_type}." +#~ msgstr "القيمة %(value)r ليست خياراً صالحاً." + +#~ msgid "{value!r} is not a valid boolean." +#~ msgstr "القيمة %(value)r ليست خياراً صالحاً." + +#~ msgid "{value!r} is not a valid UUID." +#~ msgstr "القيمة “%(value)s” ليست UUID صالح." + +#~ msgid "file" +#~ msgstr "ملف" + +#~ msgid "directory" +#~ msgstr "مجلد" + +#~ msgid "path" +#~ msgstr "مسار" + +#~ msgid "{name} {filename!r} does not exist." +#~ msgstr "{name} {filename!r} غير موجود." + +#~ msgid "{name} {filename!r} is a file." +#~ msgstr "{name} {filename!r} هو ملف." + +#~ msgid "{name} {filename!r} is a directory." +#~ msgstr "{name} '{filename}' هو دليل." + +#~ msgid "{name} {filename!r} is not readable." +#~ msgstr "{name} {filename!r} غير قابل للقراءة." + +#~ msgid "{name} {filename!r} is not writable." +#~ msgstr "{name} {filename!r} غير قابل للكتابة." + +#~ msgid "{name} {filename!r} is not executable." +#~ msgstr "{name} {filename!r} غير قابل للتنفيذ." + +#, python-brace-format +#~ msgid "{len_type} values are required, but {len_value} was given." +#~ msgid_plural "{len_type} values are required, but {len_value} were given." +#~ msgstr[0] "مطلوب {len_type} قيمة، ولكن تم تقديم {len_value}." +#~ msgstr[1] "مطلوب {len_type} قيمة، ولكن تم تقديم {len_value}." +#~ msgstr[2] "" +#~ msgstr[3] "" +#~ msgstr[4] "" +#~ msgstr[5] "" + +#~ msgid "Site Maps" +#~ msgstr "خرائط الموقع" + +#~ msgid "Static Files" +#~ msgstr "الملفات الثابتة" + +#~ msgid "Syndication" +#~ msgstr "التوزيع" + +#~ msgid "…" +#~ msgstr "…" + +#~ msgid "That page number is not an integer" +#~ msgstr "رقم الصفحة ليس عدداً صحيحاً" + +#~ msgid "That page number is less than 1" +#~ msgstr "رقم الصفحة أقل من 1" + +#~ msgid "That page contains no results" +#~ msgstr "هذه الصفحة لا تحتوي على نتائج" + +#~ msgid "Enter a valid value." +#~ msgstr "أدخل قيمة صالحة." + +#~ msgid "Enter a valid domain name." +#~ msgstr "أدخل اسم نطاق صالح." + +#~ msgid "Enter a valid URL." +#~ msgstr "أدخل رابط URL صالحاً." + +#~ msgid "Enter a valid integer." +#~ msgstr "أدخل عدداً صحيحاً صالحاً." + +#~ msgid "" +#~ "Enter a valid “slug” consisting of letters, numbers, underscores or " +#~ "hyphens." +#~ msgstr "أدخل “Slug” صالح يتكون من أحرف وأرقام وتسطيرات سفلية أو واصلات." + +#~ msgid "" +#~ "Enter a valid “slug” consisting of Unicode letters, numbers, underscores, " +#~ "or hyphens." +#~ msgstr "" +#~ "أدخل “Slug” صالح يتكون من أحرف يونكود وأرقام وتسطيرات سفلية أو واصلات." + +#, python-format +#~ msgid "Enter a valid %(protocol)s address." +#~ msgstr "أدخل عنوان %(protocol)s صالحًا." + +#~ msgid "IPv4" +#~ msgstr "IPv4" + +#~ msgid "IPv6" +#~ msgstr "IPv6" + +#~ msgid "IPv4 or IPv6" +#~ msgstr "IPv4 or IPv6" + +#~ msgid "Enter only digits separated by commas." +#~ msgstr "أدخل أرقاماً فقط مفصولة بفواصل." + +#, python-format +#~ msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +#~ msgstr "تأكد من أن هذه القيمة هي %(limit_value)s (هي %(show_value)s)." + +#, python-format +#~ msgid "Ensure this value is less than or equal to %(limit_value)s." +#~ msgstr "تأكد من أن هذه القيمة أقل من أو تساوي %(limit_value)s." + +#, python-format +#~ msgid "Ensure this value is greater than or equal to %(limit_value)s." +#~ msgstr "تأكد من أن هذه القيمة أكبر من أو تساوي %(limit_value)s." + +#, python-format +#~ msgid "Ensure this value is a multiple of step size %(limit_value)s." +#~ msgstr "تأكد من أن هذه القيمة هي مضاعف لخطوة الحجم %(limit_value)s." + +#, python-format +#~ msgid "" +#~ "Ensure this value has at least %(limit_value)d character (it has " +#~ "%(show_value)d)." +#~ msgid_plural "" +#~ "Ensure this value has at least %(limit_value)d characters (it has " +#~ "%(show_value)d)." +#~ msgstr[0] "" +#~ "تأكد من أن هذه القيمة تحتوي على الأقل على %(limit_value)d حرف (تحتوي على " +#~ "%(show_value)d)." +#~ msgstr[1] "" +#~ "تأكد من أن هذه القيمة تحتوي على الأقل على %(limit_value)d أحرف (تحتوي على " +#~ "%(show_value)d)." + +#, python-format +#~ msgid "" +#~ "Ensure this value has at most %(limit_value)d character (it has " +#~ "%(show_value)d)." +#~ msgid_plural "" +#~ "Ensure this value has at most %(limit_value)d characters (it has " +#~ "%(show_value)d)." +#~ msgstr[0] "" +#~ "تأكد من أن هذه القيمة تحتوي على الأكثر على %(limit_value)d حرف (تحتوي على " +#~ "%(show_value)d)." +#~ msgstr[1] "" +#~ "تأكد من أن هذه القيمة تحتوي على الأكثر على %(limit_value)d أحرف (تحتوي " +#~ "على %(show_value)d)." + +#, python-format +#~ msgid "Ensure that there are no more than %(max)s digit in total." +#~ msgid_plural "Ensure that there are no more than %(max)s digits in total." +#~ msgstr[0] "تأكد من أن العدد الإجمالي للأرقام لا يتجاوز %(max)s رقم." +#~ msgstr[1] "تأكد من أن العدد الإجمالي للأرقام لا يتجاوز %(max)s أرقام." + +#, python-format +#~ msgid "Ensure that there are no more than %(max)s decimal place." +#~ msgid_plural "Ensure that there are no more than %(max)s decimal places." +#~ msgstr[0] "تأكد من أن العدد الإجمالي للأماكن العشرية لا يتجاوز %(max)s." +#~ msgstr[1] "تأكد من أن العدد الإجمالي للأماكن العشرية لا يتجاوز %(max)s." + +#, python-format +#~ msgid "" +#~ "Ensure that there are no more than %(max)s digit before the decimal point." +#~ msgid_plural "" +#~ "Ensure that there are no more than %(max)s digits before the decimal " +#~ "point." +#~ msgstr[0] "" +#~ "تأكد من أن العدد الإجمالي للأرقام قبل العلامة العشرية لا يتجاوز %(max)s." +#~ msgstr[1] "" +#~ "تأكد من أن العدد الإجمالي للأرقام قبل العلامة العشرية لا يتجاوز %(max)s." + +#, python-format +#~ msgid "" +#~ "File extension “%(extension)s” is not allowed. Allowed extensions are: " +#~ "%(allowed_extensions)s." +#~ msgstr "" +#~ "امتداد الملف “%(extension)s” غير مسموح به. الامتدادات المسموح بها هي: " +#~ "%(allowed_extensions)s." + +#~ msgid "Null characters are not allowed." +#~ msgstr "الأحرف الفارغة غير مسموح بها." + +#~ msgid "and" +#~ msgstr "و" + +#, python-format +#~ msgid "%(model_name)s with this %(field_labels)s already exists." +#~ msgstr "%(model_name)s مع %(field_labels)s هذا موجود بالفعل." + +#, python-format +#~ msgid "Constraint “%(name)s” is violated." +#~ msgstr "تم انتهاك القيد “%(name)s”." + +#, python-format +#~ msgid "Value %(value)r is not a valid choice." +#~ msgstr "القيمة %(value)r ليست خياراً صالحاً." + +#~ msgid "This field cannot be null." +#~ msgstr "لا يمكن أن يكون هذا الحقل فارغاً." + +#~ msgid "This field cannot be blank." +#~ msgstr "لا يمكن أن يكون هذا الحقل فارغاً." + +#, python-format +#~ msgid "%(model_name)s with this %(field_label)s already exists." +#~ msgstr "%(model_name)s مع %(field_label)s هذا موجود بالفعل." + +#, python-format +#~ msgid "" +#~ "%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +#~ msgstr "" +#~ "%(field_label)s يجب أن يكون فريداً لـ %(date_field_label)s %(lookup_type)s." + +#, python-format +#~ msgid "Field of type: %(field_type)s" +#~ msgstr "حقل من النوع: %(field_type)s" + +#, python-format +#~ msgid "“%(value)s” value must be either True or False." +#~ msgstr "القيمة “%(value)s” يجب أن تكون إما True أو False." + +#, python-format +#~ msgid "“%(value)s” value must be either True, False, or None." +#~ msgstr "القيمة “%(value)s” يجب أن تكون إما True، False، أو None." + +#~ msgid "Boolean (Either True or False)" +#~ msgstr "قيمة منطقية (إما True أو False)" + +#, python-format +#~ msgid "String (up to %(max_length)s)" +#~ msgstr "نص (حتى %(max_length)s)" + +#~ msgid "String (unlimited)" +#~ msgstr "نص (غير محدود)" + +#, python-format +#~ msgid "" +#~ "“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +#~ "format." +#~ msgstr "" +#~ "القيمة “%(value)s” تحتوي على تنسيق تاريخ غير صالح. يجب أن تكون بالتنسيق " +#~ "YYYY-MM-DD." + +#, python-format +#~ msgid "" +#~ "“%(value)s” value has the correct format (YYYY-MM-DD) but it is an " +#~ "invalid date." +#~ msgstr "" +#~ "القيمة “%(value)s” تحتوي على التنسيق الصحيح (YYYY-MM-DD) لكنها تاريخ غير " +#~ "صالح." + +#~ msgid "Date (without time)" +#~ msgstr "تاريخ (بدون وقت)" + +#, python-format +#~ msgid "" +#~ "“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:" +#~ "ss[.uuuuuu]][TZ] format." +#~ msgstr "" +#~ "القيمة “%(value)s” تحتوي على تنسيق غير صالح. يجب أن تكون بالتنسيق YYYY-MM-" +#~ "DD HH:MM[:ss[.uuuuuu]][TZ]." + +#, python-format +#~ msgid "" +#~ "“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +#~ "[TZ]) but it is an invalid date/time." +#~ msgstr "" +#~ "القيمة “%(value)s” تحتوي على التنسيق الصحيح (YYYY-MM-DD HH:MM[:ss[." +#~ "uuuuuu]][TZ]) لكنها تاريخ/وقت غير صالح." + +#~ msgid "Date (with time)" +#~ msgstr "تاريخ (مع الوقت)" + +#, python-format +#~ msgid "“%(value)s” value must be a decimal number." +#~ msgstr "القيمة “%(value)s” يجب أن تكون رقماً عشرياً." + +#~ msgid "Decimal number" +#~ msgstr "رقم عشري" + +#, python-format +#~ msgid "" +#~ "“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +#~ "uuuuuu] format." +#~ msgstr "" +#~ "القيمة “%(value)s” تحتوي على تنسيق غير صالح. يجب أن تكون بالتنسيق [DD] " +#~ "[[HH:]MM:]ss[.uuuuuu]." + +#~ msgid "File path" +#~ msgstr "مسار الملف" + +#, python-format +#~ msgid "“%(value)s” value must be a float." +#~ msgstr "القيمة “%(value)s” يجب أن تكون عدداً عشرياً." + +#~ msgid "Floating point number" +#~ msgstr "عدد عشري" + +#, python-format +#~ msgid "“%(value)s” value must be an integer." +#~ msgstr "القيمة “%(value)s” يجب أن تكون عدداً صحيحاً." + +#~ msgid "Integer" +#~ msgstr "عدد صحيح" + +#~ msgid "Big (8 byte) integer" +#~ msgstr "عدد صحيح كبير (8 بايت)" + +#~ msgid "Small integer" +#~ msgstr "عدد صحيح صغير" + +#~ msgid "IPv4 address" +#~ msgstr "عنوان IPv4" + +#~ msgid "IP address" +#~ msgstr "عنوان IP" + +#, python-format +#~ msgid "“%(value)s” value must be either None, True or False." +#~ msgstr "القيمة “%(value)s” يجب أن تكون إما None، True أو False." + +#~ msgid "Boolean (Either True, False or None)" +#~ msgstr "قيمة منطقية (إما True أو False أو None)" + +#~ msgid "Positive big integer" +#~ msgstr "عدد صحيح موجب كبير" + +#~ msgid "Positive integer" +#~ msgstr "عدد صحيح موجب" + +#~ msgid "Positive small integer" +#~ msgstr "عدد صحيح موجب صغير" + +#, python-format +#~ msgid "Slug (up to %(max_length)s)" +#~ msgstr "Slug (حتى %(max_length)s)" + +#~ msgid "Text" +#~ msgstr "النص" + +#, python-format +#~ msgid "" +#~ "“%(value)s” value has an invalid format. It must be in HH:MM[:ss[." +#~ "uuuuuu]] format." +#~ msgstr "" +#~ "القيمة “%(value)s” تحتوي على تنسيق غير صالح. يجب أن تكون بالتنسيق HH:MM[:" +#~ "ss[.uuuuuu]]." + +#, python-format +#~ msgid "" +#~ "“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is " +#~ "an invalid time." +#~ msgstr "" +#~ "القيمة “%(value)s” تحتوي على التنسيق الصحيح (YYYY-MM-DD HH:MM[:ss[." +#~ "uuuuuu]][TZ]) لكنها تاريخ/وقت غير صالح." + +#~ msgid "Raw binary data" +#~ msgstr "بيانات ثنائية خام" + +#, python-format +#~ msgid "“%(value)s” is not a valid UUID." +#~ msgstr "القيمة “%(value)s” ليست UUID صالح." + +#~ msgid "Universally unique identifier" +#~ msgstr "معرّف فريد عالمي" + +#~ msgid "A JSON object" +#~ msgstr "كائن JSON" + +#~ msgid "Value must be valid JSON." +#~ msgstr "يجب أن تكون القيمة JSON صالح." + +#, fuzzy, python-format +#~| msgid "%(model)s instance with %(field)s %(value)r does not exist." +#~ msgid "%(model)s instance with %(field)s %(value)r is not a valid choice." +#~ msgstr "المثال %(model)s مع %(field)s %(value)r غير موجود." + +#~ msgid "Foreign Key (type determined by related field)" +#~ msgstr "مفتاح أجنبي (يحدد النوع حسب الحقل المرتبط)" + +#~ msgid "One-to-one relationship" +#~ msgstr "علاقة واحد لواحد" + +#, python-format +#~ msgid "%(from)s-%(to)s relationship" +#~ msgstr "علاقة %(from)s-%(to)s" + +#, python-format +#~ msgid "%(from)s-%(to)s relationships" +#~ msgstr "علاقات %(from)s-%(to)s" + +#~ msgid "Many-to-many relationship" +#~ msgstr "علاقة متعدد لمتعدد" + +#~ msgid ":?.!" +#~ msgstr ":؟.!" + +#~ msgid "Enter a valid date." +#~ msgstr "أدخل تاريخاً صالحاً." + +#~ msgid "Enter a valid date/time." +#~ msgstr "أدخل تاريخاً/وقتاً صالحاً." + +#~ msgid "Enter a valid duration." +#~ msgstr "أدخل مدة صالحة." + +#, python-brace-format +#~ msgid "The number of days must be between {min_days} and {max_days}." +#~ msgstr "يجب أن يكون عدد الأيام بين {min_days} و {max_days}." + +#~ msgid "No file was submitted. Check the encoding type on the form." +#~ msgstr "لم يتم تقديم ملف. تحقق من نوع الترميز في النموذج." + +#~ msgid "The submitted file is empty." +#~ msgstr "الملف المقدم فارغ." + +#, python-format +#~ msgid "" +#~ "Ensure this filename has at most %(max)d character (it has %(length)d)." +#~ msgid_plural "" +#~ "Ensure this filename has at most %(max)d characters (it has %(length)d)." +#~ msgstr[0] "" +#~ "تأكد من أن اسم الملف يحتوي على %(max)d حرف كحد أقصى (يحتوي على " +#~ "%(length)d)." +#~ msgstr[1] "" +#~ "تأكد من أن اسم الملف يحتوي على %(max)d أحرف كحد أقصى (يحتوي على " +#~ "%(length)d)." + +#~ msgid "Please either submit a file or check the clear checkbox, not both." +#~ msgstr "يرجى إما تقديم ملف أو تحديد خانة الإزالة، وليس كليهما." + +#~ msgid "" +#~ "Upload a valid image. The file you uploaded was either not an image or a " +#~ "corrupted image." +#~ msgstr "" +#~ "قم بتحميل صورة صالحة. الملف الذي قمت بتحميله إما ليس صورة أو صورة تالفة." + +#, python-format +#~ msgid "" +#~ "Select a valid choice. %(value)s is not one of the available choices." +#~ msgstr "اختر خياراً صالحاً. %(value)s ليس أحد الخيارات المتاحة." + +#~ msgid "Enter a list of values." +#~ msgstr "أدخل قائمة بالقيم." + +#~ msgid "Enter a valid UUID." +#~ msgstr "أدخل UUID صالحاً." + +#~ msgid "Enter a valid JSON." +#~ msgstr "أدخل JSON صالحاً." + +#~ msgid ":" +#~ msgstr ":" + +#, python-format +#~ msgid "(Hidden field %(name)s) %(error)s" +#~ msgstr "(الحقل المخفي %(name)s) %(error)s" + +#, python-format +#~ msgid "" +#~ "ManagementForm data is missing or has been tampered with. Missing fields: " +#~ "%(field_names)s. You may need to file a bug report if the issue persists." +#~ msgstr "" +#~ "بيانات نموذج الإدارة مفقودة أو تم العبث بها. الحقول المفقودة: " +#~ "%(field_names)s. قد تحتاج إلى تقديم تقرير عن المشكلة إذا استمرت." + +#, python-format +#~ msgid "Please submit at most %(num)d form." +#~ msgid_plural "Please submit at most %(num)d forms." +#~ msgstr[0] "يرجى تقديم ما لا يزيد عن %(num)d نموذج." +#~ msgstr[1] "يرجى تقديم ما لا يزيد عن %(num)d نماذج." + +#, python-format +#~ msgid "Please submit at least %(num)d form." +#~ msgid_plural "Please submit at least %(num)d forms." +#~ msgstr[0] "يرجى تقديم ما لا يقل عن %(num)d نموذج." +#~ msgstr[1] "يرجى تقديم ما لا يقل عن %(num)d نماذج." + +#, python-format +#~ msgid "Please correct the duplicate data for %(field)s." +#~ msgstr "يرجى تصحيح البيانات المكررة لـ %(field)s." + +#, python-format +#~ msgid "" +#~ "Please correct the duplicate data for %(field)s, which must be unique." +#~ msgstr "يرجى تصحيح البيانات المكررة لـ %(field)s، والتي يجب أن تكون فريدة." + +#, python-format +#~ msgid "" +#~ "Please correct the duplicate data for %(field_name)s which must be unique " +#~ "for the %(lookup)s in %(date_field)s." +#~ msgstr "" +#~ "يرجى تصحيح البيانات المكررة لـ %(field_name)s والتي يجب أن تكون فريدة لـ " +#~ "%(lookup)s في %(date_field)s." + +#~ msgid "Please correct the duplicate values below." +#~ msgstr "يرجى تصحيح القيم المكررة أدناه." + +#~ msgid "The inline value did not match the parent instance." +#~ msgstr "القيمة المضمنة لا تتطابق مع المثال الأب." + +#~ msgid "" +#~ "Select a valid choice. That choice is not one of the available choices." +#~ msgstr "اختر خياراً صالحاً. هذا الخيار ليس من الخيارات المتاحة." + +#, python-format +#~ msgid "“%(pk)s” is not a valid value." +#~ msgstr "“%(pk)s” ليست قيمة صالحة." + +#, python-format +#~ msgid "" +#~ "%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; " +#~ "it may be ambiguous or it may not exist." +#~ msgstr "" +#~ "لم يتم تفسير %(datetime)s في المنطقة الزمنية %(current_timezone)s؛ قد " +#~ "يكون غامضاً أو قد لا يكون موجوداً." + +#~ msgid "Currently" +#~ msgstr "حالياً" + +#~ msgid "Unknown" +#~ msgstr "غير معروف" + +#~ msgid "yes,no,maybe" +#~ msgstr "نعم، لا، ربما" + +#, python-format +#~ msgid "%(size)d byte" +#~ msgid_plural "%(size)d bytes" +#~ msgstr[0] "%(size)d بايت" +#~ msgstr[1] "%(size)d بايتات" + +#, python-format +#~ msgid "%s KB" +#~ msgstr "%s كيلوبايت" + +#, python-format +#~ msgid "%s MB" +#~ msgstr "%s ميغابايت" + +#, python-format +#~ msgid "%s GB" +#~ msgstr "%s غيغابايت" + +#, python-format +#~ msgid "%s TB" +#~ msgstr "%s تيرابايت" + +#, python-format +#~ msgid "%s PB" +#~ msgstr "%s بيتابايت" + +#~ msgid "p.m." +#~ msgstr "م" + +#~ msgid "a.m." +#~ msgstr "ص" + +#~ msgid "PM" +#~ msgstr "م" + +#~ msgid "AM" +#~ msgstr "ص" + +#~ msgid "midnight" +#~ msgstr "منتصف الليل" + +#~ msgid "noon" +#~ msgstr "الظهر" + +#~ msgid "Mon" +#~ msgstr "الإثنين" + +#~ msgid "Tue" +#~ msgstr "الثلاثاء" + +#~ msgid "Wed" +#~ msgstr "الأربعاء" + +#~ msgid "Thu" +#~ msgstr "الخميس" + +#~ msgid "Fri" +#~ msgstr "الجمعة" + +#~ msgid "Sat" +#~ msgstr "السبت" + +#~ msgid "Sun" +#~ msgstr "الأحد" + +#~ msgid "January" +#~ msgstr "يناير" + +#~ msgid "February" +#~ msgstr "فبراير" + +#~ msgid "March" +#~ msgstr "مارس" + +#~ msgid "April" +#~ msgstr "أبريل" + +#~ msgid "June" +#~ msgstr "يونيو" + +#~ msgid "July" +#~ msgstr "يوليو" + +#~ msgid "August" +#~ msgstr "أغسطس" + +#~ msgid "September" +#~ msgstr "سبتمبر" + +#~ msgid "October" +#~ msgstr "أكتوبر" + +#~ msgid "November" +#~ msgstr "نوفمبر" + +#~ msgid "December" +#~ msgstr "ديسمبر" + +#~ msgid "jan" +#~ msgstr "يناير" + +#~ msgid "feb" +#~ msgstr "فبراير" + +#~ msgid "mar" +#~ msgstr "مارس" + +#~ msgid "apr" +#~ msgstr "أبريل" + +#~ msgid "may" +#~ msgstr "مايو" + +#~ msgid "jun" +#~ msgstr "يونيو" + +#~ msgid "jul" +#~ msgstr "يوليو" + +#~ msgid "aug" +#~ msgstr "أغسطس" + +#~ msgid "sep" +#~ msgstr "سبتمبر" + +#~ msgid "oct" +#~ msgstr "أكتوبر" + +#~ msgid "nov" +#~ msgstr "نوفمبر" + +#~ msgid "dec" +#~ msgstr "ديسمبر" + +#~ msgctxt "abbrev. month" +#~ msgid "Jan." +#~ msgstr "يناير" + +#~ msgctxt "abbrev. month" +#~ msgid "Feb." +#~ msgstr "فبراير" + +#~ msgctxt "abbrev. month" +#~ msgid "March" +#~ msgstr "مارس" + +#~ msgctxt "abbrev. month" +#~ msgid "April" +#~ msgstr "أبريل" + +#~ msgctxt "abbrev. month" +#~ msgid "May" +#~ msgstr "مايو" + +#~ msgctxt "abbrev. month" +#~ msgid "June" +#~ msgstr "يونيو" + +#~ msgctxt "abbrev. month" +#~ msgid "July" +#~ msgstr "يوليو" + +#~ msgctxt "abbrev. month" +#~ msgid "Aug." +#~ msgstr "أغسطس" + +#~ msgctxt "abbrev. month" +#~ msgid "Sept." +#~ msgstr "سبتمبر" + +#~ msgctxt "abbrev. month" +#~ msgid "Oct." +#~ msgstr "أكتوبر" + +#~ msgctxt "abbrev. month" +#~ msgid "Nov." +#~ msgstr "نوفمبر" + +#~ msgctxt "abbrev. month" +#~ msgid "Dec." +#~ msgstr "ديسمبر" + +#~ msgctxt "alt. month" +#~ msgid "January" +#~ msgstr "يناير" + +#~ msgctxt "alt. month" +#~ msgid "February" +#~ msgstr "فبراير" + +#~ msgctxt "alt. month" +#~ msgid "March" +#~ msgstr "مارس" + +#~ msgctxt "alt. month" +#~ msgid "April" +#~ msgstr "أبريل" + +#~ msgctxt "alt. month" +#~ msgid "May" +#~ msgstr "مايو" + +#~ msgctxt "alt. month" +#~ msgid "June" +#~ msgstr "يونيو" + +#~ msgctxt "alt. month" +#~ msgid "July" +#~ msgstr "يوليو" + +#~ msgctxt "alt. month" +#~ msgid "August" +#~ msgstr "أغسطس" + +#~ msgctxt "alt. month" +#~ msgid "September" +#~ msgstr "سبتمبر" + +#~ msgctxt "alt. month" +#~ msgid "October" +#~ msgstr "أكتوبر" + +#~ msgctxt "alt. month" +#~ msgid "November" +#~ msgstr "نوفمبر" + +#~ msgctxt "alt. month" +#~ msgid "December" +#~ msgstr "ديسمبر" + +#~ msgid "This is not a valid IPv6 address." +#~ msgstr "هذا ليس عنوان IPv6 صالحاً." + +#, python-format +#~ msgctxt "String to return when truncating text" +#~ msgid "%(truncated_text)s…" +#~ msgstr "%(truncated_text)s…" + +#~ msgid "or" +#~ msgstr "أو" + +#~ msgid ", " +#~ msgstr "، " + +#, python-format +#~ msgid "%(num)d year" +#~ msgid_plural "%(num)d years" +#~ msgstr[0] "%(num)d سنة" +#~ msgstr[1] "%(num)d سنوات" + +#, python-format +#~ msgid "%(num)d month" +#~ msgid_plural "%(num)d months" +#~ msgstr[0] "%(num)d شهر" +#~ msgstr[1] "%(num)d أشهر" + +#, python-format +#~ msgid "%(num)d week" +#~ msgid_plural "%(num)d weeks" +#~ msgstr[0] "%(num)d أسبوع" +#~ msgstr[1] "%(num)d أسابيع" + +#, python-format +#~ msgid "%(num)d day" +#~ msgid_plural "%(num)d days" +#~ msgstr[0] "%(num)d يوم" +#~ msgstr[1] "%(num)d أيام" + +#, python-format +#~ msgid "%(num)d hour" +#~ msgid_plural "%(num)d hours" +#~ msgstr[0] "%(num)d ساعة" +#~ msgstr[1] "%(num)d ساعات" + +#, python-format +#~ msgid "%(num)d minute" +#~ msgid_plural "%(num)d minutes" +#~ msgstr[0] "%(num)d دقيقة" +#~ msgstr[1] "%(num)d دقائق" + +#~ msgid "Forbidden" +#~ msgstr "ممنوع" + +#~ msgid "CSRF verification failed. Request aborted." +#~ msgstr "فشل التحقق من CSRF. تم إيقاف الطلب." + +#~ msgid "" +#~ "You are seeing this message because this HTTPS site requires a “Referer " +#~ "header” to be sent by your web browser, but none was sent. This header is " +#~ "required for security reasons, to ensure that your browser is not being " +#~ "hijacked by third parties." +#~ msgstr "" +#~ "أنت ترى هذه الرسالة لأن هذا الموقع HTTPS يتطلب إرسال ترويسة “Referer” من " +#~ "متصفحك، ولكن لم يتم إرسال أي ترويسة. هذه الترويسة مطلوبة لأسباب أمنية، " +#~ "للتأكد من أن متصفحك لم يتم اختطافه من قبل أطراف ثالثة." + +#~ msgid "" +#~ "If you have configured your browser to disable “Referer” headers, please " +#~ "re-enable them, at least for this site, or for HTTPS connections, or for " +#~ "“same-origin” requests." +#~ msgstr "" +#~ "إذا قمت بتكوين متصفحك لتعطيل ترويسات “Referer”، يرجى إعادة تمكينها، على " +#~ "الأقل لهذا الموقع، أو للاتصالات HTTPS، أو للطلبات من “نفس المصدر”." + +#~ msgid "" +#~ "If you are using the tag " +#~ "or including the “Referrer-Policy: no-referrer” header, please remove " +#~ "them. The CSRF protection requires the “Referer” header to do strict " +#~ "referer checking. If you’re concerned about privacy, use alternatives " +#~ "like for links to third-party sites." +#~ msgstr "" +#~ "إذا كنت تستخدم الوسم أو " +#~ "ترويسة “Referrer-Policy: no-referrer”، يرجى إزالتها. تتطلب الحماية من " +#~ "CSRF ترويسة “Referer” للقيام بالتحقق الصارم من المرجع. إذا كنت قلقًا بشأن " +#~ "الخصوصية، استخدم بدائل مثل للروابط إلى مواقع " +#~ "الطرف الثالث." + +#~ msgid "" +#~ "You are seeing this message because this site requires a CSRF cookie when " +#~ "submitting forms. This cookie is required for security reasons, to ensure " +#~ "that your browser is not being hijacked by third parties." +#~ msgstr "" +#~ "أنت ترى هذه الرسالة لأن هذا الموقع يتطلب ملف تعريف الارتباط CSRF عند " +#~ "إرسال النماذج. هذا الملف مطلوب لأسباب أمنية، للتأكد من أن متصفحك لم يتم " +#~ "اختطافه من قبل أطراف ثالثة." + +#~ msgid "" +#~ "If you have configured your browser to disable cookies, please re-enable " +#~ "them, at least for this site, or for “same-origin” requests." +#~ msgstr "" +#~ "إذا قمت بتكوين متصفحك لتعطيل ملفات تعريف الارتباط، يرجى إعادة تمكينها، " +#~ "على الأقل لهذا الموقع، أو للطلبات من “نفس المصدر”." + +#~ msgid "More information is available with DEBUG=True." +#~ msgstr "مزيد من المعلومات متاحة مع DEBUG=True." + +#~ msgid "No year specified" +#~ msgstr "لم يتم تحديد السنة" + +#~ msgid "Date out of range" +#~ msgstr "التاريخ خارج النطاق" + +#~ msgid "No day specified" +#~ msgstr "لم يتم تحديد اليوم" + +#~ msgid "No week specified" +#~ msgstr "لم يتم تحديد الأسبوع" + +#, python-format +#~ msgid "No %(verbose_name_plural)s available" +#~ msgstr "لا توجد %(verbose_name_plural)s متاحة" + +#, python-format +#~ msgid "" +#~ "Future %(verbose_name_plural)s not available because %(class_name)s." +#~ "allow_future is False." +#~ msgstr "" +#~ "%(verbose_name_plural)s المستقبلية غير متاحة لأن %(class_name)s. الخاصية " +#~ "allow_future هي False." + +#, python-format +#~ msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +#~ msgstr "سلسلة التاريخ غير صالحة “%(datestr)s” بالصيغة “%(format)s”" + +#, python-format +#~ msgid "No %(verbose_name)s found matching the query" +#~ msgstr "لم يتم العثور على %(verbose_name)s مطابق للاستعلام" + +#~ msgid "Page is not “last”, nor can it be converted to an int." +#~ msgstr "الصفحة ليست “الأخيرة”، ولا يمكن تحويلها إلى عدد صحيح." + +#, python-format +#~ msgid "Invalid page (%(page_number)s): %(message)s" +#~ msgstr "صفحة غير صالحة (%(page_number)s): %(message)s" + +#, python-format +#~ msgid "Empty list and “%(class_name)s.allow_empty” is False." +#~ msgstr "قائمة فارغة والخاصية “%(class_name)s.allow_empty” هي False." + +#~ msgid "Directory indexes are not allowed here." +#~ msgstr "الفهارس الدليلية غير مسموح بها هنا." + +#, python-format +#~ msgid "“%(path)s” does not exist" +#~ msgstr "“%(path)s” غير موجود" + +#, python-format +#~ msgid "Index of %(directory)s" +#~ msgstr "فهرس %(directory)s" + +#~ msgid "The install worked successfully! Congratulations!" +#~ msgstr "تم التثبيت بنجاح! تهانينا!" + +#, python-format +#~ msgid "" +#~ "View release notes for Django " +#~ "%(version)s" +#~ msgstr "" +#~ "عرض ملاحظات الإصدار لـ Django " +#~ "%(version)s" + +#, python-format +#~ msgid "" +#~ "You are seeing this page because DEBUG=True is in your settings file and you have not " +#~ "configured any URLs." +#~ msgstr "" +#~ "أنت ترى هذه الصفحة لأن DEBUG=True موجودة في ملف الإعدادات الخاص بك ولم تقم " +#~ "بتكوين أي عناوين URL." + +#~ msgid "Topics, references, & how-to’s" +#~ msgstr "الموضوعات، المراجع، والإرشادات" + +#~ msgid "Tutorial: A Polling App" +#~ msgstr "البرنامج التعليمي: تطبيق استطلاع" + +#~ msgid "Get started with Django" +#~ msgstr "ابدأ مع Django" + +#~ msgid "Django Community" +#~ msgstr "مجتمع Django" + +#~ msgid "Connect, get help, or contribute" +#~ msgstr "اتصل، احصل على المساعدة، أو ساهم" + +#~ msgid "close" +#~ msgstr "إغلاق" + +#~ msgid "Alpha Numeric (auto generated if not provided)..." +#~ msgstr "أبجدي رقمي (يتم توليده تلقائياً إذا لم يتم توفيره)..." + +#~ msgid "Account Name..." +#~ msgstr "اسم الحساب..." + +#~ msgid "Relative to" +#~ msgstr "بالنسبة إلى" + +#~ msgid "Enter account name..." +#~ msgstr "أدخل اسم الحساب..." + +#~ msgid "Enter account number..." +#~ msgstr "أدخل رقم الحساب..." + +#~ msgid "Enter routing number..." +#~ msgstr "أدخل رقم التوجيه..." + +#~ msgid "Enter ABA number..." +#~ msgstr "أدخل رقمABA..." + +#~ msgid "Enter SWIFT number..." +#~ msgstr "أدخل رقم SWIFT..." + +#~ msgid "Account Type" +#~ msgstr "نوع الحساب" + +#~ msgid "CoA Account" +#~ msgstr "حساب دليل الحسابات" + +#~ msgid "ABA Number" +#~ msgstr "رقم ABA" + +#~ msgid "Routing Number" +#~ msgstr "رقم التوجيه" + +#~ msgid "Make Active" +#~ msgstr "اجعل نشطاً" + +#~ msgid "Prepaid Expenses Account" +#~ msgstr "حساب النفقات المدفوعة مسبوقاً" + +#~ msgid "Bill Date (YYYY-MM-DD)..." +#~ msgstr "تاريخ الفاتورة (YYYY-MM-DD)..." + +#~ msgid "Date (YYYY-MM-DD)..." +#~ msgstr "التاريخ (YYYY-MM-DD)..." + +#~ msgid "Bill Progress Amount (%)" +#~ msgstr "مبلغ تقدم الفاتورة (%)" + +#~ msgid "Will this Bill be Accrued?" +#~ msgstr "هل ستتراكم هذه الفاتورة؟" + +#~ msgid "Cannot create a closing entry with a future date." +#~ msgstr "لا يمكن إنشاء إدخال إغلاق بتاريخ مستقبلي." + +#~ msgid "Closing Date (YYYY-MM-DD)..." +#~ msgstr "تاريخ الإغلاق (YYYY-MM-DD)..." + +#~ msgid "Select a Closing Date" +#~ msgstr "اختر تاريخ الإغلاق" + +#~ msgid "Closing Entry Notes" +#~ msgstr "ملاحظات إدخال الإغلاق" + +#~ msgid "What's this import about?..." +#~ msgstr "ما هو موضوع هذا الاستيراد؟" + +#~ msgid "Select the bank account to import transactions from." +#~ msgstr "حدد الحساب البنكي لاستيراد المعاملات منه." + +#~ msgid "Cannot import and split at the same time" +#~ msgstr "لا يمكن الاستيراد والتقسيم في نفس الوقت" + +#~ msgid "Import job does not belong to this entity" +#~ msgstr "مهمة الاستيراد لا تنتمي إلى هذا الكيان" + +#~ msgid "Populate Default CoA" +#~ msgstr "ملء دليل الحسابات الافتراضي" + +#~ msgid "Activate All Accounts" +#~ msgstr "تفعيل جميع الحسابات" + +#~ msgid "Fill With Sample Data?" +#~ msgstr "ملء بالبيانات النموذجية؟" + +#~ msgid "Please provide a valid name for new Entity." +#~ msgstr "يرجى تقديم اسم صالح للكيان الجديد." + +#~ msgid "Looks like this entity name is too short..." +#~ msgstr "يبدو أن اسم هذا الكيان قصير جداً..." + +#~ msgid "Entity Name" +#~ msgstr "اسم الكيان" + +#~ msgid "Entity name..." +#~ msgstr "اسم الكيان..." + +#~ msgid "Address line 1" +#~ msgstr "العنوان سطر 1" + +#~ msgid "Address line 2" +#~ msgstr "العنوان سطر 2" + +#~ msgid "State" +#~ msgstr "الولاية" + +#~ msgid "Zip Code" +#~ msgstr "الرمز البريدي" + +#~ msgid "Phone number..." +#~ msgstr "رقم الهاتف..." + +#~ msgid "Email..." +#~ msgstr "البريد الإلكتروني..." + +#~ msgid "Phone..." +#~ msgstr "الهاتف..." + +#~ msgid "Website..." +#~ msgstr "الموقع الإلكتروني..." + +#~ msgid "Estimate title..." +#~ msgstr "عنوان التقدير..." + +#~ msgid "Desktop" +#~ msgstr "سطح المكتب" + +#~ msgid "Tablet" +#~ msgstr "جهاز لوحي" + +#~ msgid "Mobile" +#~ msgstr "الهاتف المحمول" + +#~ msgid "How to reproduce?" +#~ msgstr "كيف تعيد إنتاج المشكلة؟" + +#~ msgid "What did you expect?" +#~ msgstr "ماذا كنت تتوقع؟" + +#~ msgid "What device are you using?" +#~ msgstr "ما هو الجهاز الذي تستخدمه؟" + +#~ msgid "Is your feature request related to a problem? Please describe." +#~ msgstr "هل يرتبط طلب ميزتك بمشكلة؟ يرجى الوصف." + +#~ msgid "Describe the solution you'd like" +#~ msgstr "وصف الحل الذي ترغب فيه" + +#~ msgid "Describe alternatives you've considered" +#~ msgstr "وصف البدائل التي فكرت بها" + +#~ msgid "Invoice Terms" +#~ msgstr "شروط الفاتورة" + +#~ msgid "Deferred Revenue Account" +#~ msgstr "حساب الإيرادات المؤجلة" + +#~ msgid "Receivable Account" +#~ msgstr "حساب المستحقات" + +#~ msgid "Invoice Date (YYYY-MM-DD)..." +#~ msgstr "تاريخ الفاتورة (YYYY-MM-DD)..." + +#~ msgid "Progress Amount 0.00 -> 1.00 (percent)" +#~ msgstr "مبلغ التقدم 0.00 -> 1.00 (النسبة)" + +#~ msgid "Paid Date (YYYY-MM-DD)..." +#~ msgstr "تاريخ الدفع (YYYY-MM-DD)..." + +#~ msgid "Product Type" +#~ msgstr "نوع المنتج" + +#~ msgid "Sold as Unit?" +#~ msgstr "هل يتم بيعه كوحدة؟" + +#~ msgid "The UPC code of the item, if any..." +#~ msgstr "رمز يو بي سي للعنصر، إن وجد..." + +#~ msgid "Expense Name" +#~ msgstr "اسم المصروف" + +#~ msgid "Cannot create new Journal Entries on a locked Ledger." +#~ msgstr "لا يمكن إنشاء إدخالات يومية جديدة على دفتر حسابات مقفل." + +#~ msgid "Ledger External ID" +#~ msgstr "معرف دفتر الحسابات الخارجي" + +#~ msgid "Is this an inventory purchase?" +#~ msgstr "هل هذا شراء للمخزون؟" + +#~ msgid "Fulfillment Date (YYYY-MM-DD)..." +#~ msgstr "تاريخ التنفيذ (YYYY-MM-DD)..." + +#~ msgid "PO Notes" +#~ msgstr "ملاحظات" + +#~ msgid "Credits and Debits do not balance." +#~ msgstr "الأرصدة والخصوم غير متوازنة." + +#~ msgid "Unit name must be at least 10 characters long" +#~ msgstr "يجب أن يتكون اسم الوحدة من 10 أحرف على الأقل" + +#~ msgid "Must provide all City/State/Zip/Country" +#~ msgstr "يجب توفير جميع المعلومات: المدينة/الولاية/الرمز البريدي/الدولة" + +#~ msgid "Cannot commit on locked ledger" +#~ msgstr "لا يمكن تأكيد المعاملات على دفتر حسابات مقفل" + +#~ msgid "PDF support not enabled. Install PDF support from Pipfile." +#~ msgstr "دعم PDF غير ممكّن. قم بتثبيت دعم PDF من Pipfile." + +#~ msgid "Ledger Model must be a string or UUID or LedgerModel" +#~ msgstr "" +#~ "يجب أن يكون نموذج دفتر الحسابات عبارة عن سلسلة أو UUID أو LedgerModel" + +#~ msgid "" +#~ "Total transactions Credits and Debits must be equal. Got CREDITs: {} and " +#~ "DEBITs: {}." +#~ msgstr "يجب أن تكون مجموع الأرصدة والخصوم متساوية. الرصيد: {} والخصم: {}." + +#~ msgid "Transactions already committed" +#~ msgstr "المعاملات مؤكدة بالفعل" + +#~ msgid "Cannot commit transactions to a non-existing ledger" +#~ msgstr "لا يمكن تأكيد المعاملات على دفتر حسابات غير موجود" + +#~ msgid "Current Asset" +#~ msgstr "الأصول الحالية" + +#~ msgid "Marketable Securities" +#~ msgstr "الأوراق المالية القابلة للتداول" + +#~ msgid "Uncollectibles" +#~ msgstr "غير قابلة للتحصيل" + +#~ msgid "Prepaid" +#~ msgstr "المدفوعة مسبقاً" + +#~ msgid "Other Liquid Assets" +#~ msgstr "أصول سائلة أخرى" + +#~ msgid "Notes Receivable" +#~ msgstr "السندات المستحقة" + +#~ msgid "Land" +#~ msgstr "الأرض" + +#~ msgid "Buildings" +#~ msgstr "المباني" + +#~ msgid "Buildings - Accum. Depreciation" +#~ msgstr "المباني - الإهلاك المتراكم" + +#~ msgid "Plant" +#~ msgstr "المصنع" + +#~ msgid "Plant - Accum. Depreciation" +#~ msgstr "المصنع - الإهلاك المتراكم" + +#~ msgid "Equipment - Accum. Depreciation" +#~ msgstr "المعدات - الإهلاك المتراكم" + +#~ msgid "Intangible Assets" +#~ msgstr "الأصول غير الملموسة" + +#~ msgid "Intangible Assets - Accum. Amortization" +#~ msgstr "الأصول غير الملموسة - الاستهلاك المتراكم" + +#~ msgid "Other Assets" +#~ msgstr "أصول أخرى" + +#~ msgid "Wages Payable" +#~ msgstr "الأجور المستحقة الدفع" + +#~ msgid "Interest Payable" +#~ msgstr "الفائدة المستحقة الدفع" + +#~ msgid "Taxes Payable" +#~ msgstr "الضرائب المستحقة الدفع" + +#~ msgid "Short Term Notes Payable" +#~ msgstr "السندات المستحقة قصيرة الأجل" + +#~ msgid "Current Maturities of Long Tern Debt" +#~ msgstr "استحقاقات الديون طويلة الأجل الحالية" + +#~ msgid "Other Liabilities" +#~ msgstr "التزامات أخرى" + +#~ msgid "Long Term Notes Payable" +#~ msgstr "سندات الدفع طويلة الأجل" + +#~ msgid "Bonds Payable" +#~ msgstr "السندات المستحقة الدفع" + +#~ msgid "Mortgage Payable" +#~ msgstr "الرهن المستحق الدفع" + +#~ msgid "Common Stock" +#~ msgstr "الأسهم العادية" + +#~ msgid "Preferred Stock" +#~ msgstr "الأسهم الممتازة" + +#~ msgid "Other Equity Adjustments" +#~ msgstr "تعديلات أخرى على حقوق الملكية" + +#~ msgid "Dividends & Distributions to Shareholders" +#~ msgstr "الأرباح والتوزيعات للمساهمين" + +#~ msgid "Operational Income" +#~ msgstr "الدخل التشغيلي" + +#~ msgid "Investing/Passive Income" +#~ msgstr "الدخل من الاستثمار/الدخل السلبي" + +#~ msgid "Interest Income" +#~ msgstr "دخل الفائدة" + +#~ msgid "Capital Gain/Loss Income" +#~ msgstr "دخل مكاسب/خسائر رأس المال" + +#~ msgid "Other Income" +#~ msgstr "دخل آخر" + +#~ msgid "Regular Expense" +#~ msgstr "المصاريف العادية" + +#~ msgid "Interest Expense - Short Term Debt" +#~ msgstr "مصاريف الفائدة - الديون قصيرة الأجل" + +#~ msgid "Interest Expense - Long Term Debt" +#~ msgstr "مصاريف الفائدة - الديون طويلة الأجل" + +#~ msgid "Tax Expense" +#~ msgstr "مصاريف الضرائب" + +#~ msgid "Capital Expense" +#~ msgstr "النفقات الرأسمالية" + +#~ msgid "Depreciation Expense" +#~ msgstr "مصاريف الاستهلاك" + +#~ msgid "Amortization Expense" +#~ msgstr "مصاريف الاستهلاك المعنوي" + +#~ msgid "Other Expense" +#~ msgstr "مصروفات أخرى" + +#, python-format +#~ msgid "Account code must be alpha numeric, got {%s}" +#~ msgstr "يجب أن يكون رمز الحساب مزيجاً من الحروف والأرقام، تم تلقي {%s}" + +#~ msgid "Coa Role Default Account" +#~ msgstr "حساب الدور الافتراضي لقائمة الحسابات" + +#~ msgid "Account Balance Type" +#~ msgstr "نوع رصيد الحساب" + +#~ msgid "Account codes must be unique for each Chart of Accounts Model." +#~ msgstr "يجب أن تكون رموز الحساب فريدة لكل نموذج من نماذج دليل الحسابات." + +#~ msgid "Only one default account for role permitted." +#~ msgstr "يُسمح بحساب افتراضي واحد فقط للدور." + +#~ msgid "Entity Model" +#~ msgstr "نموذج الكيان" + +#~ msgid "Account model be used to map transactions from financial institution" +#~ msgstr "نموذج الحساب المستخدم لتعيين المعاملات من المؤسسات المالية" + +#~ msgid "Associated Account Model" +#~ msgstr "نموذج الحساب المرتبط" + +#~ msgid "Must pass user_model when using entity_slug." +#~ msgstr "يجب تمرير user_model عند استخدام entity_slug." + +#~ msgid "Bank Account" +#~ msgstr "الحساب المصرفي" + +#~ msgid "External Reference Number" +#~ msgstr "رقم المرجع الخارجي" + +#~ msgid "Bill Additional Info" +#~ msgstr "معلومات إضافية عن الفاتورة" + +#~ msgid "Associated Customer Job/Estimate" +#~ msgstr "الوظيفة/التقدير المرتبط بالعميل" + +#~ msgid "Canceled Date" +#~ msgstr "تاريخ الإلغاء" + +#, python-format +#~ msgid "Do you want to mark Bill %s as Draft?" +#~ msgstr "هل تريد وضع الفاتورة %s كمسودة؟" + +#, python-format +#~ msgid "Do you want to mark Bill %s as In Review?" +#~ msgstr "هل تريد وضع الفاتورة %s قيد المراجعة؟" + +#, python-format +#~ msgid "Do you want to mark Bill %s as Approved?" +#~ msgstr "هل تريد وضع الفاتورة %s على أنها موافق عليها؟" + +#, python-format +#~ msgid "Do you want to mark Bill %s as Paid?" +#~ msgstr "هل تريد وضع الفاتورة %s على أنها مدفوعة؟" + +#, python-format +#~ msgid "Do you want to void Bill %s?" +#~ msgstr "هل تريد إبطال الفاتورة %s؟" + +#, python-format +#~ msgid "Do you want to mark Bill %s as Canceled?" +#~ msgstr "هل تريد وضع الفاتورة %s كملغاة؟" + +#~ msgid "Entity" +#~ msgstr "الكيان" + +#~ msgid "Chart of Account" +#~ msgstr "قائمة الحسابات" + +#~ msgid "The Chart of Accounts is currently not active." +#~ msgstr "قائمة الحسابات غير نشطة حاليًا." + +#~ msgid "Default Chart of Accounts cannot be deactivated." +#~ msgstr "لا يمكن إلغاء تنشيط قائمة الحسابات الافتراضية." + +#~ msgid "Is Posted" +#~ msgstr "تم النشر" + +#~ msgid "Only one Closing Entry for Date Allowed." +#~ msgstr "مسموح بإدخال إغلاق واحد فقط لكل تاريخ." + +#~ msgid "Cannot update transactions of a posted Closing Entry." +#~ msgstr "لا يمكن تحديث المعاملات لإدخال إغلاق تم نشره." + +#~ msgid "" +#~ "This action will delete existing closing entry transactions and create " +#~ "new ones." +#~ msgstr "سيؤدي هذا الإجراء إلى حذف قيود الإغلاق الحالية وإنشاء قيود جديدة." + +#~ msgid "Cannot delete a posted Closing Entry" +#~ msgstr "لا يمكن حذف إدخال إغلاق تم نشره" + +#~ msgid "Account Model" +#~ msgstr "نموذج الحساب" + +#~ msgid "Transaction Type" +#~ msgstr "نوع المعاملة" + +#~ msgid "Closing Entry Balance" +#~ msgstr "رصيد إدخال الإغلاق" + +#~ msgid "Closing Entry Model" +#~ msgstr "نموذج إدخال الإغلاق" + +#~ msgid "Customer Number" +#~ msgstr "رقم العميل" + +#~ msgid "Customer Entity" +#~ msgstr "كيان العميل" + +#~ msgid "Associated Bank Account Model" +#~ msgstr "نموذج الحساب المصرفي المرتبط" + +#~ msgid "Ledger Model" +#~ msgstr "نموذج دفتر الحسابات" + +#~ msgid "Import Job Completed" +#~ msgstr "اكتمل استيراد المهمة" + +#~ msgid "Import Job Model" +#~ msgstr "نموذج مهمة الاستيراد" + +#~ msgid "Parent Transaction" +#~ msgstr "المعاملة الأصلية" + +#~ msgid "Date Posted" +#~ msgstr "تاريخ النشر" + +#~ msgid "Bundle Split Transactions" +#~ msgstr "تجزئة المعاملات" + +#~ msgid "Proposed Activity" +#~ msgstr "النشاط المقترح" + +#~ msgid "Entity Unit Model" +#~ msgstr "نموذج وحدة الكيان" + +#~ msgid "Staged Transaction Model" +#~ msgstr "نموذج المعاملة المتدرجة" + +#~ msgid "" +#~ "Invalid Bank Account for LedgerModel. No matching Entity Model found." +#~ msgstr "" +#~ "حساب مصرفي غير صالح لنموذج دفتر الحسابات. لم يتم العثور على نموذج كيان " +#~ "مطابق." + +#~ msgid "Default Chart of Accounts" +#~ msgstr "قائمة الحسابات الافتراضية" + +#~ msgid "Admin" +#~ msgstr "الإدارة" + +#~ msgid "Use Accrual Method" +#~ msgstr "استخدام طريقة الاستحقاق" + +#~ msgid "Fiscal Year Start" +#~ msgstr "بداية السنة المالية" + +#~ msgid "Last Closing Entry Date" +#~ msgstr "تاريخ آخر إدخال إغلاق" + +#~ msgid "Entities" +#~ msgstr "الكيانات" + +#~ msgid "Invalid Parent Entity. " +#~ msgstr "الكيان الأصلي غير صالح." + +#~ msgid "Only slug, UUID or EntityModel allowed." +#~ msgstr "مسموح فقط بالمعرف، UUID أو نموذج الكيان." + +#~ msgid "No default_coa found." +#~ msgstr "لم يتم العثور على قائمة حسابات افتراضية." + +#~ msgid "" +#~ "Closing books must be called by providing closing_date or " +#~ "closing_entry_model, not both." +#~ msgstr "" +#~ "يجب استدعاء إغلاق الدفاتر إما بتحديد تاريخ الإغلاق أو نموذج إدخال " +#~ "الإغلاق، وليس كليهما." + +#~ msgid "" +#~ "Closing books must be called by providing closing_date or " +#~ "closing_entry_model." +#~ msgstr "" +#~ "يجب استدعاء إغلاق الدفاتر إما بتحديد تاريخ الإغلاق أو نموذج إدخال الإغلاق." + +#~ msgid "Journal Entry" +#~ msgstr "إدخال دفتر اليومية" + +#~ msgid "Read Permissions" +#~ msgstr "أذونات القراءة" + +#~ msgid "Read/Write Permissions" +#~ msgstr "أذونات القراءة/الكتابة" + +#~ msgid "Manager" +#~ msgstr "مدير" + +#~ msgid "Permission Level" +#~ msgstr "مستوى الأذونات" + +#~ msgid "Contract Terms" +#~ msgstr "شروط العقد" + +#~ msgid "Customer Estimate Title" +#~ msgstr "عنوان تقدير العميل" + +#~ msgid "EstimateModel Title length must be greater than 5" +#~ msgstr "يجب أن يزيد طول عنوان نموذج التقدير عن 5 أحرف" + +#~ msgid "Date Draft" +#~ msgstr "تاريخ المسودة" + +#~ msgid "Date In Review" +#~ msgstr "تاريخ قيد المراجعة" + +#~ msgid "Date Approved" +#~ msgstr "تاريخ الموافقة" + +#~ msgid "Date Completed" +#~ msgstr "تاريخ الاكتمال" + +#~ msgid "Date Canceled" +#~ msgstr "تاريخ الإلغاء" + +#~ msgid "Total revenue estimate" +#~ msgstr "إجمالي تقدير الإيرادات" + +#~ msgid "Estimated cost to complete the quoted work." +#~ msgstr "التكلفة المقدرة لإكمال العمل المذكور." + +#~ msgid "Labor Cost of labor estimate" +#~ msgstr "تكلفة تقدير العمالة" + +#~ msgid "Estimated labor cost to complete the quoted work." +#~ msgstr "التكلفة المقدرة للعمالة لإكمال العمل المذكور." + +#~ msgid "Material Cost Estimate" +#~ msgstr "تقدير تكلفة المواد" + +#~ msgid "Estimated material cost to complete the quoted work." +#~ msgstr "التكلفة المقدرة للمواد لإكمال العمل المذكور." + +#~ msgid "Equipment Cost Estimate" +#~ msgstr "تقدير تكلفة المعدات" + +#~ msgid "Estimated equipment cost to complete the quoted work." +#~ msgstr "التكلفة المقدرة للمعدات لإكمال العمل المذكور." + +#~ msgid "Other Cost Estimate" +#~ msgstr "تقدير تكلفة أخرى" + +#~ msgid "Customer Job" +#~ msgstr "وظيفة العميل" + +#~ msgid "Customer Jobs" +#~ msgstr "وظائف العملاء" + +#, python-format +#~ msgid "Do you want to mark Estimate %s as Draft?" +#~ msgstr "هل تريد وضع التقدير %s كمسودة؟" + +#, python-format +#~ msgid "Do you want to mark Estimate %s as In Review?" +#~ msgstr "هل تريد وضع التقدير %s قيد المراجعة؟" + +#, python-format +#~ msgid "Do you want to mark Estimate %s as Approved?" +#~ msgstr "هل تريد وضع التقدير %s على أنه معتمد؟" + +#, python-format +#~ msgid "Do you want to mark Estimate %s as Completed?" +#~ msgstr "هل تريد وضع التقدير %s على أنه مكتمل؟" + +#, python-format +#~ msgid "Do you want to mark Estimate %s as Canceled?" +#~ msgstr "هل تريد وضع التقدير %s على أنه ملغى؟" + +#, python-format +#~ msgid "Do you want to mark Estimate %s as Void?" +#~ msgstr "هل تريد إبطال التقدير %s؟" + +#~ msgid "Cannot compute gross margin, total cost is zero." +#~ msgstr "لا يمكن حساب هامش الربح الإجمالي، التكلفة الإجمالية صفر." + +#~ msgid "Invoice Additional Info" +#~ msgstr "معلومات إضافية عن الفاتورة" + +#, python-format +#~ msgid "Do you want to mark Invoice %s as Draft?" +#~ msgstr "هل تريد وضع الفاتورة %s كمسودة؟" + +#, python-format +#~ msgid "Do you want to mark Invoice %s as In Review?" +#~ msgstr "هل تريد وضع الفاتورة %s قيد المراجعة؟" + +#, python-format +#~ msgid "Do you want to mark Invoice %s as Approved?" +#~ msgstr "هل تريد وضع الفاتورة %s على أنها معتمدة؟" + +#, python-format +#~ msgid "Do you want to mark Invoice %s as Paid?" +#~ msgstr "هل تريد وضع الفاتورة %s على أنها مدفوعة؟" + +#, python-format +#~ msgid "Do you want to mark Invoice %s as Void?" +#~ msgstr "هل تريد إبطال الفاتورة %s؟" + +#, python-format +#~ msgid "Do you want to mark Invoice %s as Canceled?" +#~ msgstr "هل تريد إلغاء الفاتورة %s؟" + +#~ msgid "Unit of Measure Name" +#~ msgstr "اسم وحدة القياس" + +#~ msgid "UoM Abbreviation" +#~ msgstr "اختصار وحدة القياس" + +#~ msgid "UoM Entity" +#~ msgstr "كيان وحدة القياس" + +#~ msgid "Labor" +#~ msgstr "العمالة" + +#~ msgid "Lump Sum" +#~ msgstr "مبلغ إجمالي" + +#~ msgid "Product" +#~ msgstr "المنتج" + +#~ msgid "Item Name" +#~ msgstr "اسم العنصر" + +#~ msgid "Item type" +#~ msgstr "نوع العنصر" + +#~ msgid "SKU Code" +#~ msgstr "رمز SKU" + +#~ msgid "UPC Code" +#~ msgstr "رمز UPC" + +#~ msgid "Default monetary value per unit of measure" +#~ msgstr "القيمة النقدية الافتراضية لكل وحدة قياس" + +#~ msgid "Is an item for inventory" +#~ msgstr "هو عنصر للمخزون" + +#~ msgid "It is an item you require for your inventory." +#~ msgstr "إنه عنصر تحتاجه لمخزونك." + +#~ msgid "Is a product or service." +#~ msgstr "هل هو منتج أو خدمة." + +#~ msgid "Is a product or service you sell or provide to customers." +#~ msgstr "هل هو منتج أو خدمة تبيعها أو تقدمها للعملاء." + +#~ msgid "Inventory account where cost will be capitalized." +#~ msgstr "حساب المخزون حيث سيتم رسملة التكلفة." + +#~ msgid "Total inventory received." +#~ msgstr "إجمالي المخزون المستلم." + +#~ msgid "Total value of inventory received." +#~ msgstr "إجمالي قيمة المخزون المستلم." + +#~ msgid "COGS Account" +#~ msgstr "حساب تكلفة البضائع المباعة (COGS)" + +#~ msgid "COGS account where cost will be recognized on Income Statement." +#~ msgstr "" +#~ "حساب تكلفة البضائع المباعة حيث سيتم الاعتراف بالتكلفة في بيان الدخل." + +#~ msgid "Earnings Account" +#~ msgstr "حساب الأرباح" + +#~ msgid "" +#~ "Earnings account where revenue will be recognized on Income Statement." +#~ msgstr "حساب الأرباح حيث سيتم الاعتراف بالإيرادات في بيان الدخل." + +#~ msgid "Expense account where cost will be recognized on Income Statement." +#~ msgstr "حساب المصروف حيث سيتم الاعتراف بالتكلفة في بيان الدخل." + +#~ msgid "Item Additional Info" +#~ msgstr "معلومات إضافية عن العنصر" + +#~ msgid "Item Entity" +#~ msgstr "كيان العنصر" + +#~ msgid "Items must have an associated expense accounts." +#~ msgstr "يجب أن تكون العناصر مرتبطة بحسابات المصروفات." + +#~ msgid "Expenses must have a type." +#~ msgstr "يجب أن يكون للمصروفات نوع." + +#~ msgid "Products must have Inventory, COGS & Earnings accounts." +#~ msgstr "" +#~ "يجب أن يكون للمنتجات حسابات المخزون، وحساب تكلفة البضائع المباعة، وحسابات " +#~ "الأرباح." + +#~ msgid "Product must not be labor..." +#~ msgstr "يجب ألا يكون المنتج من العمالة..." + +#~ msgid "Services must have COGS & Earnings accounts." +#~ msgstr "يجب أن تكون للخدمات حسابات تكلفة البضائع المباعة وحسابات الأرباح." + +#~ msgid "Items for inventory must have Inventory & COGS accounts." +#~ msgstr "يجب أن تكون للعناصر المخزنية حسابات المخزون وتكلفة البضائع المباعة." + +#~ msgid "Inventory items must have a type." +#~ msgstr "يجب أن تكون للعناصر المخزنية نوع." + +#~ msgid "Not Ordered" +#~ msgstr "لم يتم طلبها" + +#~ msgid "Ordered" +#~ msgstr "تم طلبها" + +#~ msgid "In Transit" +#~ msgstr "في الطريق" + +#~ msgid "Bill Model" +#~ msgstr "نموذج الفاتورة" + +#~ msgid "Invoice Model" +#~ msgstr "نموذج الفاتورة" + +#~ msgid "Cost Per Unit" +#~ msgstr "التكلفة لكل وحدة" + +#~ msgid "Total Amount QTY x UnitCost" +#~ msgstr "المبلغ الإجمالي (الكمية × تكلفة الوحدة)" + +#~ msgid "Purchase Order Model" +#~ msgstr "نموذج أمر الشراء" + +#~ msgid "PO Quantity" +#~ msgstr "كمية أمر الشراء" + +#~ msgid "Authorized item quantity for purchasing." +#~ msgstr "الكمية المصرح بها من العنصر للشراء." + +#~ msgid "PO Unit Cost" +#~ msgstr "تكلفة وحدة أمر الشراء" + +#~ msgid "Purchase Order unit cost." +#~ msgstr "تكلفة وحدة أمر الشراء." + +#~ msgid "Authorized maximum item cost per Purchase Order" +#~ msgstr "الحد الأقصى المصرح به لتكلفة العنصر لكل أمر شراء." + +#~ msgid "Maximum authorized cost per Purchase Order." +#~ msgstr "الحد الأقصى المصرح به للتكلفة لكل أمر شراء." + +#~ msgid "PO Item Status" +#~ msgstr "حالة عنصر أمر الشراء" + +#~ msgid "Customer Estimate" +#~ msgstr "تقدير العميل" + +#~ msgid "Estimated/Contract Quantity" +#~ msgstr "الكمية المقدرة/المتعاقد عليها" + +#~ msgid "Estimate/Contract Cost per Unit." +#~ msgstr "تكلفة التقدير/العقد لكل وحدة." + +#~ msgid "Total Estimate/Contract Cost." +#~ msgstr "إجمالي تكلفة التقدير/العقد." + +#~ msgid "Estimate/Contract Revenue per Unit." +#~ msgstr "إيرادات التقدير/العقد لكل وحدة." + +#~ msgid "Total Estimate/Contract Revenue." +#~ msgstr "إجمالي إيرادات التقدير/العقد." + +#~ msgid "Operating" +#~ msgstr "تشغيلية" + +#~ msgid "Investing" +#~ msgstr "استثمارية" + +#~ msgid "Purchase/Disposition of PPE" +#~ msgstr "شراء/التخلص من الممتلكات والمعدات" + +#~ msgid "Purchase/Disposition of Securities" +#~ msgstr "شراء/التخلص من الأوراق المالية" + +#~ msgid "Investing Activity Other" +#~ msgstr "نشاط استثماري آخر" + +#~ msgid "Payoff of Short Term Debt" +#~ msgstr "سداد الدين قصير الأجل" + +#~ msgid "Payoff of Long Term Debt" +#~ msgstr "سداد الدين طويل الأجل" + +#~ msgid "Issuance of Common Stock, Preferred Stock or Capital Contribution" +#~ msgstr "إصدار أسهم عادية، أسهم مفضلة أو مساهمة رأسمالية" + +#~ msgid "Dividends or Distributions to Shareholders" +#~ msgstr "الأرباح أو التوزيعات للمساهمين" + +#~ msgid "Financing Activity Other" +#~ msgstr "نشاط تمويلي آخر" + +#~ msgid "Journal Entry Number" +#~ msgstr "رقم إدخال دفتر اليومية" + +#~ msgid "Origin" +#~ msgstr "الأصل" + +#~ msgid "Cannot post an empty Journal Entry." +#~ msgstr "لا يمكن نشر إدخال دفتر يومية فارغ." + +#~ msgid "User Defined Ledger ID" +#~ msgstr "معرف دفتر الأستاذ المعرّف بواسطة المستخدم" + +#~ msgid "Ledger Entity" +#~ msgstr "كيان دفتر الأستاذ" + +#~ msgid "Posted Ledger" +#~ msgstr "دفتر الأستاذ المنشور" + +#~ msgid "Locked Ledger" +#~ msgstr "دفتر الأستاذ المقفل" + +#~ msgid "Hidden Ledger" +#~ msgstr "دفتر الأستاذ المخفي" + +#~ msgid "Slug field must contain at least 10 characters." +#~ msgstr "يجب أن يحتوي حقل المعرف الفريد على 10 أحرف على الأقل." + +#~ msgid "Address Line 1" +#~ msgstr "عنوان الخط 1" + +#~ msgid "Address Line 2" +#~ msgstr "عنوان الخط 2" + +#~ msgid "Amount Earned" +#~ msgstr "المبلغ المكتسب" + +#~ msgid "Progress Amount" +#~ msgstr "مبلغ التقدم" + +#~ msgid "Markdown Notes" +#~ msgstr "ملاحظات ماركداون" + +#~ msgid "Checking" +#~ msgstr "حساب جاري" + +#~ msgid "Savings" +#~ msgstr "حساب توفير" + +#~ msgid "Credit Card" +#~ msgstr "بطاقة ائتمان" + +#, fuzzy +#~| msgid "Short Term Notes Payable" +#~ msgid "Short Term Loan" +#~ msgstr "السندات المستحقة قصيرة الأجل" + +#, fuzzy +#~| msgid "Long Term Notes Payable" +#~ msgid "Long Term Loan" +#~ msgstr "سندات الدفع طويلة الأجل" + +#~ msgid "Mortgage" +#~ msgstr "الرهن العقاري" + +#, fuzzy +#~| msgid "Financial Analysis" +#~ msgid "Financial Institution" +#~ msgstr "التحليل المالي" + +#~ msgid "Only digits allowed" +#~ msgstr "الأرقام فقط مسموح بها" + +#~ msgid "SWIFT Number" +#~ msgstr "رقم SWIFT" + +#~ msgid "Tax Registration Number" +#~ msgstr "رقم التسجيل الضريبي" + +#~ msgid "Sales Tax Rate" +#~ msgstr "معدل ضريبة المبيعات" + +#~ msgid "Fulfilled" +#~ msgstr "مكتمل" + +#~ msgid "Purchase Order Number" +#~ msgstr "رقم أمر الشراء" + +#~ msgid "Purchase Order Title" +#~ msgstr "عنوان أمر الشراء" + +#, fuzzy +#~| msgid "Purchase Order" +#~ msgid "Purchase Order Amount" +#~ msgstr "أمر شراء" + +#, fuzzy +#~| msgid "Receivable Account" +#~ msgid "Received Amount" +#~ msgstr "حساب المستحقات" + +#~ msgid "Fulfillment Date" +#~ msgstr "تاريخ التنفيذ" + +#, python-format +#~ msgid "Do you want to mark Purchase Order %s as Draft?" +#~ msgstr "هل تريد وضع أمر الشراء %s كمسودة؟" + +#, python-format +#~ msgid "Do you want to mark Purchase Order %s as In Review?" +#~ msgstr "هل تريد وضع أمر الشراء %s قيد المراجعة؟" + +#, python-format +#~ msgid "Do you want to mark Purchase Order %s as Approved?" +#~ msgstr "هل تريد وضع أمر الشراء %s على أنه معتمد؟" + +#, python-format +#~ msgid "Do you want to mark Purchase Order %s as Canceled?" +#~ msgstr "هل تريد إلغاء أمر الشراء %s؟" + +#, python-format +#~ msgid "Do you want to mark Purchase Order %s as Fulfilled?" +#~ msgstr "هل تريد وضع أمر الشراء %s على أنه تم التنفيذ؟" + +#, python-format +#~ msgid "Do you want to mark Purchase Order %s as Void?" +#~ msgstr "هل تريد إبطال أمر الشراء %s؟" + +#~ msgid "" +#~ "Account list must be a list of AccountModel, UUID or str objects (codes)." +#~ msgstr "" +#~ "يجب أن تكون قائمة الحسابات عبارة عن قائمة من كائنات AccountModel أو UUID " +#~ "أو كائنات نصية (رموز)." + +#~ msgid "" +#~ "Account from Chart of Accounts to be associated with this transaction." +#~ msgstr "الحساب من مخطط الحسابات المرتبط بهذه المعاملة." + +#~ msgid "Amount of the transaction." +#~ msgstr "مبلغ المعاملة." + +#~ msgid "Transaction Description" +#~ msgstr "وصف المعاملة" + +#~ msgid "A description to be included with this individual transaction." +#~ msgstr "وصف يتم تضمينه مع هذه المعاملة الفردية." + +#~ msgid "Cleared" +#~ msgstr "تمت التسوية" + +#~ msgid "Reconciled" +#~ msgstr "تمت المطابقة" + +#~ msgid "Transaction" +#~ msgstr "معاملة" + +#~ msgid "Transactions cannot be linked to root accounts." +#~ msgstr "لا يمكن ربط المعاملات بالحسابات الجذرية." + +#~ msgid "Cannot modify transactions on locked journal entries." +#~ msgstr "لا يمكن تعديل المعاملات على إدخالات دفتر اليومية المقفلة." + +#~ msgid "Unit Entity" +#~ msgstr "كيان الوحدة" + +#~ msgid "Is Hidden" +#~ msgstr "مخفي" + +#~ msgid "Vendor Number" +#~ msgstr "رقم المورد" + +#~ msgid "Vendor Entity" +#~ msgstr "كيان المورد" + +#~ msgid "Account Transaction List Report" +#~ msgstr "تقرير قائمة معاملات الحساب" + +#, fuzzy +#~| msgid "CoA Account List" +#~ msgid "CoA Account List" +#~ msgstr "قائمة حسابات دليل الحسابات" + +#~ msgid "Back to CoA List" +#~ msgstr "العودة إلى قائمة مخطط الحسابات" + +#~ msgid "CoA" +#~ msgstr "مخطط الحسابات" + +#~ msgid "CoA Role Default" +#~ msgstr "الدور الافتراضي لمخطط الحسابات" + +#~ msgid "Detail" +#~ msgstr "تفاصيل" + +#~ msgid "Unlock" +#~ msgstr "إلغاء القفل" + +#~ msgid "Create Bank Account" +#~ msgstr "إنشاء حساب بنكي" + +#~ msgid "New Bank Account" +#~ msgstr "حساب بنكي جديد" + +#~ msgid "Routing" +#~ msgstr "التوجيه" + +#~ msgid "ABA" +#~ msgstr "ABA" + +#~ msgid "Inactivate" +#~ msgstr "إلغاء التنشيط" + +#, fuzzy +#~| msgid "Bills" +#~ msgid "Bill List" +#~ msgstr "الفواتير" + +#~ msgid "Go to month:" +#~ msgstr "الذهاب إلى الشهر:" + +#~ msgid "Go to year:" +#~ msgstr "الذهاب إلى السنة:" + +#~ msgid "Go To Dashboard" +#~ msgstr "الذهاب إلى لوحة القيادة" + +#~ msgid "Bill State" +#~ msgstr "حالة الفاتورة" + +#~ msgid "Ledger State" +#~ msgstr "حالة دفتر الأستاذ" + +#~ msgid "Bill Ledger" +#~ msgstr "دفتر الأستاذ للفاتورة" + +#~ msgid "Ledger Journal Entries" +#~ msgstr "إدخالات دفتر اليومية" + +#~ msgid "Lock Ledger" +#~ msgstr "قفل دفتر الأستاذ" + +#~ msgid "Unlock Ledger" +#~ msgstr "إلغاء قفل دفتر الأستاذ" + +#~ msgid "Force Migrate" +#~ msgstr "الهجرة القسرية" + +#~ msgid "Bill Configuration" +#~ msgstr "تكوين الفاتورة" + +#~ msgid "Create Closing Entry" +#~ msgstr "إنشاء إدخال إغلاق" + +#~ msgid "Back To Closing Entries" +#~ msgstr "العودة إلى إدخالات الإغلاق" + +#~ msgid "Back to Closing Entry List" +#~ msgstr "العودة إلى قائمة إدخالات الإغلاق" + +#~ msgid "Closing Entry Transactions" +#~ msgstr "معاملات إدخال الإغلاق" + +#~ msgid "Closing Entries" +#~ msgstr "إدخالات الإغلاق" + +#~ msgid "Latest Closing Entries" +#~ msgstr "أحدث إدخالات الإغلاق" + +#~ msgid "Closing Entry" +#~ msgstr "إدخال الإغلاق" + +#~ msgid "Transaction Count:" +#~ msgstr "عدد المعاملات:" + +#~ msgid "Go To" +#~ msgstr "اذهب إلى" + +#~ msgid "Closing Entry Date" +#~ msgstr "تاريخ إدخال الإغلاق" + +#~ msgid "Txs Count" +#~ msgstr "عدد المعاملات" + +#~ msgid "Feedback" +#~ msgstr "ملاحظات" + +#~ msgid "Report a Bug" +#~ msgstr "الإبلاغ عن خطأ" + +#~ msgid "Mark As Paid" +#~ msgstr "وضع كمدفوع" + +#~ msgid "Create Customer" +#~ msgstr "إنشاء عميل" + +#~ msgid "New Customer" +#~ msgstr "عميل جديد" + +#, fuzzy +#~| msgid "Customer Phone" +#~ msgid "Customer Code" +#~ msgstr "هاتف العميل" + +#~ msgid "Hidden" +#~ msgstr "مخفي" + +#~ msgid "Import OFX File" +#~ msgstr "استيراد ملف OFX" + +#~ msgid "Pending Transactions" +#~ msgstr "المعاملات المعلقة" + +#~ msgid "Imported Transactions" +#~ msgstr "المعاملات المستوردة" + +#~ msgid "No file uploaded" +#~ msgstr "لم يتم رفع أي ملف" + +#~ msgid "Import Job List" +#~ msgstr "قائمة مهام الاستيراد" + +#~ msgid "Manage" +#~ msgstr "إدارة" + +#~ msgid "View JE" +#~ msgstr "عرض إدخال الدفتر" + +#~ msgid "Transaction Activity" +#~ msgstr "نشاط المعاملة" + +#~ msgid "My Entities" +#~ msgstr "كياناتي" + +#~ msgid "New Entity" +#~ msgstr "كيان جديد" + +#~ msgid "New Entity Information" +#~ msgstr "معلومات الكيان الجديد" + +#~ msgid "Accrual Method" +#~ msgstr "طريقة الاستحقاق" + +#~ msgid "Last Closing Date" +#~ msgstr "تاريخ الإغلاق الأخير" + +#~ msgid "Revenue Estimate" +#~ msgstr "تقدير الإيرادات" + +#~ msgid "Cost Estimate" +#~ msgstr "تقدير التكلفة" + +#~ msgid "Profit Estimate" +#~ msgstr "تقدير الربح" + +#~ msgid "Gross Margin Estimate" +#~ msgstr "تقدير الهامش الإجمالي" + +#~ msgid "Estimate Items" +#~ msgstr "عناصر التقدير" + +#~ msgid "Initiate PO" +#~ msgstr "بدء أمر الشراء" + +#~ msgid "Initiate Bill" +#~ msgstr "بدء الفاتورة" + +#~ msgid "Initiate Invoice" +#~ msgstr "بدء الفاتورة" + +#~ msgid "Latest Estimates" +#~ msgstr "أحدث التقديرات" + +#~ msgid "Estimated Revenue" +#~ msgstr "الإيرادات المقدرة" + +#~ msgid "Cost Breakdown" +#~ msgstr "تفصيل التكلفة" + +#~ msgid "Labor Cost" +#~ msgstr "تكلفة العمالة" + +#~ msgid "Materials Cost" +#~ msgstr "تكلفة المواد" + +#~ msgid "Equipment Cost" +#~ msgstr "تكلفة المعدات" + +#~ msgid "Other Cost" +#~ msgstr "تكلفة أخرى" + +#~ msgid "Estimated Gross Margin" +#~ msgstr "الهامش الإجمالي المقدر" + +#~ msgid "Cost Progress" +#~ msgstr "تقدم التكلفة" + +#~ msgid "Received Progress" +#~ msgstr "تقدم الاستلام" + +#~ msgid "Unit Sale Price" +#~ msgstr "سعر البيع للوحدة" + +#~ msgid "Total Cost Estimate" +#~ msgstr "التكلفة الإجمالية المقدرة" + +#~ msgid "Total Revenue Estimate" +#~ msgstr "الإيرادات الإجمالية المقدرة" + +#~ msgid "Sales Price" +#~ msgstr "سعر البيع" + +#, python-format +#~ msgid "GM%%" +#~ msgstr "الهامش الإجمالي %%" + +#~ msgid "Unit Sales Price" +#~ msgstr "سعر البيع للوحدة" + +#~ msgid "Business Unit" +#~ msgstr "وحدة الأعمال" + +#~ msgid "The Things I Pay For" +#~ msgstr "الأشياء التي أدفع مقابلها" + +#~ msgid "Expense Number" +#~ msgstr "رقم المصروف" + +#~ msgid "By Unit" +#~ msgstr "حسب الوحدة" + +#~ msgid "Noncash Charges to Current Accounts" +#~ msgstr "تكاليف غير نقدية لحسابات جارية" + +#~ msgid "Accounting Period" +#~ msgstr "الفترة المحاسبية" + +#~ msgid "My Inventory Items" +#~ msgstr "عناصر المخزون الخاصة بي" + +#~ msgid "Recount Inventory" +#~ msgstr "إعادة تعداد المخزون" + +#~ msgid "Update Inventory" +#~ msgstr "تحديث المخزون" + +#~ msgid "Inventory Number" +#~ msgstr "رقم المخزون" + +#~ msgid "Invoice for Estimate" +#~ msgstr "فاتورة لتقدير" + +#~ msgid "Latest Invoices" +#~ msgstr "أحدث الفواتير" + +#~ msgid "Back to Invoice Detail" +#~ msgstr "العودة إلى تفاصيل الفاتورة" + +#~ msgid "Invoice Ledger" +#~ msgstr "دفتر الأستاذ للفاتورة" + +#~ msgid "Invoice Configuration" +#~ msgstr "تكوين الفاتورة" + +#~ msgid "Journal Entry Transactions" +#~ msgstr "معاملات إدخال اليومية" + +#~ msgid "Edit TXS" +#~ msgstr "تعديل المعاملات" + +#~ msgid "Ledger List" +#~ msgstr "قائمة دفاتر الأستاذ" + +#~ msgid "Back to Ledger List" +#~ msgstr "العودة إلى قائمة دفاتر الأستاذ" + +#~ msgid "Lock All" +#~ msgstr "قفل الكل" + +#~ msgid "Post All" +#~ msgstr "نشر الكل" + +#~ msgid "Show All Ledgers" +#~ msgstr "إظهار جميع دفاتر الأستاذ" + +#~ msgid "Show Only Visible Ledgers" +#~ msgstr "إظهار دفاتر الأستاذ المرئية فقط" + +#~ msgid "Show Current Ledgers" +#~ msgstr "إظهار دفاتر الأستاذ الحالية" + +#~ msgid "Earliest JE Date" +#~ msgstr "أقدم تاريخ إدخال اليومية" + +#~ msgid "Locked by Closing Entry" +#~ msgstr "مقفل بإدخال الإغلاق" + +#~ msgid "SKU" +#~ msgstr "رمز المنتج (SKU)" + +#~ msgid "UPC" +#~ msgstr "رمز المنتج العالمي (UPC)" + +#~ msgid "Fulfill" +#~ msgstr "تنفيذ" + +#~ msgid "New PO" +#~ msgstr "أمر شراء جديد" + +#~ msgid "PO for Estimate" +#~ msgstr "أمر شراء للتقدير" + +#~ msgid "Latest Purchase Orders" +#~ msgstr "أحدث أوامر الشراء" + +#~ msgid "Create Entity Unit" +#~ msgstr "إنشاء وحدة كيان" + +#~ msgid "JE Document Prefix" +#~ msgstr "بادئة مستند إدخال اليومية" + +#~ msgid "Entity Units List" +#~ msgstr "قائمة وحدات الكيان" + +#~ msgid "Update Entity Unit" +#~ msgstr "تحديث وحدة الكيان" + +#~ msgid "Abbreviation" +#~ msgstr "الاختصار" + +#~ msgid "Unit of Measures List" +#~ msgstr "قائمة وحدات القياس" + +#~ msgid "Create Vendor" +#~ msgstr "إنشاء مورد" + +#~ msgid "New Vendor" +#~ msgstr "مورد جديد" + +#~ msgid "Entity Accounts" +#~ msgstr "حسابات الكيان" + +#~ msgid "WARNING: The chart of accounts list is inactive." +#~ msgstr "تحذير: قائمة دليل الحسابات غير نشطة." + +#~ msgid "Closing Entry List" +#~ msgstr "قائمة إدخال الإغلاق" + +#~ msgid "Delete Closing Entry" +#~ msgstr "حذف القيد الختامي" + +#~ msgid "Customer List" +#~ msgstr "قائمة العملاء" + +#~ msgid "Customer Update" +#~ msgstr "تحديث العميل" + +#~ msgid "Create Import Job" +#~ msgstr "إنشاء مهمة استيراد" + +#~ msgid "Import Job Staged Txs" +#~ msgstr "معاملات مهام الاستيراد المسرّحة" + +#~ msgid "Create Entity" +#~ msgstr "إنشاء كيان" + +#~ msgid "Delete Entity " +#~ msgstr "حذف الكيان" + +#~ msgid "Customer Estimates" +#~ msgstr "تقديرات العملاء" + +#~ msgid "Customer Estimate Detail" +#~ msgstr "تفاصيل تقدير العميل" + +#~ msgid "Customer Estimate Update" +#~ msgstr "تحديث تقدير العميل" + +#~ msgid "Income Statement: " +#~ msgstr "بيان الدخل:" + +#~ msgid "Cash Flow Statement: " +#~ msgstr "بيان التدفق النقدي:" + +#~ msgid "Inventory Recount" +#~ msgstr "إعادة تعداد المخزون" + +#~ msgid "Delete Invoice " +#~ msgstr "حذف الفاتورة" + +#~ msgid "Unit of Measures" +#~ msgstr "وحدات القياس" + +#~ msgid "Create Unit of Measure" +#~ msgstr "إنشاء وحدة قياس" + +#~ msgid "Update Unit of Measure" +#~ msgstr "تحديث وحدة القياس" + +#~ msgid "Products" +#~ msgstr "المنتجات" + +#~ msgid "Update Product" +#~ msgstr "تحديث المنتج" + +#~ msgid "Create New Service" +#~ msgstr "إنشاء خدمة جديدة" + +#~ msgid "Expense Items" +#~ msgstr "عناصر النفقات" + +#~ msgid "Create New Expense Item" +#~ msgstr "إنشاء عنصر نفقة جديد" + +#~ msgid "Update Expense Item" +#~ msgstr "تحديث عنصر النفقة" + +#~ msgid "Create New Inventory Item" +#~ msgstr "إنشاء عنصر مخزون جديد" + +#~ msgid "Update Inventory Item" +#~ msgstr "تحديث عنصر المخزون" + +#~ msgid "Locked Journal Entry. Must unlock ledger to add new Journal Entries." +#~ msgstr "" +#~ "إدخال دفتر اليومية مقفل. يجب إلغاء قفل دفتر الأستاذ لإضافة إدخالات جديدة " +#~ "في دفتر اليومية." + +#~ msgid "Update Journal Entry" +#~ msgstr "تحديث إدخال اليومية" + +#~ msgid "Edit Transactions" +#~ msgstr "تحرير المعاملات" + +#~ msgid "Locked Journal Entry. Must unlock to Edit." +#~ msgstr "إدخال اليومية مقفل. يجب إلغاء القفل لتحريره." + +#~ msgid "Cannot update a Locked Journal Entry." +#~ msgstr "لا يمكن تحديث إدخال اليومية المقفل." + +#~ msgid "Journal Entry has not been posted." +#~ msgstr "إدخال اليومية لم يتم نشره." + +#~ msgid "Entity Ledgers" +#~ msgstr "دفاتر الأستاذ للكيان" + +#~ msgid "Update Ledger: " +#~ msgstr "تحديث دفتر الأستاذ:" + +#~ msgid "Ledger Balance Sheet: " +#~ msgstr "الميزانية العمومية لدفتر الأستاذ:" + +#~ msgid "Ledger Income Statement: " +#~ msgstr "بيان الدخل لدفتر الأستاذ:" + +#~ msgid "Ledger Cash Flow Statement: " +#~ msgstr "بيان التدفق النقدي لدفتر الأستاذ:" + +#~ msgid "Invalid quarter number" +#~ msgstr "رقم ربع غير صالح" + +#~ msgid "No quarter specified" +#~ msgstr "لم يتم تحديد ربع" + +#~ msgid "ENTITY_SLUG_URL_KWARG must be provided." +#~ msgstr "يجب توفير ENTITY_SLUG_URL_KWARG." + +#~ msgid "Delete Purchase Order " +#~ msgstr "حذف أمر الشراء" + +#~ msgid "Entity Unit List" +#~ msgstr "قائمة وحدات الكيان" + +#~ msgid "Entity Unit Detail" +#~ msgstr "تفاصيل وحدة الكيان" + +#~ msgid "Entity Unit Create" +#~ msgstr "إنشاء وحدة كيان" + +#~ msgid "Entity Unit Update" +#~ msgstr "تحديث وحدة الكيان" + +#~ msgid "Vendor List" +#~ msgstr "قائمة الموردين" + +#~ msgid "Vendor Update" +#~ msgstr "تحديث المورد" + +#~ msgid "" +#~ "You have reached the maximum number of staff users allowed for your plan" +#~ msgstr "لقد وصلت إلى الحد الأقصى لعدد أعضاء الفريق المسموح به في باقتك." + +#~ msgid "Error creating order" +#~ msgstr "خطأ أثناء إنشاء الطلب" + +#, fuzzy +#~| msgid "Account created successfully" +#~ msgid "Account Created Successfully" +#~ msgstr "تم إنشاء الحساب بنجاح." + +#~ msgid "Quotation Amount" +#~ msgstr "مبلغ عرض السعر" + +#~ msgid "Probability indicates conversion chance" +#~ msgstr "تشير النسبة المئوية إلى فرصة التحويل" + +#~ msgid "Probability (%)" +#~ msgstr "الاحتمالية (%)" + +#, fuzzy +#~| msgid "We couldn't process your payment. Please try again" +#~ msgid "Invalid password. Please try again." +#~ msgstr "تعذر معالجة دفعتك. يرجى المحاولة مرة أخرى" + +#~ msgid "Audit Log Dashboard" +#~ msgstr "لوحة سجل التدقيق" + +#, fuzzy, python-format +#~| msgid "Probability (%)" +#~ msgid "Probability (%%)" +#~ msgstr "الاحتمالية (%)" + +#, fuzzy +#~| msgid "No accounts found in this category." +#~ msgid "No notes found for this customer." +#~ msgstr "لم يتم العثور على أي حسابات في هذه الفئة." + +#~ msgid "Edit Account" +#~ msgstr "تعديل الحساب" + +#, fuzzy +#~| msgid "Are you sure you want to delete this lead?" +#~ msgid "Are you sure you want to delete?" +#~ msgstr "هل أنت متأكد أنك تريد حذف هذا العميل المحتمل؟" + +#, fuzzy, python-format +#~| msgid "" +#~| "Order #%(order_id)s\n" +#~| " (status: %(order_status)s)" +#~ msgid "" +#~ "Order #%(order_id)s\n" +#~ " (status: %(order_status)s)" +#~ msgstr "" +#~ "طلب رقم %(order_id)s\n" +#~ "(الحالة: %(order_status)s)" + +#, fuzzy +#~| msgid "Create Order" +#~ msgid "Pay the order" +#~ msgstr "إنشاء طلب" + +#, fuzzy +#~| msgid "Month" +#~ msgid "month" +#~ msgstr "الشهر" + +#~ msgid "Services Offered" +#~ msgstr "الخدمات المقدمة" + +#~ msgid "Extra" +#~ msgstr "إضافي" + +#~ msgid "Cars in Inventory" +#~ msgstr "المخزن" + +#, fuzzy +#~| msgid "No Limit" +#~ msgid "Limit" +#~ msgstr "لا يوجد حد" + +#~ msgid "Sell to another dealer" +#~ msgstr "بيع السيارة لمعرض آخر" + +#, fuzzy +#~| msgid "Select Makes" +#~ msgid "Select Make:" +#~ msgstr "اختر العلامات التجارية" + +#, fuzzy +#~| msgid "HaikalBot" +#~ msgid "Haikal Support" +#~ msgstr "هيكل بوت" + +#, fuzzy +#~| msgid "HaikalBot" +#~ msgid "Haikal Contact" +#~ msgstr "هيكل بوت" + +#~ msgid "Ask me anything..." +#~ msgstr "اسألني عن أي شيء..." + +#~ msgid "Chart" +#~ msgstr "رسم بياني" + +#~ msgid "Car Financial Details" +#~ msgstr "تفاصيل المالية للسيارة" + +#~ msgid "Finance" +#~ msgstr "تمويل" + +#~ msgid "Lease" +#~ msgstr "تأجير" + +#~ msgid "Bank Transfer" +#~ msgstr "تحويل بنكي" + +#~ msgid "Prepaid Expenses" +#~ msgstr "المصروفات المدفوعة مقدمًا" + +#~ msgid "Employee Advance" +#~ msgstr "سلفة الموظف" + +#~ msgid "VAT Receivable" +#~ msgstr "ضريبة القيمة المضافة المستحقة" + +#~ msgid "Investments" +#~ msgstr "الاستثمارات" + +#~ msgid "Long-Term Notes Payable" +#~ msgstr "أوراق الدفع طويلة الأجل" + +#~ msgid "VAT Payable" +#~ msgstr "ضريبة القيمة المضافة المستحقة الدفع" + +#~ msgid "Social Insurance Payable" +#~ msgstr "التأمينات الاجتماعية المستحقة الدفع" + +#~ msgid "End of Service Benefits" +#~ msgstr "مكافأة نهاية الخدمة" + +#~ msgid "Registered Capital" +#~ msgstr "رأس المال المسجل" + +#~ msgid "Additional Paid-In Capital" +#~ msgstr "رأس المال المدفوع الإضافي" + +#~ msgid "Opening Balances" +#~ msgstr "الأرصدة الافتتاحية" + +#~ msgid "Statutory Reserve" +#~ msgstr "الاحتياطي النظامي" + +#~ msgid "Foreign Currency Translation Reserve" +#~ msgstr "احتياطي تحويل العملات الأجنبية" + +#~ msgid "Operating Profits and Losses" +#~ msgstr "الأرباح والخسائر التشغيلية" + +#~ msgid "Retained Earnings (or Losses)" +#~ msgstr "الأرباح المحتجزة (أو الخسائر)" + +#~ msgid "Unearned Income" +#~ msgstr "الدخل غير المكتسب" + +#~ msgid "Sales/Service Revenue" +#~ msgstr "إيرادات المبيعات/الخدمات" + +#~ msgid "Non-Operating Revenues" +#~ msgstr "الإيرادات غير التشغيلية" + +#~ msgid "Accrued Expenses" +#~ msgstr "المصروفات المستحقة" + +#~ msgid "Accrued Salaries" +#~ msgstr "الرواتب المستحقة" + +#~ msgid "Rent Expense" +#~ msgstr "مصروف الإيجار" + +#~ msgid "Salaries and Administrative Fees" +#~ msgstr "الرواتب والرسوم الإدارية" + +#~ msgid "Medical Insurance" +#~ msgstr "التأمين الطبي" + +#~ msgid "Marketing and Advertising Expenses" +#~ msgstr "مصروفات التسويق والإعلان" + +#~ msgid "Commissions and Incentives" +#~ msgstr "العمولات والحوافز" + +#~ msgid "Social Insurance" +#~ msgstr "التأمينات الاجتماعية" + +#~ msgid "Government Fees" +#~ msgstr "الرسوم الحكومية" + +#~ msgid "Fees and Subscriptions" +#~ msgstr "الرسوم والاشتراكات" + +#~ msgid "Office Services Expenses" +#~ msgstr "مصروفات خدمات المكتب" + +#~ msgid "Office Supplies and Printing" +#~ msgstr "اللوازم المكتبية والطباعة" + +#~ msgid "Hospitality Expenses" +#~ msgstr "مصروفات الضيافة" + +#~ msgid "Transportation Expenses" +#~ msgstr "مصروفات النقل" + +#~ msgid "Salaries and Wages" +#~ msgstr "الرواتب والأجور" + +#~ msgid "Sales Commissions" +#~ msgstr "عمولات المبيعات" + +#~ msgid "Shipping and Customs Clearance" +#~ msgstr "الشحن والتخليص الجمركي" + +#~ msgid "Zakat" +#~ msgstr "الزكاة" + +#~ msgid "Taxes" +#~ msgstr "الضرائب" + +#~ msgid "Foreign Currency Translation" +#~ msgstr "تحويل العملات الأجنبية" + +#~ msgid "Interest Expenses" +#~ msgstr "مصروفات الفائدة" + +#~ msgid "Car finance details saved successfully" +#~ msgstr "تم حفظ تفاصيل المالية للسيارة بنجاح." + +#~ msgid "Car finance details updated successfully" +#~ msgstr "تم تحديث تفاصيل المالية للسيارة بنجاح." + +#~ msgid "Journal Entry created" +#~ msgstr "تم إنشاء قيد اليومية" + +#, python-format +#~ msgid "" +#~ "You're receiving this email because user %(user_display)s has given your " +#~ "email address to register an account on %(site_domain)s." +#~ msgstr "" +#~ "لقد تلقيت هذا البريد الإلكتروني لأن المستخدم %(user_display)s قام بإدخال " +#~ "بريدك الإلكتروني لتسجيل حساب في %(site_domain)s." + +#~ msgid "" +#~ "Your email verification code is listed below. Please enter it in your " +#~ "open browser window." +#~ msgstr "" +#~ "رمز التحقق من بريدك الإلكتروني مدرج أدناه. يرجى إدخاله في نافذة المتصفح " +#~ "المفتوحة." + +#, python-format +#~ msgid "To confirm this is correct, go to %(activate_url)s" +#~ msgstr "لتأكيد صحة ذلك، يرجى زيارة %(activate_url)s" + +#~ msgid "Read Terms of Service and Privacy Policy" +#~ msgstr "اقرأ شروط الخدمة وسياسة الخصوصية" + +#~ msgid "Password does not match" +#~ msgstr "كلمة المرور غير متطابقة" + +#~ msgid "Bill Notes" +#~ msgstr "ملاحظات الفاتورة" + +#~ msgid "Edit Customer" +#~ msgstr "تحديث العميل" + +#~ msgid "Related" +#~ msgstr "مرتبط" + +#~ msgid "Profits" +#~ msgstr "الأرباح" + +#~ msgid "Payment received across all channels" +#~ msgstr "تم استلام الدفع عبر جميع القنوات." + +#~ msgid "New Customers" +#~ msgstr "عملاء جدد" + +#~ msgid "Canceled Invoices" +#~ msgstr "الفواتير الملغاة" + +#~ msgid "From last month" +#~ msgstr "من الشهر الماضي." + +#~ msgid "Please Add A Vendor, Before Adding A Car ." +#~ msgstr "يرجى إضافة مورد قبل إضافة السيارة." + +#~ msgid "Date Received" +#~ msgstr "تاريخ الاستلام" + +#~ msgid "NO" +#~ msgstr "لا" + +#~ msgid "YES" +#~ msgstr "نعم" + +#~ msgid "Export" +#~ msgstr "تصدير" + +#~ msgid "Edit Bank Account" +#~ msgstr "تحديث الحساب المصرفي" + +#~ msgid "Enter Organization name" +#~ msgstr "أدخل اسم الشركة" + +#~ msgid "Last" +#~ msgstr "الأخير" + +#~ msgid "Add New Purchase Order" +#~ msgstr "إضافة أمر شراء جديد" + +#~ msgid "Create Inventory Item for PO" +#~ msgstr "إنشاء عنصر مخزون لأمر الشراء" + +#~ msgid "Edit Sale Order" +#~ msgstr "تعديل أمر البيع" + +#~ msgid "Add Sale Order" +#~ msgstr "إضافة أمر بيع" + +#~ msgid "Please provide an estimate." +#~ msgstr "يرجى تقديم تقدير." + +#~ msgid "Please select a payment method." +#~ msgstr "يرجى اختيار طريقة دفع." + +#~ msgid "View Staff" +#~ msgstr "عرض الموظفين" + +#~ msgid "User Details" +#~ msgstr "تفاصيل المستخدم" + +#~ msgid "No Group" +#~ msgstr "لا يوجد مجموعة" + +#~ msgid "Edit Staff" +#~ msgstr "تعديل الموظف" + +#~ msgid "Add Staff" +#~ msgstr "إضافة موظف" + +#~ msgid "role" +#~ msgstr "الدور" + +#~ msgid "Page source" +#~ msgstr "مصدر الصفحة" + +#~ msgid "Related Topics" +#~ msgstr "موضوعات ذات صلة" + +#~ msgid "Documentation overview" +#~ msgstr "نظرة عامة على الوثائق" + +#, python-format +#~ msgid "" +#~ "\n" +#~ " To activate your account and set " +#~ "your password, please use the following secure\n" +#~ " link: Set Your Password. Please\n" +#~ " note that this link will expire " +#~ "in 2 days for your security.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " لتفعيل حسابك وتعيين كلمة المرور، " +#~ "يرجى استخدام الرابط الآمن التالي: تعيين كلمة المرور. يرجى\n" +#~ " ملاحظة أن هذا الرابط سينتهي " +#~ "صلاحيته خلال يومين لضمان الأمان.\n" +#~ " " + +#~ msgid "" +#~ "\n" +#~ " Should you have any inquiries or require " +#~ "further assistance, our support team is here to\n" +#~ " help. You can reach us anytime.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " إذا كان لديك أي استفسارات أو كنت بحاجة " +#~ "إلى مزيد من المساعدة، فإن فريق الدعم لدينا هنا\n" +#~ " لمساعدتك. يمكنك التواصل معنا في أي وقت.\n" +#~ " " + +#, python-format +#~ msgid "not allowed with argument %s" +#~ msgstr "غير مسموح به مع الوسيط %s" + +#, python-format +#~ msgid "ignored explicit argument %r" +#~ msgstr "تم تجاهل الوسيط المحدد %r" + +#~ msgid "too few arguments" +#~ msgstr "عدد غير كافٍ من الوسائط" + +#, fuzzy, python-format +#~| msgid "Prompt is required." +#~ msgid "argument %s is required" +#~ msgstr "الإدخال مطلوب." + +#, python-format +#~ msgid "one of the arguments %s is required" +#~ msgstr "أحد الوسائط %s مطلوب" + +#~ msgid "library" +#~ msgstr "المكتبة" + +#~ msgid "libraries" +#~ msgstr "المكتبات" + +#, python-format +#~ msgid "%(value)s is not a valid hex color. Format should be #RRGGBB or #RGB" +#~ msgstr "" +#~ "%(value)s ليس لون سداسي عشري صالح. يجب أن يكون التنسيق #RRGGBB أو #RGB" + +#~ msgid "Name of this configuration" +#~ msgstr "اسم هذا التكوين" + +#~ msgid "Only one configuration can be active at a time" +#~ msgstr "يمكن أن يكون هناك تكوين نشط واحد فقط في كل مرة" + +#~ msgid "Select the page size for the PDF" +#~ msgstr "اختر حجم الصفحة لملف PDF" + +#~ msgid "Number of items to display per page" +#~ msgstr "عدد العناصر التي سيتم عرضها لكل صفحة" + +#~ msgid "Page margin in millimeters" +#~ msgstr "هامش الصفحة بالمليمترات" + +#~ msgid "Select font from available system fonts" +#~ msgstr "حدد الخط من الخطوط المتاحة في النظام" + +#~ msgid "Font size for headers" +#~ msgstr "حجم الخط للعناوين" + +#~ msgid "Logo to display on PDF" +#~ msgstr "الشعار المعروض في ملف PDF" + +#~ msgid "Header background color (hex format, e.g. #F0F0F0)" +#~ msgstr "لون خلفية العنوان (تنسيق سداسي عشري، مثل #F0F0F0)" + +#~ msgid "Grid line color (hex format, e.g. #000000)" +#~ msgstr "لون خطوط الشبكة (تنسيق سداسي عشري، مثل #000000)" + +#~ msgid "Grid line width in points" +#~ msgstr "عرض خطوط الشبكة بالنقاط" + +#~ msgid "Display the header with model name" +#~ msgstr "عرض العنوان مع اسم النموذج" + +#~ msgid "Display the logo in the PDF" +#~ msgstr "عرض الشعار في ملف PDF" + +#~ msgid "Display export timestamp" +#~ msgstr "عرض الطابع الزمني للتصدير" + +#~ msgid "Display page numbers" +#~ msgstr "عرض أرقام الصفحات" + +#~ msgid "" +#~ "Enable right-to-left (RTL) text support for Arabic and other RTL languages" +#~ msgstr "" +#~ "تمكين دعم النص من اليمين إلى اليسار (RTL) للغة العربية واللغات الأخرى " +#~ "التي تُكتب من اليمين إلى اليسار" + +#~ msgid "Text alignment for table content" +#~ msgstr "محاذاة النص لمحتوى الجدول" + +#~ msgid "Text alignment for table headers" +#~ msgstr "محاذاة النص لعناوين الجدول" + +#~ msgid "Text alignment for the title" +#~ msgstr "محاذاة النص لعنوان التقرير" + +#~ msgid "Spacing between table cells in millimeters" +#~ msgstr "المسافة بين خلايا الجدول بالمليمترات" + +#~ msgid "Maximum characters per line before wrapping" +#~ msgstr "الحد الأقصى لعدد الأحرف في السطر قبل الانتقال إلى سطر جديد" + +#~ msgid "" +#~ "There can only be one active configuration. Please deactivate the current " +#~ "active configuration first." +#~ msgstr "" +#~ "يمكن أن يكون هناك تكوين نشط واحد فقط. يرجى إلغاء تنشيط التكوين الحالي " +#~ "أولاً." + +#~ msgid "Export PDF Settings" +#~ msgstr "إعدادات تصدير PDF" + +#~ msgid "show this help message and exit" +#~ msgstr "إظهار رسالة المساعدة هذه والخروج" diff --git a/recruitment/__pycache__/admin.cpython-312.pyc b/recruitment/__pycache__/admin.cpython-312.pyc index 86a871d..1ada161 100644 Binary files a/recruitment/__pycache__/admin.cpython-312.pyc and b/recruitment/__pycache__/admin.cpython-312.pyc differ diff --git a/recruitment/__pycache__/forms.cpython-312.pyc b/recruitment/__pycache__/forms.cpython-312.pyc index 9c3d6af..40890a1 100644 Binary files a/recruitment/__pycache__/forms.cpython-312.pyc and b/recruitment/__pycache__/forms.cpython-312.pyc differ diff --git a/recruitment/__pycache__/models.cpython-312.pyc b/recruitment/__pycache__/models.cpython-312.pyc index a2a7d03..a99202c 100644 Binary files a/recruitment/__pycache__/models.cpython-312.pyc and b/recruitment/__pycache__/models.cpython-312.pyc differ diff --git a/recruitment/__pycache__/signals.cpython-312.pyc b/recruitment/__pycache__/signals.cpython-312.pyc index 44189be..cd94916 100644 Binary files a/recruitment/__pycache__/signals.cpython-312.pyc and b/recruitment/__pycache__/signals.cpython-312.pyc differ diff --git a/recruitment/__pycache__/urls.cpython-312.pyc b/recruitment/__pycache__/urls.cpython-312.pyc index 9e1e55a..c68f7e6 100644 Binary files a/recruitment/__pycache__/urls.cpython-312.pyc and b/recruitment/__pycache__/urls.cpython-312.pyc differ diff --git a/recruitment/__pycache__/views.cpython-312.pyc b/recruitment/__pycache__/views.cpython-312.pyc index 382a143..0f15f54 100644 Binary files a/recruitment/__pycache__/views.cpython-312.pyc and b/recruitment/__pycache__/views.cpython-312.pyc differ diff --git a/recruitment/__pycache__/views_frontend.cpython-312.pyc b/recruitment/__pycache__/views_frontend.cpython-312.pyc index 04d5aa8..d6e4672 100644 Binary files a/recruitment/__pycache__/views_frontend.cpython-312.pyc and b/recruitment/__pycache__/views_frontend.cpython-312.pyc differ diff --git a/recruitment/email_service.py b/recruitment/email_service.py index a048cf9..90447c9 100644 --- a/recruitment/email_service.py +++ b/recruitment/email_service.py @@ -224,138 +224,208 @@ def send_interview_invitation_email(candidate, job, meeting_details=None, recipi logger.error(error_msg, exc_info=True) return {'success': False, 'error': error_msg} +from .models import Candidate +from django.shortcuts import get_object_or_404 +# Assuming other necessary imports like logger, settings, EmailMultiAlternatives, strip_tags are present -def send_bulk_email(subject, message, recipient_list, request=None, attachments=None, async_task_=False): +from .models import Candidate +from django.shortcuts import get_object_or_404 +import logging +from django.conf import settings +from django.core.mail import EmailMultiAlternatives +from django.utils.html import strip_tags +from django_q.tasks import async_task # Import needed at the top for clarity + +logger = logging.getLogger(__name__) + +def send_bulk_email(subject, message, recipient_list, request=None, attachments=None, async_task_=False, from_interview=False): """ - Send bulk email to multiple recipients with HTML support and attachments. - - Args: - subject: Email subject - message: Email message (can be HTML) - recipient_list: List of email addresses - request: Django request object (optional) - attachments: List of file attachments (optional) - async_task: Whether to run as background task (default: False) - - Returns: - dict: Result with success status and error message if failed + Send bulk email to multiple recipients with HTML support and attachments, + supporting synchronous or asynchronous dispatch. """ - # Handle async task execution - if async_task_: - print("hereeeeeee") - from django_q.tasks import async_task - - # Process attachments for background task serialization - # processed_attachments = [] - # if attachments: - # for attachment in attachments: - # if hasattr(attachment, 'read'): - # # File-like object - save to temporary file - # filename = getattr(attachment, 'name', 'attachment') - # content_type = getattr(attachment, 'content_type', 'application/octet-stream') - - # # Create temporary file - # with tempfile.NamedTemporaryFile(delete=False, suffix=f'_{filename}') as temp_file: - # content = attachment.read() - # temp_file.write(content) - # temp_file_path = temp_file.name - - # # Store file info for background task - # processed_attachments.append({ - # 'file_path': temp_file_path, - # 'filename': filename, - # 'content_type': content_type - # }) - # elif isinstance(attachment, tuple) and len(attachment) == 3: - # # (filename, content, content_type) tuple - can be serialized directly - # processed_attachments.append(attachment) - - # Queue the email sending as a background task - task_id = async_task( - 'recruitment.tasks.send_bulk_email_task', - subject, - message, - recipient_list, - request, - ) - logger.info(f"Bulk email queued as background task with ID: {task_id}") - return { - 'success': True, - 'async': True, - 'task_id': task_id, - 'message': f'Email queued for background sending to {len(recipient_list)} recipient(s)' - } - - # Synchronous execution (default behavior) - try: + + # --- 1. Categorization and Custom Message Preparation (CORRECTED) --- + if not from_interview: + + agency_emails = [] + pure_candidate_emails = [] + candidate_through_agency_emails = [] + if not recipient_list: return {'success': False, 'error': 'No recipients provided'} - # Clean recipient list and remove duplicates - clean_recipients = [] - seen_emails = set() + # This must contain (final_recipient_email, customized_message) for ALL sends + customized_sends = [] + + # 1a. Classify Recipients and Prepare Custom Messages + for email in recipient_list: + email = email.strip().lower() + + try: + candidate = get_object_or_404(Candidate, email=email) + except Exception: + logger.warning(f"Candidate not found for email: {email}") + continue + + candidate_name = candidate.first_name + + # --- Candidate belongs to an agency (Final Recipient: Agency) --- + if candidate.belong_to_an_agency and candidate.hiring_agency and candidate.hiring_agency.email: + agency_email = candidate.hiring_agency.email + agency_message = f"Hi, {candidate_name}" + "\n" + message + + # Add Agency email as the recipient with the custom message + customized_sends.append((agency_email, agency_message)) + agency_emails.append(agency_email) + candidate_through_agency_emails.append(candidate.email) # For sync block only + + # --- Pure Candidate (Final Recipient: Candidate) --- + else: + candidate_message = f"Hi, {candidate_name}" + "\n" + message + + # Add Candidate email as the recipient with the custom message + customized_sends.append((email, candidate_message)) + pure_candidate_emails.append(email) # For sync block only + + # Calculate total recipients based on the size of the final send list + total_recipients = len(customized_sends) - for recipient in recipient_list: - email = recipient.strip().lower() - if email and email not in seen_emails: - clean_recipients.append(email) - seen_emails.add(email) + if total_recipients == 0: + return {'success': False, 'error': 'No valid recipients found for sending.'} + else: + # For interview flow + total_recipients = len(recipient_list) + + + # --- 2. Handle ASYNC Dispatch (FIXED: Single loop used) --- + if async_task_: + try: + + processed_attachments = attachments if attachments else [] + task_ids = [] + + if not from_interview: + # Loop through ALL final customized sends + for recipient_email, custom_message in customized_sends: + task_id = async_task( + 'recruitment.tasks.send_bulk_email_task', + subject, + custom_message, # Pass the custom message + [recipient_email], # Pass the specific recipient as a list of one + processed_attachments, + hook='recruitment.tasks.email_success_hook' + ) + task_ids.append(task_id) + + logger.info(f"{len(task_ids)} tasks ({total_recipients} emails) queued.") - if not clean_recipients: - return {'success': False, 'error': 'No valid email addresses found'} + return { + 'success': True, + 'async': True, + 'task_ids': task_ids, + 'message': f'Emails queued for background sending to {len(task_ids)} recipient(s).' + } + + else: # from_interview is True (generic send to all participants) + task_id = async_task( + 'recruitment.tasks.send_bulk_email_task', + subject, + message, + recipient_list, # Send the original message to the entire list + processed_attachments, + hook='recruitment.tasks.email_success_hook' + ) + task_ids.append(task_id) + logger.info(f"Interview emails queued. ID: {task_id}") + + return { + 'success': True, + 'async': True, + 'task_ids': task_ids, + 'message': f'Interview emails queued for background sending to {total_recipients} recipient(s)' + } - # Prepare email content + + except ImportError: + logger.error("Async execution requested, but django_q or required modules not found. Defaulting to sync.") + async_task_ = False + except Exception as e: + logger.error(f"Failed to queue async tasks: {str(e)}", exc_info=True) + return {'success': False, 'error': f"Failed to queue async tasks: {str(e)}"} + + # --- 3. Handle SYNCHRONOUS Send (No changes needed here, as it was fixed previously) --- + try: + # NOTE: The synchronous block below should also use the 'customized_sends' + # list for consistency instead of rebuilding messages from 'pure_candidate_emails' + # and 'agency_emails', but keeping your current logic structure to minimize changes. + from_email = getattr(settings, 'DEFAULT_FROM_EMAIL', 'noreply@kaauh.edu.sa') - - # Check if message contains HTML tags is_html = '<' in message and '>' in message + successful_sends = 0 - if is_html: - # Create HTML email with plain text fallback - plain_message = strip_tags(message) + # Helper Function for Sync Send (as provided) + def send_individual_email(recipient, body_message): + # ... (Existing helper function logic) ... + nonlocal successful_sends + + if is_html: + plain_message = strip_tags(body_message) + email_obj = EmailMultiAlternatives(subject=subject, body=plain_message, from_email=from_email, to=[recipient]) + email_obj.attach_alternative(body_message, "text/html") + else: + email_obj = EmailMultiAlternatives(subject=subject, body=body_message, from_email=from_email, to=[recipient]) + + if attachments: + for attachment in attachments: + if hasattr(attachment, 'read'): + filename = getattr(attachment, 'name', 'attachment') + content = attachment.read() + content_type = getattr(attachment, 'content_type', 'application/octet-stream') + email_obj.attach(filename, content, content_type) + elif isinstance(attachment, tuple) and len(attachment) == 3: + filename, content, content_type = attachment + email_obj.attach(filename, content, content_type) + + try: + email_obj.send(fail_silently=False) + successful_sends += 1 + except Exception as e: + logger.error(f"Failed to send email to {recipient}: {str(e)}", exc_info=True) - # Create email with both HTML and plain text versions - email = EmailMultiAlternatives( - subject=subject, - body=plain_message, - from_email=from_email, - to=clean_recipients, - ) - email.attach_alternative(message, "text/html") + if not from_interview: + # Send Emails - Pure Candidates + for email in pure_candidate_emails: + candidate_name = Candidate.objects.filter(email=email).first().first_name + candidate_message = f"Hi, {candidate_name}" + "\n" + message + send_individual_email(email, candidate_message) + + # Send Emails - Agencies + i = 0 + for email in agency_emails: + candidate_email = candidate_through_agency_emails[i] + candidate_name = Candidate.objects.filter(email=candidate_email).first().first_name + agency_message = f"Hi, {candidate_name}" + "\n" + message + send_individual_email(email, agency_message) + i += 1 + + logger.info(f"Bulk email processing complete. Sent successfully to {successful_sends} out of {total_recipients} unique recipients.") + return { + 'success': True, + 'recipients_count': successful_sends, + 'message': f'Email processing complete. {successful_sends} email(s) were sent successfully to {total_recipients} unique intended recipients.' + } else: - # Plain text email - email = EmailMultiAlternatives( - subject=subject, - body=message, - from_email=from_email, - to=clean_recipients, - ) - - # Add attachments if provided - # if attachments: - # for attachment in attachments: - # if hasattr(attachment, 'read'): - # # File-like object - # filename = getattr(attachment, 'name', 'attachment') - # content = attachment.read() - # content_type = getattr(attachment, 'content_type', 'application/octet-stream') - # email.attach(filename, content, content_type) - # elif isinstance(attachment, tuple) and len(attachment) == 3: - # # (filename, content, content_type) tuple - # filename, content, content_type = attachment - # email.attach(filename, content, content_type) - - # Send email - email.send(fail_silently=False) - - logger.info(f"Bulk email sent successfully to {len(clean_recipients)} recipients") - return { - 'success': True, - 'recipients_count': len(clean_recipients), - 'message': f'Email sent successfully to {len(clean_recipients)} recipient(s)' - } + for email in recipient_list: + send_individual_email(email, message) + + logger.info(f"Interview email processing complete. Sent successfully to {successful_sends} out of {total_recipients} recipients.") + return { + 'success': True, + 'recipients_count': successful_sends, + 'message': f'Interview emails sent successfully to {successful_sends} recipient(s).' + } except Exception as e: - error_msg = f"Failed to send bulk email: {str(e)}" + error_msg = f"Failed to process bulk email send request: {str(e)}" logger.error(error_msg, exc_info=True) - return {'success': False, 'error': error_msg} + return {'success': False, 'error': error_msg} \ No newline at end of file diff --git a/recruitment/forms.py b/recruitment/forms.py index 87b373b..76bbfc9 100644 --- a/recruitment/forms.py +++ b/recruitment/forms.py @@ -11,7 +11,7 @@ from .models import ( ZoomMeeting, Candidate,TrainingMaterial,JobPosting, FormTemplate,InterviewSchedule,BreakTime,JobPostingImage, Profile,MeetingComment,ScheduledInterview,Source,HiringAgency, - AgencyJobAssignment, AgencyAccessLink,Participants + AgencyJobAssignment, AgencyAccessLink,Participants,OnsiteMeeting ) # from django_summernote.widgets import SummernoteWidget from django_ckeditor_5.widgets import CKEditor5Widget @@ -584,11 +584,12 @@ class InterviewScheduleForm(forms.ModelForm): class Meta: model = InterviewSchedule fields = [ - 'candidates', 'start_date', 'end_date', 'working_days', + 'candidates', 'interview_type', 'start_date', 'end_date', 'working_days', 'start_time', 'end_time', 'interview_duration', 'buffer_time', 'break_start_time', 'break_end_time' ] widgets = { + 'interview_type': forms.Select(attrs={'class': 'form-control'}), 'start_date': forms.DateInput(attrs={'type': 'date', 'class': 'form-control'}), 'end_date': forms.DateInput(attrs={'type': 'date', 'class': 'form-control'}), 'start_time': forms.TimeInput(attrs={'type': 'time', 'class': 'form-control'}), @@ -1243,29 +1244,37 @@ class ParticipantsForm(forms.ModelForm): } -class ParticipantsSelectForm(forms.ModelForm): - """Form for selecting Participants""" +# class ParticipantsSelectForm(forms.ModelForm): +# """Form for selecting Participants""" - participants=forms.ModelMultipleChoiceField( - queryset=Participants.objects.all(), - widget=forms.CheckboxSelectMultiple, - required=False, - label=_("Select Participants")) +# participants=forms.ModelMultipleChoiceField( +# queryset=Participants.objects.all(), +# widget=forms.CheckboxSelectMultiple, +# required=False, +# label=_("Select Participants")) - users=forms.ModelMultipleChoiceField( - queryset=User.objects.all(), - widget=forms.CheckboxSelectMultiple, - required=False, - label=_("Select Users")) +# users=forms.ModelMultipleChoiceField( +# queryset=User.objects.all(), +# widget=forms.CheckboxSelectMultiple, +# required=False, +# label=_("Select Users")) - class Meta: - model = JobPosting - fields = ['participants','users'] # No direct fields from Participants model +# class Meta: +# model = JobPosting +# fields = ['participants','users'] # No direct fields from Participants model class CandidateEmailForm(forms.Form): """Form for composing emails to participants about a candidate""" - + to = forms.MultipleChoiceField( + widget=forms.CheckboxSelectMultiple(attrs={ + 'class': 'form-check' + }), + label=_('Select Candidates'), # Use a descriptive label + required=False + ) + + subject = forms.CharField( max_length=200, widget=forms.TextInput(attrs={ @@ -1288,138 +1297,326 @@ class CandidateEmailForm(forms.Form): required=True ) - recipients = forms.MultipleChoiceField( - widget=forms.CheckboxSelectMultiple(attrs={ - 'class': 'form-check' - }), - label=_('Recipients'), - required=True - ) - - include_candidate_info = forms.BooleanField( - widget=forms.CheckboxInput(attrs={ - 'class': 'form-check-input' - }), - label=_('Include candidate information'), - initial=True, - required=False - ) - - include_meeting_details = forms.BooleanField( - widget=forms.CheckboxInput(attrs={ - 'class': 'form-check-input' - }), - label=_('Include meeting details'), - initial=True, - required=False - ) + - def __init__(self, job, candidate, *args, **kwargs): + def __init__(self, job, candidates, *args, **kwargs): super().__init__(*args, **kwargs) self.job = job - self.candidate = candidate - - # Get all participants and users for this job - recipient_choices = [] - - # Add job participants - for participant in job.participants.all(): - recipient_choices.append( - (f'participant_{participant.id}', f'{participant.name} - {participant.designation} (Participant)') + self.candidates=candidates + + candidate_choices=[] + for candidate in candidates: + candidate_choices.append( + (f'candidate_{candidate.id}', f'{candidate.email}') ) + - # Add job users - for user in job.users.all(): - recipient_choices.append( - (f'user_{user.id}', f'{user.get_full_name() or user.username} - {user.email} (User)') - ) - - self.fields['recipients'].choices = recipient_choices - self.fields['recipients'].initial = [choice[0] for choice in recipient_choices] # Select all by default - - # Set initial subject - self.fields['subject'].initial = f'Interview Update: {candidate.name} - {job.title}' + self.fields['to'].choices =candidate_choices + self.fields['to'].initial = [choice[0] for choice in candidate_choices] + + # Set initial message with candidate and meeting info initial_message = self._get_initial_message() + if initial_message: self.fields['message'].initial = initial_message def _get_initial_message(self): """Generate initial message with candidate and meeting information""" - message_parts = [] + candidate=self.candidates.first() + message_parts=[] + + if candidate and candidate.stage == 'Applied': + message_parts = [ + f"Than you, for your interest in the {self.job.title} role.", + f"We regret to inform you that you were not selected to move forward to the exam round at this time.", + f"We encourage you to check our career page for further updates and future opportunities:", + f"https://kaauh/careers", + f"Wishing you the best in your job search,", + f"The KAAUH Hiring team" + ] + elif candidate and candidate.stage == 'Exam': + message_parts = [ + f"Than you,for your interest in the {self.job.title} role.", + f"We're pleased to inform you that your initial screening was successful!", + f"The next step is the mandatory online assessment exam.", + f"Please complete the assessment by using the following link:", + f"https://kaauh/hire/exam", + f"We look forward to reviewing your results.", + f"Best regards, The KAAUH Hiring team" + ] + + elif candidate and candidate.stage == 'Interview': + message_parts = [ + f"Than you, for your interest in the {self.job.title} role.", + f"We're pleased to inform you that your initial screening was successful!", + f"The next step is the mandatory online assessment exam.", + f"Please complete the assessment by using the following link:", + f"https://kaauh/hire/exam", + f"We look forward to reviewing your results.", + f"Best regards, The KAAUH Hiring team" + ] + + elif candidate and candidate.stage == 'Offer': + message_parts = [ + f"Congratulations, ! We are delighted to inform you that we are extending a formal offer of employment for the {self.job.title} role.", + f"This is an exciting moment, and we look forward to having you join the KAAUH team.", + f"A detailed offer letter and compensation package will be sent to you via email within 24 hours.", + f"In the meantime, please contact our HR department at [HR Contact] if you have immediate questions.", + f"Welcome to the team!", + f"Best regards, The KAAUH Hiring team" + ] + elif candidate and candidate.stage == 'Hired': + message_parts = [ + f"Welcome aboard,!", + f"We are thrilled to officially confirm your employment as our new {self.job.title}.", + f"You will receive a separate email shortly with details regarding your start date, first-day instructions, and onboarding documents.", + f"We look forward to seeing you at KAAUH.", + f"If you have any questions before your start date, please contact [Onboarding Contact].", + f"Best regards, The KAAUH Hiring team" + ] + + + - # Add candidate information - if self.candidate: - message_parts.append(f"Candidate Information:") - message_parts.append(f"Name: {self.candidate.name}") - message_parts.append(f"Email: {self.candidate.email}") - message_parts.append(f"Phone: {self.candidate.phone}") + # # Add candidate information + # if self.candidate: + # message_parts.append(f"Candidate Information:") + # message_parts.append(f"Name: {self.candidate.name}") + # message_parts.append(f"Email: {self.candidate.email}") + # message_parts.append(f"Phone: {self.candidate.phone}") - # Add latest meeting information if available - latest_meeting = self.candidate.get_latest_meeting - if latest_meeting: - message_parts.append(f"\nMeeting Information:") - message_parts.append(f"Topic: {latest_meeting.topic}") - message_parts.append(f"Date & Time: {latest_meeting.start_time.strftime('%B %d, %Y at %I:%M %p')}") - message_parts.append(f"Duration: {latest_meeting.duration} minutes") - if latest_meeting.join_url: - message_parts.append(f"Join URL: {latest_meeting.join_url}") + # # Add latest meeting information if available + # latest_meeting = self.candidate.get_latest_meeting + # if latest_meeting: + # message_parts.append(f"\nMeeting Information:") + # message_parts.append(f"Topic: {latest_meeting.topic}") + # message_parts.append(f"Date & Time: {latest_meeting.start_time.strftime('%B %d, %Y at %I:%M %p')}") + # message_parts.append(f"Duration: {latest_meeting.duration} minutes") + # if latest_meeting.join_url: + # message_parts.append(f"Join URL: {latest_meeting.join_url}") return '\n'.join(message_parts) - def clean_recipients(self): - """Ensure at least one recipient is selected""" - recipients = self.cleaned_data.get('recipients') - if not recipients: - raise forms.ValidationError(_('Please select at least one recipient.')) - return recipients def get_email_addresses(self): """Extract email addresses from selected recipients""" email_addresses = [] - recipients = self.cleaned_data.get('recipients', []) - for recipient in recipients: - if recipient.startswith('participant_'): - participant_id = recipient.split('_')[1] - try: - participant = Participants.objects.get(id=participant_id) - email_addresses.append(participant.email) - except Participants.DoesNotExist: - continue - elif recipient.startswith('user_'): - user_id = recipient.split('_')[1] - try: - user = User.objects.get(id=user_id) - email_addresses.append(user.email) - except User.DoesNotExist: - continue + + candidates=self.cleaned_data.get('to',[]) + + if candidates: + for candidate in candidates: + if candidate.startswith('candidate_'): + print("candidadte: {candidate}") + candidate_id = candidate.split('_')[1] + try: + candidate = Candidate.objects.get(id=candidate_id) + email_addresses.append(candidate.email) + except Candidate.DoesNotExist: + continue + return list(set(email_addresses)) # Remove duplicates + def get_formatted_message(self): """Get the formatted message with optional additional information""" message = self.cleaned_data.get('message', '') - # Add candidate information if requested - if self.cleaned_data.get('include_candidate_info') and self.candidate: - candidate_info = f"\n\n--- Candidate Information ---\n" - candidate_info += f"Name: {self.candidate.name}\n" - candidate_info += f"Email: {self.candidate.email}\n" - candidate_info += f"Phone: {self.candidate.phone}\n" - message += candidate_info - - # Add meeting details if requested - if self.cleaned_data.get('include_meeting_details') and self.candidate: - latest_meeting = self.candidate.get_latest_meeting - if latest_meeting: - meeting_info = f"\n\n--- Meeting Details ---\n" - meeting_info += f"Topic: {latest_meeting.topic}\n" - meeting_info += f"Date & Time: {latest_meeting.start_time.strftime('%B %d, %Y at %I:%M %p')}\n" - meeting_info += f"Duration: {latest_meeting.duration} minutes\n" - if latest_meeting.join_url: - meeting_info += f"Join URL: {latest_meeting.join_url}\n" - message += meeting_info - return message + + +class InterviewParticpantsForm(forms.ModelForm): + participants = forms.ModelMultipleChoiceField( + queryset=Participants.objects.all(), + widget=forms.CheckboxSelectMultiple, + required=False , + + ) + system_users=forms.ModelMultipleChoiceField( + queryset=User.objects.all(), + widget=forms.CheckboxSelectMultiple, + required=False, + label=_("Select Users")) + + class Meta: + model = InterviewSchedule + fields = ['participants','system_users'] + + + +class InterviewEmailForm(forms.Form): + subject = forms.CharField( + max_length=200, + widget=forms.TextInput(attrs={ + 'class': 'form-control', + 'placeholder': 'Enter email subject', + 'required': True + }), + label=_('Subject'), + required=True + ) + + message_for_candidate= forms.CharField( + widget=forms.Textarea(attrs={ + 'class': 'form-control', + 'rows': 8, + 'placeholder': 'Enter your message here...', + 'required': True + }), + label=_('Message'), + required=False + ) + message_for_agency= forms.CharField( + widget=forms.Textarea(attrs={ + 'class': 'form-control', + 'rows': 8, + 'placeholder': 'Enter your message here...', + 'required': True + }), + label=_('Message'), + required=False + ) + message_for_participants= forms.CharField( + widget=forms.Textarea(attrs={ + 'class': 'form-control', + 'rows': 8, + 'placeholder': 'Enter your message here...', + 'required': True + }), + label=_('Message'), + required=False + ) + + def __init__(self, *args,candidate, external_participants, system_participants,meeting,job,**kwargs): + super().__init__(*args, **kwargs) + + # --- Data Preparation --- + # Note: Added error handling for agency name if it's missing (though it shouldn't be based on your check) + formatted_date = meeting.start_time.strftime('%Y-%m-%d') + formatted_time = meeting.start_time.strftime('%I:%M %p') + zoom_link = meeting.join_url + duration = meeting.duration + job_title = job.title + agency_name = candidate.hiring_agency.name if candidate.belong_to_an_agency and candidate.hiring_agency else "Hiring Agency" + + # --- Combined Participants List for Internal Email --- + external_participants_names = ", ".join([p.name for p in external_participants ]) + system_participants_names = ", ".join([p.first_name for p in system_participants ]) + + # Combine and ensure no leading/trailing commas if one list is empty + participant_names = ", ".join(filter(None, [external_participants_names, system_participants_names])) + + + # --- 1. Candidate Message (More concise and structured) --- + candidate_message = f""" +Dear {candidate.full_name}, + +Thank you for your interest in the **{job_title}** position at KAAUH. We're pleased to invite you to an interview! + +The details of your virtual interview are as follows: + +- **Date:** {formatted_date} +- **Time:** {formatted_time} (RIYADH TIME) +- **Duration:** {duration} +- **Meeting Link:** {zoom_link} + +Please click the link at the scheduled time to join the interview. + +Kindly reply to this email to **confirm your attendance** or to propose an alternative time if necessary. + +We look forward to meeting you. + +Best regards, +KAAUH Hiring Team +""" + + + # --- 2. Agency Message (Professional and clear details) --- + agency_message = f""" +Dear {agency_name}, + +We have scheduled an interview for your candidate, **{candidate.full_name}**, for the **{job_title}** role. + +Please forward the following details to the candidate and ensure they are fully prepared. + +**Interview Details:** + +- **Candidate:** {candidate.full_name} +- **Job Title:** {job_title} +- **Date:** {formatted_date} +- **Time:** {formatted_time} (RIYADH TIME) +- **Duration:** {duration} +- **Meeting Link:** {zoom_link} + +Please let us know if you or the candidate have any questions. + +Best regards, +KAAUH Hiring Team +""" + + # --- 3. Participants Message (Action-oriented and informative) --- + participants_message = f""" +Hi Team, + +This is a reminder of the upcoming interview you are scheduled to participate in for the **{job_title}** position. + +**Interview Summary:** + +- **Candidate:** {candidate.full_name} +- **Date:** {formatted_date} +- **Time:** {formatted_time} (RIYADH TIME) +- **Duration:** {duration} +- **Your Fellow Interviewers:** {participant_names} + +**Action Items:** + +1. Please review **{candidate.full_name}'s** resume and notes. +2. The official calendar invite contains the meeting link ({zoom_link}) and should be used to join. +3. Be ready to start promptly at the scheduled time. + +Thank you for your participation. + +Best regards, +KAAUH HIRING TEAM +""" + + # Set initial data + self.initial['subject'] = f"Interview Invitation: {job_title} at KAAUH - {candidate.full_name}" + # .strip() removes the leading/trailing blank lines caused by the f""" format + self.initial['message_for_candidate'] = candidate_message.strip() + self.initial['message_for_agency'] = agency_message.strip() + self.initial['message_for_participants'] = participants_message.strip() + + + + +# class OnsiteLocationForm(forms.ModelForm): +# class Meta: +# model= +# fields=['location'] +# widgets={ +# 'location': forms.TextInput(attrs={'placeholder': 'Enter Interview Location'}), +# } + + + +class OnsiteMeetingForm(forms.ModelForm): + class Meta: + model = OnsiteMeeting + fields = ['topic', 'start_time', 'duration', 'timezone', 'location', 'status'] + widgets = { + 'topic': forms.TextInput(attrs={'placeholder': 'Enter the Meeting Topic', 'class': 'form-control'}), + 'start_time': forms.DateTimeInput( + attrs={'type': 'datetime-local', 'class': 'form-control'} + ), + 'duration': forms.NumberInput( + attrs={'min': 15, 'placeholder': 'Duration in minutes', 'class': 'form-control'} + ), + 'location': forms.TextInput(attrs={'placeholder': 'Physical location', 'class': 'form-control'}), + 'timezone': forms.TextInput(attrs={'class': 'form-control'}), + 'status': forms.Select(attrs={'class': 'form-control'}), + } \ No newline at end of file diff --git a/recruitment/migrations/0001_initial.py b/recruitment/migrations/0001_initial.py index 306ceb7..6e83eef 100644 --- a/recruitment/migrations/0001_initial.py +++ b/recruitment/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.6 on 2025-10-30 10:22 +# Generated by Django 5.2.7 on 2025-11-05 13:05 import django.core.validators import django.db.models.deletion diff --git a/recruitment/migrations/0002_scheduledinterview_participants.py b/recruitment/migrations/0002_scheduledinterview_participants.py new file mode 100644 index 0000000..71c0a2c --- /dev/null +++ b/recruitment/migrations/0002_scheduledinterview_participants.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.7 on 2025-11-06 15:19 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('recruitment', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='scheduledinterview', + name='participants', + field=models.ManyToManyField(blank=True, to='recruitment.participants'), + ), + ] diff --git a/recruitment/migrations/0003_scheduledinterview_system_users.py b/recruitment/migrations/0003_scheduledinterview_system_users.py new file mode 100644 index 0000000..e365758 --- /dev/null +++ b/recruitment/migrations/0003_scheduledinterview_system_users.py @@ -0,0 +1,20 @@ +# Generated by Django 5.2.7 on 2025-11-06 15:37 + +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('recruitment', '0002_scheduledinterview_participants'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AddField( + model_name='scheduledinterview', + name='system_users', + field=models.ManyToManyField(blank=True, to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/recruitment/migrations/0004_remove_jobposting_participants_and_more.py b/recruitment/migrations/0004_remove_jobposting_participants_and_more.py new file mode 100644 index 0000000..9368b3a --- /dev/null +++ b/recruitment/migrations/0004_remove_jobposting_participants_and_more.py @@ -0,0 +1,21 @@ +# Generated by Django 5.2.7 on 2025-11-06 15:44 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('recruitment', '0003_scheduledinterview_system_users'), + ] + + operations = [ + migrations.RemoveField( + model_name='jobposting', + name='participants', + ), + migrations.RemoveField( + model_name='jobposting', + name='users', + ), + ] diff --git a/recruitment/migrations/0005_scheduledinterview_meeting_type.py b/recruitment/migrations/0005_scheduledinterview_meeting_type.py new file mode 100644 index 0000000..fe94194 --- /dev/null +++ b/recruitment/migrations/0005_scheduledinterview_meeting_type.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.7 on 2025-11-09 11:06 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('recruitment', '0004_remove_jobposting_participants_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='scheduledinterview', + name='meeting_type', + field=models.CharField(choices=[('Remote', 'Remote Interview'), ('Onsite', 'In-Person Interview')], default='Remote', max_length=10, verbose_name='Interview Meeting Type'), + ), + ] diff --git a/recruitment/migrations/0006_remove_scheduledinterview_meeting_type_and_more.py b/recruitment/migrations/0006_remove_scheduledinterview_meeting_type_and_more.py new file mode 100644 index 0000000..9270e59 --- /dev/null +++ b/recruitment/migrations/0006_remove_scheduledinterview_meeting_type_and_more.py @@ -0,0 +1,22 @@ +# Generated by Django 5.2.7 on 2025-11-09 11:12 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('recruitment', '0005_scheduledinterview_meeting_type'), + ] + + operations = [ + migrations.RemoveField( + model_name='scheduledinterview', + name='meeting_type', + ), + migrations.AddField( + model_name='interviewschedule', + name='meeting_type', + field=models.CharField(choices=[('Remote', 'Remote Interview'), ('Onsite', 'In-Person Interview')], default='Remote', max_length=10, verbose_name='Interview Meeting Type'), + ), + ] diff --git a/recruitment/migrations/0007_rename_meeting_type_interviewschedule_interview_type.py b/recruitment/migrations/0007_rename_meeting_type_interviewschedule_interview_type.py new file mode 100644 index 0000000..85e6f83 --- /dev/null +++ b/recruitment/migrations/0007_rename_meeting_type_interviewschedule_interview_type.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.7 on 2025-11-09 11:30 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('recruitment', '0006_remove_scheduledinterview_meeting_type_and_more'), + ] + + operations = [ + migrations.RenameField( + model_name='interviewschedule', + old_name='meeting_type', + new_name='interview_type', + ), + ] diff --git a/recruitment/migrations/0008_interviewschedule_location.py b/recruitment/migrations/0008_interviewschedule_location.py new file mode 100644 index 0000000..2800b75 --- /dev/null +++ b/recruitment/migrations/0008_interviewschedule_location.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.7 on 2025-11-09 12:37 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('recruitment', '0007_rename_meeting_type_interviewschedule_interview_type'), + ] + + operations = [ + migrations.AddField( + model_name='interviewschedule', + name='location', + field=models.CharField(blank=True, default='Remote', null=True), + ), + ] diff --git a/recruitment/migrations/0009_alter_zoommeeting_meeting_id.py b/recruitment/migrations/0009_alter_zoommeeting_meeting_id.py new file mode 100644 index 0000000..602917a --- /dev/null +++ b/recruitment/migrations/0009_alter_zoommeeting_meeting_id.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.7 on 2025-11-09 13:43 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('recruitment', '0008_interviewschedule_location'), + ] + + operations = [ + migrations.AlterField( + model_name='zoommeeting', + name='meeting_id', + field=models.CharField(blank=True, db_index=True, max_length=20, null=True, unique=True, verbose_name='Meeting ID'), + ), + ] diff --git a/recruitment/migrations/0010_alter_zoommeeting_meeting_id.py b/recruitment/migrations/0010_alter_zoommeeting_meeting_id.py new file mode 100644 index 0000000..d64f578 --- /dev/null +++ b/recruitment/migrations/0010_alter_zoommeeting_meeting_id.py @@ -0,0 +1,19 @@ +# Generated by Django 5.2.7 on 2025-11-09 13:48 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('recruitment', '0009_alter_zoommeeting_meeting_id'), + ] + + operations = [ + migrations.AlterField( + model_name='zoommeeting', + name='meeting_id', + field=models.CharField(db_index=True, default=1, max_length=20, unique=True, verbose_name='Meeting ID'), + preserve_default=False, + ), + ] diff --git a/recruitment/migrations/0011_alter_scheduledinterview_zoom_meeting.py b/recruitment/migrations/0011_alter_scheduledinterview_zoom_meeting.py new file mode 100644 index 0000000..dba9c62 --- /dev/null +++ b/recruitment/migrations/0011_alter_scheduledinterview_zoom_meeting.py @@ -0,0 +1,19 @@ +# Generated by Django 5.2.7 on 2025-11-09 13:50 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('recruitment', '0010_alter_zoommeeting_meeting_id'), + ] + + operations = [ + migrations.AlterField( + model_name='scheduledinterview', + name='zoom_meeting', + field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='interview', to='recruitment.zoommeeting'), + ), + ] diff --git a/recruitment/migrations/0012_interviewschedule_interview_topic.py b/recruitment/migrations/0012_interviewschedule_interview_topic.py new file mode 100644 index 0000000..fbf21b7 --- /dev/null +++ b/recruitment/migrations/0012_interviewschedule_interview_topic.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.7 on 2025-11-10 09:27 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('recruitment', '0011_alter_scheduledinterview_zoom_meeting'), + ] + + operations = [ + migrations.AddField( + model_name='interviewschedule', + name='interview_topic', + field=models.CharField(blank=True, null=True), + ), + ] diff --git a/recruitment/migrations/0013_onsitemeeting_and_more.py b/recruitment/migrations/0013_onsitemeeting_and_more.py new file mode 100644 index 0000000..4cb09d6 --- /dev/null +++ b/recruitment/migrations/0013_onsitemeeting_and_more.py @@ -0,0 +1,45 @@ +# Generated by Django 5.2.7 on 2025-11-10 13:00 + +import django.db.models.deletion +import django_extensions.db.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('recruitment', '0012_interviewschedule_interview_topic'), + ] + + operations = [ + migrations.CreateModel( + name='OnsiteMeeting', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created at')), + ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated at')), + ('slug', django_extensions.db.fields.RandomCharField(blank=True, editable=False, length=8, unique=True, verbose_name='Slug')), + ('topic', models.CharField(max_length=255, verbose_name='Topic')), + ('start_time', models.DateTimeField(db_index=True, verbose_name='Start Time')), + ('duration', models.PositiveIntegerField(verbose_name='Duration')), + ('timezone', models.CharField(max_length=50, verbose_name='Timezone')), + ('location', models.CharField(blank=True, null=True)), + ], + options={ + 'abstract': False, + }, + ), + migrations.RemoveField( + model_name='interviewschedule', + name='interview_topic', + ), + migrations.RemoveField( + model_name='interviewschedule', + name='location', + ), + migrations.AddField( + model_name='scheduledinterview', + name='onsite_meeting', + field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='interview', to='recruitment.onsitemeeting'), + ), + ] diff --git a/recruitment/migrations/0014_onsitemeeting_status.py b/recruitment/migrations/0014_onsitemeeting_status.py new file mode 100644 index 0000000..78270f1 --- /dev/null +++ b/recruitment/migrations/0014_onsitemeeting_status.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.7 on 2025-11-10 13:20 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('recruitment', '0013_onsitemeeting_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='onsitemeeting', + name='status', + field=models.CharField(blank=True, db_index=True, default='waiting', max_length=20, null=True, verbose_name='Status'), + ), + ] diff --git a/recruitment/migrations/0015_alter_scheduledinterview_onsite_meeting.py b/recruitment/migrations/0015_alter_scheduledinterview_onsite_meeting.py new file mode 100644 index 0000000..3127c6b --- /dev/null +++ b/recruitment/migrations/0015_alter_scheduledinterview_onsite_meeting.py @@ -0,0 +1,19 @@ +# Generated by Django 5.2.7 on 2025-11-10 13:55 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('recruitment', '0014_onsitemeeting_status'), + ] + + operations = [ + migrations.AlterField( + model_name='scheduledinterview', + name='onsite_meeting', + field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='onsite_interview', to='recruitment.onsitemeeting'), + ), + ] diff --git a/recruitment/models.py b/recruitment/models.py index ad673b9..bd25ec7 100644 --- a/recruitment/models.py +++ b/recruitment/models.py @@ -54,18 +54,18 @@ class JobPosting(Base): ("HYBRID", "Hybrid"), ] - users=models.ManyToManyField( - User, - blank=True,related_name="jobs_assigned", - verbose_name=_("Internal Participant"), - help_text=_("Internal staff involved in the recruitment process for this job"), - ) + # users=models.ManyToManyField( + # User, + # blank=True,related_name="jobs_assigned", + # verbose_name=_("Internal Participant"), + # help_text=_("Internal staff involved in the recruitment process for this job"), + # ) - participants=models.ManyToManyField('Participants', - blank=True,related_name="jobs_participating", - verbose_name=_("External Participant"), - help_text=_("External participants involved in the recruitment process for this job"), - ) + # participants=models.ManyToManyField('Participants', + # blank=True,related_name="jobs_participating", + # verbose_name=_("External Participant"), + # help_text=_("External participants involved in the recruitment process for this job"), + # ) # Core Fields title = models.CharField(max_length=200) @@ -421,6 +421,7 @@ class Candidate(Base): related_name="candidates", verbose_name=_("Job"), ) + first_name = models.CharField(max_length=255, verbose_name=_("First Name")) last_name = models.CharField(max_length=255, verbose_name=_("Last Name")) email = models.EmailField(db_index=True, verbose_name=_("Email")) # Added index @@ -706,6 +707,11 @@ class Candidate(Base): time_to_hire = self.hired_date - self.created_at.date() return time_to_hire.days return 0 + + @property + def belong_to_an_agency(self): + return self.hiring_source=='Agency' + class TrainingMaterial(Base): title = models.CharField(max_length=255, verbose_name=_("Title")) @@ -725,6 +731,27 @@ class TrainingMaterial(Base): def __str__(self): return self.title +class OnsiteMeeting(Base): + class MeetingStatus(models.TextChoices): + WAITING = "waiting", _("Waiting") + STARTED = "started", _("Started") + ENDED = "ended", _("Ended") + CANCELLED = "cancelled",_("Cancelled") + # Basic meeting details + topic = models.CharField(max_length=255, verbose_name=_("Topic")) + start_time = models.DateTimeField(db_index=True, verbose_name=_("Start Time")) # Added index + duration = models.PositiveIntegerField( + verbose_name=_("Duration") + ) # Duration in minutes + timezone = models.CharField(max_length=50, verbose_name=_("Timezone")) + location=models.CharField(null=True,blank=True) + status = models.CharField( + db_index=True, max_length=20, # Added index + null=True, + blank=True, + verbose_name=_("Status"), + default=MeetingStatus.WAITING, + ) class ZoomMeeting(Base): class MeetingStatus(models.TextChoices): @@ -736,6 +763,7 @@ class ZoomMeeting(Base): topic = models.CharField(max_length=255, verbose_name=_("Topic")) meeting_id = models.CharField( db_index=True, max_length=20, unique=True, verbose_name=_("Meeting ID") # Added index + ) # Unique identifier for the meeting start_time = models.DateTimeField(db_index=True, verbose_name=_("Start Time")) # Added index duration = models.PositiveIntegerField( @@ -772,7 +800,7 @@ class ZoomMeeting(Base): # Timestamps def __str__(self): - return self.topic\ + return self.topic @property def get_job(self): return self.interview.job @@ -781,10 +809,10 @@ class ZoomMeeting(Base): return self.interview.candidate @property def get_participants(self): - return self.interview.job.participants.all() + return self.interview.participants.all() @property def get_users(self): - return self.interview.job.users.all() + return self.interview.system_users.all() class MeetingComment(Base): """ @@ -1593,6 +1621,19 @@ class BreakTime(models.Model): class InterviewSchedule(Base): """Stores the scheduling criteria for interviews""" + """Stores individual scheduled interviews""" + + class InterviewType(models.TextChoices): + REMOTE = 'Remote', 'Remote Interview' + ONSITE = 'Onsite', 'In-Person Interview' + + interview_type = models.CharField( + max_length=10, + choices=InterviewType.choices, + default=InterviewType.REMOTE, + verbose_name="Interview Meeting Type" + ) + job = models.ForeignKey( JobPosting, on_delete=models.CASCADE, related_name="interview_schedules", db_index=True @@ -1630,21 +1671,32 @@ class InterviewSchedule(Base): class ScheduledInterview(Base): - """Stores individual scheduled interviews""" - + + #for one candidate candidate = models.ForeignKey( Candidate, on_delete=models.CASCADE, related_name="scheduled_interviews", db_index=True ) + + + + participants = models.ManyToManyField('Participants', blank=True) + system_users=models.ManyToManyField(User,blank=True) job = models.ForeignKey( "JobPosting", on_delete=models.CASCADE, related_name="scheduled_interviews", db_index=True ) zoom_meeting = models.OneToOneField( - ZoomMeeting, on_delete=models.CASCADE, related_name="interview", db_index=True + ZoomMeeting, on_delete=models.CASCADE, related_name="interview", db_index=True, + null=True, blank=True + ) + + onsite_meeting= models.OneToOneField( + OnsiteMeeting, on_delete=models.CASCADE, related_name="onsite_interview", db_index=True, + null=True, blank=True ) schedule = models.ForeignKey( InterviewSchedule, on_delete=models.CASCADE, related_name="interviews",null=True,blank=True, db_index=True @@ -1753,6 +1805,7 @@ class Notification(models.Model): class Participants(Base): """Model to store Participants details""" + name = models.CharField(max_length=255, verbose_name=_("Participant Name"),null=True,blank=True) email= models.EmailField(verbose_name=_("Email")) phone = models.CharField(max_length=12,verbose_name=_("Phone Number"),null=True,blank=True) @@ -1763,3 +1816,5 @@ class Participants(Base): def __str__(self): return f"{self.name} - {self.email}" + + diff --git a/recruitment/signals.py b/recruitment/signals.py index 0f08794..ba2c033 100644 --- a/recruitment/signals.py +++ b/recruitment/signals.py @@ -1,4 +1,5 @@ import logging +from datetime import datetime, timedelta from django.db import transaction from django_q.models import Schedule from django_q.tasks import schedule @@ -8,7 +9,7 @@ from django_q.tasks import async_task from django.db.models.signals import post_save from django.contrib.auth.models import User from django.utils import timezone -from .models import FormField,FormStage,FormTemplate,Candidate,JobPosting,Notification +from .models import FormField,FormStage,FormTemplate,Candidate,JobPosting,Notification,AgencyJobAssignment,AgencyAccessLink logger = logging.getLogger(__name__) @@ -397,3 +398,12 @@ def notification_created(sender, instance, created, **kwargs): SSE_NOTIFICATION_CACHE[user_id] = SSE_NOTIFICATION_CACHE[user_id][-50:] logger.info(f"Notification cached for SSE: {notification_data}") + +@receiver(post_save,sender=AgencyJobAssignment) +def create_access_link(sender,instance,created,**kwargs): + if created: + link=AgencyAccessLink(assignment=instance) + link.access_password = link.generate_password() + link.unique_token = link.generate_token() + link.expires_at = datetime.now() + timedelta(days=4) + link.save() \ No newline at end of file diff --git a/recruitment/tasks.py b/recruitment/tasks.py index 06cb795..4515e1b 100644 --- a/recruitment/tasks.py +++ b/recruitment/tasks.py @@ -461,6 +461,7 @@ def create_interview_and_meeting( meeting_topic = f"Interview for {job.title} - {candidate.name}" # 1. External API Call (Slow) + result = create_zoom_meeting(meeting_topic, interview_datetime, duration) if result["status"] == "success": @@ -746,70 +747,74 @@ def sync_candidate_to_source_task(candidate_id, source_id): return {"success": False, "error": error_msg} -def send_bulk_email_task(subject, message, recipient_list, request=None, attachments=None): - """ - Django-Q background task to send bulk email to multiple recipients. - Args: - subject: Email subject - message: Email message (can be HTML) - recipient_list: List of email addresses - request: Django request object (optional) - attachments: List of file attachment data (optional) - - Returns: - dict: Result with success status and error message if failed - """ - from .email_service import send_bulk_email - import os - - logger.info(f"Starting bulk email task for {len(recipient_list)} recipients") +from django.conf import settings +from django.core.mail import EmailMultiAlternatives +from django.utils.html import strip_tags +def _task_send_individual_email(subject, body_message, recipient, attachments): + """Internal helper to create and send a single email.""" + + from_email = getattr(settings, 'DEFAULT_FROM_EMAIL', 'noreply@kaauh.edu.sa') + is_html = '<' in body_message and '>' in body_message + + if is_html: + plain_message = strip_tags(body_message) + email_obj = EmailMultiAlternatives(subject=subject, body=plain_message, from_email=from_email, to=[recipient]) + email_obj.attach_alternative(body_message, "text/html") + else: + email_obj = EmailMultiAlternatives(subject=subject, body=body_message, from_email=from_email, to=[recipient]) + + if attachments: + for attachment in attachments: + if isinstance(attachment, tuple) and len(attachment) == 3: + filename, content, content_type = attachment + email_obj.attach(filename, content, content_type) + try: - # Process attachments - convert file data back to file objects if needed - # processed_attachments = [] - # if attachments: - # for attachment in attachments: - # if isinstance(attachment, dict) and 'file_path' in attachment: - # # This is a serialized file from background task - # file_path = attachment['file_path'] - # filename = attachment.get('filename', os.path.basename(file_path)) - # content_type = attachment.get('content_type', 'application/octet-stream') - - # try: - # with open(file_path, 'rb') as f: - # content = f.read() - # processed_attachments.append((filename, content, content_type)) - - # # Clean up temporary file - # try: - # os.unlink(file_path) - # except OSError: - # pass # File might already be deleted - - # except FileNotFoundError: - # logger.warning(f"Attachment file not found: {file_path}") - # continue - # else: - # # Direct attachment (file object or tuple) - # processed_attachments.append(attachment) - - # Call the existing send_bulk_email function synchronously within the task - result = send_bulk_email( - subject=subject, - message=message, - recipient_list=recipient_list, - request=request, - ) - - if result['success']: - logger.info(f"Bulk email task completed successfully for {result.get('recipients_count', len(recipient_list))} recipients") - else: - logger.error(f"Bulk email task failed: {result.get('error', 'Unknown error')}") - - return result - + email_obj.send(fail_silently=False) + return True except Exception as e: - error_msg = f"Critical error in bulk email task: {str(e)}" - logger.error(error_msg, exc_info=True) - return {'success': False, 'error': error_msg} + logger.error(f"Task failed to send email to {recipient}: {str(e)}", exc_info=True) + return False + + +def send_bulk_email_task(subject, message, recipient_list, attachments=None, hook='recruitment.tasks.email_success_hook'): + """ + Django-Q background task to send pre-formatted email to a list of recipients. + Receives arguments directly from the async_task call. + """ + logger.info(f"Starting bulk email task for {len(recipient_list)} recipients") + successful_sends = 0 + total_recipients = len(recipient_list) + + if not recipient_list: + return {'success': False, 'error': 'No recipients provided to task.'} + + # Since the async caller sends one task per recipient, total_recipients should be 1. + for recipient in recipient_list: + # The 'message' is the custom message specific to this recipient. + if _task_send_individual_email(subject, message, recipient, attachments): + successful_sends += 1 + + if successful_sends > 0: + logger.info(f"Bulk email task completed successfully. Sent to {successful_sends}/{total_recipients} recipients.") + return { + 'success': True, + 'recipients_count': successful_sends, + 'message': f"Sent successfully to {successful_sends} recipient(s)." + } + else: + logger.error(f"Bulk email task failed: No emails were sent successfully.") + return {'success': False, 'error': "No emails were sent successfully in the background task."} + + +def email_success_hook(task): + """ + The success hook must accept the Task object as the first and only required positional argument. + """ + if task.success: + logger.info(f"Task ID {task.id} succeeded. Result: {task.result}") + else: + logger.error(f"Task ID {task.id} failed. Error: {task.result}") + \ No newline at end of file diff --git a/recruitment/templatetags/url_extras.py b/recruitment/templatetags/url_extras.py new file mode 100644 index 0000000..3c46e0a --- /dev/null +++ b/recruitment/templatetags/url_extras.py @@ -0,0 +1,19 @@ +from django import template + +register = template.Library() + +@register.simple_tag +def add_get_params(request_get, *args): + """ + Constructs a GET query string by preserving all current + parameters EXCEPT 'page', which is handled separately. + """ + params = request_get.copy() + + # Remove the page parameter to prevent it from duplicating or interfering + if 'page' in params: + del params['page'] + + # Return the URL-encoded string (e.g., department=IT&employment_type=FULL_TIME) + # The template prepends the '&' and the 'page=X' + return params.urlencode() \ No newline at end of file diff --git a/recruitment/urls.py b/recruitment/urls.py index cb16bf2..794e2c5 100644 --- a/recruitment/urls.py +++ b/recruitment/urls.py @@ -5,7 +5,7 @@ from . import views_integration from . import views_source urlpatterns = [ - path('dashboard/', views_frontend.dashboard_view, name='dashboard'), + path('', views_frontend.dashboard_view, name='dashboard'), # Job URLs (using JobPosting model) path('jobs/', views_frontend.JobListView.as_view(), name='job_list'), @@ -14,6 +14,7 @@ urlpatterns = [ path('jobs//update/', views.edit_job, name='job_update'), # path('jobs//delete/', views., name='job_delete'), path('jobs//', views.job_detail, name='job_detail'), + path('jobs//download/cvs/', views.job_cvs_download, name='job_cvs_download'), path('careers/',views.kaauh_career,name='kaauh_career'), @@ -231,5 +232,17 @@ urlpatterns = [ path('participants//delete/', views_frontend.ParticipantsDeleteView.as_view(), name='participants_delete'), # Email composition URLs - path('jobs//candidates//compose-email/', views.compose_candidate_email, name='compose_candidate_email'), + path('jobs//candidates/compose_email/', views.compose_candidate_email, name='compose_candidate_email'), + path('interview/partcipants//',views.create_interview_participants,name='create_interview_participants'), + path('interview/email//',views.send_interview_email,name='send_interview_email'), + + + + # # --- SCHEDULED INTERVIEW URLS (New Centralized Management) --- + # path('interview/list/', views.InterviewListView.as_view(), name='interview_list'), + # path('interviews//', views.ScheduledInterviewDetailView.as_view(), name='scheduled_interview_detail'), + # path('interviews//update/', views.ScheduledInterviewUpdateView.as_view(), name='update_scheduled_interview'), + # path('interviews//delete/', views.ScheduledInterviewDeleteView.as_view(), name='delete_scheduled_interview'), + + ] diff --git a/recruitment/views.py b/recruitment/views.py index b56ea09..c77b52e 100644 --- a/recruitment/views.py +++ b/recruitment/views.py @@ -1,5 +1,8 @@ import json +import io +import zipfile +from django.core.paginator import Paginator from django.utils.translation import gettext as _ from django.contrib.auth.models import User from django.contrib.auth.decorators import login_required @@ -21,6 +24,7 @@ from django.db.models import F, IntegerField, Count, Avg, Sum, Q, ExpressionWrap from django.db.models.functions import Cast, Coalesce, TruncDate from django.db.models.fields.json import KeyTextTransform from django.db.models.expressions import ExpressionWrapper +from django.urls import reverse_lazy from django.db.models import Count, Avg, F,Q from .forms import ( CandidateExamDateForm, @@ -41,9 +45,10 @@ from .forms import ( AgencyAccessLinkForm, AgencyJobAssignmentForm, LinkedPostContentForm, - ParticipantsSelectForm, CandidateEmailForm, - SourceForm + SourceForm, + InterviewEmailForm, + ) from easyaudit.models import CRUDEvent, LoginEvent, RequestEvent from rest_framework import viewsets @@ -52,7 +57,7 @@ from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from .linkedin_service import LinkedInService from .serializers import JobPostingSerializer, CandidateSerializer from django.shortcuts import get_object_or_404, render, redirect -from django.views.generic import CreateView, UpdateView, DetailView, ListView +from django.views.generic import CreateView, UpdateView, DetailView, ListView,DeleteView from .utils import ( create_zoom_meeting, delete_zoom_meeting, @@ -192,12 +197,73 @@ class ZoomMeetingListView(LoginRequiredMixin, ListView): context["status_filter"] = self.request.GET.get("status", "") context["candidate_name_filter"] = self.request.GET.get("candidate_name", "") return context + +# @login_required +# def InterviewListView(request): +# # interview_type=request.GET.get('interview_type','Remote') +# # print(interview_type) +# interview_type='Onsite' +# meetings=ScheduledInterview.objects.filter(schedule__interview_type=interview_type) +# return render(request, "meetings/list_meetings.html",{ +# 'meetings':meetings, +# }) + + + # search_query = request.GET.get("q", "") # Renamed from 'search' to 'q' for consistency + # if search_query: + # interviews = interviews.filter( + # Q(topic__icontains=search_query) | Q(meeting_id__icontains=search_query) + # ) + + # # Handle filter by status + # status_filter = request.GET.get("status", "") + # if status_filter: + # queryset = queryset.filter(status=status_filter) + + # # Handle search by candidate name + # candidate_name = request.GET.get("candidate_name", "") + # if candidate_name: + # # Filter based on the name of the candidate associated with the meeting's interview + # queryset = queryset.filter( + # Q(interview__candidate__first_name__icontains=candidate_name) | + # Q(interview__candidate__last_name__icontains=candidate_name) + # ) + + + class ZoomMeetingDetailsView(LoginRequiredMixin, DetailView): model = ZoomMeeting template_name = "meetings/meeting_details.html" context_object_name = "meeting" + def get_context_data(self, **kwargs): + context=super().get_context_data(**kwargs) + meeting = self.object + try: + interview=meeting.interview + except Exception as e: + print(e) + candidate = interview.candidate + job=meeting.get_job + + # Assuming interview.participants and interview.system_users hold the people: + participants = list(interview.participants.all()) + list(interview.system_users.all()) + external_participants=list(interview.participants.all()) + system_participants= list(interview.system_users.all()) + total_participants=len(participants) + form = InterviewParticpantsForm(instance=interview) + context['form']=form + context['email_form'] = InterviewEmailForm( + candidate=candidate, + external_participants=external_participants, + system_participants=system_participants, + meeting=meeting, + job=job + ) + context['total_participants']=total_participants + return context + class ZoomMeetingUpdateView(LoginRequiredMixin, UpdateView): @@ -340,10 +406,13 @@ def edit_job(request, slug): SCORE_PATH = 'ai_analysis_data__analysis_data__match_score' HIGH_POTENTIAL_THRESHOLD=75 +from django.contrib.sites.shortcuts import get_current_site @login_required def job_detail(request, slug): """View details of a specific job""" job = get_object_or_404(JobPosting, slug=slug) + current_site=get_current_site(request) + print(current_site) # Get all candidates for this job, ordered by most recent applicants = job.candidates.all().order_by("-created_at") @@ -494,6 +563,60 @@ def job_detail(request, slug): } return render(request, "jobs/job_detail.html", context) + + +ALLOWED_EXTENSIONS = ('.pdf', '.docx') + +def job_cvs_download(request,slug): + + job = get_object_or_404(JobPosting,slug=slug) + entries=Candidate.objects.filter(job=job) + + + # 2. Create an in-memory byte stream (BytesIO) + zip_buffer = io.BytesIO() + + # 3. Create the ZIP archive + with zipfile.ZipFile(zip_buffer, 'w', zipfile.ZIP_DEFLATED) as zf: + + for entry in entries: + # Check if the file field has a file + if not entry.resume: + continue + + # Get the file name and check extension (case-insensitive) + file_name = entry.resume.name.split('/')[-1] + file_name_lower = file_name.lower() + + if file_name_lower.endswith(ALLOWED_EXTENSIONS): + try: + # Open the file object (rb is read binary) + file_obj = entry.resume.open('rb') + + # *** ROBUST METHOD: Read the content and write it to the ZIP *** + file_content = file_obj.read() + + # Write the file content directly to the ZIP archive + zf.writestr(file_name, file_content) + + file_obj.close() + + except Exception as e: + # Log the error but continue with the rest of the files + print(f"Error processing file {file_name}: {e}") + continue + + # 4. Prepare the response + zip_buffer.seek(0) + + # 5. Create the HTTP response + response = HttpResponse(zip_buffer.read(), content_type='application/zip') + + # Set the header for the browser to download the file + response['Content-Disposition'] = 'attachment; filename=f"all_cvs_for_{job.title}.zip"' + + return response + @login_required def job_image_upload(request, slug): #only for handling the post request @@ -550,6 +673,20 @@ def edit_linkedin_post_content(request,slug): +JOB_TYPES = [ + ("FULL_TIME", "Full-time"), + ("PART_TIME", "Part-time"), + ("CONTRACT", "Contract"), + ("INTERNSHIP", "Internship"), + ("FACULTY", "Faculty"), + ("TEMPORARY", "Temporary"), +] + +WORKPLACE_TYPES = [ + ("ON_SITE", "On-site"), + ("REMOTE", "Remote"), + ("HYBRID", "Hybrid"), +] def kaauh_career(request): @@ -559,13 +696,53 @@ def kaauh_career(request): status='ACTIVE', form_template__is_active=True ) + selected_department=request.GET.get('department','') + department_type_keys=active_jobs.exclude( + department__isnull=True + ).exclude(department__exact='' + ).values_list( + 'department', + flat=True + ).distinct().order_by('department') + + if selected_department and selected_department in department_type_keys: + active_jobs=active_jobs.filter(department=selected_department) + selected_workplace_type=request.GET.get('workplace_type','') + print(selected_workplace_type) + selected_job_type = request.GET.get('employment_type', '') + + job_type_keys = active_jobs.values_list('job_type', flat=True).distinct() + workplace_type_keys=active_jobs.values_list('workplace_type',flat=True).distinct() + if selected_job_type and selected_job_type in job_type_keys: + active_jobs=active_jobs.filter(job_type=selected_job_type) + if selected_workplace_type and selected_workplace_type in workplace_type_keys: + active_jobs=active_jobs.filter(workplace_type=selected_workplace_type) - return render(request,'jobs/career.html',{'active_jobs':active_jobs}) + JOBS_PER_PAGE=10 + paginator = Paginator(active_jobs, JOBS_PER_PAGE) + page_number = request.GET.get('page', 1) + + try: + page_obj = paginator.get_page(page_number) + except EmptyPage: + page_obj = paginator.page(paginator.num_pages) + + total_open_roles=active_jobs.all().count() + + + return render(request,'applicant/career.html',{'active_jobs': page_obj.object_list, + 'job_type_keys':job_type_keys, + 'selected_job_type':selected_job_type, + 'workplace_type_keys':workplace_type_keys, + 'selected_workplace_type':selected_workplace_type, + 'selected_department':selected_department, + 'department_type_keys':department_type_keys, + 'total_open_roles': total_open_roles,'page_obj': page_obj}) # job detail facing the candidate: def application_detail(request, slug): job = get_object_or_404(JobPosting, slug=slug) - return render(request, "forms/application_detail.html", {"job": job}) + return render(request, "applicant/application_detail.html", {"job": job}) from django_q.tasks import async_task @@ -872,10 +1049,13 @@ def application_submit_form(request, template_slug): return render( request, - "forms/application_submit_form.html", + "applicant/application_submit_form.html", {"template_slug": template_slug, "job_id": job_id}, ) +def applicant_profile(request): + return render(request,'applicant/applicant_profile.html') + @csrf_exempt @require_POST @@ -1099,6 +1279,7 @@ def _handle_get_request(request, slug, job): def _handle_preview_submission(request, slug, job): + """ Handles the initial POST request (Preview Schedule). Validates forms, calculates slots, saves data to session, and renders preview. @@ -1110,6 +1291,7 @@ def _handle_preview_submission(request, slug, job): if form.is_valid(): # Get the form data candidates = form.cleaned_data["candidates"] + interview_type=form.cleaned_data["interview_type"] start_date = form.cleaned_data["start_date"] end_date = form.cleaned_data["end_date"] working_days = form.cleaned_data["working_days"] @@ -1170,6 +1352,7 @@ def _handle_preview_submission(request, slug, job): # Save the form data to session for later use schedule_data = { + "interview_type":interview_type, "start_date": start_date.isoformat(), "end_date": end_date.isoformat(), "working_days": working_days, @@ -1190,6 +1373,7 @@ def _handle_preview_submission(request, slug, job): { "job": job, "schedule": preview_schedule, + "interview_type":interview_type, "start_date": start_date, "end_date": end_date, "working_days": working_days, @@ -1233,6 +1417,7 @@ def _handle_confirm_schedule(request, slug, job): schedule = InterviewSchedule.objects.create( job=job, created_by=request.user, + interview_type=schedule_data["interview_type"], start_date=datetime.fromisoformat(schedule_data["start_date"]).date(), end_date=datetime.fromisoformat(schedule_data["end_date"]).date(), working_days=schedule_data["working_days"], @@ -1259,34 +1444,59 @@ def _handle_confirm_schedule(request, slug, job): available_slots = get_available_time_slots(schedule) # This should still be synchronous and fast # 4. Queue scheduled interviews asynchronously (FAST RESPONSE) - queued_count = 0 - for i, candidate in enumerate(candidates): - if i < len(available_slots): - slot = available_slots[i] + if schedule.interview_type=='Remote': + queued_count = 0 + for i, candidate in enumerate(candidates): + if i < len(available_slots): + slot = available_slots[i] - # Dispatch the individual creation task to the background queue - async_task( - "recruitment.tasks.create_interview_and_meeting", - candidate.pk, - job.pk, - schedule.pk, - slot['date'], - slot['time'], - schedule.interview_duration, - ) - queued_count += 1 + # Dispatch the individual creation task to the background queue + + async_task( + "recruitment.tasks.create_interview_and_meeting", + candidate.pk, + job.pk, + schedule.pk, + slot['date'], + slot['time'], + schedule.interview_duration, + ) + queued_count += 1 - # 5. Success and Cleanup (IMMEDIATE RESPONSE) - messages.success( - request, - f"Schedule successfully created. Queued {queued_count} interviews to be booked asynchronously. Check back in a moment!" - ) + # 5. Success and Cleanup (IMMEDIATE RESPONSE) + messages.success( + request, + f"Schedule successfully created. Queued {queued_count} interviews to be booked asynchronously. Check back in a moment!" + ) - # Clear both session data keys upon successful completion - if SESSION_DATA_KEY in request.session: del request.session[SESSION_DATA_KEY] - if SESSION_ID_KEY in request.session: del request.session[SESSION_ID_KEY] + # Clear both session data keys upon successful completion + if SESSION_DATA_KEY in request.session: del request.session[SESSION_DATA_KEY] + if SESSION_ID_KEY in request.session: del request.session[SESSION_ID_KEY] + + return redirect("job_detail", slug=slug) + else: + for i, candidate in enumerate(candidates): + if i < len(available_slots): + slot = available_slots[i] + ScheduledInterview.objects.create( + candidate=candidate, + job=job, + # zoom_meeting=None, + schedule=schedule, + interview_date=slot['date'], + interview_time= slot['time'] + ) + + messages.success( + request, + f"Onsite schedule Interview Create succesfully" + ) + + # Clear both session data keys upon successful completion + if SESSION_DATA_KEY in request.session: del request.session[SESSION_DATA_KEY] + if SESSION_ID_KEY in request.session: del request.session[SESSION_ID_KEY] + return redirect('schedule_interview_location_form',slug=schedule.slug) - return redirect("job_detail", slug=slug) def schedule_interviews_view(request, slug): job = get_object_or_404(JobPosting, slug=slug) @@ -1295,6 +1505,7 @@ def schedule_interviews_view(request, slug): return _handle_preview_submission(request, slug, job) else: return _handle_get_request(request, slug, job) + def confirm_schedule_interviews_view(request, slug): job = get_object_or_404(JobPosting, slug=slug) if request.method == "POST": @@ -1454,40 +1665,12 @@ def candidate_update_status(request, slug): def candidate_interview_view(request,slug): job = get_object_or_404(JobPosting,slug=slug) - if request.method == "POST": - form = ParticipantsSelectForm(request.POST, instance=job) - print(form.errors) - - if form.is_valid(): - - # Save the main instance (JobPosting) - job_instance = form.save(commit=False) - job_instance.save() - - # MANUALLY set the M2M relationships based on submitted data - job_instance.participants.set(form.cleaned_data['participants']) - job_instance.users.set(form.cleaned_data['users']) - - messages.success(request, "Interview participants updated successfully.") - return redirect("candidate_interview_view", slug=job.slug) - - else: - initial_data = { - 'participants': job.participants.all(), - 'users': job.users.all(), - } - form = ParticipantsSelectForm(instance=job, initial=initial_data) - - else: - form = ParticipantsSelectForm(instance=job) - context = { "job":job, "candidates":job.interview_candidates, 'current_stage':'Interview', - 'form':form, - 'participants_count': job.participants.count() + job.users.count(), + } return render(request,"recruitment/candidate_interview_view.html",context) @@ -3257,6 +3440,8 @@ def agency_portal_submit_candidate_page(request, slug): slug=slug ) + + if assignment.is_full: messages.error(request, 'Maximum candidate limit reached for this assignment.') return redirect('agency_portal_assignment_detail', slug=assignment.slug) @@ -3315,6 +3500,7 @@ def agency_portal_submit_candidate_page(request, slug): 'form': form, 'assignment': assignment, 'total_submitted': total_submitted, + 'job':assignment.job } return render(request, 'recruitment/agency_portal_submit_candidate.html', context) @@ -3693,108 +3879,77 @@ def api_candidate_detail(request, candidate_id): return JsonResponse({'success': False, 'error': str(e)}) + @login_required -def compose_candidate_email(request, job_slug, candidate_slug): +def compose_candidate_email(request, job_slug): """Compose email to participants about a candidate""" from .email_service import send_bulk_email job = get_object_or_404(JobPosting, slug=job_slug) - candidate = get_object_or_404(Candidate, slug=candidate_slug, job=job) + candidate_ids=request.GET.getlist('candidate_ids') + candidates=Candidate.objects.filter(id__in=candidate_ids) + + if request.method == 'POST': - form = CandidateEmailForm(job, candidate, request.POST) + print("........................................................inside candidate conpose.............") + candidate_ids = request.POST.getlist('candidate_ids') + candidates=Candidate.objects.filter(id__in=candidate_ids) + form = CandidateEmailForm(job, candidates, request.POST) if form.is_valid(): + print("form is valid ...") # Get email addresses email_addresses = form.get_email_addresses() + print(email_addresses) + + if not email_addresses: - messages.error(request, 'No valid email addresses found for selected recipients.') - return render(request, 'includes/email_compose_form.html', { - 'form': form, - 'job': job, - 'candidate': candidate - }) + messages.error(request, 'No email selected') + referer = request.META.get('HTTP_REFERER') + + if referer: + # Redirect back to the referring page + return redirect(referer) + else: + + return redirect('dashboard') - # Check if this is an interview invitation - subject = form.cleaned_data.get('subject', '').lower() - is_interview_invitation = 'interview' in subject or 'meeting' in subject - if is_interview_invitation: - # Use HTML template for interview invitations - meeting_details = None - if form.cleaned_data.get('include_meeting_details'): - # Try to get meeting details from candidate - meeting_details = { - 'topic': f'Interview for {job.title}', - 'date_time': getattr(candidate, 'interview_date', 'To be scheduled'), - 'duration': '60 minutes', - 'join_url': getattr(candidate, 'meeting_url', ''), - } + message = form.get_formatted_message() + subject = form.cleaned_data.get('subject') - from .email_service import send_interview_invitation_email - email_result = send_interview_invitation_email( - candidate=candidate, - job=job, - meeting_details=meeting_details, - recipient_list=email_addresses - ) - else: - # Get formatted message for regular emails - message = form.get_formatted_message() - subject = form.cleaned_data.get('subject') - - # Send emails using email service (no attachments, synchronous to avoid pickle issues) - email_result = send_bulk_email( - subject=subject, - message=message, - recipient_list=email_addresses, - request=request, - async_task_=False # Changed to False to avoid pickle issues - ) + # Send emails using email service (no attachments, synchronous to avoid pickle issues) + + email_result = send_bulk_email( + subject=subject, + message=message, + recipient_list=email_addresses, + request=request, + attachments=None, + async_task_=True, # Changed to False to avoid pickle issues + from_interview=False + ) if email_result['success']: messages.success(request, f'Email sent successfully to {len(email_addresses)} recipient(s).') - # For HTMX requests, return success response - if 'HX-Request' in request.headers: - return JsonResponse({ - 'success': True, - 'message': f'Email sent successfully to {len(email_addresses)} recipient(s).' - }) + return redirect('candidate_interview_view', slug=job.slug) else: messages.error(request, f'Failed to send email: {email_result.get("message", "Unknown error")}') - # For HTMX requests, return error response - if 'HX-Request' in request.headers: - return JsonResponse({ - 'success': False, - 'error': email_result.get("message", "Failed to send email") - }) - + return render(request, 'includes/email_compose_form.html', { 'form': form, 'job': job, - 'candidate': candidate + 'candidate': candidates }) # except Exception as e: - # logger.error(f"Error sending candidate email: {e}") - # messages.error(request, f'An error occurred while sending the email: {str(e)}') - - # # For HTMX requests, return error response - # if 'HX-Request' in request.headers: - # return JsonResponse({ - # 'success': False, - # 'error': f'An error occurred while sending the email: {str(e)}' - # }) - - # return render(request, 'includes/email_compose_form.html', { - # 'form': form, - # 'job': job, - # 'candidate': candidate - # }) + else: # Form validation errors + print('form is not valid') print(form.errors) messages.error(request, 'Please correct the errors below.') @@ -3804,21 +3959,26 @@ def compose_candidate_email(request, job_slug, candidate_slug): 'success': False, 'error': 'Please correct the form errors and try again.' }) - + return render(request, 'includes/email_compose_form.html', { 'form': form, 'job': job, - 'candidate': candidate + 'candidates': candidates }) - else: + else: + # GET request - show the form - form = CandidateEmailForm(job, candidate) + form = CandidateEmailForm(job, candidates) + + print("GET request made for candidate email form") return render(request, 'includes/email_compose_form.html', { 'form': form, 'job': job, - 'candidate': candidate + 'candidates':candidates + + }) @@ -3987,3 +4147,118 @@ def source_toggle_status(request, slug): # For GET requests, return error return JsonResponse({'success': False, 'error': 'Method not allowed'}) + + + +from .forms import InterviewParticpantsForm + +def create_interview_participants(request,slug): + schedule_interview=get_object_or_404(ScheduledInterview,slug=slug) + interview_slug=schedule_interview.zoom_meeting.slug + if request.method == 'POST': + form = InterviewParticpantsForm(request.POST,instance=schedule_interview) + if form.is_valid(): + # Save the main Candidate object, but don't commit to DB yet + candidate = form.save(commit=False) + candidate.save() + # This is important for ManyToMany fields: save the many-to-many data + form.save_m2m() + return redirect('meeting_details',slug=interview_slug) # Redirect to a success page + else: + form = InterviewParticpantsForm(instance=schedule_interview) + + return render(request, 'interviews/interview_participants_form.html', {'form': form}) + + +from django.core.mail import send_mail +def send_interview_email(request, slug): + from .email_service import send_bulk_email + + interview = get_object_or_404(ScheduledInterview, slug=slug) + + # 2. Retrieve the required data for the form's constructor + candidate = interview.candidate + job=interview.job + meeting=interview.zoom_meeting + participants = list(interview.participants.all()) + list(interview.system_users.all()) + external_participants=list(interview.participants.all()) + system_participants=list(interview.system_users.all()) + + participant_emails = [p.email for p in participants if hasattr(p, 'email')] + print(participant_emails) + total_recipients=1+len(participant_emails) + + # --- POST REQUEST HANDLING --- + if request.method == 'POST': + + form = InterviewEmailForm( + request.POST, + candidate=candidate, + external_participants=external_participants, + system_participants=system_participants, + meeting=meeting, + job=job + ) + + if form.is_valid(): + # 4. Extract cleaned data + subject = form.cleaned_data['subject'] + msg_candidate = form.cleaned_data['message_for_candidate'] + msg_agency = form.cleaned_data['message_for_agency'] + msg_participants = form.cleaned_data['message_for_participants'] + + # --- SEND EMAILS Candidate or agency--- + if candidate.belong_to_an_agency: + send_mail( + subject, + msg_agency, + settings.DEFAULT_FROM_EMAIL, + [candidate.hiring_agency.email], + fail_silently=False, + ) + else: + send_mail( + subject, + msg_candidate, + settings.DEFAULT_FROM_EMAIL, + [candidate.email], + fail_silently=False, + ) + + + email_result = send_bulk_email( + subject=subject, + message=msg_participants, + recipient_list=participant_emails, + request=request, + attachments=None, + async_task_=True, # Changed to False to avoid pickle issues, + from_interview=True + ) + + if email_result['success']: + messages.success(request, f'Email sent successfully to {total_recipients} recipient(s).') + + return redirect('list_meetings') + else: + messages.error(request, f'Failed to send email: {email_result.get("message", "Unknown error")}') + return redirect('list_meetings') + + + +# def schedule_interview_location_form(request,slug): +# schedule=get_object_or_404(InterviewSchedule,slug=slug) +# if request.method=='POST': +# form=InterviewScheduleLocationForm(request.POST,instance=schedule) +# form.save() +# return redirect('list_meetings') +# else: +# form=InterviewScheduleLocationForm(instance=schedule) +# return render(request,'interviews/schedule_interview_location_form.html',{'form':form,'schedule':schedule}) + + + +def onsite_interview_list_view(request): + onsite_interviews=ScheduledInterview.objects.filter(schedule__interview_type='Onsite') + return render(request,'interviews/onsite_interview_list.html',{'onsite_interviews':onsite_interviews}) + diff --git a/recruitment/views_frontend.py b/recruitment/views_frontend.py index 0f4b9c0..ae8fb18 100644 --- a/recruitment/views_frontend.py +++ b/recruitment/views_frontend.py @@ -461,9 +461,9 @@ def dashboard_view(request): hired_candidates = candidate_queryset.filter( stage='Hired' ) - print(hired_candidates) + lst=[c.time_to_hire_days for c in hired_candidates] - print(lst) + time_to_hire_query = hired_candidates.annotate( time_diff=ExpressionWrapper( F('hired_date') - F('created_at__date'), @@ -471,14 +471,13 @@ def dashboard_view(request): ) ).aggregate(avg_time_to_hire=Avg('time_diff')) - print(time_to_hire_query) + avg_time_to_hire_days = ( time_to_hire_query.get('avg_time_to_hire').days if time_to_hire_query.get('avg_time_to_hire') else 0 ) - print(avg_time_to_hire_days) - + applied_count = candidate_queryset.filter(stage='Applied').count() advanced_count = candidate_queryset.filter(stage__in=['Exam', 'Interview', 'Offer']).count() screening_pass_rate = round( (advanced_count / applied_count) * 100, 1 ) if applied_count > 0 else 0 diff --git a/templates/applicant/applicant_profile.html b/templates/applicant/applicant_profile.html new file mode 100644 index 0000000..9acbcc4 --- /dev/null +++ b/templates/applicant/applicant_profile.html @@ -0,0 +1,422 @@ +{% extends 'applicant/partials/candidate_facing_base.html'%} +{% load static i18n %} + + +{% block title %}{% trans "My Dashboard" %} - {{ block.super }}{% endblock %} + +{% block customCSS %} + +{% endblock %} + +{% block content %} +
+ + {# Header: Larger, more dynamic on large screens. Stacks cleanly on mobile. #} +
+

+ {% trans "Your Candidate Dashboard" %} +

+ + {% trans "Update Profile" %} + +
+ + {# Candidate Quick Overview Card: Use a softer background color #} +
+
+ {% trans 'Profile Picture' %} +
+

{{ candidate.name|default:"Candidate Name" }}

+

{{ candidate.email }}

+
+
+
+ + {# ================================================= #} + {# MAIN TABBED INTERFACE #} + {# ================================================= #} +
+ + {# Tab Navigation: Used nav-scroll for responsiveness #} + + + {# Tab Content #} +
+ +
+

{% trans "Personal Information" %}

+
    +
  • +
    {% trans "Phone" %}
    + {{ candidate.phone|default:"N/A" }} +
  • +
  • +
    {% trans "Nationality" %}
    + {{ candidate.get_nationality_display|default:"N/A" }} +
  • +
  • +
    {% trans "Date of Birth" %}
    + {{ candidate.date_of_birth|date:"M d, Y"|default:"N/A" }} +
  • +
  • {% trans "Use the 'Update Profile' button above to edit these details." %}
  • +
+ +
+ +

{% trans "Quick Actions" %}

+ +
+ +
+

{% trans "Application Tracking" %}

+ + {% if applications %} +
+ + + + + + + + + + + + {% for application in applications %} + + + + + + + + {% endfor %} + +
{% trans "Job Title" %}{% trans "Applied On" %}{% trans "Current Stage" %}{% trans "Status" %}{% trans "Action" %}
+ + {{ application.job.title }} + + {{ application.applied_date|date:"d M Y" }} + + {{ application.stage }} + + + {% if application.is_active %} + {% trans "Active" %} + {% else %} + {% trans "Closed" %} + {% endif %} + + + {% trans "Details" %} + +
+
+ + {% else %} +
+ +
{% trans "You haven't submitted any applications yet." %}
+ + {% trans "View Available Jobs" %} + +
+ {% endif %} +
+ +
+

{% trans "My Uploaded Documents" %}

+ +

{% trans "You can upload and manage your resume, certificates, and professional documents here. These documents will be attached to your applications." %}

+ + + {% trans "Upload New Document" %} + + +
+ + {# Example Document List (Refined structure) #} +
    +
  • +
    + **{% trans "Resume" %}** (CV\_John\_Doe\_2024.pdf) +
    +
    + {% trans "Uploaded: 10 Jan 2024" %} + + +
    +
  • +
  • +
    + **{% trans "Medical Certificate" %}** (Cert\_KSA\_MED.jpg) +
    +
    + {% trans "Uploaded: 22 Feb 2023" %} + + +
    +
  • +
+ +
+ +
+

{% trans "Security & Preferences" %}

+ +
+
+
+
{% trans "Password Security" %}
+

{% trans "Update your password regularly to keep your account secure." %}

+ + {% trans "Change Password" %} + +
+
+
+
+
{% trans "Email Preferences" %}
+

{% trans "Manage subscriptions and job alert settings." %}

+ + {% trans "Manage Alerts" %} + +
+
+
+ +
+ {% trans "To delete your profile, please contact HR support." %} +
+
+ +
+
+ {# ================================================= #} + + +
+{% endblock %} \ No newline at end of file diff --git a/templates/applicant/application_detail.html b/templates/applicant/application_detail.html new file mode 100644 index 0000000..ac319ea --- /dev/null +++ b/templates/applicant/application_detail.html @@ -0,0 +1,216 @@ +{% extends 'applicant/partials/candidate_facing_base.html' %} +{% load static i18n %} + +{% block content %} + + {# ------------------------------------------------ #} + {# 🚀 TOP NAV BAR (Sticky and Themed) #} + {# ------------------------------------------------ #} + + + {# ------------------------------------------------ #} + {# 🔔 DJANGO MESSAGES (Refined placement and styling) #} + {# ------------------------------------------------ #} + + + {# ------------------------------------------------ #} + {# 💻 MAIN CONTENT CONTAINER #} + {# ------------------------------------------------ #} +
+
+ + {# 📌 RIGHT COLUMN: Sticky Apply Card (Desktop Only) #} +
+
+
+
+ {% trans "Ready to Apply?" %} +
+
+
+

{% trans "Review the full job details below before submitting your application." %}

+ + {% if job.form_template %} + + {% trans "Apply for this Position" %} + + {% elif not job.is_expired %} +

{% trans "Application form is unavailable." %}

+ {% endif %} +
+
+
+ + {# 📝 LEFT COLUMN: Job Details #} +
+
+ + {# Job Title Header #} +
+

{{ job.title }}

+
+ +
+ +

{% trans "Summary" %}

+ + {# Job Metadata/Overview Grid #} +
+ + {# SALARY #} + {% if job.salary_range %} +
+ + {% trans "Salary:" %} + {{ job.salary_range }} +
+ {% endif %} + + {# DEADLINE #} +
+ + {% trans "Deadline:" %} + {% if job.application_deadline %} + + {% if job.is_expired %} + {% trans "EXPIRED" %} + {% endif %} + {% else %} + {% trans "Ongoing" %} + {% endif %} +
+ + {# JOB TYPE #} +
+ + {% trans "Job Type:" %} {{ job.get_job_type_display }} +
+ + {# LOCATION #} +
+ + {% trans "Location:" %} {{ job.get_location_display }} +
+ + {# DEPARTMENT #} +
+ + {% trans "Department:" %} {{ job.department|default:"N/A" }} +
+ + {# JOB ID #} +
+ + {% trans "JOB ID:" %} {{ job.internal_job_id|default:"N/A" }} +
+ + {# WORKPLACE TYPE #} +
+ + {% trans "Workplace:" %} {{ job.get_workplace_type_display }} +
+ +
+ + {# Detailed Accordion Section #} +
+ + {% with active_collapse="collapseOne" %} + + {# JOB DESCRIPTION #} + {% if job.has_description_content %} +
+

+ +

+
+
+
{{ job.description|safe }}
+
+
+
+ {% endif %} + + {# QUALIFICATIONS #} + {% if job.has_qualifications_content %} +
+

+ +

+
+
+
{{ job.qualifications|safe }}
+
+
+
+ {% endif %} + + {# BENEFITS #} + {% if job.has_benefits_content %} +
+

+ +

+
+
+
{{ job.benefits|safe }}
+
+
+
+ {% endif %} + + {# APPLICATION INSTRUCTIONS #} + {% if job.has_application_instructions_content %} +
+

+ +

+
+
+
{{ job.application_instructions|safe }}
+
+
+
+ {% endif %} + + {% endwith %} + +
+ +
+
+
+
+
+ + {# 📱 MOBILE FIXED APPLY BAR (Replaced inline style with utility classes) #} + {% if job.form_template %} + + {% endif %} + + +{% endblock content%} \ No newline at end of file diff --git a/templates/forms/application_submit_form.html b/templates/applicant/application_submit_form.html similarity index 99% rename from templates/forms/application_submit_form.html rename to templates/applicant/application_submit_form.html index fdc9972..2ee7f75 100644 --- a/templates/forms/application_submit_form.html +++ b/templates/applicant/application_submit_form.html @@ -1,4 +1,4 @@ -{% extends 'forms/partials/candidate_facing_base.html'%} +{% extends 'applicant/partials/candidate_facing_base.html'%} {% load static i18n %} {% block content %} + + + + + +{% if messages %} +
+
+ {# Use responsive columns matching the main content block for alignment #} +
+ {% for message in messages %} + + {% endfor %} +
+
+
+ {% endif %} + + {# ================================================= #} + {# DJANGO MESSAGE BLOCK - Placed directly below the main navbar #} + {# ================================================= #} + + {# ================================================= #} + + + + {% block content %} + + + {% endblock content %} + + + + +{% block customJS %} +{% endblock %} + + \ No newline at end of file diff --git a/templates/base.html b/templates/base.html index 8977d6b..404faaa 100644 --- a/templates/base.html +++ b/templates/base.html @@ -208,7 +208,11 @@ {% trans "Sign Out" %} - + + {% comment %} + + {% trans "Sign Out" %} + {% endcomment %} {% endif %} @@ -255,6 +259,16 @@ + {% comment %} {% endcomment %}