diff --git a/apps/official/BiscuIT-App-Alsijil b/apps/official/BiscuIT-App-Alsijil
index e30cde217c3f61419c4a7db32620f5c8baeaf76f..4d750438f94b02a226ea57e94c176aff09191c3f 160000
--- a/apps/official/BiscuIT-App-Alsijil
+++ b/apps/official/BiscuIT-App-Alsijil
@@ -1 +1 @@
-Subproject commit e30cde217c3f61419c4a7db32620f5c8baeaf76f
+Subproject commit 4d750438f94b02a226ea57e94c176aff09191c3f
diff --git a/apps/official/BiscuIT-App-Chronos b/apps/official/BiscuIT-App-Chronos
index 65d58a28ab86b4935535caa52a200efa8e753380..8a44509b87d9bd128c0f2632177477a488fbbc99 160000
--- a/apps/official/BiscuIT-App-Chronos
+++ b/apps/official/BiscuIT-App-Chronos
@@ -1 +1 @@
-Subproject commit 65d58a28ab86b4935535caa52a200efa8e753380
+Subproject commit 8a44509b87d9bd128c0f2632177477a488fbbc99
diff --git a/apps/official/BiscuIT-App-Exlibris b/apps/official/BiscuIT-App-Exlibris
index 97ca661b14b1c445c2f31f27901e759e55f6f124..24fe53a250fd4e6eb2065615eab03d0ffbe34d73 160000
--- a/apps/official/BiscuIT-App-Exlibris
+++ b/apps/official/BiscuIT-App-Exlibris
@@ -1 +1 @@
-Subproject commit 97ca661b14b1c445c2f31f27901e759e55f6f124
+Subproject commit 24fe53a250fd4e6eb2065615eab03d0ffbe34d73
diff --git a/apps/official/BiscuIT-App-SchILD-NRW b/apps/official/BiscuIT-App-SchILD-NRW
index e3999edc1018f38c2c60ec241779f048e29c67da..8f370fb89876722a684ba0a981806e0b3df9b69e 160000
--- a/apps/official/BiscuIT-App-SchILD-NRW
+++ b/apps/official/BiscuIT-App-SchILD-NRW
@@ -1 +1 @@
-Subproject commit e3999edc1018f38c2c60ec241779f048e29c67da
+Subproject commit 8f370fb89876722a684ba0a981806e0b3df9b69e
diff --git a/apps/official/BiscuIT-App-Untis b/apps/official/BiscuIT-App-Untis
index 84d122fd6f20c5a438e2e7bd76d4d6cb07ef5425..0645b91648d346e4af96ed17dbbf5f17b35afffd 160000
--- a/apps/official/BiscuIT-App-Untis
+++ b/apps/official/BiscuIT-App-Untis
@@ -1 +1 @@
-Subproject commit 84d122fd6f20c5a438e2e7bd76d4d6cb07ef5425
+Subproject commit 0645b91648d346e4af96ed17dbbf5f17b35afffd
diff --git a/biscuit/core/locale/ar/LC_MESSAGES/django.po b/biscuit/core/locale/ar/LC_MESSAGES/django.po
index d7b8089c6f367973d95915e2dbd1e166280588e9..26fa285610b08cfa96416f264a77e97762ac77e5 100644
--- a/biscuit/core/locale/ar/LC_MESSAGES/django.po
+++ b/biscuit/core/locale/ar/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-27 15:19+0200\n"
+"POT-Creation-Date: 2019-09-02 13:14+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,8 +16,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
-"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
 
 #: apps.py:11
 msgid "BiscuIT - The Free School Information System"
@@ -44,138 +43,162 @@ msgid "Account"
 msgstr ""
 
 #: menus.py:11
-msgid "Login"
+msgid "Stop impersonation"
 msgstr ""
 
 #: menus.py:16
+msgid "Login"
+msgstr ""
+
+#: menus.py:21
 msgid "Logout"
 msgstr ""
 
-#: menus.py:23
+#: menus.py:28
+msgid "Admin"
+msgstr ""
+
+#: menus.py:33
+msgid "Data management"
+msgstr ""
+
+#: menus.py:38
+msgid "Impersonation"
+msgstr ""
+
+#: menus.py:45
 msgid "People"
 msgstr ""
 
-#: menus.py:28 templates/core/persons.html:5
+#: menus.py:50 templates/core/persons.html:5
 msgid "Persons"
 msgstr ""
 
-#: menus.py:33 templates/core/groups.html:5
+#: menus.py:55 templates/core/groups.html:5
 msgid "Groups"
 msgstr ""
 
-#: menus.py:38
+#: menus.py:60
 msgid "Persons and accounts"
 msgstr ""
 
-#: menus.py:47
+#: menus.py:69
 msgid "BiscuIT Software"
 msgstr ""
 
-#: menus.py:51
+#: menus.py:73
 msgid "Website"
 msgstr ""
 
+#: menus.py:83
+msgid "Support"
+msgstr ""
+
+#: menus.py:87 templates/contact_form/contact_form.html:8
+msgid "Get support"
+msgstr ""
+
 #: migrations/0007_school.py:11
 msgid "Default school"
 msgstr ""
 
-#: models.py:19
+#: models.py:20
 msgid "Name"
 msgstr ""
 
-#: models.py:21
+#: models.py:22
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr ""
 
-#: models.py:33
+#: models.py:39
 msgid "female"
 msgstr ""
 
