From 29fdc40e04b42725346f96d466e25027f8b037b7 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Tue, 8 Jun 2021 16:56:02 +0200
Subject: [PATCH] Update translation files

---
 aleksis/core/locale/ar/LC_MESSAGES/django.po  | 163 +++++-----
 .../core/locale/ar/LC_MESSAGES/djangojs.po    |   4 +-
 .../core/locale/de_DE/LC_MESSAGES/django.po   | 280 +++++++++---------
 .../core/locale/de_DE/LC_MESSAGES/djangojs.po |   4 +-
 aleksis/core/locale/fr/LC_MESSAGES/django.po  | 167 ++++++-----
 .../core/locale/fr/LC_MESSAGES/djangojs.po    |   4 +-
 aleksis/core/locale/la/LC_MESSAGES/django.po  | 169 +++++------
 .../core/locale/la/LC_MESSAGES/djangojs.po    |   4 +-
 .../core/locale/nb_NO/LC_MESSAGES/django.po   | 163 +++++-----
 .../core/locale/nb_NO/LC_MESSAGES/djangojs.po |   4 +-
 .../core/locale/tr_TR/LC_MESSAGES/django.po   | 163 +++++-----
 .../core/locale/tr_TR/LC_MESSAGES/djangojs.po |   4 +-
 12 files changed, 569 insertions(+), 560 deletions(-)

diff --git a/aleksis/core/locale/ar/LC_MESSAGES/django.po b/aleksis/core/locale/ar/LC_MESSAGES/django.po
index 08b161b39..7b8eb8f9b 100644
--- a/aleksis/core/locale/ar/LC_MESSAGES/django.po
+++ b/aleksis/core/locale/ar/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: AlekSIS (School Information System) 0.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-21 19:54+0200\n"
+"POT-Creation-Date: 2021-06-08 16:49+0200\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"
@@ -261,11 +261,13 @@ msgid "Preferences"
 msgstr ""
 
 #: aleksis/core/menus.py:97
-msgid "Social accounts"
+msgid "Third-party accounts"
 msgstr ""
 
 #: aleksis/core/menus.py:106
-msgid "Authorized tokens"
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:5
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:6
+msgid "Authorized applications"
 msgstr ""
 
 #: aleksis/core/menus.py:117
@@ -355,7 +357,7 @@ msgstr ""
 msgid "Assign child groups to groups"
 msgstr ""
 
-#: aleksis/core/mixins.py:476
+#: aleksis/core/mixins.py:475
 msgid "Linked school term"
 msgstr ""
 
@@ -904,139 +906,143 @@ msgstr ""
 msgid "Internationalisation"
 msgstr ""
 
-#: aleksis/core/preferences.py:39
+#: aleksis/core/preferences.py:41
 msgid "Site title"
 msgstr ""
 
-#: aleksis/core/preferences.py:48
+#: aleksis/core/preferences.py:52
 msgid "Site description"
 msgstr ""
 
-#: aleksis/core/preferences.py:57
+#: aleksis/core/preferences.py:63
 msgid "Primary colour"
 msgstr ""
 
-#: aleksis/core/preferences.py:67
+#: aleksis/core/preferences.py:75
 msgid "Secondary colour"
 msgstr ""
 
-#: aleksis/core/preferences.py:76
+#: aleksis/core/preferences.py:86
 msgid "Logo"
 msgstr ""
 
-#: aleksis/core/preferences.py:84
+#: aleksis/core/preferences.py:96
 msgid "Favicon"
 msgstr ""
 
-#: aleksis/core/preferences.py:92
+#: aleksis/core/preferences.py:106
 msgid "PWA-Icon"
 msgstr ""
 
-#: aleksis/core/preferences.py:101
+#: aleksis/core/preferences.py:117
 msgid "Mail out name"
 msgstr ""
 
-#: aleksis/core/preferences.py:110
+#: aleksis/core/preferences.py:128
 msgid "Mail out address"
 msgstr ""
 
-#: aleksis/core/preferences.py:120
+#: aleksis/core/preferences.py:140
 msgid "Link to privacy policy"
 msgstr ""
 
-#: aleksis/core/preferences.py:130
+#: aleksis/core/preferences.py:152
 msgid "Link to imprint"
 msgstr ""
 
-#: aleksis/core/preferences.py:140
+#: aleksis/core/preferences.py:164
 msgid "Name format for addressing"
 msgstr ""
 
-#: aleksis/core/preferences.py:154
+#: aleksis/core/preferences.py:180
 msgid "Channels to use for notifications"
 msgstr ""
 
-#: aleksis/core/preferences.py:164
+#: aleksis/core/preferences.py:192
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr ""
 
-#: aleksis/core/preferences.py:173
+#: aleksis/core/preferences.py:203
 msgid "Field on person to match primary group against"
 msgstr ""
 
-#: aleksis/core/preferences.py:185
+#: aleksis/core/preferences.py:215
 msgid "Automatically create new persons for new users"
 msgstr ""
 
-#: aleksis/core/preferences.py:194
+#: aleksis/core/preferences.py:224
 msgid "Automatically link existing persons to new users by their e-mail address"
 msgstr ""
 
-#: aleksis/core/preferences.py:203
+#: aleksis/core/preferences.py:235
 msgid "Display name of the school"
 msgstr ""
 
-#: aleksis/core/preferences.py:212
+#: aleksis/core/preferences.py:246
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr ""
 
-#: aleksis/core/preferences.py:220
+#: aleksis/core/preferences.py:256
+msgid "Enabled custom authentication backends"
+msgstr ""
+
+#: aleksis/core/preferences.py:268
 msgid "Allow users to change their passwords"
 msgstr ""
 
-#: aleksis/core/preferences.py:228
+#: aleksis/core/preferences.py:276
 msgid "Enable signup"
 msgstr ""
 
-#: aleksis/core/preferences.py:237
+#: aleksis/core/preferences.py:287
 msgid "Available languages"
 msgstr ""
 
-#: aleksis/core/preferences.py:249
+#: aleksis/core/preferences.py:299
 msgid "Send emails if data checks detect problems"
 msgstr ""
 
-#: aleksis/core/preferences.py:260
+#: aleksis/core/preferences.py:310
 msgid "Email recipients for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:271
+#: aleksis/core/preferences.py:321
 msgid "Email recipient groups for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:280
+#: aleksis/core/preferences.py:330
 msgid "Show dashboard to users without login"
 msgstr ""
 
-#: aleksis/core/preferences.py:289
+#: aleksis/core/preferences.py:339
 msgid "Allow users to edit their dashboard"
 msgstr ""
 
-#: aleksis/core/preferences.py:300
+#: aleksis/core/preferences.py:350
 msgid "Fields on person model which are editable by themselves."
 msgstr ""
 
-#: aleksis/core/preferences.py:314
+#: aleksis/core/preferences.py:364
 msgid "Editable fields on person model which should trigger a notification on change"
 msgstr ""
 
-#: aleksis/core/preferences.py:327
+#: aleksis/core/preferences.py:377
 msgid "Contact for notification if a person changes their data"
 msgstr ""
 
-#: aleksis/core/preferences.py:337
+#: aleksis/core/preferences.py:387
 msgid "PDF file expiration duration"
 msgstr ""
 
-#: aleksis/core/preferences.py:338
+#: aleksis/core/preferences.py:388
 msgid "in minutes"
 msgstr ""
 
-#: aleksis/core/settings.py:477
+#: aleksis/core/settings.py:470
 msgid "English"
 msgstr ""
 
-#: aleksis/core/settings.py:478
+#: aleksis/core/settings.py:471
 msgid "German"
 msgstr ""
 
@@ -2110,25 +2116,20 @@ msgstr ""
 
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:5
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:6
-msgid "Revoke token"
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
+msgid "Revoke access"
 msgstr ""
 
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:12
-msgid "Are you sure to revoke this token?"
+msgid "Are you sure to revoke the access for this application?"
 msgstr ""
 
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:20
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
 msgid "Revoke"
 msgstr ""
 
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:5
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:6
-msgid "Authorized applications"
-msgstr ""
-
 #: aleksis/core/templates/oauth2_provider/authorized-tokens.html:33
-msgid "No authorized tokens defined."
+msgid "No authorized applications."
 msgstr ""
 
 #: aleksis/core/templates/offline.html:5
@@ -2172,17 +2173,17 @@ msgstr ""
 
 #: aleksis/core/templates/socialaccount/authentication_error.html:5
 #: aleksis/core/templates/socialaccount/authentication_error.html:6
-msgid "Social Network Login Failure"
+msgid "Third-party Account Login Failure"
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/authentication_error.html:13
-msgid "Social Network Login Failure."
+msgid "Third-party Account Login Failure."
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/authentication_error.html:15
 msgid ""
 "\n"
-"            An error occurred while attempting to login via your social network account.\n"
+"            An error occurred while attempting to login via your third-party account.\n"
 "            Please contact one of your site administrators.\n"
 "          "
 msgstr ""
@@ -2197,11 +2198,11 @@ msgid "Remove"
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/connections.html:34
-msgid "You currently have no social network accounts connected to this account."
+msgid "You currently have no third-party accounts connected to this account."
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/connections.html:37
-msgid "Add a 3rd Party Account"
+msgid "Add a Third-party Account"
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/login_cancelled.html:5
@@ -2244,7 +2245,7 @@ msgstr ""
 #: aleksis/core/templates/socialaccount/snippets/provider_list.html:30
 msgid ""
 "\n"
-"          No 3rd party account providers available.\n"
+"          No third-party account providers available.\n"
 "        "
 msgstr ""
 
@@ -2709,107 +2710,107 @@ msgstr ""
 msgid "Download PDF"
 msgstr ""
 
-#: aleksis/core/views.py:195
+#: aleksis/core/views.py:249
 msgid "The school term has been created."
 msgstr ""
 
-#: aleksis/core/views.py:207
+#: aleksis/core/views.py:261
 msgid "The school term has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:352
+#: aleksis/core/views.py:406
 msgid "The child groups were successfully saved."
 msgstr ""
 
-#: aleksis/core/views.py:413
+#: aleksis/core/views.py:467
 msgid "The person has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:452
+#: aleksis/core/views.py:506
 msgid "The group has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:549
+#: aleksis/core/views.py:603
 msgid "The announcement has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:565
+#: aleksis/core/views.py:619
 msgid "The announcement has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:649
+#: aleksis/core/views.py:703
 msgid "The preferences have been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:673
+#: aleksis/core/views.py:727
 msgid "The person has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:687
+#: aleksis/core/views.py:741
 msgid "The group has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:719
+#: aleksis/core/views.py:773
 msgid "The additional_field has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:753
+#: aleksis/core/views.py:807
 msgid "The additional field has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:778
+#: aleksis/core/views.py:832
 msgid "The group type has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:808
+#: aleksis/core/views.py:862
 msgid "The group type has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:841
+#: aleksis/core/views.py:895
 msgid "Progress: Run data checks"
 msgstr ""
 
-#: aleksis/core/views.py:842
+#: aleksis/core/views.py:896
 msgid "Run data checks …"
 msgstr ""
 
-#: aleksis/core/views.py:843
+#: aleksis/core/views.py:897
 msgid "The data checks were run successfully."
 msgstr ""
 
-#: aleksis/core/views.py:844
+#: aleksis/core/views.py:898
 msgid "There was a problem while running data checks."
 msgstr ""
 
-#: aleksis/core/views.py:860
+#: aleksis/core/views.py:914
 #, python-brace-format
 msgid "The solve option '{solve_option_obj.verbose_name}' "
 msgstr ""
 
