From 1042f2a3b4b5512710ba0912bc575d052ec86cda Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:19:09 +0000 Subject: [PATCH 01/32] chore: add AI translated strings for frontend-app-account --- .../frontend-app-account/src/i18n/messages/ar.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/translations/frontend-app-account/src/i18n/messages/ar.json b/translations/frontend-app-account/src/i18n/messages/ar.json index dbdf9c3636..bcc3f174fe 100644 --- a/translations/frontend-app-account/src/i18n/messages/ar.json +++ b/translations/frontend-app-account/src/i18n/messages/ar.json @@ -253,10 +253,10 @@ "id.verification.camera.help.button": "انتقل إلى وضع الكاميرا", "id.verification.context.loading.state": "يجري تحميل حالة التحقق", "notification.preference.heading": "الإشعارات", - "notification.preference.app.title": "{ key, select, discussion {Discussions} coursework {Course Work} updates {Updates} grading {Grading} other {{key}} }", - "notification.preference.title": "", - "notification.preference.channel": "{ text, select, web {Web} email {Email} push {Push} other {{text}} }", - "notification.preference.emailCadence": "{ text, select, Daily {Daily} Weekly {Weekly} Immediately {Immediately} other {{text}} }", + "notification.preference.app.title": "{ key, select, discussion {المناقشات} coursework {أعمال الدورة} updates {التحديثات} grading {التصحيح} other {{key}} }", + "notification.preference.title": "{ text, select, core {إشعارات النشاط} newDiscussionPost {منشورات نقاش جديدة} newQuestionPost {منشورات أسئلة جديدة} contentReported {المحتوى المُبلغ عنه} courseUpdates {تحديثات الدورة} oraStaffNotifications {إرسال ORA جديد لتصحيح الموظفين} oraGradeAssigned {تم استلام درجة مهمة المقال} newInstructorAllLearnersPost {منشورات جديدة من المدرسين} other {{text}} }", + "notification.preference.channel": "{ text, select, web {الويب} email {البريد الإلكتروني} push {الإشعارات الفورية} other {{text}} }", + "notification.preference.emailCadence": "{ text, select, Daily {يوميًا} Weekly {أسبوعيًا} Immediately {فورًا} other {{text}} }", "notification.preference.type.label": "النوع", "notification.preference.web.label": "ويب", "notification.preference.help.email": "البريد الإلكتروني", @@ -331,4 +331,4 @@ "id.verification.account.name.summary.alert": "إعدادات حسابك يديرها {managerTitle}. إن لم يكن الاسم في بطاقة هويتك ذات الصورة. مطابقًا للاسم الذي في حسابك، فيرجى الاتصال بالمسؤول {profileDataManager} أو ب{support} للحصول على المساعدة قبل إتمام عملية التحقق من الصورة..", "idv.submission.alert.error": "لقد واجهنا خللاً فنياً خلال محاولتنا تقديم إثباتٍ للهوية. قد تكون هذه مشكلة مؤقتة، لذلك حاوِل مجدداً في بِضع دقائق. وإن بَقِيَت المشكلة، فمن فضلك اذهَب إلى {support_link} للمساعدة. ", "id.verification.account.name.edit": "عدِّل {sr}" -} \ No newline at end of file +} From a9fe46536740e15ddb3999ab182ef342eef61343 Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:19:23 +0000 Subject: [PATCH 02/32] chore: add AI translated strings for frontend-app-admin-portal --- .../src/i18n/messages/ar.json | 381 +++++++++++++----- 1 file changed, 269 insertions(+), 112 deletions(-) diff --git a/translations/frontend-app-admin-portal/src/i18n/messages/ar.json b/translations/frontend-app-admin-portal/src/i18n/messages/ar.json index e634a87edd..ef710a2023 100644 --- a/translations/frontend-app-admin-portal/src/i18n/messages/ar.json +++ b/translations/frontend-app-admin-portal/src/i18n/messages/ar.json @@ -8,11 +8,14 @@ "admin.portal.lpr.progress.status.enrolled": "ملتحق", "admin.portal.lpr.progress.status.pass": "يمر", "admin.portal.lpr.progress.status.pending": "قيد الانتظار", - "adminPortal.analyticsCardText.errorMessage": "واجهنا مشكلة أثناء جلب بيانات التحليلات. يرجى المحاولة مرة أخرى لاحقًا أو التواصل مع الدعم للحصول على المساعدة. (خطأ: {error_message})", - "adminPortal.analyticsCardText.noContentErrorMessage": "لم يتم العثور على التحليلات.", + "adminPortal.pageBanner.adminRolesSurvey.part1": "✨ ساعد في تشكيل ميزتنا الجديدة! امنحنا 5 دقائق من", + "adminPortal.pageBanner.adminRolesSurvey.part2": "التعليقات", + "adminPortal.pageBanner.adminRolesSurvey.part3": "حول أدوار المسؤولين لنبنيها بالشكل المناسب لك.", + "adminPortal.v2.analyticsCardText.errorMessage": "واجهنا مشكلة أثناء جلب بيانات التحليلات. يرجى المحاولة مرة أخرى لاحقًا أو الاتصال بالدعم للحصول على المساعدة. (خطأ: {error_message})", + "adminPortal.v2.analyticsCardText.noContentErrorMessage": "لم يتم العثور على التحليلات.", "adminPortal.analyticsCardBetaButton": "إصدار تجريبي", "adminPortal.analyticsCardPoweredBylabel": "مدعوم من OpenAI", - "adminPortal.summarizeAnalytics": "تلخيص التحليلات", + "adminPortal.v2.summarizeAnalytics": "تلخيص التحليلات", "adminPortal.trackProgress": "تتبع التقدم", "adminPortal.cards.registeredLearners": "إجمالي عدد المتعلمين المسجلين", "adminPortal.cards.registeredUnenrolledLearners": "من هم المتعلمون المسجلون ولكنهم لم يلتحقوا بعد في أي دورة؟", @@ -25,28 +28,28 @@ "adminPortal.cards.learnersInactiveMonth": "من لم ينشط منذ أكثر من شهر؟", "adminPortal.cards.completedLearners": "كم عدد الدورات التي أكملها المتعلمون؟", "adminPortal.cards.completedLearnersWeek": "من أكمل دورة في الأسبوع الماضي؟", - "admin.portal.admin.cards.skeleton.loading.label": "جارٍ التحميل...", + "admin.portal.lpr.filter.by.email.input.label": "تصفية عن طريق البريد الإلكتروني", + "admin.portal.lpr.filter.by.email.input.placeholder": "البحث بالبريد الإلكتروني...", "admin.portal.lpr.filter.by.group.dropdown.label": "تصفية حسب المجموعة", - "admin.portal.lpr.filter.by.group.dropdown.option.all.groups": "كافّة المجموعات", + "admin.portal.lpr.v2.filter.by.group.dropdown.option.all.groups": "كافّة المجموعات", + "admin.portal.lpr.filter.by.budget.dropdown.label": "تصفية حسب الميزانية", + "admin.portal.lpr.filter.by.budget.dropdown.option.all.budgets": "جميع الميزانيات", + "admin.portal.lpr.filter.by.enrollment.dropdown.label": "تصفية حسب التسجيل", + "admin.portal.lpr.filter.by.enrollment.dropdown.option.all": "الكل", + "admin.portal.lpr.filter.by.enrollment.dropdown.option.enrolled": "مسجل", + "admin.portal.lpr.filter.by.enrollment.dropdown.option.unenrolled": "غير مسجل", "admin.portal.lpr.filter.by.course.dropdown.label": "تصفية حسب الدورة", - "admin.portal.lpr.filter.by.course.dropdown.option.all.courses": "جميع الدورات", + "admin.portal.lpr.v2.filter.by.course.dropdown.option.all.courses": "جميع المساقات", "admin.portal.lpr.filter.by.start.date.dropdown.label": "التصفية حسب تاريخ البدء", "admin.portal.lpr.filter.by.start.date.alt.text": "معلومات اكثر", "admin.portal.lpr.filter.by.start.date.dropdown.tooltip": "يمكن تحديد تاريخ البدء بعد تحديد اسم الدورة.", "admin.portal.lpr.filter.by.start.date.dropdown.option.all.dates": "جميع التواريخ", "admin.portal.lpr.filter.by.start.date.dropdown.option.choose.course": "اختر دورة", - "admin.portal.lpr.filter.by.budget.dropdown.label": "تصفية حسب الميزانية", - "admin.portal.lpr.filter.by.budget.dropdown.option.all.budgets": "جميع الميزانيات", - "admin.portal.lpr.filter.by.email.input.label": "تصفية عن طريق البريد الإلكتروني", - "admin.portal.lpr.filter.by.email.input.placeholder": "البحث بالبريد الإلكتروني...", - "admin.portal.lpr.embedded.subscription.section.heading": "إدارة المتعلمين", - "admin.portal.lpr.embedded.subscription.section.filter.by.subscription.dropdown.label": "التصفية حسب خطة الاشتراك", - "admin.portal.lpr.embedded.subscription.section.info.nudges": "مركز المساعدة: أفاد المتعلمون أن الوكزات لها تأثير إيجابي على دوافعهم وأدائهم.", - "admin.portal.lpr.embedded.subscription.section.info.learn.more": "تعرف على المزيد من النصائح المفيدة في أفضل الممارسات", - "admin.portal.lpr.embedded.subscription.section.no.subscription.available": "لا يوجد اشتراك متاح", - "admin.portal.lpr.embedded.subscription.section.manage.all.learners.button.label": "إدارة جميع المتعلمين", - "admin.portal.lpr.embedded.subscription.section.invite.learners.toast.message": "تم تعيين عناوين البريد الإلكتروني {numAlreadyAssociated} مسبقًا. تمت إضافة عناوين البريد الإلكتروني {numSuccessfulAssignments} بنجاح.", - "admin.portal.lpr.report.full.report.title": "تقرير كامل", + "admin.portal.lpr.overview.heading": "نظرة عامة", + "adminPortal.lpr.tab.learnerProgressReport.title": "تقرير تقدم المتعلم", + "adminPortal.lpr.tab.moduleActivity.title": "نشاط الوحدة (التعليم التنفيذي)", + "admin.portal.lpr.data.refreshed.date.message": "عرض البيانات اعتبارًا من {timestamp}", + "admin.portal.lpr.v2.report.full.report.title": "تقرير كامل", "admin.portal.lpr.report.registered.learners.not.enrolled.title": "المتعلمون المسجلون لم يتم تسجيلهم بعد في الدورة التدريبية", "admin.portal.lpr.report.enrolled.learners.title": "عدد الدورات المسجلة من قبل المتعلمين", "admin.portal.lpr.report.learners.not.enrolled.in.active.course.title": "المتعلمون غير مسجلين في دورة نشطة", @@ -67,16 +70,6 @@ "admin.portal.lpr.error.message.detail": "حاول تحديث شاشتك {errorDetail}", "admin.portal.lpr.error.csv.generation.heading": "غير قادر على إنشاء تقرير CSV", "admin.portal.lpr.error.csv.generation.detail": "حاول مرة اخرى. {message}", - "admin.portal.lpr.overview.heading": "نظرة عامة", - "admin.portal.lpr.data.refreshed.date.message": "عرض البيانات اعتبارًا من {timestamp}", - "adminPortal.lpr.tab.learnerProgressReport.title": "تقرير تقدم المتعلم", - "adminPortal.lpr.tab.moduleActivity.title": "نشاط الوحدة (التعليم التنفيذي)", - "adminPortal.v2.analyticsCardText.errorMessage": "واجهنا مشكلة أثناء جلب بيانات التحليلات. يرجى المحاولة مرة أخرى لاحقًا أو الاتصال بالدعم للحصول على المساعدة. (خطأ: {error_message})", - "adminPortal.v2.analyticsCardText.noContentErrorMessage": "لم يتم العثور على التحليلات.", - "adminPortal.v2.summarizeAnalytics": "تلخيص التحليلات", - "admin.portal.lpr.v2.filter.by.group.dropdown.option.all.groups": "كافّة المجموعات", - "admin.portal.lpr.v2.filter.by.course.dropdown.option.all.courses": "جميع المساقات", - "admin.portal.lpr.v2.report.full.report.title": "تقرير كامل", "analytics.page.title": "التحليلات", "advance.analytics.data.refresh.msg": "تم تحديث البيانات على {date}", "advance.analytics.filter.start.date": "تاريخ البدء", @@ -130,7 +123,7 @@ "advance.analytics.date.range.filter.option.custom": "مُخَصَّص", "advance.analytics.date.filter.start.date": "تاريخ البَدْء", "advance.analytics.date.filter.end.date": "تاريخ الانتِهاء", - "advance.analytics.calculation.filter": "", + "advance.analytics.calculation.filter": "الحساب / الاتجاهات", "advance.analytics.calculation.filter.option.total": "المَجموع", "advance.analytics.calculation.filter.option.running.total": "المَجموع التَراكُمي", "advance.analytics.calculation.filter.option.average.3": "المُتَوسِّط المُتَحَرِّك (لِثلاث فترات)", @@ -139,10 +132,11 @@ "advance.analytics.filter.granularity.option.label.daily": "يومِياً", "advance.analytics.filter.granularity.option.label.weekly": "أُسبوعياً", "advance.analytics.filter.granularity.option.label.monthly": "شَهرِياً", - "advance.analytics.filter.granularity.option.label.quarterly": "", + "advance.analytics.filter.granularity.option.label.quarterly": "ربع سنوي", "advance.analytics.filter.by.group": "التَصفِية حَسب المَجموعة", "adminPortal.analytics.group.filter.all": "جَميع المَجموعات", "advance.analytics.filter.by.budget": "التَصفِية حَسب المِيزانية", + "adminPortal.analytics.budget.filter.all": "جميع الميزانيات", "advance.analytics.filter.by.course.starte.date": "التَصفِية حَسب تاريخ البَدء", "advance.analytics.filter.by.start.date.alt.text": "المَزيد مِن المَعلومات", "advance.analytics.filter.by.start.date.dropdown.tooltip": "التَصفِية حَسب تاريخ بَدء المُقَرَّر المحدد", @@ -165,6 +159,7 @@ "advance.analytics.outcomes.stats.completions.title": "الإكمالات", "advance.analytics.outcomes.stats.unique.skills.title": "المهارات الفريدة المُكتسَبة", "advance.analytics.outcomes.stats.upskilled.learners.title": "المُتعلِّمون الذين طوروا مهاراتهم", + "advance.analytics.outcomes.stats.new.skills.gained.title": "المهارات الجديدة المكتسبة", "lcm.budget.detail.page.expiry.alert.contact.support": "اتصل بالدعم", "lcm.budget.detail.page.expiry.modal.dismiss": "رفض", "lcm.budget.detail.page.expiry.modal.contact.support": "اتصل بالدعم", @@ -177,8 +172,8 @@ "adminPortal.assignmentModal.altText": "معلومات اكثر", "adminPortal.assignmentModal.tooltipText": "سوف يقوم edX بتذكير المتعلمين باسترداد الكود الخاص بهم بعد 3 و10 و19 يومًا من تعيينه.", "adminPortal.assignmentModal.modalFieldLabel": "تذكيرات تلقائية", - "admin.portal.codes.codeDeprecationAlert.header": "", - "admin.portal.codes.codeDeprecationAlert.message": "", + "admin.portal.codes.codeDeprecationAlert.header": "إشعار إيقاف الميزة:", + "admin.portal.codes.codeDeprecationAlert.message": "سيتم إيقاف ميزة الأكواد بعد 15 سبتمبر، وبمجرد الإيقاف لن تكون الأكواد صالحة. سنشارك المزيد من التفاصيل قريباً حول خيارات التسجيل الجديدة.", "admin.portal.manage.codes.tab.error.heading": "تعذر تحميل القسائم", "admin.portal.manage.codes.tab.error.message.detail": "حاول تحديث شاشتك ({errorDetail})", "admin.portal.manage.codes.tab.request.codes.success.heading": "تم استلام طلب المزيد من الرموز", @@ -298,6 +293,24 @@ "admin.portal.lpr.past.week.passed.learners.table.user_email.column.heading": "البريد الإلكتروني", "admin.portal.lpr.past.week.passed.learners.table.course_title.column.heading": "عنوان الدورة", "admin.portal.lpr.past.week.passed.learners.table.passed_date.column.heading": "تاريخ اجتيازه", + "adminPortal.peopleManagement.addAdmin.modal.error.noEmail": "يرجى إضافة عنوان بريد إلكتروني واحد على الأقل.", + "adminPortal.peopleManagement.addAdmin.modal.error.tooManyEmails": "{enteredCount} بريد إلكتروني تم إدخاله ({maxCount} كحد أقصى). احذف {extraCount} {extraCount, plural, one {بريد إلكتروني} other {بريد إلكتروني}} للمتابعة.", + "adminPortal.peopleManagement.addAdmin.modal.error.invalidEmail": "{email} ليس بريداً إلكترونياً صالحاً.", + "adminPortal.peopleManagement.addAdmin.modal.error.duplicateEmails": "{email}{otherCount, plural, =0 { تم إدخاله أكثر من مرة.} one { و # عنوان بريد إلكتروني آخر تم إدخاله أكثر من مرة.} other { و # عناوين بريد إلكتروني أخرى تم إدخالها أكثر من مرة.}}", + "adminPortal.peopleManagement.addAdmin.modal.error.inviteFailed": "فشل في دعوة المسؤولين.", + "adminPortal.peopleManagement.addAdmin.modal.title": "دعوة المسؤولين", + "adminPortal.peopleManagement.addAdmin.modal.successTitle": "نتائج الدعوة", + "adminPortal.peopleManagement.addAdmin.modal.successMessage": "تم دعوة المسؤولين بنجاح!", + "adminPortal.peopleManagement.addAdmin.modal.emailLabel": "أدخل عنوان البريد الإلكتروني", + "adminPortal.peopleManagement.addAdmin.modal.helperText": "الحد الأقصى للدعوات في كل مرة: 10 عناوين بريد إلكتروني. لإضافة أكثر من عضو، أدخل عنوان بريد إلكتروني واحد في كل سطر.", + "adminPortal.peopleManagement.addAdmin.modal.cancel": "إلغاء", + "adminPortal.peopleManagement.addAdmin.modal.submit": "دعوة", + "adminPortal.peopleManagement.addAdmin.modal.submitting": "جارٍ الدعوة...", + "adminPortal.peopleManagement.addAdmin.modal.success": "تمت الدعوة!", + "adminPortal.peopleManagement.addAdmin.modal.error": "حاول مرة أخرى", + "adminPortal.peopleManagement.admins.remove": "إزالة المسؤول", + "adminPortal.peopleManagement.admins.copyInvite": "نسخ رابط الدعوة", + "peopleManagement.createGroup.duplicateNameError.message": "يوجد مجموعة بنفس الاسم بالفعل. يرجى إدخال اسم فريد لإنشاء مجموعة جديدة.", "peopleManagement.tab.create.group.modal.title": "مَجموعة جَديدة", "people.management.page.create.group.section.header": "إنشاء مجموعة مخصصة", "people.management.create.groups.modal": "فقط الأعضاء المسجلون في مؤسستك يمكن إضافتهم إلى مجموعة.", @@ -306,23 +319,33 @@ "people.management.page.create.group.members.header": "اختر أعضاء المجموعة", "people.management.page.create.group.csv.upload": "قم بتحميل ملف CSV أو اختر الأعضاء من الجدول أدناه.", "people.management.page.create.group.details.header": "التفاصيل", + "adminPortal.peopleManagement.admins.dataTable.download.toast": "تم التنزيل بنجاح", "adminPortal.peopleManagement.dataTable.download.toast": "تم التنزيل بنجاح", "adminPortal.peopleManagement.dataTable.download.button.pending": "جاري التحميل", "adminPortal.peopleManagement.dataTable.download.button.complete": "تم التنزيل", "adminPortal.peopleManagement.dataTable.download.button.loading": "تنزيل نشاط الوحدة", "adminPortal.peopleManagement.errorModal.title": "حصل خطأ ما", "adminPortal.peopleManagement.errorModal.body": "نحن آسفون. حدث خطأ ما خلف الكواليس. يرجى المحاولة مرة أخرى، أو التواصل مع دعم العملاء للحصول على المساعدة.", + "adminPortal.peopleManagement.inviteAdmin.title": "مسؤولو مؤسستك", + "adminPortal.peopleManagement.inviteAdmin.subtitle": "عرض جميع مسؤولي مؤسستك.", + "adminPortal.peopleManagement.inviteAdmin.addButton": "إضافة المسؤولين", + "adminPortal.peopleManagement.inviteAdmin.removeSuccess": "تمت إزالة المسؤول", + "adminPortal.peopleManagement.title": "مجموعات مؤسستك", + "adminPortal.peopleManagement.subtitle.lc": "راقب تقدم التعلم الجماعي، وعيّن المزيد من الدورات، وادعُ الأعضاء إلى ميزانيات جديدة لائتمان الطلّاب.", + "adminPortal.peopleManagement.subtitle.noLc": "راقب تقدم التعلم الجماعي.", + "adminPortal.peopleManagement.newGroup.button": "إنشاء مجموعة", + "adminPortal.peopleManagement.dataTable.learnersTitle": "متعلمو مؤسستك", + "adminPortal.peopleManagement.dataTable.learnersSubtitle": "عرض جميع متعلمي مؤسستك.", + "adminPortal.peopleManagement.joinedOrg": "انضم إلى المؤسسة", + "adminPortal.peopleManagement.invitedDate": "تاريخ الدعوة", + "adminPortal.peopleManagement.role": "الدور", "adminPortal.peopleManagement.zeroState.card.header": "ليس لديك أي مجموعات حتى الآن.", "adminPortal.peopleManagement.zeroState.card.subtitle.lc": "بمجرد إنشاء مجموعة، يمكنك تتبع تقدم الأعضاء، وتعيين دورات إضافية، ودعوتهم إلى ميزانيات إضافية.", "admin.portal.people.management.page.zerostate.card.subtitle.noLc": "بمجرد إنشاء مجموعة، يمكنك متابعة تقدم الأعضاء.", "admin.portal.people.management.page": "إدارة الأفراد", "admin.portal.people.management.group.deleted.toast": "تم حذف المجموعة", - "adminPortal.peopleManagement.title": "مجموعات مؤسستك", - "adminPortal.peopleManagement.subtitle.lc": "راقب تقدم التعلم الجماعي، وعيّن المزيد من الدورات، وادعُ الأعضاء إلى ميزانيات جديدة لائتمان الطلّاب.", - "adminPortal.peopleManagement.subtitle.noLc": "راقب تقدم التعلم الجماعي.", - "adminPortal.peopleManagement.newGroup.button": "إنشاء مجموعة", - "adminPortal.peopleManagement.dataTable.title": "أعضاء مؤسستك", - "adminPortal.peopleManagement.dataTable.subtitle": "عرض جميع أعضاء مؤسستك.", + "adminPortal.peopleManagement.tabs.learners": "المتعلمين", + "adminPortal.peopleManagement.tabs.admins": "المسؤولين", "admin.portal.productTours.adminOnboarding.TourCompleteModal.done": "تم", "admin.portal.lpr.registered.learners.table.user_email.column.heading": "البريد الإلكتروني", "admin.portal.lpr.registered.learners.table.lms_user_created.column.heading": "تم إنشاء الحساب", @@ -388,6 +411,7 @@ "admin.portal.request.codes.form.label.notes": "ملاحظات", "admin.portal.request.codes.form.submit": "طلب الأكواد", "admin.portal.request.codes.form.cancel": "ألغِ", + "admin.portal.billing.nav.label": "الفوترة", "sidebar.menu.item.highlights.title": "أبرز النقاط", "admin.portal.subsidy.request.management.table.email.address.header": "عنوان البريد الإلكتروني", "admin.portal.subsidy.request.management.table.course.title.header": "عنوان الدورة التدريبية", @@ -397,6 +421,115 @@ "adminPortal.account.activation.success": "تم تنشيط حساب مسؤول edX الخاص بك بنجاح.", "adminPortal.account.activation.required": "للمتابعة، يجب عليك التحقق من عنوان بريدك الإلكتروني لتنشيط حسابك {platform_name} . من فضلك بمجرد تفعيل حسابك.", "adminPortal.account.activation.support": "إذا واجهت مشكلات أخرى، فيرجى الاتصال بـ {support_name} على {support_link} .", + "admin.portal.billing.addPaymentMethod.error.stripeNotLoaded": "مزود الدفع لم يتم تحميله. يرجى تحديث الصفحة.", + "admin.portal.billing.addPaymentMethod.error.invalidEmail": "يرجى إدخال عنوان بريد إلكتروني صالح.", + "admin.portal.billing.addPaymentMethod.error.invalidCard": "لا يمكننا معالجة وسيلة الدفع الخاصة بك. يرجى التحقق من تفاصيل البطاقة والمحاولة مرة أخرى.", + "admin.portal.billing.addPaymentMethod.error.stripeNetwork": "لا يمكننا الاتصال بمزود الدفع. يرجى المحاولة مرة أخرى لاحقاً.", + "admin.portal.billing.addPaymentMethod.error.generic": "حدث خطأ أثناء إضافة وسيلة الدفع الخاصة بك. يرجى المحاولة مرة أخرى.", + "admin.portal.billing.addPaymentMethod.modal.title": "إضافة وسيلة دفع", + "admin.portal.billing.addPaymentMethod.field.email": "البريد الإلكتروني للفوترة", + "admin.portal.billing.addPaymentMethod.field.email.required": "يرجى إدخال عنوان بريد إلكتروني.", + "admin.portal.billing.addPaymentMethod.field.email.invalid": "يرجى إدخال عنوان بريد إلكتروني صالح.", + "admin.portal.billing.addPaymentMethod.field.organizationName": "اسم المؤسسة للفاتورة", + "admin.portal.billing.addPaymentMethod.field.organizationName.required": "يرجى إدخال اسم المؤسسة.", + "admin.portal.billing.addPaymentMethod.field.cardDetails": "تفاصيل البطاقة", + "admin.portal.billing.addPaymentMethod.field.cardDetails.required": "يرجى إدخال تفاصيل البطاقة كاملة.", + "admin.portal.billing.addPaymentMethod.field.addressLine1": "عنوان الشارع", + "admin.portal.billing.addPaymentMethod.field.addressLine1.required": "يرجى إدخال عنوان الشارع.", + "admin.portal.billing.addPaymentMethod.field.addressLine2": "السطر الثاني من العنوان", + "admin.portal.billing.addPaymentMethod.field.city": "المدينة", + "admin.portal.billing.addPaymentMethod.field.city.required": "يرجى إدخال المدينة.", + "admin.portal.billing.addPaymentMethod.field.state": "الولاية/المقاطعة", + "admin.portal.billing.addPaymentMethod.field.state.required": "يرجى إدخال الولاية/المقاطعة.", + "admin.portal.billing.addPaymentMethod.field.postalCode": "الرمز البريدي", + "admin.portal.billing.addPaymentMethod.field.postalCode.required": "يرجى إدخال الرمز البريدي.", + "admin.portal.billing.addPaymentMethod.field.country": "البلد", + "admin.portal.billing.addPaymentMethod.field.country.required": "يرجى اختيار البلد.", + "admin.portal.billing.addPaymentMethod.button.cancel": "إلغاء", + "admin.portal.billing.addPaymentMethod.button.submitting": "جارٍ الإضافة...", + "admin.portal.billing.addPaymentMethod.button.submit": "إضافة وسيلة دفع", + "admin.portal.billing.billingAddress.heading": "تفاصيل المؤسسة", + "admin.portal.billing.billingAddress.emptyState.title": "لا يوجد عنوان فوترة مسجل", + "admin.portal.billing.billingAddress.emptyState.body": "أضف عنوان فوترة مؤسستك لتلقي فواتير دقيقة ووثائق الضرائب.", + "admin.portal.billing.billingAddress.emptyState.addButton": "إضافة عنوان فوترة", + "admin.portal.billing.billingAddress.modal.error.generic": "فشل تحديث العنوان. يرجى المحاولة مرة أخرى.", + "admin.portal.billing.billingAddress.modal.editTitle": "تعديل تفاصيل المؤسسة", + "admin.portal.billing.billingAddress.modal.addTitle": "عنوان الفوترة", + "admin.portal.billing.billingAddress.modal.email.label": "البريد الإلكتروني للفوترة", + "admin.portal.billing.billingAddress.modal.organizationName.label": "الاسم للفاتورة", + "admin.portal.billing.billingAddress.modal.organizationName.invalid": "يرجى تقديم اسم مؤسسة صالح.", + "admin.portal.billing.billingAddress.modal.line1.label": "عنوان الشارع", + "admin.portal.billing.billingAddress.modal.line1.invalid": "يرجى تقديم عنوان شارع صالح.", + "admin.portal.billing.billingAddress.modal.line2.label": "السطر الثاني من العنوان", + "admin.portal.billing.billingAddress.modal.city.label": "المدينة", + "admin.portal.billing.billingAddress.modal.city.invalid": "يرجى تقديم مدينة صالحة.", + "admin.portal.billing.billingAddress.modal.state.label": "الولاية/المقاطعة", + "admin.portal.billing.billingAddress.modal.state.invalid": "يرجى تقديم ولاية/مقاطعة صالحة.", + "admin.portal.billing.billingAddress.modal.postalCode.label": "الرمز البريدي", + "admin.portal.billing.billingAddress.modal.postalCode.invalid": "يرجى تقديم رمز بريدي صالح.", + "admin.portal.billing.billingAddress.modal.country.label": "البلد", + "admin.portal.billing.billingAddress.modal.country.placeholder": "اختر بلداً", + "admin.portal.billing.billingAddress.modal.country.invalid": "يرجى تقديم بلد صالح.", + "admin.portal.billing.billingAddress.modal.cancel": "إلغاء", + "admin.portal.billing.billingAddress.modal.save": "حفظ", + "admin.portal.billing.emptyState.title": "قم بإعداد معلومات الفوترة الخاصة بك", + "admin.portal.billing.emptyState.body": "أضف وسيلة دفع وعنوان فوترة لإدارة اشتراكك وعرض سجل المعاملات.", + "admin.portal.billing.emptyState.addPaymentMethod": "إضافة وسيلة دفع", + "admin.portal.billing.emptyState.addBillingAddress": "إضافة عنوان فوترة", + "admin.portal.billing.pastDueAlert.message": "فشلت عملية الدفع الخاصة بك. يرجى تحديث وسيلة الدفع لتجنب انقطاع الخدمة.", + "admin.portal.billing.subscription.cancel.success": "تم جدولة إلغاء اشتراكك في نهاية الفترة الحالية.", + "admin.portal.billing.deletePaymentMethod.modal.title": "حذف وسيلة الدفع؟", + "admin.portal.billing.deletePaymentMethod.modal.message": "هل أنت متأكد أنك تريد حذف {paymentMethodType} الذي ينتهي بـ {lastFour}؟", + "admin.portal.billing.deletePaymentMethod.modal.warning": "إذا كانت هذه وسيلة الدفع الوحيدة لديك، ستحتاج إلى إضافة وسيلة جديدة لتجنب أي انقطاع في خدمة الاشتراك.", + "admin.portal.billing.deletePaymentMethod.modal.cancel": "إلغاء", + "admin.portal.billing.deletePaymentMethod.modal.delete": "حذف", + "admin.portal.billing.paymentMethods.heading": "وسائل الدفع", + "admin.portal.billing.paymentMethods.addButton": "إضافة وسيلة دفع", + "admin.portal.billing.paymentMethods.emptyState.title": "لا توجد وسائط دفع مسجلة", + "admin.portal.billing.paymentMethods.emptyState.body": "أضف وسيلة دفع لتمكين الفوترة التلقائية.", + "admin.portal.billing.paymentMethods.badge.default": "افتراضي", + "admin.portal.billing.paymentMethods.badge.pending": "بانتظار التحقق", + "admin.portal.billing.paymentMethods.expiration": "تنتهي {expiration}", + "admin.portal.billing.paymentMethods.action.setDefault": "تعيين كافتراضي", + "admin.portal.billing.paymentMethods.action.delete": "حذف", + "admin.portal.billing.subscription.reinstate.success": "تم إعادة تفعيل اشتراكك.", + "admin.portal.billing.setDefault.error": "فشل تحديث وسيلة الدفع الافتراضية. يرجى المحاولة مرة أخرى.", + "admin.portal.billing.setDefault.success": "تم تحديث وسيلة الدفع الافتراضية.", + "admin.portal.billing.subscription.cancel.error.generic": "فشل إلغاء الاشتراك. يرجى المحاولة مرة أخرى.", + "admin.portal.billing.subscription.reinstate.error.generic": "فشل إعادة تفعيل الاشتراك. يرجى المحاولة مرة أخرى.", + "admin.portal.billing.subscription.heading": "الاشتراكات", + "admin.portal.billing.subscription.cancellationNotice": "من المقرر أن ينتهي اشتراكك في {date}.", + "admin.portal.billing.subscription.title": "التفاصيل", + "admin.portal.billing.subscription.subtitle": "{amount} سنوياً • {licenseCount, plural, one {ترخيص واحد} other {# تراخيص}}", + "admin.portal.billing.subscription.currentPeriodEnd.label": "نهاية الفترة الحالية", + "admin.portal.billing.subscription.reinstateButton": "إعادة تفعيل الاشتراك", + "admin.portal.billing.subscription.cancelButton": "إلغاء الاشتراك", + "admin.portal.billing.subscription.cancelModal.title": "هل تريد إلغاء اشتراكك؟", + "admin.portal.billing.subscription.cancelModal.body": "سيظل اشتراكك فعالاً حتى {currentPeriodEnd}. بعد هذا التاريخ، ستفقد إمكانية الوصول إلى جميع ميزات الاشتراك، ولن يتمكن المتعلمون من التسجيل في الدورات.", + "admin.portal.billing.subscription.cancelModal.warning": "يمكنك إعادة تفعيل اشتراكك في أي وقت قبل {currentPeriodEnd} بالنقر على زر 'إعادة تفعيل الاشتراك'.", + "admin.portal.billing.subscription.cancelModal.goBack": "العودة", + "admin.portal.billing.subscription.cancelModal.confirm": "إلغاء الاشتراك", + "admin.portal.billing.transactionHistory.status.open": "مفتوح", + "admin.portal.billing.transactionHistory.status.paid": "مدفوع", + "admin.portal.billing.transactionHistory.status.uncollectible": "غير قابل للتحصيل", + "admin.portal.billing.transactionHistory.status.void": "ملغى", + "admin.portal.billing.transactionHistory.actions.menu": "قائمة الإجراءات", + "admin.portal.billing.transactionHistory.actions.downloadInvoice": "عرض الفاتورة", + "admin.portal.billing.transactionHistory.actions.downloadReceipt": "عرض الإيصال", + "admin.portal.billing.transactionHistory.column.date": "التاريخ", + "admin.portal.billing.transactionHistory.column.amount": "المبلغ المدفوع", + "admin.portal.billing.transactionHistory.column.status": "الحالة", + "admin.portal.billing.transactionHistory.column.actions": "الإجراءات", + "admin.portal.billing.transactionHistory.heading": "سجل المعاملات", + "admin.portal.billing.transactionHistory.emptyState.title": "لا يوجد سجل معاملات", + "admin.portal.billing.transactionHistory.emptyState.body": "سيظهر سجل فواتيرك ومدفوعاتك هنا بمجرد وجود نشاط فوترة.", + "admin.portal.billing.transactionHistory.pagination.showing": "عرض الصفحة {currentPage}", + "admin.portal.billing.transactionHistory.pagination.showingCount": "عرض {count} معاملات", + "admin.portal.billing.transactionHistory.pagination.previous": "السابق", + "admin.portal.billing.transactionHistory.pagination.next": "التالي", + "admin.portal.billing.billingAddress.success": "تم تحديث عنوان الفوترة بنجاح.", + "lcm.budget.detail.page.approved.requests.bulk.cancel.button": "إلغاء ({totalToCancel})", + "lcm.budget.detail.page.approved.requests.bulk.remind.button": "تذكير ({selectedRemindableRowCount})", "lcm.budget.detail.page.approved.requests.table.actions.cancel.approval": "ألغِ الموافقة", "lcm.budget.detail.page.approved.requests.table.actions.remind.approval": "ذَكِّر المُتعلِّم", "lcm.budget.detail.page.approved.requests.refresh": "حدّث", @@ -473,11 +606,23 @@ "lcm.budget.detail.page.overview.enroll.browse.and.enroll.popover": "متاح لجميع الأشخاص في مؤسستك", "lcm.budget.detail.page.overview.enroll.browse.and.request": "تصفح واطلب", "lcm.budget.detail.page.overview.enroll.browse.and.request.popover": "متوفر لجميع الأشخاص في مؤسستك", + "lcm.budget.detail.page.approved.requests.bulk.remind.modal.title.multiple": "تذكير {count} متعلم؟", + "lcm.budget.detail.page.approved.requests.bulk.remind.modal.title.single": "تذكير المتعلم؟", + "lcm.budget.detail.page.approved.requests.bulk.remind.modal.body.multiple": "أنت على وشك إرسال رسائل تذكير إلى {count} متعلم لاتخاذ الخطوة التالية في الدورات التي طلبوها.", + "lcm.budget.detail.page.approved.requests.bulk.remind.modal.body.single": "أنت ترسل رسالة تذكير إلى المتعلم المحدد لاتخاذ الخطوة التالية في الدورة التي طلبها.", + "lcm.budget.detail.page.approved.requests.bulk.remind.modal.body2": "عندما يكمل متعلموك التسجيل، سيتم تمييز الأموال \"المعلقة\" كـ \"منفقة\".", + "lcm.budget.detail.page.approved.requests.bulk.remind.modal.close": "العودة", + "lcm.budget.detail.page.approved.requests.bulk.remind.modal.send.multiple.reminder": "إرسال تذكيرات ({count})", + "lcm.budget.detail.page.approved.requests.bulk.remind.modal.send.single.reminder": "إرسال تذكير", + "lcm.budget.detail.page.approved.requests.bulk.remind.modal.sending": "جار الإرسال...", + "lcm.budget.detail.page.approved.requests.bulk.remind.modal.reminded": "تم الإرسال", + "lcm.budget.detail.page.approved.requests.bulk.remind.modal.error": "حاول مرة أخرى", + "lcm.budget.detail.page.approved.requests.cancel.approval.modal.cancel.multiple.approvals.button": "إلغاء الموافقات ({uuidCount})", + "lcm.budget.detail.page.approved.requests.cancel.approval.modal.cancel.approval.button": "ألغِ الموافقة", "lcm.budget.detail.page.approved.requests.cancel.approval.modal.title": "هل تريد إلغاء الموافقة؟", "lcm.budget.detail.page.approved.requests.cancel.approval.modal.body": "لا يُمكِن التَراجُع عن هذه العملية لاحقاً.", "lcm.budget.detail.page.approved.requests.cancel.approval.modal.body2": "سيُبَلَّغ المُتعلِّم بإلغاء طلبه المُعتمد. وأنّ الأموال المرتبطة بهذا الطلب قد أُرجِعَت من حالة \"مُعلقة\" إلى \"مُتاحة\".", "lcm.budget.detail.page.approved.requests.cancel.approval.modal.go.back.button": "عُد", - "lcm.budget.detail.page.approved.requests.cancel.approval.modal.cancel.approval.button": "ألغِ الموافقة", "lcm.budget.detail.page.approved.requests.cancel.approval.modal.canceling.state": "الإلغاء جارٍ...", "lcm.budget.detail.page.approved.requests.cancel.approval.modal.canceled.state": "أُلغِي", "lcm.budget.detail.page.approved.requests.cancel.approval.modal.try.again": "حاوِل مَرّة أُخرى", @@ -495,6 +640,7 @@ "lcm.learner.credit.allocation.spent.table.column.Date": "التاريخ", "lcm.learner.credit.allocation.spent.table.column.enrollment.details": "تفاصيل التسجيل", "lcm.learner.credit.allocation.spent.table.column.amount": "القيمة", + "lcm.learner.credit.allocation.spent.table.column.startDate": "تاريخ البدء", "lcm.page.title": "إدارة ائتمان المتعلم", "lcm.budgets.loading": "جارٍ تحميل الميزانيات...", "lcm.budgets.no.budgets": "لا توجد ميزانيات لمؤسستك", @@ -532,9 +678,14 @@ "adminPortal.settings.ssoTab.label": "الدخول الموحد (SSO)", "adminPortal.settings.appearanceTab.label": "مظهر البوابة", "adminPortal.settings.apiCredentialsTab.label": "بيانات اعتماد API", + "subscriptions.manageSubscriptions.subscriptionButton.default": "إدارة الاشتراك", + "subscriptions.manageSubscriptions.subscriptionButton.pending": "جارٍ الفتح...", + "subscriptions.manageSubscriptions.subscriptionButton.error": "حاول مرة أخرى", "admin.portal.multiple.subscriptions.page.no.plans.heading": "لا توجد خطط اشتراك لمؤسستك", "admin.portal.multiple.subscriptions.page.no.plans.body": "لم نتمكن من العثور على أي خطط اشتراك نشطة لمؤسستك. يرجى الاتصال بدعم العملاء إذا كانت لديك أسئلة.", "admin.portal.multiple.subscriptions.page.contact.support.button": "اتصل بالدعم", + "subscriptions.subscriptionCard.freeTrialDescription": "ستنتهي فترة التجربة المجانية لمدة 14 يوماً في {boldDate}. سيبدأ اشتراكك المدفوع تلقائياً، وسيتم خصم رسوم الاشتراك {subscriptionUpcomingPrice} من البطاقة المسجلة. {stripeLink}", + "subscriptions.subscriptionCard.canceledTrialDescription": "من المقرر أن ينتهي خطتك في {cancellation_date}. لا يزال بإمكان متعلميك الوصول إلى دوراتهم حتى ذلك الحين. هل غيرت رأيك؟ انقر على زر {boldButton} أعلاه للحفاظ على استمرار تقدم فريقك.", "admin.portal.no.subscriptions.alert": "ليس لدى مؤسستك أي اشتراكات نشطة لإدارتها. إذا كنت تعتقد أنك ترى هذه الرسالة عن طريق الخطأ، فيرجى التواصل مع فريق نجاح عملاء edX على customersuccess@edx.org.", "admin.portal.subscription.details.back.to.subscriptions.button": "العودة إلى الاشتراكات", "admin.portal.subscription.details.toast.message": "تم تعيين عناوين البريد الإلكتروني {numAlreadyAssociated} مسبقًا. تمت إضافة عناوين البريد الإلكتروني {numSuccessfulAssignments} بنجاح.", @@ -570,9 +721,6 @@ "admin.portal.approve.license.request.modal.button.approve.default": "يعتمد", "admin.portal.approve.license.request.modal.button.approve.pending": "جارٍ الموافقة...", "admin.portal.approve.license.request.modal.button.approve.errored": "حاول مجدداً", - "admin.portal.lpr.embedded.subscription.licenses.header": "التراخيص:", - "admin.portal.lpr.embedded.subscription.licenses.header.unassigned.details": "غير معين: {unassignedCount} من إجمالي {totalCount}", - "admin.portal.lpr.embedded.subscription.licenses.header.assigned.details": "تم التنشيط: {activatedCount} من {activatedAndAssignedCount} المعينة", "adminPortal.LPR.moduleActivityReport.download.toast": "تم تنزيل تقرير نشاط الوحدة الخاص بمتعلميك.", "adminPortal.LPR.moduleActivityReport.download.button": "تنزيل نشاط الوحدة", "adminPortal.LPR.moduleActivityReport.download.button.pending": "جاري التحميل ", @@ -689,7 +837,7 @@ "analytics.individual.completions.table.column.course.subject": "موضوع المُقَرَّر", "analytics.individual.completions.table.column.passed.date": "لقد انْقَضى المَوْعِد", "advance.analytics.leaderboard.datatable.title": "لوحة المتفوقين", - "advance.analytics.leaderboard.datatable.subtitle": "", + "advance.analytics.leaderboard.datatable.subtitle": "استكشف أفضل المتعلمين المصنفين حسب مقاييس التفاعل. يتم فرز القائمة افتراضياً حسب ساعات التعلم. للتعمق أكثر، حمّل ملف CSV الكامل للاستكشاف والفرز بناءً على مقاييس أخرى. يتم تضمين المتعلمين الذين اجتازوا الدورة وأكملوا على الأقل نشاط تفاعلي واحد (مشاهدة فيديو، تقديم مشكلة، أو النشر في المنتديات) فقط.", "advance.analytics.leaderboard.table.header.email": "البَريد الإلِكتروني", "advance.analytics.leaderboard.table.header.learning.hours": "سَاعات التَعَلُّم", "advance.analytics.leaderboard.table.header.daily.sessions": "الجَلْسَات اليَومِيّة", @@ -807,12 +955,15 @@ "admin.portal.productTours.adminOnboarding.dismiss.modal.title": "هل أنت متأكّد؟", "adminPortal.productTours.adminOnboarding.trackLearnerProgress.body.1": "تَتَبَّع نَشَاط المُتَعَلِّم وتَقَدُّمِه في المُقَرَّرات عن طَريق تَقرير تَقَدُّم المُتَعَلِّم.", "adminPortal.productTours.adminOnboarding.trackLearnerProgress.body.2": "اُحصُل على نَظْرة شَامِلة لعَمَليات تَسجيل المُتَعَلِّمين وإكمالات المُقَرَّر، والمَزيد.", - "adminPortal.productTours.adminOnboarding.trackLearnerProgress.body.3": "أُحصُل على نَظرَة عامَّة سَريعة أُنشِئَت عن طَريق الذكاء الإصطِناعي لِتَحليلات المُتَعَلِّمين لديك بِنَقْرَة واحِدة فقط.", "adminPortal.productTours.adminOnboarding.trackLearnerProgress.body.4": "قُم بالتَمرير للأَسْفَل لتَقرير تَقَدُّم مُفَصَّل ومُحَدَّث مَرَتين يَوميَّاً.", "adminPortal.productTours.adminOnboarding.trackLearnerProgress.body.5": "يُمكِنك الوُصول إلى تَقرير تَقَدُّم كامِل للمُتَعَلِّم من هنا.", + "adminPortal.productTours.adminOnboarding.trackLearnerProgress.body.8": "اعرض التفاصيل على مستوى الوحدة للمساقات التعليمية التنفيذية.", "adminPortal.productTours.adminOnboarding.trackLearnerProgress.body.6": "صَفِّ النَتَائِج حَسب المُقَرَّر أو تاريخ البَدْء أو البريد الإلِكتروني للمُتَعَلِّم.", "adminPortal.productTours.adminOnboarding.trackLearnerProgress.body.7": "صَدِّر التَقرير بِصِيغة مَلَف CSV لِتَحصُل على رُؤًى وتَنظيماً للبَيَانات بِكَفاءَة.", - "adminPortal.productTours.adminOnboarding.trackLearnerProgress.body.8": "اعرض التفاصيل على مستوى الوحدة للمساقات التعليمية التنفيذية.", + "adminPortal.productTours.adminOnboarding.analytics.body.1": "استكشف الرؤى حول متعلميك وتسجيلاتهم. اضبط نطاقات التواريخ، ودقة العرض، ونوع التحليل لعرض بيانات عن التسجيلات، والتفاعل، والإكمال، ولوحات المتصدرين، وتتبع المهارات.", + "adminPortal.productTours.adminOnboarding.analytics.body.2": "سيساعدك تبويب التفاعل على فهم تسجيل الدورة، ساعات التعلم، المواد الرئيسية، والإكمال من قبل متعلميك. قم بتصفية البيانات حسب نطاقات التواريخ، المجموعة، الميزانية، والدورة.", + "adminPortal.productTours.adminOnboarding.analytics.body.3": "سيساعدك تبويب التقدم في تلخيص الدورات المكتملة من قبل متعلميك. قم بتصفية البيانات حسب نطاقات التواريخ، المجموعة، الميزانية، والدورة.", + "adminPortal.productTours.adminOnboarding.analytics.body.4": "سيساعدك تبويب النتائج على تصور المهارات التي اكتسبها متعلموك من الدورات. قم بتصفية البيانات حسب نطاقات التواريخ، المجموعة، الميزانية، والدورة.", "adminPortal.productTours.adminOnboarding.organizeLearners.body.1": "أنشِئ مجموعات للمُتعلِّمين، واطَّلِع على كافّة المُتعلِّمين في مؤسستك، وادخُل إلى الملفات الشخصية للمُتعلِّمين — كل ذلك في مكان واحد.", "adminPortal.productTours.adminOnboarding.organizeLearners.noLearners.body.1": "بِمُجَرَّد انضمام المُتعلِّمين إلى مؤسستك، يُمكِنك إنشاء مجموعات للمُتعلِّمين، والاطِّلاع على كافّة المُتعلِّمين في مؤسستك، والدخول إلى الملفات الشخصية للمُتعلِّمين — كل ذلك في مكان واحد.", "adminPortal.productTours.adminOnboarding.organizeLearners.body.2": "اطَّلِع على كافّة المُتعلِّمين في مؤسستك. ابحث بالاسم وادخُل إلى ملفاتهم الشخصية لتتبُّع تقدَّمهم والاطِّلاع على صلاحية وصولهم إلى المُحتَوى التعليمي.", @@ -822,13 +973,8 @@ "adminPortal.productTours.adminOnboarding.organizeLearners.withGroups.body.4": "اطَّلِع وأدِر وأنشِئ مجموعات المُتعلِّمين الخاصة بك هنا.", "adminPortal.productTours.adminOnboarding.organizeLearners.withGroups.body.5": "يُتيح لك خِيار \"إنشاء مجموعة\" إضافة مزيد من مجموعات المُتعلِّمين.", "adminPortal.productTours.adminOnboarding.organizeLearners.withGroups.body.6": "يُتيح لك خِيار \"اعرِض المجموعة\" تعديل تفاصيل المجموعة، أو إضافة المُتعلِّمين وإزالتهم، أو تتبُّع تقدمهم.", - "adminPortal.productTours.adminOnboarding.viewEnrollmentInsights.body.1": "", - "adminPortal.productTours.adminOnboarding.viewEnrollmentInsights.body.2": "عَدِّل النِطاق الزمني ودقّته لتخصيص البيانات المعروضة أدناه.", - "adminPortal.productTours.adminOnboarding.viewEnrollmentInsights.body.3": "شاهِد المقاييس السريعة لعمليات التسجيل والمُقَرَّرات المُتَمَيِّزة والجَلسات اليومية وساعات التَعلُّم والإكمالات بنظرة سريعة.", - "adminPortal.productTours.adminOnboarding.viewEnrollmentInsights.body.4": "استَخدِم علامات تبويب الخاصة بالتسجيلات والمشاركات والإكمالات لعرض نشاط المتعلمين من وجهات نظر مختلفة. مَرِّر للأسفل للاطِّلاع على تفصيل المقاييس حسب المساق، والموضوع، والفرد.", - "adminPortal.productTours.adminOnboarding.viewEnrollmentInsights.body.5": "", - "adminPortal.productTours.adminOnboarding.viewEnrollmentInsights.body.6": "اكتَشِف اكثر المهارات شيوعاً في مؤسستك بناءً على تسجيلات وإكمالات المساقات. استَخدِم هذه الرؤى لفهم اهتمامات المتعلمين والتطورات الشائعة في تنمية المهارات.", - "adminPortal.productTours.adminOnboarding.administerSubscriptions.body.1": "", + "adminPortal.productTours.adminOnboarding.administerSubscriptions.body.1": "قم بإدارة خطط اشتراكك ومنح المتعلمين إمكانية التسجيل الذاتي في الدورات. ادع المتعلمين، وتتبع الاستخدام، وأدر التراخيص - كل ذلك في مكان واحد.", + "adminPortal.productTours.adminOnboarding.administerSubscriptions.body.1.single": "قم بإدارة خطة اشتراكك ومنح المتعلمين إمكانية التسجيل الذاتي في الدورات. ادع المتعلمين، وتتبع الاستخدام، وأدر التراخيص - كل ذلك في مكان واحد.", "adminPortal.productTours.adminOnboarding.administerSubscriptions.body.2": "تُظهر القائمة أدناه خُطط الاشتراك الفعّالة والمُنتهية الصلاحية لتتمكن من عرضها وإدارتها.", "adminPortal.productTours.adminOnboarding.administerSubscriptions.body.3": "يُتيح لك خِيار \"إدارة المتعلمين\" عرض المزيد من التفاصيل حول خُطط الاشتراك. لنَطَّلِع على المتعلمين لديك الآن.", "adminPortal.productTours.adminOnboarding.administerSubscriptions.body.4": "في صفحة تفاصيل خُطط الاشتراك، يُمكِنك الاطِّلاع على تاريخ انتهاء الصلاحية و إرسال دعوة للمُتعلِّمين و إدارة التراخيص.", @@ -836,25 +982,31 @@ "adminPortal.productTours.adminOnboarding.administerSubscriptions.body.6": "يتيح لك قِسم تخصيص التراخيص رؤيةَ المُتعلِّمين المدعوين، وتتبُّعَ حالة التراخيص، وإلغاءَها عند الحاجة.", "adminPortal.productTours.adminOnboarding.administerSubscriptions.body.7": "استَخدِم مُرشِحات البحث لفرز المُتعلِّمين المدعوين حسب حالة الترخيص أو البحث عن طريق عنوان البريد الإلكتروني.", "adminPortal.productTours.adminOnboarding.administerSubscriptions.body.8": "لعرض المزيد من الخُطط، عُد إلى إدارة الاشتراكات باستخدام هذا الزِر أو من خِلال القائمة الرئيسية.", - "adminPortal.productTours.adminOnboarding.allocateLearningBudget.body.1": "", - "adminPortal.productTours.adminOnboarding.allocateLearningBudget.body.2": "استَخدِم البحث والمُرشِّحات للعثور بسرعة على الميزانية التي تبحث عنها.", - "adminPortal.productTours.adminOnboarding.allocateLearningBudget.body.3": "لنَطَّلِع على ميزانية مهمتك.", - "adminPortal.productTours.adminOnboarding.allocateAssignmentBudget.body.4": "تُقدّم بطاقة تفاصيل الميزانية نظرة عامة على ميزانيتك، بما في ذلك نوعها وتاريخ انتهائها ورصيدها.", - "adminPortal.productTours.adminOnboarding.allocateAssignmentBudget.body.5": "", - "adminPortal.productTours.adminOnboarding.allocateAssignmentBudgetZeroState.body.6": "بمُجرّد أن يبدأ المتعلمون باستخدام هذه الميزانية، ستتمكن من تتبُّع كافّة الأنشِطة، بما في ذلك الأموال المنفقة على التسجيل، وذلك من خلال علامة تبويب \"النشاطات\".", - "adminPortal.productTours.adminOnboarding.allocateAssignmentBudget.body.6": "وَسِّع قِسم \"تفاصيل الاستخدام\" للاطلاع على تفاصيل الأموال المنفقة والمهام المعلقة.", - "adminPortal.productTours.adminOnboarding.allocateAssignmentBudget.body.7": "تتبَّع جميع أنشطة الميزانية، بما في ذلك المهام المعلقة والإنفاق على عمليات التسجيل.", - "adminPortal.productTours.adminOnboarding.allocateAssignmentBudget.body.8": "", - "adminPortal.productTours.adminOnboarding.allocateAssignmentBudget.body.9": "يُتيح لك جدول \"الأموال المنفقة\" مراجعة تفاصيل الإنفاق لهذه الميزانية.", - "adminPortal.productTours.adminOnboarding.allocateAssignmentBudget.body.10": "", - "adminPortal.productTours.adminOnboarding.allocateAssignmentBudget.body.11": "للاطِّلاع على مزيد من الميزانيات، عُد إلى إدارة الساعات الدراسية المعتمدة للمتعلم باستخدام مسارات التنقل أو شريط التنقل اللأيسر.", + "adminPortal.productTours.adminOnboarding.allocateLearningBudget.body.1": "قم بإدارة ميزانيات رصيد المتعلمين لدعوة المتعلمين للتسجيل أو لتعيين الدورات مباشرةً.", + "adminPortal.productTours.adminOnboarding.allocateLearningBudget.body.3a": "لنلقي نظرة على ميزانية التعيينات الخاصة بك.", + "adminPortal.productTours.adminOnboarding.allocateLearningBudget.body.2.bne": "لنلقي نظرة على ميزانية التصفح والتسجيل الخاصة بك.", + "adminPortal.productTours.adminOnboarding.allocateLearningBudget.body.3.assignment": "توفر بطاقة تفاصيل الميزانية نظرة عامة على ميزانيتك، بما في ذلك نوعها، وتاريخ انتهائها، ورصيدها.", + "adminPortal.productTours.adminOnboarding.allocateLearningBudget.body.3.bne": "توفر الميزانية نظرة عامة على ميزانيتك، بما في ذلك تاريخ انتهائها، والنوع، وأذونات الوصول، والرصيد.", + "adminPortal.productTours.adminOnboarding.allocateLearningBudget.body.4.assignment": "\"التعيين الجديد\" تتيح لك تعيين الدورات للمتعلمين من الكتالوج الخاص بك.", + "adminPortal.productTours.adminOnboarding.allocateLearningBudget.body.4.bne": "تتبع كافة أنشطة الميزانية، بما في ذلك إنفاق التسجيل باستخدام تبويب \"النشاط\".", + "adminPortal.productTours.adminOnboarding.allocateLearningBudget.body.4.inviteBne": "يمكن استخدام \"الأعضاء الجدد\" لدعوة المتعلمين للاستفادة من هذه الميزانية.", + "adminPortal.productTours.adminOnboarding.allocateLearningBudget.body.5.assignment": "تتبع كافة أنشطة الميزانية، بما في ذلك التعيينات المعلقة وإنفاق التسجيل.", + "adminPortal.productTours.adminOnboarding.allocateLearningBudget.body.5.assignment.zeroState": "بمجرد أن يبدأ المتعلمون باستخدام هذه الميزانية، ستتمكن من تتبع كافة الأنشطة، بما في ذلك إنفاق التسجيل على تبويب \"النشاط\".", + "adminPortal.productTours.adminOnboarding.allocateAssignmentBudget.body.5.inviteBne": "استخدم تبويب الكتالوج لتصفح الدورات المتاحة لمتعلميك.", + "adminPortal.productTours.adminOnboarding.allocateLearningBudget.body.6.assignment.zeroState": "استخدم تبويب الكتالوج لتصفح الدورات المتاحة وتعيينها مباشرةً للمتعلمين.", + "adminPortal.productTours.adminOnboarding.allocateAssignmentBudget.body.6.inviteBne": "اعرض جميع المتعلمين المدعوين لهذه الميزانية مع حالتهم (مقبول، مدعو، مُزال)، والتسجيلات، وخيار إزالة الأعضاء من الميزانية.", + "adminPortal.productTours.adminOnboarding.allocateLearningBudget.body.6.assignment": "تساعدك جدول التعيينات في مراقبة تعيينات المتعلمين، وإرسال التذكيرات، أو إلغائها عند الحاجة.", + "adminPortal.productTours.adminOnboarding.allocateLearningBudget.body.6.spendNoAssignment": "بمجرد تعيين الدورات، يمكنك مراقبة تعيينات المتعلمين، وإرسال التذكيرات، أو إلغائها عند الحاجة.", + "adminPortal.productTours.adminOnboarding.allocateLearningBudget.body.8.assignment": "يتيح لك جدول الإنفاق مراجعة تفاصيل الإنفاق لهذه الميزانية.", + "adminPortal.productTours.adminOnboarding.allocateAssignmentBudget.body.9.assignment": "استخدم تبويب الكتالوج لتصفح الدورات المتاحة وتعيينها مباشرةً للمتعلمين.", + "adminPortal.productTours.adminOnboarding.allocateAssignmentBudget.body.10": "لعرض المزيد من الميزانيات، اعد إلى إدارة رصيد المتعلمين باستخدام مسار التنقل أو القائمة الجانبية.", "adminPortal.productTours.adminOnboarding.administerSubscriptions.body.9": "راجِع وأدِر طلبات المُقَرَّرات من المُتعلِّمين لديك.", "adminPortal.productTours.adminOnboarding.customizeReports.title": "قُم بتخصيص التقارير", "adminPortal.productTours.adminOnboarding.customizeReports.title.1": "أتمِت إعداد التقارير حول تفاعُل المتعلمين، وتقدمهم، ونشاطهم في الكتالوج. قُم بإعداد التقارير لتصل إلى بريدك الإلكتروني يومياً أو أُسبوعياً أو شهرياً لتسهيل عملية التتبُّع.", "adminPortal.productTours.adminOnboarding.setUpPreferences.title": "اضبِط التفضيلات", "adminPortal.productTours.adminOnboarding.setUpPreferences.title.1": "قُم بتخصيص وإعداد بوابتك بما يُلبّي احتياجات مؤسستك. قُم بإعداد العلامة التجارية، وأدِر صلاحية الوصول للمُتعلِّمين، وفَعِّل تسجيل الدخول المُوَحَّد (SSO)، وادمِج منصات التَعلُّم — كل ذلك في مكان واحد.", - "adminPortal.productTours.adminOnboarding.completeTour.modalTitle": "", - "adminPortal.productTours.adminOnboarding.completeTour.modal": "", + "adminPortal.productTours.adminOnboarding.completeTour.modalTitle": "عمل رائع!", + "adminPortal.productTours.adminOnboarding.completeTour.modal": "لقد أكملت دليل البداية السريعة وأصبحت جاهزاً لإدارة التعلم. هل تحتاج إلى تذكير؟ يمكنك الوصول إلى هذا الدليل في أي وقت من أيقونة المساعدة أدناه.", "lcm.budget.detail.page.catalog.tab.course.card.next.steps": "الخطوات التالية للمتعلمين المعينين", "lcm.budget.detail.page.catalog.tab.course.card.learners.will.be.notified": "سيتم إخطار المتدربين بمهمة هذه الدورة عبر البريد الإلكتروني.", "lcm.budget.detail.page.catalog.tab.course.card.learners.must.complete.enrollment": "يجب على المتعلمين إكمال التسجيل لهذه المهمة بحلول {courseEnrollmentDeadline} . يتم حساب هذا الموعد النهائي بناءً على الموعد النهائي للتسجيل في الدورة أو {assignmentEnrollmentDeadline} يومًا بعد تاريخ المهمة، أيهما أقرب.", @@ -868,6 +1020,8 @@ "lcm.budget.detail.page.catalog.tab.assign.course.section.assign.to": "يسند إلى", "lcm.budget.detail.page.catalog.tab.assign.course.section.assign.to.email.addresses": "عناوين البريد الإلكتروني للمتعلمين", "lcm.budget.detail.page.catalog.tab.assign.course.section.assign.to.email.addresses.help.text": "لإضافة أكثر من متعلم واحد، أدخل عنوان بريد إلكتروني واحدًا في كل سطر.", + "lcm.assign.suppress.email": "لا ترسل رسالة بريد إلكتروني آلية للمتعلمين لهذه التعيين", + "lcm.assign.suppress.email.help": "استخدم هذا عندما يتلقى المتعلمون رابط تسجيل يدوي بدلاً من البريد الإلكتروني الآلي.", "lcm.budget.detail.page.catalog.tab.assign.course.section.how.assigning.works": "كيف يعمل تعيين هذه الدورة", "lcm.budget.detail.page.catalog.tab.assign.course.section.pay.by.learner.credit": "الدفع عن طريق رصيد المتعلم", "lcm.budget.detail.page.catalog.tab.assign.course.section.learner.credit.budget": "ميزانية رصيد المتعلم: {subsidyAccessPolicyName}", @@ -923,8 +1077,8 @@ "learner.credit.management.empty.state.approve.requests.description": "بِمُجَرَّد المُوَافَقة، سوف يَتِم خَصم التَكلُفة الإجمالية للمُقَرَّر المطلوب من مِيزانِيَّتِك، ويُمكِنك تَتَبُّع نَفقاتِك هنا!", "learner.credit.management.empty.state.get.started": "ابدأ", "learner.credit.management.empty.state.find.course.illustration.alt": "اعثر على رسم توضيحي للمساق", - "learner.credit.management.empty.state.invite.learner.illustration.alt": "", - "learner.credit.management.empty.state.approve.request.illustration.alt": "", + "learner.credit.management.empty.state.invite.learner.illustration.alt": "رسم توضيحي لدعوة متعلم", + "learner.credit.management.empty.state.approve.request.illustration.alt": "رسم توضيحي للموافقة على الطلب", "learnerCreditManagement.budgetDetail.membersTab.label": "أعضاء الميزانية", "learnerCreditManagement.budgetDetail.membersTab.description": "يختار الأعضاء ما يريدون تعلمه من الكتالوج وينفقون من الميزانية للتسجيل.", "learnerCreditManagement.budgetDetail.membersTab.membersTable.all": "الكل ( {itemCounts} )", @@ -941,11 +1095,22 @@ "learnerCreditManagement.budgetDetail.membersTab.membersTable.statusColumn": "الحالة", "learnerCreditManagement.budgetDetail.membersTab.membersTable.statusColumn.tooltip": "حالة دعوة العضو.", "learnerCreditManagement.budgetDetail.membersTab.membersTable.showRemoved": "عرض تمت إزالته ( {removedGroupMembersCount} )", - "learnerCreditManagement.budgetDetail.requestsTab.refresh": "ينعش", + "lcm.budget.detail.page.requests.tab.bulk.approve.modal.title": "الموافقة على تسجيل {requestCount, plural, one {طلب} other {طلبات}}؟", + "lcm.budget.detail.page.requests.tab.bulk.approve.modal.error.heading": "حدث خطأ", + "lcm.budget.detail.page.requests.tab.bulk.approve.modal.error.body": "يرجى المحاولة مرة أخرى.", + "lcm.budget.detail.page.requests.tab.bulk.approve.modal.body": "لا يمكن التراجع عن الموافقة على {requestCount, plural, one {طلب تسجيل} other {طلبات تسجيل}}. سيتم حجز الأموال من {requestCount, plural, one {الطلب} other {الطلبات}} في ميزانيتك حتى يكمل {requestCount, plural, one {المتعلم} other {المتعلمون}} التسجيل.", + "lcm.budget.detail.page.requests.tab.bulk.approve.modal.cancel": "إلغاء", + "lcm.budget.detail.page.requests.tab.bulk.approve.modal.approve.multiple": "الموافقة ({requestCount, number})", + "lcm.budget.detail.page.requests.tab.bulk.approve.modal.approve.single": "الموافقة", + "lcm.budget.detail.page.requests.tab.bulk.approve.modal.approving": "جارٍ الموافقة...", + "lcm.budget.detail.page.requests.tab.bulk.approve.modal.approved": "تمت الموافقة", + "lcm.budget.detail.page.requests.tab.bulk.approve.modal.error": "حاول مرة أخرى", "learnerCreditManagement.budgetDetail.requestsTab.columns.requestDetails": "تفاصيل الطلب", "learnerCreditManagement.budgetDetail.requestsTab.columns.amount": "كمية", "learnerCreditManagement.budgetDetail.requestsTab.columns.requestDate": "تاريخ الطلب", - "learnerCreditManagement.budgetDetail.requestsTab.noResults": "لم يُعثر على نتائج", + "lcm.budget.detail.page.requests.table.columns.status": "الحالة", + "lcm.budget.detail.page.requests.tab.approve.action": "الموافقة ({selectedApprovableRowCount})", + "learnerCreditManagement.budgetDetail.requestsTab.refresh": "ينعش", "catalogs.enterpriseCatalogs.loading": "الدَليل يُحَمَّل الآن...", "catalogs.enterpriseCatalogs.header.subsidyAccessPolicyName": "{subsidyAccessPolicyName} الدَليل", "catalogs.enterpriseCatalogs.header": "نَظرَة عامَّة", @@ -1033,17 +1198,17 @@ "adminPortal.settings.apiCredentialsTab.successMessage": "تم إنشاء بيانات اعتماد API بنجاح", "adminPortal.settings.portalAppearanceTab.customThemeModal.invalidHex": "يَجِب أنْ يَكون سُداسي عُشري يَبْدَأ بـ {hash} (مثلاً: {example})", "adminPortal.settings.portalAppearanceTab.customThemeModal.warningMessage": "اللون لا يُلَبِّي مَعايير الـ WCAG AA لإمكانية الوصول. اعرِف المَزيد مِن خِلال رابِط مركز المساعدة أدناه.", - "adminPortal.settings.portalAppearanceTab.customThemeModal.headerText": "", + "adminPortal.settings.portalAppearanceTab.customThemeModal.headerText": "خصص تجربة edX للمسؤولين والمتعلمين باستخدام ألوان علامتك التجارية الخاصة. أدخل قيم الألوان برمز سداسي عشري.", "adminPortal.settings.portalAppearanceTab.customThemeModal.infoText": "اِعرِف المَزيد حَول مَظهَر الألوان في واجِهَتَي المَسؤول والمُتَعَلِّم، وما هي أفضل المُمَارَسات لإختِيار ألوان مُتاحة وسَهلة الوُصول في الـ", "adminPortal.settings.portalAppearanceTab.customThemeModalTitle": "مَظْهَر مُخَصَّص", "adminPortal.settings.portalAppearanceTab.customThemeModal.buttonColor": "لَوْن الزِر", "adminPortal.settings.portalAppearanceTab.customThemeModal.bannerColor": "لَوْن اللافِتة", - "adminPortal.settings.portalAppearanceTab.customThemeModal.accentColor": "", - "adminPortal.settings.portalAppearanceTab.customThemeModal.helpCenterLink": "", + "adminPortal.settings.portalAppearanceTab.customThemeModal.accentColor": "لون التمييز", + "adminPortal.settings.portalAppearanceTab.customThemeModal.helpCenterLink": "مركز مساعدة الشركات.", "adminPortal.settings.portalAppearanceTab.customThemeModal.addThemeButton": "أَضِف مَظْهَراً", "adminPortal.settings.portalAppearanceTab.successMessage": "حُدِّثَ مظهر البوابة بنجاح.", "adminPortal.settings.portalAppearanceTab.title": "مظهر البوابة", - "adminPortal.settings.portalAppearanceTab.description": "", + "adminPortal.settings.portalAppearanceTab.description": "خصص مظهر تجربة edX للمتعلمين والمسؤولين باستخدام شعار مؤسستك وموضوعات الألوان.", "adminPortal.settings.portalAppearanceTab.errorHeading": "نَعتَذِر عن ذلك", "adminPortal.settings.portalAppearanceTab.errorMessage": "لقد حَدث خطأٌ ما خَلْف الكواليس. حَاوِل مُجَدَّداً في وَقت لاحِق أو تَوَاصَل مع الدَعْم للحُصول على المُسَاعَدة.", "adminPortal.settings.portalAppearanceTab.logoTitle": "الشِّعَار", @@ -1106,7 +1271,7 @@ "adminPortal.settings.ssoConfigAlert.inProgress.messageNoEmail": "يقوم edX بتكوين تسجيل الدخول الموحد (SSO) الخاص بك. تستغرق هذه الخطوة حوالي خمسة عشر ثانية.", "adminPortal.settings.ssoConfigAlert.untested.header": "تحتاج إلى اختبار اتصال SSO الخاص بك", "adminPortal.settings.ssoConfigAlert.testing.instructions": "تم إكمال تكوين الدخول الموحّد (SSO) الخاص بك، ومن المفترض أن تكون قد تلقيت رسالة بريد إلكتروني تحتوي على الإرشادات التالية:", - "adminPortal.settings.ssoConfigAlert.testing.instructionsList.item1": "", + "adminPortal.settings.ssoConfigAlert.testing.instructionsList.item1": "1: انسخ عنوان URL للوحة معلومات بوابة المتعلمين أدناه:", "adminPortal.settings.ssoConfigAlert.testing.instructionsList.item2": "2: قم بتشغيل نافذة تصفح متخفي أو نافذة خاصة جديدة والصق عنوان URL المنسوخ في شريط URL لتحميل لوحة معلومات بوابة المتعلم الخاصة بك.", "adminPortal.settings.ssoConfigAlert.testing.instructionsList.item3": "3: عند المطالبة، أدخل بيانات اعتماد تسجيل الدخول المدعومة بواسطة IDP الخاص بك لاختبار اتصالك بـ edX.", "adminPortal.settings.ssoConfigAlert.testing.instructionsList.item4": "ارجع إلى هذه النافذة بعد إكمال تعليمات الاختبار. سيتم تحديث هذه النافذة تلقائيًا عند اكتشاف اختبار ناجح.", @@ -1129,7 +1294,7 @@ "adminPortal.settings.noSSOCard.title": "ليس لديك أي تسجيلات دخول موحّدة مدمجة حتى الآن.", "adminPortal.settings.noSSOCard.description": "يمكّن تسجيل الدخول الموحّد (SSO) المتعلمين الذين قاموا بتسجيل الدخول إلى نظام إدارة التعلم (LMS) الخاص بمؤسستهم أو أي نظام آخر من التسجيل بسهولة والتسجيل في الدورات التدريبية على edX دون الحاجة إلى تسجيل الدخول مرة أخرى. يستخدم edX for Business SAML 2.0 لتنفيذ الدخول الموحد (SSO) بين نظام المؤسسة وedX.org.", "adminPortal.settings.noSSOCard.newSSOButton": "تكامل تسجيل الدخول الموحّد (SSO) الجديد", - "adminPortal.settings.sso.connect": "", + "adminPortal.settings.sso.connect": "اتصال", "adminPortal.settings.sso.next": "التالي", "adminPortal.settings.sso.configure.stepName": "ضَبط", "adminPortal.settings.sso.configure.buttonText": "إضْبِط", @@ -1184,18 +1349,8 @@ "admin.portal.subscription.expiration.modal.footer.dismiss.label": "تجاهل", "admin.portal.license.allocation.header": "تخصيص الترخيص", "admin.portal.license.allocation.allocated.licenses.count": "{allocated} من التراخيص {total} المخصصة", - "admin.portal.lpr.embedded.subscription.license.management.table.user.recent.action.activated": "المنشط: {activationDate}", - "admin.portal.lpr.embedded.subscription.license.management.table.user.recent.action.revoked": "أُلغِي: {revokedDate}", - "admin.portal.lpr.embedded.subscription.license.management.table.user.recent.action.invited": "مدعو: {lastRemindDate}", - "admin.portal.lpr.embedded.subscription.license.management.table.reminded.toast": "تم تذكير المستخدمين بنجاح", - "admin.portal.lpr.embedded.subscription.license.management.table.revoked.toast": "أُلغِيَت التراخيص بنجاح", - "admin.portal.lpr.embedded.subscription.license.management.table.empty.content": "لم يُعثر على نتائج", - "admin.portal.lpr.embedded.subscription.license.management.table.column.email.heading": "عنوان البريد الإلكتروني", - "admin.portal.lpr.embedded.subscription.license.management.table.column.status.heading": "الحالة", - "admin.portal.lpr.embedded.subscription.license.management.table.pending.filter": "قيد الانتظار", - "admin.portal.lpr.embedded.subscription.license.management.table.active.filter": "فعّال", - "admin.portal.lpr.embedded.subscription.license.management.table.column.recent.action.heading": "الإجراء الأخير", "adminPortal.cards.collapsible.details": "التفاصيل", + "systemErrorAlertModal.defaultErrorMessage": "نأسف. حدث خطأ ما وراء الكواليس. يرجى المحاولة مرة أخرى، أو الاتصال بدعم العملاء للمساعدة.", "lcm.budget.detail.page.catalog.tab.course.card.footer-text": "({numCourseRuns}) متاح {pluralText}", "lcm.budget.detail.page.activity.tab.label": "النشاط", "lcm.budget.detail.page.catalog.tab.label": "فهرس", @@ -1244,43 +1399,43 @@ "adminPortal.settings.ssoConfigAuthorizeStep.actionRequiredInstructions": "عُد إلى هذه النافِذة بَعد أنْ تُكمِل الخُطُوات التالية في نافِذة جَديدة لِتُكمِل ضَبط الإندِماج الخاص بِك.", "adminPortal.settings.ssoConfigAuthorizeStep.downloadMetadata": "1. حَمِّل البيانات الوصفية لِمُزَوِّد خِدمة edx كملف XML:", "adminPortal.settings.ssoConfigAuthorizeStep.downloadMetadataButton": "البَيَانات الوَصفِيّة لِمُزَوِّد خِدمة edx", - "adminPortal.settings.ssoConfigAuthorizeStep.uploadMetadata": "", + "adminPortal.settings.ssoConfigAuthorizeStep.uploadMetadata": "2. {downloadLink} وقم بتحميل ملف XML إلى قائمة مقدمي خدمات SAML المصرح لهم على بوابة أو موقع موفر الهوية الخاص بك.", "adminPortal.settings.ssoConfigAuthorizeStep.downloadMetadataLink": "افتَح نافذة جديدة", "adminPortal.settings.ssoConfigAuthorizeStep.markedAuthorizedMessage": "عُد إلى هذه النافِذة وحَدِّد المُربع بِمُجَرَّد الانتهاء", "adminPortal.settings.ssoConfigAuthorizeStep.markedAuthorizedCheckbox": "لقد فوّضتَ edX كمُزوِّد خدمة", - "adminPortal.settings.ssoConfigConfigureStep.sapsfOauthRootUrl": "", - "adminPortal.settings.ssoConfigConfigureStep.odataApiRootUrl": "", + "adminPortal.settings.ssoConfigConfigureStep.sapsfOauthRootUrl": "يرجى إدخال عنوان URL الأساسي لـ OAuth.", + "adminPortal.settings.ssoConfigConfigureStep.odataApiRootUrl": "يرجى إدخال عنوان URL الأساسي لـ API.", "adminPortal.settings.ssoConfigConfigureStep.sapsfPrivateKey": "مِن فَضلِك أدخِل رَمزاً خاصاً.", "adminPortal.settings.ssoConfigConfigureStep.odataCompanyId": "مِن فَضلِك أدخِل مُعَرَّف شَرِكة.", "adminPortal.settings.ssoConfigConfigureStep.oauthUserId": "مِن فَضلِك أدخِل مُعَرَّف مُستَخدِم OAuth.", "adminPortal.settings.ssoConfigConfigureStep.enterUserAttributes": "أدخِل خصائِص المستخدم", - "adminPortal.settings.ssoConfigConfigureStep.userAttributes.username.title": "", + "adminPortal.settings.ssoConfigConfigureStep.userAttributes.username.title": "يرجى إدخال سمات مستخدم SAML من موفر الهوية الخاص بك. جميع السمات حساسة للمسافات وحالة الأحرف.", "adminPortal.settings.ssoConfigConfigureStep.userAttributes.username.label": "اسم المُستَخدِم", - "adminPortal.settings.ssoConfigConfigureStep.userAttributes.username.instructions": "", + "adminPortal.settings.ssoConfigConfigureStep.userAttributes.username.instructions": "URN لصفة SAML التي تحتوي على اسم المستخدم.", "adminPortal.settings.ssoConfigConfigureStep.userAttributes.userId.label": "مُعَرَّف المُستَخدِم", - "adminPortal.settings.ssoConfigConfigureStep.userAttributes.userId.instructions": "", + "adminPortal.settings.ssoConfigConfigureStep.userAttributes.userId.instructions": "URN لصفة SAML التي يمكن لـ edX استخدامها كمعرّف مستخدم فريد ومستمر.", "adminPortal.settings.ssoConfigConfigureStep.userAttributes.fullName.label": "الاسم الكامِل", - "adminPortal.settings.ssoConfigConfigureStep.userAttributes.fullName.instructions": "", + "adminPortal.settings.ssoConfigConfigureStep.userAttributes.fullName.instructions": "URN لصفة SAML التي تحتوي على الاسم الكامل للمستخدم.", "adminPortal.settings.ssoConfigConfigureStep.userAttributes.firstName.label": "الاسم الأول", - "adminPortal.settings.ssoConfigConfigureStep.userAttributes.firstName.instructions": "", + "adminPortal.settings.ssoConfigConfigureStep.userAttributes.firstName.instructions": "URN لصفة SAML التي تحتوي على الاسم الأول للمستخدم.", "adminPortal.settings.ssoConfigConfigureStep.userAttributes.lastName.label": "اسم العائِلة (اللقب)", - "adminPortal.settings.ssoConfigConfigureStep.userAttributes.lastName.instructions": "", + "adminPortal.settings.ssoConfigConfigureStep.userAttributes.lastName.instructions": "URN لصفة SAML التي تحتوي على اسم العائلة للمستخدم.", "adminPortal.settings.ssoConfigConfigureStep.userAttributes.email.label": "عُنوان البَريد الإلِكتروني", - "adminPortal.settings.ssoConfigConfigureStep.userAttributes.email.instructions": "", + "adminPortal.settings.ssoConfigConfigureStep.userAttributes.email.instructions": "URN لصفة SAML التي تحتوي على عنوان البريد الإلكتروني للمستخدم.", "adminPortal.settings.ssoConfigConfigureStep.userAttributes.country.label": "البَلَد", - "adminPortal.settings.ssoConfigConfigureStep.userAttributes.country.instructions": "", + "adminPortal.settings.ssoConfigConfigureStep.userAttributes.country.instructions": "URN لصفة SAML التي تحتوي على بلد إقامة المستخدم.", "adminPortal.settings.ssoConfigConfigureStep.sapSuccessFactors.title": "مَكِّن التسجيل التِلقائِي لحساب المُتَعَلِّم", - "adminPortal.settings.ssoConfigConfigureStep.sapsfOauthRootUrl.label": "", - "adminPortal.settings.ssoConfigConfigureStep.sapsfOauthRootUrl.instructions": "", - "adminPortal.settings.ssoConfigConfigureStep.odataApiRootUrl.label": "", - "adminPortal.settings.ssoConfigConfigureStep.odataApiRootUrl.instructions": "", + "adminPortal.settings.ssoConfigConfigureStep.sapsfOauthRootUrl.label": "عنوان URL الأساسي لـ OAuth", + "adminPortal.settings.ssoConfigConfigureStep.sapsfOauthRootUrl.instructions": "اسم المضيف في عنوان URL هو ما تراه عند تسجيل الدخول إلى نظام SuccessFactors BizX، وعادةً ما يتماشى مع هوية كيان موفر الهوية.", + "adminPortal.settings.ssoConfigConfigureStep.odataApiRootUrl.label": "عنوان URL الأساسي لـ API", + "adminPortal.settings.ssoConfigConfigureStep.odataApiRootUrl.instructions": "اسم المضيف لخدمة API OData في BizX، والذي عادةً ما يتماشى مع هوية كيان موفر الهوية.", "adminPortal.settings.ssoConfigConfigureStep.odataCompanyId.label": "مُعَرَّف الشَرِكة", - "adminPortal.settings.ssoConfigConfigureStep.odataCompanyId.instructions": "", + "adminPortal.settings.ssoConfigConfigureStep.odataCompanyId.instructions": "معرّف ملف الشركة في BizX للمستأجر الخاص بك.", "adminPortal.settings.ssoConfigConfigureStep.sapsfPrivateKey.label": "رَمز خاص", - "adminPortal.settings.ssoConfigConfigureStep.sapsfPrivateKey.instructions": "", + "adminPortal.settings.ssoConfigConfigureStep.sapsfPrivateKey.instructions": "قيمة المفتاح الخاص الموجودة في ملف PEM المولد من ملف تعريف تطبيق العميل OAuth2.", "adminPortal.settings.ssoConfigConfigureStep.oauthUserId.label": "مُعَرَّف مُستَخدِم OAuth", "adminPortal.settings.ssoConfigConfigureStep.oauthUserId.instructions": "اسم المُتسَخدِم الخاص بِحِساب مَسؤول BizX الذي ضُبِطَ لِمَنَصة edx بِواسِطة العَميل.", - "adminPortal.settings.ssoConfigConfigureStep.title": "", + "adminPortal.settings.ssoConfigConfigureStep.title": "أدخل تفاصيل التكامل", "adminPortal.settings.ssoConfigConfigureStep.recordUnderConfiguration": "سَجِّل ضِمن ضَبط الإعدادات", "adminPortal.settings.ssoConfigConfigureStep.configurationError.title": "هناك خطأ في ضَبط الأعدادات", "adminPortal.settings.ssoConfigConfigureStep.configurationError.message": "لقد أُرسِلَ سِجِلُّك مؤخراً لغرض الضبط، ويجب أن يكتمِل ضبطه قبل أن ترسله مرّة أخرى. من فضلك حاوِل مجدداً في بضع دقائق. وإن بقيت المشكلة، فتواصل مع مركز دعم العملاء في المؤسسة.", @@ -1329,19 +1484,21 @@ "admin.portal.license.management.filter.choice.pending": "قيد الانتظار", "admin.portal.license.management.filter.choice.revoked": "أُلغِي", "admin.portal.license.management.table.column.recent.action": "الإجراء الأخير", - "adminPortal.settings.learningPlatformTab.blackboard.authorizeConnection": "", + "adminPortal.settings.learningPlatformTab.blackboard.authorizeConnection": "تفويض الاتصال بـ Blackboard", "adminPortal.settings.learningPlatformTab.blackboard.enablementFailed": "فشل التفعيل", - "adminPortal.settings.learningPlatformTab.blackboard.enablementFailedMessage": "", + "adminPortal.settings.learningPlatformTab.blackboard.enablementFailedMessage": "لم نتمكن من تفعيل تكامل Blackboard الخاص بك. يرجى المحاولة مرة أخرى أو الاتصال بدعم عملاء الشركات.", "adminPortal.settings.learningPlatformTab.blackboard.formReauthorization": "تتطلب تحديثات النموذج إعادة التفويض.", "adminPortal.settings.learningPlatformTab.blackboard.formReauthorizationMessage": "تَمَّ الانتِهاء مِن تَفويضك حالِياً. لكن عِند تَحديث النَموذَج أدناه، سوف يَتَطَلَّب مِنك أنْ تُعيد التَفويض والانتِقال إلى الخُطوة القادِمة، حَيث سَتُفتَح نافِذة جَديدة لإكمال عَمَلية التَفويض في القاعِدة الأساسية. عُد إلى هذه النافِذة بِمُجَرَّد انتِهاء عَمَلية التَفويض لإكمال إعادة ضَبط الإندِماج الخاص بِك.", "adminPortal.settings.learningPlatformTab.blackboard.displayName": "الاسم الظاهِر", "adminPortal.settings.learningPlatformTab.blackboard.createCustomName": "أَنشِئ اسماً مُخَصَّصاً لنِظام إدَارة التَعَلُّم (LMS) هذا", - "adminPortal.settings.learningPlatformTab.blackboard.baseURL": "", + "adminPortal.settings.learningPlatformTab.blackboard.baseURL": "عنوان URL الأساسي لـ Blackboard", "adminPortal.settings.learningPlatformTab.blackboard.authorizationRequired": "يَتَطَلَّب تَفويضاً في القاعِدة الأساسية لِتُكمِل عَمَلية الضَبط", "adminPortal.settings.learningPlatformTab.blackboard.authorizationRequiredMessage": "الانتِقال إلى الخُطوة القادِمة سوف يَفتح نافِذة جَديدة لإكمال عَمَلية التَفويض في القاعِدة الأساسية. عُد إلى هذه النافِذة بِمُجَرَّد انتِهاء عَمَلية التَفويض لإكمال ضَبط الإندِماج الخاص بِك.", "adminPortal.settings.learningPlatformTab.blackboard.authorizationInProgress.header": "الحُصول على تَفويض جارٍ ..", "adminPortal.settings.learningPlatformTab.blackboard.authorizationInProgress.message": "مِن فَضلِك أكِّد التَفويض من خِلال القاعِدة الأساسية ثم عُد إلى هذه النافِذة بِمُجَرَّد انتِهاء ذلك.", - "adminPortal.settings.learningPlatformTab.activatePage.title": "", - "adminPortal.settings.learningPlatformTab.activatePage.successMessage": "", - "adminPortal.settings.learningPlatformTab.activatePage.activationInstructions": "بِمُجَرَّد أنْ يُفَعَّل، سوف يَبدَأ edx للشَرِكات (edX For Business) بِمُزامَنة مُحتَوى البيانات الوصفية ونَشاط المُتَعَلِّم مع {lmsName}." -} \ No newline at end of file + "adminPortal.settings.learningPlatformTab.activatePage.title": "فعّل تكامل {lmsName} الخاص بك", + "adminPortal.settings.learningPlatformTab.activatePage.successMessage": "تم {verb} تكامل {lmsName} الخاص بك بنجاح وهو جاهز للتفعيل!", + "adminPortal.settings.learningPlatformTab.activatePage.activationInstructions": "بِمُجَرَّد أنْ يُفَعَّل، سوف يَبدَأ edx للشَرِكات (edX For Business) بِمُزامَنة مُحتَوى البيانات الوصفية ونَشاط المُتَعَلِّم مع {lmsName}.", + "adminPortal.productTours.adminOnboarding.organizeLearners.withAdmins.body.1": "قم بإنشاء مجموعات للمتعلمين، عرض جميع متعلمي مؤسستك، الوصول لملفات تعريف المتعلمين الفردية، وإدارة المسؤولين - كل ذلك في مكان واحد.", + "adminPortal.productTours.adminOnboarding.organizeLearners.body.adminsTab": "قم بإدارة وعرض مسؤولي مؤسستك." +} From 8c9dba1e7f795df503954f7bd22203073b0448c6 Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:19:35 +0000 Subject: [PATCH 03/32] chore: add AI translated strings for frontend-app-authn --- translations/frontend-app-authn/src/i18n/messages/ar.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/translations/frontend-app-authn/src/i18n/messages/ar.json b/translations/frontend-app-authn/src/i18n/messages/ar.json index 738a502a09..cadef16c92 100644 --- a/translations/frontend-app-authn/src/i18n/messages/ar.json +++ b/translations/frontend-app-authn/src/i18n/messages/ar.json @@ -72,7 +72,6 @@ "account.activation.success.message": "ستصلك الآن تحديثات وتنبيهات عبر البريد الإلكتروني منا تتعلق بالمساقات التي قمت بالتسجيل فيها. قم بتسجيل الدخول للمتابعة.", "account.activation.info.message": "هذا الحساب مفعَّل من قبل.", "account.activation.error.message.title": "لا يمكن تفعيل حسابك", - "account.activation.support.link": "الاتصال بالدعم", "account.confirmation.success.message.title": "نجحت العملية! لقد أكدت بريدك الإلكتروني.", "account.confirmation.success.message": "سجِّل دخولك للمتابعة.", "account.confirmation.info.message": "هذا البريد الإلكتروني مؤكد من قبل.", @@ -155,6 +154,7 @@ "terms.of.service": "شروط الخدمة", "registration.username.suggestion.label": "مقترح:", "did.you.mean.alert.text": "هل تقصد", + "registration.captcha.verification.label": "فشل التحقق من CAPTCHA.", "sign.in": "تسجيل الدخول", "reset.password.page.title": "إعادة ضبط كلمة المرور | {siteName}", "reset.password": "إعادة ضبط كلمة المرور", @@ -174,9 +174,10 @@ "your.career.turning.point": "نقطة تحول حياتك المهنية", "is.here": "هنا.", "welcome.to.platform": "مرحبًا بك في {siteName} يا {fullName}!", + "with.edx": "مع edX", "complete.your.profile.1": "أكمل", "complete.your.profile.2": "ملفك الشخصي", "register.page.terms.of.service.and.honor.code": "بإنشائك حساباً، فإنّك توافق على {tosAndHonorCode} وتُقِرّ بأنّ {platformName} وكل عضو يُعالج بياناتك الشخصية وفقاً لـ {privacyPolicy}.", "register.page.honor.code": "أُوافق على {tosAndHonorCode} لـ {platformName}", "register.page.terms.of.service": "أُوافق {termsOfService} لـ {platformName}" -} \ No newline at end of file +} From b3a13c2ff70337e49e9f34f9f4a1331435eccacc Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:19:46 +0000 Subject: [PATCH 04/32] chore: add AI translated strings for frontend-app-communications --- .../frontend-app-communications/src/i18n/messages/ar.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/frontend-app-communications/src/i18n/messages/ar.json b/translations/frontend-app-communications/src/i18n/messages/ar.json index c928095011..495a425eae 100644 --- a/translations/frontend-app-communications/src/i18n/messages/ar.json +++ b/translations/frontend-app-communications/src/i18n/messages/ar.json @@ -88,4 +88,4 @@ "bulk.email.scheduled.emails.table.subject": "الموضوع", "bulk.email.scheduled.emails.table.Author": "الكاتب", "bulk.email.scheduled.emails.table.confirm.delete": "أنت تقوم بحذف بريد إلكتروني من المقرر إرساله فى {date} . لن يتم إرسال البريد الإلكتروني وإلغاء الجدولة. هل أنت متأكد؟" -} \ No newline at end of file +} From d81f28a2345288cbbd5080d5adfeba09f051740b Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:19:56 +0000 Subject: [PATCH 05/32] chore: add AI translated strings for frontend-app-discussions --- .../src/i18n/messages/ar.json | 156 +++++++++++++++++- 1 file changed, 147 insertions(+), 9 deletions(-) diff --git a/translations/frontend-app-discussions/src/i18n/messages/ar.json b/translations/frontend-app-discussions/src/i18n/messages/ar.json index 631425f5ae..dc6fd34a95 100644 --- a/translations/frontend-app-discussions/src/i18n/messages/ar.json +++ b/translations/frontend-app-discussions/src/i18n/messages/ar.json @@ -5,7 +5,40 @@ "discussions.actions.pin": "تثبيت", "discussions.actions.unpin": "إلغاء التثبيت", "discussions.actions.delete": "احذف", + "discussions.actions.restore": "استعادة", + "discussions.actions.ban": "حظر", + "discussions.actions.ban.course": "حظر المستخدم في هذه الدورة", + "discussions.actions.ban.org": "حظر المستخدم في هذه المؤسسة", + "discussions.actions.unban.course": "إلغاء حظر المستخدم من المناقشات في هذه الدورة", + "discussions.actions.unban.org": "إلغاء حظر المستخدم من المناقشات في هذه المؤسسة", + "discussions.actions.delete.post": "حذف", + "discussions.actions.delete.userCourse": "حذف كل نشاط المستخدم في المناقشات لهذه الدورة", + "discussions.actions.delete.userOrg": "حذف كل نشاط المستخدم في المناقشات لهذه المؤسسة", + "discussions.actions.undelete.userCourse": "استعادة كل نشاط المستخدم في المناقشات لهذه الدورة", + "discussions.actions.undelete.userOrg": "استعادة كل نشاط المستخدم في المناقشات لهذه المؤسسة", + "discussions.actions.submenu.back": "عودة", "discussions.confirmation.button.confirm": "تأكيد", + "discussions.actions.delete.banUserCheckbox": "حظر المستخدم من المناقشات لهذه الدورة", + "discussions.actions.delete.userCourse.title": "هل تريد حذف نشاط المستخدم في المناقشات؟", + "discussions.actions.delete.userCourse.description": "هل أنت متأكد من رغبتك بحذف (count) المنشورات أو الردود أو التعليقات الخاصة بـ {username} في هذه الدورة؟", + "discussions.actions.delete.userOrg.title": "هل تريد حذف نشاط المستخدم في المناقشات؟", + "discussions.actions.delete.userOrg.description": "هل أنت متأكد من رغبتك بحذف (count) المنشورات أو الردود أو التعليقات الخاصة بـ {username} عبر هذه المؤسسة؟", + "discussions.actions.undelete.userCourse.title": "هل تريد استعادة نشاط المستخدم في المناقشات؟", + "discussions.actions.undelete.userCourse.description": "هل أنت متأكد من رغبتك في استعادة (count) الردود أو التعليقات الخاصة بـ {username} في هذه الدورة؟", + "discussions.actions.undelete.userOrg.title": "هل تريد استعادة نشاط المستخدم في المناقشات؟", + "discussions.actions.undelete.userOrg.description": "هل أنت متأكد من رغبتك في استعادة (count) الردود أو التعليقات الخاصة بـ {username} عبر هذه المؤسسة؟", + "discussions.actions.ban.course.title": "حظر المستخدم في هذه الدورة", + "discussions.actions.ban.course.description": "هل أنت متأكد من رغبتك في حظر {username} من المناقشات في هذه الدورة؟", + "discussions.actions.ban.org.title": "حظر المستخدم في هذه المؤسسة", + "discussions.actions.ban.org.description": "هل أنت متأكد من رغبتك في حظر {username} من المناقشات عبر هذه المؤسسة؟", + "discussions.actions.ban.org.checkbox": "حظر المستخدم من المناقشات عبر هذه المؤسسة", + "discussions.actions.unban.course.title": "إلغاء حظر المستخدم في هذه الدورة", + "discussions.actions.unban.course.description": "هل أنت متأكد من رغبتك في إلغاء حظر {username} من المناقشات في هذه الدورة؟", + "discussions.actions.unban.org.title": "إلغاء حظر المستخدم في هذه المؤسسة", + "discussions.actions.unban.org.description": "هل أنت متأكد من رغبتك في إلغاء حظر {username} من المناقشات عبر هذه المؤسسة؟", + "discussions.button.ban": "حظر", + "discussions.button.unban": "إلغاء الحظر", + "discussions.button.undelete": "استعادة", "discussions.actions.close": "إقفال ", "discussions.actions.reopen": "إعادة الفتح", "discussions.actions.report": "إبلاغ", @@ -31,6 +64,9 @@ "discussions.authors.label.staff": "عضو طاقم", "discussions.authors.label.moderator": "مُساعِد استاذ", "discussions.authors.label.ta": "نداء إلى اتخاذ إجراء", + "discussions.authors.label.banned": "محظور", + "discussions.bannedUser.banner.title": "لقد تم حظرك من المناقشات في هذه الدورة", + "discussions.bannedUser.banner.message": "لقد تم حظرك من المناقشات في هذه الدورة", "discussions.learner.loadMostPosts": "تواريخ تعطيل نشطة حاليا. لا يمكن النشر في المناقشات خلال هذه الفترة.", "discussions.post.anonymous.author": "مجهول", "discussion.blackoutBanner.information": "عطِّل النشر في المناقشات بواسطة فريق المساق", @@ -43,6 +79,25 @@ "discussions.author.admin.description": "جزء من الفريق الذي يُدير هذا المساق", "discussions.author.learner.title": "المتعلم", "discussions.author.learner.description": "يحضر المساق مثلك تماماً", + "discussions.author.newLearner.message": "👋 مرحباً، أنا متعلم جديد", + "discussions.author.learner.message": "متعلم", + "discussions.spamWarning.heading": "تذكير", + "discussions.spamWarning.message": "لن يقوم الأساتذة والموظفون بدعوتك للانضمام إلى مجموعات خارجية، مثل واتساب، أو طلب معلومات شخصية أو مالية في المناقشات. كن حذراً، وإذا لاحظت نشاطاً مشبوهاً، يرجى الإبلاغ عنه.", + "discussions.filter.activeThreads": "المناقشات النشطة", + "discussions.filter.deletedThreads": "المناقشات المحذوفة", + "discussions.thread.deletedBadge": "محذوف", + "discussions.bulk.selectedCount": "{count} محدد", + "discussions.bulk.deleteSelected": "حذف المحدد", + "discussions.bulk.restoreSelected": "استعادة المحدد", + "discussions.bulk.deleting": "جارٍ الحذف...", + "discussions.bulk.restoring": "جارٍ الاستعادة...", + "discussions.threads.loading": "جارٍ تحميل المناقشات...", + "discussions.autoSpamFlaggedMessage": "تم الإبلاغ تلقائياً عن المحتوى على أنه قد يكون بريد مزعج بانتظار مراجعة الموظفين.", + "discussions.autoSpamModalTitle": "ماذا يعني \"الإبلاغ التلقائي\"؟", + "discussions.autoSpamModalBodyParagraph1": "يتم تمييز بعض المحتويات بواسطة نظام آلي عندما تتطابق مع أنماط تُرتبط عادةً بالبريد المزعج. وهذا يساعد في تقليل المنشورات الضارة أو المضللة في المناقشات.", + "discussions.autoSpamModalBodyParagraph2": "المحتوى الذي تم الإبلاغ عنه تلقائياً يكون مرئياً للموظفين فقط ويظل مخفياً عن المتعلمين حتى يتم اتخاذ إجراء.", + "discussions.autoSpamModalClose": "مفهوم", + "discussions.autoSpamModalIconAlt": "عرض مزيد من المعلومات حول التمييز التلقائي", "discussions.page.title": "المناقشات | {siteName}", "navigation.course.tabs.label": "مواد المساق", "discussions.confirmEmailBanner": "أكِّد حالاً", @@ -52,8 +107,8 @@ "discussions.confirmEmailModalBody": "لقد أرسلنا إليك رسالة بريد إلكتروني للتحقق من حسابك. يُرجى التحقق من بريدك الوارد والنقر على الزِر الأحمر الكبير للتأكيد ومواصلة التعلّم.", "discussions.confirmEmailImageAlt": "صورة زِر تأكيد البريد الإلكتروني", "discussions.topics.backAlt": "العودة إلى قائمة المواضيع", - "discussions.topics.discussions": "{count, plural, =0 {Discussion} one {# Discussion} other {# Discussions} }", - "discussions.topics.questions": "{count, plural, =0 {Question} one {# Question} other {# Questions} }", + "discussions.topics.discussions": "{count, plural, =0 {مناقشة} one {# مناقشة} other {# مناقشات} }", + "discussions.topics.questions": "{count, plural, =0 {سؤال} one {# سؤال} other {# أسئلة} }", "discussions.topics.reported": "تم الإبلاغ عن {reported}", "discussions.topics.previouslyReported": "تم الإبلاغ عن {previouslyReported} من قبل", "discussions.topics.find.label": "البحث في المواضيع", @@ -64,6 +119,7 @@ "discussions.topics.createTopic": "يرجى الاتصال بك المسؤول لإنشاء موضوع", "discussions.topics.nothing": "لا شيء هنا حتى الان", "discussions.topics.archived.label": "مؤرشف", + "discussions.learner.actions.alt": "قائمة الإجراءات", "discussions.learner.reported": "تم الإبلاغ عن {reported}", "discussions.learner.previouslyReported": "تم الإبلاغ عن {previouslyReported} من قبل", "discussions.learner.lastLogin": "آخر نشاط {lastActiveTime}", @@ -76,12 +132,55 @@ "discussions.learner.sortFilterStatus": "تم ترتيب كل الطلاب حسب {sort, select, flagged {reported activity} activity {most activity} other {{sort}} }", "discussion.learner.allActivity": "كل النشاط", "discussion.learner.posts": "المنشورات", + "discussion.learner.deletedActivity": "نشاط محذوف", + "discussions.learner.actions.deleteActivity": "حذف النشاط", + "discussions.learner.actions.restoreActivity": "استعادة النشاط", + "discussions.learner.actions.withinCourse": "داخل الدورة", + "discussions.learner.actions.withinOrg": "داخل المؤسسة", + "discussions.learner.actions.deleteCoursePosts": "حذف مشاركات المستخدم داخل هذه الدورة", + "discussions.learner.actions.deleteOrgPosts": "حذف مشاركات المستخدم داخل هذه المؤسسة", + "discussions.learner.actions.restoreCoursePosts": "استعادة مشاركات المستخدم داخل هذه الدورة", + "discussions.learner.actions.restoreOrgPosts": "استعادة مشاركات المستخدم داخل هذه المؤسسة", + "discussions.learner.deletePosts.title": "هل أنت متأكد من رغبتك في حذف مساهمات المستخدم في المناقشات؟", + "discussions.learner.deletePosts.description": "{bulkType, select, course {أنت على وشك حذف {count, plural, one {# مساهمة في المناقشة} other {# مساهمات في المناقشة}} لهذا المستخدم داخل هذه الدورة. يشمل ذلك كل المواضيع والردود والتعليقات التي كتبها.} org {أنت على وشك حذف {count, plural, one {# مساهمة في المناقشة} other {# مساهمات في المناقشة}} لهذا المستخدم عبر المؤسسة. يشمل ذلك كل المواضيع والردود والتعليقات التي كتبها.} other {أنت على وشك حذف {count, plural, one {# مساهمة في المناقشة} other {# مساهمات في المناقشة}} لهذا المستخدم. يشمل ذلك كل المواضيع والردود والتعليقات التي كتبها.} }", + "discussions.learner.deletePosts.confirm": "حذف", + "discussions.learner.deletePosts.confirm.pending": "جارٍ الحذف", + "discussions.learner.restorePosts.title": "هل تريد استعادة مساهمات المستخدم في المناقشات؟", + "discussions.learner.restorePosts.description": "{bulkType, select, course {أنت على وشك استعادة {count, plural, one {# مساهمة في المناقششة} other {# مساهمات في المناقشة}} لهذا المستخدم داخل هذه الدورة. يشمل ذلك كل المواضيع والردود والتعليقات المحذوفة التي كتبها.} org {أنت على وشك استعادة {count, plural, one {# مساهمة في المناقشة} other {# مساهمات في المناقشة}} لهذا المستخدم عبر المؤسسة. يشمل ذلك كل المواضيع والردود والتعليقات المحذوفة التي كتبها.} other {أنت على وشك استعادة {count, plural, one {# مساهمة في المناقشة} other {# مساهمات في المناقشة}} لهذا المستخدم. يشمل ذلك كل المواضيع والردود والتعليقات المحذوفة التي كتبها.} }", + "discussions.learner.restorePosts.confirm": "استعادة", + "discussions.learner.restorePosts.confirm.pending": "جارٍ الاستعادة", + "discussions.learner.mutedCourseWide": "كُتِم على مستوى الدورة", + "discussions.learner.mutedForMe": "كُتِم (بالنسبة لي)", + "discussions.learner.allOtherLearners": "كل المتعلمين الآخرين", + "discussions.learner.actions.ban": "حظر", + "discussions.learner.actions.unban": "إلغاء الحظر", + "discussions.learner.actions.undeleteActivity": "استعادة النشاط", + "discussions.learner.actions.banCourse": "حظر المستخدم من المناقشات في هذه الدورة", + "discussions.learner.actions.banOrg": "حظر المستخدم من المناقشات في هذه المؤسسة", + "discussions.learner.actions.unbanCourse": "إلغاء حظر المستخدم من المناقشات في هذه الدورة", + "discussions.learner.actions.unbanOrg": "إلغاء حظر المستخدم من المناقشات في هذه المؤسسة", + "discussions.learner.actions.deleteUserCourse": "حذف كل نشاط المستخدم في المناقشات لهذه الدورة", + "discussions.learner.actions.deleteUserOrg": "حذف كل نشاط المستخدم في المناقشات لهذه المؤسسة", + "discussions.learner.actions.undeleteUserCourse": "استعادة كل نشاط المستخدم في المناقشات لهذه الدورة", + "discussions.learner.actions.undeleteUserOrg": "استعادة كل نشاط المستخدم في المناقشات لهذه المؤسسة", + "discussions.learner.delete.confirmation.button.delete": "حذف", + "discussions.learner.auditTrail.title": "معلومات سجل التدقيق", + "discussions.learner.auditTrail.bannedBy": "تم الحظر بواسطة {moderator}", + "discussions.learner.auditTrail.bannedAt": "في {date} عند {time}", + "discussions.learner.auditTrail.banScope": "{scope, select, course {على مستوى الدورة} organization {على مستوى المؤسسة} other {}}", + "discussions.learner.banner.banned": "محظور", + "discussions.learner.banner.by": "بواسطة", + "discussions.learner.banner.staff": "الموظفون", + "discussions.learner.auditTrail.staffOnly": "مرئي للموظفين فقط", "discussions.comments.comment.addComment": "إضافة تعليق", "discussions.comments.comment.addResponse": "إضافة رد", + "discussions.comments.comment.deletedBy": "تم الحذف بواسطة", + "discussions.comments.comment.deletedResponse": "رد محذوف", + "discussions.comments.comment.deletedComment": "تعليق محذوف", "discussions.comments.comment.abuseFlaggedMessage": "تم إبلاغ الطاقم عن هذا المحتوى لمراجعته.", "discussions.actions.back.alt": "العودة إلى القائمة", - "discussions.comments.comment.responseCount": "{num, plural, =0 {No responses} one {Showing # response} other {Showing # responses} }", - "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {No endorsed responses} one {Showing # endorsed response} other {Showing # endorsed responses} }", + "discussions.comments.comment.responseCount": "{num, plural, =0 {لا توجد ردود} one {عرض رد واحد} other {عرض # ردود} }", + "discussions.comments.comment.endorsedResponseCount": "{num, plural, =0 {لا توجد ردود معتمدة} one {عرض رد معتمد واحد} other {عرض # ردود معتمدة} }", "discussions.comments.comment.loadMoreComments": "تحميل المزيد من التعليقات", "discussions.comments.comment.loadMoreResponses": "تحميل المزيد من الردود", "discussions.comments.comment.visibility": "هذا المنشور مَرئِي لـ {group, select, null {Everyone} other {{group}} }.", @@ -98,8 +197,12 @@ "discussions.editor.error.empty": "لا يمكن أن يكون محتوى المنشور فارغًا.", "discussions.editor.delete.response.title": "احذف الرد", "discussions.editor.delete.response.description": "هل أنت واثق من رغبتك في حذف هذا الرد نهائياً؟", + "discussions.editor.undelete.response.title": "استعادة الرد", + "discussions.editor.undelete.response.description": "هل أنت متأكد من رغبتك في استعادة هذا الرد؟", "discussions.editor.delete.comment.title": "احذف التعليق", "discussions.editor.delete.comment.description": "هل أنت واثق من رغبتك في حذف هذا التعليق نهائياً؟", + "discussions.editor.undelete.comment.title": "استعادة التعليق", + "discussions.editor.undelete.comment.description": "هل أنت متأكد من رغبتك في استعادة هذا التعليق؟", "discussions.delete.confirmation.button.delete": "احذف", "discussions.editor.response.response.title": "أتريد الإبلاغ عن محتوى غير لائق؟", "discussions.editor.response.description": "سيراجع فريق الإشراف على المناقشة هذا المحتوى و يتخذ الإجراء المناسب.", @@ -113,7 +216,7 @@ "discussions.post.closedBy": "تم إقفال المنشور من طرف", "discussion.comment.time": "منذ {time}", "discussion.thread.notFound": "المناقشة غير موجودة", - "discussions.comment.sortFilterStatus": "{sort, select, false {Oldest first} true {Newest first} other {{sort}} }", + "discussions.comment.sortFilterStatus": "{sort, select, false {الأقدم أولاً} true {الأحدث أولاً} other {{sort}} }", "discussions.captcha.verification.label": "فشل التحقق من رمز CAPTCHA", "discussions.topics.sort.message": "مرتبة حسب {sortBy}", "discussions.topics.sort.lastActivity": "الأحدث نشاطًا", @@ -138,6 +241,10 @@ "discussions.post.lastResponse": "آخر رد {time}", "discussions.post.postedOn": "منشور في {time} من طرف {author} {authorLabel}", "discussions.post.contentReported": "تم الإبلاغ", + "discussions.post.deletedBy": "تم الحذف بواسطة", + "discussions.post.deletedPost": "محذوف", + "discussions.post.deletedResponse": "محذوف", + "discussions.post.deletedComment": "محذوف", "discussions.post.following": "جاري المتابعة", "discussions.post.follow": "متابعة", "discussions.post.followed": "تابع", @@ -155,6 +262,8 @@ "discussions.editor.delete.post.title": "احذف المنشور", "discussions.editor.delete.post.description": "هل أنت واثق من رغبتك في حذف هذا المنشر نهائياً؟", "discussions.post.delete.confirmation.button.delete": "احذف", + "discussions.editor.undelete.post.title": "استعادة المنشور", + "discussions.editor.undelete.post.description": "هل أنت متأكد من رغبتك في استعادة هذا المنشور؟", "discussions.editor.report.post.title": "أتريد الإبلاغ عن محتوى غير لائق؟", "discussions.editor.report.post.description": "سيراجع فريق الإشراف على المناقشة هذا المحتوى و يتخذ الإجراء المناسب.", "discussions.post.closePostModal.title": "إقفال المنشور", @@ -168,9 +277,10 @@ "discussions.post.postWithoutPreview": "المعاينة غير متاحة", "discussions.post.follow.description": "أنت تتابع هذا المنشور/الرد", "discussions.post.unfollow.description": "أنت لا تتابع هذا المنصب", + "discussions.post.deleted": "محذوف", "discussions.app.title": "المناقشات", "discussions.posts.actionBar.searchAllPosts": "البحث في كافّة المنشورات", - "discussions.posts.actionBar.search": "{page, select, topics {Search topics} posts {Search all posts} learners {Search learners} myPosts {Search all posts} other {{page}} }", + "discussions.posts.actionBar.search": "{page, select, topics {البحث في المواضيع} posts {البحث في كل المنشورات} learners {البحث عن المتعلمين} myPosts {البحث في كل المنشورات} other {{page}} }", "discussions.actionBar.searchInfo": "{num، plural, =0 {لا توجد نتائج} one {تم إظهار نتيجة واحدة} two {تم إظهار نتيجتين} few {تم إظهار # نتائج} many {تم إظهار # نتيجة} other {تم إظهار # نتائج}} لـ\"{text}\"", "discussions.actionBar.searchRewriteInfo": "لم يعثر على نتائج لـ \"{searchString}\". {num، plural, =0 {لا توجد نتائج} one {تم إظهار نتيجة واحدة} two {تم إظهار نتيجتين} few {تم إظهار # نتائج} many {تم إظهار # نتيجة} other {تم إظهار # نتائج}} لـ\"{textSearchRewrite}\" ", "discussions.actionBar.searchInfoSearching": "البحث جارٍ...", @@ -209,7 +319,7 @@ "discussions.editor.posts.editReasonCode": "سبب التعديل", "discussions.editor.posts.showPreview.button": "عرض المعاينة", "discussions.editor.posts.showHelp.icon": "اعرض المساعدة", - "discussions.editor.posts.discussionHelpHeader": "", + "discussions.editor.posts.discussionHelpHeader": "مساعدة المناقشات", "discussions.editor.posts.discussionHelpDescription": "تتيح لك مناقشات المساق فرصة لبدء المحادثات، وطرح تساؤلاتك، والتفاعل مع المتعلمين الآخرين. لمعرفة المزيد، اطَّلِع على الروابط أدناه:", "discussions.editor.posts.discussionHelpCourseParticipation": "المشاركة في مناقشات المساق", "discussions.editor.posts.discussionHelpMathExpressions": "إدخال التعبيرات الرياضية في مناقشات المساق", @@ -226,6 +336,8 @@ "discussions.posts.status.filter.reported": "مبلّغ عنها", "discussions.posts.status.filter.unanswered": "دون إجابة", "discussions.posts.status.filter.unresponded": "دون رد", + "discussions.posts.status.filter.active": "المحتوى النشط", + "discussions.posts.status.filter.deleted": "المحتوى المحذوف", "discussions.posts.filter.myPosts": "منشوراتي", "discussions.posts.filter.myDiscussions": "مناقشاتي", "discussions.posts.filter.myQuestions": "أسئلتي", @@ -233,5 +345,31 @@ "discussions.posts.sort.lastActivity": "الأحدث نشاطًا", "discussions.posts.sort.commentCount": "الأكثر نشاطًا", "discussions.posts.sort.voteCount": "الأكثر إعجابًا", - "discussions.posts.sort-filter.sortFilterStatus": "" -} \ No newline at end of file + "discussions.posts.sort-filter.sortFilterStatus": "{own, select, false {الكل} true {نشاطي} other {{own}} } {status, select, statusAll {} statusUnread {غير مقروء} statusFollowing {متابع} statusReported {تم الإبلاغ عنه} statusUnanswered {غير مجاب عليه} statusUnresponded {بدون رد} statusActive {نشط} statusDeleted {محذوف} other {{status}} } {type, select, discussion {المناقشات} question {الأسئلة} all {المنشورات} other {{type}} } {cohortType, select, all {} group {في {cohort}} other {{cohortType}} } مُرتّب حسب {sort, select, lastActivityAt {النشاط الأخير} commentCount {أعلى النشاط} voteCount {أكثر الإعجابات} other {{sort}} }", + "discussions.actions.mute": "كتم الصوت", + "discussions.actions.unmute": "إلغاء كتم الصوت", + "discussions.actions.mutePersonal": "كتم الصوت لي", + "discussions.actions.muteCoursewide": "كتم الصوت على مستوى الدورة", + "discussions.actions.muteAndReport": "كتم الصوت وإبلاغ", + "discussions.actions.unmutePersonal": "إلغاء كتم الصوت لي", + "discussions.actions.unmuteCoursewide": "إلغاء كتم الصوت على مستوى الدورة", + "discussions.actions.muteUser": "كتم صوت المستخدم", + "discussions.actions.unmuteUser": "إلغاء كتم صوت المستخدم", + "discussions.badge.muted": "مكتم", + "discussions.badge.mutedUser": "هذا المستخدم مكتم", + "discussions.learners.muted": "مكتم", + "discussions.post.learner.mute.title": "كتم هذا المستخدم؟", + "discussions.post.learner.mute.description": "هل أنت متأكد من رغبتك في كتم {username}? سيتم إخفاء نشاطهم في المناقشات عنك، لكنه سيظل مرئياً للمتعلمين والموظفين الآخرين.", + "discussions.post.learner.mute.button": "كتم", + "discussions.post.learner.mute.and.report.button": "كتم وإبلاغ عن المنشور", + "discussions.post.staff.mute.title": "كتم هذا المستخدم؟", + "discussions.post.staff.mute.description": "هل أنت متأكد من رغبتك في كتم {username}? سيتم إخفاء نشاطهم في المناقشات عنك، لكنه سيظل مرئياً للمتعلمين والموظفين الآخرين.", + "discussions.post.staff.mute.button": "كتم", + "discussions.post.unmute.title": "إلغاء كتم هذا المستخدم؟", + "discussions.post.unmute.description": "هل أنت متأكد من رغبتك في إلغاء كتم {username}? ستتمكن من رؤية نشاطهم في المناقشات مرة أخرى.", + "discussions.post.unmute.button": "إلغاء الكتم", + "discussions.mute.personal.confirm": "هل أنت متأكد من رغبتك في كتم {username}? سيتم إخفاء نشاطهم في المناقشات عنك.", + "discussions.mute.coursewide.confirm": "هل أنت متأكد من رغبتك في كتم {username} على مستوى الدورة؟ سيتم إخفاء نشاطهم في المناقشات عن جميع المتعلمين.", + "discussions.unmute.personal.confirm": "هل أنت متأكد من رغبتك في إلغاء كتم {username}? سيصبح نشاطهم في المناقشات مرئياً لك مرة أخرى.", + "discussions.unmute.coursewide.confirm": "هل أنت متأكد من رغبتك في إلغاء كتم {username} على مستوى الدورة؟ سيصبح نشاطهم في المناقشات مرئياً لجميع المتعلمين." +} From 54c200f5b467ba6fd61b5479eb5fd55f01ba1e8f Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:20:28 +0000 Subject: [PATCH 06/32] chore: add AI translated strings for frontend-app-enterprise-public-catalog --- .../src/i18n/messages/ar.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/frontend-app-enterprise-public-catalog/src/i18n/messages/ar.json b/translations/frontend-app-enterprise-public-catalog/src/i18n/messages/ar.json index dc34a0dd4b..b8e2fe45a7 100644 --- a/translations/frontend-app-enterprise-public-catalog/src/i18n/messages/ar.json +++ b/translations/frontend-app-enterprise-public-catalog/src/i18n/messages/ar.json @@ -73,4 +73,4 @@ "catalogs.catalogSearchResults.downloadCsv.button.pending": "النتائج تُحمّل الآن", "catalogs.catalogSearchResults.downloadCsv.button.complete": "اكتمل التحميل", "catalogs.catalogSearchResults.downloadCsv.button.error": "خطأ" -} \ No newline at end of file +} From 1809ba107bfa9c86eece83beb1f21b4440ba7572 Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:20:39 +0000 Subject: [PATCH 07/32] chore: add AI translated strings for frontend-app-gradebook --- translations/frontend-app-gradebook/src/i18n/messages/ar.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/frontend-app-gradebook/src/i18n/messages/ar.json b/translations/frontend-app-gradebook/src/i18n/messages/ar.json index 6faf26dbcc..7dd25907a2 100644 --- a/translations/frontend-app-gradebook/src/i18n/messages/ar.json +++ b/translations/frontend-app-gradebook/src/i18n/messages/ar.json @@ -74,4 +74,4 @@ "gradebook.GradesView.EditModal.Overrides.dateHeader": "التاريخ", "gradebook.GradesView.EditModal.Overrides.graderHeader": "صاحب التقييم", "gradebook.GradesView.EditModal.Overrides.reasonHeader": "السبب" -} \ No newline at end of file +} From dc5907f4048533c1d2d8c26735cb0f466ba27055 Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:20:50 +0000 Subject: [PATCH 08/32] chore: add AI translated strings for frontend-app-learner-dashboard --- .../src/i18n/messages/ar.json | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/translations/frontend-app-learner-dashboard/src/i18n/messages/ar.json b/translations/frontend-app-learner-dashboard/src/i18n/messages/ar.json index 0cdb0ee7c2..cd81b77f7f 100644 --- a/translations/frontend-app-learner-dashboard/src/i18n/messages/ar.json +++ b/translations/frontend-app-learner-dashboard/src/i18n/messages/ar.json @@ -2,7 +2,6 @@ "learner-dash.loadingSR": "التحميل جارٍ…", "learner-dash.error-page-message": "إذا فشلت المحاولة عدّة مرات، فمن فضلك تواصَل مع الدعم عبر البريد الإلكتروني {supportEmail}", "learner-dash.title": "منزل المتعلم", - "learner-dash.notices.error404Message": "لقد حدث هذا غالباً بسبب كون ملحق الإشعارات غير مثبّت على هذه المنصة", "learner-dash.courseCard.bannerAlt": "الصورة المصغّرة للمساق", "learner-dash.courseCard.verifiedBanner": "موثَّقة", "learner-dash.courseCard.verifiedHoverDescription": "إنّك مسجَّل كطالب يحمل شهادة موثَّقة", @@ -67,7 +66,7 @@ "learner-dash.unenrollConfirm.reasons.quality": "لم تعجبني جودة المحتوى", "learner-dash.unenrollConfirm.reasons.easy": "مواد المساق كانت سهلة للغاية", "learner-dash.unenrollConfirm.reasons.custom-placeholder": "غير ذلك", - "learner-dash.unenrollConfirm.reasons.prefer-not-to-say": "", + "learner-dash.unenrollConfirm.reasons.prefer-not-to-say": "أفضل عدم القول", "WidgetSidebar.lookingForChallengePrompt": "هل تبحث عن تحد جديد؟", "WidgetSidebar.findCoursesButton": "ابحث عن مساق {arrow}", "Dashboard.NoCoursesView.lookingForChallengePrompt": "هل تبحث عن تحد جديد؟", @@ -80,15 +79,15 @@ "leanerDashboard.confirmEmailModalHeader": "قم بتأكيد بريدك الإلكتروني", "leanerDashboard.confirmEmailModalBody": "لقد أرسلنا إليك رسالة بريد إلكتروني للتحقق من حسابك. يُرجى التحقق من بريدك الوارد والنقر على الزِر الأحمر الكبير للتأكيد ومواصلة التعلّم.", "leanerDashboard.confirmEmailImageAlt": "ايقونة زر تأكيد البريد الإلكتروني", - "learner-dash.unenrollConfirm.confirm.header": "", - "learner-dash.unenrollConfirm.confirm.text": "", + "learner-dash.unenrollConfirm.confirm.header": "تأكيد إلغاء التسجيل", + "learner-dash.unenrollConfirm.confirm.text": "هل أنت متأكد أنك تريد إلغاء التسجيل في الدورة {courseTitle}؟", "learner-dash.unenrollConfirm.confirm.cancel": "ألغِ", "learner-dash.unenrollConfirm.confirm.unenroll": "انسحِب", - "learner-dash.unenrollConfirm.confirm.reason.heading": "", + "learner-dash.unenrollConfirm.confirm.reason.heading": "لماذا تُلغِي تسجيلك؟", "learner-dash.unenrollConfirm.confirm.reason.skip": "تخطَّ الاستبيان", "learner-dash.unenrollConfirm.confirm.reason.submit": "انسحِب", - "learner-dash.unenrollConfirm.confirm.finish.heading": "", - "learner-dash.unenrollConfirm.confirm.finish.text": "", + "learner-dash.unenrollConfirm.confirm.finish.heading": "تم إلغاء التسجيل بنجاح", + "learner-dash.unenrollConfirm.confirm.finish.text": "تم إلغاء تسجيلك من الدورة {courseTitle}", "learner-dash.unenrollConfirm.confirm.finish.return": "حسناً", "learner-dash.courseCard.actions.beginCourse": "ابدأ المساق", "learner-dash.courseCard.actions.resume": "استأنِف المساق", @@ -145,4 +144,4 @@ "learner-dash.courseCard.banners.credit.requestCredit": "اطلُب ساعات معتمدة", "learner-dash.courseCard.banners.credit.viewCredit": "اعرض الساعات المعتمدة", "learner-dash.courseCard.banners.credit.viewDetails": "اعرض التفاصيل" -} \ No newline at end of file +} From 51ea03ce9bd04999508e8343f06be8094cf51127 Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:21:13 +0000 Subject: [PATCH 09/32] chore: add AI translated strings for frontend-app-learner-portal-enterprise --- .../src/i18n/messages/ar.json | 58 ++++++++++++++++++- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/translations/frontend-app-learner-portal-enterprise/src/i18n/messages/ar.json b/translations/frontend-app-learner-portal-enterprise/src/i18n/messages/ar.json index e9ff1e099e..f0f5dc4351 100644 --- a/translations/frontend-app-learner-portal-enterprise/src/i18n/messages/ar.json +++ b/translations/frontend-app-learner-portal-enterprise/src/i18n/messages/ar.json @@ -1,9 +1,12 @@ { + "academy.detail.page.show.more.selfpaced": "عرض المزيد من الدورات الذاتية ({contentLength}) >", + "academy.detail.page.show.less.selfpaced": "< عرض أقل من الدورات الذاتية", "academy.detail.page.clear.tag.filter.button": "مسح مرشح العلامة", "academy.detail.page.self.paced.courses.section.title": "مساقات ذات تعلّم ذاتي", "academy.detail.page.self.paced.courses.section.subtitle": "مجموعة من الدورات التي تغطي المعرفة الأساسية حول هذا الموضوع. تقدم هذه الدورات جداول زمنية مرنة ودراسة مستقلة.", "academy.detail.page.academy.not.found.page.title": "لم يتم العثور على الأكاديمية", "academy.detail.page.academy.not.found.page.message": "لم يتم العثور على الأكاديمية", + "academy.breadcrumb.find.course.link.label": "ابحث عن دورة", "academy.detail.page.academy.title": "أكاديمية {academyTitle}", "academy.detail.page.all.courses.title": "جميع دورات أكاديمية {academyTitle}", "enterprise.dashboard.tab.courses.go.to.academy.message": "البدء مع edX أمر سهل. ما عليك سوى العثور على دورة تدريبية من أكاديميتك والبدء في رحلة التعلم الخاصة بك.", @@ -92,6 +95,18 @@ "enterprise.dashboard.user.welcome.message": "مرحبًا بك، {userFirstName} !", "enterprise.dashboard.welcome.message": "مرحباً!", "enterprise.dashboard.tab.courses.license.activated": "تم تفعيل الترخيص الخاص بك بنجاح.", + "learner.portal.subscription.expired.modal.body.text1": "انتهت صلاحية وصول مؤسستك إلى اشتراكك. سيكون لديك إمكانية الوصول للمراجعة فقط إلى الدورات التي تم تسجيلك فيها عبر اشتراكك (الدورات من القسائم ستظل متاحة بالكامل).", + "learner.portal.subscription.expired.modal.body.text2": "يمكنك أيضاً تحميل شهاداتك المكتملة.", + "learner.portal.subscription.expired.modal.body.text3": "إذا كنت تعتقد أن هذا خطأ أو كنت بحاجة إلى مساعدة، {contactLink}.", + "learner.portal.subscription.expired.modal.title": "انتهت صلاحية اشتراكك", + "learner.portal.subscription.expiration.modal.ok.button": "حسناً", + "learner.portal.subscription.expiration.modal.contact.manager": "اتصل بمدير تعلمك", + "learner.portal.subscription.expiring.modal.body.text1": "ستنتهي صلاحية وصول مؤسستك إلى اشتراكك الحالي خلال {timeRemaining}. بعد انتهائه، ستتمكن فقط من الوصول للمراجعة إلى دوراتك.", + "learner.portal.subscription.expiring.modal.body.text2": "إذا كنت تتلقى الدورات حالياً، قم بالتخطيط لتعلمك وفقاً لذلك. يجب عليك أيضاً استغلال هذا الوقت لـ تحميل شهاداتك المكتملة.", + "learner.portal.subscription.expiring.modal.body.text3": "إذا كنت تعتقد أن هذا خطأ أو كنت بحاجة إلى مساعدة، {contactLink}.", + "learner.portal.subscription.expiring.modal.date": "تنتهي صلاحية الوصول في {date}.", + "learner.portal.subscription.expiring.modal.title": "اشتراكك على وشك الانتهاء", + "learner.portal.subscription.expired.modal.date": "انتهت صلاحية الوصول في {date}.", "enterprise.banner.recommend.courses": "يوصي الدورات بالنسبة لي", "ExecutiveEducation2UError.noOfferAvailable": "لا يتوفر رصيد للمتعلم لتغطية هذه الدورة.", "ExecutiveEducation2UError.noOfferWithEnoughBalance": "لا يمكنك الوصول إلى هذه الدورة التدريبية لأن مؤسستك ليس لديها أموال كافية. يرجى الاتصال بمسؤول edX الخاص بك لحل الخطأ وتزويدك بإمكانية الوصول إلى هذا المحتوى.", @@ -120,6 +135,9 @@ "executive.education.external.course.enrollment.page.registration.confirmed.button": "تم تأكيد التسجيل", "executive.education.external.course.enrollment.page.duplicated.course.order.button": "تأكيد التسجيل", "executive.education.external.course.enrollment.page.try.again.cta": "حاول ثانية", + "learner.portal.integration.warning.modal.title": "لوحة تحكم edX", + "learner.portal.integration.warning.modal.button": "حسناً", + "learner.portal.integration.warning.modal.message": "أنت تعرض فقط دورات edX التي وفرتها مؤسستك لك. قد تكون هناك موارد تعليمية أخرى من مصادر مختلفة متاحة في نظام إدارة التعلم الخاص بك.", "enterprise.microlearningVideo.beta.tooltip": "إصدار تجريبي لمقاطع الفيديو. قد لا تكون بعض الميزات عاملة بكفاءة كاملة بعد. نُقدِّر تفهمكم أثناء عملنا على تحسين التجربة. ", "enterprise.microlearningVideo.betaBadge.text": "إصدار تجريبي", "enterprise.microlearning.video.banner.new": "جديد!", @@ -296,6 +314,11 @@ "enterprise.skills.quiz.v1.continue.button.label1": "مواصلة", "enterprise.skills.quiz.v1.continue.button.label2": "مواصلة", "enterprise.skills.quiz.v1.done.button.label": "استُكمِل التقييم", + "enterprise.skills.goal.default": "اختر هدفاً", + "enterprise.skills.goal.changeCareers": "أريد تغيير مساري المهني", + "enterprise.skills.goal.getPromoted": "أريد الحصول على ترقية", + "enterprise.skills.goal.improveCurrentRole": "أريد تحسين أدائي في دوري الحالي", + "enterprise.skills.goal.other": "أخرى", "enterprise.skills.quiz.v2.job.card.related.skills.label": "المهارات ذات الصلة", "enterprise.skills.quiz.v2.see.more.recommendations.label": "رؤية المزيد من توصيات الدورة", "enterprise.skills.quiz.v2.skills.builder.title": "edx - منشئ المهارات", @@ -458,6 +481,9 @@ "enterprise.dashboard.tab.courses.find.course": "العثور على دورة", "enterprise.dashboard.group.assignment.alert.find.course.button": "العثور على دورة", "enterprise.dashboard.group.assignment.alert.dismiss.button": "تجاهل", + "enterprise.search.contentHighlights.contentType.course": "دورة", + "enterprise.search.contentHighlights.contentType.program": "برنامج", + "enterprise.search.contentHighlights.contentType.learnerpathway": "مسار", "enterprise.dashboard.nav.academy.title": "اذهب إلى الأكاديمية", "enterprise.dashboard.nav.find.course.title": "ابحث عن مساق", "courseRunActions.viewCourse": "عرض الدورة", @@ -495,5 +521,33 @@ "enterprise.dashboard.courses.tab.my.courses.section.available.date": "متاح على {upcomingDate}", "enterprise.learner_portal.dashbboard.enrollments.course.upgrade.overlay.text.covered_by_organization": "على نفقة مؤسستك", "enterprise.learner_portal.dashbboard.enrollments.course.upgrade.button.text": "قُم بترقية {title} مجاناً", - "enterprise.dashboard.sidebar.license.requested.notice": "بانتظار الموافقة." -} \ No newline at end of file + "enterprise.dashboard.sidebar.license.requested.notice": "بانتظار الموافقة.", + "learner.portal.email.settings.modal.title": "إعدادات البريد الإلكتروني", + "learner.portal.email.settings.modal.close.button": "إغلاق", + "learner.portal.email.settings.modal.save.button.default": "حفظ", + "learner.portal.email.settings.modal.save.button.pending": "جارٍ الحفظ", + "learner.portal.email.settings.modal.save.button.complete": "تم الحفظ", + "learner.portal.email.settings.modal.error.message": "حدث خطأ أثناء حفظ إعدادات البريد الإلكتروني الخاصة بك. يرجى المحاولة مرة أخرى.", + "learner.portal.email.settings.modal.checkbox.label": "تلقي رسائل البريد الإلكتروني الخاصة بالدورات مثل التذكيرات، تحديثات الجداول الزمنية، والإعلانات المهمة الأخرى.", + "learner.portal.mark.complete.modal.title": "احفظ الدورة للعودة إليها لاحقاً", + "learner.portal.mark.complete.modal.cancel.button": "إلغاء", + "learner.portal.mark.complete.modal.confirm.button.default": "احفظ الدورة للعودة إليها لاحقاً", + "learner.portal.mark.complete.modal.confirm.button.pending": "جارٍ حفظ الدورة للعودة إليها لاحقاً...", + "learner.portal.mark.complete.modal.body.confirmation.part1": "هل أنت متأكد من رغبتك في حفظ {courseLink} للعودة إليها لاحقاً؟ ستظل مسجلاً بها، لكن الدورة لن تظهر بعد الآن كـ "قيد التنفيذ".", + "learner.portal.mark.complete.modal.body.confirmation.part2": "طالما أن رخصتك سارية، يمكنك استئناف الدورة بالنقر على "نقل الدورة إلى قيد التنفيذ" ضمن قائمة الدورات المحفوظة للعودة إليها لاحقاً.", + "learner.portal.mark.complete.modal.error.message": "تعذر حفظ {courseLink} للعودة إليها لاحقاً. يرجى المحاولة مرة أخرى.", + "learner.portal.move.to.in.progress.modal.body.confirmation.part1": "هل أنت متأكد من رغبتك في نقل {courseLink} إلى "قيد التنفيذ"؟ ستظهر الدورة في قسم "قيد التنفيذ" الخاص بك.", + "learner.portal.move.to.in.progress.modal.body.confirmation.part2": "طالما أن رخصتك سارية، يمكنك استئناف الدورة بالنقر على "نقل إلى قيد التنفيذ".", + "learner.portal.move.to.in.progress.modal.error.message": "حدث خطأ أثناء استعادة {courseLink}. يرجى المحاولة مرة أخرى.", + "learner.portal.move.to.in.progress.modal.title": "نقل الدورة إلى \"قيد التنفيذ\"", + "learner.portal.move.to.in.progress.modal.cancel.button": "إلغاء", + "learner.portal.move.to.in.progress.modal.confirm.button.default": "نقل الدورة إلى \"قيد التنفيذ\"", + "learner.portal.move.to.in.progress.modal.confirm.button.pending": "جارٍ نقل الدورة إلى \"قيد التنفيذ\"...", + "enterprise.learner_portal.unenroll_modal.button.unenroll": "إلغاء التسجيل", + "enterprise.learner_portal.unenroll_modal.title": "هل تريد إلغاء التسجيل من الدورة؟", + "enterprise.learner_portal.unenroll_modal.button.keep_learning": "استمر في التعلم", + "enterprise.learner_portal.unenroll_modal.error_message": "حدث خطأ أثناء إلغاء تسجيلك من الدورة. يرجى المحاولة مرة أخرى.", + "enterprise.learner_portal.unenroll_modal.warning_message": "لن يتم حفظ التقدم الذي أحرزته حتى الآن.", + "enterprise.learner_portal.unenroll_modal.pending_message": "جارٍ إلغاء التسجيل...", + "enterprise.unenroll.success": "تم إلغاء تسجيلك من الدورة." +} From 3b4538d3551d88cafdc15e857a38986d99d4e3ee Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:21:53 +0000 Subject: [PATCH 10/32] chore: add AI translated strings for frontend-app-learner-record --- .../frontend-app-learner-record/src/i18n/messages/ar.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/frontend-app-learner-record/src/i18n/messages/ar.json b/translations/frontend-app-learner-record/src/i18n/messages/ar.json index 1109680590..4172ddb06e 100644 --- a/translations/frontend-app-learner-record/src/i18n/messages/ar.json +++ b/translations/frontend-app-learner-record/src/i18n/messages/ar.json @@ -87,4 +87,4 @@ "records.help.description": "لتعرف المزيد عن السِجِلّات يمكنك أن", "records.help.link": "قراءة المزيد في قسم المساعدة المتعلق بالسجلات.", "records.header": "سجلاتي التعلمية" -} \ No newline at end of file +} From 3b6bd17488342a5b75967766f4eb265c27a50b73 Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:22:05 +0000 Subject: [PATCH 11/32] chore: add AI translated strings for frontend-app-learning --- .../frontend-app-learning/src/i18n/messages/ar.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/translations/frontend-app-learning/src/i18n/messages/ar.json b/translations/frontend-app-learning/src/i18n/messages/ar.json index bab71a5ea9..79a83dbb5e 100644 --- a/translations/frontend-app-learning/src/i18n/messages/ar.json +++ b/translations/frontend-app-learning/src/i18n/messages/ar.json @@ -11,7 +11,7 @@ "learning.pageNotFound.body.homepageLink.label": "الصفحة الرئيسية", "instructor.toolbar.view.course": "اعرض المساق في:", "instructor.toolbar.studio": "الاستوديو", - "instructor.toolbar.insights": "Insights", + "instructor.toolbar.insights": "رؤى", "learning.notification.preferences.unsubscribe.preferenceCenterUrl": "صفحة التفضيلات", "learning.notification.preferences.unsubscribe.loading": "التحميل", "learning.notification.preferences.unsubscribe.successHeading": "أُلغِي الاشتراك بنجاح", @@ -268,6 +268,7 @@ "progress.footnotes.backToContent": "العودة إلى المحتوى", "progress.courseGrade.body": "يمثل هذا درجتك الموزونة الحالية مقارنة بالدرجة المطلوبة للنجاح في هذا المساق.", "progress.courseGrade.gradeBar.altText": "درجتك الحالية هي {currentGrade}‏% مطلوب الحصول على درجة موزونة تبلغ {passingGrade}‏% للنجاح في هذا المساق.", + "progress.courseGrade.footer.dueDateNotice": "بعض درجات الواجبات لم تُدرج بعد في مجموع درجتك النهائية. سيتم إصدار هذه الدرجات بحلول {dueDate}.", "progress.courseGrade.footer.generic.passing": "أنت ناجح حاليًا في هذا المساق.", "progress.courseGrade.footer.nonPassing": "مطلوب الحصول على درجة موزونة تبلغ {passingGrade}‏% للنجاح في هذا المساق.", "progress.courseGrade.footer.passing": "أنت ناجح حاليًا في هذا المساق بتقدير {letterGrade} ({minGrade} - {maxGrade}‏%)", @@ -293,6 +294,9 @@ "progress.gradeSummary.limitedAccessExplanation": "لديك وصول محدود إلى الواجبات المُقيّمة لأنك مُسجَّل في مسار المُستمِع في هذا المساق. {upgradeLink}", "progress.gradeSummary.tooltip.alt": "تلميح عن ملخص الدرجات", "progress.gradeSummary.tooltip.body": "أوزان الواحبات في مساقك محددة من طرف الأستاذ. يتم حساب الدرجة الموزونة بضرب درجتك في وزن ذلك الواجب. درجتك الموزنة هي ما يُستخدم لتحديد ما إن كنت ناجحًا في المساق.", + "progress.hiddenScoreLabel": "الدرجات المخفية", + "progress.hiddenScoreInfoText": "درجات الواجبات التي تُحتسب ضمن درجتك النهائية، لكن بعضها غير ظاهر هنا.", + "progress.hiddenScoreLockInfoText": "درجات نوع من الواجبات مخفية، لكنها لا تزال تُحتسب ضمن درجة الدورة.", "progress.noAcessToAssignmentType": " لا يمكنك الوصول إلى الواجبات من نوع \"{assignmentType}\"", "progress.noAcessToSubsection": "لا يمكنك الوصول إلى القسم الفرعي \"{displayName}\"", "progress.courseGrade.label.passingGrade": "درجة النجاح", @@ -477,4 +481,4 @@ "courseOutline.completedUnit": "وحدة مكتملة", "courseOutline.incompleteUnit": "وحدة غير مكتملة", "discussions.sidebar.open.button": "إظهار دٌرج المناقشات" -} \ No newline at end of file +} From 50dd5e121387924097ef120bc2486366db279a59 Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:22:26 +0000 Subject: [PATCH 12/32] chore: add AI translated strings for frontend-app-ora --- translations/frontend-app-ora/src/i18n/messages/ar.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translations/frontend-app-ora/src/i18n/messages/ar.json b/translations/frontend-app-ora/src/i18n/messages/ar.json index 1dde68c28b..ddc0fa3366 100644 --- a/translations/frontend-app-ora/src/i18n/messages/ar.json +++ b/translations/frontend-app-ora/src/i18n/messages/ar.json @@ -72,7 +72,7 @@ "frontend-app-ora.Prompt.header.studentTraining": "تدرَّب على تقييم الإجابات على السؤال أدناه", "frontend-app-ora.Prompt.header.self": "قَيِّم إجابتك على السؤال أدناه", "frontend-app-ora.Prompt.header.peer": "قَيِّم إجابات زملائك على السؤال أدناه", - "frontend-app-ora.Prompt.header.done": "", + "frontend-app-ora.Prompt.header.done": "طلب التقييم", "frontend-app-ora.Prompt.promptTitle": "السؤال", "frontend-app-ora.Rubric.gradeSubmitted": "سُلمت الدرجة", "frontend-app-ora.Rubric.rubric": "معيار التقييم", @@ -278,4 +278,4 @@ "frontend-app-ora.XBlockView.DueDateMessage.responseWasDue": "كان موعد تسليم {step} هو {dueDate}", "frontend-app-ora.XBlockView.StatusRow.notReady": "لم يجهز بعد", "frontend-app-ora.XBlockView.StatusRow.waiting": "بالانتظار" -} \ No newline at end of file +} From 69e212a50396ca37dfe394932bbc405f4d0dda8d Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:22:57 +0000 Subject: [PATCH 13/32] chore: add AI translated strings for frontend-app-ora-grading --- .../frontend-app-ora-grading/src/i18n/messages/ar.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/translations/frontend-app-ora-grading/src/i18n/messages/ar.json b/translations/frontend-app-ora-grading/src/i18n/messages/ar.json index a1f45959a0..50b2955ad9 100644 --- a/translations/frontend-app-ora-grading/src/i18n/messages/ar.json +++ b/translations/frontend-app-ora-grading/src/i18n/messages/ar.json @@ -1,5 +1,5 @@ { - "ora-grading.demoAlert.warningMessage": "", + "ora-grading.demoAlert.warningMessage": "إرسال الدرجات معطل في الوضع التجريبي لمصحح موظفي ORA الجديد.", "ora-grading.demoAlert.confirm": "أكِّد", "ora-grading.demoAlert.title": "لقد مُنِعَ التقديم التجريبي", "ora-grading.FilePopoverContent.filePopoverNameTitle": "اسم الملف", @@ -9,7 +9,7 @@ "ora-grading.ResponseDisplay.FileRenderer.retryButton": "أعِد المحاولة", "ora-grading.ResponseDisplay.FileRenderer.fileNotFound": "لم يُعثر على الملف", "ora-grading.ResponseDisplay.FileRenderer.unknownError": "أخطاء غير معروفة", - "PageTitle": "", + "PageTitle": "تصحيح درجات موظفي ORA | {siteName}", "ora-grading.InfoPopover.alt-text": "اعرض مزيداً من المعلومات", "ora-grading.CriterionFeedback.addCommentsLabel": "أضف تعليقات", "ora-grading.CriterionFeedback.commentsLabel": "التعليقات", @@ -44,6 +44,7 @@ "ora-grading.ResponseDisplay.SubmissionFiles.retryDownload": "أعِد التحميل", "ora-grading.ResponseDisplay.SubmissionFiles.submissionFile": "ملفات التسليم", "ora-grading.ResponseDisplay.SubmissionFiles.fileSizeExceed": "تجاوزت حجم التحميل المسموح به", + "ora-grading.ResponseDisplay.Prompt.collapsibleHeader": "موجه", "ora-grading.ReviewActions.pointsDisplay": "النتيجة: {pointsEarned}\\{pointsPossible}", "ora-grading.ReviewActions.hideRubric": "اخفِ مِعيار التقييم ", "ora-grading.ReviewActions.showRubric": "أظهِر معيار التقييم", @@ -99,4 +100,4 @@ "ora-grading.lms-api.gradingStatusDisplay.locked": "يُقيَّم حالياً بواسطة شخص آخَر", "ora-grading.lms-api.gradingStatusDisplay.graded": "لقد اكتمل التقييم", "ora-grading.lms-api.gradingStatusDisplay.inProgress": "أنت تقوم حاليًا بتقييم هذا الرد" -} \ No newline at end of file +} From 40a08cc032d802aba1e7873edbfd9e7623d0c0cb Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:23:08 +0000 Subject: [PATCH 14/32] chore: add AI translated strings for frontend-app-payment --- .../src/i18n/messages/ar.json | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 translations/frontend-app-payment/src/i18n/messages/ar.json diff --git a/translations/frontend-app-payment/src/i18n/messages/ar.json b/translations/frontend-app-payment/src/i18n/messages/ar.json new file mode 100644 index 0000000000..20f78da4aa --- /dev/null +++ b/translations/frontend-app-payment/src/i18n/messages/ar.json @@ -0,0 +1,138 @@ +{ + "payment.error.fetch.basket": "حدثت مشكلة غير متوقعة. إذا استمرت المشكلة، يرجى {supportLink}.", + "payment.error.fetch.basket.support.fragment": "الاتصال بالدعم", + "payment.messages.enrollment-code-product-info.header": "هل تشتري فقط لنفسك؟", + "payment.messages.enrollment-code-product-info.body": "إذا كنت تشتري رمزًا لشخص آخر، يرجى المتابعة إلى الدفع. ومع ذلك، إذا كنت المتعلم {link}.", + "payment.messages.enrollment-code-product-info.link": "انقر هنا للتسجيل مباشرة", + "payment.messages.enrollment.code.product.info.quantity.updated.header": "لقد قمنا بتحديث الكمية الخاصة بك.", + "payment.messages.enrollment.code.product.info.quantity.updated.body": "تتضمن سلة مشترياتك {quantity} رمز تسجيل بتكلفة إجمالية قدرها {price}، وسوف تستلمها عبر البريد الإلكتروني.", + "payment.messages.transaction.declined.body": "لم نستطع معالجة دفعتك. يرجى التحقق من معلومات الدفع الخاصة بك أو التواصل مع البنك أو المؤسسة المالية للحصول على المساعدة.", + "payment.messages.transaction.error.dynamic_payment_methods_not_compatible": "طريقة الدفع التي اخترتها غير متوفرة في بلدك. يرجى اختيار طريقة دفع أخرى.", + "payment.messages.transaction.error.basket_changed": "تغير محتوى سلة مشترياتك منذ دخولك لهذه الصفحة. يرجى إعادة تحميل الصفحة والتحقق من المنتج الذي تشتريه.", + "payment.messages.key.timeout.body": "لأسباب أمنية، سيُطلب منك إعادة إدخال معلومات بطاقة الائتمان لإكمال الشراء.", + "payment.messages.key.timeout.2mins.header": "يرجى إكمال الشراء خلال دقيقتين", + "payment.messages.key.timeout.1min.header": "يرجى إكمال الشراء خلال دقيقة واحدة", + "payment.empty.basket.heading": "سلة مشترياتك فارغة.", + "payment.empty.basket.message": "إذا حاولت إجراء عملية شراء، فلن يتم تحصيل أي مبلغ. عد إلى {actionLinkOne} للمحاولة مرة أخرى، أو {actionLinkTwo}.", + "payment.empty.basket.dashboardURL": "اللوحة", + "payment.empty.basket.supportURL": "الاتصال بدعم التجارة الإلكترونية لـ edX", + "payment.heading.page": "الدفع", + "payment.loading.payment": "جارٍ تحميل السلة...", + "payment.loading.error": "خطأ: {error}", + "payment.apple.pay.merchant.validation.failure": "Apple Pay غير متاح في الوقت الحالي. يرجى تجربة طريقة دفع أخرى.", + "payment.apple.pay.authorization.failure": "حدث خطأ أثناء معالجة دفعتك. لم يتم تحصيل أي مبلغ منك. يرجى المحاولة مرة أخرى أو اختيار طريقة دفع أخرى.", + "subscription.heading.page": "دفع الاشتراك", + "subscription.loading.details": "جارٍ تحميل تفاصيل الاشتراك...", + "payment.bulk.summary.table.label.price": "السعر", + "payment.bulk.summary.table.label.quantity": "الكمية", + "payment.bulk.summary.table.label.subtotal": "الإجمالي الفرعي", + "payment.screen.reader.cart.details.loaded": "تم تحميل تفاصيل سلة التسوق.", + "payment.section.cart.label": "تفاصيل سلة التسوق", + "payment.productlineitem.purchase.cart.heading": "في سلة مشترياتك", + "payment.productlineitem.purchase.cart.subheading": "تشمل مشترياتك ما يلي:", + "payment.screen.reader.cart.details.loading": "جارٍ التحميل، يرجى الانتظار...", + "payment.coupon.label": "أضف رمز القسيمة (اختياري)", + "payment.coupon.submit": "تطبيق", + "payment.coupon.benefit.absolute": "تم تطبيق القسيمة {code} للحصول على خصم قدره {amount}", + "payment.coupon.benefit.percentage": "تم تطبيق القسيمة {code} للحصول على خصم بنسبة {amount}%", + "payment.coupon.benefit.default": "تم تطبيق القسيمة {code}", + "payment.coupon.remove": "إزالة", + "payment.currency.disclaimer": "* يتضمن هذا الإجمالي تحويلًا تقريبيًا. سيتم تحصيل {actualAmount} {actualCurrencyCode} من بطاقتك.", + "payment.summary.discount.offer": "تم تقديم خصم {benefit} من قبل {provider}.", + "payment.summary.discount.dynamic_offer": "تم تطبيق خصم {benefit} لأول ترقية.", + "payment.summary.table.label.discount.total": "الخصومات المطبقة", + "payment.order.details.heading": "تفاصيل الطلب", + "payment.productlineitem.professional.certificate": "الشهادة الاحترافية", + "payment.productlineitem.verified.certificate": "الشهادة المعتمدة", + "payment.summary.table.label.price": "السعر", + "payment.summary.table.label.total.to.pay": "الإجمالي", + "payment.update.quantity.label": "الكمية", + "payment.update.quantity.field.help.text": "الحد الأقصى: {number}", + "payment.update.quantity.submit.button": "تحديث", + "payment.select.payment.method.heading": "اختر وسيلة الدفع", + "payment.section.payment.details.label": "تفاصيل الدفع", + "payment.page.method.type.credit": "بطاقة ائتمان", + "payment.page.method.type.paypal": "باي بال", + "payment.form.submit.button.text": "تنفيذ الطلب", + "subscription.alerts.error.embargo": "نأسف، هذا البرنامج غير متاح في منطقتك.", + "subscription.alerts.error.program_unavailable": "حدث خطأ، يرجى إعادة تحميل الصفحة. إذا استمرت المشكلة يرجى {supportLink}.", + "subscription.alerts.error.ineligible_program": "نأسف، لم يعد هذا البرنامج يقدم خيار الاشتراك. يرجى البحث في الكتالوج عن البرامج المتاحة حالياً.", + "subscription.alerts.error.requires_payment_method": "نأسف، لم تجتز التفاصيل التي قدمتها فحص 3D Secure. يرجى تجربة تفاصيل دفع مختلفة.", + "subscription.checkout.payment.label": "تفاصيل دفع الاشتراك.", + "subscription.confirmation.modal.navigation.title": "الانتقال إلى اللوحة", + "subscription.confirmation.modal.trialing.heading": "مبروك! لقد بدأت فترة تجريبية مجانية لمدة 7 أيام لبرنامج {programTitle}.", + "subscription.confirmation.modal.trialing.body": "عند انتهاء الفترة التجريبية المجانية، سيبدأ اشتراكك، وسنحتسب {price} {currency} شهرياً من وسيلة الدفع الخاصة بك. لتجنب التحصيل، يجب إلغاء الاشتراك قبل انتهاء الفترة التجريبية. سيتم تجديد هذا الاشتراك تلقائيًا كل شهر ما لم تقم بالإلغاء من صفحة {ordersAndSubscriptionLink}.", + "subscription.confirmation.modal.resubscribe.heading": "مبروك! لقد بدأ اشتراكك في {programTitle}.", + "subscription.confirmation.modal.resubscribe.body": "تم تحصيل {price} {currency} من وسيلة الدفع الخاصة بك. سيتم تجديد هذا الاشتراك تلقائيًا وتحميل الرسوم شهرياً ما لم تقم بالإلغاء من صفحة {ordersAndSubscriptionLink}.", + "subscription.confirmation.modal.body.orders.link": "الطلبات والاشتراكات", + "subscription.screen.reader.details.loaded": "تم تحميل تفاصيل التسوق.", + "payment.order.details.enrollment.code.terms": "من خلال الشراء، أنت ومنظمتك توافقان على الشروط التالية:", + "payment.order.details.enrollment.code.first.term": "كل رمز صالح للدورة المشمولة ويمكن استخدامه مرة واحدة فقط.", + "payment.order.details.enrollment.code.second.term": "أنت مسؤول عن توزيع الرموز على المتعلمين في منظمتك.", + "payment.order.details.enrollment.code.third.term": "ستنتهي صلاحية كل رمز بعد سنة من تاريخ الشراء أو، إذا حدث ذلك أبكر، بمجرد إغلاق الدورة.", + "payment.order.details.enrollment.code.fourth.term": "إذا لم تُحدد الدورة كدورة ذاتية الوتيرة، يجب التأكد من توفر موعد للدورة قبل انتهاء صلاحيتها.", + "payment.order.details.enrollment.code.fifth.term": "لا يجوز لك إعادة بيع الرموز لأطراف ثالثة.", + "payment.order.details.enrollment.code.sixth.term": "جميع مبيعات edX للأعمال نهائية وغير قابلة للاسترداد.", + "payment.order.details.enrollment.code.receive.email": "ستتلقى رسالة إلكترونية على {userEmail} تحتوي على رمز(أرموز) التسجيل الخاصة بك.", + "payment.order.details.course.entitlement": "بعد إكمال طلبك، ستتمكن من اختيار تواريخ الدورة من اللوحة الخاصة بك.", + "payment.order.details.course.seat.verified": "يشمل الإجمالي أعلاه الضرائب المطبقة إن وجدت. بعد إكمال طلبك، سيتم تسجيلك تلقائيًا في المسار المعتمد للدورة.", + "payment.order.details.course.seat.credit": "بعد إكمال طلبك، ستحصل على ائتمان لدورتك.", + "payment.order.details.course.seat": "بعد إكمال طلبك، سيتم تسجيلك تلقائيًا في الدورة.", + "payment.card.details.billing.information.heading": "معلومات الفوترة (مطلوب)", + "payment.card.details.expiration.month.label": "شهر الانتهاء (مطلوب)", + "payment.card.details.expiration.year.label": "سنة الانتهاء (مطلوب)", + "payment.page.card.details.month": "شهر", + "payment.page.card.details.year": "سنة", + "payment.card.holder.information.postal.code.label.required": "الرمز البريدي (مطلوب)", + "payment.card.holder.information.postal.code.label": "الرمز البريدي", + "payment.card.holder.information.heading": "معلومات حامل البطاقة", + "payment.card.holder.information.first.name.label": "الاسم الأول (مطلوب)", + "payment.card.holder.information.last.name.label": "اسم العائلة (مطلوب)", + "payment.card.holder.information.organization.label": "المنظمة (مطلوب)", + "payment.card.holder.information.address.label": "العنوان (مطلوب)", + "payment.card.holder.information.unit.label": "رقم الشقة/الوحدة", + "payment.card.holder.information.city.label": "المدينة (مطلوب)", + "payment.card.holder.information.country.label": "البلد (مطلوب)", + "payment.card.holder.information.purchased.for.organization": "أقوم بالشراء نيابة عن جهة عملي أو مؤسسة احترافية أخرى", + "payment.card.holder.information.country.options.empty": "اختر البلد", + "payment.form.errors.invalid.card.number": "رقم البطاقة غير صحيح", + "payment.form.errors.unsupported.card": "نوع البطاقة غير مدعوم", + "payment.form.errors.invalid.security.code": "رمز الأمان غير صحيح", + "payment.form.errors.card.expired": "انتهت صلاحية البطاقة", + "payment.form.errors.required.field": "هذه الخانة مطلوبة", + "payment.form.errors.ascii.name": "نعتذر عن الإزعاج، ولكننا نطلب حالياً استخدام أحرف ASCII في خانة الاسم. نحن نعمل على معالجة هذا الأمر ونقدر صبرك.", + "payment.form.errors.dynamic_payment_methods_not_compatible.country": "طريقة الدفع غير متوفرة للبلد المحدد", + "payment.card.holder.information.state.label": "الولاية/المقاطعة (مطلوب)", + "payment.card.holder.information.state.required.label": "الولاية/المقاطعة", + "payment.card.holder.information.state.options.empty": "اختر الولاية/المقاطعة", + "payment.apple.pay.pay.with.apple.pay": "الدفع باستخدام Apple Pay", + "payment.type.paypal": "باي بال", + "subscription.checkout.billing.notification": "سيتم تحصيل {price} {currency} {trialEnd} ثم شهريًا حتى تقوم بإلغاء اشتراكك.", + "subscription.checkout.billing.trial.date": "في {date},", + "subscription.checkout.billing.resubscribe.date": "اليوم,", + "subscription.checkout.form.submit.button.text.default": "اشترك", + "subscription.checkout.form.submit.button.text.resubscribe": "تم بدء الاشتراك", + "subscription.purchase.details.heading": "في سلة مشترياتك", + "subscription.purchase.details.label": "الاشتراك", + "subscription.purchase.details.product.list.heading": "يشمل اشتراكك ما يلي:", + "subscription.details.order.legal": "من خلال الاشتراك أو بدء الفترة التجريبية المجانية، فإنك تفوضنا بتحصيل {price}/شهر {currency} مقابل {programTitle} وأي ضرائب معمول بها. ستتجدد اشتراكات {programTitle} تلقائيًا حتى تقوم بالإلغاء. يمكن إلغاء الاشتراك الشهري في أي وقت؛ راجع عملية الإلغاء في {supportLink}. إلغاء الاشتراك يوقف الرسوم الشهرية المتكررة، ولكنه لا يسترد قيمة المعاملة للفترة الحالية.", + "subscription.details.order.legal.link": "مركز مساعدة المتعلمين", + "subscription.order.details": "بعد إكمال طلبك، ستحصل على وصول معتمد لكل دورة في {programTitle}.", + "subscription.order.details.heading": "تفاصيل الطلب", + "subscription.order.details.taxes": "يشمل الإجمالي أعلاه أي ضرائب معمول بها.", + "subscription.order.details.cancel": "يمكن الإلغاء في أي وقت.", + "subscription.details.program.type.microMasters": "MicroMasters", + "subscription.details.program.type.microBachelors": "MicroBachelors", + "subscription.details.program.type.xSeries": "XSeries", + "subscription.details.program.type.professionalProgram": "برنامج مهني", + "subscription.details.program.type.professionalCertificate": "شهادة مهنية", + "subscription.details.program.type.masters": "الماجستير", + "subscription.screen.reader.details.loading": "جارٍ التحميل، يرجى الانتظار...", + "subscription.summary.table.label.price": "السعر", + "subscription.summary.table.label.trialing.price": "/شهر بالدولار الأمريكي بعد فترة تجريبية مجانية لمدة 7 أيام", + "subscription.summary.table.label.resubscribe.price": "/شهر بالدولار الأمريكي", + "subscription.summary.table.label.total.to.pay": "إجمالي اليوم", + "payment.card.details.number.label": "رقم البطاقة (مطلوب)", + "payment.card.details.security.code.label": "رمز الأمان (مطلوب)", + "payment.card.details.security.code.help.text": "الثلاثة أرقام الأخيرة في منطقة التوقيع على ظهر بطاقتك. بالنسبة لـ American Express، فهي الأربعة أرقام على مقدمة البطاقة." +} From c410178e377b7b6001f4e89d0a742d2509b8ff33 Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:23:19 +0000 Subject: [PATCH 15/32] chore: add AI translated strings for frontend-app-profile --- translations/frontend-app-profile/src/i18n/messages/ar.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/frontend-app-profile/src/i18n/messages/ar.json b/translations/frontend-app-profile/src/i18n/messages/ar.json index f83c530bd3..797a4de74b 100644 --- a/translations/frontend-app-profile/src/i18n/messages/ar.json +++ b/translations/frontend-app-profile/src/i18n/messages/ar.json @@ -56,4 +56,4 @@ "profile.formcontrols.button.saved": "حُفظ", "profile.visibility.who.just.me": "أنا فقط", "profile.visibility.who.everyone": "جميع من على {siteName}" -} \ No newline at end of file +} From 757de505426c7f4c8cecde3a82ce39c8b0389bad Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:23:30 +0000 Subject: [PATCH 16/32] chore: add AI translated strings for frontend-app-program-console --- .../src/i18n/messages/ar.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 translations/frontend-app-program-console/src/i18n/messages/ar.json diff --git a/translations/frontend-app-program-console/src/i18n/messages/ar.json b/translations/frontend-app-program-console/src/i18n/messages/ar.json new file mode 100644 index 0000000000..062340a060 --- /dev/null +++ b/translations/frontend-app-program-console/src/i18n/messages/ar.json @@ -0,0 +1,12 @@ +{ + "siteheader.links.courses": "الدورات", + "siteheader.links.programs": "البرامج والدرجات العلمية", + "siteheader.links.schools": "المدارس والشركاء", + "siteheader.user.menu.dashboard": "لوحة التحكم", + "siteheader.user.menu.profile": "الملف الشخصي", + "siteheader.user.menu.account.settings": "الحساب", + "siteheader.user.menu.logout": "تسجيل الخروج", + "siteheader.user.menu.login": "تسجيل الدخول", + "siteheader.user.menu.register": "التسجيل", + "app.loading.message": "جار التحميل" +} From 73793a9e306bd11f641199aaf5b65ab34600147a Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:23:41 +0000 Subject: [PATCH 17/32] chore: add AI translated strings for frontend-app-publisher --- .../frontend-app-publisher/src/i18n/messages/ar.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 translations/frontend-app-publisher/src/i18n/messages/ar.json diff --git a/translations/frontend-app-publisher/src/i18n/messages/ar.json b/translations/frontend-app-publisher/src/i18n/messages/ar.json new file mode 100644 index 0000000000..851a43f420 --- /dev/null +++ b/translations/frontend-app-publisher/src/i18n/messages/ar.json @@ -0,0 +1,7 @@ +{ + "publisher.status.archived": "مؤرشف", + "publisher.status.unsubmitted": "غير مقدم", + "publisher.status.Scheduled": "مجدول", + "publisher.status.inReview": "قيد المراجعة", + "publisher.status.published": "منشور" +} From e5c869d53e9282ad022cf685b68389e95048f650 Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:24:04 +0000 Subject: [PATCH 18/32] chore: add AI translated strings for frontend-app-support-tools --- .../src/i18n/messages/ar.json | 58 ++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/translations/frontend-app-support-tools/src/i18n/messages/ar.json b/translations/frontend-app-support-tools/src/i18n/messages/ar.json index 1a8138f012..a751ea80c5 100644 --- a/translations/frontend-app-support-tools/src/i18n/messages/ar.json +++ b/translations/frontend-app-support-tools/src/i18n/messages/ar.json @@ -1,4 +1,60 @@ { + "courseTeamManagementPageTitle": "إدارة الوصول", + "courseTeamManagementNoUserSelected": "لم يتم اختيار مستخدم", + "courseTeamManagementNoUserSelectedDescription": "ابحث باستخدام اسم المستخدم أو البريد الإلكتروني لعرض الدورات وإدارة الوصول.", + "courseTeamManagementSearchPlaceholder": "بحث", + "courseTeamManagementAllCoursesFilterLabel": "كل الدورات", + "courseTeamManagementActiveCoursesFilterLabel": "النشطة", + "courseTeamManagementArchivedCoursesFilterLabel": "المؤرشفة", + "courseTeamManagementAllOrgsFilterLabel": "كل المؤسسات", + "courseTeamManagementAllOrgsFilterDropdownLabel": "جميع المؤسسات", + "courseTeamManagementNoOrgFoundOrgsFilterDropdownLabel": "لم يتم العثور على نتائج", + "courseTeamManagementNoResultsFoundForTable": "لم يتم العثور على نتائج", + "courseTeamManagementStatusActionsFilterLabel": "الإجراءات", + "courseTeamManagementStatusStaffFilterLabelChoice": "الموظفون", + "courseTeamManagementStatusAdminFilterLabelChoice": "المسؤول", + "courseTeamManagementStatusStaffFilterLabel": "تعيين الدور كموظف", + "courseTeamManagementStatusAdminFilterLabel": "تعيين الدور كمسؤول", + "courseTeamManagementTableHeaderNameLabel": "الاسم", + "courseTeamManagementTableHeaderNumberLabel": "الرقم", + "courseTeamManagementTableHeaderRunLabel": "التشغيل", + "courseTeamManagementTableHeaderAllCoursesStatusLabel": "الحالة", + "courseTeamManagementTableHeaderRoleLabel": "الدور", + "courseTeamManagementTableNoResultsFound": "لم يتم العثور على نتائج", + "courseTeamManagementCourseAccessFor": "الوصول إلى الدورة لـ {username}", + "courseTeamManagementCourseAccessForDescription": "استخدم مربعات الاختيار لإضافة أو إزالة الوصول إلى الدورة.", + "courseTeamManagementSaveButtonLabel": "حفظ", + "courseTeamManagementTableNoOfEntriesShowingLabel": "عرض {startItemIndex} - {endItemIndex} من {totalFilteredItems}.", + "courseTeamManagementTableUsernameOrEmailUserSearchPlaceholder": "اسم المستخدم أو البريد الإلكتروني", + "courseTeamManagementTableUserSearchUnsavedChangesModalHeader": "تغييرات غير محفوظة", + "courseTeamManagementTableUserSearchUnsavedChangesModalDescription": "هل أنت متأكد من رغبتك في مغادرة هذه الصفحة؟ ستفقد جميع التغييرات غير المحفوظة.", + "courseTeamManagementTableUserSearchUnsavedChangesModalStageOnPageBtn": "البقاء في الصفحة", + "courseTeamManagementTableUserSearchUnsavedChangesModalLeavePageBtn": "مغادرة الصفحة", + "supportToolHomePageUsernameOrEmailUserSearchPlaceholder": "اسم المستخدم أو البريد الإلكتروني أو معرف مستخدم LMS", + "courseTeamManagementTableConfirmChangesModalHeader": "تأكيد التغييرات؟", + "courseTeamManagementTableErrorChangesModalHeader": "لم يتم حفظ التغييرات", + "courseTeamManagementTableConfirmChangesModalDescription": "هل أنت متأكد من رغبتك في تحديث الوصول لـ:", + "courseTeamManagementTableErrorChangesModalDescription": "لم نستطع حفظ التحديثات التالية لـ:", + "confirmChangesModalCancelButton": "إلغاء", + "confirmChangesModalSaveButton": "حفظ", + "changesWithErrorsModalCloseButton": "إغلاق", + "showMoreChangesInConfirmChangesModal": "أظهر {hiddenCount} المزيد", + "addedToCourseCountChangesInConfirmChangesModal": "تمت الإضافة إلى {count} دورة:", + "removedFromCourseCountChangesInConfirmChangesModal": "تمت الإزالة من {count} دورة:", + "roleUpdatedInCourseCountChangesInConfirmChangesModal": "تم تحديث الدور في {count} دورة:", + "addedToCourseCountChangesInConfirmChangesModalError": "لم نستطع الإضافة إلى {count} دورة:", + "removedFromCourseCountChangesInConfirmChangesModalError": "لم نستطع الإزالة من {count} دورة:", + "roleUpdatedInCourseCountChangesInConfirmChangesModalError": "لم نستطع تحديث الدور في {count} دورة:", + "courseUpdatesErrorsAlertMessage": "لم يتم حفظ بعض التغييرات.", + "courseUpdatesErrorsAlertViewDetailsMessage": "عرض التفاصيل", + "courseTeamUpdateApiError": "حدث خطأ غير متوقع أثناء تحديث أدوار المستخدم.", + "courseTeamGetApiError": "حدث خطأ غير متوقع أثناء جلب دورات المستخدم.", + "courseTeamManagementStaffRole": "الموظف", + "courseTeamManagementInstructorRole": "مدرس", + "courseTeamManagementSaveChangesButtonText": "حفظ", + "courseTeamManagementSavingChangesButtonText": "جارٍ الحفظ", + "courseTeamManagementSavedChangesButtonText": "تم الحفظ", + "alertDismissBtnText": "رفض", "supportTools.mainTab.description": "مجموعة من الأدوات التي يستخدمها فريق الدعم للمساعدة في الفرز وحل مشكلات محددة للمتعلمين.", "pageTitle": "أدوات الدعم | {siteName}", "course.reset.alert.warning": "هل أنت متأكد؟ سيؤدي هذا إلى مسح جميع بيانات هذا المتعلم لهذه الدورة. ولا يمكن أن يحدث هذا إلا مرة واحدة لكل متعلم في كل دورة.", @@ -27,4 +83,4 @@ "configuration.customersPage.otherSubsidiesColumn.tooltip": "يتضمن العروض ورموز التخفيض", "configuration.customersPage.viewSubsidiesColumn.tooltip": "تُشير علامة الاختيار إلى وجود إعانة نشطة.", "supportTool.customers.page.breadcrumb.customer": "العملاء" -} \ No newline at end of file +} From 260e7ef5f247c93dccbe8102e2d0a1e2432b1f46 Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:24:19 +0000 Subject: [PATCH 19/32] chore: add AI translated strings for frontend-component-authn-edx --- .../src/i18n/messages/ar.json | 184 ++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 translations/frontend-component-authn-edx/src/i18n/messages/ar.json diff --git a/translations/frontend-component-authn-edx/src/i18n/messages/ar.json b/translations/frontend-component-authn-edx/src/i18n/messages/ar.json new file mode 100644 index 0000000000..be975927d6 --- /dev/null +++ b/translations/frontend-component-authn-edx/src/i18n/messages/ar.json @@ -0,0 +1,184 @@ +{ + "social.auth.provide.signup.title": "سجل باستخدام {providerName}", + "social.auth.provide.signin.title": "تسجيل الدخول باستخدام {providerName}", + "login.third.party.auth.account.not.linked": "لقد تم تسجيل الدخول بنجاح إلى {currentProvider}، لكن حساب {currentProvider} الخاص بك غير مرتبط بحساب {platformName}. لربط حساباتك، قم بتسجيل الدخول الآن باستخدام كلمة مرور {platformName} الخاصة بك.", + "register.third.party.auth.account.not.linked": "لقد تم تسجيل الدخول بنجاح إلى {currentProvider}! نحتاج فقط إلى مزيد من المعلومات قبل أن تبدأ التعلم مع {platformName}.", + "tpa.authentication.failure": "نأسف، ليس لديك التفويض للوصول إلى edX عبر هذه القناة. يرجى الاتصال بمسؤول التعلم أو مديرك للوصول إلى edX.{lineBreak}{lineBreak}تفاصيل الخطأ:{lineBreak}{errorMessage}", + "enterprisetpa.title.heading": "هل ترغب في تسجيل الدخول باستخدام بيانات اعتماد {providerName} الخاصة بك؟", + "enterprisetpa.login.button.text": "أرني طرقًا أخرى لتسجيل الدخول أو التسجيل", + "login.form.heading.1": "تسجيل الدخول", + "login.form.signin.button.text": "تسجيل الدخول", + "login.form.forgot.password.button.text": "هل نسيت كلمة المرور؟", + "login.form.sign.up.help.text": "أليس لديك حساب بعد؟", + "login.form.sign.up.link.text": "إنشاء حساب", + "login.form.school.and.organization.help.text": "هل لديك حساب عبر المدرسة أو المؤسسة؟", + "login.form.school.and.organization.link": "تسجيل الدخول باستخدام بيانات الاعتماد الخاصة بك", + "login.form.email.field.label": "البريد الإلكتروني", + "login.form.password.field.label": "كلمة المرور", + "login.form.heading.2": "أو", + "login.failure.header.title": "تعذر تسجيل الدخول.", + "login.incorrect.credentials.error.reset.link.text": "إعادة تعيين كلمة المرور", + "login.rate.limit.reached.message": "عدد محاولات تسجيل الدخول الخاطئة كبير جداً. حاول مرة أخرى لاحقاً.", + "contact.support.link": "اتصل بدعم {platformName}", + "login.inactive.user.error": "لتسجيل الدخول، يجب تنشيط حسابك.{lineBreak}{lineBreak}لقد أرسلنا للتو رابط تفعيل إلى {email}. إذا لم تتلقَ بريدًا إلكترونيًا، تحقق من مجلدات الرسائل المزعجة أو {supportLink}.", + "tpa.account.link": "حساب {provider}", + "allowed.domain.login.error": "بصفتك مستخدمًا من {allowedDomain}، يجب عليك تسجيل الدخول باستخدام {allowedDomain} {tpaLink}.", + "login.form.invalid.error.message": "يرجى ملء الحقول أدناه.", + "login.incorrect.credentials.error.attempts.text.1": "اسم المستخدم أو البريد الإلكتروني أو كلمة المرور التي أدخلتها غير صحيحة. لديك {remainingAttempts} محاولة أخرى قبل أن يتم قفل حسابك مؤقتاً.", + "login.incorrect.credentials.error.attempts.text.2": "إذا نسيت كلمة المرور، {resetLink}", + "account.locked.out.message.1": "لحماية حسابك، تم قفله مؤقتاً. حاول مرة أخرى خلال 30 دقيقة.", + "account.locked.out.message.2": "لضمان الأمان، يمكنك {resetLink} قبل المحاولة مرة أخرى.", + "login.incorrect.credentials.error": "اسم المستخدم أو البريد الإلكتروني أو كلمة المرور التي أدخلتها غير صحيحة. يرجى المحاولة مرة أخرى.", + "login.incorrect.credentials.error.with.reset.link": "اسم المستخدم أو البريد الإلكتروني أو كلمة المرور التي أدخلتها غير صحيحة. يرجى المحاولة مرة أخرى أو {resetLink}.", + "internal.server.error.message": "حدث خطأ. حاول تحديث الصفحة أو تحقق من اتصالك بالإنترنت.", + "login.incorrect.credentials.error.before.account.blocked.text": "اضغط هنا لإعادة تعيينها.", + "username.or.email.format.validation.less.chars.message": "يجب أن يحتوي اسم المستخدم أو البريد الإلكتروني على حرفين على الأقل.", + "email.validation.message": "أدخل اسم المستخدم أو البريد الإلكتروني الخاص بك", + "password.validation.message": "معايير كلمة المرور لم تتوافق", + "non.compliant.password.title": "لقد قمنا مؤخراً بتغيير متطلبات كلمة المرور", + "non.compliant.password.message": "كلمة المرور الحالية الخاصة بك لا تفي بمتطلبات الأمان الجديدة. لقد أرسلنا للتو رسالة إعادة تعيين كلمة المرور إلى عنوان البريد الإلكتروني المرتبط بهذا الحساب. شكراً لمساعدتنا في الحفاظ على أمان بياناتك.", + "account.confirmation.success.message.title": "نجاح! لقد قمت بتأكيد بريدك الإلكتروني.", + "account.confirmation.success.message": "قم بتسجيل الدخول للمتابعة.", + "account.confirmation.info.message": "تم تأكيد هذا البريد الإلكتروني بالفعل.", + "account.confirmation.error.message.title": "لم نتمكن من تأكيد بريدك الإلكتروني", + "account.confirmation.support.link": "اتصل بالدعم", + "progressive.profiling.form.heading": "أكمل ملفك الشخصي", + "progressive.profiling.completion.skip.message": "إذا تخطيت الآن، يمكنك إكمال ملفك الشخصي تحت \"إعدادات الحساب\" في أي وقت.", + "progressive.profiling.country.field.title": "أكد بلد إقامتك", + "progressive.profiling.country.field.info.message": "لقد حددنا بلد إقامتك. إذا كان هذا غير صحيح، يرجى تعديل بلدك.", + "progressive.profiling.country.field.undetected": "غير محدد", + "progressive.profiling.country.field.help.text": "بلد إقامتك يحدد توفر بعض الدورات", + "progressive.profiling.country.field.error.message": "يرجى النقر على \"إرسال\" لحفظ التغييرات في حقل \"بلد الإقامة\".", + "progressive.profiling.data.collection.title": "خصص تجربتك", + "progressive.profiling.subject.field.label": "ما المجال الذي تهتم به؟", + "progressive.profiling.subject.field.placeholder": "اختر مجالاً", + "progressive.profiling.level.of.education.field.label": "ما هو أعلى مستوى تعليمي أكملته؟", + "progressive.profiling.level.of.education.field.placeholder": "اختر مستوى", + "progressive.profiling.work.experience.field.label": "كم عدد سنوات الخبرة العملية التي تمتلكها؟", + "progressive.profiling.work.experience.field.placeholder": "اختر خياراً", + "progressive.profiling.learning.type.field.label": "ما نوع التجربة التي تهتم بها؟", + "progressive.profiling.learning.type.field.placeholder": "اختر منتجاً", + "progressive.profiling.gender.field.label": "ما هو جنسك؟", + "progressive.profiling.gender.field.placeholder": "اختر خياراً", + "progressive.profiling.skip.for.now.button.text": "تخطى الآن", + "progressive.profiling.submit.button.text": "إرسال", + "subject.option.Business & Management": "الأعمال والإدارة", + "subject.option.Computer Science": "علوم الحاسوب", + "subject.option.Engineering": "الهندسة", + "subject.option.Social Sciences": "العلوم الاجتماعية", + "subject.option.Data Analysis & Statistics": "تحليل البيانات والإحصاء", + "subject.option.Economics & Finance": "الاقتصاد والمالية", + "subject.option.Communication": "الاتصالات", + "subject.option.Humanities": "العلوم الإنسانية", + "subject.option.Science": "العلوم", + "subject.option.Environmental Studies": "الدراسات البيئية", + "subject.option.Medicine": "الطب", + "subject.option.Biology & Life Sciences": "علم الأحياء وعلوم الحياة", + "subject.option.Health & Safety": "الصحة والسلامة", + "subject.option.Education & Teacher Training": "التعليم وتدريب المعلمين", + "subject.option.Art & Culture": "الفن والثقافة", + "subject.option.Math": "الرياضيات", + "subject.option.History": "التاريخ", + "subject.option.Design": "التصميم", + "subject.option.Physics": "الفيزياء", + "subject.option.Energy & Earth Sciences": "الطاقة وعلوم الأرض", + "subject.option.Law": "القانون", + "subject.option.Philosophy & Ethics": "الفلسفة والأخلاقيات", + "subject.option.Language": "اللغة", + "subject.option.Electronics": "الإلكترونيات", + "subject.option.Food & Nutrition": "الغذاء والتغذية", + "subject.option.Architecture": "العمارة", + "subject.option.Chemistry": "الكيمياء", + "subject.option.Literature": "الأدب", + "subject.option.Ethics": "الأخلاقيات", + "subject.option.Music": "الموسيقى", + "subject.option.Philanthropy": "العمل الخيري", + "levelOfEducation.option.none": "بدون تعليم رسمي", + "levelOfEducation.option.jhs": "المرحلة الثانوية الأدنى/المدرسة الإعدادية/المدرسة المتوسطة", + "levelOfEducation.option.hs": "الثانوية/المدرسة الثانوية", + "levelOfEducation.option.a": "درجة الزمالة", + "levelOfEducation.option.b": "درجة البكالوريوس", + "levelOfEducation.option.m": "درجة الماجستير أو الدرجة المهنية", + "levelOfEducation.option.p": "درجة الدكتوراه", + "levelOfEducation.option.other": "أخرى", + "workExperience.option.0yrs": "ليس لدي أي خبرة عملية", + "workExperience.option.1-5yrs": "لدي خبرة عملية تتراوح بين 1 إلى 5 سنوات", + "workExperience.option.6-10yrs": "لدي خبرة عملية تتراوح بين 6 إلى 10 سنوات", + "workExperience.option.11-15yrs": "لدي خبرة عملية تتراوح بين 11 إلى 15 سنة", + "workExperience.option.16-20yrs": "لدي خبرة عملية تتراوح بين 16 إلى 20 سنة", + "workExperience.option.20+yrs": "أكثر من 20 سنة من الخبرة العملية", + "learningType.option.Courses": "الدورات", + "learningType.option.Programs": "البرامج", + "learningType.option.Boot Camps": "معسكرات التدريب", + "learningType.option.Degree Programs": "الدرجات العلمية", + "learningType.option.Executive Education": "التعليم التنفيذي", + "learningType.option.Unsure": "غير متأكد", + "gender.option.m": "ذكر", + "gender.option.f": "أنثى", + "gender.option.o": "آخر/أفضل عدم الإجابة", + "registration.form.heading.1": "إنشاء حساب", + "registration.form.or.heading.2": "أو", + "registration.form.continue.button": "أنشئ حساباً مجاناً", + "registration.form.already.have.account.text": "هل لديك حساب بالفعل؟", + "registration.form.sign.in.link": "تسجيل الدخول", + "registration.form.account.school.organization.text": "هل لديك حساب من خلال المدرسة أو المؤسسة؟", + "registration.form.sign.in.with.credentials.link": "تسجيل الدخول باستخدام بياناتك", + "registration.form.password.label": "كلمة المرور", + "registration.form.email.label": "البريد الإلكتروني", + "registration.form.terms.of.service.and.honor.code.label": "شروط الخدمة ومدونة الشرف", + "registration.form.privacy.policy.label": "سياسة الخصوصية", + "register.failure.header.title": "لم نتمكن من إنشاء حسابك.", + "registration.empty.form.submission.error": "يرجى التحقق من إجاباتك والمحاولة مرة أخرى.", + "registration.request.server.error": "حدث خطأ. حاول تحديث الصفحة أو تحقق من اتصالك بالإنترنت.", + "registration.rate.limit.error": "عدد محاولات التسجيل الفاشلة كبير جداً. حاول مرة أخرى لاحقاً.", + "registration.tpa.session.expired": "لم نتمكن من إنشاء حسابك. انتهت صلاحية التسجيل باستخدام {provider}.", + "registration.tpa.authentication.failure": "نأسف، ليس لديك التفويض للوصول إلى {platform_name} عبر هذه القناة. يرجى الاتصال بمسؤول التعلم أو مديرك للوصول إلى {platform_name}.{lineBreak}{lineBreak}تفاصيل الخطأ:{lineBreak}{errorMessage}", + "registration.form.submission.error": "لم نتمكن من إنشاء حسابك. يرجى تصحيح الأخطاء أدناه.", + "reset.password.form.heading": "إعادة تعيين كلمة المرور", + "reset.password.form.submit.button": "إرسال", + "reset.password.form.need.help.text": "تحتاج إلى مساعدة في تسجيل الدخول؟", + "reset.password.form.help.center.link": "مركز المساعدة", + "reset.password.form.additional.help.text": "للمساعدة الإضافية، اتصل بدعم edX على", + "reset.password.back.to.login.button": "العودة إلى تسجيل الدخول", + "new.password.label": "كلمة مرور جديدة", + "confirm.password.label": "تأكيد كلمة المرور", + "reset.password.button": "إعادة تعيين كلمة المرور", + "enter.confirm.password.message": "أدخل كلمة المرور الجديدة وقم بتأكيدها", + "vulnerable.blocked.password.message": "نظامنا اكتشف ثغرة حرجة في كلمة المرور. يرجى إعادة تعيين كلمة المرور للحفاظ على أمان حسابك.", + "vulnerable.warned.password.message": "نظامنا اكتشف ثغرة في كلمة المرور. ننصحك بإعادة تعيين كلمة المرور للحفاظ على أمان حسابك.", + "email.sent.message": "تم إرسال البريد الإلكتروني", + "help.center": "مركز المساعدة", + "password.required.message": "كلمة المرور حقل مطلوب", + "passwords.do.not.match": "كلمتا المرور غير متطابقتين", + "confirm.your.password": "أكد كلمة المرور الخاصة بك", + "reset.password.failure.heading": "لم نتمكن من إعادة تعيين كلمة المرور الخاصة بك.", + "forgot.Password.form.email.label": "البريد الإلكتروني", + "forgot.password.empty.email.field.error": "البريد الإلكتروني مطلوب", + "forgot.password.page.invalid.email.message": "أدخل عنوان بريد إلكتروني صالح", + "forgot.password.internal.server.error": "حدث خطأ. حاول تحديث الصفحة أو تحقق من اتصالك بالإنترنت.", + "forgot.password.error.alert.title.": "لم نتمكن من التواصل معك.", + "forgot.password.extend.field.errors": "{emailError} أدناه.", + "forgot.password.request.in.progress.message": "طلبك السابق قيد المعالجة، يرجى المحاولة مرة أخرى بعد بضع لحظات.", + "reset.password.validate.token.heading.text": "جارٍ التحقق من رابط إعادة تعيين كلمة المرور الخاص بك...", + "invalid.token.heading": "رابط إعادة تعيين كلمة المرور غير صالح", + "invalid.token.error.message": "هذا الرابط لإعادة تعيين كلمة المرور غير صالح. قد يكون قد تم استخدامه بالفعل. أدخل بريدك الإلكتروني أدناه لتلقي رابط جديد.", + "did.you.mean.alert.text": "هل تقصد", + "empty.email.field.error": "البريد الإلكتروني مطلوب", + "email.invalid.format.error": "أدخل عنوان بريد إلكتروني صالح", + "registration.form.marketing.opt.in.label": "أوافق على أن edX قد ترسل لي رسائل تسويقية", + "empty.name.field.error": "الاسم الكامل مطلوب", + "name.validation.message": "أدخل اسماً صحيحاً", + "show.password": "إظهار كلمة المرور", + "hide.password": "إخفاء كلمة المرور", + "one.letter": "حرف واحد", + "one.number": "1 رقم", + "eight.characters": "8 أحرف", + "registration.form.full.name.label": "{label}", + "account.activation.error.message": "حدث خطأ ما، يرجى {supportLink} لحل هذه المشكلة.", + "register.page.terms.of.service.and.honor.code": "بإنشاء حساب، فإنك توافق على {TOSAndHonorCode} وتقر بأن edX وكل عضو يعالج بياناتك الشخصية وفقاً لـ {privacyPolicy}.", + "forgot.password.confirmation.message": "لقد أرسلنا رسالة إلى {email} تحتوي على تعليمات إعادة تعيين كلمة المرور الخاصة بك. إذا لم تتلق رسالة إعادة تعيين كلمة المرور بعد دقيقة واحدة، تحقق من صحة عنوان بريدك الإلكتروني أو افحص مجلد الرسائل غير المرغوب فيها. إذا كنت بحاجة إلى مساعدة إضافية، قم بزيارة {helpCenter}.", + "reset.password.form.submission.error": "يرجى التحقق من إجاباتك والمحاولة مرة أخرى.", + "reset.password.success": "تم إعادة تعيين كلمة المرور الخاصة بك. قم بتسجيل الدخول إلى حسابك.", + "internal.server.error": "حدث خطأ. حاول تحديث الصفحة أو تحقق من اتصالك بالإنترنت.", + "rate.limit.error": "حدث خطأ بسبب كثرة الطلبات. يرجى المحاولة مرة أخرى بعد فترة." +} From 2acc296614cbe886ee23efed30ce9e271654769a Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:24:32 +0000 Subject: [PATCH 20/32] chore: add AI translated strings for frontend-component-footer-edx --- .../src/i18n/messages/ar.json | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 translations/frontend-component-footer-edx/src/i18n/messages/ar.json diff --git a/translations/frontend-component-footer-edx/src/i18n/messages/ar.json b/translations/frontend-component-footer-edx/src/i18n/messages/ar.json new file mode 100644 index 0000000000..af1d55fe3b --- /dev/null +++ b/translations/frontend-component-footer-edx/src/i18n/messages/ar.json @@ -0,0 +1,46 @@ +{ + "footer.trademarks": "{icpMessage}", + "footer.socialLinks.srText.facebook": "أعجب بـ edX على فيسبوك", + "footer.socialLinks.srText.twitter": "تابع edX على X (المعروف سابقًا باسم تويتر)", + "footer.socialLinks.srText.youtube": "اشترك في قناة edX على يوتيوب", + "footer.socialLinks.srText.linkedin": "تابع edX على لينكدإن", + "footer.socialLinks.srText.instagram": "تابع edX على إنستاجرام", + "footer.socialLinks.srText.reddit": "اشترك في مجموعة edX على ريديت", + "footer.languageForm.select.label": "اختر اللغة", + "footer.languageForm.submit.label": "تطبيق", + "footer.edxLinks.about": "حول", + "footer.edxLinks.business": "edX للأعمال", + "footer.edxLinks.affiliates": "الشركاء", + "footer.edxLinks.openEdx": "Open edX", + "footer.edxLinks.careers": "الفرص الوظيفية", + "footer.edxLinks.news": "الأخبار", + "footer.legalLinks.heading": "قانوني", + "footer.legalLinks.termsOfService": "شروط الخدمة ومدونة الشرف", + "footer.legalLinks.privacyPolicy": "سياسة الخصوصية", + "footer.legalLinks.a11yPolicy": "سياسة الإتاحة", + "footer.legalLinks.trademarkPolicy": "سياسة العلامات التجارية", + "footer.legalLinks.sitemap": "خريطة الموقع", + "footer.legalLinks.doNotSellData": "خيارات خصوصيتك", + "footer.legalLinks.cookiePolicy": "سياسة الكوكيز", + "footer.connectLinks.heading": "تواصل", + "footer.connectLinks.blog": "مركز الأفكار", + "footer.connectLinks.contact": "اتصل بنا", + "footer.connectLinks.help": "مركز المساعدة", + "footer.connectLinks.security": "الأمان", + "footer.connectLinks.mediaKit": "مجموعة الوسائط", + "footer.mobileApp.apple": "حمّل تطبيق edX من متجر تطبيقات Apple", + "footer.mobileApp.google": "حمّل تطبيق edX من Google Play", + "footer.logo.altText": "شعار edX", + "footer.logo.ariaLabel": "الصفحة الرئيسية لـ edX", + "footer.ariaLabel": "تذييل الصفحة", + "edx.authoring.footer.label": "تذييل استوديو edX", + "edx.authoring.footer.studio.link.label.text": "استوديو", + "edx.authoring.footer.lms.link.label.text": "نظام إدارة التعلم", + "edx.authoring.footer.release_notes.link.label.text": "ملاحظات الإصدار", + "edx.authoring.footer.edx_documentation.link.label.text": "وثائق edX", + "edx.authoring.footer.contact_us.link.label.text": "اتصل بنا", + "authoring.footer.termsOfService.link.label": "شروط الخدمة", + "authoring.footer.privacyPolicy.link.label": "سياسة الخصوصية", + "authoring.footer.accessibilityRequest.link.label": "طلب تسهيلات الوصول", + "authoring.footer.trademark.message": "edX و Open edX وشعاري edX و Open edX عبارة عن علامات تجارية مسجلة لدى" +} From eb3d8710cfb53bd6d03f783ebc792b93de3f9c80 Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:24:49 +0000 Subject: [PATCH 21/32] chore: add AI translated strings for frontend-component-header-edx --- .../src/i18n/messages/ar.json | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 translations/frontend-component-header-edx/src/i18n/messages/ar.json diff --git a/translations/frontend-component-header-edx/src/i18n/messages/ar.json b/translations/frontend-component-header-edx/src/i18n/messages/ar.json new file mode 100644 index 0000000000..116d1a2727 --- /dev/null +++ b/translations/frontend-component-header-edx/src/i18n/messages/ar.json @@ -0,0 +1,48 @@ +{ + "header.links.courses": "الدورات", + "header.links.programs": "البرامج", + "header.links.content.search": "اكتشف جديد", + "header.links.schools": "المدارس والشركاء", + "header.user.menu.career": "المسار المهني", + "header.user.menu.newAlert": "جديد", + "header.user.menu.dashboard": "لوحة التحكم", + "header.user.menu.profile": "الملف الشخصي", + "header.user.menu.account.settings": "الحساب", + "header.user.menu.order.history": "سجل الطلبات", + "header.user.menu.logout": "تسجيل الخروج", + "header.user.menu.login": "تسجيل الدخول", + "header.user.menu.register": "اشتراك", + "header.label.account.nav": "الحساب", + "header.label.account.menu": "قائمة الحساب", + "header.label.account.menu.for": "قائمة الحساب لـ {username}", + "header.label.main.nav": "رئيسي", + "header.label.main.menu": "القائمة الرئيسية", + "header.label.main.header": "رئيسي", + "header.label.secondary.nav": "ثانوي", + "header.label.skip.nav": "تخطى إلى المحتوى الرئيسي", + "general.register.sentenceCase": "تسجيل", + "general.signIn.sentenceCase": "تسجيل الدخول", + "header.menu.dashboard.label": "لوحة التحكم", + "header.help.label": "المساعدة", + "header.menu.profile.label": "الملف الشخصي", + "header.menu.account.label": "الحساب", + "header.menu.career.label": "المسار المهني", + "header.menu.new.label": "جديد", + "header.menu.orderHistory.label": "سجل الطلبات", + "header.navigation.skipNavLink": "تخطى إلى المحتوى الرئيسي.", + "header.menu.signOut.label": "تسجيل الخروج", + "header.user.menu.studio": "الصفحة الرئيسية للاستوديو", + "header.user.menu.maintenance": "الصيانة", + "header.label.courseOutline": "العودة إلى مخطط الدورة في الاستوديو", + "header.sitelanguage.modal.title": "لغة الموقع", + "header.sitelanguage.modal.button.aria.label": "تغيير لغة الموقع", + "header.sitelanguage.modal.popover.disclaimer.title": "إخلاء المسؤولية", + "header.sitelanguage.modal.popover.disclaimer.content": "تشمل المحتويات المؤهلة معظم نسخ مقاطع الفيديو النصية، والاختبارات القصيرة، والنصوص على المنصة. تُنتج الترجمات باستخدام أدوات الذكاء الاصطناعي وقد تحتوي على أخطاء أو عدم دقة.", + "header.sitelanguage.modal.popover.disclaimer.warranties": "قد تحتوي هذه الخدمة على ترجمات مقدمة من أطراف ثالثة، بما في ذلك برامج/خدمات الذكاء الاصطناعي. تتنصل edX وشركاتها التابعة والمرخصين ومزود الترجمة (the “Entities”) من جميع الضمانات المتعلقة بالترجمات. يتم تقديم الترجمات \"as is\" وتتضمن الكيانات تنازلاً عن جميع الضمانات سواء كانت صريحة أو ضمنية أو قانونية أو غير ذلك، بما في ذلك على سبيل المثال لا الحصر أي ضمانات تتعلق بالدقة أو الموثوقية أو الجودة أو الملاءمة لغرض معين أو الجودة المرضية وعدم التعدي على حقوق الآخرين.", + "header.sitelanguage.modal.button.cancel.label": "إلغاء", + "header.sitelanguage.modal.button.submit.label": "إرسال", + "header.sitelanguage.modal.save.error.message": "حدث خطأ أثناء محاولة حفظ لغتك المفضلة. الرجاء المحاولة مرة أخرى لاحقًا.", + "header.sitelanguage.button.producttour.title": "الوصول الأسهل إلى إعدادات اللغة", + "header.sitelanguage.button.producttour.body": "يمكنك الآن تغيير لغة الموقع والدورة من هنا.", + "header.sitelanguage.button.producttour.dismiss.button.label": "تجاهل" +} From 961785b67ceaf419f194058b80527f7b210bdb9c Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:25:45 +0000 Subject: [PATCH 22/32] chore: add AI translated strings for frontend-enterprise --- translations/frontend-enterprise/i18n/messages/ar.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/frontend-enterprise/i18n/messages/ar.json b/translations/frontend-enterprise/i18n/messages/ar.json index 6aff961e51..c441d4fb36 100644 --- a/translations/frontend-enterprise/i18n/messages/ar.json +++ b/translations/frontend-enterprise/i18n/messages/ar.json @@ -77,4 +77,4 @@ "search.facetFilters.availability.title": "التوفر", "search.facetFilters.language.title": "اللغة", "search.facetFilters.subtitle.title": "الترجمة" -} \ No newline at end of file +} From c20ffcc7c5fb668ce0dad4f00b1222da44d7bc6c Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:25:59 +0000 Subject: [PATCH 23/32] chore: add AI translated strings for frontend-lib-special-exams --- .../frontend-lib-special-exams/src/i18n/messages/ar.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/frontend-lib-special-exams/src/i18n/messages/ar.json b/translations/frontend-lib-special-exams/src/i18n/messages/ar.json index 8b1acca3af..dc83a59801 100644 --- a/translations/frontend-lib-special-exams/src/i18n/messages/ar.json +++ b/translations/frontend-lib-special-exams/src/i18n/messages/ar.json @@ -145,4 +145,4 @@ "exam.PendingPrerequisitesProctoredExamInstructions.text3": "قيد الانتظار", "exam.PendingPrerequisitesProctoredExamInstructions.text4": "الحالة ويجب إتمامها بنجاح قبل أن تتمكن من المتابعة:", "exam.PendingPrerequisitesProctoredExamInstructions.text5": "لا يمكنك تقديم هذا الامتحان مع المُراقَبة إلّا بعد استيفاء جميع المتطلبات الأساسية بنجاح." -} \ No newline at end of file +} From 8968e6359679b0b4ac91a06e6d714ea5d2bf190a Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:26:41 +0000 Subject: [PATCH 24/32] chore: add AI translated strings for frontend-plugin-advertisements --- .../src/i18n/messages/ar.json | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 translations/frontend-plugin-advertisements/src/i18n/messages/ar.json diff --git a/translations/frontend-plugin-advertisements/src/i18n/messages/ar.json b/translations/frontend-plugin-advertisements/src/i18n/messages/ar.json new file mode 100644 index 0000000000..bc4709d825 --- /dev/null +++ b/translations/frontend-plugin-advertisements/src/i18n/messages/ar.json @@ -0,0 +1,55 @@ +{ + "learning.accessExpiration.deadline": "قم بالترقية بحلول {date} للحصول على وصول غير محدود إلى الدورة ما دامت موجودة على الموقع.", + "learning.accessExpiration.header": "صلاحية الوصول التجريبي تنتهي {date}", + "learning.accessExpiration.body": "ستخسر جميع حقوق الوصول لهذه الدورة، بما في ذلك تقدمك، في {date}.", + "learning.accessExpiration.upgradeNow": "قم بالترقية الآن", + "advertisements.upgradeNotification.expiration": "ستنتهي صلاحية الوصول إلى الدورة في {date}", + "advertisements.upgradeNotification.expirationDays": "يتبقى {dayCount, number} {dayCount, plural, one {يوم} other {أيام}}", + "advertisements.upgradeNotification.expirationHours": "يتبقى {hourCount, number} {hourCount, plural, one {ساعة} other {ساعات}}", + "advertisements.upgradeNotification.expirationMinutes": "يتبقى أقل من ساعة واحدة", + "advertisements.upgradeNotification.pastExpiration.content": "انتهت مهلة الترقية لهذه الدورة. للترقية، قم بالتسجيل في الجلسة المتاحة التالية.", + "advertisements.upgradeNotification.pastExpiration.banner": "انتهت مهلة الترقية في {date}", + "advertisements.upgradeNotification.expirationAccessLoss.progress": "بما في ذلك أي تقدم", + "advertisements.upgradeNotification.expirationVerifiedCert.benefits": "فوائد الترقية", + "advertisements.upgradeNotification.expirationAccessLoss": "ستفقد كل حقوق الوصول لهذه الدورة، {includingAnyProgress}, في {date}.", + "advertisements.upgradeNotification.expirationVerifiedCert": "ترقية دورتك تتيح لك الحصول على شهادة موثقة وفتح العديد من المزايا. اعرف المزيد عن {benefitsOfUpgrading}.", + "learn.lockPaywall.content.link.new-tab.screenreader-only.message": "في تبويب جديد", + "course-home.section-outline.section-item.chip.text": "محتوى محدود. قم بالترقية للوصول الكامل.", + "course-home.section-outline.section-item.button.label": "الترقية للوصول الكامل", + "course-home.section-outline.sequence-item.tooltip.content": "{lockedStatus, select, partial {محتوى محدود} other {غير متاح}}. قم بالترقية للوصول الكامل.", + "course-home.section-outline.upgrade-banner.header": "افتح الوصول للتقييمات والمهام", + "course-home.section-outline.upgrade-banner.message": "قم بالترقية اليوم واستمتع بوصول غير محدود لجميع مواد الدورة.", + "course-home.section-outline.upgrade-banner.button.label": "الترقية الآن", + "course-home.section-outline.sequence-item.is-preview.tooltip.content": "افتح للوصول الكامل.", + "learning.upgrade-modal.title": "احصل على شهادة موثقة", + "learning.generic.upgradeNotification.code": "استخدم الرمز {code} عند الدفع", + "learning.upgrade-modal.upgrade-button.label": "عرض تفاصيل الدورة", + "advertisements.header.pursue-certificate": "احصل على شهادة موثقة", + "advertisements.close": "إغلاق", + "learning.generic.upgradeNotification.firstTimeLearnerDiscount": "{percentage}% خصم للمبتدئين للمرة الأولى", + "learning.generic.upgradeNotification.accessExpiration": "قم بترقية دورتك اليوم", + "learning.generic.upgradeNotification.accessExpirationUrgent": "انتهاء صلاحية الوصول إلى الدورة", + "learning.generic.upgradeNotification.accessExpirationPast": "انتهاء صلاحية الوصول إلى الدورة", + "learning.generic.upgradeNotification.past-expiration.call-to-action-button.label": "عرض تفاصيل الدورة", + "datesBanner.upgradeToCompleteGradedBanner.header": "قم بالترقية لفتح الميزات", + "datesBanner.upgradeToCompleteGradedBanner.body": "أنت تقوم بمراجعة هذه الدورة، مما يعني أنك غير قادر على المشاركة في المهام المُدرجة للتقييم. لاستكمال هذه المهام ضمن الدورة، يمكنك الترقية اليوم.", + "datesBanner.upgradeToCompleteGradedBanner.button": "الترقية الآن", + "advertisements.upsell.verifiedCertBullet.verifiedCert": "شهادة موثقة", + "advertisements.upsell.verifiedCertBullet": "احصل على {verifiedCertLink} من الإكمال لتظهره في سيرتك الذاتية", + "advertisements.upsell.unlockGradedBullet.gradedAssignments": "المهام المُدرجة للتقييم", + "advertisements.upsell.unlockGradedBullet": "افتح وصولك لجميع أنشطة الدورة، بما في ذلك {gradedAssignmentsInBoldText}", + "advertisements.upsell.fullAccessBullet.fullAccess": "الوصول الكامل", + "advertisements.upsell.fullAccessBullet": "{fullAccessInBoldText} إلى محتوى ومواد الدورة، حتى بعد انتهائها", + "advertisements.upsell.supportMissionBullet.mission": "المهمة", + "advertisements.upsell.supportMissionBullet": "ادعم {missionInBoldText} على {siteName}", + "upsell-table.table-header.features": "المميزات", + "upsell-table.table-header.audit": "المراجعة", + "upsell-table.table-header.verified": "الموثقة", + "upsell.features.certificate.hyperlink": "شهادة موثقة", + "upsell.features.certificate": "شهادة قابلة للمشاركة {certificateLink}", + "upsell.features.grades": "المهام والتقييمات المُدرجة", + "upsell.features.access": "وصول غير محدود لجميع مواد الدورة", + "upsell.features.learning-assistant": "مساعد التعلم المدعوم بالذكاء الاصطناعي", + "upsell-table.table-row.audit.not-included": "هذه الميزة متاحة ضمن المسار الموثق فقط", + "upsell-table.section.header": "قارن بين فوائد الترقية" +} From 853afb431954b7f9b764ede05f26995cd39ff4e8 Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:27:02 +0000 Subject: [PATCH 25/32] chore: add AI translated strings for frontend-plugin-learner-dashboard --- .../src/i18n/messages/ar.json | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 translations/frontend-plugin-learner-dashboard/src/i18n/messages/ar.json diff --git a/translations/frontend-plugin-learner-dashboard/src/i18n/messages/ar.json b/translations/frontend-plugin-learner-dashboard/src/i18n/messages/ar.json new file mode 100644 index 0000000000..642b4bc4ac --- /dev/null +++ b/translations/frontend-plugin-learner-dashboard/src/i18n/messages/ar.json @@ -0,0 +1,24 @@ +{ + "leanerDashboard.menu.career.label": "المسار المهني", + "header.menu.new.label": "جديد", + "learner-dash.courseCard.banners.auditAccessExpired": "لقد انتهت صلاحية وصولك للمراجعة في هذه الدورة.", + "learner-dash.courseCard.banners.upgradeToAccess": "قم بالترقية الآن لاستعادة الوصول إلى دورتك.", + "learner-dash.courseCard.banners.findAnotherCourse": "ابحث عن دورة أخرى", + "learner-dash.courseCard.banners.upgradeDeadlinePassed": "لقد انقضت مهلة الترقية لهذه الدورة. للترقية، قم بالتسجيل في جلسة في موعد أبعد في المستقبل.", + "learner-dash.courseCard.banners.exploreCourseDetails": "استكشف تفاصيل الدورة.", + "learner-dash.courseCard.banners.prerequisitesNotMet": "لا يمكنك الوصول إلى هذه الدورة بعد لأنك لم تستوفِ المتطلبات الأساسية.", + "learner-dash.courseCard.banners.courseHasNotStarted": "لا يمكنك الوصول إلى هذه الدورة بعد لأن الدورة لم تبدأ بعد. ستبدأ الدورة في {startDate}.", + "learnerVariantDashboard.menu.dashboard.label": "لوحة التحكم", + "learnerVariantDashboard.menu.dashboardPersonal.label": "شخصي", + "learnerVariantDashboard.menu.dashboardSwitch.label": "تبديل لوحة التحكم", + "leanerDashboard.enterpriseDialogHeader": "ابدأ في استكشاف الدورات المجانية المتوفرة لك عبر لوحة {label}.", + "leanerDashboard.enterpriseDialogBody": "لديك وصول إلى مجموعة من الدورات المجانية. لاستكشافها وبدء التعلم، انقر ببساطة على \"Go to dashboard\" الآن.", + "leanerDashboard.enterpriseDialogDismissButton": "تجاهل", + "leanerDashboard.enterpriseDialogConfirmButton": "اذهب إلى لوحة التحكم", + "Dashboard.NoCoursesView.lookingForChallengePrompt": "تبحث عن تحدٍ جديد؟", + "Dashboard.NoCoursesView.exploreCoursesPrompt": "استكشف دوراتنا لإضافتها إلى لوحة التحكم الخاصة بك.", + "Dashboard.NoCoursesView.exploreCoursesButton": "استكشف الدورات", + "Dashboard.NoCoursesView.bannerAlt": "راية عرض عدم وجود الدورات", + "learner-dash.notices.error404Message": "من المحتمل أن يحدث هذا لأن مكون الإشعارات غير مثبت على المنصة.", + "learner-dash.courseCard.actions.upgrade": "ترقية" +} From 82a67209cbb9466f330e80ef4a1d279badf55c68 Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:27:18 +0000 Subject: [PATCH 26/32] chore: add AI translated strings for frontend-plugin-notifications --- .../src/i18n/messages/ar.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 translations/frontend-plugin-notifications/src/i18n/messages/ar.json diff --git a/translations/frontend-plugin-notifications/src/i18n/messages/ar.json b/translations/frontend-plugin-notifications/src/i18n/messages/ar.json new file mode 100644 index 0000000000..9098230c21 --- /dev/null +++ b/translations/frontend-plugin-notifications/src/i18n/messages/ar.json @@ -0,0 +1,17 @@ +{ + "notification.title": "إشعارات", + "notification.today.heading": "آخر 24 ساعة", + "notification.earlier.heading": "في وقت سابق", + "notification.mark.as.read": "وضع علامة على الكل كمقروء", + "notification.fullStop": "•", + "notification.load.more.notifications": "تحميل المزيد من الإشعارات", + "notification.recent.all.message": "هذه كل إشعاراتك الأخيرة!", + "notification.expired.delete.message": "يتم مسح الإشعارات تلقائيًا بعد {days} أيام", + "notification.no.message": "لا توجد إشعارات حتى الآن", + "notification.no.help.message": "عندما تتلقى إشعارات، ستظهر هنا", + "notification.bell.icon.alt.message": "أيقونة جرس الإشعارات", + "tour.action.dismiss": "تجاهل", + "tour.action.end": "حسنًا", + "tour.example.title": "جولة المثال", + "tour.example.body": "هذه جولة مثال" +} From 44617591fd724a1687c883a2b377c7688fab2a7e Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:27:50 +0000 Subject: [PATCH 27/32] chore: add AI translated strings for frontend-plugin-persona --- .../src/i18n/messages/ar.json | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 translations/frontend-plugin-persona/src/i18n/messages/ar.json diff --git a/translations/frontend-plugin-persona/src/i18n/messages/ar.json b/translations/frontend-plugin-persona/src/i18n/messages/ar.json new file mode 100644 index 0000000000..b6ea3b4d7f --- /dev/null +++ b/translations/frontend-plugin-persona/src/i18n/messages/ar.json @@ -0,0 +1,27 @@ +{ + "persona.id-verification.header": "التحقق من الهوية", + "persona.id-verification.body": "تستخدم edX التحقق من الهوية للتحقق من طلب تغيير اسمك. يرجى التأكد من أن الاسم أدناه مطابق تمامًا للاسم كما هو موضح في بطاقة الهوية الرسمية الصادرة عن الحكومة الخاصة بك.", + "persona.id-verification.requirements-collapsible.title": "متطلبات التحقق من الهوية", + "persona.id-verification.requirements-collapsible.body.name": "يجب أن يتطابق الاسم الذي أدخلته والذي يظهر في بطاقة الهوية الرسمية الصادرة عن الحكومة في صفحة إعدادات الحساب مع البطاقة الرسمية الخاصة بك تمامًا.", + "persona.id-verification.requirements-collapsible.body.identification-card": "تحتاج إلى بطاقة هوية رسمية صادرة عن الحكومة تحتوي على اسمك الكامل وصورتك، مثل رخصة القيادة أو جواز السفر.", + "persona.id-verification.requirements-collapsible.body.camera": "تحتاج إلى جهاز مزود بكاميرا.", + "persona.id-verification.privacy-collapsible.title": "معلومات الخصوصية", + "persona.id-verification.privacy-collapsible.body.question.why-identity-verification": "تستخدم edX التحقق من الهوية للتحقق من طلب تغيير اسمك.", + "persona.id-verification.privacy-collapsible.body.question.information-collected": "ما المعلومات التي تجمعها edX أثناء وبعد التحقق من الهوية؟", + "persona.id-verification.privacy-collapsible.body.answer.information-collected.edx": "لا تجمع edX أو تخزن أي معلومات شخصية إضافية تتعلق بمحاولة التحقق من هويتك. تحتفظ edX بسجل حول نجاح محاولة التحقق من هويتك وما إذا كان الاسم الذي أدخلته والموجود على بطاقة الهوية الرسمية قد تم التحقق منه.", + "persona.id-verification.privacy-collapsible.body.question.information-shared": "ما المعلومات التي تشاركها edX مع مزود خدمة التحقق من الهوية؟", + "persona.id-verification.privacy-collapsible.body.answer.information-shared": "تشارك edX اسمك مع مزود خدمة التحقق من الهوية لدينا. الاسم الذي يتم مشاركته هو الاسم الذي أدخلته والذي يظهر على بطاقة الهوية الرسمية في صفحة إعدادات الحساب.", + "persona.id-verification.cta.header": "اسمك كما يظهر في بطاقة الهوية الرسمية الخاصة بك. يجب أن يتطابق تمامًا:", + "persona.id-verification.cta.instruction.update_name": "ليس اسمك؟ تحديث الاسم", + "persona.id-verification.cta.button.launch": "تشغيل التحقق من الهوية", + "persona.id-verification.cta.button.launching": "جارٍ تشغيل التحقق من الهوية", + "persona.id-verification.action.account-settings": "الذهاب إلى إعدادات الحساب", + "persona.id-verification.action.try-again": "حاول مرة أخرى", + "persona.id-verification.alert.fail.not-required.heading": "التحقق من الهوية غير مطلوب", + "persona.id-verification.alert.fail.not-required.enrollment.body": "أنت لست مسجلاً في دورة تتطلب التحقق من الهوية.", + "persona.id-verification.alert.fail.not-required.name-change.body": "ليس لديك طلب تغيير اسم قيد الانتظار. انتقل إلى إعدادات الحساب لتغيير اسمك.", + "persona.id-verification.alert.fail.cannot-start.heading": "لا يمكن بدء التحقق من الهوية", + "persona.id-verification.alert.fail.cannot-start.managed-profile.body": "يتم إدارة إعدادات حسابك بواسطة {managerTitle}. إذا كنت ترغب في تغيير اسم حسابك، يرجى الاتصال بمسؤول {profileDataManager} للمساعدة.", + "persona.id-verification.alert.fail.something-went-wrong.heading": "حدث خطأ ما", + "persona.id-verification.alert.fail.something-went-wrong.body": "تعذر تحميل التحقق من الهوية. يرجى المحاولة مرة أخرى. إذا استمرت المشكلة، يرجى الاتصال بفريق الدعم لدينا." +} From d5f0cf2702e2096b1530c367c77625bad6276531 Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:28:17 +0000 Subject: [PATCH 28/32] chore: add AI translated strings for frontend-plugin-recommendations --- .../src/i18n/messages/ar.json | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 translations/frontend-plugin-recommendations/src/i18n/messages/ar.json diff --git a/translations/frontend-plugin-recommendations/src/i18n/messages/ar.json b/translations/frontend-plugin-recommendations/src/i18n/messages/ar.json new file mode 100644 index 0000000000..9a09cc3163 --- /dev/null +++ b/translations/frontend-plugin-recommendations/src/i18n/messages/ar.json @@ -0,0 +1,8 @@ +{ + "learner-dash.loadingScreenReader": "جار التحميل...", + "RecommendationsPanel.recommendationsHeading": "توصيات لك", + "RecommendationsPanel.popularCoursesHeading": "الدورات الشائعة", + "RecommendationsPanel.exploreCoursesButton": "استكشف الدورات", + "WidgetSidebar.lookingForChallengePrompt": "هل تبحث عن تحدٍ جديد؟", + "WidgetSidebar.findCoursesButton": "اعثر على دورة {arrow}" +} From 8aa659c2230161dc4111104d7b3d3f3f1ffe6e38 Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:28:30 +0000 Subject: [PATCH 29/32] chore: add AI translated strings for frontend-platform --- translations/frontend-platform/src/i18n/messages/ar.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/frontend-platform/src/i18n/messages/ar.json b/translations/frontend-platform/src/i18n/messages/ar.json index 9f7868311c..c517341de7 100644 --- a/translations/frontend-platform/src/i18n/messages/ar.json +++ b/translations/frontend-platform/src/i18n/messages/ar.json @@ -1,4 +1,4 @@ { "unexpected.error.message.text": "حدث خطأ غير متوقع. الرجاء الضغط على الزر أدناه لتحديث الصفحة.", "unexpected.error.button.text": "حاول ثانية" -} \ No newline at end of file +} From 289c8ba31f14e902d65d1f7728653e8546d67ed3 Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:28:42 +0000 Subject: [PATCH 30/32] chore: add AI translated strings for paragon --- .../paragon/src/i18n/messages/ar.json | 198 ++++-------------- 1 file changed, 40 insertions(+), 158 deletions(-) diff --git a/translations/paragon/src/i18n/messages/ar.json b/translations/paragon/src/i18n/messages/ar.json index 6b970f08b8..0ef4fd888b 100644 --- a/translations/paragon/src/i18n/messages/ar.json +++ b/translations/paragon/src/i18n/messages/ar.json @@ -1,160 +1,42 @@ { - "Hyperlink.externalLinkAltText": { - "string": "في علامة تبويب جديدة" - }, - "Hyperlink.externalLinkTitle": { - "string": "يفتح في علامة تبويب جديدة" - }, - "dropzone.Dropzone.invalidSizeLessError": { - "developer_comment": "A message shown when a file with less than minimum allowed size is being uploaded in Dropzone.", - "string": "يجب أن يكون حجم الملف أكبر من {size}." - }, - "dropzone.Dropzone.invalidSizeMoreError": { - "developer_comment": "A message shown when a file with more than maximum allowed size is being uploaded in Dropzone.", - "string": "يجب أن يكون حجم الملف أقل من {size}." - }, - "dropzone.Dropzone.invalidType": { - "developer_comment": "A message shown when a file with wrong MIME type is being uploaded.", - "string": "نوع الملف يجب ان يكون {count, plural, one {{typeString} الملف} other {احدى من {typeString} ملفات}}." - }, - "dropzone.Dropzone.multipleDraggedError": { - "developer_comment": "A message shown when multiple files are dragged over Dropzone.", - "string": "يسمح بتحميل ملف واحد فقط." - }, - "dropzone.Dropzone.unexpectedValidationError": { - "developer_comment": "A message shown in case file validation in Dropzone component for unknown reason.", - "string": "حدثت مشكلة غير متوقعة أثناء التحقق من صحة الملف. رجاءً حاول مرة اخرى." - }, - "dropzone.Dropzone.uploadError": { - "developer_comment": "A message shown in case file upload in Dropzone component results in an error.", - "string": "حدثت مشكلة أثناء رفع ملفك. رجاءً حاول مجددًا." - }, - "pgn.Alert.closeLabel": { - "developer_comment": "Label of a close button on Alert component", - "string": "تجاهل" - }, - "pgn.CardCarousel.scrollToNext": { - "developer_comment": "نصّ لإتاحة الاستخدام لذوي الاحتياجات الخاصة يصف إجراء التنقّل إلى العنصر التالي في لافتة متغيرة", - "string": "انتقِل إلى التالي" - }, - "pgn.CardCarousel.scrollToPrevious": { - "developer_comment": "نصّ لإتاحة الاستخدام لذوي الاحتياجات الخاصة يَصِف إجراء التنقل إلى العُنصر السابق في لافتة متغيرة", - "string": "انتقِل إلى السابق" - }, - "pgn.ChipCarousel.scrollToNext": { - "developer_comment": "نصّ لإتاحة الاستخدام لذوي الاحتياجات الخاصة يصف إجراء التنقّل إلى العنصر التالي في لافتة متغيرة", - "string": "انتقِل إلى التالي" - }, - "pgn.ChipCarousel.scrollToPrevious": { - "developer_comment": "نصّ لإتاحة الاستخدام لذوي الاحتياجات الخاصة يَصِف إجراء التنقل إلى العنصر السابق في لافتة متغيرة", - "string": "انتقِل إلى السابق" - }, - "pgn.DataTable.BaseSelectionStatus.allSelectedText": { - "developer_comment": "Text for all selected label", - "string": "تم تحديد الـ {numSelectedRows} كلها" - }, - "pgn.DataTable.BaseSelectionStatus.clearSelectionText": { - "developer_comment": "A label of clear all selection button.", - "string": "إلغاء التحديد" - }, - "pgn.DataTable.BaseSelectionStatus.selectAllText": { - "developer_comment": "A label for select all button.", - "string": "تحديد الـ {itemCount} كلها" - }, - "pgn.DataTable.BaseSelectionStatus.selectedText": { - "developer_comment": "Text for selected label", - "string": "تم تحديد {numSelectedRows}" - }, - "pgn.DataTable.BaseSelectionStatus.selectedTextPaginated": { - "developer_comment": "Text for selected label when table is paginated", - "string": "تم تحديد {numSelectedRows} ({numSelectedRowsOnPage} موضح أدناه)" - }, - "pgn.DataTable.ExpandAll.collapseAllLabel": { - "developer_comment": "Label of an action button that collapses all expandable rows of DataTable.", - "string": "طي الكل" - }, - "pgn.DataTable.ExpandAll.expandAllLabel": { - "developer_comment": "Label of an action button that expands all expandable rows of DataTable.", - "string": "وسِّع الكل" - }, - "pgn.DataTable.FilterStatus.clearFiltersText": { - "developer_comment": "A text that appears on the `Clear filters` button", - "string": "إزالة المرشحات" - }, - "pgn.DataTable.RowStatus.statusText": { - "developer_comment": "A text describing how many rows is shown in the table", - "string": "عرض {firstRow} - {lastRow} من {itemCount}." - }, - "pgn.DataTable.SidebarFilters.title": { - "developer_comment": "Title for the sidebar filters component", - "string": "المرشحات" - }, - "pgn.DataTable.filtersDropdownTitle": { - "developer_comment": "عنوان القائمة المنسدلة للمُرشِّحات", - "string": "المُرشِّحات" - }, - "pgn.DataTable.paginationLabel": { - "developer_comment": "الاسم المُتاح لعنصر التنقّل في مُكوّن ترقيم الصفحات", - "string": "ترقيم صفحات الجدول" - }, - "pgn.Dropzone.DefaultContent.fileSizeBetween": { - "developer_comment": "A message shown when uploaded file's size must be in given range.", - "string": "بين {sizeMin} و {sizeMax}" - }, - "pgn.Dropzone.DefaultContent.fileSizeMax": { - "developer_comment": "A message shown when uploaded file's size must be more than some value.", - "string": "أقصى قيمة {sizeMax}" - }, - "pgn.Dropzone.DefaultContent.fileSizeMin": { - "developer_comment": "A message shown when uploaded file's size must be more than some value.", - "string": "أدنى قيمة {sizeMin}" - }, - "pgn.Dropzone.DefaultContent.fileTypeRestriction": { - "developer_comment": "A message shown when uploaded file must be of certain type(s).", - "string": "ارفع ملفات {count ، plural, one {{firstPart}} other {{firstPart} أو {secondPart}}}." - }, - "pgn.Dropzone.DefaultContent.label": { - "developer_comment": "A text that appears as a label for input of Dropzone component.", - "string": "اسحب الملف وأفلِته هنا أو انقُر لاختيار ملف تريد رفعه." - }, - "pgn.Dropzone.UploadProgress.cancelLabel": { - "developer_comment": "Label of a cancel button that is shown during file upload in Dropzone component.", - "string": "ألغِ" - }, - "pgn.Dropzone.UploadProgress.uploadLabel": { - "developer_comment": "A text that is shown near a progress bar during file upload in Dropzone component.", - "string": "يجري رفع {filename}." - }, - "pgn.FormAutosuggest.iconButtonClosed": { - "developer_comment": "A message shown in case when the autosuggest menu is opened.", - "string": "إغلاق قائمة الخيارات" - }, - "pgn.FormAutosuggest.iconButtonOpened": { - "developer_comment": "A message shown in case when the autosuggest menu is closed.", - "string": "فتح قائمة الخيارات" - }, - "pgn.Modal.closeButon": { - "developer_comment": "الاسم المتاح لزِر الإغلاق في النافذة المشروطة لمُربّع الحوار", - "string": "أغلِق" - }, - "pgn.ProductTour.Checkpoint.bottom-position-text": { - "developer_comment": "رسالة قارئ الشاشة لإعلام المستخدم بوصوله إلى بداية صفحة جولة المنتج.", - "string": "نهاية صفحة الخطوة {step}" - }, - "pgn.ProductTour.Checkpoint.page-index-text": { - "developer_comment": "دليل الصفحة الذي يُظهر موقعك ضِمن ProductTour", - "string": "{step} من {totalSteps}" - }, - "pgn.ProductTour.Checkpoint.top-position-text": { - "developer_comment": "رسالة قارئ الشاشة لإعلام المستخدم بوصوله إلى بداية صفحة جولة المنتج.", - "string": "بداية صفحة الخُطوة {step}" - }, - "pgn.ProductTour.checkpointHeader.close": { - "developer_comment": "أغلِق النص البديل لمُكوّن ProductTour", - "string": "أنهِ الجولة" - }, - "pgn.Toast.closeLabel": { - "developer_comment": "Close label for Toast component", - "string": "إغلاق " - } + "Hyperlink.externalLinkAltText": "في تبويب جديد", + "Hyperlink.externalLinkTitle": "يفتح في تبويب جديد", + "dropzone.Dropzone.invalidSizeLessError": "يجب أن يكون الملف أكبر من {size}.", + "dropzone.Dropzone.invalidSizeMoreError": "يجب أن يكون الملف أقل من {size}.", + "dropzone.Dropzone.invalidType": "يجب أن يكون نوع الملف {count, plural, one {{typeString} ملف} other {أحد ملفات {typeString}}}.", + "dropzone.Dropzone.multipleDraggedError": "يسمح برفع ملف واحد فقط.", + "dropzone.Dropzone.unexpectedValidationError": "حدثت مشكلة غير متوقعة أثناء التحقق من الملف. يرجى المحاولة مرة أخرى.", + "dropzone.Dropzone.uploadError": "حدثت مشكلة أثناء رفع ملفك. يرجى المحاولة مرة أخرى.", + "pgn.Alert.closeLabel": "إغلاق", + "pgn.CardCarousel.scrollToNext": "التمرير إلى التالي", + "pgn.CardCarousel.scrollToPrevious": "التمرير إلى السابق", + "pgn.ChipCarousel.scrollToNext": "التمرير إلى التالي", + "pgn.ChipCarousel.scrollToPrevious": "التمرير إلى السابق", + "pgn.DataTable.BaseSelectionStatus.allSelectedText": "تم اختيار جميع {numSelectedRows}", + "pgn.DataTable.BaseSelectionStatus.clearSelectionText": "إلغاء التحديد", + "pgn.DataTable.BaseSelectionStatus.selectAllText": "تحديد جميع {itemCount}", + "pgn.DataTable.BaseSelectionStatus.selectedText": "تم اختيار {numSelectedRows}", + "pgn.DataTable.BaseSelectionStatus.selectedTextPaginated": "تم اختيار {numSelectedRows} (يُظهر {numSelectedRowsOnPage} أدناه)", + "pgn.DataTable.ExpandAll.collapseAllLabel": "طي الكل", + "pgn.DataTable.ExpandAll.expandAllLabel": "توسيع الكل", + "pgn.DataTable.FilterStatus.clearFiltersText": "مسح الفلاتر", + "pgn.DataTable.RowStatus.statusText": "عرض {firstRow} - {lastRow} من {itemCount}.", + "pgn.DataTable.SidebarFilters.title": "الفلاتر", + "pgn.DataTable.filtersDropdownTitle": "الفلاتر", + "pgn.DataTable.paginationLabel": "ترقيم الصفحات", + "pgn.Dropzone.DefaultContent.fileSizeBetween": "بين {sizeMin} و {sizeMax}", + "pgn.Dropzone.DefaultContent.fileSizeMax": "بحد أقصى {sizeMax}", + "pgn.Dropzone.DefaultContent.fileSizeMin": "بحد أدنى {sizeMin}", + "pgn.Dropzone.DefaultContent.fileTypeRestriction": "تحميل {count, plural, one {{firstPart} ملف} other {{firstPart} أو {secondPart} ملفات}}", + "pgn.Dropzone.DefaultContent.label": "قم بسحب وإفلات الملف هنا أو انقر للرفع.", + "pgn.Dropzone.UploadProgress.cancelLabel": "إلغاء", + "pgn.Dropzone.UploadProgress.uploadLabel": "جاري رفع {filename}.", + "pgn.FormAutosuggest.iconButtonClosed": "إغلاق قائمة الخيارات", + "pgn.FormAutosuggest.iconButtonOpened": "فتح قائمة الخيارات", + "pgn.Modal.closeButon": "إغلاق", + "pgn.ProductTour.Checkpoint.bottom-position-text": "أسفل الخطوة {step}", + "pgn.ProductTour.Checkpoint.page-index-text": "{step} من {totalSteps}", + "pgn.ProductTour.Checkpoint.top-position-text": "أعلى الخطوة {step}", + "pgn.ProductTour.checkpointHeader.close": "إغلاق الجولة", + "pgn.Toast.closeLabel": "إغلاق" } From 199c3f8c46cf1a4f009da707223293229a3d6528 Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:29:01 +0000 Subject: [PATCH 31/32] chore: add AI translated strings for studio-frontend --- translations/studio-frontend/src/i18n/messages/ar.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/studio-frontend/src/i18n/messages/ar.json b/translations/studio-frontend/src/i18n/messages/ar.json index 275b86d764..9db33ce9dd 100644 --- a/translations/studio-frontend/src/i18n/messages/ar.json +++ b/translations/studio-frontend/src/i18n/messages/ar.json @@ -173,4 +173,4 @@ "paginationPage": "الصفحة", "paginationCurrentPage": "الصفحة الحالية", "paginationOf": "من" -} \ No newline at end of file +} From f0d96ee9eae1fd664a2c2cdf2a6c52b41dd67ca4 Mon Sep 17 00:00:00 2001 From: edx-translations-app Date: Tue, 14 Apr 2026 14:29:27 +0000 Subject: [PATCH 32/32] chore: add AI translated strings for frontend-plugin-framework --- .../frontend-plugin-framework/src/i18n/messages/ar.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 translations/frontend-plugin-framework/src/i18n/messages/ar.json diff --git a/translations/frontend-plugin-framework/src/i18n/messages/ar.json b/translations/frontend-plugin-framework/src/i18n/messages/ar.json new file mode 100644 index 0000000000..44660bc148 --- /dev/null +++ b/translations/frontend-plugin-framework/src/i18n/messages/ar.json @@ -0,0 +1,6 @@ +{ + "loading.message.text": "جارِ التحميل", + "unexpected.error.message.text": "يا إلهي، هذا ليس جيدًا على الإطلاق.", + "raised.error.message.text": "هناك خطأ في مكون React", + "hello.world.message.text": "مرحبًا بالعالم!" +}