-#: models.py:34
+#: models.py:40
 msgid "male"
 msgstr ""
 
-#: models.py:41
+#: models.py:47
 msgid "Is person active?"
 msgstr ""
 
-#: models.py:43
+#: models.py:49
 msgid "First name"
 msgstr ""
 
-#: models.py:44
+#: models.py:50
 msgid "Last name"
 msgstr ""
 
-#: models.py:46
+#: models.py:52
 msgid "Additional name(s)"
 msgstr ""
 
-#: models.py:49
+#: models.py:55
 msgid "Short name"
 msgstr ""
 
-#: models.py:52
+#: models.py:58
 msgid "Street"
 msgstr ""
 
-#: models.py:54
+#: models.py:60
 msgid "Street number"
 msgstr ""
 
-#: models.py:56
+#: models.py:62
 msgid "Postal code"
 msgstr ""
 
-#: models.py:58
+#: models.py:64
 msgid "Place"
 msgstr ""
 
-#: models.py:60
+#: models.py:66
 msgid "Home phone"
 msgstr ""
 
-#: models.py:62
+#: models.py:68
 msgid "Mobile phone"
 msgstr ""
 
-#: models.py:64
+#: models.py:70
 msgid "E-mail address"
 msgstr ""
 
-#: models.py:67
+#: models.py:73
 msgid "Date of birth"
 msgstr ""
 
-#: models.py:69
+#: models.py:75
 msgid "Sex"
 msgstr ""
 
-#: models.py:71
+#: models.py:77
 msgid "Photo"
 msgstr ""
 
-#: models.py:74
+#: models.py:81
 msgid "Reference ID of import source"
 msgstr ""
 
-#: models.py:76
+#: models.py:83
 msgid "Guardians / Parents"
 msgstr ""
 
-#: models.py:121
+#: models.py:126
 msgid "Long name of group"
 msgstr ""
 
-#: models.py:123
+#: models.py:128
 msgid "Short name of group"
 msgstr ""
 
-#: settings.py:187
+#: settings.py:200
 msgid "German"
 msgstr ""
 
-#: settings.py:188
+#: settings.py:201
 msgid "English"
 msgstr ""
 
@@ -186,14 +209,21 @@ msgid ""
 "    "
 msgstr ""
 
-#: templates/core/edit_person.html:4 templates/core/person_full.html:11
-msgid "Edit person"
+#: templates/contact_form/contact_form_sent.html:9
+msgid ""
+"\n"
+"   The message was successfully submitted.\n"
+"  "
 msgstr ""
 
-#: templates/core/group_full.html:11
+#: templates/core/edit_group.html:4 templates/core/group_full.html:11
 msgid "Edit group"
 msgstr ""
 
+#: templates/core/edit_person.html:4 templates/core/person_full.html:11
+msgid "Edit person"
+msgstr ""
+
 #: templates/core/group_full.html:14
 msgid "Details"
 msgstr ""
@@ -221,6 +251,10 @@ msgstr ""
 msgid "List of all groups"
 msgstr ""
 
+#: templates/core/language_form.html:2
+msgid "Language"
+msgstr ""
+
 #: templates/core/person_full.html:14
 msgid "Contact details"
 msgstr ""
@@ -248,8 +282,7 @@ msgstr ""
 msgid ""
 "\n"
 "    You can use this form to assign user accounts to persons. Use the\n"
-"    dropdowns to select existing accounts; use the text fields to create "
-"new\n"
+"    dropdowns to select existing accounts; use the text fields to create new\n"
 "    accounts on-the-fly. The latter will create a new account with the\n"
 "    entered username and copy all other details from the person.\n"
 "   "
@@ -279,14 +312,12 @@ msgstr ""
 msgid "Assorted"
 msgstr ""
 
-#: templates/footer-menu.html:36
-msgid "Language"
+#: templates/impersonate/list_users.html:8
+msgid "Impersonate user"
 msgstr ""
 
 #: views.py:29
-msgid ""
-"This page does not exist. If you were redirected by a link on an external "
-"page, it is possible that that link was outdated."
+msgid "This page does not exist. If you were redirected by a link on an external page, it is possible that that link was outdated."
 msgstr ""
 
 #: views.py:30
@@ -301,6 +332,10 @@ msgstr ""
 msgid "An unexpected error has occurred."
 msgstr ""
 
-#: views.py:158
+#: views.py:159
 msgid "The person has been saved."
 msgstr ""
+
+#: views.py:180
+msgid "The group has been saved."
+msgstr ""
diff --git a/biscuit/core/locale/de_DE/LC_MESSAGES/django.po b/biscuit/core/locale/de_DE/LC_MESSAGES/django.po
index b29880304f2659c422ee64c9e19445ce1376c979..59cfdfd4a6f923a998a7f49c4c00ab00f47e077d 100644
--- a/biscuit/core/locale/de_DE/LC_MESSAGES/django.po
+++ b/biscuit/core/locale/de_DE/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: BiscuIT - School Information System (SIS)\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-27 15:36+0200\n"
+"POT-Creation-Date: 2019-09-02 13:14+0000\n"
 "PO-Revision-Date: 2019-08-27 14:45+0200\n"
 "Last-Translator: Tom Teichler <tom.teichler@teckids.org>\n"
 "Language-Team: \n"