-#: aleksis/core/views.py:902
+#: aleksis/core/views.py:956
 msgid "The dashboard widget has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:932
+#: aleksis/core/views.py:986
 msgid "The dashboard widget has been created."
 msgstr ""
 
-#: aleksis/core/views.py:942
+#: aleksis/core/views.py:996
 msgid "The dashboard widget has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1009
+#: aleksis/core/views.py:1063
 msgid "Your dashboard configuration has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1011
+#: aleksis/core/views.py:1065
 msgid "The configuration of the default dashboard has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1137
-msgid "The social account could not be disconnected because it is the only login method available."
+#: aleksis/core/views.py:1191
+msgid "The third-party account could not be disconnected because it is the only login method available."
 msgstr ""
 
-#: aleksis/core/views.py:1144
-msgid "The social account has been successfully disconnected."
+#: aleksis/core/views.py:1198
+msgid "The third-party account has been successfully disconnected."
 msgstr ""
diff --git a/aleksis/core/locale/ar/LC_MESSAGES/djangojs.po b/aleksis/core/locale/ar/LC_MESSAGES/djangojs.po
index aa0f3532b..4a3d30e17 100644
--- a/aleksis/core/locale/ar/LC_MESSAGES/djangojs.po
+++ b/aleksis/core/locale/ar/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-21 19:54+0200\n"
+"POT-Creation-Date: 2021-06-08 16:49+0200\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"
@@ -30,6 +30,6 @@ msgstr ""
 msgid "OK"
 msgstr ""
 
-#: aleksis/core/static/js/main.js:121
+#: aleksis/core/static/js/main.js:133
 msgid "This page may contain outdated information since there is no internet connection."
 msgstr ""
diff --git a/aleksis/core/locale/de_DE/LC_MESSAGES/django.po b/aleksis/core/locale/de_DE/LC_MESSAGES/django.po
index fab84d7b7..1dd8b91f4 100644
--- a/aleksis/core/locale/de_DE/LC_MESSAGES/django.po
+++ b/aleksis/core/locale/de_DE/LC_MESSAGES/django.po
@@ -7,11 +7,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: AlekSIS (School Information System) 0.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-21 19:54+0200\n"
+"POT-Creation-Date: 2021-06-08 16:49+0200\n"
 "PO-Revision-Date: 2021-05-21 18:38+0000\n"
 "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
-"Language-Team: German <https://translate.edugit.org/projects/aleksis/aleksis/"
-"de/>\n"
+"Language-Team: German <https://translate.edugit.org/projects/aleksis/aleksis/de/>\n"
 "Language: de_DE\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -167,9 +166,7 @@ msgstr "Passwort wiederholen"
 #: aleksis/core/forms.py:436
 #, python-brace-format
 msgid "I have read the <a href='{privacy_policy}'>Privacy policy</a> and agree with them."
-msgstr ""
-"Ich habe die <a href='{privacy_policy}'>Datenschutzerklärung</a> gelesen und "
-"stimme ihr zu."
+msgstr "Ich habe die <a href='{privacy_policy}'>Datenschutzerklärung</a> gelesen und stimme ihr zu."
 
 #: aleksis/core/forms.py:460
 msgid "You must type the same password each time."
@@ -264,12 +261,16 @@ msgid "Preferences"
 msgstr "Einstellungen"
 
 #: aleksis/core/menus.py:97
-msgid "Social accounts"
+#, fuzzy
+#| msgid "Social accounts"
+msgid "Third-party accounts"
 msgstr "Soziale Konten"
 
 #: aleksis/core/menus.py:106
-msgid "Authorized tokens"
-msgstr "Autorisierte Tokens"
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:5
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:6
+msgid "Authorized applications"
+msgstr "Autorisierte Anwendungen"
 
 #: aleksis/core/menus.py:117
 msgid "Admin"
@@ -358,7 +359,7 @@ msgstr "Zusätzliche Felder"
 msgid "Assign child groups to groups"
 msgstr "Kindgruppen zu Gruppen zuordnen"
 
-#: aleksis/core/mixins.py:476
+#: aleksis/core/mixins.py:475
 msgid "Linked school term"
 msgstr "Zugeordnetes Schuljahr"
 
@@ -907,139 +908,143 @@ msgstr "Authentifizierung"
 msgid "Internationalisation"
 msgstr "Internationalisierung"
 
-#: aleksis/core/preferences.py:39
+#: aleksis/core/preferences.py:41
 msgid "Site title"
 msgstr "Seitentitel"
 
-#: aleksis/core/preferences.py:48
+#: aleksis/core/preferences.py:52
 msgid "Site description"
 msgstr "Seitenbeschreibung"
 
-#: aleksis/core/preferences.py:57
+#: aleksis/core/preferences.py:63
 msgid "Primary colour"
 msgstr "Primärfarbe"
 
-#: aleksis/core/preferences.py:67
+#: aleksis/core/preferences.py:75
 msgid "Secondary colour"
 msgstr "Akzentfarbe"
 
-#: aleksis/core/preferences.py:76
+#: aleksis/core/preferences.py:86
 msgid "Logo"
 msgstr "Logo"
 
-#: aleksis/core/preferences.py:84
+#: aleksis/core/preferences.py:96
 msgid "Favicon"
 msgstr "Favicon"
 
-#: aleksis/core/preferences.py:92
+#: aleksis/core/preferences.py:106
 msgid "PWA-Icon"
 msgstr "PWA-Icon"
 
-#: aleksis/core/preferences.py:101
+#: aleksis/core/preferences.py:117
 msgid "Mail out name"
 msgstr "Ausgangsmailname"
 
-#: aleksis/core/preferences.py:110
+#: aleksis/core/preferences.py:128
 msgid "Mail out address"
 msgstr "E-Mail-Ausgangsadresse"
 
-#: aleksis/core/preferences.py:120
+#: aleksis/core/preferences.py:140
 msgid "Link to privacy policy"
 msgstr "Link zur Datenschutzerklärung"
 
-#: aleksis/core/preferences.py:130
+#: aleksis/core/preferences.py:152
 msgid "Link to imprint"
 msgstr "Link zum Impressum"
 
-#: aleksis/core/preferences.py:140
+#: aleksis/core/preferences.py:164
 msgid "Name format for addressing"
 msgstr "Namensformat für Anreden"
 
-#: aleksis/core/preferences.py:154
+#: aleksis/core/preferences.py:180
 msgid "Channels to use for notifications"
 msgstr "Aktivierte Benachrichtungskanäle"
 
-#: aleksis/core/preferences.py:164
+#: aleksis/core/preferences.py:192
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr "Regulärer Ausdruck um Primärgruppen zu finden, z. B.  '^Class .*'"
 
-#: aleksis/core/preferences.py:173
+#: aleksis/core/preferences.py:203
 msgid "Field on person to match primary group against"
 msgstr "Feld um Primärgruppen zu finden"
 
-#: aleksis/core/preferences.py:185
+#: aleksis/core/preferences.py:215
 msgid "Automatically create new persons for new users"
 msgstr "Erstelle automatisch neue Personen für neue Benutzer"
 
-#: aleksis/core/preferences.py:194
+#: aleksis/core/preferences.py:224
 msgid "Automatically link existing persons to new users by their e-mail address"
 msgstr "Verknüpfe existierende Personen automatisch mit neuen Personen anhand ihrer E-Mail-Adresse"
 
-#: aleksis/core/preferences.py:203
+#: aleksis/core/preferences.py:235
 msgid "Display name of the school"
 msgstr "Sichtbarer Name der Schule"
 
-#: aleksis/core/preferences.py:212
+#: aleksis/core/preferences.py:246
 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"
 
-#: aleksis/core/preferences.py:220
+#: aleksis/core/preferences.py:256
+msgid "Enabled custom authentication backends"
+msgstr "Benutzerdefinierte Authentifizierungsbackends aktivieren"
+
+#: aleksis/core/preferences.py:268
 msgid "Allow users to change their passwords"
 msgstr "Erlaube Benutzern, ihr Passwort zu ändern"
 
-#: aleksis/core/preferences.py:228
+#: aleksis/core/preferences.py:276
 msgid "Enable signup"
 msgstr "Registrierung aktivieren"
 
-#: aleksis/core/preferences.py:237
+#: aleksis/core/preferences.py:287
 msgid "Available languages"
 msgstr "Verfügbare Sprachen"
 
-#: aleksis/core/preferences.py:249
+#: aleksis/core/preferences.py:299
 msgid "Send emails if data checks detect problems"
 msgstr "E-Mails versenden, wenn Datenprüfungen Probleme finden"
 
-#: aleksis/core/preferences.py:260
+#: aleksis/core/preferences.py:310
 msgid "Email recipients for data checks problem emails"
 msgstr "E-Mailempfänger für Datenprüfungsproblem-E-Mails"
 
-#: aleksis/core/preferences.py:271
+#: aleksis/core/preferences.py:321
 msgid "Email recipient groups for data checks problem emails"
 msgstr "E-Mail-Empfängergruppen für Datenprüfungsproblem-E-Mails"
 
-#: aleksis/core/preferences.py:280
+#: aleksis/core/preferences.py:330
 msgid "Show dashboard to users without login"
 msgstr "Zeige Dashboard für Benutzer ohne Login"
 
-#: aleksis/core/preferences.py:289
+#: aleksis/core/preferences.py:339
 msgid "Allow users to edit their dashboard"
 msgstr "Erlaube Benutzern, ihr Dashboard zu bearbeiten"
 
-#: aleksis/core/preferences.py:300
+#: aleksis/core/preferences.py:350
 msgid "Fields on person model which are editable by themselves."
 msgstr "Felder des Personen-Models welche von ihnen selbst editierbar sind."
 
-#: aleksis/core/preferences.py:314
+#: aleksis/core/preferences.py:364
 msgid "Editable fields on person model which should trigger a notification on change"
 msgstr "Editierbare Felder des Personen-Models welche eine Benachrichtigung für Änderungen auslösen soll"
 
-#: aleksis/core/preferences.py:327
+#: aleksis/core/preferences.py:377
 msgid "Contact for notification if a person changes their data"
 msgstr "Kontakt für Benachrichtigung, wenn eine Person ihre Daten ändert"
 
-#: aleksis/core/preferences.py:337
+#: aleksis/core/preferences.py:387
 msgid "PDF file expiration duration"
 msgstr "PDF-Datei-Ablaufdauer"
 
-#: aleksis/core/preferences.py:338
+#: aleksis/core/preferences.py:388
 msgid "in minutes"
 msgstr "in Minuten"
 
-#: aleksis/core/settings.py:477
+#: aleksis/core/settings.py:470
 msgid "English"
 msgstr "Englisch"
 
-#: aleksis/core/settings.py:478
+#: aleksis/core/settings.py:471
 msgid "German"
 msgstr "Deutsch"
 
@@ -1192,22 +1197,16 @@ msgstr "Bestätigen"
 #: aleksis/core/templates/account/email_confirm.html:12
 #, python-format
 msgid "Please confirm that <a href=\"mailto:%(email)s\">%(email)s</a> is an e-mail address for user %(user_display)s."
-msgstr ""
-"Bitte bestätigen Sie, dass <a href=\"mailto:%(email)s\">%(email)s</a> eine E"
-"-Mail-Adresse für den Benutzer %(user_display)s ist."
+msgstr "Bitte bestätigen Sie, dass <a href=\"mailto:%(email)s\">%(email)s</a> eine E-Mail-Adresse für den Benutzer %(user_display)s ist."
 
 #: aleksis/core/templates/account/email_confirm.html:25
 #, python-format
 msgid "This e-mail confirmation link expired or is invalid. Please <a href=\"%(email_url)s\">issue a new e-mail confirmation request</a>."
