diff --git a/messages/uniworx/de-de-formal.msg b/messages/uniworx/de-de-formal.msg
index 364fcb8b4..edb8c8f88 100644
--- a/messages/uniworx/de-de-formal.msg
+++ b/messages/uniworx/de-de-formal.msg
@@ -2109,4 +2109,9 @@ CsvFormat: CSV-Format
ExerciseSheet: Übungsblatt
DefinitionCourseEvents: Kurstermine
DefinitionCourseNews: Kurs-Aktuelles
-Invitations: Einladungen
\ No newline at end of file
+Invitations: Einladungen
+SheetSubmission: Abgabe
+CommCourse: Kursmitteilung
+CommTutorial: Tutorium-Mitteilung
+Clone: Klonen
+Deficit: Defizit
\ No newline at end of file
diff --git a/messages/uniworx/en-eu.msg b/messages/uniworx/en-eu.msg
index ce14e2845..55e78a5d2 100644
--- a/messages/uniworx/en-eu.msg
+++ b/messages/uniworx/en-eu.msg
@@ -2105,4 +2105,9 @@ CsvFormat: CSV format
ExerciseSheet: Exercise sheet
DefinitionCourseEvents: Course occurrences
DefinitionCourseNews: Course news
-Invitations: Invitations
\ No newline at end of file
+Invitations: Invitations
+SheetSubmission: Sheet submission
+CommCourse: Course message
+CommTutorial: Tutorial message
+Clone: Cloning
+Deficit: Deficit
\ No newline at end of file
diff --git a/src/Foundation.hs b/src/Foundation.hs
index 50d2b538d..5dc20beb7 100644
--- a/src/Foundation.hs
+++ b/src/Foundation.hs
@@ -2278,6 +2278,14 @@ defaultLinks = fmap catMaybes . mapM runMaybeT $ -- Define the menu items of the
, menuItemModal = False
, menuItemAccessCallback' = return True
}
+ , return MenuItem
+ { menuItemType = Footer
+ , menuItemLabel = MsgMenuGlossary
+ , menuItemIcon = Nothing
+ , menuItemRoute = SomeRoute GlossaryR
+ , menuItemModal = False
+ , menuItemAccessCallback' = return True
+ }
, do
mCurrentRoute <- getCurrentRoute
diff --git a/src/Handler/Utils/I18n.hs b/src/Handler/Utils/I18n.hs
index a98067a49..18c27ce84 100644
--- a/src/Handler/Utils/I18n.hs
+++ b/src/Handler/Utils/I18n.hs
@@ -73,7 +73,7 @@ i18nWidgetFiles basename = do
-- Dispatch to correct language (depending on user settings via `selectLanguage`) at run time
ws <- newName "ws" -- Name for dispatch function
letE
- [ funD ws $ [ clause [litP $ stringL kind, litP $ stringL l] (normalB . widgetFile $ "i18n" > basename > kind <.> l) []
+ [ funD ws $ [ clause [litP $ stringL kind, litP $ stringL l] (normalB [e|$(widgetFile $ "i18n" > basename > kind <.> l) :: Widget|]) []
| (unpack -> kind, ls) <- Map.toList availableTranslations'
, l <- unpack <$> NonEmpty.toList ls
] ++ [ clause [wildP, wildP] (normalB [e| error "selectLanguage returned an invalid translation" |]) [] ] -- Fallback mostly there so compiler does not complain about non-exhaustive pattern match
diff --git a/templates/i18n/glossary/clone.de-de-formal.hamlet b/templates/i18n/glossary/clone.de-de-formal.hamlet
new file mode 100644
index 000000000..e6440bff2
--- /dev/null
+++ b/templates/i18n/glossary/clone.de-de-formal.hamlet
@@ -0,0 +1,6 @@
+$newline never
+
+ Einige Objekte in Uni2work (Kurse, Übungsblätter, ...) lassen sich klonen.
+ D.h. alle sinnvollen Einstellungen werden vom geklonten Objekt übernommen und #
+ das Formular zum Erstellen eines neuen Objekts vom selben Typ mit den Daten #
+ vorausgefüllt.
diff --git a/templates/i18n/glossary/comm-course.de-de-formal.hamlet b/templates/i18n/glossary/comm-course.de-de-formal.hamlet
new file mode 100644
index 000000000..ee17239b7
--- /dev/null
+++ b/templates/i18n/glossary/comm-course.de-de-formal.hamlet
@@ -0,0 +1,6 @@
+$newline never
+
+ _{MsgCommTutorial}
+
+ Kursverwalter und Tutoren haben die Möglichkeit über Uni2work E-Mails an ihre #
+ Kurs- bzw. Tutoriumsteilnehmer zu verschicken.
diff --git a/templates/i18n/glossary/corrector.de-de-formal.hamlet b/templates/i18n/glossary/corrector.de-de-formal.hamlet
index 6fc4ef37e..6435cfed6 100644
--- a/templates/i18n/glossary/corrector.de-de-formal.hamlet
+++ b/templates/i18n/glossary/corrector.de-de-formal.hamlet
@@ -1,4 +1,16 @@
$newline never
+
+ _{MsgCorProportion}
+
+ _{MsgCorState}
Nutzer, die von einem Kursverwalter beauftragt wurden bei der Korrektur von #
- Übungsblättern und/oder Prüfungen mitzuwirken.
+ einzelnen Übungsblättern oder Prüfungen mitzuwirken.
+ Beim Zuteilen für ein Übungsblatt kann ein Korrekturanteil festgelegt werden. #
+ Bei der automatischen Verteilung von Korrekturen wird dann versucht die #
+ eingestellten Anteile möglichst gut widerzuspiegeln.
+ Bei Übungsblättern gibt es die Möglichkeit Korrektoren zwar prinzipiell #
+ zuzuteilen aber dann als abwesend oder entschuldigt zu markieren.
+ In beiden Fällen werden diesem Korrektor dann keine Abgaben zugeteilt.
+ Ist der Korrektor nur abwesend werden die so nicht zugeteilten Abgaben jedoch #
+ als Defizit vermerkt.
diff --git a/templates/i18n/glossary/deficit.de-de-formal.hamlet b/templates/i18n/glossary/deficit.de-de-formal.hamlet
new file mode 100644
index 000000000..81af624c7
--- /dev/null
+++ b/templates/i18n/glossary/deficit.de-de-formal.hamlet
@@ -0,0 +1,9 @@
+$newline never
+
+ Wenn die Korrekturen für ein Übungsblatt aufgeteilt werden, kann nicht immer #
+ sichergestellt werden, dass alle Korrektoren eine Anzahl von Abgaben zugeteilt #
+ bekommen, die exakt ihrem Korrekturanteil entspricht.
+ Ist dies der Fall wird die Anzahl von Abgaben, um die die Belastung eines #
+ einzelnen Korrektors vom Ideal abweicht, als Defizit bezeichnet.
+ Bei der nächsten Zuteilung von Korrekturen wird dann versucht etwaige Defizite #
+ auszugleichen.
diff --git a/templates/i18n/glossary/sheet-group.de-de-formal.hamlet b/templates/i18n/glossary/sheet-group.de-de-formal.hamlet
new file mode 100644
index 000000000..76c617afe
--- /dev/null
+++ b/templates/i18n/glossary/sheet-group.de-de-formal.hamlet
@@ -0,0 +1,11 @@
+$newline never
+
+ _{MsgSheetGroupArbitrary}
+
+ _{MsgSheetGroupRegisteredGroups}
+
+ Es besteht die Möglichkeit Studierenden zu erlauben, bei der Abgabe für #
+ einzelne Übungsblätter in Gruppen abzugeben.
+ Diese Gruppen werden entweder für jede Abgabe von den Studierenden selbst #
+ festgelegt (Arbiträre Gruppen) oder von einem Kursverwalter festgelegt #
+ (Registrierte Gruppen).