@@ -24,9 +24,7 @@ msgstr "BiscuIT - Das freie Schulinformationssystem"
 
 #: forms.py:25 forms.py:55
 msgid "You cannot set a new username when also selecting an existing user."
-msgstr ""
-"Sie können keine neuen Benutzer erstellen, wenn Sie gleichzeitig einen "
-"existierenden Benutzer auswählen."
+msgstr "Sie können keine neuen Benutzer erstellen, wenn Sie gleichzeitig einen existierenden Benutzer auswählen."
 
 #: forms.py:27 forms.py:57
 msgid "This username is already in use."
@@ -47,141 +45,166 @@ msgid "Account"
 msgstr "Neues Konto"
 
 #: menus.py:11
+msgid "Stop impersonation"
+msgstr ""
+
+#: menus.py:16
 msgid "Login"
 msgstr "Anmelden"
 
-#: menus.py:16
+#: menus.py:21
 msgid "Logout"
 msgstr "Abmelden"
 
-#: menus.py:23
+#: menus.py:28
+msgid "Admin"
+msgstr ""
+
+#: menus.py:33
+msgid "Data management"
+msgstr ""
+
+#: menus.py:38
+#, fuzzy
+#| msgid "Is person active?"
+msgid "Impersonation"
+msgstr "Ist die Person aktiv?"
+
+#: menus.py:45
 msgid "People"
 msgstr ""
 
-#: menus.py:28 templates/core/persons.html:5
+#: menus.py:50 templates/core/persons.html:5
 msgid "Persons"
 msgstr "Personen"
 
-#: menus.py:33 templates/core/groups.html:5
+#: menus.py:55 templates/core/groups.html:5
 msgid "Groups"
 msgstr "Gruppen"
 
-#: menus.py:38
+#: menus.py:60
 #, fuzzy
 #| msgid "Link persons to accounts"
 msgid "Persons and accounts"
 msgstr "Personen mit Benutzerkonten verknüpfen"
 
-#: menus.py:47
+#: menus.py:69
 msgid "BiscuIT Software"
 msgstr "BiscuIT-Software"
 
-#: menus.py:51
+#: menus.py:73
 msgid "Website"
 msgstr "Website"
 
+#: menus.py:83
+msgid "Support"
+msgstr ""
+
+#: menus.py:87 templates/contact_form/contact_form.html:8
+msgid "Get support"
+msgstr ""
+
 #: migrations/0007_school.py:11
 msgid "Default school"
 msgstr "Standardschule"
 
-#: models.py:19
+#: models.py:20
 msgid "Name"
 msgstr "Name"
 
-#: models.py:21
+#: models.py:22
 msgid "Official name of the school, e.g. as given by supervisory authority"
-msgstr ""
-"Offizieller Name der Schule, wie er z.B. von der Behörde vorgegeben ist"
+msgstr "Offizieller Name der Schule, wie er z.B. von der Behörde vorgegeben ist"
 
-#: models.py:33
+#: models.py:39
 msgid "female"
 msgstr "weiblich"
 
-#: models.py:34
+#: models.py:40
 msgid "male"
 msgstr "männlich"
 
-#: models.py:41
+#: models.py:47
 msgid "Is person active?"
 msgstr "Ist die Person aktiv?"
 
-#: models.py:43
+#: models.py:49
 msgid "First name"
 msgstr "Vorname"
 
-#: models.py:44
+#: models.py:50
 msgid "Last name"
 msgstr "Nachname"
 
-#: models.py:46
+#: models.py:52
 msgid "Additional name(s)"
 msgstr "Zusätzliche Namen"
 
-#: models.py:49
+#: models.py:55
 msgid "Short name"
 msgstr "Kurzname"
 
-#: models.py:52
+#: models.py:58
 msgid "Street"
 msgstr "Straße"
 
-#: models.py:54
+#: models.py:60
 msgid "Street number"
 msgstr "Hausnummer"
 
-#: models.py:56
+#: models.py:62
 msgid "Postal code"
 msgstr "Postleitzahl"
 
-#: models.py:58
+#: models.py:64
 msgid "Place"
 msgstr "Ort"
 
-#: models.py:60
+#: models.py:66
 msgid "Home phone"
 msgstr "Festnetz"
 
-#: models.py:62
+#: models.py:68
 msgid "Mobile phone"
 msgstr "Handy"
 
-#: models.py:64
+#: models.py:70
 msgid "E-mail address"
 msgstr "E-Mail-Adresse"
 
-#: models.py:67
+#: models.py:73
 msgid "Date of birth"
 msgstr "Geburtsdatum"
 
-#: models.py:69
+#: models.py:75
 msgid "Sex"
 msgstr "Geschlecht"
 
-#: models.py:71
+#: models.py:77
 msgid "Photo"
 msgstr "Foto"
 
-#: models.py:74
+#: models.py:81
 msgid "Reference ID of import source"
 msgstr "Referenz-ID der Import-Quelle"
 
-#: models.py:76
+#: models.py:83
 msgid "Guardians / Parents"
 msgstr "Erziehungsberechtigte / Eltern"
 
-#: models.py:121
+#: models.py:126
 msgid "Long name of group"
 msgstr "Langer Name der Gruppe"
 
-#: models.py:123
+#: models.py:128
 msgid "Short name of group"
 msgstr "Kurzer Name der Gruppe"
 
-#: settings.py:187
+#: settings.py:200
 msgid "German"
 msgstr "Deutsch"
 