-msgstr ""
-"Dieser E-Mail-Bestätigungslink ist abgelaufen oder nicht gültig. Bitte <a "
-"href=\"%(email_url)s\">fragen Sie eine neue E-Mail-Bestätigung an</a>."
+msgstr "Dieser E-Mail-Bestätigungslink ist abgelaufen oder nicht gültig. Bitte <a href=\"%(email_url)s\">fragen Sie eine neue E-Mail-Bestätigung an</a>."
 
 #: aleksis/core/templates/account/password_change.html:12
 msgid "Forgot your current password? Click here to reset it:"
-msgstr ""
-"Haben Sie Ihr aktuelles Passwort vergessen? Klicken Sie hier, um es "
-"zurückzusetzen:"
+msgstr "Haben Sie Ihr aktuelles Passwort vergessen? Klicken Sie hier, um es zurückzusetzen:"
 
 #: aleksis/core/templates/account/password_change.html:12
 msgid "Forgot Password?"
@@ -1230,8 +1229,7 @@ msgid ""
 "          "
 msgstr ""
 "\n"
-"            Benutzer dürfen ihre eigenen Passwörter nicht ändern. Wenn Sie "
-"denken, \n"
+"            Benutzer dürfen ihre eigenen Passwörter nicht ändern. Wenn Sie denken, \n"
 "dass dies ein Fehler ist, kontaktieren Sie bitte einen der Administratoren:\n"
 "          "
 
@@ -1247,9 +1245,7 @@ msgstr "Passwort zurücksetzen"
 
 #: aleksis/core/templates/account/password_reset.html:17
 msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
-msgstr ""
-"Passwort vergessen? Geben Sie Ihre E-Mail-Adresse hier ein und wir werden "
-"Ihnen eine E-Mail zum Zurücksetzen des Passwortes schicken."
+msgstr "Passwort vergessen? Geben Sie Ihre E-Mail-Adresse hier ein und wir werden Ihnen eine E-Mail zum Zurücksetzen des Passwortes schicken."
 
 #: aleksis/core/templates/account/password_reset.html:30
 msgid ""
@@ -1272,8 +1268,7 @@ msgid ""
 "          "
 msgstr ""
 "\n"
-"            Wir haben Ihnen eine E-Mail gesendet. Bitte kontaktieren Sie "
-"einen der Administratoren,\n"
+"            Wir haben Ihnen eine E-Mail gesendet. Bitte kontaktieren Sie einen der Administratoren,\n"
 "wenn Sie diese nicht innerhalb weniger Minuten erhalten.\n"
 "          "
 
@@ -1290,10 +1285,7 @@ msgid ""
 "            "
 msgstr ""
 "\n"
-"              Der Link zum Zurücksetzen des Passwortes war falsch, "
-"wahrscheinlich, weil er bereits benutzt wurde. Bitte starten Sie eine neue "
-"Anfrage <a href=\"%(passwd_reset_url)s\"              class=\"blue-text text-"
-"lighten-2\">zum Zurücksetzen des Passwortes</a>.\n"
+"              Der Link zum Zurücksetzen des Passwortes war falsch, wahrscheinlich, weil er bereits benutzt wurde. Bitte starten Sie eine neue Anfrage <a href=\"%(passwd_reset_url)s\"              class=\"blue-text text-lighten-2\">zum Zurücksetzen des Passwortes</a>.\n"
 "            "
 
 #: aleksis/core/templates/account/password_reset_from_key.html:25
@@ -1343,9 +1335,7 @@ msgstr "Registrierung"
 #: aleksis/core/templates/account/signup.html:12
 #, python-format
 msgid "Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>."
-msgstr ""
-"Haben Sie bereits ein Konto? Dann <a href=\"%(login_url)s\">melden Sie sich "
-"bitte an</a>."
+msgstr "Haben Sie bereits ein Konto? Dann <a href=\"%(login_url)s\">melden Sie sich bitte an</a>."
 
 #: aleksis/core/templates/account/signup_closed.html:5
 #: aleksis/core/templates/account/signup_closed.html:6
@@ -1364,8 +1354,7 @@ msgid ""
 "          "
 msgstr ""
 "\n"
-"            Die Registrierung ist aktuell geschlossen. Wenn Sie denken, dass "
-"dies ein Fehler ist,\n"
+"            Die Registrierung ist aktuell geschlossen. Wenn Sie denken, dass dies ein Fehler ist,\n"
 " kontaktieren Sie bitte einen Ihrer Systemadministratoren.\n"
 "          "
 
@@ -1390,10 +1379,8 @@ msgid ""
 "          "
 msgstr ""
 "\n"
-"            Dieser Teil der Anwendung setzt voraus, dass wir verifizieren, "
-"dass Sie die Person sind, die sie vorgeben, zu sein.\n"
-"Zu diesem Zweck setzen wir voraus, dass Sie die Inhaberschaft Ihrer E-Mail-"
-"Adresse bestätigen.\n"
+"            Dieser Teil der Anwendung setzt voraus, dass wir verifizieren, dass Sie die Person sind, die sie vorgeben, zu sein.\n"
+"Zu diesem Zweck setzen wir voraus, dass Sie die Inhaberschaft Ihrer E-Mail-Adresse bestätigen.\n"
 "          "
 
 #: aleksis/core/templates/account/verification_sent.html:22
@@ -1407,16 +1394,13 @@ msgstr ""
 "\n"
 "            Wir haben Ihnen eine E-Mail zur Verifizierung geschickt.\n"
 "Bitte klicken Sie auf den Link in dieser E-Mail.\n"
-"Bitte kontaktieren Sie uns, wenn Sie diese nicht binnen weniger Minuten "
-"erhalten.\n"
+"Bitte kontaktieren Sie uns, wenn Sie diese nicht binnen weniger Minuten erhalten.\n"
 "          "
 
 #: aleksis/core/templates/account/verification_sent.html:30
 #, python-format
 msgid "<strong>Note:</strong> you can still <a href=\"%(email_url)s\">change your e-mail address</a>"
-msgstr ""
-"<strong>Hinweis:</strong> Sie können immer noch <a href=\"%(email_url)s\"> "
-"Ihre E-Mail-Adresse ändern</a>"
+msgstr "<strong>Hinweis:</strong> Sie können immer noch <a href=\"%(email_url)s\"> Ihre E-Mail-Adresse ändern</a>"
 
 #: aleksis/core/templates/core/additional_field/edit.html:6
 #: aleksis/core/templates/core/additional_field/edit.html:7
@@ -2284,26 +2268,27 @@ msgstr "Bitte gehen Sie zurück in Ihre Anwendung und geben Sie diesen Code ein:
 
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:5
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:6
-msgid "Revoke token"
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
+#, fuzzy
+#| msgid "Revoke token"
+msgid "Revoke access"
 msgstr "Token zurückziehen"
 
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:12
-msgid "Are you sure to revoke this token?"
+#, fuzzy
+#| msgid "Are you sure to revoke this token?"
+msgid "Are you sure to revoke the access for this application?"
 msgstr "Sind Sie sicher, dass Sie dieses Token zurückziehen möchten?"
 
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:20
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
 msgid "Revoke"
 msgstr "Zurückziehen"
 
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:5
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:6
-msgid "Authorized applications"
-msgstr "Autorisierte Anwendungen"
-
 #: aleksis/core/templates/oauth2_provider/authorized-tokens.html:33
-msgid "No authorized tokens defined."
-msgstr "Keine autorisierten Token definiert."
+#, fuzzy
+#| msgid "Authorized applications"
+msgid "No authorized applications."
+msgstr "Autorisierte Anwendungen"
 
 #: aleksis/core/templates/offline.html:5
 msgid "Network error"
@@ -2353,23 +2338,30 @@ msgstr "Bitte geben Sie einen Suchausdruck ein."
 
 #: aleksis/core/templates/socialaccount/authentication_error.html:5
 #: aleksis/core/templates/socialaccount/authentication_error.html:6
-msgid "Social Network Login Failure"
-msgstr "Anmeldung über soziales Netzwerk fehlgeschlagen"
+msgid "Third-party Account Login Failure"
+msgstr ""
 
 #: aleksis/core/templates/socialaccount/authentication_error.html:13
-msgid "Social Network Login Failure."
+#, fuzzy
+#| msgid "Social Network Login Failure."
+msgid "Third-party Account Login Failure."
 msgstr "Anmeldung über soziales Netzwerk fehlgeschlagen."
 
 #: aleksis/core/templates/socialaccount/authentication_error.html:15
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "            An error occurred while attempting to login via your social network account.\n"
+#| "            Please contact one of your site administrators.\n"
+#| "          "
 msgid ""
 "\n"
-"            An error occurred while attempting to login via your social network account.\n"
+"            An error occurred while attempting to login via your third-party account.\n"
 "            Please contact one of your site administrators.\n"
 "          "
 msgstr ""
 "\n"
-"            Beim dem Versuch, die Anmeldung über Ihr soziales Netzwerk "
-"durchzuführen, ist ein Fehler aufgetreten.\n"
+"            Beim dem Versuch, die Anmeldung über Ihr soziales Netzwerk durchzuführen, ist ein Fehler aufgetreten.\n"
 "            Kontaktieren Sie bitte einen Ihrer Systemadministratoren:\n"
 "          "
 
@@ -2383,13 +2375,15 @@ msgid "Remove"
 msgstr "Löschen"
 
 #: aleksis/core/templates/socialaccount/connections.html:34
-msgid "You currently have no social network accounts connected to this account."
-msgstr ""
-"Sie haben aktuell keine Konten von sozialen Netzwerken mit Ihrem Konto "
-"verbunden."
+#, fuzzy
+#| msgid "You currently have no social network accounts connected to this account."
+msgid "You currently have no third-party accounts connected to this account."
+msgstr "Sie haben aktuell keine Konten von sozialen Netzwerken mit Ihrem Konto verbunden."
 
 #: aleksis/core/templates/socialaccount/connections.html:37
-msgid "Add a 3rd Party Account"
+#, fuzzy
+#| msgid "Add a 3rd Party Account"
+msgid "Add a Third-party Account"
 msgstr "Ein Drittanbieterkonto hinzufügen"
 
 #: aleksis/core/templates/socialaccount/login_cancelled.html:5
@@ -2406,9 +2400,7 @@ msgid ""
 "          "
 msgstr ""
 "\n"
-"            Sie haben sich entschieden, die Anmeldung mit einem Ihrer "
-"bestehenden Konten bei uns abzubrechen. Wenn dies ein Fehler war, <a href=\""
-"%(login_url)s\">fahren Sie bitte mit dem Login fort</a>.\n"
+"            Sie haben sich entschieden, die Anmeldung mit einem Ihrer bestehenden Konten bei uns abzubrechen. Wenn dies ein Fehler war, <a href=\"%(login_url)s\">fahren Sie bitte mit dem Login fort</a>.\n"
 "          "
 
 #: aleksis/core/templates/socialaccount/signup.html:12
@@ -2417,8 +2409,7 @@ msgid ""
 "You are about to use your %(provider_name)s account to login to\n"
 "        %(site_name)s. As a final step, please complete the following form:"
 msgstr ""
