feat: add sequential progression and video watch lesson completion
Gate student content by completion order, track per-video watch progress with seek enforcement, and auto-complete lessons at the configured threshold. Show ring progress in the lesson header, keep watch progress on rewatch, and sync progression locks client-side so the next item unlocks after completion.
This commit is contained in:
@@ -38,7 +38,7 @@ export const PUBLIC_ROUTES = [
|
||||
'^/csp-report$'
|
||||
];
|
||||
|
||||
export const PUBLIC_API_ROUTES = ['/api/polar', '/api/lmz', '/api/verify'];
|
||||
export const PUBLIC_API_ROUTES = ['/api/polar/webhook', '/api/lmz', '/api/verify'];
|
||||
|
||||
export const ROUTES_TO_HIDE_NAV = [
|
||||
`^${ROUTE.LOGIN}$`,
|
||||
|
||||
@@ -352,7 +352,8 @@
|
||||
"thumbnail_regen_started": "Regenererer thumbnails...",
|
||||
"thumbnail_regen_failed": "Kunne ikke genskabe miniaturebilleder",
|
||||
"transcript_saved": "Udskrift opdateret",
|
||||
"transcript_save_failed": "Kunne ikke gemme transskription"
|
||||
"transcript_save_failed": "Kunne ikke gemme transskription",
|
||||
"transcription_already_running": "Et transskriptionsjob er allerede i gang for denne video"
|
||||
},
|
||||
"tags": {
|
||||
"group_created": "Taggruppe oprettet",
|
||||
@@ -743,6 +744,10 @@
|
||||
"drag": "Træk og slip etiketterne for at omarrangere dine materialefaner",
|
||||
"content_grouping_title": "Indholdsgruppering",
|
||||
"content_grouping_description": "Gruppelektioner og øvelser efter afsnit i indholdslisten.",
|
||||
"progression_mode_title": "Elevprogression",
|
||||
"progression_mode_description": "Styr om elever kan få adgang til alt ulåst indhold eller skal fuldføre elementer i rækkefølge.",
|
||||
"progression_mode_free": "Fri — ulåst indhold er tilgængeligt",
|
||||
"progression_mode_sequential": "Sekventiel — fuldfør tidligere elementer for at låse næste op",
|
||||
"lesson_download": "Hent lektioner",
|
||||
"available": "Gør lektionen tilgængelig til download i pdf for tilmeldte studerende",
|
||||
"course_download": "Kursus download",
|
||||
@@ -1022,7 +1027,14 @@
|
||||
"field_template": "Skabelon",
|
||||
"field_accent": "Accent",
|
||||
"field_signatories": "Underskrivere",
|
||||
"customize_design": "Tilpas design"
|
||||
"customize_design": "Tilpas design",
|
||||
"signatory_one_toggle": "Vis underskriver 1",
|
||||
"signatory_two_toggle": "Vis underskriver 2",
|
||||
"signature_upload": "Signaturbillede",
|
||||
"signature_upload_hint": "Upload et signaturbillede (valgfrit)",
|
||||
"signature_dont_crop": "Beskær ikke",
|
||||
"signature_upload_in_progress": "Vent på, at signaturoverførslen er færdig, før du gemmer.",
|
||||
"save_failed": "Kunne ikke gemme certifikatdesignet. Tjek formularen og prøv igen."
|
||||
}
|
||||
},
|
||||
"people": {
|
||||
@@ -1758,7 +1770,11 @@
|
||||
"collapse_section": "Skjul afsnit",
|
||||
"expand_section": "Udvid afsnit"
|
||||
},
|
||||
"more": "Handlinger"
|
||||
"more": "Handlinger",
|
||||
"settings_completion_policy": "Fuldførelsesregel",
|
||||
"settings_completion_submitted": "Indsendt - enhver indsendelse tæller",
|
||||
"settings_completion_passed": "Bestået - minimumsscore kræves",
|
||||
"settings_pass_threshold": "Beståelsesgrænse (%)"
|
||||
},
|
||||
"new_exercise_modal": {
|
||||
"heading": "Ny øvelse",
|
||||
@@ -1803,6 +1819,9 @@
|
||||
"button": "knappen",
|
||||
"button_done": "Færdig",
|
||||
"tabs": {
|
||||
"settings": {
|
||||
"title": "Indstillinger"
|
||||
},
|
||||
"document": {
|
||||
"title": "Dokumenter",
|
||||
"add_document": "Tilføj dokument",
|
||||
@@ -1918,7 +1937,8 @@
|
||||
"kind_google_drive": "Google Drev",
|
||||
"kind_generic": "Indlejret",
|
||||
"course_fallback": "Kursus",
|
||||
"menu_aria": "Video muligheder"
|
||||
"menu_aria": "Video muligheder",
|
||||
"transcription_in_progress": "(Transskriptionsgenerering i gang)"
|
||||
},
|
||||
"view_transcript": "Se transskription",
|
||||
"playback_error": "Indlæsningen af denne video mislykkedes.",
|
||||
@@ -1926,7 +1946,8 @@
|
||||
"generate_1080": "Generer 1080p",
|
||||
"generate_1080_in_progress": "Genererer 1080p...",
|
||||
"generate_1080_ready": "1080p tilgængelig",
|
||||
"generate_1080_unavailable": "1080p ikke tilgængelig for denne kildevideo"
|
||||
"generate_1080_unavailable": "1080p ikke tilgængelig for denne kildevideo",
|
||||
"loading": "Indlæser video..."
|
||||
},
|
||||
"slide": {
|
||||
"title": "Slide",
|
||||
@@ -1985,6 +2006,38 @@
|
||||
},
|
||||
"content_locked_title": "Dette indhold er låst",
|
||||
"content_locked_description": "Din instruktør har ikke låst dette indhold op endnu. Fuldfør tidligere indhold, eller tjek tilbage senere.",
|
||||
"content_progression_locked_title": "Fuldfør tidligere indhold først",
|
||||
"content_progression_locked_description": "Dette indhold låses op, når du har fuldført det forrige påkrævede element i kurset.",
|
||||
"content_progression_locked_description_lesson": "Denne lektion låses op, når du har fuldført det forrige påkrævede element i kurset.",
|
||||
"content_progression_locked_description_exercise": "Denne øvelse låses op, når du har fuldført det forrige påkrævede element i kurset.",
|
||||
"completion_policy": {
|
||||
"label": "Fuldførelsesregel",
|
||||
"manual_label": "Manuel",
|
||||
"manual_description": "Elever markerer selv lektionen som fuldført.",
|
||||
"video_watch_label": "Videoafspilning",
|
||||
"video_watch_description": "Lektionen fuldføres automatisk, når elever har set de valgte videoer.",
|
||||
"none_label": "Ingen",
|
||||
"none_description": "Denne lektion blokerer ikke kursusprogression.",
|
||||
"watch_threshold": "Segrænse (%)"
|
||||
},
|
||||
"settings": {
|
||||
"progression": {
|
||||
"heading": "Progression",
|
||||
"intro": "Vælg hvordan elever fuldfører denne lektion og bevæger sig gennem kurset.",
|
||||
"option_guide_heading": "Hvad hver mulighed betyder",
|
||||
"watch_videos_heading": "Videoer der håndhæves",
|
||||
"watch_videos_helper": "Kun uploadede videoer kan håndhæves. YouTube og eksterne indlejringer kan ikke spores.",
|
||||
"watch_videos_empty": "Tilføj en uploadet video i fanen Video for at bruge visningskontrol.",
|
||||
"watch_videos_required": "Vælg mindst én video ved videoafspilning.",
|
||||
"students_only_note": "Disse regler gælder kun for elever. Du kan forhåndsvise og navigere frit som underviser."
|
||||
}
|
||||
},
|
||||
"watch_progress": {
|
||||
"status": "Set {percent}% af videoindholdet",
|
||||
"videos_complete": "Set {percent}% af det krævede videoindhold ({complete} af {required} videoer)",
|
||||
"seek_blocked": "Du kan ikke springe frem i denne video",
|
||||
"complete_via_watch": "Denne lektion fuldføres, når du har set nok af videoen"
|
||||
},
|
||||
"saving": "Gemmer...",
|
||||
"saved": "Gemt",
|
||||
"draft_recovery": "Der blev fundet et ikke-gemt udkast til denne lektion. Vil du gendanne den?",
|
||||
|
||||
@@ -352,7 +352,8 @@
|
||||
"thumbnail_regen_started": "Miniaturansichten werden neu generiert…",
|
||||
"thumbnail_regen_failed": "Die Miniaturansichten konnten nicht neu generiert werden",
|
||||
"transcript_saved": "Transkript aktualisiert",
|
||||
"transcript_save_failed": "Das Transkript konnte nicht gespeichert werden"
|
||||
"transcript_save_failed": "Das Transkript konnte nicht gespeichert werden",
|
||||
"transcription_already_running": "Für dieses Video wird bereits ein Transkriptionsauftrag ausgeführt"
|
||||
},
|
||||
"tags": {
|
||||
"group_created": "Tag-Gruppe erstellt",
|
||||
@@ -743,6 +744,10 @@
|
||||
"drag": "Ziehen Sie die Beschriftungen per Drag-and-Drop, um Ihre Materialregisterkarten neu anzuordnen",
|
||||
"content_grouping_title": "Inhaltsgruppierung",
|
||||
"content_grouping_description": "Gruppieren Sie Lektionen und Übungen nach Abschnitten in der Inhaltsliste.",
|
||||
"progression_mode_title": "Schülerfortschritt",
|
||||
"progression_mode_description": "Steuern Sie, ob Schüler auf alle freigeschalteten Inhalte zugreifen können oder Elemente der Reihe nach abschließen müssen.",
|
||||
"progression_mode_free": "Frei — freigeschaltete Inhalte sind zugänglich",
|
||||
"progression_mode_sequential": "Sequenziell — vorherige Elemente abschließen, um das nächste freizuschalten",
|
||||
"lesson_download": "Lektionen herunterladen",
|
||||
"available": "Stellen Sie die Lektion für registrierte Studierende zum Download im PDF-Format zur Verfügung",
|
||||
"course_download": "Kurs-Download",
|
||||
@@ -1022,7 +1027,14 @@
|
||||
"field_template": "Vorlage",
|
||||
"field_accent": "Akzent",
|
||||
"field_signatories": "Unterzeichner",
|
||||
"customize_design": "Design anpassen"
|
||||
"customize_design": "Design anpassen",
|
||||
"signatory_one_toggle": "Unterzeichner 1 anzeigen",
|
||||
"signatory_two_toggle": "Unterzeichner 2 anzeigen",
|
||||
"signature_upload": "Signaturbild",
|
||||
"signature_upload_hint": "Laden Sie ein Signaturbild hoch (optional)",
|
||||
"signature_dont_crop": "Nicht beschneiden",
|
||||
"signature_upload_in_progress": "Warten Sie, bis der Signatur-Upload abgeschlossen ist, bevor Sie speichern.",
|
||||
"save_failed": "Das Zertifikatdesign konnte nicht gespeichert werden. Überprüfen Sie das Formular und versuchen Sie es erneut."
|
||||
}
|
||||
},
|
||||
"people": {
|
||||
@@ -1758,7 +1770,11 @@
|
||||
"collapse_section": "Abschnitt einklappen",
|
||||
"expand_section": "Abschnitt ausklappen"
|
||||
},
|
||||
"more": "Aktionen"
|
||||
"more": "Aktionen",
|
||||
"settings_completion_policy": "Abschlussregel",
|
||||
"settings_completion_submitted": "Eingereicht – jede Einreichung zählt",
|
||||
"settings_completion_passed": "Bestanden – Mindestpunktzahl erforderlich",
|
||||
"settings_pass_threshold": "Bestehensschwelle (%)"
|
||||
},
|
||||
"new_exercise_modal": {
|
||||
"heading": "Neue Übung",
|
||||
@@ -1803,6 +1819,9 @@
|
||||
"button": "Taste",
|
||||
"button_done": "Fertig",
|
||||
"tabs": {
|
||||
"settings": {
|
||||
"title": "Einstellungen"
|
||||
},
|
||||
"document": {
|
||||
"title": "Dokumente",
|
||||
"add_document": "Dokument hinzufügen",
|
||||
@@ -1918,7 +1937,8 @@
|
||||
"kind_google_drive": "Google Drive",
|
||||
"kind_generic": "Eingebettet",
|
||||
"course_fallback": "Kurs",
|
||||
"menu_aria": "Videooptionen"
|
||||
"menu_aria": "Videooptionen",
|
||||
"transcription_in_progress": "(Transkripterstellung läuft)"
|
||||
},
|
||||
"view_transcript": "Transkription ansehen",
|
||||
"playback_error": "Das Laden dieses Videos ist fehlgeschlagen.",
|
||||
@@ -1926,7 +1946,8 @@
|
||||
"generate_1080": "Generieren Sie 1080p",
|
||||
"generate_1080_in_progress": "Generiert 1080p…",
|
||||
"generate_1080_ready": "1080p verfügbar",
|
||||
"generate_1080_unavailable": "1080p ist für dieses Quellvideo nicht verfügbar"
|
||||
"generate_1080_unavailable": "1080p ist für dieses Quellvideo nicht verfügbar",
|
||||
"loading": "Video wird geladen…"
|
||||
},
|
||||
"slide": {
|
||||
"title": "Rutsche",
|
||||
@@ -1985,6 +2006,38 @@
|
||||
},
|
||||
"content_locked_title": "Dieser Inhalt ist gesperrt",
|
||||
"content_locked_description": "Ihr Kursleiter hat diesen Inhalt noch nicht freigeschaltet. Vervollständigen Sie den vorherigen Inhalt oder schauen Sie später noch einmal vorbei.",
|
||||
"content_progression_locked_title": "Schließen Sie zuerst den vorherigen Inhalt ab",
|
||||
"content_progression_locked_description": "Dieser Inhalt wird freigeschaltet, nachdem Sie den vorherigen erforderlichen Kurseintrag abgeschlossen haben.",
|
||||
"content_progression_locked_description_lesson": "Diese Lektion wird freigeschaltet, nachdem Sie den vorherigen erforderlichen Kurseintrag abgeschlossen haben.",
|
||||
"content_progression_locked_description_exercise": "Diese Übung wird freigeschaltet, nachdem Sie den vorherigen erforderlichen Kurseintrag abgeschlossen haben.",
|
||||
"completion_policy": {
|
||||
"label": "Abschlussregel",
|
||||
"manual_label": "Manuell",
|
||||
"manual_description": "Schüler markieren die Lektion selbst als abgeschlossen.",
|
||||
"video_watch_label": "Video ansehen",
|
||||
"video_watch_description": "Die Lektion wird automatisch abgeschlossen, nachdem Schüler die ausgewählten Videos angesehen haben.",
|
||||
"none_label": "Keine",
|
||||
"none_description": "Diese Lektion blockiert den Kursfortschritt nicht.",
|
||||
"watch_threshold": "Wiedergabeschwelle (%)"
|
||||
},
|
||||
"settings": {
|
||||
"progression": {
|
||||
"heading": "Fortschritt",
|
||||
"intro": "Wählen Sie, wie Schüler diese Lektion abschließen und durch den Kurs gehen.",
|
||||
"option_guide_heading": "Was jede Option bedeutet",
|
||||
"watch_videos_heading": "Zu überwachende Videos",
|
||||
"watch_videos_helper": "Nur hochgeladene Videos können erzwungen werden. YouTube und externe Einbettungen können nicht verfolgt werden.",
|
||||
"watch_videos_empty": "Fügen Sie im Video-Tab ein hochgeladenes Video hinzu, um die Wiedergabeüberwachung zu nutzen.",
|
||||
"watch_videos_required": "Wählen Sie mindestens ein Video für die Video-Wiedergabeüberwachung.",
|
||||
"students_only_note": "Diese Regeln gelten nur für Schüler. Als Lehrkraft können Sie frei in der Vorschau navigieren."
|
||||
}
|
||||
},
|
||||
"watch_progress": {
|
||||
"status": "{percent}% des Videoinhalts angesehen",
|
||||
"videos_complete": "{percent}% des erforderlichen Videoinhalts angesehen ({complete} von {required} Videos)",
|
||||
"seek_blocked": "Sie können in diesem Video nicht vorspulen",
|
||||
"complete_via_watch": "Diese Lektion wird abgeschlossen, wenn Sie genug vom Video gesehen haben"
|
||||
},
|
||||
"saving": "Sparen…",
|
||||
"saved": "Gespeichert",
|
||||
"draft_recovery": "Für diese Lektion wurde ein nicht gespeicherter Entwurf gefunden. Möchten Sie es wiederherstellen?",
|
||||
|
||||
@@ -352,7 +352,8 @@
|
||||
"thumbnail_regen_started": "Regenerando miniaturas…",
|
||||
"thumbnail_regen_failed": "No se pudieron regenerar las miniaturas",
|
||||
"transcript_saved": "Transcripción actualizada",
|
||||
"transcript_save_failed": "No se pudo guardar la transcripción"
|
||||
"transcript_save_failed": "No se pudo guardar la transcripción",
|
||||
"transcription_already_running": "Ya se está realizando un trabajo de transcripción para este vídeo."
|
||||
},
|
||||
"tags": {
|
||||
"group_created": "Grupo de etiquetas creado",
|
||||
@@ -743,6 +744,10 @@
|
||||
"drag": "Arrastre y suelte las etiquetas para reordenar las pestañas de materiales",
|
||||
"content_grouping_title": "Agrupación de contenidos",
|
||||
"content_grouping_description": "Agrupe lecciones y ejercicios por sección en la lista de contenidos.",
|
||||
"progression_mode_title": "Progresión del estudiante",
|
||||
"progression_mode_description": "Controla si los estudiantes pueden acceder a todo el contenido desbloqueado o deben completar los elementos en orden.",
|
||||
"progression_mode_free": "Libre — el contenido desbloqueado es accesible",
|
||||
"progression_mode_sequential": "Secuencial — completar elementos previos para desbloquear el siguiente",
|
||||
"lesson_download": "Lecciones DescargarCargar",
|
||||
"available": "Haga que la lección esté disponible para descargar en pdf para estudiantes registrados",
|
||||
"course_download": "Descarga del curso",
|
||||
@@ -1022,7 +1027,14 @@
|
||||
"field_template": "Plantilla",
|
||||
"field_accent": "acento",
|
||||
"field_signatories": "Firmantes",
|
||||
"customize_design": "Personalizar diseño"
|
||||
"customize_design": "Personalizar diseño",
|
||||
"signatory_one_toggle": "Mostrar firmante 1",
|
||||
"signatory_two_toggle": "Mostrar firmante 2",
|
||||
"signature_upload": "Imagen de firma",
|
||||
"signature_upload_hint": "Sube una imagen de firma (opcional)",
|
||||
"signature_dont_crop": "No recortar",
|
||||
"signature_upload_in_progress": "Espere a que finalice la carga de la firma antes de guardar.",
|
||||
"save_failed": "No se pudo guardar el diseño del certificado. Revisa el formulario y vuelve a intentarlo."
|
||||
}
|
||||
},
|
||||
"people": {
|
||||
@@ -1758,7 +1770,11 @@
|
||||
"collapse_section": "Contraer sección",
|
||||
"expand_section": "Expandir sección"
|
||||
},
|
||||
"more": "Acciones"
|
||||
"more": "Acciones",
|
||||
"settings_completion_policy": "Regla de finalización",
|
||||
"settings_completion_submitted": "Enviado: cualquier envío cuenta",
|
||||
"settings_completion_passed": "Aprobado: puntuación mínima requerida",
|
||||
"settings_pass_threshold": "Umbral de aprobación (%)"
|
||||
},
|
||||
"new_exercise_modal": {
|
||||
"heading": "Nuevo ejercicio",
|
||||
@@ -1803,6 +1819,9 @@
|
||||
"button": "botón",
|
||||
"button_done": "hecho",
|
||||
"tabs": {
|
||||
"settings": {
|
||||
"title": "Configuración"
|
||||
},
|
||||
"document": {
|
||||
"title": "Documentos",
|
||||
"add_document": "Agregar documento",
|
||||
@@ -1918,7 +1937,8 @@
|
||||
"kind_google_drive": "Google Drive",
|
||||
"kind_generic": "Incrustado",
|
||||
"course_fallback": "Curso",
|
||||
"menu_aria": "Opciones de vídeo"
|
||||
"menu_aria": "Opciones de vídeo",
|
||||
"transcription_in_progress": "(Generación de transcripción en progreso)"
|
||||
},
|
||||
"view_transcript": "Ver transcripción",
|
||||
"playback_error": "Error al cargar este vídeo.",
|
||||
@@ -1926,7 +1946,8 @@
|
||||
"generate_1080": "Generar 1080p",
|
||||
"generate_1080_in_progress": "Generando 1080p…",
|
||||
"generate_1080_ready": "1080p disponible",
|
||||
"generate_1080_unavailable": "1080p no disponible para este vídeo fuente"
|
||||
"generate_1080_unavailable": "1080p no disponible para este vídeo fuente",
|
||||
"loading": "Cargando vídeo…"
|
||||
},
|
||||
"slide": {
|
||||
"title": "diapositiva",
|
||||
@@ -1985,6 +2006,38 @@
|
||||
},
|
||||
"content_locked_title": "Este contenido está bloqueado.",
|
||||
"content_locked_description": "Su instructor aún no ha desbloqueado este contenido. Complete el contenido anterior o vuelva a consultarlo más tarde.",
|
||||
"content_progression_locked_title": "Completa primero el contenido anterior",
|
||||
"content_progression_locked_description": "Este contenido se desbloquea después de terminar el elemento requerido anterior del curso.",
|
||||
"content_progression_locked_description_lesson": "Esta lección se desbloquea después de terminar el elemento requerido anterior del curso.",
|
||||
"content_progression_locked_description_exercise": "Este ejercicio se desbloquea después de terminar el elemento requerido anterior del curso.",
|
||||
"completion_policy": {
|
||||
"label": "Regla de finalización",
|
||||
"manual_label": "Manual",
|
||||
"manual_description": "Los estudiantes marcan la lección como completada.",
|
||||
"video_watch_label": "Ver video",
|
||||
"video_watch_description": "La lección se completa automáticamente después de que los estudiantes vean los videos seleccionados.",
|
||||
"none_label": "Ninguna",
|
||||
"none_description": "Esta lección no bloquea la progresión del curso.",
|
||||
"watch_threshold": "Umbral de visualización (%)"
|
||||
},
|
||||
"settings": {
|
||||
"progression": {
|
||||
"heading": "Progresión",
|
||||
"intro": "Elige cómo los estudiantes completan esta lección y avanzan en el curso.",
|
||||
"option_guide_heading": "Qué significa cada opción",
|
||||
"watch_videos_heading": "Videos a aplicar",
|
||||
"watch_videos_helper": "Solo los videos subidos pueden aplicarse. YouTube y las incrustaciones externas no se pueden rastrear.",
|
||||
"watch_videos_empty": "Añade un video subido en la pestaña Video para usar el seguimiento de visualización.",
|
||||
"watch_videos_required": "Selecciona al menos un video para el seguimiento de visualización.",
|
||||
"students_only_note": "Estas reglas aplican solo a estudiantes. Puedes previsualizar y navegar libremente al enseñar."
|
||||
}
|
||||
},
|
||||
"watch_progress": {
|
||||
"status": "Visto el {percent}% del contenido del video",
|
||||
"videos_complete": "Visto el {percent}% del contenido de video requerido ({complete} de {required} videos)",
|
||||
"seek_blocked": "No puedes adelantar en este video",
|
||||
"complete_via_watch": "Esta lección se completa cuando ves suficiente del video"
|
||||
},
|
||||
"saving": "Guardando…",
|
||||
"saved": "Guardado",
|
||||
"draft_recovery": "Se encontró un borrador no guardado para esta lección. ¿Quieres restaurarlo?",
|
||||
|
||||
@@ -352,7 +352,8 @@
|
||||
"thumbnail_regen_started": "Régénération des vignettes…",
|
||||
"thumbnail_regen_failed": "Échec de la régénération des miniatures",
|
||||
"transcript_saved": "Transcription mise à jour",
|
||||
"transcript_save_failed": "Impossible d'enregistrer la transcription"
|
||||
"transcript_save_failed": "Impossible d'enregistrer la transcription",
|
||||
"transcription_already_running": "Un travail de transcription est déjà en cours pour cette vidéo"
|
||||
},
|
||||
"tags": {
|
||||
"group_created": "Groupe de balises créé",
|
||||
@@ -743,6 +744,10 @@
|
||||
"drag": "Faites glisser et déposez les étiquettes pour réorganiser vos onglets de matériaux",
|
||||
"content_grouping_title": "Regroupement de contenu",
|
||||
"content_grouping_description": "Cours collectifs et exercices par section dans la liste des contenus.",
|
||||
"progression_mode_title": "Progression des étudiants",
|
||||
"progression_mode_description": "Contrôlez si les étudiants peuvent accéder à tout le contenu débloqué ou doivent terminer les éléments dans l'ordre.",
|
||||
"progression_mode_free": "Libre — le contenu débloqué est accessible",
|
||||
"progression_mode_sequential": "Séquentiel — terminer les éléments précédents pour débloquer le suivant",
|
||||
"lesson_download": "Téléchargement des leçons",
|
||||
"available": "Rendre la leçon disponible en téléchargement en pdf pour les étudiants inscrits",
|
||||
"course_download": "Téléchargement du cours",
|
||||
@@ -1022,7 +1027,14 @@
|
||||
"field_template": "Modèle",
|
||||
"field_accent": "Accent",
|
||||
"field_signatories": "Signataires",
|
||||
"customize_design": "Personnaliser le design"
|
||||
"customize_design": "Personnaliser le design",
|
||||
"signatory_one_toggle": "Afficher le signataire 1",
|
||||
"signatory_two_toggle": "Afficher le signataire 2",
|
||||
"signature_upload": "Image signature",
|
||||
"signature_upload_hint": "Téléchargez une image de signature (facultatif)",
|
||||
"signature_dont_crop": "Ne pas recadrer",
|
||||
"signature_upload_in_progress": "Attendez la fin du téléchargement de la signature avant de sauvegarder.",
|
||||
"save_failed": "Impossible d'enregistrer la conception du certificat. Vérifiez le formulaire et réessayez."
|
||||
}
|
||||
},
|
||||
"people": {
|
||||
@@ -1758,7 +1770,11 @@
|
||||
"collapse_section": "Réduire la section",
|
||||
"expand_section": "Développer la section"
|
||||
},
|
||||
"more": "Actions"
|
||||
"more": "Actions",
|
||||
"settings_completion_policy": "Règle d'achèvement",
|
||||
"settings_completion_submitted": "Soumis – toute soumission compte",
|
||||
"settings_completion_passed": "Réussi – note minimale requise",
|
||||
"settings_pass_threshold": "Seuil de réussite (%)"
|
||||
},
|
||||
"new_exercise_modal": {
|
||||
"heading": "Nouvel exercice",
|
||||
@@ -1803,6 +1819,9 @@
|
||||
"button": "bouton",
|
||||
"button_done": "Terminé",
|
||||
"tabs": {
|
||||
"settings": {
|
||||
"title": "Paramètres"
|
||||
},
|
||||
"document": {
|
||||
"title": "Documents",
|
||||
"add_document": "Ajouter un document",
|
||||
@@ -1918,7 +1937,8 @@
|
||||
"kind_google_drive": "Google Drive",
|
||||
"kind_generic": "Intégré",
|
||||
"course_fallback": "Cours",
|
||||
"menu_aria": "Options vidéo"
|
||||
"menu_aria": "Options vidéo",
|
||||
"transcription_in_progress": "(Génération de transcription en cours)"
|
||||
},
|
||||
"view_transcript": "Voir la transcription",
|
||||
"playback_error": "Le chargement de cette vidéo a échoué.",
|
||||
@@ -1926,7 +1946,8 @@
|
||||
"generate_1080": "Générer 1080p",
|
||||
"generate_1080_in_progress": "Génération de 1080p…",
|
||||
"generate_1080_ready": "1080p disponible",
|
||||
"generate_1080_unavailable": "1080p indisponible pour cette vidéo source"
|
||||
"generate_1080_unavailable": "1080p indisponible pour cette vidéo source",
|
||||
"loading": "Chargement de la vidéo…"
|
||||
},
|
||||
"slide": {
|
||||
"title": "Diapositive",
|
||||
@@ -1985,6 +2006,38 @@
|
||||
},
|
||||
"content_locked_title": "Ce contenu est verrouillé",
|
||||
"content_locked_description": "Votre instructeur n'a pas encore débloqué ce contenu. Complétez le contenu précédent ou revenez plus tard.",
|
||||
"content_progression_locked_title": "Terminez d'abord le contenu précédent",
|
||||
"content_progression_locked_description": "Ce contenu se débloque après avoir terminé l'élément requis précédent du cours.",
|
||||
"content_progression_locked_description_lesson": "Cette leçon se débloque après avoir terminé l'élément requis précédent du cours.",
|
||||
"content_progression_locked_description_exercise": "Cet exercice se débloque après avoir terminé l'élément requis précédent du cours.",
|
||||
"completion_policy": {
|
||||
"label": "Règle d'achèvement",
|
||||
"manual_label": "Manuel",
|
||||
"manual_description": "Les étudiants marquent eux-mêmes la leçon comme terminée.",
|
||||
"video_watch_label": "Visionnage vidéo",
|
||||
"video_watch_description": "La leçon se termine automatiquement après que les étudiants aient regardé les vidéos sélectionnées.",
|
||||
"none_label": "Aucune",
|
||||
"none_description": "Cette leçon ne bloque pas la progression du cours.",
|
||||
"watch_threshold": "Seuil de visionnage (%)"
|
||||
},
|
||||
"settings": {
|
||||
"progression": {
|
||||
"heading": "Progression",
|
||||
"intro": "Choisissez comment les étudiants terminent cette leçon et avancent dans le cours.",
|
||||
"option_guide_heading": "Ce que signifie chaque option",
|
||||
"watch_videos_heading": "Vidéos à appliquer",
|
||||
"watch_videos_helper": "Seules les vidéos téléversées peuvent être appliquées. YouTube et les intégrations externes ne peuvent pas être suivies.",
|
||||
"watch_videos_empty": "Ajoutez une vidéo téléversée dans l'onglet Vidéo pour utiliser le suivi de visionnage.",
|
||||
"watch_videos_required": "Sélectionnez au moins une vidéo pour le suivi de visionnage.",
|
||||
"students_only_note": "Ces règles s'appliquent aux étudiants uniquement. Vous pouvez prévisualiser et naviguer librement en mode enseignant."
|
||||
}
|
||||
},
|
||||
"watch_progress": {
|
||||
"status": "{percent}% du contenu vidéo regardé",
|
||||
"videos_complete": "{percent}% du contenu vidéo requis regardé ({complete} sur {required} vidéos)",
|
||||
"seek_blocked": "Vous ne pouvez pas avancer dans cette vidéo",
|
||||
"complete_via_watch": "Cette leçon se termine lorsque vous avez suffisamment regardé la vidéo"
|
||||
},
|
||||
"saving": "Sauvegarde…",
|
||||
"saved": "Enregistré",
|
||||
"draft_recovery": "Un brouillon non enregistré a été trouvé pour cette leçon. Souhaitez-vous le restaurer ?",
|
||||
|
||||
@@ -352,7 +352,8 @@
|
||||
"thumbnail_regen_started": "थंबनेल पुनर्जीवित हो रहे हैं…",
|
||||
"thumbnail_regen_failed": "थंबनेल पुन: उत्पन्न करने में विफल",
|
||||
"transcript_saved": "प्रतिलेख अद्यतन किया गया",
|
||||
"transcript_save_failed": "प्रतिलेख सहेजा नहीं जा सका"
|
||||
"transcript_save_failed": "प्रतिलेख सहेजा नहीं जा सका",
|
||||
"transcription_already_running": "इस वीडियो के लिए प्रतिलेखन कार्य पहले से ही प्रगति पर है"
|
||||
},
|
||||
"tags": {
|
||||
"group_created": "टैग समूह बनाया गया",
|
||||
@@ -743,6 +744,10 @@
|
||||
"drag": "अपने सामग्री टैब को पुनः क्रमित करने के लिए लेबल खींचें और छोड़ें",
|
||||
"content_grouping_title": "सामग्री समूहन",
|
||||
"content_grouping_description": "सामग्री सूची में अनुभाग के अनुसार समूह पाठ और अभ्यास।",
|
||||
"progression_mode_title": "छात्र प्रगति",
|
||||
"progression_mode_description": "नियंत्रित करें कि छात्र सभी अनलॉक सामग्री तक पहुँच सकें या क्रम में आइटम पूरे करें।",
|
||||
"progression_mode_free": "मुक्त — अनलॉक सामग्री सुलभ है",
|
||||
"progression_mode_sequential": "क्रमिक — अगला अनलॉक करने के लिए पिछले आइटम पूरे करें",
|
||||
"lesson_download": "पाठ डाउनलोड करें",
|
||||
"available": "पंजीकृत छात्रों के लिए पाठ को पीडीएफ में डाउनलोड के लिए उपलब्ध कराएं",
|
||||
"course_download": "कोर्स डाउनलोड करें",
|
||||
@@ -1022,7 +1027,14 @@
|
||||
"field_template": "टेम्पलेट",
|
||||
"field_accent": "उच्चारण",
|
||||
"field_signatories": "हस्ताक्षरकर्ता",
|
||||
"customize_design": "डिज़ाइन अनुकूलित करें"
|
||||
"customize_design": "डिज़ाइन अनुकूलित करें",
|
||||
"signatory_one_toggle": "हस्ताक्षरकर्ता दिखाएँ 1",
|
||||
"signatory_two_toggle": "हस्ताक्षरकर्ता दिखाएँ 2",
|
||||
"signature_upload": "हस्ताक्षर छवि",
|
||||
"signature_upload_hint": "एक हस्ताक्षर छवि अपलोड करें (वैकल्पिक)",
|
||||
"signature_dont_crop": "फसल मत करो",
|
||||
"signature_upload_in_progress": "सहेजने से पहले हस्ताक्षर अपलोड समाप्त होने तक प्रतीक्षा करें।",
|
||||
"save_failed": "प्रमाणपत्र डिज़ाइन सहेजा नहीं जा सका. फ़ॉर्म की जाँच करें और पुनः प्रयास करें."
|
||||
}
|
||||
},
|
||||
"people": {
|
||||
@@ -1758,7 +1770,11 @@
|
||||
"collapse_section": "अनुभाग संकुचित करें",
|
||||
"expand_section": "अनुभाग विस्तारित करें"
|
||||
},
|
||||
"more": "क्रियाएँ"
|
||||
"more": "क्रियाएँ",
|
||||
"settings_completion_policy": "समापन नियम",
|
||||
"settings_completion_submitted": "सबमिट किया गया - कोई भी सबमिशन मायने रखता है",
|
||||
"settings_completion_passed": "उत्तीर्ण - न्यूनतम अंक आवश्यक",
|
||||
"settings_pass_threshold": "पास सीमा (%)"
|
||||
},
|
||||
"new_exercise_modal": {
|
||||
"heading": "नया व्यायाम",
|
||||
@@ -1803,6 +1819,9 @@
|
||||
"button": "बटन",
|
||||
"button_done": "हो गया",
|
||||
"tabs": {
|
||||
"settings": {
|
||||
"title": "सेटिंग्स"
|
||||
},
|
||||
"document": {
|
||||
"title": "दस्तावेज़",
|
||||
"add_document": "दस्तावेज़ जोड़ें",
|
||||
@@ -1918,7 +1937,8 @@
|
||||
"kind_google_drive": "गूगल ड्राइव",
|
||||
"kind_generic": "एंबेडेड",
|
||||
"course_fallback": "पाठ्यक्रम",
|
||||
"menu_aria": "वीडियो विकल्प"
|
||||
"menu_aria": "वीडियो विकल्प",
|
||||
"transcription_in_progress": "(प्रतिलेख निर्माण प्रगति पर है)"
|
||||
},
|
||||
"view_transcript": "प्रतिलेखन देखें",
|
||||
"playback_error": "इस वीडियो को लोड करना विफल रहा.",
|
||||
@@ -1926,7 +1946,8 @@
|
||||
"generate_1080": "1080p जनरेट करें",
|
||||
"generate_1080_in_progress": "1080p जेनरेट हो रहा है...",
|
||||
"generate_1080_ready": "1080p उपलब्ध",
|
||||
"generate_1080_unavailable": "इस स्रोत वीडियो के लिए 1080p अनुपलब्ध है"
|
||||
"generate_1080_unavailable": "इस स्रोत वीडियो के लिए 1080p अनुपलब्ध है",
|
||||
"loading": "वीडियो लोड हो रहा है..."
|
||||
},
|
||||
"slide": {
|
||||
"title": "फिसल पट्टी",
|
||||
@@ -1985,6 +2006,38 @@
|
||||
},
|
||||
"content_locked_title": "यह सामग्री लॉक है",
|
||||
"content_locked_description": "आपके प्रशिक्षक ने अभी तक इस सामग्री को अनलॉक नहीं किया है। पिछली सामग्री पूरी करें या बाद में दोबारा जाँचें।",
|
||||
"content_progression_locked_title": "पहले पिछली सामग्री पूरी करें",
|
||||
"content_progression_locked_description": "पिछले आवश्यक कोर्स आइटम को पूरा करने के बाद यह सामग्री अनलॉक होती है।",
|
||||
"content_progression_locked_description_lesson": "पिछले आवश्यक कोर्स आइटम को पूरा करने के बाद यह पाठ अनलॉक होता है।",
|
||||
"content_progression_locked_description_exercise": "पिछले आवश्यक कोर्स आइटम को पूरा करने के बाद यह अभ्यास अनलॉक होता है।",
|
||||
"completion_policy": {
|
||||
"label": "पूर्णता नियम",
|
||||
"manual_label": "मैन्युअल",
|
||||
"manual_description": "छात्र स्वयं पाठ को पूर्ण चिह्नित करते हैं।",
|
||||
"video_watch_label": "वीडियो देखें",
|
||||
"video_watch_description": "चयनित वीडियो देखने के बाद पाठ स्वतः पूर्ण हो जाता है।",
|
||||
"none_label": "कोई नहीं",
|
||||
"none_description": "यह पाठ कोर्स प्रगति को रोकता नहीं है।",
|
||||
"watch_threshold": "देखने की सीमा (%)"
|
||||
},
|
||||
"settings": {
|
||||
"progression": {
|
||||
"heading": "प्रगति",
|
||||
"intro": "चुनें कि छात्र इस पाठ को कैसे पूरा करें और कोर्स में आगे बढ़ें।",
|
||||
"option_guide_heading": "प्रत्येक विकल्प का अर्थ",
|
||||
"watch_videos_heading": "लागू करने के लिए वीडियो",
|
||||
"watch_videos_helper": "केवल अपलोड किए गए वीडियो लागू किए जा सकते हैं। YouTube और बाहरी एम्बेड ट्रैक नहीं हो सकते।",
|
||||
"watch_videos_empty": "देखने की निगरानी के लिए वीडियो टैब में अपलोड किया वीडियो जोड़ें।",
|
||||
"watch_videos_required": "वीडियो देखने के नियम के लिए कम से कम एक वीडियो चुनें।",
|
||||
"students_only_note": "ये नियम केवल छात्रों पर लागू होते हैं। शिक्षक स्वतंत्र रूप से पूर्वावलोकन और नेविगेट कर सकते हैं।"
|
||||
}
|
||||
},
|
||||
"watch_progress": {
|
||||
"status": "वीडियो सामग्री का {percent}% देखा",
|
||||
"videos_complete": "आवश्यक वीडियो सामग्री का {percent}% देखा ({required} में से {complete} वीडियो)",
|
||||
"seek_blocked": "आप इस वीडियो में आगे नहीं जा सकते",
|
||||
"complete_via_watch": "पर्याप्त वीडियो देखने पर यह पाठ पूर्ण होता है"
|
||||
},
|
||||
"saving": "सहेजा जा रहा है...",
|
||||
"saved": "सहेजा गया",
|
||||
"draft_recovery": "इस पाठ के लिए एक सहेजा न गया ड्राफ्ट मिला। क्या आप इसे पुनर्स्थापित करना चाहेंगे?",
|
||||
|
||||
@@ -352,7 +352,8 @@
|
||||
"thumbnail_regen_started": "Regeneruję miniatury…",
|
||||
"thumbnail_regen_failed": "Nie udało się ponownie wygenerować miniatur",
|
||||
"transcript_saved": "Transkrypcja zaktualizowana",
|
||||
"transcript_save_failed": "Nie udało się zapisać transkrypcji"
|
||||
"transcript_save_failed": "Nie udało się zapisać transkrypcji",
|
||||
"transcription_already_running": "Zadanie transkrypcji tego filmu wideo jest już w toku"
|
||||
},
|
||||
"tags": {
|
||||
"group_created": "Utworzono grupę tagów",
|
||||
@@ -743,6 +744,10 @@
|
||||
"drag": "Przeciągnij i upuść etykiety, aby zmienić kolejność zakładek materiałów",
|
||||
"content_grouping_title": "Grupowanie treści",
|
||||
"content_grouping_description": "Grupuj lekcje i ćwiczenia według sekcji na liście treści.",
|
||||
"progression_mode_title": "Postęp ucznia",
|
||||
"progression_mode_description": "Kontroluj, czy uczniowie mogą uzyskać dostęp do całej odblokowanej treści, czy muszą kończyć elementy po kolei.",
|
||||
"progression_mode_free": "Wolny — odblokowana treść jest dostępna",
|
||||
"progression_mode_sequential": "Sekwencyjny — ukończ poprzednie elementy, aby odblokować następny",
|
||||
"lesson_download": "Lekcje do pobrania",
|
||||
"available": "Udostępnij lekcję do pobrania w formacie PDF zarejestrowanym studentom",
|
||||
"course_download": "Pobieranie kursu",
|
||||
@@ -1022,7 +1027,14 @@
|
||||
"field_template": "Szablon",
|
||||
"field_accent": "Akcent",
|
||||
"field_signatories": "Sygnatariusze",
|
||||
"customize_design": "Dostosuj projekt"
|
||||
"customize_design": "Dostosuj projekt",
|
||||
"signatory_one_toggle": "Pokaż sygnatariusza 1",
|
||||
"signatory_two_toggle": "Pokaż sygnatariusza 2",
|
||||
"signature_upload": "Podpisowy obraz",
|
||||
"signature_upload_hint": "Prześlij obraz podpisu (opcjonalnie)",
|
||||
"signature_dont_crop": "Nie przycinaj",
|
||||
"signature_upload_in_progress": "Przed zapisaniem poczekaj na zakończenie przesyłania podpisu.",
|
||||
"save_failed": "Nie można zapisać projektu certyfikatu. Sprawdź formularz i spróbuj ponownie."
|
||||
}
|
||||
},
|
||||
"people": {
|
||||
@@ -1758,7 +1770,11 @@
|
||||
"collapse_section": "Zwiń sekcję",
|
||||
"expand_section": "Rozwiń sekcję"
|
||||
},
|
||||
"more": "Działania"
|
||||
"more": "Działania",
|
||||
"settings_completion_policy": "Zasada uzupełnienia",
|
||||
"settings_completion_submitted": "Przesłane — liczy się każde przesłanie",
|
||||
"settings_completion_passed": "Zaliczony — wymagany minimalny wynik",
|
||||
"settings_pass_threshold": "Próg zaliczenia (%)"
|
||||
},
|
||||
"new_exercise_modal": {
|
||||
"heading": "Nowe ćwiczenie",
|
||||
@@ -1803,6 +1819,9 @@
|
||||
"button": "przycisk",
|
||||
"button_done": "Gotowe",
|
||||
"tabs": {
|
||||
"settings": {
|
||||
"title": "Ustawienia"
|
||||
},
|
||||
"document": {
|
||||
"title": "Dokumenty",
|
||||
"add_document": "Dodaj dokument",
|
||||
@@ -1918,7 +1937,8 @@
|
||||
"kind_google_drive": "Dysk Google",
|
||||
"kind_generic": "Wbudowany",
|
||||
"course_fallback": "Kurs",
|
||||
"menu_aria": "Opcje wideo"
|
||||
"menu_aria": "Opcje wideo",
|
||||
"transcription_in_progress": "(Trwa generowanie transkrypcji)"
|
||||
},
|
||||
"view_transcript": "Zobacz transkrypcję",
|
||||
"playback_error": "Ładowanie tego filmu nie powiodło się.",
|
||||
@@ -1926,7 +1946,8 @@
|
||||
"generate_1080": "Wygeneruj 1080p",
|
||||
"generate_1080_in_progress": "Generowanie 1080p…",
|
||||
"generate_1080_ready": "Dostępna rozdzielczość 1080p",
|
||||
"generate_1080_unavailable": "Rozdzielczość 1080p jest niedostępna dla tego wideo źródłowego"
|
||||
"generate_1080_unavailable": "Rozdzielczość 1080p jest niedostępna dla tego wideo źródłowego",
|
||||
"loading": "Ładowanie wideo…"
|
||||
},
|
||||
"slide": {
|
||||
"title": "Przesuń",
|
||||
@@ -1985,6 +2006,38 @@
|
||||
},
|
||||
"content_locked_title": "Ta zawartość jest zablokowana",
|
||||
"content_locked_description": "Twój instruktor nie odblokował jeszcze tej zawartości. Uzupełnij poprzednią zawartość lub sprawdź później.",
|
||||
"content_progression_locked_title": "Najpierw ukończ poprzednią treść",
|
||||
"content_progression_locked_description": "Ta treść odblokowuje się po ukończeniu poprzedniego wymaganego elementu kursu.",
|
||||
"content_progression_locked_description_lesson": "Ta lekcja odblokowuje się po ukończeniu poprzedniego wymaganego elementu kursu.",
|
||||
"content_progression_locked_description_exercise": "To ćwiczenie odblokowuje się po ukończeniu poprzedniego wymaganego elementu kursu.",
|
||||
"completion_policy": {
|
||||
"label": "Zasada ukończenia",
|
||||
"manual_label": "Ręcznie",
|
||||
"manual_description": "Uczniowie sami oznaczają lekcję jako ukończoną.",
|
||||
"video_watch_label": "Obejrzenie wideo",
|
||||
"video_watch_description": "Lekcja kończy się automatycznie po obejrzeniu wybranych filmów.",
|
||||
"none_label": "Brak",
|
||||
"none_description": "Ta lekcja nie blokuje postępu w kursie.",
|
||||
"watch_threshold": "Próg obejrzenia (%)"
|
||||
},
|
||||
"settings": {
|
||||
"progression": {
|
||||
"heading": "Postęp",
|
||||
"intro": "Wybierz, jak uczniowie kończą tę lekcję i przechodzą przez kurs.",
|
||||
"option_guide_heading": "Co oznacza każda opcja",
|
||||
"watch_videos_heading": "Filmy do egzekwowania",
|
||||
"watch_videos_helper": "Tylko przesłane filmy mogą być egzekwowane. YouTube i zewnętrzne osadzenia nie mogą być śledzone.",
|
||||
"watch_videos_empty": "Dodaj przesłany film w zakładce Wideo, aby użyć egzekwowania obejrzenia.",
|
||||
"watch_videos_required": "Wybierz co najmniej jeden film przy egzekwowaniu obejrzenia.",
|
||||
"students_only_note": "Te zasady dotyczą tylko uczniów. Jako nauczyciel możesz swobodnie przeglądać i nawigować."
|
||||
}
|
||||
},
|
||||
"watch_progress": {
|
||||
"status": "Obejrzano {percent}% treści wideo",
|
||||
"videos_complete": "Obejrzano {percent}% wymaganej treści wideo ({complete} z {required} filmów)",
|
||||
"seek_blocked": "Nie możesz przewinąć do przodu w tym filmie",
|
||||
"complete_via_watch": "Ta lekcja kończy się, gdy obejrzysz wystarczającą część filmu"
|
||||
},
|
||||
"saving": "Zapisuję…",
|
||||
"saved": "Zapisano",
|
||||
"draft_recovery": "Znaleziono niezapisaną wersję roboczą tej lekcji. Czy chcesz go przywrócić?",
|
||||
|
||||
@@ -352,7 +352,8 @@
|
||||
"thumbnail_regen_started": "Regenerando miniaturas…",
|
||||
"thumbnail_regen_failed": "Falha ao regenerar miniaturas",
|
||||
"transcript_saved": "Transcrição atualizada",
|
||||
"transcript_save_failed": "Não foi possível salvar a transcrição"
|
||||
"transcript_save_failed": "Não foi possível salvar a transcrição",
|
||||
"transcription_already_running": "Um trabalho de transcrição já está em andamento para este vídeo"
|
||||
},
|
||||
"tags": {
|
||||
"group_created": "Grupo de tags criado",
|
||||
@@ -743,6 +744,10 @@
|
||||
"drag": "Arraste e solte os rótulos para reordenar suas guias de materiais",
|
||||
"content_grouping_title": "Agrupamento de conteúdo",
|
||||
"content_grouping_description": "Aulas e exercícios em grupo por seção na lista de conteúdo.",
|
||||
"progression_mode_title": "Progressão do aluno",
|
||||
"progression_mode_description": "Controle se os alunos podem acessar todo o conteúdo desbloqueado ou devem concluir os itens em ordem.",
|
||||
"progression_mode_free": "Livre — conteúdo desbloqueado é acessível",
|
||||
"progression_mode_sequential": "Sequencial — concluir itens anteriores para desbloquear o próximo",
|
||||
"lesson_download": "Lições baixadas",
|
||||
"available": "Disponibilizar a Lição para Download em PDF para alunos matriculados",
|
||||
"course_download": "Download do curso",
|
||||
@@ -1022,7 +1027,14 @@
|
||||
"field_template": "Modelo",
|
||||
"field_accent": "Sotaque",
|
||||
"field_signatories": "Signatários",
|
||||
"customize_design": "Personalizar design"
|
||||
"customize_design": "Personalizar design",
|
||||
"signatory_one_toggle": "Mostrar signatário 1",
|
||||
"signatory_two_toggle": "Mostrar signatário 2",
|
||||
"signature_upload": "Imagem de assinatura",
|
||||
"signature_upload_hint": "Faça upload de uma imagem de assinatura (opcional)",
|
||||
"signature_dont_crop": "Não corte",
|
||||
"signature_upload_in_progress": "Aguarde o término do upload da assinatura antes de salvar.",
|
||||
"save_failed": "Não foi possível salvar o design do certificado. Verifique o formulário e tente novamente."
|
||||
}
|
||||
},
|
||||
"people": {
|
||||
@@ -1758,7 +1770,11 @@
|
||||
"collapse_section": "Recolher seção",
|
||||
"expand_section": "Expandir seção"
|
||||
},
|
||||
"more": "Ações"
|
||||
"more": "Ações",
|
||||
"settings_completion_policy": "Regra de conclusão",
|
||||
"settings_completion_submitted": "Enviado – qualquer envio conta",
|
||||
"settings_completion_passed": "Aprovado – pontuação mínima exigida",
|
||||
"settings_pass_threshold": "Limite de aprovação (%)"
|
||||
},
|
||||
"new_exercise_modal": {
|
||||
"heading": "Novo exercício",
|
||||
@@ -1803,6 +1819,9 @@
|
||||
"button": "botão",
|
||||
"button_done": "Concluído",
|
||||
"tabs": {
|
||||
"settings": {
|
||||
"title": "Configurações"
|
||||
},
|
||||
"document": {
|
||||
"title": "Documentos",
|
||||
"add_document": "Adicionar documento",
|
||||
@@ -1918,7 +1937,8 @@
|
||||
"kind_google_drive": "Google Drive",
|
||||
"kind_generic": "Incorporado",
|
||||
"course_fallback": "Curso",
|
||||
"menu_aria": "Opções de vídeo"
|
||||
"menu_aria": "Opções de vídeo",
|
||||
"transcription_in_progress": "(Geração de transcrição em andamento)"
|
||||
},
|
||||
"view_transcript": "Ver transcrição",
|
||||
"playback_error": "Falha ao carregar este vídeo.",
|
||||
@@ -1926,7 +1946,8 @@
|
||||
"generate_1080": "Gerar 1080p",
|
||||
"generate_1080_in_progress": "Gerando 1080p…",
|
||||
"generate_1080_ready": "1080p disponível",
|
||||
"generate_1080_unavailable": "1080p indisponível para este vídeo de origem"
|
||||
"generate_1080_unavailable": "1080p indisponível para este vídeo de origem",
|
||||
"loading": "Carregando vídeo…"
|
||||
},
|
||||
"slide": {
|
||||
"title": "Deslizar",
|
||||
@@ -1985,6 +2006,38 @@
|
||||
},
|
||||
"content_locked_title": "Este conteúdo está bloqueado",
|
||||
"content_locked_description": "Seu instrutor ainda não desbloqueou este conteúdo. Conclua o conteúdo anterior ou volte mais tarde.",
|
||||
"content_progression_locked_title": "Conclua o conteúdo anterior primeiro",
|
||||
"content_progression_locked_description": "Este conteúdo é desbloqueado depois de concluir o item obrigatório anterior do curso.",
|
||||
"content_progression_locked_description_lesson": "Esta lição é desbloqueada depois de concluir o item obrigatório anterior do curso.",
|
||||
"content_progression_locked_description_exercise": "Este exercício é desbloqueado depois de concluir o item obrigatório anterior do curso.",
|
||||
"completion_policy": {
|
||||
"label": "Regra de conclusão",
|
||||
"manual_label": "Manual",
|
||||
"manual_description": "Os alunos marcam a lição como concluída.",
|
||||
"video_watch_label": "Assistir vídeo",
|
||||
"video_watch_description": "A lição conclui automaticamente depois que os alunos assistem aos vídeos selecionados.",
|
||||
"none_label": "Nenhuma",
|
||||
"none_description": "Esta lição não bloqueia a progressão do curso.",
|
||||
"watch_threshold": "Limite de visualização (%)"
|
||||
},
|
||||
"settings": {
|
||||
"progression": {
|
||||
"heading": "Progressão",
|
||||
"intro": "Escolha como os alunos concluem esta lição e avançam no curso.",
|
||||
"option_guide_heading": "O que cada opção significa",
|
||||
"watch_videos_heading": "Vídeos a aplicar",
|
||||
"watch_videos_helper": "Apenas vídeos enviados podem ser aplicados. YouTube e incorporações externas não podem ser rastreados.",
|
||||
"watch_videos_empty": "Adicione um vídeo enviado na aba Vídeo para usar o rastreamento de visualização.",
|
||||
"watch_videos_required": "Selecione pelo menos um vídeo para rastreamento de visualização.",
|
||||
"students_only_note": "Estas regras aplicam-se apenas aos alunos. Você pode pré-visualizar e navegar livremente ao ensinar."
|
||||
}
|
||||
},
|
||||
"watch_progress": {
|
||||
"status": "Assistiu {percent}% do conteúdo do vídeo",
|
||||
"videos_complete": "Assistiu {percent}% do conteúdo de vídeo obrigatório ({complete} de {required} vídeos)",
|
||||
"seek_blocked": "Você não pode avançar neste vídeo",
|
||||
"complete_via_watch": "Esta lição conclui quando você assiste o suficiente do vídeo"
|
||||
},
|
||||
"saving": "Salvando…",
|
||||
"saved": "Salvo",
|
||||
"draft_recovery": "Um rascunho não salvo foi encontrado para esta lição. Você gostaria de restaurá-lo?",
|
||||
|
||||
@@ -352,7 +352,8 @@
|
||||
"thumbnail_regen_started": "Восстановление миниатюр…",
|
||||
"thumbnail_regen_failed": "Не удалось восстановить миниатюры.",
|
||||
"transcript_saved": "Стенограмма обновлена",
|
||||
"transcript_save_failed": "Не удалось сохранить расшифровку"
|
||||
"transcript_save_failed": "Не удалось сохранить расшифровку",
|
||||
"transcription_already_running": "Транскрипция этого видео уже выполняется."
|
||||
},
|
||||
"tags": {
|
||||
"group_created": "Группа тегов создана.",
|
||||
@@ -743,6 +744,10 @@
|
||||
"drag": "Перетащите метки, чтобы изменить порядок вкладок материалов.",
|
||||
"content_grouping_title": "Группировка контента",
|
||||
"content_grouping_description": "Группируйте уроки и упражнения по разделам в списке контента.",
|
||||
"progression_mode_title": "Прогресс студента",
|
||||
"progression_mode_description": "Управляйте доступом студентов ко всему разблокированному контенту или требуйте прохождения по порядку.",
|
||||
"progression_mode_free": "Свободный — разблокированный контент доступен",
|
||||
"progression_mode_sequential": "Последовательный — завершите предыдущие элементы, чтобы открыть следующий",
|
||||
"lesson_download": "Уроки СкачатьСкачать",
|
||||
"available": "Сделайте урок доступным для скачивания в формате pdf для зарегистрированных студентов.",
|
||||
"course_download": "Загрузка курса",
|
||||
@@ -1022,7 +1027,14 @@
|
||||
"field_template": "Шаблон",
|
||||
"field_accent": "Акцент",
|
||||
"field_signatories": "Подписавшиеся",
|
||||
"customize_design": "Настроить дизайн"
|
||||
"customize_design": "Настроить дизайн",
|
||||
"signatory_one_toggle": "Показать подписанта 1",
|
||||
"signatory_two_toggle": "Показать подписанта 2",
|
||||
"signature_upload": "Изображение подписи",
|
||||
"signature_upload_hint": "Загрузите изображение подписи (необязательно)",
|
||||
"signature_dont_crop": "Не обрезать",
|
||||
"signature_upload_in_progress": "Прежде чем сохранять, дождитесь завершения загрузки подписи.",
|
||||
"save_failed": "Не удалось сохранить дизайн сертификата. Проверьте форму и повторите попытку."
|
||||
}
|
||||
},
|
||||
"people": {
|
||||
@@ -1758,7 +1770,11 @@
|
||||
"collapse_section": "Свернуть раздел",
|
||||
"expand_section": "Развернуть раздел"
|
||||
},
|
||||
"more": "Действия"
|
||||
"more": "Действия",
|
||||
"settings_completion_policy": "Правило завершения",
|
||||
"settings_completion_submitted": "Отправлено — любая отправка засчитывается",
|
||||
"settings_completion_passed": "Пройдено — требуется минимальный балл",
|
||||
"settings_pass_threshold": "Порог прохождения (%)"
|
||||
},
|
||||
"new_exercise_modal": {
|
||||
"heading": "Новое упражнение",
|
||||
@@ -1803,6 +1819,9 @@
|
||||
"button": "кнопка",
|
||||
"button_done": "Готово",
|
||||
"tabs": {
|
||||
"settings": {
|
||||
"title": "Настройки"
|
||||
},
|
||||
"document": {
|
||||
"title": "Документы",
|
||||
"add_document": "Добавить документ",
|
||||
@@ -1918,7 +1937,8 @@
|
||||
"kind_google_drive": "Гугл Диск",
|
||||
"kind_generic": "Встроенный",
|
||||
"course_fallback": "Курс",
|
||||
"menu_aria": "Параметры видео"
|
||||
"menu_aria": "Параметры видео",
|
||||
"transcription_in_progress": "(Идет генерация стенограммы)"
|
||||
},
|
||||
"view_transcript": "Посмотреть транскрипцию",
|
||||
"playback_error": "Не удалось загрузить это видео.",
|
||||
@@ -1926,7 +1946,8 @@
|
||||
"generate_1080": "Создать 1080p",
|
||||
"generate_1080_in_progress": "Генерация 1080p…",
|
||||
"generate_1080_ready": "доступно 1080p",
|
||||
"generate_1080_unavailable": "Разрешение 1080p недоступно для этого исходного видео."
|
||||
"generate_1080_unavailable": "Разрешение 1080p недоступно для этого исходного видео.",
|
||||
"loading": "Загрузка видео…"
|
||||
},
|
||||
"slide": {
|
||||
"title": "Слайд",
|
||||
@@ -1985,6 +2006,38 @@
|
||||
},
|
||||
"content_locked_title": "Этот контент заблокирован",
|
||||
"content_locked_description": "Ваш преподаватель еще не разблокировал этот контент. Завершите предыдущий контент или зайдите позже.",
|
||||
"content_progression_locked_title": "Сначала завершите предыдущий материал",
|
||||
"content_progression_locked_description": "Этот контент откроется после завершения предыдущего обязательного элемента курса.",
|
||||
"content_progression_locked_description_lesson": "Этот урок откроется после завершения предыдущего обязательного элемента курса.",
|
||||
"content_progression_locked_description_exercise": "Это упражнение откроется после завершения предыдущего обязательного элемента курса.",
|
||||
"completion_policy": {
|
||||
"label": "Правило завершения",
|
||||
"manual_label": "Вручную",
|
||||
"manual_description": "Студенты сами отмечают урок как завершённый.",
|
||||
"video_watch_label": "Просмотр видео",
|
||||
"video_watch_description": "Урок завершается автоматически после просмотра выбранных видео.",
|
||||
"none_label": "Нет",
|
||||
"none_description": "Этот урок не блокирует прохождение курса.",
|
||||
"watch_threshold": "Порог просмотра (%)"
|
||||
},
|
||||
"settings": {
|
||||
"progression": {
|
||||
"heading": "Прогресс",
|
||||
"intro": "Выберите, как студенты завершают этот урок и проходят курс.",
|
||||
"option_guide_heading": "Что означает каждый вариант",
|
||||
"watch_videos_heading": "Видео для контроля",
|
||||
"watch_videos_helper": "Контроль возможен только для загруженных видео. YouTube и внешние встраивания отслеживать нельзя.",
|
||||
"watch_videos_empty": "Добавьте загруженное видео на вкладке Видео для контроля просмотра.",
|
||||
"watch_videos_required": "Выберите хотя бы одно видео для контроля просмотра.",
|
||||
"students_only_note": "Эти правила действуют только для студентов. Преподаватель может свободно просматривать и переходить между уроками."
|
||||
}
|
||||
},
|
||||
"watch_progress": {
|
||||
"status": "Просмотрено {percent}% видеоконтента",
|
||||
"videos_complete": "Просмотрено {percent}% обязательного видеоконтента ({complete} из {required} видео)",
|
||||
"seek_blocked": "Нельзя перематывать вперёд в этом видео",
|
||||
"complete_via_watch": "Урок завершается, когда вы достаточно просмотрите видео"
|
||||
},
|
||||
"saving": "Сохранение…",
|
||||
"saved": "Сохранено",
|
||||
"draft_recovery": "Для этого урока найден несохраненный черновик. Хотели бы вы восстановить его?",
|
||||
|
||||
@@ -352,7 +352,8 @@
|
||||
"thumbnail_regen_started": "Đang tạo lại hình thu nhỏ…",
|
||||
"thumbnail_regen_failed": "Không thể tạo lại hình thu nhỏ",
|
||||
"transcript_saved": "Đã cập nhật bản ghi",
|
||||
"transcript_save_failed": "Không thể lưu bản ghi"
|
||||
"transcript_save_failed": "Không thể lưu bản ghi",
|
||||
"transcription_already_running": "Công việc chép lời đang được thực hiện cho video này"
|
||||
},
|
||||
"tags": {
|
||||
"group_created": "Đã tạo nhóm thẻ",
|
||||
@@ -743,6 +744,10 @@
|
||||
"drag": "Kéo và thả nhãn để sắp xếp lại các tab tài liệu của bạn",
|
||||
"content_grouping_title": "Nhóm nội dung",
|
||||
"content_grouping_description": "Nhóm các bài học, bài tập theo từng phần trong danh sách nội dung.",
|
||||
"progression_mode_title": "Tiến trình học viên",
|
||||
"progression_mode_description": "Kiểm soát học viên có thể truy cập mọi nội dung đã mở khóa hay phải hoàn thành theo thứ tự.",
|
||||
"progression_mode_free": "Tự do — nội dung đã mở khóa có thể truy cập",
|
||||
"progression_mode_sequential": "Tuần tự — hoàn thành mục trước để mở mục tiếp theo",
|
||||
"lesson_download": "Bài học Tải về",
|
||||
"available": "Cung cấp Bài học để tải xuống dưới dạng pdf cho học viên đã đăng ký",
|
||||
"course_download": "Tải xuống khóa học",
|
||||
@@ -1022,7 +1027,14 @@
|
||||
"field_template": "mẫu",
|
||||
"field_accent": "Giọng",
|
||||
"field_signatories": "Người ký",
|
||||
"customize_design": "Tùy chỉnh thiết kế"
|
||||
"customize_design": "Tùy chỉnh thiết kế",
|
||||
"signatory_one_toggle": "Hiển thị người ký 1",
|
||||
"signatory_two_toggle": "Hiển thị người ký 2",
|
||||
"signature_upload": "Hình ảnh chữ ký",
|
||||
"signature_upload_hint": "Tải lên hình ảnh chữ ký (tùy chọn)",
|
||||
"signature_dont_crop": "Đừng cắt xén",
|
||||
"signature_upload_in_progress": "Đợi quá trình tải lên chữ ký hoàn tất trước khi lưu.",
|
||||
"save_failed": "Không thể lưu thiết kế chứng chỉ. Hãy kiểm tra biểu mẫu và thử lại."
|
||||
}
|
||||
},
|
||||
"people": {
|
||||
@@ -1758,7 +1770,11 @@
|
||||
"collapse_section": "Thu gọn phần",
|
||||
"expand_section": "Mở rộng phần"
|
||||
},
|
||||
"more": "hành động"
|
||||
"more": "hành động",
|
||||
"settings_completion_policy": "Quy tắc hoàn thành",
|
||||
"settings_completion_submitted": "Đã gửi - mọi lần gửi đều được tính",
|
||||
"settings_completion_passed": "Đạt - yêu cầu điểm tối thiểu",
|
||||
"settings_pass_threshold": "Ngưỡng vượt qua (%)"
|
||||
},
|
||||
"new_exercise_modal": {
|
||||
"heading": "Bài tập mới",
|
||||
@@ -1803,6 +1819,9 @@
|
||||
"button": "nút",
|
||||
"button_done": "Xong",
|
||||
"tabs": {
|
||||
"settings": {
|
||||
"title": "Cài đặt"
|
||||
},
|
||||
"document": {
|
||||
"title": "Tài liệu",
|
||||
"add_document": "Thêm tài liệu",
|
||||
@@ -1918,7 +1937,8 @@
|
||||
"kind_google_drive": "Google Drive",
|
||||
"kind_generic": "Đã nhúng",
|
||||
"course_fallback": "Khóa học",
|
||||
"menu_aria": "Tùy chọn video"
|
||||
"menu_aria": "Tùy chọn video",
|
||||
"transcription_in_progress": "(Đang tạo bản ghi)"
|
||||
},
|
||||
"view_transcript": "Xem bản chép lời",
|
||||
"playback_error": "Tải video này không thành công.",
|
||||
@@ -1926,7 +1946,8 @@
|
||||
"generate_1080": "Tạo 1080p",
|
||||
"generate_1080_in_progress": "Đang tạo 1080p…",
|
||||
"generate_1080_ready": "1080p có sẵn",
|
||||
"generate_1080_unavailable": "1080p không có sẵn cho video nguồn này"
|
||||
"generate_1080_unavailable": "1080p không có sẵn cho video nguồn này",
|
||||
"loading": "Đang tải video…"
|
||||
},
|
||||
"slide": {
|
||||
"title": "Trượt",
|
||||
@@ -1985,6 +2006,38 @@
|
||||
},
|
||||
"content_locked_title": "Nội dung này đã bị khóa",
|
||||
"content_locked_description": "Người hướng dẫn của bạn chưa mở khóa nội dung này. Hoàn thành nội dung trước đó hoặc kiểm tra lại sau.",
|
||||
"content_progression_locked_title": "Hoàn thành nội dung trước đó trước",
|
||||
"content_progression_locked_description": "Nội dung này mở khóa sau khi bạn hoàn thành mục bắt buộc trước đó trong khóa học.",
|
||||
"content_progression_locked_description_lesson": "Bài học này mở khóa sau khi bạn hoàn thành mục bắt buộc trước đó trong khóa học.",
|
||||
"content_progression_locked_description_exercise": "Bài tập này mở khóa sau khi bạn hoàn thành mục bắt buộc trước đó trong khóa học.",
|
||||
"completion_policy": {
|
||||
"label": "Quy tắc hoàn thành",
|
||||
"manual_label": "Thủ công",
|
||||
"manual_description": "Học viên tự đánh dấu bài học là hoàn thành.",
|
||||
"video_watch_label": "Xem video",
|
||||
"video_watch_description": "Bài học tự hoàn thành sau khi học viên xem các video đã chọn.",
|
||||
"none_label": "Không",
|
||||
"none_description": "Bài học này không chặn tiến trình khóa học.",
|
||||
"watch_threshold": "Ngưỡng xem (%)"
|
||||
},
|
||||
"settings": {
|
||||
"progression": {
|
||||
"heading": "Tiến trình",
|
||||
"intro": "Chọn cách học viên hoàn thành bài học này và đi qua khóa học.",
|
||||
"option_guide_heading": "Ý nghĩa từng tùy chọn",
|
||||
"watch_videos_heading": "Video cần áp dụng",
|
||||
"watch_videos_helper": "Chỉ video đã tải lên mới có thể áp dụng. YouTube và nhúng bên ngoài không thể theo dõi.",
|
||||
"watch_videos_empty": "Thêm video đã tải lên trong tab Video để dùng theo dõi xem.",
|
||||
"watch_videos_required": "Chọn ít nhất một video khi dùng theo dõi xem.",
|
||||
"students_only_note": "Các quy tắc này chỉ áp dụng cho học viên. Giảng viên có thể xem trước và điều hướng tự do."
|
||||
}
|
||||
},
|
||||
"watch_progress": {
|
||||
"status": "Đã xem {percent}% nội dung video",
|
||||
"videos_complete": "Đã xem {percent}% nội dung video bắt buộc ({complete}/{required} video)",
|
||||
"seek_blocked": "Bạn không thể tua vượt trong video này",
|
||||
"complete_via_watch": "Bài học hoàn thành khi bạn xem đủ video"
|
||||
},
|
||||
"saving": "Đang lưu…",
|
||||
"saved": "Đã lưu",
|
||||
"draft_recovery": "Đã tìm thấy một bản nháp chưa được lưu cho bài học này. Bạn có muốn khôi phục nó không?",
|
||||
|
||||
Reference in New Issue
Block a user