-#: settings.py:188
+#: settings.py:201
 msgid "English"
 msgstr "Englisch"
 
@@ -192,18 +215,24 @@ msgid ""
 "    "
 msgstr ""
 "\n"
-"     Der Wartungsmodus ist aktuell aktiviert. Bitte versuchen Sie es später "
-"erneut.\n"
+"     Der Wartungsmodus ist aktuell aktiviert. Bitte versuchen Sie es später erneut.\n"
 "    "
 
-#: templates/core/edit_person.html:4 templates/core/person_full.html:11
-msgid "Edit person"
-msgstr "Person editieren"
+#: templates/contact_form/contact_form_sent.html:9
+msgid ""
+"\n"
+"   The message was successfully submitted.\n"
+"  "
+msgstr ""
 
-#: templates/core/group_full.html:11
+#: templates/core/edit_group.html:4 templates/core/group_full.html:11
 msgid "Edit group"
 msgstr "Gruppe editieren"
 
+#: templates/core/edit_person.html:4 templates/core/person_full.html:11
+msgid "Edit person"
+msgstr "Person editieren"
+
 #: templates/core/group_full.html:14
 msgid "Details"
 msgstr "Details"
@@ -234,6 +263,10 @@ msgstr ""
 msgid "List of all groups"
 msgstr "Liste aller Gruppen"
 
+#: templates/core/language_form.html:2
+msgid "Language"
+msgstr ""
+
 #: templates/core/person_full.html:14
 msgid "Contact details"
 msgstr "Kontaktdetails"
@@ -264,17 +297,14 @@ msgstr "Personen mit Benutzerkonten verknüpfen"
 msgid ""
 "\n"
 "    You can use this form to assign user accounts to persons. Use the\n"
-"    dropdowns to select existing accounts; use the text fields to create "
-"new\n"
+"    dropdowns to select existing accounts; use the text fields to create new\n"
 "    accounts on-the-fly. The latter will create a new account with the\n"
 "    entered username and copy all other details from the person.\n"
 "   "
 msgstr ""
 "\n"
-"    Sie können dieses Formular nutzen, um Benutzerkonten Personen "
-"zuzuweisen. Nutzen Sie das\n"
-"    Auswahlfeld um ein existierendes Benutzerkonto auszuwählen; nutzen Sie "
-"das Textfeld, um einen neuen Benutzer zu\n"
+"    Sie können dieses Formular nutzen, um Benutzerkonten Personen zuzuweisen. Nutzen Sie das\n"
+"    Auswahlfeld um ein existierendes Benutzerkonto auszuwählen; nutzen Sie das Textfeld, um einen neuen Benutzer zu\n"
 "    erstellen. Letzteres erstellt ein neues Benutzerkonto mit dem\n"
 "    eingegebenen Benutzernamen und kopiert alle anderen Daten der Person.\n"
 "   "
@@ -299,8 +329,7 @@ msgid ""
 "    "
 msgstr ""
 "\n"
-"     Wenn Sie der Meinung sind, dass es sich um einen Fehler in BiscuIT "
-"handelt, kontaktieren Sie bitte einen Ihrer\n"
+"     Wenn Sie der Meinung sind, dass es sich um einen Fehler in BiscuIT handelt, kontaktieren Sie bitte einen Ihrer\n"
 "     Systemadministratoren:\n"
 "    "
 
@@ -308,18 +337,15 @@ msgstr ""
 msgid "Assorted"
 msgstr "Unsortiert"
 
-#: templates/footer-menu.html:36
-msgid "Language"
-msgstr ""
+#: templates/impersonate/list_users.html:8
+#, fuzzy
+#| msgid "Is person active?"
+msgid "Impersonate user"
+msgstr "Ist die Person aktiv?"
 
 #: views.py:29
-msgid ""
-"This page does not exist. If you were redirected by a link on an external "
-"page, it is possible that that link was outdated."
-msgstr ""
-"Diese Seite existiert leider nicht. Wenn Sie über einen Link auf einer "
-"externen Seite hierher gelangt sind, ist es möglich, dass dieser veraltet "
-"war."
+msgid "This page does not exist. If you were redirected by a link on an external page, it is possible that that link was outdated."
+msgstr "Diese Seite existiert leider nicht. Wenn Sie über einen Link auf einer externen Seite hierher gelangt sind, ist es möglich, dass dieser veraltet war."
 
 #: views.py:30
 msgid "Page not found"
@@ -333,14 +359,18 @@ msgstr "Interner Serverfehler"
 msgid "An unexpected error has occurred."
 msgstr "Ein Fehler ist aufgetreten."
 
-#: views.py:158
+#: views.py:159
 msgid "The person has been saved."
 msgstr "Die Person wurde gespeichert."
 
+#: views.py:180
+#, fuzzy
+#| msgid "The person has been saved."
+msgid "The group has been saved."
+msgstr "Die Person wurde gespeichert."
+
 #~ msgid "Maintenance mode"
 #~ msgstr "Wartungsmodus"
 
 #~ msgid "The maintenance mode is currently enabled. Please try again later."