-"Sie sind dabei, Ihr %(provider_name)s-Konto zur Anmeldung bei %(site_name)s "
-"zu nutzen. \n"
+"Sie sind dabei, Ihr %(provider_name)s-Konto zur Anmeldung bei %(site_name)s zu nutzen. \n"
 "Als ein letzter Schritt vervollständigen Sie bitte das folgende Formular:"
 
 #: aleksis/core/templates/socialaccount/snippets/provider_list.html:12
@@ -2444,9 +2435,14 @@ msgstr ""
 "          "
 
 #: aleksis/core/templates/socialaccount/snippets/provider_list.html:30
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "          No 3rd party account providers available.\n"
+#| "        "
 msgid ""
 "\n"
-"          No 3rd party account providers available.\n"
+"          No third-party account providers available.\n"
 "        "
 msgstr ""
 "\n"
@@ -2674,10 +2670,8 @@ msgid ""
 "                  "
 msgstr ""
 "\n"
-"                    Nutzen Sie dieses Formular um Ihre Backup-Tokens zum "
-"Anmelden einzugeben.\n"
-"                Diese Tokens wurden für Sie generiert, um diese gut "
-"aufzubewahren. Bitte\n"
+"                    Nutzen Sie dieses Formular um Ihre Backup-Tokens zum Anmelden einzugeben.\n"
+"                Diese Tokens wurden für Sie generiert, um diese gut aufzubewahren. Bitte\n"
 "                geben Sie einen dieser Tokens ein, um sich einzuloggen.\n"
 "                  "
 
@@ -3034,113 +3028,122 @@ msgstr "Es ist ein Fehler beim Generieren der PDF-Datei aufgetreten."
 msgid "Download PDF"
 msgstr "PDF herunterladen"
 
-#: aleksis/core/views.py:195
+#: aleksis/core/views.py:249
 msgid "The school term has been created."
 msgstr "Das Schuljahr wurde erstellt."
 
-#: aleksis/core/views.py:207
+#: aleksis/core/views.py:261
 msgid "The school term has been saved."
 msgstr "Das Schuljahr wurde gespeichert."
 
-#: aleksis/core/views.py:352
+#: aleksis/core/views.py:406
 msgid "The child groups were successfully saved."
 msgstr "Die Untergruppen wurden gespeichert."
 
-#: aleksis/core/views.py:413
+#: aleksis/core/views.py:467
 msgid "The person has been saved."
 msgstr "Die Person wurde gespeichert."
 
-#: aleksis/core/views.py:452
+#: aleksis/core/views.py:506
 msgid "The group has been saved."
 msgstr "Die Gruppe wurde gespeichert."
 
-#: aleksis/core/views.py:549
+#: aleksis/core/views.py:603
 msgid "The announcement has been saved."
 msgstr "Die Ankündigung wurde gespeichert."
 
-#: aleksis/core/views.py:565
+#: aleksis/core/views.py:619
 msgid "The announcement has been deleted."
 msgstr "Ankündigung wurde gelöscht."
 
-#: aleksis/core/views.py:649
+#: aleksis/core/views.py:703
 msgid "The preferences have been saved successfully."
 msgstr "Die Einstellungen wurde gespeichert."
 
-#: aleksis/core/views.py:673
+#: aleksis/core/views.py:727
 msgid "The person has been deleted."
 msgstr "Die Person wurde gelöscht."
 
-#: aleksis/core/views.py:687
+#: aleksis/core/views.py:741
 msgid "The group has been deleted."
 msgstr "Die Gruppe wurde gelöscht."
 
-#: aleksis/core/views.py:719
+#: aleksis/core/views.py:773
 msgid "The additional_field has been saved."
 msgstr "Das zusätzliche Feld wurde gespeichert."
 
-#: aleksis/core/views.py:753
+#: aleksis/core/views.py:807
 msgid "The additional field has been deleted."
 msgstr "Das zusätzliche Feld wurde gelöscht."
 
-#: aleksis/core/views.py:778
+#: aleksis/core/views.py:832
 msgid "The group type has been saved."
 msgstr "Der Gruppentyp wurde gespeichert."
 
-#: aleksis/core/views.py:808
+#: aleksis/core/views.py:862
 msgid "The group type has been deleted."
 msgstr "Der Gruppentyp wurde gelöscht."
 
-#: aleksis/core/views.py:841
+#: aleksis/core/views.py:895
 msgid "Progress: Run data checks"
 msgstr "Fortschritt: Datenprüfungen ausführen"
 
-#: aleksis/core/views.py:842
+#: aleksis/core/views.py:896
 msgid "Run data checks …"
 msgstr "Datenprüfungen laufen …"
 
-#: aleksis/core/views.py:843
+#: aleksis/core/views.py:897
 msgid "The data checks were run successfully."
 msgstr "Die Datenprüfungen wurden erfolgreich ausgeführt."
 
-#: aleksis/core/views.py:844
+#: aleksis/core/views.py:898
 msgid "There was a problem while running data checks."
 msgstr "Es gab ein Problem beim Ausführen der Datenprüfungen."
 
-#: aleksis/core/views.py:860
+#: aleksis/core/views.py:914
 #, python-brace-format
 msgid "The solve option '{solve_option_obj.verbose_name}' "
 msgstr "Die Lösungsoption \"{solve_option_obj.verbose_name}\" "
 
-#: aleksis/core/views.py:902
+#: aleksis/core/views.py:956
 msgid "The dashboard widget has been saved."
 msgstr "Das Dashboard-Widget wurde gespeichert."
 
-#: aleksis/core/views.py:932
+#: aleksis/core/views.py:986
 msgid "The dashboard widget has been created."
 msgstr "Das Dashboard-Widget wurde erstellt."
 
-#: aleksis/core/views.py:942
+#: aleksis/core/views.py:996
 msgid "The dashboard widget has been deleted."
 msgstr "Das Dashboard-Widget wurde gelöscht."
 
-#: aleksis/core/views.py:1009
+#: aleksis/core/views.py:1063
 msgid "Your dashboard configuration has been saved successfully."
 msgstr "Ihre Dashboardkonfiguration wurde erfolgreich gespeichert."
 
-#: aleksis/core/views.py:1011
+#: aleksis/core/views.py:1065
 msgid "The configuration of the default dashboard has been saved successfully."
 msgstr "Die Konfiguration des Standard-Dashboardes wurde erfolgreich gespeichert."
 
-#: aleksis/core/views.py:1137
-msgid "The social account could not be disconnected because it is the only login method available."
+#: aleksis/core/views.py:1191
+msgid "The third-party account could not be disconnected because it is the only login method available."
 msgstr ""
 
-#: aleksis/core/views.py:1144
+#: aleksis/core/views.py:1198
 #, fuzzy
 #| msgid "The child groups were successfully saved."
-msgid "The social account has been successfully disconnected."
+msgid "The third-party account has been successfully disconnected."
 msgstr "Die Untergruppen wurden gespeichert."
 
+#~ msgid "Authorized tokens"
+#~ msgstr "Autorisierte Tokens"
+
+#~ msgid "No authorized tokens defined."
+#~ msgstr "Keine autorisierten Token definiert."
+
+#~ msgid "Social Network Login Failure"
+#~ msgstr "Anmeldung über soziales Netzwerk fehlgeschlagen"
+
 #~ msgid ""
 #~ "We are calling your phone right now, please enter the\n"
 #~ "              digits you hear."
@@ -3155,9 +3158,6 @@ msgstr "Die Untergruppen wurden gespeichert."
 #~ "Wir haben Ihnen eine Textnachricht geschickt. Bitte geben Sie die Tokens ein,\n"
 #~ "              die wir Ihnen geschickt haben."
 
-#~ msgid "Enabled custom authentication backends"
-#~ msgstr "Benutzerdefinierte Authentifizierungsbackends aktivieren"
-
 #~ msgid "French"
 #~ msgstr "Französisch"
 
diff --git a/aleksis/core/locale/de_DE/LC_MESSAGES/djangojs.po b/aleksis/core/locale/de_DE/LC_MESSAGES/djangojs.po
index 98db6bb2b..21ea82be5 100644
--- a/aleksis/core/locale/de_DE/LC_MESSAGES/djangojs.po
+++ b/aleksis/core/locale/de_DE/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-21 19:54+0200\n"
+"POT-Creation-Date: 2021-06-08 16:49+0200\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"
@@ -29,6 +29,6 @@ msgstr ""
 msgid "OK"
 msgstr ""
 
-#: aleksis/core/static/js/main.js:121
+#: aleksis/core/static/js/main.js:133
 msgid "This page may contain outdated information since there is no internet connection."
 msgstr ""
diff --git a/aleksis/core/locale/fr/LC_MESSAGES/django.po b/aleksis/core/locale/fr/LC_MESSAGES/django.po
index 8702bd00a..aae0ef351 100644
--- a/aleksis/core/locale/fr/LC_MESSAGES/django.po
+++ b/aleksis/core/locale/fr/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: AlekSIS (School Information System) 0.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-21 19:54+0200\n"
+"POT-Creation-Date: 2021-06-08 16:49+0200\n"
 "PO-Revision-Date: 2020-04-27 13:03+0000\n"
 "Last-Translator: Marlene Grundey <grundema@katharineum.de>\n"
 "Language-Team: French <https://translate.edugit.org/projects/aleksis/aleksis/fr/>\n"
@@ -277,11 +277,13 @@ msgid "Preferences"
 msgstr ""
 
 #: aleksis/core/menus.py:97
-msgid "Social accounts"
+msgid "Third-party accounts"
 msgstr ""
 
 #: aleksis/core/menus.py:106
-msgid "Authorized tokens"
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:5
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:6
+msgid "Authorized applications"
 msgstr ""
 
 #: aleksis/core/menus.py:117
@@ -373,7 +375,7 @@ msgstr ""
 msgid "Assign child groups to groups"
 msgstr ""
 
-#: aleksis/core/mixins.py:476
+#: aleksis/core/mixins.py:475
 msgid "Linked school term"
 msgstr ""
 
@@ -952,143 +954,147 @@ msgstr ""
 msgid "Internationalisation"
 msgstr ""
 
-#: aleksis/core/preferences.py:39
+#: aleksis/core/preferences.py:41
 msgid "Site title"
 msgstr ""
 
-#: aleksis/core/preferences.py:48
+#: aleksis/core/preferences.py:52
 #, fuzzy
 #| msgid "Description"
 msgid "Site description"
 msgstr "Description"
 
-#: aleksis/core/preferences.py:57
+#: aleksis/core/preferences.py:63
 msgid "Primary colour"
 msgstr ""
 
-#: aleksis/core/preferences.py:67
+#: aleksis/core/preferences.py:75
 msgid "Secondary colour"
 msgstr ""
 
-#: aleksis/core/preferences.py:76
+#: aleksis/core/preferences.py:86
 msgid "Logo"
 msgstr ""
 
-#: aleksis/core/preferences.py:84
+#: aleksis/core/preferences.py:96
 msgid "Favicon"
 msgstr ""
 
-#: aleksis/core/preferences.py:92
+#: aleksis/core/preferences.py:106
 msgid "PWA-Icon"
 msgstr ""
 
-#: aleksis/core/preferences.py:101
+#: aleksis/core/preferences.py:117
 #, fuzzy
 #| msgid "Last name"
 msgid "Mail out name"
 msgstr "Nom de famille"
 
-#: aleksis/core/preferences.py:110
+#: aleksis/core/preferences.py:128
 msgid "Mail out address"
 msgstr ""
 
-#: aleksis/core/preferences.py:120
+#: aleksis/core/preferences.py:140
 msgid "Link to privacy policy"
 msgstr ""
 
