@project-sunbird/collection-editor-react 0.1.32 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +55 -0
- package/dist/api/content.d.ts +1 -1
- package/dist/api/framework.d.ts +0 -1
- package/dist/api/hierarchy.d.ts +7 -1
- package/dist/collection-editor-react.css +1 -0
- package/dist/collection-editor.umd.js +144 -104
- package/dist/components/AssetBrowser/AssetBrowser.d.ts +0 -1
- package/dist/components/AssignPageNumber/AssignPageNumber.d.ts +0 -1
- package/dist/components/BulkUpload/CsvUpload.d.ts +0 -1
- package/dist/components/Collaborators/ManageCollaborators.d.ts +0 -1
- package/dist/components/CollectionEditor/CollectionEditor.d.ts +0 -1
- package/dist/components/ContentPlayer/ContentPlayer.d.ts +0 -1
- package/dist/components/ContextualEditor/AssessmentDetailPanel.d.ts +7 -0
- package/dist/components/ContextualEditor/Breadcrumb.d.ts +0 -1
- package/dist/components/ContextualEditor/ContentEditForm.d.ts +0 -1
- package/dist/components/ContextualEditor/ContextualEditor.d.ts +0 -1
- package/dist/components/ContextualEditor/TabBar.d.ts +0 -1
- package/dist/components/ContextualEditor/TitleAppIcon.d.ts +0 -1
- package/dist/components/Dialcode/DialcodePanel.d.ts +0 -1
- package/dist/components/LibraryDock/FilterChips.d.ts +0 -1
- package/dist/components/LibraryDock/LibraryCard.d.ts +0 -1
- package/dist/components/LibraryDock/LibraryDock.d.ts +0 -1
- package/dist/components/LibraryDock/LibraryFilterPanel.d.ts +0 -1
- package/dist/components/LibraryDock/LibraryPreviewPanel.d.ts +0 -1
- package/dist/components/OutlineTree/OutlineTree.d.ts +0 -1
- package/dist/components/OutlineTree/TreeNode.d.ts +0 -1
- package/dist/components/ProgressStatus/ProgressStatus.d.ts +0 -1
- package/dist/components/ResourceReorder/ResourceReorderDialog.d.ts +0 -1
- package/dist/components/SparkMetaForm/FormSection.d.ts +0 -1
- package/dist/components/SparkMetaForm/SparkMetaForm.d.ts +0 -1
- package/dist/components/SparkMetaForm/fields/AppIconField.d.ts +0 -1
- package/dist/components/SparkMetaForm/fields/AppIconPickerModal.d.ts +0 -1
- package/dist/components/SparkMetaForm/fields/ChipGroupField.d.ts +0 -1
- package/dist/components/SparkMetaForm/fields/DateTimeField.d.ts +0 -1
- package/dist/components/SparkMetaForm/fields/DialcodeInputField.d.ts +0 -1
- package/dist/components/SparkMetaForm/fields/KeywordSuggestField.d.ts +0 -1
- package/dist/components/SparkMetaForm/fields/LicenseSelectField.d.ts +0 -1
- package/dist/components/SparkMetaForm/fields/MultiSelectField.d.ts +0 -1
- package/dist/components/SparkMetaForm/fields/NestedSelectField.d.ts +0 -1
- package/dist/components/SparkMetaForm/fields/PolicyCardField.d.ts +9 -0
- package/dist/components/SparkMetaForm/fields/RadioField.d.ts +0 -1
- package/dist/components/SparkMetaForm/fields/SelectField.d.ts +0 -1
- package/dist/components/SparkMetaForm/fields/TextField.d.ts +0 -1
- package/dist/components/SparkMetaForm/hooks/useCascade.d.ts +0 -1
- package/dist/components/SparkMetaForm/hooks/useFieldPrepare.d.ts +9 -1
- package/dist/components/SparkMetaForm/hooks/useFieldPrepare.learningPath.test.d.ts +1 -0
- package/dist/components/SplitBuilderShell/SplitBuilderShell.d.ts +0 -1
- package/dist/components/Topbar/Topbar.d.ts +0 -1
- package/dist/components/UnitContentList/AssessmentSlotItem.d.ts +7 -0
- package/dist/components/UnitContentList/ContentRow.d.ts +0 -1
- package/dist/components/UnitContentList/SkillPicker.d.ts +15 -0
- package/dist/components/UnitContentList/UnitContentList.d.ts +1 -1
- package/dist/components/modals/ConfirmDialog.d.ts +0 -1
- package/dist/components/modals/PublishChecklist.d.ts +0 -1
- package/dist/components/modals/QualityParamsModal.d.ts +0 -1
- package/dist/components/modals/UnsavedChangesModal.d.ts +0 -1
- package/dist/components/shared/Button.d.ts +0 -1
- package/dist/components/shared/Card.d.ts +0 -1
- package/dist/components/shared/Chip.d.ts +0 -1
- package/dist/components/shared/CourseDetailsPanel.d.ts +11 -0
- package/dist/components/shared/DropZone.d.ts +0 -1
- package/dist/components/shared/LanguageSelector/LanguageSelector.d.ts +0 -1
- package/dist/components/shared/LearningPathIcon.d.ts +6 -0
- package/dist/components/shared/Spinner.d.ts +0 -1
- package/dist/components/shared/index.d.ts +2 -0
- package/dist/dev-mock-api.d.ts +1 -0
- package/dist/hooks/useAssessmentSlots.d.ts +16 -0
- package/dist/hooks/useChannelData.d.ts +0 -1
- package/dist/hooks/useContentType.d.ts +0 -1
- package/dist/hooks/useEditorInit.d.ts +0 -1
- package/dist/hooks/useFramework.d.ts +0 -1
- package/dist/hooks/useLabels.d.ts +0 -1
- package/dist/hooks/useLibrary.d.ts +30 -1
- package/dist/hooks/useLibrary.test.d.ts +1 -0
- package/dist/hooks/useLibraryTargetLabel.d.ts +1 -0
- package/dist/hooks/useQumlContent.d.ts +0 -1
- package/dist/hooks/useSaveHierarchy.d.ts +6 -0
- package/dist/hooks/useSaveHierarchy.test.d.ts +1 -0
- package/dist/hooks/useSkillCategory.d.ts +24 -0
- package/dist/hooks/useSkillCategory.test.d.ts +1 -0
- package/dist/hooks/useSkillScope.d.ts +14 -0
- package/dist/hooks/useSkillScope.test.d.ts +1 -0
- package/dist/hooks/useToolbarActions.d.ts +0 -1
- package/dist/hooks/useTree.d.ts +0 -1
- package/dist/i18n/index.d.ts +0 -1
- package/dist/i18n/locales/ar.json.d.ts +92 -0
- package/dist/i18n/locales/en.json.d.ts +92 -0
- package/dist/i18n/locales/fr.json.d.ts +92 -0
- package/dist/i18n/locales/pt.json.d.ts +92 -0
- package/dist/index.cjs +144 -104
- package/dist/index.d.ts +1 -0
- package/dist/index.js +10861 -11055
- package/dist/services/quml/QumlPlayerService.d.ts +0 -1
- package/dist/store/editor.store.d.ts +3 -1
- package/dist/store/i18n.store.d.ts +0 -1
- package/dist/store/library.store.d.ts +0 -1
- package/dist/store/tree.store.d.ts +8 -3
- package/dist/store/tree.store.learningPath.test.d.ts +1 -0
- package/dist/store/ui.store.d.ts +2 -0
- package/dist/types/content.d.ts +2 -0
- package/dist/types/framework.d.ts +4 -0
- package/dist/types/profile.d.ts +30 -0
- package/dist/types/profile.test.d.ts +1 -0
- package/dist/utils/lpStructure.d.ts +151 -0
- package/dist/utils/lpStructure.test.d.ts +1 -0
- package/dist/utils/validateRequiredFields.d.ts +0 -1
- package/dist/web-component/configRoundTrip.test.d.ts +1 -0
- package/package.json +16 -4
- package/dist/style.css +0 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ISkillCategory } from './useSkillCategory';
|
|
2
|
+
import { INode } from '../types/editor';
|
|
3
|
+
export interface ISkillScope {
|
|
4
|
+
scope: string[];
|
|
5
|
+
source: 'prior' | 'manual';
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* LP skill scope, sole source of truth: the prior assessment's skill-category
|
|
9
|
+
* tags when one is linked; otherwise every Level falls back to manual
|
|
10
|
+
* selection from the framework's full skill catalog. Never derived from
|
|
11
|
+
* linked courses or their content (learning_path_plan.md §3 item 1).
|
|
12
|
+
*/
|
|
13
|
+
export declare function resolveSkillScope(rootNode: INode | undefined, skillCategory: ISkillCategory | null, treeCache: Record<string, Record<string, unknown>>): ISkillScope;
|
|
14
|
+
export declare function useSkillScope(): ISkillScope;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/hooks/useTree.d.ts
CHANGED
package/dist/i18n/index.d.ts
CHANGED
|
@@ -454,6 +454,98 @@ declare const _default: {
|
|
|
454
454
|
},
|
|
455
455
|
"spinner": {
|
|
456
456
|
"loading": "جارٍ التحميل"
|
|
457
|
+
},
|
|
458
|
+
"learningPath": {
|
|
459
|
+
"profileBadgeLabel": "مسار التعلم",
|
|
460
|
+
"pathStructureLabel": "بنية المسار",
|
|
461
|
+
"addLevelButton": "إضافة مستوى",
|
|
462
|
+
"levelNumberPrefix": "المستوى {n}",
|
|
463
|
+
"priorAssessmentLabel": "التقييم المسبق",
|
|
464
|
+
"priorAssessmentHint": "مطلوب دائمًا · لا يُحسب كمستوى",
|
|
465
|
+
"outcomeAssessmentLabel": "تقييم النتائج",
|
|
466
|
+
"outcomeAssessmentHint": "يؤكد النتيجة · لا يُحسب كمستوى",
|
|
467
|
+
"skillCheckBadge": "فحص المهارة",
|
|
468
|
+
"outcomeCheckBadge": "فحص النتيجة",
|
|
469
|
+
"assessmentCourseMeta": "مقرر · بنك أسئلة فقط",
|
|
470
|
+
"addAssessmentSlotButton": "إضافة {label} — مقرر يحتوي على بنك أسئلة فقط",
|
|
471
|
+
"removeAssessmentSlotButton": "إزالة",
|
|
472
|
+
"deletePriorAssessmentConfirm": "حذف التقييم المسبق يزيل الدرجة التي يعتمد عليها التخطي التكيفي لهذا المسار. هل تريد الاستمرار؟",
|
|
473
|
+
"deleteAssessmentSlotConfirm": "هل تريد إزالة مقرر التقييم هذا من المسار؟",
|
|
474
|
+
"courseNameUnavailable": "تفاصيل المقرر غير متوفرة",
|
|
475
|
+
"notAssessmentCourseToast": "\"{name}\" ليس مقررًا يحتوي على بنك أسئلة فقط، لذا لا يمكن استخدامه كتقييم.",
|
|
476
|
+
"bothSlotsFilledToast": "تم تعبئة تقييمي المسبق والنتائج بالفعل.",
|
|
477
|
+
"assessmentCheckFailedToast": "تعذر التحقق من هذا المقرر. حاول مرة أخرى.",
|
|
478
|
+
"skillsHeading": "المهارات",
|
|
479
|
+
"skillsOutOfScopeWarning": "خارج النطاق، يرجى إعادة الاختيار: {skills}",
|
|
480
|
+
"searchSkillsPlaceholder": "البحث عن المهارات",
|
|
481
|
+
"noSkillsAvailable": "لا توجد مهارات متاحة حتى الآن",
|
|
482
|
+
"noMatchingSkills": "لا توجد مهارات مطابقة",
|
|
483
|
+
"noSkillsSelectedYet": "لم يتم تحديد مهارات",
|
|
484
|
+
"removeSkillAriaLabel": "إزالة {skill}",
|
|
485
|
+
"skillScopeFromPriorNote": "اختر المهارات — من التقييم المسبق — التي يبنيها هذا المستوى. تُصفّي المكتبة المقررات وفق هذه المهارات.",
|
|
486
|
+
"skillScopeManualNote": "لا يوجد تقييم مسبق حتى الآن، فاختر من كتالوج المهارات العام. تُصفّي المكتبة المقررات وفق هذه المهارات.",
|
|
487
|
+
"skillsCoveredHeading": "المهارات المشمولة",
|
|
488
|
+
"skillsCoveredDescription": "جميع المهارات الموسومة عبر التقييم المسبق والمستويات وتقييم النتائج لهذا المسار.",
|
|
489
|
+
"noSkillsYet": "لا توجد مهارات بعد — أضف مقررات لرؤية المهارات هنا.",
|
|
490
|
+
"levelCountLabel": "{count} مستوى",
|
|
491
|
+
"levelCountLabelPlural": "{count} مستويات",
|
|
492
|
+
"courseCountLabel": "{count} مقرر",
|
|
493
|
+
"courseCountLabelPlural": "{count} مقررات",
|
|
494
|
+
"backToPathButton": "العودة إلى المسار",
|
|
495
|
+
"backToLevelButton": "العودة إلى {label}",
|
|
496
|
+
"courseDetailsLoading": "جارٍ تحميل تفاصيل المقرر…",
|
|
497
|
+
"courseDetailsEmpty": "لا يحتوي هذا المقرر على وحدات بعد.",
|
|
498
|
+
"courseDetailsError": "تعذر تحميل تفاصيل المقرر.",
|
|
499
|
+
"courseDetailsCardTitle": "تفاصيل المقرر",
|
|
500
|
+
"courseTitleFieldLabel": "العنوان",
|
|
501
|
+
"courseDescriptionFieldLabel": "الوصف",
|
|
502
|
+
"noCourseDescriptionPlaceholder": "لا يتوفر وصف.",
|
|
503
|
+
"unitsSectionLabel": "الوحدات",
|
|
504
|
+
"unitsSectionDescription": "تجمع الوحدات المحتوى المرتبط؛ كل عنصر محتوى موسوم بالمهارات التي يبنيها.",
|
|
505
|
+
"unitTopicsFieldLabel": "المواضيع",
|
|
506
|
+
"contentCountLabel": "{count} عنصر محتوى",
|
|
507
|
+
"contentCountLabelPlural": "{count} عناصر محتوى",
|
|
508
|
+
"courseUnitTopicsLabel": "{count} موضوع",
|
|
509
|
+
"courseUnitTopicsLabelPlural": "{count} مواضيع",
|
|
510
|
+
"verifyingAssessmentCourses": "جارٍ التحقق من مقررات التقييم…",
|
|
511
|
+
"resolveBeforePublishing": "حل هذه النقاط قبل النشر:",
|
|
512
|
+
"assessmentsCardHeading": "التقييم المسبق وتقييم النتائج",
|
|
513
|
+
"assessmentsCardDescription": "أضف المقررات التي تحتوي على بنك أسئلة فقط والتي تفتح وتغلق هذا المسار.",
|
|
514
|
+
"assessmentNotAddedYet": "لم تتم إضافته بعد — اختر مقررًا يحتوي على بنك أسئلة فقط من المكتبة.",
|
|
515
|
+
"viewCourseMenuItem": "عرض",
|
|
516
|
+
"priorAssessmentExplainerTitle": "لماذا لا يمكن تخطي هذا",
|
|
517
|
+
"priorAssessmentExplainerBody": "درجة بنك الأسئلة هذا هي ما يعتمد عليه كل مستوى لتحديد التخطي — ولا يوجد حتى الآن ما يُقارن به، لذا يُنفَّذ بالكامل دائمًا.",
|
|
518
|
+
"priorAssessmentPurposeLabel": "يحدد خط أساس المهارة",
|
|
519
|
+
"outcomeAssessmentExplainerTitle": "يُغلق المسار",
|
|
520
|
+
"outcomeAssessmentExplainerBody": "النجاح في بنك الأسئلة هذا هو ما يُصادق على اكتساب المهارة للمسار بأكمله — ودرجته هي ما تظهر في شهادة المتعلم.",
|
|
521
|
+
"outcomeUnlocksHint": "يُفتح بعد المستوى الأخير",
|
|
522
|
+
"assessmentCourseSectionTitle": "المقرر",
|
|
523
|
+
"assessmentCourseSectionDescription": "مقرر واحد يكون محتواه الوحيد بنك أسئلة — لا تنتمي هنا أي أنواع محتوى أخرى.",
|
|
524
|
+
"libraryOpenLevelToAdd": "افتح مستوى للإضافة",
|
|
525
|
+
"libraryAddToLevel": "إضافة إلى {level}",
|
|
526
|
+
"libraryAddPriorAssessmentCourse": "إضافة مقرر التقييم المسبق",
|
|
527
|
+
"libraryAddOutcomeAssessmentCourse": "إضافة مقرر تقييم النتائج",
|
|
528
|
+
"policyStrictLabel": "صارمة",
|
|
529
|
+
"policyStrictDescription": "يُنهي كل متعلم كل مستوى، بالترتيب — بصرف النظر عن درجة التقييم المسبق.",
|
|
530
|
+
"policyAdaptiveLabel": "تكيفية",
|
|
531
|
+
"policyAdaptiveDescriptionPre": "يمكن تخطي مستوى، ولكن فقط عندما تتجاوز درجة المتعلم في التقييم المسبق",
|
|
532
|
+
"policyAdaptiveDescriptionPost": " حد الإعفاء.",
|
|
533
|
+
"policyPriorLearningLabel": "التعلم المسبق",
|
|
534
|
+
"policyPriorLearningDescription": "يمكن أن يستند التخطي أيضًا إلى مهارات يمتلكها المتعلم بالفعل — شهادة موثقة أو مقرر سابق — لا التقييم وحده.",
|
|
535
|
+
"selectLevelFirstToast": "اختر مستوى أولاً",
|
|
536
|
+
"selectLevelFromOutlineToast": "افتح مستوى في هيكل المسار لإضافة المقررات — لا يمكن إضافة المقررات إلى المسار نفسه أو داخل مقرر آخر.",
|
|
537
|
+
"selectCurriculumFirstToast": "حدد المنهج (Curriculum) لهذا المسار قبل إضافة المقررات.",
|
|
538
|
+
"noCurriculumEmptyTitle": "لم يتم تحديد منهج",
|
|
539
|
+
"noCurriculumEmptyHint": "حدد منهجًا لهذا المسار لتصفح المقررات.",
|
|
540
|
+
"noSkillsEmptyTitle": "لم يتم تحديد مهارات",
|
|
541
|
+
"noSkillsEmptyHint": "حدد مهارات لهذا المستوى لرؤية المقررات المطابقة.",
|
|
542
|
+
"itemAlreadyInPathToast": "\"{name}\" موجود بالفعل في مسار التعلم هذا",
|
|
543
|
+
"addedToLevelSuccess": "تمت إضافة \"{name}\" إلى المستوى",
|
|
544
|
+
"dropOntoLevelError": "أفلِت على مستوى لإضافة مقرر",
|
|
545
|
+
"dropOntoPathError": "أفلِت المقررات على مستوى، وليس على مسار التعلم مباشرة.",
|
|
546
|
+
"priorSlotFilledToast": "التقييم المسبق يحتوي على مقرر بالفعل — أزِله قبل إضافة مقرر آخر.",
|
|
547
|
+
"outcomeSlotFilledToast": "التقييم الختامي يحتوي على مقرر بالفعل — أزِله قبل إضافة مقرر آخر.",
|
|
548
|
+
"coursesRemovedFrameworkChangeToast": "تمت إزالة {count} من المقررات المرتبطة بمنهج مختلف من هذا المسار."
|
|
457
549
|
}
|
|
458
550
|
}
|
|
459
551
|
;
|
|
@@ -454,6 +454,98 @@ declare const _default: {
|
|
|
454
454
|
},
|
|
455
455
|
"spinner": {
|
|
456
456
|
"loading": "Loading"
|
|
457
|
+
},
|
|
458
|
+
"learningPath": {
|
|
459
|
+
"profileBadgeLabel": "Learning Path",
|
|
460
|
+
"pathStructureLabel": "Path Structure",
|
|
461
|
+
"addLevelButton": "Add Level",
|
|
462
|
+
"levelNumberPrefix": "Level {n}",
|
|
463
|
+
"priorAssessmentLabel": "Prior Assessment",
|
|
464
|
+
"priorAssessmentHint": "Always required · not a level",
|
|
465
|
+
"outcomeAssessmentLabel": "Outcome Assessment",
|
|
466
|
+
"outcomeAssessmentHint": "Confirms outcome · not a level",
|
|
467
|
+
"skillCheckBadge": "Skill check",
|
|
468
|
+
"outcomeCheckBadge": "Outcome check",
|
|
469
|
+
"assessmentCourseMeta": "Course · Question set only",
|
|
470
|
+
"addAssessmentSlotButton": "Add {label} — a course with only a question set",
|
|
471
|
+
"removeAssessmentSlotButton": "Remove",
|
|
472
|
+
"deletePriorAssessmentConfirm": "Deleting the Prior Assessment removes the score this path's Adaptive skips are based on. Continue?",
|
|
473
|
+
"deleteAssessmentSlotConfirm": "Remove this assessment course from the path?",
|
|
474
|
+
"courseNameUnavailable": "Course details unavailable",
|
|
475
|
+
"notAssessmentCourseToast": "\"{name}\" isn't a question-set-only course, so it can't be used as an assessment.",
|
|
476
|
+
"bothSlotsFilledToast": "Both Prior and Outcome Assessment slots are already filled.",
|
|
477
|
+
"assessmentCheckFailedToast": "Could not verify this course. Please try again.",
|
|
478
|
+
"skillsHeading": "Skills",
|
|
479
|
+
"skillsOutOfScopeWarning": "Out of scope, please re-select: {skills}",
|
|
480
|
+
"searchSkillsPlaceholder": "Search skills",
|
|
481
|
+
"noSkillsAvailable": "No skills available yet",
|
|
482
|
+
"noMatchingSkills": "No matching skills",
|
|
483
|
+
"noSkillsSelectedYet": "No skills selected",
|
|
484
|
+
"removeSkillAriaLabel": "Remove {skill}",
|
|
485
|
+
"skillScopeFromPriorNote": "Pick which skills — from the Prior Assessment — this level builds. The Library filters courses to these skills.",
|
|
486
|
+
"skillScopeManualNote": "No Prior Assessment yet, so pick from the general skill catalog. The Library filters courses to these skills.",
|
|
487
|
+
"skillsCoveredHeading": "Skills covered",
|
|
488
|
+
"skillsCoveredDescription": "All skills tagged across this path's Prior Assessment, levels, and Outcome Assessment.",
|
|
489
|
+
"noSkillsYet": "No skills yet — add courses to see skills here.",
|
|
490
|
+
"levelCountLabel": "{count} level",
|
|
491
|
+
"levelCountLabelPlural": "{count} levels",
|
|
492
|
+
"courseCountLabel": "{count} course",
|
|
493
|
+
"courseCountLabelPlural": "{count} courses",
|
|
494
|
+
"backToPathButton": "Back to path",
|
|
495
|
+
"backToLevelButton": "Back to {label}",
|
|
496
|
+
"courseDetailsLoading": "Loading course details…",
|
|
497
|
+
"courseDetailsEmpty": "This course has no units yet.",
|
|
498
|
+
"courseDetailsError": "Could not load course details.",
|
|
499
|
+
"courseDetailsCardTitle": "Course details",
|
|
500
|
+
"courseTitleFieldLabel": "Title",
|
|
501
|
+
"courseDescriptionFieldLabel": "Description",
|
|
502
|
+
"noCourseDescriptionPlaceholder": "No description available.",
|
|
503
|
+
"unitsSectionLabel": "Units",
|
|
504
|
+
"unitsSectionDescription": "Units group related content; each content item is tagged with the skills it builds.",
|
|
505
|
+
"unitTopicsFieldLabel": "Topics",
|
|
506
|
+
"contentCountLabel": "{count} content",
|
|
507
|
+
"contentCountLabelPlural": "{count} contents",
|
|
508
|
+
"courseUnitTopicsLabel": "{count} topic",
|
|
509
|
+
"courseUnitTopicsLabelPlural": "{count} topics",
|
|
510
|
+
"verifyingAssessmentCourses": "Verifying assessment courses…",
|
|
511
|
+
"resolveBeforePublishing": "Resolve these before publishing:",
|
|
512
|
+
"assessmentsCardHeading": "Prior & outcome assessments",
|
|
513
|
+
"assessmentsCardDescription": "Add the question-set-only courses that open and close this path.",
|
|
514
|
+
"assessmentNotAddedYet": "Not added yet — pick a question-set-only course from the Library.",
|
|
515
|
+
"viewCourseMenuItem": "View",
|
|
516
|
+
"priorAssessmentExplainerTitle": "Why this can't be skipped",
|
|
517
|
+
"priorAssessmentExplainerBody": "This question set's score is what every level reads to decide a skip — there's nothing to compare against yet, so it always runs in full.",
|
|
518
|
+
"priorAssessmentPurposeLabel": "Sets the skill baseline",
|
|
519
|
+
"outcomeAssessmentExplainerTitle": "Closes the path",
|
|
520
|
+
"outcomeAssessmentExplainerBody": "Passing this question set is what certifies the skill gain for the whole path — its score is what appears on the learner's certificate.",
|
|
521
|
+
"outcomeUnlocksHint": "Unlocks after the last level",
|
|
522
|
+
"assessmentCourseSectionTitle": "Course",
|
|
523
|
+
"assessmentCourseSectionDescription": "A single course whose only content is a question set — no other content types belong here.",
|
|
524
|
+
"libraryOpenLevelToAdd": "Open a level to add",
|
|
525
|
+
"libraryAddToLevel": "Add to {level}",
|
|
526
|
+
"libraryAddPriorAssessmentCourse": "Add Prior Assessment course",
|
|
527
|
+
"libraryAddOutcomeAssessmentCourse": "Add Outcome Assessment course",
|
|
528
|
+
"policyStrictLabel": "Strict",
|
|
529
|
+
"policyStrictDescription": "Every learner completes every level, in order — regardless of prior assessment score.",
|
|
530
|
+
"policyAdaptiveLabel": "Adaptive",
|
|
531
|
+
"policyAdaptiveDescriptionPre": "A level can be skipped, but only when the learner's score on the Prior Assessment",
|
|
532
|
+
"policyAdaptiveDescriptionPost": " clears its waiver threshold.",
|
|
533
|
+
"policyPriorLearningLabel": "Prior learning",
|
|
534
|
+
"policyPriorLearningDescription": "Skips can also draw on skills the learner already holds — a verified certificate or prior course — not the assessment alone.",
|
|
535
|
+
"selectLevelFirstToast": "Select a level first",
|
|
536
|
+
"selectLevelFromOutlineToast": "Open a level in the path structure to add courses — courses cannot be added to the path itself or under another course.",
|
|
537
|
+
"selectCurriculumFirstToast": "Select a Curriculum for this path before adding courses.",
|
|
538
|
+
"noCurriculumEmptyTitle": "No Curriculum selected",
|
|
539
|
+
"noCurriculumEmptyHint": "Select a Curriculum for this path to browse courses.",
|
|
540
|
+
"noSkillsEmptyTitle": "No skills selected",
|
|
541
|
+
"noSkillsEmptyHint": "Select skills for this level to see matching courses.",
|
|
542
|
+
"itemAlreadyInPathToast": "\"{name}\" is already in this learning path",
|
|
543
|
+
"addedToLevelSuccess": "Added \"{name}\" to level",
|
|
544
|
+
"dropOntoLevelError": "Drop onto a level to add a course",
|
|
545
|
+
"dropOntoPathError": "Drop courses onto a level, not directly on the learning path.",
|
|
546
|
+
"priorSlotFilledToast": "The Prior Assessment already has a course — remove it before adding a different one.",
|
|
547
|
+
"outcomeSlotFilledToast": "The Outcome Assessment already has a course — remove it before adding a different one.",
|
|
548
|
+
"coursesRemovedFrameworkChangeToast": "{count} course(s) tagged to a different curriculum were removed from this path."
|
|
457
549
|
}
|
|
458
550
|
}
|
|
459
551
|
;
|
|
@@ -454,6 +454,98 @@ declare const _default: {
|
|
|
454
454
|
},
|
|
455
455
|
"spinner": {
|
|
456
456
|
"loading": "Chargement"
|
|
457
|
+
},
|
|
458
|
+
"learningPath": {
|
|
459
|
+
"profileBadgeLabel": "Parcours d'apprentissage",
|
|
460
|
+
"pathStructureLabel": "Structure du parcours",
|
|
461
|
+
"addLevelButton": "Ajouter un niveau",
|
|
462
|
+
"levelNumberPrefix": "Niveau {n}",
|
|
463
|
+
"priorAssessmentLabel": "Évaluation préalable",
|
|
464
|
+
"priorAssessmentHint": "Toujours requise · ne compte pas comme un niveau",
|
|
465
|
+
"outcomeAssessmentLabel": "Évaluation finale",
|
|
466
|
+
"outcomeAssessmentHint": "Confirme le résultat · ne compte pas comme un niveau",
|
|
467
|
+
"skillCheckBadge": "Vérification des compétences",
|
|
468
|
+
"outcomeCheckBadge": "Vérification du résultat",
|
|
469
|
+
"assessmentCourseMeta": "Cours · Questionnaire uniquement",
|
|
470
|
+
"addAssessmentSlotButton": "Ajouter {label} — un cours contenant uniquement un questionnaire",
|
|
471
|
+
"removeAssessmentSlotButton": "Retirer",
|
|
472
|
+
"deletePriorAssessmentConfirm": "Supprimer l'évaluation préalable retire le score sur lequel se basent les sauts adaptatifs de ce parcours. Continuer ?",
|
|
473
|
+
"deleteAssessmentSlotConfirm": "Retirer ce cours d'évaluation du parcours ?",
|
|
474
|
+
"courseNameUnavailable": "Détails du cours indisponibles",
|
|
475
|
+
"notAssessmentCourseToast": "« {name} » n'est pas un cours composé uniquement d'un questionnaire, il ne peut donc pas être utilisé comme évaluation.",
|
|
476
|
+
"bothSlotsFilledToast": "Les évaluations préalable et finale sont déjà renseignées.",
|
|
477
|
+
"assessmentCheckFailedToast": "Impossible de vérifier ce cours. Veuillez réessayer.",
|
|
478
|
+
"skillsHeading": "Compétences",
|
|
479
|
+
"skillsOutOfScopeWarning": "Hors du périmètre, veuillez resélectionner : {skills}",
|
|
480
|
+
"searchSkillsPlaceholder": "Rechercher des compétences",
|
|
481
|
+
"noSkillsAvailable": "Aucune compétence disponible pour le moment",
|
|
482
|
+
"noMatchingSkills": "Aucune compétence correspondante",
|
|
483
|
+
"noSkillsSelectedYet": "Aucune compétence sélectionnée",
|
|
484
|
+
"removeSkillAriaLabel": "Supprimer {skill}",
|
|
485
|
+
"skillScopeFromPriorNote": "Choisissez les compétences — issues de l'évaluation préalable — que ce niveau développe. La bibliothèque filtre les cours selon ces compétences.",
|
|
486
|
+
"skillScopeManualNote": "Aucune évaluation préalable pour le moment — choisissez dans le catalogue général des compétences. La bibliothèque filtre les cours selon ces compétences.",
|
|
487
|
+
"skillsCoveredHeading": "Compétences couvertes",
|
|
488
|
+
"skillsCoveredDescription": "Toutes les compétences associées à l'évaluation préalable, aux niveaux et à l'évaluation finale de ce parcours.",
|
|
489
|
+
"noSkillsYet": "Aucune compétence pour le moment — ajoutez des cours pour voir les compétences ici.",
|
|
490
|
+
"levelCountLabel": "{count} niveau",
|
|
491
|
+
"levelCountLabelPlural": "{count} niveaux",
|
|
492
|
+
"courseCountLabel": "{count} cours",
|
|
493
|
+
"courseCountLabelPlural": "{count} cours",
|
|
494
|
+
"backToPathButton": "Retour au parcours",
|
|
495
|
+
"backToLevelButton": "Retour à {label}",
|
|
496
|
+
"courseDetailsLoading": "Chargement des détails du cours…",
|
|
497
|
+
"courseDetailsEmpty": "Ce cours ne contient pas encore d'unités.",
|
|
498
|
+
"courseDetailsError": "Impossible de charger les détails du cours.",
|
|
499
|
+
"courseDetailsCardTitle": "Détails du cours",
|
|
500
|
+
"courseTitleFieldLabel": "Titre",
|
|
501
|
+
"courseDescriptionFieldLabel": "Description",
|
|
502
|
+
"noCourseDescriptionPlaceholder": "Aucune description disponible.",
|
|
503
|
+
"unitsSectionLabel": "Unités",
|
|
504
|
+
"unitsSectionDescription": "Les unités regroupent le contenu associé ; chaque contenu est associé aux compétences qu'il développe.",
|
|
505
|
+
"unitTopicsFieldLabel": "Sujets",
|
|
506
|
+
"contentCountLabel": "{count} contenu",
|
|
507
|
+
"contentCountLabelPlural": "{count} contenus",
|
|
508
|
+
"courseUnitTopicsLabel": "{count} sujet",
|
|
509
|
+
"courseUnitTopicsLabelPlural": "{count} sujets",
|
|
510
|
+
"verifyingAssessmentCourses": "Vérification des cours d'évaluation…",
|
|
511
|
+
"resolveBeforePublishing": "Résolvez les points suivants avant de publier :",
|
|
512
|
+
"assessmentsCardHeading": "Évaluations préalable et finale",
|
|
513
|
+
"assessmentsCardDescription": "Ajoutez les cours composés uniquement d'un questionnaire qui ouvrent et ferment ce parcours.",
|
|
514
|
+
"assessmentNotAddedYet": "Pas encore ajouté — choisissez un cours composé uniquement d'un questionnaire dans la bibliothèque.",
|
|
515
|
+
"viewCourseMenuItem": "Voir",
|
|
516
|
+
"priorAssessmentExplainerTitle": "Pourquoi cela ne peut pas être ignoré",
|
|
517
|
+
"priorAssessmentExplainerBody": "Le score de ce questionnaire est ce que chaque niveau utilise pour décider d'un saut — il n'y a encore rien à comparer, donc il s'exécute toujours en entier.",
|
|
518
|
+
"priorAssessmentPurposeLabel": "Établit la base de compétences",
|
|
519
|
+
"outcomeAssessmentExplainerTitle": "Termine le parcours",
|
|
520
|
+
"outcomeAssessmentExplainerBody": "Réussir ce questionnaire certifie l'acquisition de la compétence pour l'ensemble du parcours — son score est celui qui apparaît sur le certificat de l'apprenant.",
|
|
521
|
+
"outcomeUnlocksHint": "Se débloque après le dernier niveau",
|
|
522
|
+
"assessmentCourseSectionTitle": "Cours",
|
|
523
|
+
"assessmentCourseSectionDescription": "Un seul cours dont le seul contenu est un questionnaire — aucun autre type de contenu n'a sa place ici.",
|
|
524
|
+
"libraryOpenLevelToAdd": "Ouvrez un niveau pour ajouter",
|
|
525
|
+
"libraryAddToLevel": "Ajouter à {level}",
|
|
526
|
+
"libraryAddPriorAssessmentCourse": "Ajouter le cours d'évaluation préalable",
|
|
527
|
+
"libraryAddOutcomeAssessmentCourse": "Ajouter le cours d'évaluation finale",
|
|
528
|
+
"policyStrictLabel": "Strict",
|
|
529
|
+
"policyStrictDescription": "Chaque apprenant termine chaque niveau, dans l'ordre — quel que soit le score de l'évaluation préalable.",
|
|
530
|
+
"policyAdaptiveLabel": "Adaptatif",
|
|
531
|
+
"policyAdaptiveDescriptionPre": "Un niveau peut être ignoré, mais seulement si le score de l'apprenant à l'Évaluation préalable",
|
|
532
|
+
"policyAdaptiveDescriptionPost": " dépasse le seuil de dispense.",
|
|
533
|
+
"policyPriorLearningLabel": "Acquis antérieurs",
|
|
534
|
+
"policyPriorLearningDescription": "Les sauts peuvent aussi s'appuyer sur des compétences déjà détenues par l'apprenant — un certificat vérifié ou un cours antérieur — pas seulement l'évaluation.",
|
|
535
|
+
"selectLevelFirstToast": "Sélectionnez d'abord un niveau",
|
|
536
|
+
"selectLevelFromOutlineToast": "Ouvrez un niveau dans la structure du parcours pour ajouter des cours — les cours ne peuvent pas être ajoutés au parcours lui-même ni sous un autre cours.",
|
|
537
|
+
"selectCurriculumFirstToast": "Sélectionnez un programme (Curriculum) pour ce parcours avant d'ajouter des cours.",
|
|
538
|
+
"noCurriculumEmptyTitle": "Aucun programme sélectionné",
|
|
539
|
+
"noCurriculumEmptyHint": "Sélectionnez un programme (Curriculum) pour ce parcours afin de parcourir les cours.",
|
|
540
|
+
"noSkillsEmptyTitle": "Aucune compétence sélectionnée",
|
|
541
|
+
"noSkillsEmptyHint": "Sélectionnez des compétences pour ce niveau afin de voir les cours correspondants.",
|
|
542
|
+
"itemAlreadyInPathToast": "« {name} » fait déjà partie de ce parcours d'apprentissage",
|
|
543
|
+
"addedToLevelSuccess": "« {name} » ajouté au niveau",
|
|
544
|
+
"dropOntoLevelError": "Déposez sur un niveau pour ajouter un cours",
|
|
545
|
+
"dropOntoPathError": "Déposez les cours sur un niveau, pas directement sur le parcours d'apprentissage.",
|
|
546
|
+
"priorSlotFilledToast": "L'Évaluation préalable contient déjà un cours — retirez-le avant d'en ajouter un autre.",
|
|
547
|
+
"outcomeSlotFilledToast": "L'Évaluation finale contient déjà un cours — retirez-le avant d'en ajouter un autre.",
|
|
548
|
+
"coursesRemovedFrameworkChangeToast": "{count} cours associé(s) à un autre curriculum ont été retirés de ce parcours."
|
|
457
549
|
}
|
|
458
550
|
}
|
|
459
551
|
;
|
|
@@ -454,6 +454,98 @@ declare const _default: {
|
|
|
454
454
|
},
|
|
455
455
|
"spinner": {
|
|
456
456
|
"loading": "Carregando"
|
|
457
|
+
},
|
|
458
|
+
"learningPath": {
|
|
459
|
+
"profileBadgeLabel": "Trilha de Aprendizagem",
|
|
460
|
+
"pathStructureLabel": "Estrutura da trilha",
|
|
461
|
+
"addLevelButton": "Adicionar nível",
|
|
462
|
+
"levelNumberPrefix": "Nível {n}",
|
|
463
|
+
"priorAssessmentLabel": "Avaliação prévia",
|
|
464
|
+
"priorAssessmentHint": "Sempre obrigatória · não conta como um nível",
|
|
465
|
+
"outcomeAssessmentLabel": "Avaliação de resultado",
|
|
466
|
+
"outcomeAssessmentHint": "Confirma o resultado · não conta como um nível",
|
|
467
|
+
"skillCheckBadge": "Verificação de habilidade",
|
|
468
|
+
"outcomeCheckBadge": "Verificação de resultado",
|
|
469
|
+
"assessmentCourseMeta": "Curso · Apenas banco de questões",
|
|
470
|
+
"addAssessmentSlotButton": "Adicionar {label} — um curso com apenas um banco de questões",
|
|
471
|
+
"removeAssessmentSlotButton": "Remover",
|
|
472
|
+
"deletePriorAssessmentConfirm": "Excluir a Avaliação prévia remove a pontuação usada pelos avanços adaptativos deste percurso. Continuar?",
|
|
473
|
+
"deleteAssessmentSlotConfirm": "Remover este curso de avaliação do percurso?",
|
|
474
|
+
"courseNameUnavailable": "Detalhes do curso indisponíveis",
|
|
475
|
+
"notAssessmentCourseToast": "\"{name}\" não é um curso composto somente por um banco de questões, portanto não pode ser usado como avaliação.",
|
|
476
|
+
"bothSlotsFilledToast": "As avaliações prévia e de resultado já estão preenchidas.",
|
|
477
|
+
"assessmentCheckFailedToast": "Não foi possível verificar este curso. Tente novamente.",
|
|
478
|
+
"skillsHeading": "Habilidades",
|
|
479
|
+
"skillsOutOfScopeWarning": "Fora do escopo, selecione novamente: {skills}",
|
|
480
|
+
"searchSkillsPlaceholder": "Buscar habilidades",
|
|
481
|
+
"noSkillsAvailable": "Nenhuma habilidade disponível ainda",
|
|
482
|
+
"noMatchingSkills": "Nenhuma habilidade correspondente",
|
|
483
|
+
"noSkillsSelectedYet": "Nenhuma habilidade selecionada",
|
|
484
|
+
"removeSkillAriaLabel": "Remover {skill}",
|
|
485
|
+
"skillScopeFromPriorNote": "Escolha quais habilidades — da Avaliação prévia — este nível desenvolve. A biblioteca filtra os cursos por essas habilidades.",
|
|
486
|
+
"skillScopeManualNote": "Ainda não há Avaliação prévia, então escolha no catálogo geral de habilidades. A biblioteca filtra os cursos por essas habilidades.",
|
|
487
|
+
"skillsCoveredHeading": "Habilidades abordadas",
|
|
488
|
+
"skillsCoveredDescription": "Todas as habilidades marcadas na Avaliação prévia, nos níveis e na Avaliação de resultado deste percurso.",
|
|
489
|
+
"noSkillsYet": "Nenhuma habilidade ainda — adicione cursos para ver as habilidades aqui.",
|
|
490
|
+
"levelCountLabel": "{count} nível",
|
|
491
|
+
"levelCountLabelPlural": "{count} níveis",
|
|
492
|
+
"courseCountLabel": "{count} curso",
|
|
493
|
+
"courseCountLabelPlural": "{count} cursos",
|
|
494
|
+
"backToPathButton": "Voltar ao percurso",
|
|
495
|
+
"backToLevelButton": "Voltar a {label}",
|
|
496
|
+
"courseDetailsLoading": "Carregando detalhes do curso…",
|
|
497
|
+
"courseDetailsEmpty": "Este curso ainda não tem unidades.",
|
|
498
|
+
"courseDetailsError": "Não foi possível carregar os detalhes do curso.",
|
|
499
|
+
"courseDetailsCardTitle": "Detalhes do curso",
|
|
500
|
+
"courseTitleFieldLabel": "Título",
|
|
501
|
+
"courseDescriptionFieldLabel": "Descrição",
|
|
502
|
+
"noCourseDescriptionPlaceholder": "Nenhuma descrição disponível.",
|
|
503
|
+
"unitsSectionLabel": "Unidades",
|
|
504
|
+
"unitsSectionDescription": "As unidades agrupam conteúdo relacionado; cada item de conteúdo é marcado com as habilidades que desenvolve.",
|
|
505
|
+
"unitTopicsFieldLabel": "Tópicos",
|
|
506
|
+
"contentCountLabel": "{count} conteúdo",
|
|
507
|
+
"contentCountLabelPlural": "{count} conteúdos",
|
|
508
|
+
"courseUnitTopicsLabel": "{count} tópico",
|
|
509
|
+
"courseUnitTopicsLabelPlural": "{count} tópicos",
|
|
510
|
+
"verifyingAssessmentCourses": "Verificando cursos de avaliação…",
|
|
511
|
+
"resolveBeforePublishing": "Resolva os itens abaixo antes de publicar:",
|
|
512
|
+
"assessmentsCardHeading": "Avaliações prévia e de resultado",
|
|
513
|
+
"assessmentsCardDescription": "Adicione os cursos compostos apenas por banco de questões que abrem e encerram este percurso.",
|
|
514
|
+
"assessmentNotAddedYet": "Ainda não adicionado — escolha um curso composto apenas por banco de questões na Biblioteca.",
|
|
515
|
+
"viewCourseMenuItem": "Ver",
|
|
516
|
+
"priorAssessmentExplainerTitle": "Por que isso não pode ser pulado",
|
|
517
|
+
"priorAssessmentExplainerBody": "A pontuação deste banco de questões é o que cada nível usa para decidir um avanço — ainda não há nada para comparar, então ele sempre é executado por completo.",
|
|
518
|
+
"priorAssessmentPurposeLabel": "Define a linha de base de habilidades",
|
|
519
|
+
"outcomeAssessmentExplainerTitle": "Encerra o percurso",
|
|
520
|
+
"outcomeAssessmentExplainerBody": "Passar neste banco de questões certifica o ganho de habilidade de todo o percurso — sua pontuação é o que aparece no certificado do aprendiz.",
|
|
521
|
+
"outcomeUnlocksHint": "Desbloqueia após o último nível",
|
|
522
|
+
"assessmentCourseSectionTitle": "Curso",
|
|
523
|
+
"assessmentCourseSectionDescription": "Um único curso cujo único conteúdo é um banco de questões — nenhum outro tipo de conteúdo pertence aqui.",
|
|
524
|
+
"libraryOpenLevelToAdd": "Abra um nível para adicionar",
|
|
525
|
+
"libraryAddToLevel": "Adicionar a {level}",
|
|
526
|
+
"libraryAddPriorAssessmentCourse": "Adicionar curso de Avaliação prévia",
|
|
527
|
+
"libraryAddOutcomeAssessmentCourse": "Adicionar curso de Avaliação de resultado",
|
|
528
|
+
"policyStrictLabel": "Estrita",
|
|
529
|
+
"policyStrictDescription": "Todo aprendiz completa todos os níveis, em ordem — independentemente da pontuação da avaliação prévia.",
|
|
530
|
+
"policyAdaptiveLabel": "Adaptativa",
|
|
531
|
+
"policyAdaptiveDescriptionPre": "Um nível pode ser pulado, mas somente quando a pontuação do aprendiz na Avaliação prévia",
|
|
532
|
+
"policyAdaptiveDescriptionPost": " atinge o limite de dispensa.",
|
|
533
|
+
"policyPriorLearningLabel": "Aprendizagem prévia",
|
|
534
|
+
"policyPriorLearningDescription": "Os avanços também podem se basear em habilidades que o aprendiz já possui — um certificado verificado ou curso anterior — não apenas na avaliação.",
|
|
535
|
+
"selectLevelFirstToast": "Selecione um nível primeiro",
|
|
536
|
+
"selectLevelFromOutlineToast": "Abra um nível na estrutura da trilha para adicionar cursos — cursos não podem ser adicionados à própria trilha nem dentro de outro curso.",
|
|
537
|
+
"selectCurriculumFirstToast": "Selecione um Currículo para esta trilha antes de adicionar cursos.",
|
|
538
|
+
"noCurriculumEmptyTitle": "Nenhum currículo selecionado",
|
|
539
|
+
"noCurriculumEmptyHint": "Selecione um currículo para esta trilha para navegar pelos cursos.",
|
|
540
|
+
"noSkillsEmptyTitle": "Nenhuma habilidade selecionada",
|
|
541
|
+
"noSkillsEmptyHint": "Selecione habilidades para este nível para ver os cursos correspondentes.",
|
|
542
|
+
"itemAlreadyInPathToast": "\"{name}\" já está nesta trilha de aprendizagem",
|
|
543
|
+
"addedToLevelSuccess": "\"{name}\" adicionado ao nível",
|
|
544
|
+
"dropOntoLevelError": "Solte sobre um nível para adicionar um curso",
|
|
545
|
+
"dropOntoPathError": "Solte os cursos sobre um nível, não diretamente na trilha de aprendizagem.",
|
|
546
|
+
"priorSlotFilledToast": "A Avaliação prévia já tem um curso — remova-o antes de adicionar outro.",
|
|
547
|
+
"outcomeSlotFilledToast": "A Avaliação final já tem um curso — remova-o antes de adicionar outro.",
|
|
548
|
+
"coursesRemovedFrameworkChangeToast": "{count} curso(s) vinculados a outro currículo foram removidos desta trilha."
|
|
457
549
|
}
|
|
458
550
|
}
|
|
459
551
|
;
|