-#~ msgstr ""
-#~ "Der Wartungsmodus ist aktuell aktiviert. Bitte versuchen Sie es später "
-#~ "erneut."
+#~ msgstr "Der Wartungsmodus ist aktuell aktiviert. Bitte versuchen Sie es später erneut."
diff --git a/biscuit/core/locale/fr/LC_MESSAGES/django.po b/biscuit/core/locale/fr/LC_MESSAGES/django.po
index 10cb3f5bb2b858a65e3e25145a6f9642e7b59f80..893062c4badec64b86e0507ab29db2fe70871416 100644
--- a/biscuit/core/locale/fr/LC_MESSAGES/django.po
+++ b/biscuit/core/locale/fr/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-27 15:20+0200\n"
+"POT-Creation-Date: 2019-09-02 13:14+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -43,138 +43,162 @@ msgid "Account"
 msgstr ""
 
 #: menus.py:11
-msgid "Login"
+msgid "Stop impersonation"
 msgstr ""
 
 #: menus.py:16
+msgid "Login"
+msgstr ""
+
+#: menus.py:21
 msgid "Logout"
 msgstr ""
 
-#: menus.py:23
+#: menus.py:28
+msgid "Admin"
+msgstr ""
+
+#: menus.py:33
+msgid "Data management"
+msgstr ""
+
+#: menus.py:38
+msgid "Impersonation"
+msgstr ""
+
+#: menus.py:45
 msgid "People"
 msgstr ""
 
-#: menus.py:28 templates/core/persons.html:5
+#: menus.py:50 templates/core/persons.html:5
 msgid "Persons"
 msgstr ""
 
-#: menus.py:33 templates/core/groups.html:5
+#: menus.py:55 templates/core/groups.html:5
 msgid "Groups"
 msgstr ""
 
-#: menus.py:38
+#: menus.py:60
 msgid "Persons and accounts"
 msgstr ""
 
-#: menus.py:47
+#: menus.py:69
 msgid "BiscuIT Software"
 msgstr ""
 
-#: menus.py:51
+#: menus.py:73
 msgid "Website"
 msgstr ""
 
+#: menus.py:83
+msgid "Support"
+msgstr ""
+
+#: menus.py:87 templates/contact_form/contact_form.html:8
+msgid "Get support"
+msgstr ""
+
 #: migrations/0007_school.py:11
 msgid "Default school"
 msgstr ""
 
-#: models.py:19
+#: models.py:20
 msgid "Name"
 msgstr ""
 
-#: models.py:21
+#: models.py:22
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr ""
 
-#: models.py:33
+#: models.py:39
 msgid "female"
 msgstr ""
 
-#: models.py:34
+#: models.py:40
 msgid "male"
 msgstr ""
 
-#: models.py:41
+#: models.py:47
 msgid "Is person active?"
 msgstr ""
 
-#: models.py:43
+#: models.py:49
 msgid "First name"
 msgstr ""
 
-#: models.py:44
+#: models.py:50
 msgid "Last name"
 msgstr ""
 
-#: models.py:46
+#: models.py:52
 msgid "Additional name(s)"
 msgstr ""
 
-#: models.py:49
+#: models.py:55
 msgid "Short name"
 msgstr ""
 
-#: models.py:52
+#: models.py:58
 msgid "Street"
 msgstr ""
 
-#: models.py:54
+#: models.py:60
 msgid "Street number"
 msgstr ""
 
-#: models.py:56
+#: models.py:62
 msgid "Postal code"
 msgstr ""
 
-#: models.py:58
+#: models.py:64
 msgid "Place"
 msgstr ""
 
-#: models.py:60
+#: models.py:66
 msgid "Home phone"
 msgstr ""
 
-#: models.py:62
+#: models.py:68
 msgid "Mobile phone"
 msgstr ""
 
-#: models.py:64
+#: models.py:70
 msgid "E-mail address"
 msgstr ""
 
-#: models.py:67
+#: models.py:73
 msgid "Date of birth"
 msgstr ""
 
-#: models.py:69
+#: models.py:75
 msgid "Sex"
 msgstr ""
 
-#: models.py:71
+#: models.py:77
 msgid "Photo"
 msgstr ""
 
-#: models.py:74
+#: models.py:81
 msgid "Reference ID of import source"
 msgstr ""
 
-#: models.py:76
+#: models.py:83
 msgid "Guardians / Parents"
 msgstr ""
 
-#: models.py:121
+#: models.py:126
 msgid "Long name of group"
 msgstr ""
 
-#: models.py:123
+#: models.py:128
 msgid "Short name of group"
 msgstr ""
 
-#: settings.py:187
+#: settings.py:200
 msgid "German"
 msgstr ""
 
-#: settings.py:188
+#: settings.py:201
 msgid "English"
 msgstr ""
 
@@ -185,14 +209,21 @@ msgid ""
 "    "
 msgstr ""
 
-#: templates/core/edit_person.html:4 templates/core/person_full.html:11
-msgid "Edit person"
+#: templates/contact_form/contact_form_sent.html:9
+msgid ""
+"\n"
+"   The message was successfully submitted.\n"
+"  "
 msgstr ""
 
-#: templates/core/group_full.html:11
+#: templates/core/edit_group.html:4 templates/core/group_full.html:11
 msgid "Edit group"
 msgstr ""
 
+#: templates/core/edit_person.html:4 templates/core/person_full.html:11
+msgid "Edit person"
+msgstr ""
+
 #: templates/core/group_full.html:14
 msgid "Details"
 msgstr ""
@@ -220,6 +251,10 @@ msgstr ""
 msgid "List of all groups"
 msgstr ""
 