-#: aleksis/core/preferences.py:130
+#: aleksis/core/preferences.py:152
 msgid "Link to imprint"
 msgstr ""
 
-#: aleksis/core/preferences.py:140
+#: aleksis/core/preferences.py:164
 msgid "Name format for addressing"
 msgstr ""
 
-#: aleksis/core/preferences.py:154
+#: aleksis/core/preferences.py:180
 msgid "Channels to use for notifications"
 msgstr ""
 
-#: aleksis/core/preferences.py:164
+#: aleksis/core/preferences.py:192
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr ""
 
-#: aleksis/core/preferences.py:173
+#: aleksis/core/preferences.py:203
 msgid "Field on person to match primary group against"
 msgstr ""
 
-#: aleksis/core/preferences.py:185
+#: aleksis/core/preferences.py:215
 msgid "Automatically create new persons for new users"
 msgstr ""
 
-#: aleksis/core/preferences.py:194
+#: aleksis/core/preferences.py:224
 msgid "Automatically link existing persons to new users by their e-mail address"
 msgstr ""
 
-#: aleksis/core/preferences.py:203
+#: aleksis/core/preferences.py:235
 msgid "Display name of the school"
 msgstr ""
 
-#: aleksis/core/preferences.py:212
+#: aleksis/core/preferences.py:246
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr ""
 
-#: aleksis/core/preferences.py:220
+#: aleksis/core/preferences.py:256
+msgid "Enabled custom authentication backends"
+msgstr ""
+
+#: aleksis/core/preferences.py:268
 msgid "Allow users to change their passwords"
 msgstr ""
 
-#: aleksis/core/preferences.py:228
+#: aleksis/core/preferences.py:276
 msgid "Enable signup"
 msgstr ""
 
-#: aleksis/core/preferences.py:237
+#: aleksis/core/preferences.py:287
 msgid "Available languages"
 msgstr ""
 
-#: aleksis/core/preferences.py:249
+#: aleksis/core/preferences.py:299
 msgid "Send emails if data checks detect problems"
 msgstr ""
 
-#: aleksis/core/preferences.py:260
+#: aleksis/core/preferences.py:310
 msgid "Email recipients for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:271
+#: aleksis/core/preferences.py:321
 msgid "Email recipient groups for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:280
+#: aleksis/core/preferences.py:330
 msgid "Show dashboard to users without login"
 msgstr ""
 
-#: aleksis/core/preferences.py:289
+#: aleksis/core/preferences.py:339
 msgid "Allow users to edit their dashboard"
 msgstr ""
 
-#: aleksis/core/preferences.py:300
+#: aleksis/core/preferences.py:350
 msgid "Fields on person model which are editable by themselves."
 msgstr ""
 
-#: aleksis/core/preferences.py:314
+#: aleksis/core/preferences.py:364
 msgid "Editable fields on person model which should trigger a notification on change"
 msgstr ""
 
-#: aleksis/core/preferences.py:327
+#: aleksis/core/preferences.py:377
 msgid "Contact for notification if a person changes their data"
 msgstr ""
 
-#: aleksis/core/preferences.py:337
+#: aleksis/core/preferences.py:387
 msgid "PDF file expiration duration"
 msgstr ""
 
-#: aleksis/core/preferences.py:338
+#: aleksis/core/preferences.py:388
 msgid "in minutes"
 msgstr ""
 
-#: aleksis/core/settings.py:477
+#: aleksis/core/settings.py:470
 msgid "English"
 msgstr ""
 
-#: aleksis/core/settings.py:478
+#: aleksis/core/settings.py:471
 msgid "German"
 msgstr ""
 
@@ -2178,26 +2184,23 @@ msgstr ""
 
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:5
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:6
-msgid "Revoke token"
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
+msgid "Revoke access"
 msgstr ""
 
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:12
-msgid "Are you sure to revoke this token?"
+msgid "Are you sure to revoke the access for this application?"
 msgstr ""
 
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:20
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
 msgid "Revoke"
 msgstr ""
 
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:5
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:6
-msgid "Authorized applications"
-msgstr ""
-
 #: aleksis/core/templates/oauth2_provider/authorized-tokens.html:33
-msgid "No authorized tokens defined."
-msgstr ""
+#, fuzzy
+#| msgid "Contact details"
+msgid "No authorized applications."
+msgstr "Détails de contact"
 
 #: aleksis/core/templates/offline.html:5
 msgid "Network error"
@@ -2240,17 +2243,17 @@ msgstr ""
 
 #: aleksis/core/templates/socialaccount/authentication_error.html:5
 #: aleksis/core/templates/socialaccount/authentication_error.html:6
-msgid "Social Network Login Failure"
+msgid "Third-party Account Login Failure"
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/authentication_error.html:13
-msgid "Social Network Login Failure."
+msgid "Third-party Account Login Failure."
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/authentication_error.html:15
 msgid ""
 "\n"
-"            An error occurred while attempting to login via your social network account.\n"
+"            An error occurred while attempting to login via your third-party account.\n"
 "            Please contact one of your site administrators.\n"
 "          "
 msgstr ""
@@ -2265,11 +2268,11 @@ msgid "Remove"
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/connections.html:34
-msgid "You currently have no social network accounts connected to this account."
+msgid "You currently have no third-party accounts connected to this account."
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/connections.html:37
-msgid "Add a 3rd Party Account"
+msgid "Add a Third-party Account"
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/login_cancelled.html:5
@@ -2312,7 +2315,7 @@ msgstr ""
 #: aleksis/core/templates/socialaccount/snippets/provider_list.html:30
 msgid ""
 "\n"
-"          No 3rd party account providers available.\n"
+"          No third-party account providers available.\n"
 "        "
 msgstr ""
 
@@ -2775,107 +2778,107 @@ msgstr ""
 msgid "Download PDF"
 msgstr ""
 
-#: aleksis/core/views.py:195
+#: aleksis/core/views.py:249
 msgid "The school term has been created."
 msgstr ""
 
-#: aleksis/core/views.py:207
+#: aleksis/core/views.py:261
 msgid "The school term has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:352
+#: aleksis/core/views.py:406
 msgid "The child groups were successfully saved."
 msgstr ""
 
-#: aleksis/core/views.py:413
+#: aleksis/core/views.py:467
 msgid "The person has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:452
+#: aleksis/core/views.py:506
 msgid "The group has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:549
+#: aleksis/core/views.py:603
 msgid "The announcement has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:565
+#: aleksis/core/views.py:619
 msgid "The announcement has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:649
+#: aleksis/core/views.py:703
 msgid "The preferences have been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:673
+#: aleksis/core/views.py:727
 msgid "The person has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:687
+#: aleksis/core/views.py:741
 msgid "The group has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:719
+#: aleksis/core/views.py:773
 msgid "The additional_field has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:753
+#: aleksis/core/views.py:807
 msgid "The additional field has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:778
+#: aleksis/core/views.py:832
 msgid "The group type has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:808
+#: aleksis/core/views.py:862
 msgid "The group type has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:841
+#: aleksis/core/views.py:895
 msgid "Progress: Run data checks"
 msgstr ""
 
-#: aleksis/core/views.py:842
+#: aleksis/core/views.py:896
 msgid "Run data checks …"
 msgstr ""
 
-#: aleksis/core/views.py:843
+#: aleksis/core/views.py:897
 msgid "The data checks were run successfully."
 msgstr ""
 
-#: aleksis/core/views.py:844
+#: aleksis/core/views.py:898
 msgid "There was a problem while running data checks."
 msgstr ""
 
-#: aleksis/core/views.py:860
+#: aleksis/core/views.py:914
 #, python-brace-format
 msgid "The solve option '{solve_option_obj.verbose_name}' "
 msgstr ""
 
-#: aleksis/core/views.py:902
+#: aleksis/core/views.py:956
 msgid "The dashboard widget has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:932
+#: aleksis/core/views.py:986
 msgid "The dashboard widget has been created."
 msgstr ""
 
-#: aleksis/core/views.py:942
+#: aleksis/core/views.py:996
 msgid "The dashboard widget has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1009
+#: aleksis/core/views.py:1063
 msgid "Your dashboard configuration has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1011
+#: aleksis/core/views.py:1065
 msgid "The configuration of the default dashboard has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1137
-msgid "The social account could not be disconnected because it is the only login method available."
+#: aleksis/core/views.py:1191
+msgid "The third-party account could not be disconnected because it is the only login method available."
 msgstr ""
 
-#: aleksis/core/views.py:1144
-msgid "The social account has been successfully disconnected."
+#: aleksis/core/views.py:1198
+msgid "The third-party account has been successfully disconnected."
 msgstr ""
diff --git a/aleksis/core/locale/fr/LC_MESSAGES/djangojs.po b/aleksis/core/locale/fr/LC_MESSAGES/djangojs.po
index 092a17e7b..21e693643 100644
--- a/aleksis/core/locale/fr/LC_MESSAGES/djangojs.po
+++ b/aleksis/core/locale/fr/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-21 19:54+0200\n"
+"POT-Creation-Date: 2021-06-08 16:49+0200\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"
@@ -30,6 +30,6 @@ msgstr ""
 msgid "OK"
 msgstr ""
 
-#: aleksis/core/static/js/main.js:121
+#: aleksis/core/static/js/main.js:133
 msgid "This page may contain outdated information since there is no internet connection."
 msgstr ""
diff --git a/aleksis/core/locale/la/LC_MESSAGES/django.po b/aleksis/core/locale/la/LC_MESSAGES/django.po
index 5985bab7c..c93dfc4c8 100644
--- a/aleksis/core/locale/la/LC_MESSAGES/django.po
+++ b/aleksis/core/locale/la/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-21 19:54+0200\n"
+"POT-Creation-Date: 2021-06-08 16:49+0200\n"
 "PO-Revision-Date: 2020-12-19 12:57+0000\n"
 "Last-Translator: Julian <leuckerj@gmail.com>\n"
 "Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis/la/>\n"
@@ -279,12 +279,16 @@ msgstr ""
 #: aleksis/core/menus.py:97
 #, fuzzy
 #| msgid "Persons and accounts"
-msgid "Social accounts"
+msgid "Third-party accounts"
 msgstr "Personae et computi"
 
 #: aleksis/core/menus.py:106
-msgid "Authorized tokens"
-msgstr ""
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:5
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:6
+#, fuzzy
+#| msgid "Notifications"
+msgid "Authorized applications"
+msgstr "Nuntii"
 
 #: aleksis/core/menus.py:117
 msgid "Admin"
@@ -385,7 +389,7 @@ msgstr "addita nomines"
 msgid "Assign child groups to groups"
 msgstr ""
 
-#: aleksis/core/mixins.py:476
+#: aleksis/core/mixins.py:475
 #, fuzzy
 #| msgid "Edit school term"
 msgid "Linked school term"
@@ -1002,147 +1006,151 @@ msgstr "Nuntii"
 msgid "Internationalisation"
 msgstr "Simulare aliquem"
 
-#: aleksis/core/preferences.py:39
+#: aleksis/core/preferences.py:41
 msgid "Site title"
 msgstr "Titulus paginae"
 
-#: aleksis/core/preferences.py:48
+#: aleksis/core/preferences.py:52
 msgid "Site description"
 msgstr "Descriptio paginae"
 
-#: aleksis/core/preferences.py:57
+#: aleksis/core/preferences.py:63
 msgid "Primary colour"
 msgstr ""
 
-#: aleksis/core/preferences.py:67
+#: aleksis/core/preferences.py:75
 msgid "Secondary colour"
 msgstr ""
 
