diff --git a/server/locale/de/LC_MESSAGES/django.mo b/server/locale/de/LC_MESSAGES/django.mo new file mode 100644 index 00000000..71cbdf3e Binary files /dev/null and b/server/locale/de/LC_MESSAGES/django.mo differ diff --git a/server/locale/de/LC_MESSAGES/django.po b/server/locale/de/LC_MESSAGES/django.po new file mode 100644 index 00000000..115a551c --- /dev/null +++ b/server/locale/de/LC_MESSAGES/django.po @@ -0,0 +1,263 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-06-17 08:25+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: vbv_lernwelt/assignment/export.py:181 +msgid "Bestanden" +msgstr "" + +#: vbv_lernwelt/assignment/export.py:181 +msgid "Nicht bestanden" +msgstr "" + +#: vbv_lernwelt/assignment/export.py:195 vbv_lernwelt/assignment/export.py:198 +#: vbv_lernwelt/assignment/export.py:199 +msgid "Keine Daten" +msgstr "" + +#: vbv_lernwelt/core/admin.py:32 +msgid "Personal info" +msgstr "" + +#: vbv_lernwelt/core/admin.py:34 +msgid "Permissions" +msgstr "" + +#: vbv_lernwelt/core/admin.py:45 +msgid "Important dates" +msgstr "" + +#: vbv_lernwelt/core/admin.py:47 +msgid "Profile" +msgstr "" + +#: vbv_lernwelt/core/admin.py:62 +msgid "Organisation" +msgstr "" + +#: vbv_lernwelt/core/admin.py:75 +msgid "Additional data" +msgstr "" + +#: vbv_lernwelt/course/models.py:24 vbv_lernwelt/course/models.py:62 +msgid "Titel" +msgstr "" + +#: vbv_lernwelt/course/models.py:26 +msgid "Kategorie-Name" +msgstr "" + +#: vbv_lernwelt/course/models.py:29 +msgid "Slug" +msgstr "" + +#: vbv_lernwelt/course/models.py:64 +msgid "Allgemein" +msgstr "" + +#: vbv_lernwelt/course/models.py:177 +msgid "Lehrgang-Seite" +msgstr "" + +#: vbv_lernwelt/course/models.py:272 +msgid "Teilnehmer" +msgstr "" + +#: vbv_lernwelt/course/models.py:273 +msgid "Experte/Trainer" +msgstr "" + +#: vbv_lernwelt/course/models.py:332 +msgid "Dokumente im Circle ein/aus" +msgstr "" + +#: vbv_lernwelt/course/models.py:336 +msgid "Lernmentor-Funktion ein/aus" +msgstr "" + +#: vbv_lernwelt/course/models.py:340 +msgid "Kompetenzweise ein/aus" +msgstr "" + +#: vbv_lernwelt/course/models.py:343 +msgid "Versicherungsvermittler-Lehrgang" +msgstr "" + +#: vbv_lernwelt/course/models.py:344 +msgid "ÜK-Lehrgang" +msgstr "" + +#: vbv_lernwelt/course_session/services/export_attendance.py:111 +msgid "Anwesend" +msgstr "" + +#: vbv_lernwelt/course_session/services/export_attendance.py:111 +msgid "Nicht anwesend" +msgstr "" + +#: vbv_lernwelt/course_session/services/export_attendance.py:118 +msgid "Vorname" +msgstr "" + +#: vbv_lernwelt/course_session/services/export_attendance.py:119 +msgid "Nachname" +msgstr "" + +#: vbv_lernwelt/course_session/services/export_attendance.py:120 +msgid "Email" +msgstr "" + +#: vbv_lernwelt/course_session/services/export_attendance.py:121 +#: vbv_lernwelt/course_session/services/export_attendance.py:133 +msgid "Lehrvertragsnummer" +msgstr "" + +#: vbv_lernwelt/feedback/export.py:33 +msgid "Zufriedenheit insgesamt" +msgstr "" + +#: vbv_lernwelt/feedback/export.py:34 +msgid "Zielerreichung insgesamt" +msgstr "" + +#: vbv_lernwelt/feedback/export.py:37 +msgid "" +"Wie beurteilst du deine Sicherheit bezüglichen den Themen nach dem Kurs?" +msgstr "" + +#: vbv_lernwelt/feedback/export.py:41 +msgid "Waren die Vorbereitungsaufträge klar und verständlich?" +msgstr "" + +#: vbv_lernwelt/feedback/export.py:45 +msgid "" +"Wie beurteilst du die Themensicherheit und Fachkompetenz des Kursleiters/der " +"Kursleiterin?" +msgstr "" + +#: vbv_lernwelt/feedback/export.py:49 +msgid "" +"Wurden Fragen und Anregungen der Kursteilnehmenden ernst genommen und " +"aufgegriffen?" +msgstr "" + +#: vbv_lernwelt/feedback/export.py:53 +msgid "Was möchtest du dem Kursleiter/der Kursleiterin sonst noch sagen?" +msgstr "" + +#: vbv_lernwelt/feedback/export.py:55 +msgid "Würdest du den Kurs weiterempfehlen?" +msgstr "" + +#: vbv_lernwelt/feedback/export.py:56 +msgid "Was hat dir besonders gut gefallen?" +msgstr "" + +#: vbv_lernwelt/feedback/export.py:57 +msgid "Wo siehst du Verbesserungspotential?" +msgstr "" + +#: vbv_lernwelt/feedback/export.py:144 +msgid "Durchführung" +msgstr "" + +#: vbv_lernwelt/feedback/export.py:145 +msgid "Datum" +msgstr "" + +#: vbv_lernwelt/feedback/models.py:31 +msgid "Internet" +msgstr "" + +#: vbv_lernwelt/feedback/models.py:32 +msgid "Leaflet" +msgstr "" + +#: vbv_lernwelt/feedback/models.py:33 +msgid "Newspaper" +msgstr "" + +#: vbv_lernwelt/feedback/models.py:34 +msgid "Personal recommendation" +msgstr "" + +#: vbv_lernwelt/feedback/models.py:35 +msgid "Public event" +msgstr "" + +#: vbv_lernwelt/feedback/models.py:36 +msgid "Other" +msgstr "" + +#: vbv_lernwelt/media_files/models.py:27 vbv_lernwelt/media_files/models.py:54 +#: vbv_lernwelt/media_files/models.py:64 vbv_lernwelt/media_files/models.py:83 +msgid "file" +msgstr "" + +#: vbv_lernwelt/notify/models.py:9 +msgid "User Interaction" +msgstr "" + +#: vbv_lernwelt/notify/models.py:10 +msgid "Progress" +msgstr "" + +#: vbv_lernwelt/notify/models.py:11 +msgid "Information" +msgstr "" + +#: vbv_lernwelt/notify/models.py:16 +msgid "Attendance Course Reminder" +msgstr "" + +#: vbv_lernwelt/notify/models.py:18 +msgid "Assignment Reminder" +msgstr "" + +#: vbv_lernwelt/notify/models.py:21 +msgid "Casework Expert Evaluation Reminder" +msgstr "" + +#: vbv_lernwelt/notify/models.py:23 +msgid "Casework Submitted" +msgstr "" + +#: vbv_lernwelt/notify/models.py:24 +msgid "Casework Evaluated" +msgstr "" + +#: vbv_lernwelt/notify/models.py:25 +msgid "New Feedback" +msgstr "" + +#: vbv_lernwelt/notify/models.py:28 +msgid "Self Evaluation Feedback Requested" +msgstr "" + +#: vbv_lernwelt/notify/models.py:31 +msgid "Self Evaluation Feedback Provided" +msgstr "" + +#: vbv_lernwelt/templates/wagtailadmin/pages/listing/_page_title_explore.html:8 +msgid "Sites menu" +msgstr "" + +#: vbv_lernwelt/templates/wagtailadmin/pages/listing/_page_title_explore.html:14 +msgid "Edit this page" +msgstr "" diff --git a/server/locale/fr/LC_MESSAGES/django.mo b/server/locale/fr/LC_MESSAGES/django.mo new file mode 100644 index 00000000..5c10a837 Binary files /dev/null and b/server/locale/fr/LC_MESSAGES/django.mo differ diff --git a/server/locale/fr/LC_MESSAGES/django.po b/server/locale/fr/LC_MESSAGES/django.po new file mode 100644 index 00000000..4fe78632 --- /dev/null +++ b/server/locale/fr/LC_MESSAGES/django.po @@ -0,0 +1,263 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-06-17 08:25+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: vbv_lernwelt/assignment/export.py:181 +msgid "Bestanden" +msgstr "Réussi" + +#: vbv_lernwelt/assignment/export.py:181 +msgid "Nicht bestanden" +msgstr "Échoué" + +#: vbv_lernwelt/assignment/export.py:195 vbv_lernwelt/assignment/export.py:198 +#: vbv_lernwelt/assignment/export.py:199 +msgid "Keine Daten" +msgstr "Aucune donnée" + +#: vbv_lernwelt/core/admin.py:32 +msgid "Personal info" +msgstr "" + +#: vbv_lernwelt/core/admin.py:34 +msgid "Permissions" +msgstr "" + +#: vbv_lernwelt/core/admin.py:45 +msgid "Important dates" +msgstr "" + +#: vbv_lernwelt/core/admin.py:47 +msgid "Profile" +msgstr "" + +#: vbv_lernwelt/core/admin.py:62 +msgid "Organisation" +msgstr "" + +#: vbv_lernwelt/core/admin.py:75 +msgid "Additional data" +msgstr "" + +#: vbv_lernwelt/course/models.py:24 vbv_lernwelt/course/models.py:62 +msgid "Titel" +msgstr "" + +#: vbv_lernwelt/course/models.py:26 +msgid "Kategorie-Name" +msgstr "" + +#: vbv_lernwelt/course/models.py:29 +msgid "Slug" +msgstr "" + +#: vbv_lernwelt/course/models.py:64 +msgid "Allgemein" +msgstr "" + +#: vbv_lernwelt/course/models.py:177 +msgid "Lehrgang-Seite" +msgstr "" + +#: vbv_lernwelt/course/models.py:272 +msgid "Teilnehmer" +msgstr "" + +#: vbv_lernwelt/course/models.py:273 +msgid "Experte/Trainer" +msgstr "" + +#: vbv_lernwelt/course/models.py:332 +msgid "Dokumente im Circle ein/aus" +msgstr "" + +#: vbv_lernwelt/course/models.py:336 +msgid "Lernmentor-Funktion ein/aus" +msgstr "" + +#: vbv_lernwelt/course/models.py:340 +msgid "Kompetenzweise ein/aus" +msgstr "" + +#: vbv_lernwelt/course/models.py:343 +msgid "Versicherungsvermittler-Lehrgang" +msgstr "" + +#: vbv_lernwelt/course/models.py:344 +msgid "ÜK-Lehrgang" +msgstr "" + +#: vbv_lernwelt/course_session/services/export_attendance.py:111 +msgid "Anwesend" +msgstr "Présent" + +#: vbv_lernwelt/course_session/services/export_attendance.py:111 +msgid "Nicht anwesend" +msgstr "Pas présent" + +#: vbv_lernwelt/course_session/services/export_attendance.py:118 +msgid "Vorname" +msgstr "Prénom" + +#: vbv_lernwelt/course_session/services/export_attendance.py:119 +msgid "Nachname" +msgstr "Nom de famille" + +#: vbv_lernwelt/course_session/services/export_attendance.py:120 +msgid "Email" +msgstr "Email" + +#: vbv_lernwelt/course_session/services/export_attendance.py:121 +#: vbv_lernwelt/course_session/services/export_attendance.py:133 +msgid "Lehrvertragsnummer" +msgstr "Numéro de contrat d'apprentissage" + +#: vbv_lernwelt/feedback/export.py:33 +msgid "Zufriedenheit insgesamt" +msgstr "Degré de satisfaction au global" + +#: vbv_lernwelt/feedback/export.py:34 +msgid "Zielerreichung insgesamt" +msgstr "Degré de réalisation des objectifs" + +#: vbv_lernwelt/feedback/export.py:37 +msgid "" +"Wie beurteilst du deine Sicherheit bezüglichen den Themen nach dem Kurs?" +msgstr "As-tu l’impression de bien maîtriser les sujets qui ont été abordés pendant le cours ?" + +#: vbv_lernwelt/feedback/export.py:41 +msgid "Waren die Vorbereitungsaufträge klar und verständlich?" +msgstr "Les travaux préparatoires étaient-ils clairs et compréhensibles ?" + +#: vbv_lernwelt/feedback/export.py:45 +msgid "" +"Wie beurteilst du die Themensicherheit und Fachkompetenz des Kursleiters/der " +"Kursleiterin?" +msgstr "Que penses-tu des compétences techniques de la personne chargée du cours et de sa maîtrise du sujet ?" + +#: vbv_lernwelt/feedback/export.py:49 +msgid "" +"Wurden Fragen und Anregungen der Kursteilnehmenden ernst genommen und " +"aufgegriffen?" +msgstr "Les questions et les suggestions des participants ont-elles été prises au sérieux et traitées correctement ?" + +#: vbv_lernwelt/feedback/export.py:53 +msgid "Was möchtest du dem Kursleiter/der Kursleiterin sonst noch sagen?" +msgstr "Souhaites-tu ajouter quelque chose à l’intention de la personne chargée du cours ?" + +#: vbv_lernwelt/feedback/export.py:55 +msgid "Würdest du den Kurs weiterempfehlen?" +msgstr "Est-ce que tu recommandes ce cours ?" + +#: vbv_lernwelt/feedback/export.py:56 +msgid "Was hat dir besonders gut gefallen?" +msgstr "Qu’est-ce qui t’a particulièrement plu ?" + +#: vbv_lernwelt/feedback/export.py:57 +msgid "Wo siehst du Verbesserungspotential?" +msgstr "À ton avis, quels sont les points qui pourraient être améliorés ?" + +#: vbv_lernwelt/feedback/export.py:144 +msgid "Durchführung" +msgstr "Opérations" + +#: vbv_lernwelt/feedback/export.py:145 +msgid "Datum" +msgstr "Date" + +#: vbv_lernwelt/feedback/models.py:31 +msgid "Internet" +msgstr "" + +#: vbv_lernwelt/feedback/models.py:32 +msgid "Leaflet" +msgstr "" + +#: vbv_lernwelt/feedback/models.py:33 +msgid "Newspaper" +msgstr "" + +#: vbv_lernwelt/feedback/models.py:34 +msgid "Personal recommendation" +msgstr "" + +#: vbv_lernwelt/feedback/models.py:35 +msgid "Public event" +msgstr "" + +#: vbv_lernwelt/feedback/models.py:36 +msgid "Other" +msgstr "" + +#: vbv_lernwelt/media_files/models.py:27 vbv_lernwelt/media_files/models.py:54 +#: vbv_lernwelt/media_files/models.py:64 vbv_lernwelt/media_files/models.py:83 +msgid "file" +msgstr "" + +#: vbv_lernwelt/notify/models.py:9 +msgid "User Interaction" +msgstr "" + +#: vbv_lernwelt/notify/models.py:10 +msgid "Progress" +msgstr "" + +#: vbv_lernwelt/notify/models.py:11 +msgid "Information" +msgstr "" + +#: vbv_lernwelt/notify/models.py:16 +msgid "Attendance Course Reminder" +msgstr "" + +#: vbv_lernwelt/notify/models.py:18 +msgid "Assignment Reminder" +msgstr "" + +#: vbv_lernwelt/notify/models.py:21 +msgid "Casework Expert Evaluation Reminder" +msgstr "" + +#: vbv_lernwelt/notify/models.py:23 +msgid "Casework Submitted" +msgstr "" + +#: vbv_lernwelt/notify/models.py:24 +msgid "Casework Evaluated" +msgstr "" + +#: vbv_lernwelt/notify/models.py:25 +msgid "New Feedback" +msgstr "" + +#: vbv_lernwelt/notify/models.py:28 +msgid "Self Evaluation Feedback Requested" +msgstr "" + +#: vbv_lernwelt/notify/models.py:31 +msgid "Self Evaluation Feedback Provided" +msgstr "" + +#: vbv_lernwelt/templates/wagtailadmin/pages/listing/_page_title_explore.html:8 +msgid "Sites menu" +msgstr "" + +#: vbv_lernwelt/templates/wagtailadmin/pages/listing/_page_title_explore.html:14 +msgid "Edit this page" +msgstr "" diff --git a/server/locale/it/LC_MESSAGES/django.mo b/server/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 00000000..5cb0e698 Binary files /dev/null and b/server/locale/it/LC_MESSAGES/django.mo differ diff --git a/server/locale/it/LC_MESSAGES/django.po b/server/locale/it/LC_MESSAGES/django.po new file mode 100644 index 00000000..c094423a --- /dev/null +++ b/server/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,263 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-06-17 08:25+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: vbv_lernwelt/assignment/export.py:181 +msgid "Bestanden" +msgstr "Superato" + +#: vbv_lernwelt/assignment/export.py:181 +msgid "Nicht bestanden" +msgstr "Fallito" + +#: vbv_lernwelt/assignment/export.py:195 vbv_lernwelt/assignment/export.py:198 +#: vbv_lernwelt/assignment/export.py:199 +msgid "Keine Daten" +msgstr "Nessun dato" + +#: vbv_lernwelt/core/admin.py:32 +msgid "Personal info" +msgstr "" + +#: vbv_lernwelt/core/admin.py:34 +msgid "Permissions" +msgstr "" + +#: vbv_lernwelt/core/admin.py:45 +msgid "Important dates" +msgstr "" + +#: vbv_lernwelt/core/admin.py:47 +msgid "Profile" +msgstr "" + +#: vbv_lernwelt/core/admin.py:62 +msgid "Organisation" +msgstr "" + +#: vbv_lernwelt/core/admin.py:75 +msgid "Additional data" +msgstr "" + +#: vbv_lernwelt/course/models.py:24 vbv_lernwelt/course/models.py:62 +msgid "Titel" +msgstr "" + +#: vbv_lernwelt/course/models.py:26 +msgid "Kategorie-Name" +msgstr "" + +#: vbv_lernwelt/course/models.py:29 +msgid "Slug" +msgstr "" + +#: vbv_lernwelt/course/models.py:64 +msgid "Allgemein" +msgstr "" + +#: vbv_lernwelt/course/models.py:177 +msgid "Lehrgang-Seite" +msgstr "" + +#: vbv_lernwelt/course/models.py:272 +msgid "Teilnehmer" +msgstr "" + +#: vbv_lernwelt/course/models.py:273 +msgid "Experte/Trainer" +msgstr "" + +#: vbv_lernwelt/course/models.py:332 +msgid "Dokumente im Circle ein/aus" +msgstr "" + +#: vbv_lernwelt/course/models.py:336 +msgid "Lernmentor-Funktion ein/aus" +msgstr "" + +#: vbv_lernwelt/course/models.py:340 +msgid "Kompetenzweise ein/aus" +msgstr "" + +#: vbv_lernwelt/course/models.py:343 +msgid "Versicherungsvermittler-Lehrgang" +msgstr "" + +#: vbv_lernwelt/course/models.py:344 +msgid "ÜK-Lehrgang" +msgstr "" + +#: vbv_lernwelt/course_session/services/export_attendance.py:111 +msgid "Anwesend" +msgstr "Presente" + +#: vbv_lernwelt/course_session/services/export_attendance.py:111 +msgid "Nicht anwesend" +msgstr "Non presente" + +#: vbv_lernwelt/course_session/services/export_attendance.py:118 +msgid "Vorname" +msgstr "Nome" + +#: vbv_lernwelt/course_session/services/export_attendance.py:119 +msgid "Nachname" +msgstr "Cognome" + +#: vbv_lernwelt/course_session/services/export_attendance.py:120 +msgid "Email" +msgstr "E-mail" + +#: vbv_lernwelt/course_session/services/export_attendance.py:121 +#: vbv_lernwelt/course_session/services/export_attendance.py:133 +msgid "Lehrvertragsnummer" +msgstr "Numero di contratto di tirocinio" + +#: vbv_lernwelt/feedback/export.py:33 +msgid "Zufriedenheit insgesamt" +msgstr "Soddisfazione complessiva" + +#: vbv_lernwelt/feedback/export.py:34 +msgid "Zielerreichung insgesamt" +msgstr "Raggiungimento complessivo degli obiettivi" + +#: vbv_lernwelt/feedback/export.py:37 +msgid "" +"Wie beurteilst du deine Sicherheit bezüglichen den Themen nach dem Kurs?" +msgstr "Come valuti il tuo livello di preparazione sui temi dopo il corso?" + +#: vbv_lernwelt/feedback/export.py:41 +msgid "Waren die Vorbereitungsaufträge klar und verständlich?" +msgstr "Gli incarichi di preparazione erano chiari e comprensibili?" + +#: vbv_lernwelt/feedback/export.py:45 +msgid "" +"Wie beurteilst du die Themensicherheit und Fachkompetenz des Kursleiters/der " +"Kursleiterin?" +msgstr "Come valuti il livello di preparazione sui temi e le competenze specialistiche dell’istruttore/istruttrice del corso?" + +#: vbv_lernwelt/feedback/export.py:49 +msgid "" +"Wurden Fragen und Anregungen der Kursteilnehmenden ernst genommen und " +"aufgegriffen?" +msgstr "Le domande e i suggerimenti dei/delle partecipanti al corso sono stati accolti e presi sul serio?" + +#: vbv_lernwelt/feedback/export.py:53 +msgid "Was möchtest du dem Kursleiter/der Kursleiterin sonst noch sagen?" +msgstr "Cos’altro vorresti ancora dire all’istruttore/istruttrice del corso?" + +#: vbv_lernwelt/feedback/export.py:55 +msgid "Würdest du den Kurs weiterempfehlen?" +msgstr "Raccomanderesti il corso?" + +#: vbv_lernwelt/feedback/export.py:56 +msgid "Was hat dir besonders gut gefallen?" +msgstr "Cos’hai apprezzato particolarmente?" + +#: vbv_lernwelt/feedback/export.py:57 +msgid "Wo siehst du Verbesserungspotential?" +msgstr "Dove vedi un potenziale di miglioramento?" + +#: vbv_lernwelt/feedback/export.py:144 +msgid "Durchführung" +msgstr "Svolgimenti" + +#: vbv_lernwelt/feedback/export.py:145 +msgid "Datum" +msgstr "Data" + +#: vbv_lernwelt/feedback/models.py:31 +msgid "Internet" +msgstr "" + +#: vbv_lernwelt/feedback/models.py:32 +msgid "Leaflet" +msgstr "" + +#: vbv_lernwelt/feedback/models.py:33 +msgid "Newspaper" +msgstr "" + +#: vbv_lernwelt/feedback/models.py:34 +msgid "Personal recommendation" +msgstr "" + +#: vbv_lernwelt/feedback/models.py:35 +msgid "Public event" +msgstr "" + +#: vbv_lernwelt/feedback/models.py:36 +msgid "Other" +msgstr "" + +#: vbv_lernwelt/media_files/models.py:27 vbv_lernwelt/media_files/models.py:54 +#: vbv_lernwelt/media_files/models.py:64 vbv_lernwelt/media_files/models.py:83 +msgid "file" +msgstr "" + +#: vbv_lernwelt/notify/models.py:9 +msgid "User Interaction" +msgstr "" + +#: vbv_lernwelt/notify/models.py:10 +msgid "Progress" +msgstr "" + +#: vbv_lernwelt/notify/models.py:11 +msgid "Information" +msgstr "" + +#: vbv_lernwelt/notify/models.py:16 +msgid "Attendance Course Reminder" +msgstr "" + +#: vbv_lernwelt/notify/models.py:18 +msgid "Assignment Reminder" +msgstr "" + +#: vbv_lernwelt/notify/models.py:21 +msgid "Casework Expert Evaluation Reminder" +msgstr "" + +#: vbv_lernwelt/notify/models.py:23 +msgid "Casework Submitted" +msgstr "" + +#: vbv_lernwelt/notify/models.py:24 +msgid "Casework Evaluated" +msgstr "" + +#: vbv_lernwelt/notify/models.py:25 +msgid "New Feedback" +msgstr "" + +#: vbv_lernwelt/notify/models.py:28 +msgid "Self Evaluation Feedback Requested" +msgstr "" + +#: vbv_lernwelt/notify/models.py:31 +msgid "Self Evaluation Feedback Provided" +msgstr "" + +#: vbv_lernwelt/templates/wagtailadmin/pages/listing/_page_title_explore.html:8 +msgid "Sites menu" +msgstr "" + +#: vbv_lernwelt/templates/wagtailadmin/pages/listing/_page_title_explore.html:14 +msgid "Edit this page" +msgstr "" diff --git a/server/vbv_lernwelt/assignment/export.py b/server/vbv_lernwelt/assignment/export.py index 39ff9247..8761dabe 100644 --- a/server/vbv_lernwelt/assignment/export.py +++ b/server/vbv_lernwelt/assignment/export.py @@ -2,6 +2,7 @@ from dataclasses import dataclass from io import BytesIO import structlog +from django.utils.translation import gettext as _ from openpyxl import Workbook from vbv_lernwelt.assignment.models import ( @@ -138,13 +139,13 @@ def _create_sheet( sheet.cell( row=1, column=col_idx, - value=f"{col_prefix} bestanden", + value=f"{col_prefix} {_('bestanden')}", ) sheet.cell( row=1, column=col_idx + 1, - value=f"{col_prefix} Resultat %", + value=f"{col_prefix} {_('Resultat')} %", ) ordered_assignement_ids.append(cse.assignment.id) @@ -177,7 +178,9 @@ def _add_rows( if user_ac: status_text = ( - "Bestanden" if user_ac.evaluation_passed else "Nicht bestanden" + _("Bestanden") + if user_ac.evaluation_passed + else _("Nicht bestanden") ) sheet.cell(row=row_idx, column=col_idx, value=status_text) try: @@ -191,11 +194,11 @@ def _add_rows( ), ) except (ZeroDivisionError, TypeError): - sheet.cell(row=row_idx, column=col_idx + 1, value="Keine Daten") + sheet.cell(row=row_idx, column=col_idx + 1, value=_("Keine Daten")) else: - sheet.cell(row=row_idx, column=col_idx, value="Keine Daten") - sheet.cell(row=row_idx, column=col_idx + 1, value="Keine Daten") + sheet.cell(row=row_idx, column=col_idx, value=_("Keine Daten")) + sheet.cell(row=row_idx, column=col_idx + 1, value=_("Keine Daten")) col_idx += 2 diff --git a/server/vbv_lernwelt/course_session/services/export_attendance.py b/server/vbv_lernwelt/course_session/services/export_attendance.py index 92ec69f2..0fde37bb 100644 --- a/server/vbv_lernwelt/course_session/services/export_attendance.py +++ b/server/vbv_lernwelt/course_session/services/export_attendance.py @@ -4,6 +4,7 @@ from io import BytesIO from itertools import groupby import structlog +from django.utils.translation import gettext as _ from openpyxl import Workbook from vbv_lernwelt.course.models import CourseSessionUser @@ -88,7 +89,7 @@ def _create_sheet( sheet.cell( row=1, column=col_idx, - value=f"Anwesenheit {circle.title} {course.due_date.start.strftime('%d.%m.%Y')}", + value=f"{_('Anwesenheit')} {circle.title} {course.due_date.start.strftime('%d.%m.%Y')}", ) user_dict_map = {d["user_id"]: d for d in course.attendance_user_list} attendance_data[circle.title] = user_dict_map @@ -107,17 +108,17 @@ def _add_rows(sheet, users: list[CourseSessionUser], attendance_data): for key, user_dict_map in attendance_data.items(): user_dict = user_dict_map.get(str(user.user.id), {}) status = user_dict.get("status", "") if user_dict else "" - status_text = "Anwesend" if status == "PRESENT" else "Nicht anwesend" + status_text = _("Anwesend") if status == "PRESENT" else _("Nicht anwesend") sheet.cell(row=row_idx, column=col_idx, value=status_text) col_idx += 1 def add_user_headers(sheet): # todo: translate headers - sheet.cell(row=1, column=1, value="Vorname") - sheet.cell(row=1, column=2, value="Nachname") - sheet.cell(row=1, column=3, value="Email") - sheet.cell(row=1, column=4, value="Lehrvertragsnummer") + sheet.cell(row=1, column=1, value=_("Vorname")) + sheet.cell(row=1, column=2, value=_("Nachname")) + sheet.cell(row=1, column=3, value=_("Email")) + sheet.cell(row=1, column=4, value=_("Lehrvertragsnummer")) return 5 # return the next column index @@ -129,7 +130,7 @@ def add_user_export_data(sheet, user: CourseSessionUser, row_idx: int) -> int: sheet.cell( row=row_idx, column=4, - value=user.user.additional_json_data.get("Lehrvertragsnummer", ""), + value=user.user.additional_json_data.get(_("Lehrvertragsnummer"), ""), ) return 5 # return the next column index diff --git a/server/vbv_lernwelt/dashboard/tests/test_views.py b/server/vbv_lernwelt/dashboard/tests/test_views.py index 2e4b76fe..a556b809 100644 --- a/server/vbv_lernwelt/dashboard/tests/test_views.py +++ b/server/vbv_lernwelt/dashboard/tests/test_views.py @@ -461,7 +461,9 @@ class ExportXlsTestCase(TestCase): supervisor, self.ALLOWED_ROLES, requested_cs_ids ) - self.assertCountEqual([int(cs) for cs in requested_cs_ids], [csr.id for csr in allowed_csrs_ids]) + self.assertCountEqual( + [int(cs) for cs in requested_cs_ids], [csr.id for csr in allowed_csrs_ids] + ) def test_student_cannot_export_data(self): # student cannot export any data diff --git a/server/vbv_lernwelt/feedback/export.py b/server/vbv_lernwelt/feedback/export.py index bf81bbd7..0086d910 100644 --- a/server/vbv_lernwelt/feedback/export.py +++ b/server/vbv_lernwelt/feedback/export.py @@ -5,6 +5,7 @@ from typing import List, Tuple import structlog from django.db.models import QuerySet +from django.utils.translation import gettext as _ from openpyxl import Workbook from vbv_lernwelt.course_session.services.export_attendance import ( @@ -29,31 +30,35 @@ VV_FEEDBACK_QUESTIONS = [ ] UK_FEEDBACK_QUESTIONS = [ - ("satisfaction", "Zufriedenheit insgesamt"), - ("goal_attainment", "Zielerreichung insgesamt"), + ("satisfaction", _("Zufriedenheit insgesamt")), + ("goal_attainment", _("Zielerreichung insgesamt")), ( "proficiency", - "Wie beurteilst du deine Sicherheit bezüglichen den Themen nach dem Kurs?", + _("Wie beurteilst du deine Sicherheit bezüglichen den Themen nach dem Kurs?"), ), ( "preparation_task_clarity", - "Waren die Vorbereitungsaufträge klar und verständlich?", + _("Waren die Vorbereitungsaufträge klar und verständlich?"), ), ( "instructor_competence", - "Wie beurteilst du die Themensicherheit und Fachkompetenz des Kursleiters/der Kursleiterin?", + _( + "Wie beurteilst du die Themensicherheit und Fachkompetenz des Kursleiters/der Kursleiterin?" + ), ), ( "instructor_respect", - "Wurden Fragen und Anregungen der Kursteilnehmenden ernst genommen und aufgegriffen?", + _( + "Wurden Fragen und Anregungen der Kursteilnehmenden ernst genommen und aufgegriffen?" + ), ), ( "instructor_open_feedback", - "Was möchtest du dem Kursleiter/der Kursleiterin sonst noch sagen?", + _("Was möchtest du dem Kursleiter/der Kursleiterin sonst noch sagen?"), ), - ("would_recommend", "Würdest du den Kurs weiterempfehlen?"), - ("course_positive_feedback", "Was hat dir besonders gut gefallen?"), - ("course_negative_feedback", "Wo siehst du Verbesserungspotential?"), + ("would_recommend", _("Würdest du den Kurs weiterempfehlen?")), + ("course_positive_feedback", _("Was hat dir besonders gut gefallen?")), + ("course_negative_feedback", _("Wo siehst du Verbesserungspotential?")), ] @@ -140,8 +145,8 @@ def _create_sheet(wb: Workbook, title: str, data: list[FeedbackResponse]): ) # add header - sheet.cell(row=1, column=1, value="Durchführung") - sheet.cell(row=1, column=2, value="Datum") + sheet.cell(row=1, column=1, value=_("Durchführung")) + sheet.cell(row=1, column=2, value=_("Datum")) questions = [q[1] for q in question_data] for col_idx, title in enumerate(questions, start=3): sheet.cell(row=1, column=col_idx, value=title) diff --git a/server/vbv_lernwelt/feedback/graphql/queries.py b/server/vbv_lernwelt/feedback/graphql/queries.py new file mode 100644 index 00000000..78913462 --- /dev/null +++ b/server/vbv_lernwelt/feedback/graphql/queries.py @@ -0,0 +1,38 @@ +import itertools + +import graphene +from graphene import ObjectType + +from vbv_lernwelt.feedback.models import FeedbackResponse + + +class FeedbackSummary(ObjectType): + circle_id = graphene.Int() + count = graphene.Int() + + +class FeedbackForCourseQuery(object): + course_feedback_summary = graphene.List( + FeedbackSummary, course_id=graphene.Int(required=True) + ) + + def resolve_course_feedback_summary(self, info, **kwargs): + course_id = kwargs.get("course_id") + user = info.context.user + + feedbacks = FeedbackResponse.objects.filter( + course_session__course_id=course_id, circle__expert__user=user + ).order_by("circle_id") + summary = [] + + grouped_feedbacks = itertools.groupby(feedbacks, lambda x: x.circle_id) + + for key, feedbacks in grouped_feedbacks: + summary.append( + { + "circle_id": key, + "count": len(list(feedbacks)), + } + ) + + return summary