+#: templates/core/language_form.html:2
+msgid "Language"
+msgstr ""
+
 #: templates/core/person_full.html:14
 msgid "Contact details"
 msgstr ""
@@ -247,8 +282,7 @@ msgstr ""
 msgid ""
 "\n"
 "    You can use this form to assign user accounts to persons. Use the\n"
-"    dropdowns to select existing accounts; use the text fields to create "
-"new\n"
+"    dropdowns to select existing accounts; use the text fields to create new\n"
 "    accounts on-the-fly. The latter will create a new account with the\n"
 "    entered username and copy all other details from the person.\n"
 "   "
@@ -278,14 +312,12 @@ msgstr ""
 msgid "Assorted"
 msgstr ""
 
-#: templates/footer-menu.html:36
-msgid "Language"
+#: templates/impersonate/list_users.html:8
+msgid "Impersonate user"
 msgstr ""
 
 #: views.py:29
-msgid ""
-"This page does not exist. If you were redirected by a link on an external "
-"page, it is possible that that link was outdated."
+msgid "This page does not exist. If you were redirected by a link on an external page, it is possible that that link was outdated."
 msgstr ""
 
 #: views.py:30
@@ -300,6 +332,10 @@ msgstr ""
 msgid "An unexpected error has occurred."
 msgstr ""
 
-#: views.py:158
+#: views.py:159
 msgid "The person has been saved."
 msgstr ""
+
+#: views.py:180
+msgid "The group has been saved."
+msgstr ""
diff --git a/biscuit/core/locale/nb_NO/LC_MESSAGES/django.po b/biscuit/core/locale/nb_NO/LC_MESSAGES/django.po
index 3b2479d55d6418c340e2b2b97d216250a90a7ea8..ee6e6fba542e767a2a0b8d69e82584271f4a16f6 100644
--- a/biscuit/core/locale/nb_NO/LC_MESSAGES/django.po
+++ b/biscuit/core/locale/nb_NO/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-27 15:19+0200\n"
+"POT-Creation-Date: 2019-09-02 13:14+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -42,138 +42,162 @@ msgid "Account"
 msgstr ""
 
 #: menus.py:11
-msgid "Login"
+msgid "Stop impersonation"
 msgstr ""
 
 #: menus.py:16
+msgid "Login"
+msgstr ""
+
+#: menus.py:21
 msgid "Logout"
 msgstr ""
 
-#: menus.py:23
+#: menus.py:28
+msgid "Admin"
+msgstr ""
+
+#: menus.py:33
+msgid "Data management"
+msgstr ""
+
+#: menus.py:38
+msgid "Impersonation"
+msgstr ""
+
+#: menus.py:45
 msgid "People"
 msgstr ""
 
-#: menus.py:28 templates/core/persons.html:5
+#: menus.py:50 templates/core/persons.html:5
 msgid "Persons"
 msgstr ""
 
-#: menus.py:33 templates/core/groups.html:5
+#: menus.py:55 templates/core/groups.html:5
 msgid "Groups"
 msgstr ""
 
-#: menus.py:38
+#: menus.py:60
 msgid "Persons and accounts"
 msgstr ""
 
-#: menus.py:47
+#: menus.py:69
 msgid "BiscuIT Software"
 msgstr ""
 
-#: menus.py:51
+#: menus.py:73
 msgid "Website"
 msgstr ""
 
+#: menus.py:83
+msgid "Support"
+msgstr ""
+
+#: menus.py:87 templates/contact_form/contact_form.html:8
+msgid "Get support"
+msgstr ""
+
 #: migrations/0007_school.py:11
 msgid "Default school"
 msgstr ""
 
-#: models.py:19
+#: models.py:20
 msgid "Name"
 msgstr ""
 
-#: models.py:21
+#: models.py:22
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr ""
 
-#: models.py:33
+#: models.py:39
 msgid "female"
 msgstr ""
 
-#: models.py:34
+#: models.py:40
 msgid "male"
 msgstr ""
 
-#: models.py:41
+#: models.py:47
 msgid "Is person active?"
 msgstr ""
 
-#: models.py:43
+#: models.py:49
 msgid "First name"
 msgstr ""
 
-#: models.py:44
+#: models.py:50
 msgid "Last name"
 msgstr ""
 
-#: models.py:46
+#: models.py:52
 msgid "Additional name(s)"
 msgstr ""
 
-#: models.py:49
+#: models.py:55
 msgid "Short name"
 msgstr ""
 
-#: models.py:52
+#: models.py:58
 msgid "Street"
 msgstr ""
 
-#: models.py:54
+#: models.py:60
 msgid "Street number"
 msgstr ""
 
-#: models.py:56
+#: models.py:62
 msgid "Postal code"
 msgstr ""
 
-#: models.py:58
+#: models.py:64
 msgid "Place"
 msgstr ""
 
-#: models.py:60
+#: models.py:66
 msgid "Home phone"
 msgstr ""
 
-#: models.py:62
+#: models.py:68
 msgid "Mobile phone"
 msgstr ""
 
-#: models.py:64
+#: models.py:70
 msgid "E-mail address"
 msgstr ""
 
-#: models.py:67
+#: models.py:73
 msgid "Date of birth"
 msgstr ""
 
-#: models.py:69
+#: models.py:75
 msgid "Sex"
 msgstr ""
 
-#: models.py:71
+#: models.py:77
 msgid "Photo"
 msgstr ""
 