-#: aleksis/core/preferences.py:76
+#: aleksis/core/preferences.py:86
 #, fuzzy
 #| msgid "Logout"
 msgid "Logo"
 msgstr "nomen retractare"
 
-#: aleksis/core/preferences.py:84
+#: aleksis/core/preferences.py:96
 msgid "Favicon"
 msgstr ""
 
-#: aleksis/core/preferences.py:92
+#: aleksis/core/preferences.py:106
 #, fuzzy
 #| msgid "Icon"
 msgid "PWA-Icon"
 msgstr "Nota"
 
-#: aleksis/core/preferences.py:101
+#: aleksis/core/preferences.py:117
 #, fuzzy
 #| msgid "Last name"
 msgid "Mail out name"
 msgstr "Secondus nomen"
 
-#: aleksis/core/preferences.py:110
+#: aleksis/core/preferences.py:128
 #, fuzzy
 #| msgid "E-mail address"
 msgid "Mail out address"
 msgstr "Inscriptio electronica"
 
-#: aleksis/core/preferences.py:120
+#: aleksis/core/preferences.py:140
 msgid "Link to privacy policy"
 msgstr ""
 
-#: aleksis/core/preferences.py:130
+#: aleksis/core/preferences.py:152
 msgid "Link to imprint"
 msgstr ""
 
-#: aleksis/core/preferences.py:140
+#: aleksis/core/preferences.py:164
 msgid "Name format for addressing"
 msgstr ""
 
-#: aleksis/core/preferences.py:154
+#: aleksis/core/preferences.py:180
 msgid "Channels to use for notifications"
 msgstr ""
 
-#: aleksis/core/preferences.py:164
+#: aleksis/core/preferences.py:192
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr ""
 
-#: aleksis/core/preferences.py:173
+#: aleksis/core/preferences.py:203
 msgid "Field on person to match primary group against"
 msgstr ""
 
-#: aleksis/core/preferences.py:185
+#: aleksis/core/preferences.py:215
 msgid "Automatically create new persons for new users"
 msgstr ""
 
-#: aleksis/core/preferences.py:194
+#: aleksis/core/preferences.py:224
 msgid "Automatically link existing persons to new users by their e-mail address"
 msgstr ""
 
-#: aleksis/core/preferences.py:203
+#: aleksis/core/preferences.py:235
 msgid "Display name of the school"
 msgstr ""
 
-#: aleksis/core/preferences.py:212
+#: aleksis/core/preferences.py:246
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr "Officialis nomen scolae, e. g."
 
-#: aleksis/core/preferences.py:220
+#: aleksis/core/preferences.py:256
+msgid "Enabled custom authentication backends"
+msgstr ""
+
+#: aleksis/core/preferences.py:268
 msgid "Allow users to change their passwords"
 msgstr ""
 
-#: aleksis/core/preferences.py:228
+#: aleksis/core/preferences.py:276
 msgid "Enable signup"
 msgstr ""
 
-#: aleksis/core/preferences.py:237
+#: aleksis/core/preferences.py:287
 msgid "Available languages"
 msgstr ""
 
-#: aleksis/core/preferences.py:249
+#: aleksis/core/preferences.py:299
 msgid "Send emails if data checks detect problems"
 msgstr ""
 
-#: aleksis/core/preferences.py:260
+#: aleksis/core/preferences.py:310
 msgid "Email recipients for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:271
+#: aleksis/core/preferences.py:321
 msgid "Email recipient groups for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:280
+#: aleksis/core/preferences.py:330
 msgid "Show dashboard to users without login"
 msgstr ""
 
-#: aleksis/core/preferences.py:289
+#: aleksis/core/preferences.py:339
 msgid "Allow users to edit their dashboard"
 msgstr ""
 
-#: aleksis/core/preferences.py:300
+#: aleksis/core/preferences.py:350
 msgid "Fields on person model which are editable by themselves."
 msgstr ""
 
-#: aleksis/core/preferences.py:314
+#: aleksis/core/preferences.py:364
 msgid "Editable fields on person model which should trigger a notification on change"
 msgstr ""
 
-#: aleksis/core/preferences.py:327
+#: aleksis/core/preferences.py:377
 msgid "Contact for notification if a person changes their data"
 msgstr ""
 
-#: aleksis/core/preferences.py:337
+#: aleksis/core/preferences.py:387
 msgid "PDF file expiration duration"
 msgstr ""
 
-#: aleksis/core/preferences.py:338
+#: aleksis/core/preferences.py:388
 msgid "in minutes"
 msgstr ""
 
-#: aleksis/core/settings.py:477
+#: aleksis/core/settings.py:470
 msgid "English"
 msgstr "Britannicus"
 
-#: aleksis/core/settings.py:478
+#: aleksis/core/settings.py:471
 msgid "German"
 msgstr "Germanus"
 
@@ -2286,29 +2294,24 @@ msgstr ""
 
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:5
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:6
-msgid "Revoke token"
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
+msgid "Revoke access"
 msgstr ""
 
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:12
-msgid "Are you sure to revoke this token?"
+msgid "Are you sure to revoke the access for this application?"
 msgstr ""
 
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:20
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
 msgid "Revoke"
 msgstr ""
 
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:5
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:6
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:33
 #, fuzzy
 #| msgid "Notifications"
-msgid "Authorized applications"
+msgid "No authorized applications."
 msgstr "Nuntii"
 
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:33
-msgid "No authorized tokens defined."
-msgstr ""
-
 #: aleksis/core/templates/offline.html:5
 msgid "Network error"
 msgstr ""
@@ -2350,17 +2353,17 @@ msgstr ""
 
 #: aleksis/core/templates/socialaccount/authentication_error.html:5
 #: aleksis/core/templates/socialaccount/authentication_error.html:6
-msgid "Social Network Login Failure"
+msgid "Third-party Account Login Failure"
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/authentication_error.html:13
-msgid "Social Network Login Failure."
+msgid "Third-party Account Login Failure."
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/authentication_error.html:15
 msgid ""
 "\n"
-"            An error occurred while attempting to login via your social network account.\n"
+"            An error occurred while attempting to login via your third-party account.\n"
 "            Please contact one of your site administrators.\n"
 "          "
 msgstr ""
@@ -2377,11 +2380,11 @@ msgid "Remove"
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/connections.html:34
-msgid "You currently have no social network accounts connected to this account."
+msgid "You currently have no third-party accounts connected to this account."
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/connections.html:37
-msgid "Add a 3rd Party Account"
+msgid "Add a Third-party Account"
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/login_cancelled.html:5
@@ -2424,7 +2427,7 @@ msgstr ""
 #: aleksis/core/templates/socialaccount/snippets/provider_list.html:30
 msgid ""
 "\n"
-"          No 3rd party account providers available.\n"
+"          No third-party account providers available.\n"
 "        "
 msgstr ""
 
@@ -2894,111 +2897,111 @@ msgstr ""
 msgid "Download PDF"
 msgstr ""
 
-#: aleksis/core/views.py:195
+#: aleksis/core/views.py:249
 msgid "The school term has been created."
 msgstr ""
 
-#: aleksis/core/views.py:207
+#: aleksis/core/views.py:261
 msgid "The school term has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:352
+#: aleksis/core/views.py:406
 msgid "The child groups were successfully saved."
 msgstr ""
 
-#: aleksis/core/views.py:413
+#: aleksis/core/views.py:467
 msgid "The person has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:452
+#: aleksis/core/views.py:506
 msgid "The group has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:549
+#: aleksis/core/views.py:603
 msgid "The announcement has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:565
+#: aleksis/core/views.py:619
 msgid "The announcement has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:649
+#: aleksis/core/views.py:703
 msgid "The preferences have been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:673
+#: aleksis/core/views.py:727
 msgid "The person has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:687
+#: aleksis/core/views.py:741
 msgid "The group has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:719
+#: aleksis/core/views.py:773
 msgid "The additional_field has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:753
+#: aleksis/core/views.py:807
 msgid "The additional field has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:778
+#: aleksis/core/views.py:832
 msgid "The group type has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:808
+#: aleksis/core/views.py:862
 msgid "The group type has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:841
+#: aleksis/core/views.py:895
 msgid "Progress: Run data checks"
 msgstr ""
 
-#: aleksis/core/views.py:842
+#: aleksis/core/views.py:896
 #, fuzzy
 #| msgid "System status"
 msgid "Run data checks …"
 msgstr "Status systemae"
 
-#: aleksis/core/views.py:843
+#: aleksis/core/views.py:897
 msgid "The data checks were run successfully."
 msgstr ""
 
-#: aleksis/core/views.py:844
+#: aleksis/core/views.py:898
 msgid "There was a problem while running data checks."
 msgstr ""
 
-#: aleksis/core/views.py:860
+#: aleksis/core/views.py:914
 #, python-brace-format
 msgid "The solve option '{solve_option_obj.verbose_name}' "
 msgstr ""
 
-#: aleksis/core/views.py:902
+#: aleksis/core/views.py:956
 msgid "The dashboard widget has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:932
+#: aleksis/core/views.py:986
 msgid "The dashboard widget has been created."
 msgstr ""
 
-#: aleksis/core/views.py:942
+#: aleksis/core/views.py:996
 msgid "The dashboard widget has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1009
+#: aleksis/core/views.py:1063
 msgid "Your dashboard configuration has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1011
+#: aleksis/core/views.py:1065
 msgid "The configuration of the default dashboard has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1137
-msgid "The social account could not be disconnected because it is the only login method available."
+#: aleksis/core/views.py:1191
+msgid "The third-party account could not be disconnected because it is the only login method available."
 msgstr ""
 
-#: aleksis/core/views.py:1144
-msgid "The social account has been successfully disconnected."
+#: aleksis/core/views.py:1198
+msgid "The third-party account has been successfully disconnected."
 msgstr ""
 
 #~ msgid "School logo"
diff --git a/aleksis/core/locale/la/LC_MESSAGES/djangojs.po b/aleksis/core/locale/la/LC_MESSAGES/djangojs.po
index 98db6bb2b..21ea82be5 100644
--- a/aleksis/core/locale/la/LC_MESSAGES/djangojs.po
+++ b/aleksis/core/locale/la/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-21 19:54+0200\n"
+"POT-Creation-Date: 2021-06-08 16:49+0200\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"
@@ -29,6 +29,6 @@ msgstr ""
 msgid "OK"
 msgstr ""
 
-#: aleksis/core/static/js/main.js:121
+#: aleksis/core/static/js/main.js:133
 msgid "This page may contain outdated information since there is no internet connection."
 msgstr ""
diff --git a/aleksis/core/locale/nb_NO/LC_MESSAGES/django.po b/aleksis/core/locale/nb_NO/LC_MESSAGES/django.po
index 713e94c8e..7c6a52b38 100644
--- a/aleksis/core/locale/nb_NO/LC_MESSAGES/django.po
+++ b/aleksis/core/locale/nb_NO/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: AlekSIS (School Information System) 0.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-21 19:54+0200\n"
+"POT-Creation-Date: 2021-06-08 16:49+0200\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"
@@ -260,11 +260,13 @@ msgid "Preferences"
 msgstr ""
 
 #: aleksis/core/menus.py:97
-msgid "Social accounts"
+msgid "Third-party accounts"
 msgstr ""
 
 #: aleksis/core/menus.py:106
-msgid "Authorized tokens"
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:5
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:6
+msgid "Authorized applications"
 msgstr ""
 
 #: aleksis/core/menus.py:117
@@ -354,7 +356,7 @@ msgstr ""
 msgid "Assign child groups to groups"
 msgstr ""
 
-#: aleksis/core/mixins.py:476
+#: aleksis/core/mixins.py:475
 msgid "Linked school term"
 msgstr ""
 
@@ -903,139 +905,143 @@ msgstr ""
 msgid "Internationalisation"
 msgstr ""
 
-#: aleksis/core/preferences.py:39
+#: aleksis/core/preferences.py:41
 msgid "Site title"
 msgstr ""
 
-#: aleksis/core/preferences.py:48
+#: aleksis/core/preferences.py:52
 msgid "Site description"
 msgstr ""
 
-#: aleksis/core/preferences.py:57
+#: aleksis/core/preferences.py:63
 msgid "Primary colour"
 msgstr ""
 
-#: aleksis/core/preferences.py:67
+#: aleksis/core/preferences.py:75
 msgid "Secondary colour"
 msgstr ""
 
-#: aleksis/core/preferences.py:76
+#: aleksis/core/preferences.py:86
 msgid "Logo"
 msgstr ""
 
-#: aleksis/core/preferences.py:84
+#: aleksis/core/preferences.py:96
 msgid "Favicon"
 msgstr ""
 
-#: aleksis/core/preferences.py:92
+#: aleksis/core/preferences.py:106
 msgid "PWA-Icon"
 msgstr ""
 
-#: aleksis/core/preferences.py:101
+#: aleksis/core/preferences.py:117
 msgid "Mail out name"
 msgstr ""
 
-#: aleksis/core/preferences.py:110
+#: aleksis/core/preferences.py:128
 msgid "Mail out address"
 msgstr ""
 
-#: aleksis/core/preferences.py:120
+#: aleksis/core/preferences.py:140
 msgid "Link to privacy policy"
 msgstr ""
 
-#: aleksis/core/preferences.py:130
+#: aleksis/core/preferences.py:152
 msgid "Link to imprint"
 msgstr ""
 
-#: aleksis/core/preferences.py:140
+#: aleksis/core/preferences.py:164
 msgid "Name format for addressing"
 msgstr ""
 
-#: aleksis/core/preferences.py:154
+#: aleksis/core/preferences.py:180
 msgid "Channels to use for notifications"
 msgstr ""
 
-#: aleksis/core/preferences.py:164
+#: aleksis/core/preferences.py:192
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr ""
 
-#: aleksis/core/preferences.py:173
+#: aleksis/core/preferences.py:203
 msgid "Field on person to match primary group against"
 msgstr ""
 
-#: aleksis/core/preferences.py:185
+#: aleksis/core/preferences.py:215
 msgid "Automatically create new persons for new users"
 msgstr ""
 
-#: aleksis/core/preferences.py:194
+#: aleksis/core/preferences.py:224
 msgid "Automatically link existing persons to new users by their e-mail address"
 msgstr ""
 
-#: aleksis/core/preferences.py:203
+#: aleksis/core/preferences.py:235
 msgid "Display name of the school"
 msgstr ""
 
-#: aleksis/core/preferences.py:212
+#: aleksis/core/preferences.py:246
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr ""
 
-#: aleksis/core/preferences.py:220
+#: aleksis/core/preferences.py:256
+msgid "Enabled custom authentication backends"
+msgstr ""
+
+#: aleksis/core/preferences.py:268
 msgid "Allow users to change their passwords"
 msgstr ""
 
-#: aleksis/core/preferences.py:228
+#: aleksis/core/preferences.py:276
 msgid "Enable signup"
 msgstr ""
 
-#: aleksis/core/preferences.py:237
+#: aleksis/core/preferences.py:287
 msgid "Available languages"
 msgstr ""
 
-#: aleksis/core/preferences.py:249
+#: aleksis/core/preferences.py:299
 msgid "Send emails if data checks detect problems"
 msgstr ""
 
-#: aleksis/core/preferences.py:260
+#: aleksis/core/preferences.py:310
 msgid "Email recipients for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:271
+#: aleksis/core/preferences.py:321
 msgid "Email recipient groups for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:280
+#: aleksis/core/preferences.py:330
 msgid "Show dashboard to users without login"
 msgstr ""
 
-#: aleksis/core/preferences.py:289
+#: aleksis/core/preferences.py:339
 msgid "Allow users to edit their dashboard"
 msgstr ""
 
-#: aleksis/core/preferences.py:300
+#: aleksis/core/preferences.py:350
 msgid "Fields on person model which are editable by themselves."
 msgstr ""
 
-#: aleksis/core/preferences.py:314
+#: aleksis/core/preferences.py:364
 msgid "Editable fields on person model which should trigger a notification on change"
 msgstr ""
 
-#: aleksis/core/preferences.py:327
+#: aleksis/core/preferences.py:377
 msgid "Contact for notification if a person changes their data"
 msgstr ""
 
-#: aleksis/core/preferences.py:337
+#: aleksis/core/preferences.py:387
 msgid "PDF file expiration duration"
 msgstr ""
 
-#: aleksis/core/preferences.py:338
+#: aleksis/core/preferences.py:388
 msgid "in minutes"
 msgstr ""
 
-#: aleksis/core/settings.py:477
+#: aleksis/core/settings.py:470
 msgid "English"
 msgstr ""
 
-#: aleksis/core/settings.py:478
+#: aleksis/core/settings.py:471
 msgid "German"
 msgstr ""
 
@@ -2109,25 +2115,20 @@ msgstr ""
 
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:5
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:6
-msgid "Revoke token"
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
+msgid "Revoke access"
 msgstr ""
 
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:12
-msgid "Are you sure to revoke this token?"
+msgid "Are you sure to revoke the access for this application?"
 msgstr ""
 
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:20
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
 msgid "Revoke"
 msgstr ""
 
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:5
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:6
-msgid "Authorized applications"
-msgstr ""
-
 #: aleksis/core/templates/oauth2_provider/authorized-tokens.html:33
-msgid "No authorized tokens defined."
+msgid "No authorized applications."
 msgstr ""
 
 #: aleksis/core/templates/offline.html:5
@@ -2171,17 +2172,17 @@ msgstr ""
 
 #: aleksis/core/templates/socialaccount/authentication_error.html:5
 #: aleksis/core/templates/socialaccount/authentication_error.html:6
-msgid "Social Network Login Failure"
+msgid "Third-party Account Login Failure"
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/authentication_error.html:13
-msgid "Social Network Login Failure."
+msgid "Third-party Account Login Failure."
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/authentication_error.html:15
 msgid ""
 "\n"
-"            An error occurred while attempting to login via your social network account.\n"
+"            An error occurred while attempting to login via your third-party account.\n"
 "            Please contact one of your site administrators.\n"
 "          "
 msgstr ""
@@ -2196,11 +2197,11 @@ msgid "Remove"
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/connections.html:34
-msgid "You currently have no social network accounts connected to this account."
+msgid "You currently have no third-party accounts connected to this account."
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/connections.html:37
-msgid "Add a 3rd Party Account"
+msgid "Add a Third-party Account"
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/login_cancelled.html:5
@@ -2243,7 +2244,7 @@ msgstr ""
 #: aleksis/core/templates/socialaccount/snippets/provider_list.html:30
 msgid ""
 "\n"
-"          No 3rd party account providers available.\n"
+"          No third-party account providers available.\n"
 "        "
 msgstr ""
 
@@ -2704,109 +2705,109 @@ msgstr ""
 msgid "Download PDF"
 msgstr ""
 
-#: aleksis/core/views.py:195
+#: aleksis/core/views.py:249
 msgid "The school term has been created."
 msgstr ""
 
-#: aleksis/core/views.py:207
+#: aleksis/core/views.py:261
 msgid "The school term has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:352
+#: aleksis/core/views.py:406
 msgid "The child groups were successfully saved."
 msgstr ""
 
-#: aleksis/core/views.py:413
+#: aleksis/core/views.py:467
 msgid "The person has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:452
+#: aleksis/core/views.py:506
 msgid "The group has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:549
+#: aleksis/core/views.py:603
 msgid "The announcement has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:565
+#: aleksis/core/views.py:619
 msgid "The announcement has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:649
+#: aleksis/core/views.py:703
 msgid "The preferences have been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:673
+#: aleksis/core/views.py:727
 msgid "The person has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:687
+#: aleksis/core/views.py:741
 msgid "The group has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:719
+#: aleksis/core/views.py:773
 msgid "The additional_field has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:753
+#: aleksis/core/views.py:807
 msgid "The additional field has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:778
+#: aleksis/core/views.py:832
 msgid "The group type has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:808
+#: aleksis/core/views.py:862
 msgid "The group type has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:841
+#: aleksis/core/views.py:895
 msgid "Progress: Run data checks"
 msgstr ""
 
-#: aleksis/core/views.py:842
+#: aleksis/core/views.py:896
 msgid "Run data checks …"
 msgstr ""
 
-#: aleksis/core/views.py:843
+#: aleksis/core/views.py:897
 msgid "The data checks were run successfully."
 msgstr ""
 
-#: aleksis/core/views.py:844
+#: aleksis/core/views.py:898
 msgid "There was a problem while running data checks."
 msgstr ""
 
-#: aleksis/core/views.py:860
+#: aleksis/core/views.py:914
 #, python-brace-format
 msgid "The solve option '{solve_option_obj.verbose_name}' "
 msgstr ""
 
-#: aleksis/core/views.py:902
+#: aleksis/core/views.py:956
 msgid "The dashboard widget has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:932
+#: aleksis/core/views.py:986
 msgid "The dashboard widget has been created."
 msgstr ""
 
-#: aleksis/core/views.py:942
+#: aleksis/core/views.py:996
 msgid "The dashboard widget has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1009
+#: aleksis/core/views.py:1063
 msgid "Your dashboard configuration has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1011
+#: aleksis/core/views.py:1065
 msgid "The configuration of the default dashboard has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1137
-msgid "The social account could not be disconnected because it is the only login method available."
+#: aleksis/core/views.py:1191
+msgid "The third-party account could not be disconnected because it is the only login method available."
 msgstr ""
 
-#: aleksis/core/views.py:1144
-msgid "The social account has been successfully disconnected."
+#: aleksis/core/views.py:1198
+msgid "The third-party account has been successfully disconnected."
 msgstr ""
 
 #~ msgid "Norwegian (bokmål)"
diff --git a/aleksis/core/locale/nb_NO/LC_MESSAGES/djangojs.po b/aleksis/core/locale/nb_NO/LC_MESSAGES/djangojs.po
index 98db6bb2b..21ea82be5 100644
--- a/aleksis/core/locale/nb_NO/LC_MESSAGES/djangojs.po
+++ b/aleksis/core/locale/nb_NO/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-21 19:54+0200\n"
+"POT-Creation-Date: 2021-06-08 16:49+0200\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"
@@ -29,6 +29,6 @@ msgstr ""
 msgid "OK"
 msgstr ""
 
-#: aleksis/core/static/js/main.js:121
+#: aleksis/core/static/js/main.js:133
 msgid "This page may contain outdated information since there is no internet connection."
 msgstr ""
diff --git a/aleksis/core/locale/tr_TR/LC_MESSAGES/django.po b/aleksis/core/locale/tr_TR/LC_MESSAGES/django.po
index eacabc847..4c442feb3 100644
--- a/aleksis/core/locale/tr_TR/LC_MESSAGES/django.po
+++ b/aleksis/core/locale/tr_TR/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: AlekSIS (School Information System) 0.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-21 19:54+0200\n"
+"POT-Creation-Date: 2021-06-08 16:49+0200\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"
@@ -260,11 +260,13 @@ msgid "Preferences"
 msgstr ""
 
 #: aleksis/core/menus.py:97