-#: models.py:74
+#: models.py:81
 msgid "Reference ID of import source"
 msgstr ""
 
-#: models.py:76
+#: models.py:83
 msgid "Guardians / Parents"
 msgstr ""
 
-#: models.py:121
+#: models.py:126
 msgid "Long name of group"
 msgstr ""
 
-#: models.py:123
+#: models.py:128
 msgid "Short name of group"
 msgstr ""
 
-#: settings.py:187
+#: settings.py:200
 msgid "German"
 msgstr ""
 
-#: settings.py:188
+#: settings.py:201
 msgid "English"
 msgstr ""
 
@@ -184,14 +208,21 @@ msgid ""
 "    "
 msgstr ""
 
-#: templates/core/edit_person.html:4 templates/core/person_full.html:11
-msgid "Edit person"
+#: templates/contact_form/contact_form_sent.html:9
+msgid ""
+"\n"
+"   The message was successfully submitted.\n"
+"  "
 msgstr ""
 
-#: templates/core/group_full.html:11
+#: templates/core/edit_group.html:4 templates/core/group_full.html:11
 msgid "Edit group"
 msgstr ""
 
+#: templates/core/edit_person.html:4 templates/core/person_full.html:11
+msgid "Edit person"
+msgstr ""
+
 #: templates/core/group_full.html:14
 msgid "Details"
 msgstr ""
@@ -219,6 +250,10 @@ msgstr ""
 msgid "List of all groups"
 msgstr ""
 
+#: templates/core/language_form.html:2
+msgid "Language"
+msgstr ""
+
 #: templates/core/person_full.html:14
 msgid "Contact details"
 msgstr ""
@@ -246,8 +281,7 @@ msgstr ""
 msgid ""
 "\n"
 "    You can use this form to assign user accounts to persons. Use the\n"
-"    dropdowns to select existing accounts; use the text fields to create "
-"new\n"
+"    dropdowns to select existing accounts; use the text fields to create new\n"
 "    accounts on-the-fly. The latter will create a new account with the\n"
 "    entered username and copy all other details from the person.\n"
 "   "
@@ -277,14 +311,12 @@ msgstr ""
 msgid "Assorted"
 msgstr ""
 
-#: templates/footer-menu.html:36
-msgid "Language"
+#: templates/impersonate/list_users.html:8
+msgid "Impersonate user"
 msgstr ""
 
 #: views.py:29
-msgid ""
-"This page does not exist. If you were redirected by a link on an external "
-"page, it is possible that that link was outdated."
+msgid "This page does not exist. If you were redirected by a link on an external page, it is possible that that link was outdated."
 msgstr ""
 
 #: views.py:30
@@ -299,6 +331,10 @@ msgstr ""
 msgid "An unexpected error has occurred."
 msgstr ""
 
-#: views.py:158
+#: views.py:159
 msgid "The person has been saved."
 msgstr ""
+
+#: views.py:180
+msgid "The group has been saved."
+msgstr ""
diff --git a/biscuit/core/locale/tr_TR/LC_MESSAGES/django.po b/biscuit/core/locale/tr_TR/LC_MESSAGES/django.po
index 3b2479d55d6418c340e2b2b97d216250a90a7ea8..ee6e6fba542e767a2a0b8d69e82584271f4a16f6 100644
--- a/biscuit/core/locale/tr_TR/LC_MESSAGES/django.po
+++ b/biscuit/core/locale/tr_TR/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-08-27 15:19+0200\n"
+"POT-Creation-Date: 2019-09-02 13:14+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -42,138 +42,162 @@ msgid "Account"
 msgstr ""
 
 #: menus.py:11
-msgid "Login"
+msgid "Stop impersonation"
 msgstr ""
 
 #: menus.py:16
+msgid "Login"
+msgstr ""
+
+#: menus.py:21
 msgid "Logout"
 msgstr ""
 
-#: menus.py:23
+#: menus.py:28
+msgid "Admin"
+msgstr ""
+
+#: menus.py:33
+msgid "Data management"
+msgstr ""
+
+#: menus.py:38
+msgid "Impersonation"
+msgstr ""
+
+#: menus.py:45
 msgid "People"
 msgstr ""
 
-#: menus.py:28 templates/core/persons.html:5
+#: menus.py:50 templates/core/persons.html:5
 msgid "Persons"
 msgstr ""
 
-#: menus.py:33 templates/core/groups.html:5
+#: menus.py:55 templates/core/groups.html:5
 msgid "Groups"
 msgstr ""
 
-#: menus.py:38
+#: menus.py:60
 msgid "Persons and accounts"
 msgstr ""
 
-#: menus.py:47
+#: menus.py:69
 msgid "BiscuIT Software"
 msgstr ""
 
-#: menus.py:51
+#: menus.py:73
 msgid "Website"
 msgstr ""
 
+#: menus.py:83
+msgid "Support"
+msgstr ""
+
+#: menus.py:87 templates/contact_form/contact_form.html:8
+msgid "Get support"
+msgstr ""
+
 #: migrations/0007_school.py:11
 msgid "Default school"
 msgstr ""
 
-#: models.py:19
+#: models.py:20
 msgid "Name"
 msgstr ""
 
-#: models.py:21
+#: models.py:22
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr ""
 
-#: models.py:33
+#: models.py:39
 msgid "female"
 msgstr ""
 