-msgid "Social accounts"
+msgid "Third-party accounts"
 msgstr ""
 
 #: aleksis/core/menus.py:106
-msgid "Authorized tokens"
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:5
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:6
+msgid "Authorized applications"
 msgstr ""
 
 #: aleksis/core/menus.py:117
@@ -354,7 +356,7 @@ msgstr ""
 msgid "Assign child groups to groups"
 msgstr ""
 
-#: aleksis/core/mixins.py:476
+#: aleksis/core/mixins.py:475
 msgid "Linked school term"
 msgstr ""
 
@@ -903,139 +905,143 @@ msgstr ""
 msgid "Internationalisation"
 msgstr ""
 
-#: aleksis/core/preferences.py:39
+#: aleksis/core/preferences.py:41
 msgid "Site title"
 msgstr ""
 
-#: aleksis/core/preferences.py:48
+#: aleksis/core/preferences.py:52
 msgid "Site description"
 msgstr ""
 
-#: aleksis/core/preferences.py:57
+#: aleksis/core/preferences.py:63
 msgid "Primary colour"
 msgstr ""
 
-#: aleksis/core/preferences.py:67
+#: aleksis/core/preferences.py:75
 msgid "Secondary colour"
 msgstr ""
 
-#: aleksis/core/preferences.py:76
+#: aleksis/core/preferences.py:86
 msgid "Logo"
 msgstr ""
 
-#: aleksis/core/preferences.py:84
+#: aleksis/core/preferences.py:96
 msgid "Favicon"
 msgstr ""
 
-#: aleksis/core/preferences.py:92
+#: aleksis/core/preferences.py:106
 msgid "PWA-Icon"
 msgstr ""
 
-#: aleksis/core/preferences.py:101
+#: aleksis/core/preferences.py:117
 msgid "Mail out name"
 msgstr ""
 
-#: aleksis/core/preferences.py:110
+#: aleksis/core/preferences.py:128
 msgid "Mail out address"
 msgstr ""
 
-#: aleksis/core/preferences.py:120
+#: aleksis/core/preferences.py:140
 msgid "Link to privacy policy"
 msgstr ""
 
-#: aleksis/core/preferences.py:130
+#: aleksis/core/preferences.py:152
 msgid "Link to imprint"
 msgstr ""
 
-#: aleksis/core/preferences.py:140
+#: aleksis/core/preferences.py:164
 msgid "Name format for addressing"
 msgstr ""
 
-#: aleksis/core/preferences.py:154
+#: aleksis/core/preferences.py:180
 msgid "Channels to use for notifications"
 msgstr ""
 
-#: aleksis/core/preferences.py:164
+#: aleksis/core/preferences.py:192
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr ""
 
-#: aleksis/core/preferences.py:173
+#: aleksis/core/preferences.py:203
 msgid "Field on person to match primary group against"
 msgstr ""
 
-#: aleksis/core/preferences.py:185
+#: aleksis/core/preferences.py:215
 msgid "Automatically create new persons for new users"
 msgstr ""
 
-#: aleksis/core/preferences.py:194
+#: aleksis/core/preferences.py:224
 msgid "Automatically link existing persons to new users by their e-mail address"
 msgstr ""
 
-#: aleksis/core/preferences.py:203
+#: aleksis/core/preferences.py:235
 msgid "Display name of the school"
 msgstr ""
 
-#: aleksis/core/preferences.py:212
+#: aleksis/core/preferences.py:246
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr ""
 
-#: aleksis/core/preferences.py:220
+#: aleksis/core/preferences.py:256
+msgid "Enabled custom authentication backends"
+msgstr ""
+
+#: aleksis/core/preferences.py:268
 msgid "Allow users to change their passwords"
 msgstr ""
 
-#: aleksis/core/preferences.py:228
+#: aleksis/core/preferences.py:276
 msgid "Enable signup"
 msgstr ""
 
-#: aleksis/core/preferences.py:237
+#: aleksis/core/preferences.py:287
 msgid "Available languages"
 msgstr ""
 
-#: aleksis/core/preferences.py:249
+#: aleksis/core/preferences.py:299
 msgid "Send emails if data checks detect problems"
 msgstr ""
 
-#: aleksis/core/preferences.py:260
+#: aleksis/core/preferences.py:310
 msgid "Email recipients for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:271
+#: aleksis/core/preferences.py:321
 msgid "Email recipient groups for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:280
+#: aleksis/core/preferences.py:330
 msgid "Show dashboard to users without login"
 msgstr ""
 
-#: aleksis/core/preferences.py:289
+#: aleksis/core/preferences.py:339
 msgid "Allow users to edit their dashboard"
 msgstr ""
 
-#: aleksis/core/preferences.py:300
+#: aleksis/core/preferences.py:350
 msgid "Fields on person model which are editable by themselves."
 msgstr ""
 
-#: aleksis/core/preferences.py:314
+#: aleksis/core/preferences.py:364
 msgid "Editable fields on person model which should trigger a notification on change"
 msgstr ""
 
-#: aleksis/core/preferences.py:327
+#: aleksis/core/preferences.py:377
 msgid "Contact for notification if a person changes their data"
 msgstr ""
 
-#: aleksis/core/preferences.py:337
+#: aleksis/core/preferences.py:387
 msgid "PDF file expiration duration"
 msgstr ""
 
-#: aleksis/core/preferences.py:338
+#: aleksis/core/preferences.py:388
 msgid "in minutes"
 msgstr ""
 
-#: aleksis/core/settings.py:477
+#: aleksis/core/settings.py:470
 msgid "English"
 msgstr ""
 
-#: aleksis/core/settings.py:478
+#: aleksis/core/settings.py:471
 msgid "German"
 msgstr ""
 
@@ -2109,25 +2115,20 @@ msgstr ""
 
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:5
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:6
-msgid "Revoke token"
+#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
+msgid "Revoke access"
 msgstr ""
 
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:12
-msgid "Are you sure to revoke this token?"
+msgid "Are you sure to revoke the access for this application?"
 msgstr ""
 
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:20
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
 msgid "Revoke"
 msgstr ""
 
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:5
-#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:6
-msgid "Authorized applications"
-msgstr ""
-
 #: aleksis/core/templates/oauth2_provider/authorized-tokens.html:33
-msgid "No authorized tokens defined."
+msgid "No authorized applications."
 msgstr ""
 
 #: aleksis/core/templates/offline.html:5
@@ -2171,17 +2172,17 @@ msgstr ""
 
 #: aleksis/core/templates/socialaccount/authentication_error.html:5
 #: aleksis/core/templates/socialaccount/authentication_error.html:6
-msgid "Social Network Login Failure"
+msgid "Third-party Account Login Failure"
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/authentication_error.html:13
-msgid "Social Network Login Failure."
+msgid "Third-party Account Login Failure."
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/authentication_error.html:15
 msgid ""
 "\n"
-"            An error occurred while attempting to login via your social network account.\n"
+"            An error occurred while attempting to login via your third-party account.\n"
 "            Please contact one of your site administrators.\n"
 "          "
 msgstr ""
@@ -2196,11 +2197,11 @@ msgid "Remove"
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/connections.html:34
-msgid "You currently have no social network accounts connected to this account."
+msgid "You currently have no third-party accounts connected to this account."
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/connections.html:37
-msgid "Add a 3rd Party Account"
+msgid "Add a Third-party Account"
 msgstr ""
 
 #: aleksis/core/templates/socialaccount/login_cancelled.html:5
@@ -2243,7 +2244,7 @@ msgstr ""
 #: aleksis/core/templates/socialaccount/snippets/provider_list.html:30
 msgid ""
 "\n"
-"          No 3rd party account providers available.\n"
+"          No third-party account providers available.\n"
 "        "
 msgstr ""
 
@@ -2704,107 +2705,107 @@ msgstr ""
 msgid "Download PDF"
 msgstr ""
 
-#: aleksis/core/views.py:195
+#: aleksis/core/views.py:249
 msgid "The school term has been created."
 msgstr ""
 
-#: aleksis/core/views.py:207
+#: aleksis/core/views.py:261
 msgid "The school term has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:352
+#: aleksis/core/views.py:406
 msgid "The child groups were successfully saved."
 msgstr ""
 
-#: aleksis/core/views.py:413
+#: aleksis/core/views.py:467
 msgid "The person has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:452
+#: aleksis/core/views.py:506
 msgid "The group has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:549
+#: aleksis/core/views.py:603
 msgid "The announcement has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:565
+#: aleksis/core/views.py:619
 msgid "The announcement has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:649
+#: aleksis/core/views.py:703
 msgid "The preferences have been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:673
+#: aleksis/core/views.py:727
 msgid "The person has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:687
+#: aleksis/core/views.py:741
 msgid "The group has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:719
+#: aleksis/core/views.py:773
 msgid "The additional_field has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:753
+#: aleksis/core/views.py:807
 msgid "The additional field has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:778
+#: aleksis/core/views.py:832
 msgid "The group type has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:808
+#: aleksis/core/views.py:862
 msgid "The group type has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:841
+#: aleksis/core/views.py:895
 msgid "Progress: Run data checks"
 msgstr ""
 
-#: aleksis/core/views.py:842
+#: aleksis/core/views.py:896
 msgid "Run data checks …"
 msgstr ""
 
-#: aleksis/core/views.py:843
+#: aleksis/core/views.py:897
 msgid "The data checks were run successfully."
 msgstr ""
 
-#: aleksis/core/views.py:844
+#: aleksis/core/views.py:898
 msgid "There was a problem while running data checks."
 msgstr ""
 
-#: aleksis/core/views.py:860
+#: aleksis/core/views.py:914
 #, python-brace-format
 msgid "The solve option '{solve_option_obj.verbose_name}' "
 msgstr ""
 
-#: aleksis/core/views.py:902
+#: aleksis/core/views.py:956
 msgid "The dashboard widget has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:932
+#: aleksis/core/views.py:986
 msgid "The dashboard widget has been created."
 msgstr ""
 
-#: aleksis/core/views.py:942
+#: aleksis/core/views.py:996
 msgid "The dashboard widget has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1009
+#: aleksis/core/views.py:1063
 msgid "Your dashboard configuration has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1011
+#: aleksis/core/views.py:1065
 msgid "The configuration of the default dashboard has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1137
-msgid "The social account could not be disconnected because it is the only login method available."
+#: aleksis/core/views.py:1191
+msgid "The third-party account could not be disconnected because it is the only login method available."
 msgstr ""
 
-#: aleksis/core/views.py:1144
-msgid "The social account has been successfully disconnected."
+#: aleksis/core/views.py:1198
+msgid "The third-party account has been successfully disconnected."
 msgstr ""
diff --git a/aleksis/core/locale/tr_TR/LC_MESSAGES/djangojs.po b/aleksis/core/locale/tr_TR/LC_MESSAGES/djangojs.po
index 98db6bb2b..21ea82be5 100644
--- a/aleksis/core/locale/tr_TR/LC_MESSAGES/djangojs.po
+++ b/aleksis/core/locale/tr_TR/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-21 19:54+0200\n"
+"POT-Creation-Date: 2021-06-08 16:49+0200\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"
@@ -29,6 +29,6 @@ msgstr ""
 msgid "OK"
 msgstr ""
 
-#: aleksis/core/static/js/main.js:121
+#: aleksis/core/static/js/main.js:133
 msgid "This page may contain outdated information since there is no internet connection."
 msgstr ""
-- 
GitLab