-#: models.py:34
+#: models.py:40
 msgid "male"
 msgstr ""
 
-#: models.py:41
+#: models.py:47
 msgid "Is person active?"
 msgstr ""
 
-#: models.py:43
+#: models.py:49
 msgid "First name"
 msgstr ""
 
-#: models.py:44
+#: models.py:50
 msgid "Last name"
 msgstr ""
 
-#: models.py:46
+#: models.py:52
 msgid "Additional name(s)"
 msgstr ""
 
-#: models.py:49
+#: models.py:55
 msgid "Short name"
 msgstr ""
 
-#: models.py:52
+#: models.py:58
 msgid "Street"
 msgstr ""
 
-#: models.py:54
+#: models.py:60
 msgid "Street number"
 msgstr ""
 
-#: models.py:56
+#: models.py:62
 msgid "Postal code"
 msgstr ""
 
-#: models.py:58
+#: models.py:64
 msgid "Place"
 msgstr ""
 
-#: models.py:60
+#: models.py:66
 msgid "Home phone"
 msgstr ""
 
-#: models.py:62
+#: models.py:68
 msgid "Mobile phone"
 msgstr ""
 
-#: models.py:64
+#: models.py:70
 msgid "E-mail address"
 msgstr ""
 
-#: models.py:67
+#: models.py:73
 msgid "Date of birth"
 msgstr ""
 
-#: models.py:69
+#: models.py:75
 msgid "Sex"
 msgstr ""
 
-#: models.py:71
+#: models.py:77
 msgid "Photo"
 msgstr ""
 
-#: models.py:74
+#: models.py:81
 msgid "Reference ID of import source"
 msgstr ""
 
-#: models.py:76
+#: models.py:83
 msgid "Guardians / Parents"
 msgstr ""
 
-#: models.py:121
+#: models.py:126
 msgid "Long name of group"
 msgstr ""
 
-#: models.py:123
+#: models.py:128
 msgid "Short name of group"
 msgstr ""
 
-#: settings.py:187
+#: settings.py:200
 msgid "German"
 msgstr ""
 
-#: settings.py:188
+#: settings.py:201
 msgid "English"
 msgstr ""
 
@@ -184,14 +208,21 @@ msgid ""
 "    "
 msgstr ""
 
-#: templates/core/edit_person.html:4 templates/core/person_full.html:11
-msgid "Edit person"
+#: templates/contact_form/contact_form_sent.html:9
+msgid ""
+"\n"
+"   The message was successfully submitted.\n"
+"  "
 msgstr ""
 
-#: templates/core/group_full.html:11
+#: templates/core/edit_group.html:4 templates/core/group_full.html:11
 msgid "Edit group"
 msgstr ""
 
+#: templates/core/edit_person.html:4 templates/core/person_full.html:11
+msgid "Edit person"
+msgstr ""
+
 #: templates/core/group_full.html:14
 msgid "Details"
 msgstr ""
@@ -219,6 +250,10 @@ msgstr ""
 msgid "List of all groups"
 msgstr ""
 
+#: templates/core/language_form.html:2
+msgid "Language"
+msgstr ""
+
 #: templates/core/person_full.html:14
 msgid "Contact details"
 msgstr ""
@@ -246,8 +281,7 @@ msgstr ""
 msgid ""
 "\n"
 "    You can use this form to assign user accounts to persons. Use the\n"
-"    dropdowns to select existing accounts; use the text fields to create "
-"new\n"
+"    dropdowns to select existing accounts; use the text fields to create new\n"
 "    accounts on-the-fly. The latter will create a new account with the\n"
 "    entered username and copy all other details from the person.\n"
 "   "
@@ -277,14 +311,12 @@ msgstr ""
 msgid "Assorted"
 msgstr ""
 
-#: templates/footer-menu.html:36
-msgid "Language"
+#: templates/impersonate/list_users.html:8
+msgid "Impersonate user"
 msgstr ""
 
 #: views.py:29
-msgid ""
-"This page does not exist. If you were redirected by a link on an external "
-"page, it is possible that that link was outdated."
+msgid "This page does not exist. If you were redirected by a link on an external page, it is possible that that link was outdated."
 msgstr ""
 
 #: views.py:30
@@ -299,6 +331,10 @@ msgstr ""
 msgid "An unexpected error has occurred."
 msgstr ""
 
-#: views.py:158
+#: views.py:159
 msgid "The person has been saved."
 msgstr ""
+
+#: views.py:180
+msgid "The group has been saved."
+msgstr ""
diff --git a/dev.sh b/dev.sh
index 0dc003da156de64c8f16db13f28260080dd37dfa..209d48ab4e9d72b4d77f729189c97345ac904e9c 100755
--- a/dev.sh
+++ b/dev.sh
@@ -20,6 +20,15 @@ case "$1" in
 	poetry run ./manage.py compilemessages
 	poetry run ./manage.py collectstatic --no-input
 	;;
+    "makemessages")
+        cd "$(dirname "$0")"
+        manage_py=$(realpath manage.py)
+        locales="-l ar -l de_DE -l fr -l nb_NO -l tr_TR"
+        for d in biscuit/core apps/official/*/biscuit/apps/*; do
+        	echo; echo "Entering $d."
+        	poetry run sh -c "cd $d; $manage_py makemessages --no-wrap -i static $locales"
+        done
+        ;;
     *)
 	;;
 esac