diff --git a/aleksis/core/locale/ar/LC_MESSAGES/django.po b/aleksis/core/locale/ar/LC_MESSAGES/django.po
index ce6e7cbbf7d64d4beb966c224212bbda2b32af2f..7601d361668f068f942d130014ca1897f000d92b 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: 2022-06-25 12:09+0200\n"
+"POT-Creation-Date: 2023-01-22 20:49+0100\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"
@@ -18,34 +18,33 @@ msgstr ""
 "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"
 
-#: aleksis/core/apps.py:166
+#: aleksis/core/apps.py:155
 msgid "OpenID Connect scope"
 msgstr ""
 
-#: aleksis/core/apps.py:167
+#: aleksis/core/apps.py:156
 msgid "Given name, family name, link to profile and picture if existing."
 msgstr ""
 
-#: aleksis/core/apps.py:168
+#: aleksis/core/apps.py:157
 msgid "Full home postal address"
 msgstr ""
 
-#: aleksis/core/apps.py:169
+#: aleksis/core/apps.py:158
 msgid "Email address"
 msgstr ""
 
-#: aleksis/core/apps.py:170
+#: aleksis/core/apps.py:159
 msgid "Home and mobile phone"
 msgstr ""
 
-#: aleksis/core/apps.py:171 aleksis/core/forms.py:220 aleksis/core/menus.py:171
+#: aleksis/core/apps.py:160 aleksis/core/forms.py:220
 #: aleksis/core/models.py:494 aleksis/core/templates/core/group/list.html:8
 #: aleksis/core/templates/core/group/list.html:9
-#: aleksis/core/templates/core/person/full.html:246
 msgid "Groups"
 msgstr ""
 
-#: aleksis/core/data_checks.py:59
+#: aleksis/core/data_checks.py:60
 msgid "Ignore problem"
 msgstr ""
 
@@ -54,49 +53,29 @@ msgstr ""
 msgid "Solve option '{solve_option_obj.verbose_name}' "
 msgstr ""
 
-#: aleksis/core/data_checks.py:294
+#: aleksis/core/data_checks.py:284
 msgid "Deactivate DashboardWidget"
 msgstr ""
 
-#: aleksis/core/data_checks.py:306
+#: aleksis/core/data_checks.py:296
 msgid "Ensure that there are no broken DashboardWidgets."
 msgstr ""
 
-#: aleksis/core/data_checks.py:307
+#: aleksis/core/data_checks.py:297
 msgid "The DashboardWidget was reported broken automatically."
 msgstr ""
 
-#: aleksis/core/data_checks.py:330
+#: aleksis/core/data_checks.py:320
 #, python-format
 msgid "Validate field %s of model %s."
 msgstr ""
 
-#: aleksis/core/data_checks.py:332
+#: aleksis/core/data_checks.py:322
 #, python-format
 msgid "The field %s couldn't be validated successfully."
 msgstr ""
 
-#: aleksis/core/feeds.py:52
-msgid "Birthday Calendar"
-msgstr ""
-
-#: aleksis/core/feeds.py:53
-msgid "A Calendar of Birthdays"
-msgstr ""
-
-#: aleksis/core/feeds.py:66
-#, python-format
-msgid "%(name)s's birthday"
-msgstr ""
-
-#: aleksis/core/feeds.py:71
-#, python-format
-msgid "%(name)s was born on %(birthday)s"
-msgstr ""
-
-#: aleksis/core/filters.py:42 aleksis/core/templates/core/base.html:139
-#: aleksis/core/templates/core/base.html:140
-#: aleksis/core/templates/core/group/list.html:20
+#: aleksis/core/filters.py:42 aleksis/core/templates/core/group/list.html:20
 #: aleksis/core/templates/core/person/list.html:24
 #: aleksis/core/templates/search/search.html:7
 #: aleksis/core/templates/search/search.html:22
@@ -168,8 +147,7 @@ msgid "Common data"
 msgstr ""
 
 #: aleksis/core/forms.py:155 aleksis/core/forms.py:207
-#: aleksis/core/menus.py:160 aleksis/core/models.py:164
-#: aleksis/core/templates/core/person/list.html:8
+#: aleksis/core/models.py:164 aleksis/core/templates/core/person/list.html:8
 #: aleksis/core/templates/core/person/list.html:9
 msgid "Persons"
 msgstr ""
@@ -258,7 +236,7 @@ msgid "You must select at least one group or person which should get the permiss
 msgstr ""
 
 #: aleksis/core/forms.py:499
-msgid "You must grant the permission to all objects and/or to some objects."
+msgid "You must grant the permission to all objects or to specific objects."
 msgstr ""
 
 #: aleksis/core/forms.py:586
@@ -277,15 +255,15 @@ msgstr ""
 msgid "Password (again)"
 msgstr ""
 
-#: aleksis/core/forms.py:728
+#: aleksis/core/forms.py:761
 msgid "The selected action does not exist."
 msgstr ""
 
-#: aleksis/core/forms.py:739
+#: aleksis/core/forms.py:772
 msgid "You do not have permission to run {} on all selected objects."
 msgstr ""
 
-#: aleksis/core/forms.py:795
+#: aleksis/core/forms.py:828
 msgid "No valid selection."
 msgstr ""
 
@@ -309,160 +287,6 @@ msgstr ""
 msgid "No backup result found!"
 msgstr ""
 
-#: aleksis/core/menus.py:7 aleksis/core/templates/two_factor/core/login.html:6
-#: aleksis/core/templates/two_factor/core/login.html:32
-#: aleksis/core/templates/two_factor/core/login.html:95
-msgid "Login"
-msgstr ""
-
-#: aleksis/core/menus.py:13 aleksis/core/templates/account/signup.html:22
-#: aleksis/core/templates/socialaccount/signup.html:23
-msgid "Sign up"
-msgstr ""
-
-#: aleksis/core/menus.py:22 aleksis/core/templates/invitations/enter.html:7
-msgid "Accept invitation"
-msgstr ""
-
-#: aleksis/core/menus.py:31
-msgid "Dashboard"
-msgstr ""
-
-#: aleksis/core/menus.py:39
-msgid "Admin"
-msgstr ""
-
-#: aleksis/core/menus.py:47 aleksis/core/models.py:872
-#: aleksis/core/templates/core/announcement/list.html:7
-#: aleksis/core/templates/core/announcement/list.html:8
-msgid "Announcements"
-msgstr ""
-
-#: aleksis/core/menus.py:58 aleksis/core/models.py:142
-#: aleksis/core/templates/core/school_term/list.html:8
-#: aleksis/core/templates/core/school_term/list.html:9
-msgid "School terms"
-msgstr ""
-
-#: aleksis/core/menus.py:69
-#: aleksis/core/templates/core/dashboard_widget/list.html:8
-#: aleksis/core/templates/core/dashboard_widget/list.html:9
-msgid "Dashboard widgets"
-msgstr ""
-
-#: aleksis/core/menus.py:80
-#: aleksis/core/templates/core/management/data_management.html:6
-#: aleksis/core/templates/core/management/data_management.html:7
-msgid "Data management"
-msgstr ""
-
-#: aleksis/core/menus.py:91
-#: aleksis/core/templates/core/pages/system_status.html:5
-#: aleksis/core/templates/core/pages/system_status.html:7
-msgid "System status"
-msgstr ""
-
-#: aleksis/core/menus.py:102
-msgid "Configuration"
-msgstr ""
-
-#: aleksis/core/menus.py:113 aleksis/core/templates/core/data_check/list.html:9
-#: aleksis/core/templates/core/data_check/list.html:10
-msgid "Data checks"
-msgstr ""
-
-#: aleksis/core/menus.py:119 aleksis/core/templates/core/perms/list.html:13
-#: aleksis/core/templates/core/perms/list.html:14
-msgid "Manage permissions"
-msgstr ""
-
-#: aleksis/core/menus.py:130
-msgid "Backend Admin"
-msgstr ""
-
-#: aleksis/core/menus.py:138
-#: aleksis/core/templates/oauth2_provider/application/list.html:5
-#: aleksis/core/templates/oauth2_provider/application/list.html:6
-msgid "OAuth2 Applications"
-msgstr ""
-
-#: aleksis/core/menus.py:151
-msgid "People"
-msgstr ""
-
-#: aleksis/core/menus.py:182 aleksis/core/models.py:1111
-#: aleksis/core/templates/core/group_type/list.html:8
-#: aleksis/core/templates/core/group_type/list.html:9
-msgid "Group types"
-msgstr ""
-
-#: aleksis/core/menus.py:193
-msgid "Groups and child groups"
-msgstr ""
-
-#: aleksis/core/menus.py:204 aleksis/core/models.py:542
-#: aleksis/core/templates/core/additional_field/list.html:8
-#: aleksis/core/templates/core/additional_field/list.html:9
-msgid "Additional fields"
-msgstr ""
-
-#: aleksis/core/menus.py:215
-msgid "Invite person"
-msgstr ""
-
-#: aleksis/core/menus.py:228
-#: aleksis/core/templates/core/group/child_groups.html:7
-#: aleksis/core/templates/core/group/child_groups.html:9
-msgid "Assign child groups to groups"
-msgstr ""
-
-#: aleksis/core/menus.py:240
-msgid "Stop impersonation"
-msgstr ""
-
-#: aleksis/core/menus.py:249
-msgid "Account"
-msgstr ""
-
-#: aleksis/core/menus.py:258
-#: aleksis/core/templates/dynamic_preferences/form.html:5
-msgid "Preferences"
-msgstr ""
-
-#: aleksis/core/menus.py:267
-msgid "2FA"
-msgstr ""
-
-#: aleksis/core/menus.py:275
-#: aleksis/core/templates/account/password_change.html:5
-#: aleksis/core/templates/account/password_change.html:6
-#: aleksis/core/templates/account/password_change.html:19
-#: aleksis/core/templates/account/password_reset_from_key.html:5
-#: aleksis/core/templates/account/password_reset_from_key.html:42
-#: aleksis/core/templates/account/password_reset_from_key.html:46
-#: aleksis/core/templates/account/password_reset_from_key_done.html:5
-#: aleksis/core/templates/account/password_reset_from_key_done.html:6
-msgid "Change password"
-msgstr ""
-
-#: aleksis/core/menus.py:287
-msgid "Third-party accounts"
-msgstr ""
-
-#: aleksis/core/menus.py:296
-#: 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:305
-msgid "Calendar Feeds"
-msgstr ""
-
-#: aleksis/core/menus.py:318
-msgid "Logout"
-msgstr ""
-
 #: aleksis/core/mixins.py:511
 msgid "Linked school term"
 msgstr ""
@@ -508,7 +332,6 @@ msgid "URL / Link"
 msgstr ""
 
 #: aleksis/core/models.py:105 aleksis/core/models.py:1077
-#: aleksis/core/models.py:1384
 msgid "Name"
 msgstr ""
 
@@ -528,8 +351,13 @@ msgstr ""
 msgid "There is already a school term for this time or a part of this time."
 msgstr ""
 
-#: aleksis/core/models.py:163 aleksis/core/models.py:1024
-#: aleksis/core/models.py:1381
+#: aleksis/core/models.py:142
+#: aleksis/core/templates/core/school_term/list.html:8
+#: aleksis/core/templates/core/school_term/list.html:9
+msgid "School terms"
+msgstr ""
+
+#: aleksis/core/models.py:163 aleksis/core/models.py:1026
 msgid "Person"
 msgstr ""
 
@@ -569,7 +397,7 @@ msgstr ""
 msgid "other"
 msgstr ""
 
-#: aleksis/core/models.py:189 aleksis/core/models.py:1283
+#: aleksis/core/models.py:189 aleksis/core/models.py:1345
 msgid "Linked user"
 msgstr ""
 
@@ -578,6 +406,7 @@ msgid "Additional name(s)"
 msgstr ""
 
 #: aleksis/core/models.py:199 aleksis/core/models.py:511
+#: aleksis/core/models.py:1431
 msgid "Short name"
 msgstr ""
 
@@ -597,11 +426,11 @@ msgstr ""
 msgid "Place"
 msgstr ""
 
-#: aleksis/core/models.py:207 aleksis/core/templates/core/person/full.html:160
+#: aleksis/core/models.py:207
 msgid "Home phone"
 msgstr ""
 
-#: aleksis/core/models.py:208 aleksis/core/templates/core/person/full.html:170
+#: aleksis/core/models.py:208
 msgid "Mobile phone"
 msgstr ""
 
@@ -629,7 +458,7 @@ msgstr ""
 msgid "This is a picture or an avatar for public display."
 msgstr ""
 
-#: aleksis/core/models.py:234 aleksis/core/templates/core/person/full.html:235
+#: aleksis/core/models.py:234
 msgid "Guardians / Parents"
 msgstr ""
 
@@ -638,7 +467,7 @@ msgid "Primary group"
 msgstr ""
 
 #: aleksis/core/models.py:244 aleksis/core/models.py:724
-#: aleksis/core/models.py:748 aleksis/core/models.py:839
+#: aleksis/core/models.py:748 aleksis/core/models.py:843
 #: aleksis/core/models.py:1104
 msgid "Description"
 msgstr ""
@@ -675,7 +504,7 @@ msgstr ""
 msgid "Can view statistics about group."
 msgstr ""
 
-#: aleksis/core/models.py:509
+#: aleksis/core/models.py:509 aleksis/core/models.py:1432
 msgid "Long name"
 msgstr ""
 
@@ -695,8 +524,14 @@ msgstr ""
 msgid "Type of group"
 msgstr ""
 
+#: aleksis/core/models.py:542
+#: aleksis/core/templates/core/additional_field/list.html:8
+#: aleksis/core/templates/core/additional_field/list.html:9
+msgid "Additional fields"
+msgstr ""
+
 #: aleksis/core/models.py:723 aleksis/core/models.py:747
-#: aleksis/core/models.py:838
+#: aleksis/core/models.py:842 aleksis/core/models.py:1262
 #: aleksis/core/templates/core/announcement/list.html:18
 msgid "Title"
 msgstr ""
@@ -725,166 +560,175 @@ msgstr ""
 msgid "Link"
 msgstr ""
 
-#: aleksis/core/models.py:751
+#: aleksis/core/models.py:752 aleksis/core/models.py:1079
+#: aleksis/core/models.py:1392
+#: aleksis/core/templates/oauth2_provider/application/detail.html:26
+msgid "Icon"
+msgstr ""
+
+#: aleksis/core/models.py:755
 msgid "Send notification at"
 msgstr ""
 
-#: aleksis/core/models.py:753
+#: aleksis/core/models.py:757
 msgid "Read"
 msgstr ""
 
-#: aleksis/core/models.py:754
+#: aleksis/core/models.py:758
 msgid "Sent"
 msgstr ""
 
-#: aleksis/core/models.py:771
+#: aleksis/core/models.py:775
 msgid "Notification"
 msgstr ""
 
-#: aleksis/core/models.py:772 aleksis/core/preferences.py:29
-#: aleksis/core/templates/core/base.html:81
-#: aleksis/core/templates/core/notifications.html:4
-#: aleksis/core/templates/core/notifications.html:5
+#: aleksis/core/models.py:776 aleksis/core/preferences.py:29
 msgid "Notifications"
 msgstr ""
 
-#: aleksis/core/models.py:840
+#: aleksis/core/models.py:844
 msgid "Link to detailed view"
 msgstr ""
 
-#: aleksis/core/models.py:843
+#: aleksis/core/models.py:847
 msgid "Date and time from when to show"
 msgstr ""
 
-#: aleksis/core/models.py:846
+#: aleksis/core/models.py:850
 msgid "Date and time until when to show"
 msgstr ""
 
-#: aleksis/core/models.py:871
+#: aleksis/core/models.py:875
 msgid "Announcement"
 msgstr ""
 
-#: aleksis/core/models.py:909
+#: aleksis/core/models.py:876
+#: aleksis/core/templates/core/announcement/list.html:7
+#: aleksis/core/templates/core/announcement/list.html:8
+msgid "Announcements"
+msgstr ""
+
+#: aleksis/core/models.py:913
 msgid "Announcement recipient"
 msgstr ""
 
-#: aleksis/core/models.py:910
+#: aleksis/core/models.py:914
 msgid "Announcement recipients"
 msgstr ""
 
-#: aleksis/core/models.py:932
+#: aleksis/core/models.py:934
 msgid "Widget Title"
 msgstr ""
 
-#: aleksis/core/models.py:933
+#: aleksis/core/models.py:935
 msgid "Activate Widget"
 msgstr ""
 
-#: aleksis/core/models.py:934
+#: aleksis/core/models.py:936
 msgid "Widget is broken"
 msgstr ""
 
-#: aleksis/core/models.py:937
+#: aleksis/core/models.py:939
 msgid "Size on mobile devices"
 msgstr ""
 
-#: aleksis/core/models.py:938
+#: aleksis/core/models.py:940
 msgid "<= 600 px, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:943
+#: aleksis/core/models.py:945
 msgid "Size on tablet devices"
 msgstr ""
 
-#: aleksis/core/models.py:944
+#: aleksis/core/models.py:946
 msgid "> 600 px, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:949
+#: aleksis/core/models.py:951
 msgid "Size on desktop devices"
 msgstr ""
 
-#: aleksis/core/models.py:950
+#: aleksis/core/models.py:952
 msgid "> 992 px, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:955
+#: aleksis/core/models.py:957
 msgid "Size on large desktop devices"
 msgstr ""
 
-#: aleksis/core/models.py:956
+#: aleksis/core/models.py:958
 msgid "> 1200 px>, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:987
+#: aleksis/core/models.py:989
 msgid "Can edit default dashboard"
 msgstr ""
 
-#: aleksis/core/models.py:988
+#: aleksis/core/models.py:990
 msgid "Dashboard Widget"
 msgstr ""
 
-#: aleksis/core/models.py:989
+#: aleksis/core/models.py:991
 msgid "Dashboard Widgets"
 msgstr ""
 
-#: aleksis/core/models.py:995
+#: aleksis/core/models.py:997
 msgid "URL"
 msgstr ""
 
-#: aleksis/core/models.py:996
+#: aleksis/core/models.py:998
 msgid "Icon URL"
 msgstr ""
 
-#: aleksis/core/models.py:1002
+#: aleksis/core/models.py:1004
 msgid "External link widget"
 msgstr ""
 
-#: aleksis/core/models.py:1003
+#: aleksis/core/models.py:1005
 msgid "External link widgets"
 msgstr ""
 
-#: aleksis/core/models.py:1009
+#: aleksis/core/models.py:1011
 msgid "Content"
 msgstr ""
 
-#: aleksis/core/models.py:1015
+#: aleksis/core/models.py:1017
 msgid "Static content widget"
 msgstr ""
 
-#: aleksis/core/models.py:1016
+#: aleksis/core/models.py:1018
 msgid "Static content widgets"
 msgstr ""
 
-#: aleksis/core/models.py:1021
+#: aleksis/core/models.py:1023
 msgid "Dashboard widget"
 msgstr ""
 
-#: aleksis/core/models.py:1026
+#: aleksis/core/models.py:1028
 msgid "Order"
 msgstr ""
 
-#: aleksis/core/models.py:1027
+#: aleksis/core/models.py:1029
 msgid "Part of the default dashboard"
 msgstr ""
 
-#: aleksis/core/models.py:1042
+#: aleksis/core/models.py:1044
 msgid "Dashboard widget order"
 msgstr ""
 
-#: aleksis/core/models.py:1043
+#: aleksis/core/models.py:1045
 msgid "Dashboard widget orders"
 msgstr ""
 
-#: aleksis/core/models.py:1049
+#: aleksis/core/models.py:1051
 msgid "Menu ID"
 msgstr ""
 
-#: aleksis/core/models.py:1062
+#: aleksis/core/models.py:1064
 msgid "Custom menu"
 msgstr ""
 
-#: aleksis/core/models.py:1063
+#: aleksis/core/models.py:1065
 msgid "Custom menus"
 msgstr ""
 
@@ -892,11 +736,6 @@ msgstr ""
 msgid "Menu"
 msgstr ""
 
-#: aleksis/core/models.py:1079 aleksis/core/models.py:1330
-#: aleksis/core/templates/oauth2_provider/application/detail.html:26
-msgid "Icon"
-msgstr ""
-
 #: aleksis/core/models.py:1085
 msgid "Custom menu item"
 msgstr ""
@@ -913,6 +752,12 @@ msgstr ""
 msgid "Group type"
 msgstr ""
 
+#: aleksis/core/models.py:1111
+#: aleksis/core/templates/core/group_type/list.html:8
+#: aleksis/core/templates/core/group_type/list.html:9
+msgid "Group types"
+msgstr ""
+
 #: aleksis/core/models.py:1124
 msgid "Can view system status"
 msgstr ""
@@ -989,64 +834,116 @@ msgstr ""
 msgid "File expires at"
 msgstr ""
 
-#: aleksis/core/models.py:1239
+#: aleksis/core/models.py:1240
 msgid "Generated HTML file"
 msgstr ""
 
-#: aleksis/core/models.py:1241
+#: aleksis/core/models.py:1243
 msgid "Generated PDF file"
 msgstr ""
 
-#: aleksis/core/models.py:1248
+#: aleksis/core/models.py:1250
 msgid "PDF file"
 msgstr ""
 
-#: aleksis/core/models.py:1249
+#: aleksis/core/models.py:1251
 msgid "PDF files"
 msgstr ""
 
-#: aleksis/core/models.py:1254
+#: aleksis/core/models.py:1256
 msgid "Task result"
 msgstr ""
 
-#: aleksis/core/models.py:1257
+#: aleksis/core/models.py:1259
 msgid "Task user"
 msgstr ""
 
+#: aleksis/core/models.py:1263
+msgid "Back URL"
+msgstr ""
+
+#: aleksis/core/models.py:1264
+msgid "Progress title"
+msgstr ""
+
+#: aleksis/core/models.py:1265
+msgid "Error message"
+msgstr ""
+
+#: aleksis/core/models.py:1266
+msgid "Success message"
+msgstr ""
+
+#: aleksis/core/models.py:1267
+msgid "Redirect on success URL"
+msgstr ""
+
 #: aleksis/core/models.py:1269
+msgid "Additional button title"
+msgstr ""
+
+#: aleksis/core/models.py:1271
+msgid "Additional button URL"
+msgstr ""
+
+#: aleksis/core/models.py:1273
+msgid "Additional button icon"
+msgstr ""
+
+#: aleksis/core/models.py:1275
+msgid "Result fetched"
+msgstr ""
+
+#: aleksis/core/models.py:1300
+msgid "Background task completed successfully"
+msgstr ""
+
+#: aleksis/core/models.py:1301
+msgid "The background task '{}' has been completed successfully."
+msgstr ""
+
+#: aleksis/core/models.py:1307
+msgid "Background task failed"
+msgstr ""
+
+#: aleksis/core/models.py:1308
+msgid "The background task '{}' has failed."
+msgstr ""
+
+#: aleksis/core/models.py:1317
+msgid "Background task"
+msgstr ""
+
+#: aleksis/core/models.py:1331
 msgid "Task user assignment"
 msgstr ""
 
-#: aleksis/core/models.py:1270
+#: aleksis/core/models.py:1332
 msgid "Task user assignments"
 msgstr ""
 
-#: aleksis/core/models.py:1286
+#: aleksis/core/models.py:1348
 msgid "Additional attributes"
 msgstr ""
 
-#: aleksis/core/models.py:1324
+#: aleksis/core/models.py:1386
 msgid "Allowed scopes that clients can request"
 msgstr ""
 
-#: aleksis/core/models.py:1334
+#: aleksis/core/models.py:1396
 msgid "This image will be shown as icon in the authorization flow. It should be squared."
 msgstr ""
 
-#: aleksis/core/models.py:1383
-msgid "UUID"
+#: aleksis/core/models.py:1441
+msgid "Can view room timetable"
 msgstr ""
 
-#: aleksis/core/models.py:1387
-msgid "Selected ICal feed"
+#: aleksis/core/models.py:1443
+msgid "Room"
 msgstr ""
 
-#: aleksis/core/models.py:1396
-msgid "Personal Calendar URL"
-msgstr ""
-
-#: aleksis/core/models.py:1397
-msgid "Personal Calendar URLs"
+#: aleksis/core/models.py:1444
+msgid "Rooms"
 msgstr ""
 
 #: aleksis/core/preferences.py:25
@@ -1137,135 +1034,141 @@ msgstr ""
 msgid "Channels to use for notifications"
 msgstr ""
 
-#: aleksis/core/preferences.py:209
+#: aleksis/core/preferences.py:208
+msgid "Select Design"
+msgstr ""
+
+#: aleksis/core/preferences.py:211
+msgid "Light mode"
+msgstr ""
+
+#: aleksis/core/preferences.py:224
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr ""
 
-#: aleksis/core/preferences.py:220
+#: aleksis/core/preferences.py:235
 msgid "Field on person to match primary group against"
 msgstr ""
 
-#: aleksis/core/preferences.py:232
+#: aleksis/core/preferences.py:247
 msgid "Automatically create new persons for new users"
 msgstr ""
 
-#: aleksis/core/preferences.py:241
+#: aleksis/core/preferences.py:256
 msgid "Automatically link existing persons to new users by their e-mail address"
 msgstr ""
 
-#: aleksis/core/preferences.py:252
+#: aleksis/core/preferences.py:267
 msgid "Display name of the school"
 msgstr ""
 
-#: aleksis/core/preferences.py:263
+#: aleksis/core/preferences.py:278
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr ""
 
-#: aleksis/core/preferences.py:271
+#: aleksis/core/preferences.py:286
 msgid "Allow users to change their passwords"
 msgstr ""
 
-#: aleksis/core/preferences.py:279
+#: aleksis/core/preferences.py:294
 msgid "Allow users to reset their passwords"
 msgstr ""
 
-#: aleksis/core/preferences.py:287
+#: aleksis/core/preferences.py:302
 msgid "Enable signup"
 msgstr ""
 
-#: aleksis/core/preferences.py:295
+#: aleksis/core/preferences.py:310
 msgid "Regular expression for allowed usernames"
 msgstr ""
 
-#: aleksis/core/preferences.py:303
+#: aleksis/core/preferences.py:318
 msgid "Enable invitations"
 msgstr ""
 
-#: aleksis/core/preferences.py:311
+#: aleksis/core/preferences.py:326
 msgid "Length of invite code. (Default 3: abcde-acbde-abcde)"
 msgstr ""
 
-#: aleksis/core/preferences.py:319
+#: aleksis/core/preferences.py:334
 msgid "Size of packets. (Default 5: abcde)"
 msgstr ""
 
-#: aleksis/core/preferences.py:330
+#: aleksis/core/preferences.py:345
 msgid "Allowed Grant Flows for OAuth applications"
 msgstr ""
 
-#: aleksis/core/preferences.py:343
+#: aleksis/core/preferences.py:358
 msgid "Send emails if data checks detect problems"
 msgstr ""
 
-#: aleksis/core/preferences.py:354
+#: aleksis/core/preferences.py:369
 msgid "Email recipients for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:365
+#: aleksis/core/preferences.py:380
 msgid "Email recipient groups for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:374
+#: aleksis/core/preferences.py:389
 msgid "Show dashboard to users without login"
 msgstr ""
 
-#: aleksis/core/preferences.py:383
+#: aleksis/core/preferences.py:398
 msgid "Allow users to edit their dashboard"
 msgstr ""
 
-#: aleksis/core/preferences.py:394
+#: aleksis/core/preferences.py:409
 msgid "Fields on person model which are editable by themselves."
 msgstr ""
 
-#: aleksis/core/preferences.py:409
+#: aleksis/core/preferences.py:424
 msgid "Editable fields on person model which should trigger a notification on change"
 msgstr ""
 
-#: aleksis/core/preferences.py:423
+#: aleksis/core/preferences.py:438
 msgid "Contact for notification if a person changes their data"
 msgstr ""
 
-#: aleksis/core/preferences.py:434
+#: aleksis/core/preferences.py:449
 msgid "Prefer personal photos over avatars"
 msgstr ""
 
-#: aleksis/core/preferences.py:444
+#: aleksis/core/preferences.py:459
 msgid "PDF file expiration duration"
 msgstr ""
 
-#: aleksis/core/preferences.py:445
+#: aleksis/core/preferences.py:460
 msgid "in minutes"
 msgstr ""
 
-#: aleksis/core/preferences.py:455
+#: aleksis/core/preferences.py:470
 msgid "Automatically update the dashboard and its widgets"
 msgstr ""
 
-#: aleksis/core/preferences.py:465
+#: aleksis/core/preferences.py:480
 msgid "Automatically update the dashboard and its widgets sitewide"
 msgstr ""
 
-#: aleksis/core/preferences.py:475
+#: aleksis/core/preferences.py:490
 msgid "Country for phone number parsing"
 msgstr ""
 
-#: aleksis/core/settings.py:541
+#: aleksis/core/settings.py:539
 msgid "English"
 msgstr ""
 
-#: aleksis/core/settings.py:542
+#: aleksis/core/settings.py:540
 msgid "German"
 msgstr ""
 
-#: aleksis/core/settings.py:543
+#: aleksis/core/settings.py:541
 msgid "Ukrainian"
 msgstr ""
 
 #: aleksis/core/tables.py:25
 #: aleksis/core/templates/core/announcement/list.html:36
 #: aleksis/core/templates/core/group/full.html:26
-#: aleksis/core/templates/core/person/full.html:26
-#: aleksis/core/templates/core/person/full.html:86
 #: aleksis/core/templates/oauth2_provider/application/detail.html:17
 msgid "Edit"
 msgstr ""
@@ -1282,15 +1185,12 @@ msgstr ""
 #: aleksis/core/templates/core/announcement/list.html:42
 #: aleksis/core/templates/core/group/full.html:33
 #: aleksis/core/templates/core/pages/delete.html:22
-#: aleksis/core/templates/core/person/full.html:33
-#: aleksis/core/templates/core/person/full.html:93
 #: aleksis/core/templates/oauth2_provider/application/detail.html:21
 msgid "Delete"
 msgstr ""
 
 #: aleksis/core/templates/403.html:14 aleksis/core/templates/500.html:10
 #: aleksis/core/templates/oauth2_provider/authorize.html:54
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:24
 msgid "Error"
 msgstr ""
 
@@ -1389,6 +1289,17 @@ msgstr ""
 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 ""
 
+#: aleksis/core/templates/account/password_change.html:5
+#: aleksis/core/templates/account/password_change.html:6
+#: aleksis/core/templates/account/password_change.html:19
+#: aleksis/core/templates/account/password_reset_from_key.html:5
+#: aleksis/core/templates/account/password_reset_from_key.html:42
+#: aleksis/core/templates/account/password_reset_from_key.html:46
+#: aleksis/core/templates/account/password_reset_from_key_done.html:5
+#: aleksis/core/templates/account/password_reset_from_key_done.html:6
+msgid "Change password"
+msgstr ""
+
 #: aleksis/core/templates/account/password_change.html:12
 msgid "Forgot your current password? Click here to reset it:"
 msgstr ""
@@ -1502,6 +1413,11 @@ msgstr ""
 msgid "Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>."
 msgstr ""
 
+#: aleksis/core/templates/account/signup.html:22
+#: aleksis/core/templates/socialaccount/signup.html:23
+msgid "Sign up"
+msgstr ""
+
 #: aleksis/core/templates/account/signup_closed.html:5
 #: aleksis/core/templates/account/signup_closed.html:6
 msgid "Signup closed"
@@ -1592,18 +1508,6 @@ msgstr ""
 msgid "There are no announcements."
 msgstr ""
 
-#: aleksis/core/templates/core/base.html:213
-msgid "About AlekSIS® — The Free School Information System"
-msgstr ""
-
-#: aleksis/core/templates/core/base.html:221
-msgid "Imprint"
-msgstr ""
-
-#: aleksis/core/templates/core/base.html:229
-msgid "Privacy Policy"
-msgstr ""
-
 #: aleksis/core/templates/core/base_print.html:74
 msgid "Powered by AlekSIS®"
 msgstr ""
@@ -1633,6 +1537,11 @@ msgstr ""
 msgid "Edit %(widget)s"
 msgstr ""
 
+#: aleksis/core/templates/core/dashboard_widget/list.html:8
+#: aleksis/core/templates/core/dashboard_widget/list.html:9
+msgid "Dashboard widgets"
+msgstr ""
+
 #: aleksis/core/templates/core/dashboard_widget/list.html:15
 msgid "Create dashboard widget"
 msgstr ""
@@ -1648,6 +1557,11 @@ msgstr ""
 msgid "Edit default dashboard"
 msgstr ""
 
+#: aleksis/core/templates/core/data_check/list.html:9
+#: aleksis/core/templates/core/data_check/list.html:10
+msgid "Data checks"
+msgstr ""
+
 #: aleksis/core/templates/core/data_check/list.html:15
 msgid "Check data again"
 msgstr ""
@@ -1741,6 +1655,11 @@ msgstr ""
 msgid "Default dashboard"
 msgstr ""
 
+#: aleksis/core/templates/core/group/child_groups.html:7
+#: aleksis/core/templates/core/group/child_groups.html:9
+msgid "Assign child groups to groups"
+msgstr ""
+
 #: aleksis/core/templates/core/group/child_groups.html:18
 msgid ""
 "\n"
@@ -1820,8 +1739,6 @@ msgid "Edit group"
 msgstr ""
 
 #: aleksis/core/templates/core/group/full.html:40
-#: aleksis/core/templates/core/person/full.html:40
-#: aleksis/core/templates/core/person/full.html:100
 msgid "Change preferences"
 msgstr ""
 
@@ -1875,45 +1792,11 @@ msgstr ""
 msgid "Create group type"
 msgstr ""
 
-#: aleksis/core/templates/core/ical/ical_create.html:4
-#: aleksis/core/templates/core/ical/ical_create.html:5
-#: aleksis/core/templates/core/ical/ical_list.html:12
-msgid "Create iCal URL"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_create.html:16
-#: aleksis/core/templates/core/ical/ical_edit.html:16
-#: aleksis/core/templates/oauth2_provider/application/create.html:14
-#: aleksis/core/templates/oauth2_provider/application/edit.html:14
-#: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:24
-#: aleksis/core/templates/two_factor/_wizard_actions.html:6
-msgid "Cancel"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_edit.html:4
-#: aleksis/core/templates/core/ical/ical_edit.html:5
-#, python-format
-msgid "Edit iCal URL %(object)s"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_list.html:4
-#: aleksis/core/templates/core/ical/ical_list.html:5
-msgid "iCal Feeds"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_list.html:8
-msgid "These are URLs for different Calendar Feeds in the iCal (.ics) format. You can create as many as you want and import them in your calendar software."
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_list.html:14
-msgid "Your iCal URLs"
-msgstr ""
-
 #: aleksis/core/templates/core/index.html:4
 msgid "Home"
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:49
+#: aleksis/core/templates/core/index.html:34
 msgid ""
 "\n"
 "        You didn't customise your dashboard so that you see the system default. Please click on \"Edit dashboard\" to\n"
@@ -1921,101 +1804,14 @@ msgid ""
 "      "
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:59
+#: aleksis/core/templates/core/index.html:44
 msgid "Last activities"
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:77
+#: aleksis/core/templates/core/index.html:62
 msgid "No activities available yet."
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:82
-msgid "Recent notifications"
-msgstr ""
-
-#: aleksis/core/templates/core/index.html:98
-#: aleksis/core/templates/core/notifications.html:23
-msgid "More information →"
-msgstr ""
-
-#: aleksis/core/templates/core/index.html:105
-#: aleksis/core/templates/core/notifications.html:30
-msgid "No notifications available yet."
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:6
-msgid "About AlekSIS®"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:7
-msgid "AlekSIS® – The Free School Information System"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:15
-msgid "About AlekSIS"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:17
-msgid ""
-"\n"
-"              This platform is powered by AlekSIS®, a web-based school information system (SIS) which can be used\n"
-"              to manage and/or publish organisational artifacts of educational institutions. AlekSIS is free software and\n"
-"              can be used by anyone.\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:24
-msgid ""
-"\n"
-"              AlekSIS® is a registered trademark of the AlekSIS open source project, represented by Teckids e.V.\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:30
-msgid "Website of AlekSIS"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:31
-msgid "Source code"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:40
-msgid "Licence information"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:42
-msgid ""
-"\n"
-"              The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence\n"
-"              information from third-party apps, if installed, refer to the respective components below. The\n"
-"              licences are marked like this:\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:50
-msgid "Free/Open Source Licence"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:51
-msgid "Other Licence"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:55
-msgid "Full licence text"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:56
-msgid "More information about the EUPL"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:95
-#, python-format
-msgid ""
-"\n"
-"                    This app is licenced under %(licence)s.\n"
-"                  "
-msgstr ""
-
 #: aleksis/core/templates/core/pages/delete.html:6
 #, python-format
 msgid "Delete %(object_name)s"
@@ -2029,16 +1825,9 @@ msgid ""
 "    "
 msgstr ""
 
-#: aleksis/core/templates/core/pages/progress.html:27
-msgid ""
-"\n"
-"              Without activated JavaScript the progress status can't be updated.\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/progress.html:47
-#: aleksis/core/templates/two_factor/core/otp_required.html:19
-msgid "Go back"
+#: aleksis/core/templates/core/pages/system_status.html:5
+#: aleksis/core/templates/core/pages/system_status.html:7
+msgid "System status"
 msgstr ""
 
 #: aleksis/core/templates/core/pages/system_status.html:12
@@ -2164,13 +1953,11 @@ msgstr ""
 
 #: aleksis/core/templates/core/partials/avatar_content.html:14
 #: aleksis/core/templates/core/partials/avatar_content.html:15
-#: aleksis/core/templates/core/person/full.html:213
-#: aleksis/core/templates/core/person/full.html:214
 msgid "Avatar"
 msgstr ""
 
+#: aleksis/core/templates/core/partials/avatar_content.html:18
 #: aleksis/core/templates/core/partials/avatar_content.html:19
-#: aleksis/core/templates/core/partials/avatar_content.html:20
 msgid "Identicon"
 msgstr ""
 
@@ -2182,29 +1969,11 @@ msgstr ""
 msgid "Unknown"
 msgstr ""
 
-#: aleksis/core/templates/core/partials/language_form.html:17
-msgid "Language"
-msgstr ""
-
-#: aleksis/core/templates/core/partials/language_form.html:29
-msgid "Select language"
-msgstr ""
-
-#: aleksis/core/templates/core/partials/no_person.html:12
-msgid ""
-"\n"
-"            Your administrator account is not linked to any person. Therefore,\n"
-"            a dummy person has been linked to your account.\n"
-"          "
-msgstr ""
-
-#: aleksis/core/templates/core/partials/no_person.html:19
+#: aleksis/core/templates/core/partials/splash_screen.html:11
 msgid ""
 "\n"
-"            Your user account is not linked to a person. This means you\n"
-"            cannot access any school-related information. Please contact\n"
-"            the managers of AlekSIS at your school.\n"
-"          "
+"      This webbrowser doesn't support JavaScript, or its execution is blocked. Please use another browser to continue.\n"
+"    "
 msgstr ""
 
 #: aleksis/core/templates/core/perms/assign.html:12
@@ -2220,6 +1989,11 @@ msgstr ""
 msgid "Assign"
 msgstr ""
 
+#: aleksis/core/templates/core/perms/list.html:13
+#: aleksis/core/templates/core/perms/list.html:14
+msgid "Manage permissions"
+msgstr ""
+
 #: aleksis/core/templates/core/perms/list.html:21
 msgid "Assign a new permission"
 msgstr ""
@@ -2263,28 +2037,6 @@ msgstr ""
 msgid "Edit person"
 msgstr ""
 
-#: aleksis/core/templates/core/person/full.html:47
-#: aleksis/core/templates/core/person/full.html:107
-msgid "Impersonate"
-msgstr ""
-
-#: aleksis/core/templates/core/person/full.html:54
-#: aleksis/core/templates/core/person/full.html:114
-msgid "Invite user"
-msgstr ""
-
-#: aleksis/core/templates/core/person/full.html:121
-msgid "Contact details"
-msgstr ""
-
-#: aleksis/core/templates/core/person/full.html:220
-msgid "This person didn't upload a personal photo."
-msgstr ""
-
-#: aleksis/core/templates/core/person/full.html:228
-msgid "Children"
-msgstr ""
-
 #: aleksis/core/templates/core/person/list.html:21
 msgid "Filter persons"
 msgstr ""
@@ -2304,6 +2056,10 @@ msgstr ""
 msgid "Edit school term"
 msgstr ""
 
+#: aleksis/core/templates/dynamic_preferences/form.html:5
+msgid "Preferences"
+msgstr ""
+
 #: aleksis/core/templates/dynamic_preferences/form.html:9
 msgid "Site preferences"
 msgstr ""
@@ -2337,6 +2093,10 @@ msgstr ""
 msgid "site preferences page"
 msgstr ""
 
+#: aleksis/core/templates/invitations/enter.html:7
+msgid "Accept invitation"
+msgstr ""
+
 #: aleksis/core/templates/invitations/enter.html:21
 msgid "Accept your invitation"
 msgstr ""
@@ -2385,6 +2145,13 @@ msgstr ""
 msgid "Register OAuth2 Application"
 msgstr ""
 
+#: aleksis/core/templates/oauth2_provider/application/create.html:14
+#: aleksis/core/templates/oauth2_provider/application/edit.html:14
+#: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:24
+#: aleksis/core/templates/two_factor/_wizard_actions.html:6
+msgid "Cancel"
+msgstr ""
+
 #: aleksis/core/templates/oauth2_provider/application/detail.html:5
 msgid "OAuth2 Application"
 msgstr ""
@@ -2418,6 +2185,11 @@ msgstr ""
 msgid "Edit OAuth2 Application"
 msgstr ""
 
+#: aleksis/core/templates/oauth2_provider/application/list.html:5
+#: aleksis/core/templates/oauth2_provider/application/list.html:6
+msgid "OAuth2 Applications"
+msgstr ""
+
 #: aleksis/core/templates/oauth2_provider/application/list.html:11
 msgid "Register new application"
 msgstr ""
@@ -2449,14 +2221,6 @@ msgstr ""
 msgid "Disallow"
 msgstr ""
 
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:12
-msgid "Success!"
-msgstr ""
-
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:14
-msgid "Please return to your application and enter this code:"
-msgstr ""
-
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:5
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:6
 #: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
@@ -2471,6 +2235,11 @@ msgstr ""
 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 applications."
 msgstr ""
@@ -2480,13 +2249,13 @@ msgid "Network error"
 msgstr ""
 
 #: aleksis/core/templates/offline.html:10
-msgid "No internet connection."
+msgid "Page not available offline."
 msgstr ""
 
 #: aleksis/core/templates/offline.html:14
 msgid ""
 "\n"
-"      There was an error accessing this page. You probably don't have an internet connection. Check to see if your WiFi\n"
+"      This page is not available offline. Since you probably don't have an internet connection, check to see if your WiFi\n"
 "      or mobile data is turned on and try again. If you think you are connected, please contact the system\n"
 "      administrators:\n"
 "    "
@@ -2767,6 +2536,12 @@ msgstr ""
 msgid "Generate Tokens"
 msgstr ""
 
+#: aleksis/core/templates/two_factor/core/login.html:6
+#: aleksis/core/templates/two_factor/core/login.html:32
+#: aleksis/core/templates/two_factor/core/login.html:95
+msgid "Login"
+msgstr ""
+
 #: aleksis/core/templates/two_factor/core/login.html:27
 #, python-format
 msgid "Login for %(name)s"
@@ -2861,6 +2636,10 @@ msgid ""
 "          security."
 msgstr ""
 
+#: aleksis/core/templates/two_factor/core/otp_required.html:19
+msgid "Go back"
+msgstr ""
+
 #: aleksis/core/templates/two_factor/core/phone_register.html:5
 #: aleksis/core/templates/two_factor/core/phone_register.html:9
 msgid "Add Backup Phone"
@@ -3088,188 +2867,168 @@ msgstr ""
 msgid "SMS"
 msgstr ""
 
-#: aleksis/core/util/pdf.py:118
+#: aleksis/core/util/pdf.py:151
 msgid "Progress: Generate PDF file"
 msgstr ""
 
-#: aleksis/core/util/pdf.py:119
+#: aleksis/core/util/pdf.py:152
 msgid "Generating PDF file …"
 msgstr ""
 
-#: aleksis/core/util/pdf.py:120
+#: aleksis/core/util/pdf.py:153
 msgid "The PDF file has been generated successfully."
 msgstr ""
 
-#: aleksis/core/util/pdf.py:121
+#: aleksis/core/util/pdf.py:154
 msgid "There was a problem while generating the PDF file."
 msgstr ""
 
-#: aleksis/core/util/pdf.py:124
+#: aleksis/core/util/pdf.py:157
 msgid "Download PDF"
 msgstr ""
 
-#: aleksis/core/views.py:294
+#: aleksis/core/views.py:278
 msgid "The school term has been created."
 msgstr ""
 
-#: aleksis/core/views.py:306
+#: aleksis/core/views.py:290
 msgid "The school term has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:426
+#: aleksis/core/views.py:394
 msgid "The child groups were successfully saved."
 msgstr ""
 
-#: aleksis/core/views.py:445 aleksis/core/views.py:455
+#: aleksis/core/views.py:413 aleksis/core/views.py:423
 msgid "The person has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:505
+#: aleksis/core/views.py:473
 msgid "The group has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:602
+#: aleksis/core/views.py:556
 msgid "The announcement has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:618
+#: aleksis/core/views.py:572
 msgid "The announcement has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:686
+#: aleksis/core/views.py:641
 msgid "The requested preference registry does not exist"
 msgstr ""
 
-#: aleksis/core/views.py:705
+#: aleksis/core/views.py:660
 msgid "The preferences have been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:729
+#: aleksis/core/views.py:684
 msgid "The person has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:743
+#: aleksis/core/views.py:698
 msgid "The group has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:775
+#: aleksis/core/views.py:730
 msgid "The additional field has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:809
+#: aleksis/core/views.py:765
 msgid "The additional field has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:834
+#: aleksis/core/views.py:790
 msgid "The group type has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:864
+#: aleksis/core/views.py:821
 msgid "The group type has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:897
+#: aleksis/core/views.py:856
 msgid "Progress: Run data checks"
 msgstr ""
 
-#: aleksis/core/views.py:898
+#: aleksis/core/views.py:857
 msgid "Run data checks …"
 msgstr ""
 
-#: aleksis/core/views.py:899
+#: aleksis/core/views.py:858
 msgid "The data checks were run successfully."
 msgstr ""
 
-#: aleksis/core/views.py:900
+#: aleksis/core/views.py:859
 msgid "There was a problem while running data checks."
 msgstr ""
 
-#: aleksis/core/views.py:916
+#: aleksis/core/views.py:876
 #, python-brace-format
 msgid "The solve option '{solve_option_obj.verbose_name}' "
 msgstr ""
 
-#: aleksis/core/views.py:926
+#: aleksis/core/views.py:886
 msgid "The requested solve option does not exist"
 msgstr ""
 
-#: aleksis/core/views.py:958
+#: aleksis/core/views.py:919
 msgid "The dashboard widget has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:988
+#: aleksis/core/views.py:949
 msgid "The dashboard widget has been created."
 msgstr ""
 
-#: aleksis/core/views.py:998
+#: aleksis/core/views.py:959
 msgid "The dashboard widget has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1069
+#: aleksis/core/views.py:1030
 msgid "Your dashboard configuration has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1071
+#: aleksis/core/views.py:1032
 msgid "The configuration of the default dashboard has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1147
+#: aleksis/core/views.py:1103
 #, python-brace-format
 msgid "The invitation was successfully created. The invitation code is {code}"
 msgstr ""
 
-#: aleksis/core/views.py:1238
+#: aleksis/core/views.py:1200
 msgid "We have successfully assigned the permissions."
 msgstr ""
 
-#: aleksis/core/views.py:1248
+#: aleksis/core/views.py:1210
 msgid "The global user permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1258
+#: aleksis/core/views.py:1220
 msgid "The global group permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1268
+#: aleksis/core/views.py:1230
 msgid "The object user permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1278
+#: aleksis/core/views.py:1240
 msgid "The object group permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1346
-msgid "The requested PDF file does not exist"
-msgstr ""
-
-#: aleksis/core/views.py:1355 aleksis/core/views.py:1359
-msgid "The requested task does not exist or is not accessible"
-msgstr ""
-
-#: aleksis/core/views.py:1411
+#: aleksis/core/views.py:1349
 msgid "The third-party account could not be disconnected because it is the only login method available."
 msgstr ""
 
-#: aleksis/core/views.py:1418
+#: aleksis/core/views.py:1356
 msgid "The third-party account has been successfully disconnected."
 msgstr ""
 
-#: aleksis/core/views.py:1489
+#: aleksis/core/views.py:1432
 msgid "Person was invited successfully and an email with further instructions has been send to them."
 msgstr ""
 
-#: aleksis/core/views.py:1500
+#: aleksis/core/views.py:1443
 msgid "Person was already invited."
 msgstr ""
-
-#: aleksis/core/views.py:1600
-msgid "iCal feed updated successfully"
-msgstr ""
-
-#: aleksis/core/views.py:1610
-msgid "iCal feed deleted successfully"
-msgstr ""
-
-#: aleksis/core/views.py:1618
-msgid "iCal feed created successfully"
-msgstr ""
diff --git a/aleksis/core/locale/ar/LC_MESSAGES/djangojs.po b/aleksis/core/locale/ar/LC_MESSAGES/djangojs.po
index 3defb67f9f4129276ebd5b1c61d84a8511b0fabe..0d39d4eb6ab12b04ed1f7a3313c6a214e2b8e291 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: 2022-06-25 12:09+0200\n"
+"POT-Creation-Date: 2023-01-22 20:49+0100\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,7 +29,3 @@ msgstr ""
 #: aleksis/core/static/js/main.js:68
 msgid "OK"
 msgstr ""
-
-#: aleksis/core/static/js/main.js:195
-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 b96acde0bb0b6820ae606715596e1348ce31fca0..a68ee85f7dce87695971b14b5cc303f85fa1ea08 100644
--- a/aleksis/core/locale/de_DE/LC_MESSAGES/django.po
+++ b/aleksis/core/locale/de_DE/LC_MESSAGES/django.po
@@ -19,23 +19,23 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 4.12.1\n"
 
-#: aleksis/core/apps.py:166
+#: aleksis/core/apps.py:166 aleksis/core/apps.py:155
 msgid "OpenID Connect scope"
 msgstr "OpenID-Connect-Scope"
 
-#: aleksis/core/apps.py:167
+#: aleksis/core/apps.py:167 aleksis/core/apps.py:156
 msgid "Given name, family name, link to profile and picture if existing."
 msgstr "Vorname, Nachname, Link zum Profil und Bild falls vorhanden."
 
-#: aleksis/core/apps.py:168
+#: aleksis/core/apps.py:168 aleksis/core/apps.py:157
 msgid "Full home postal address"
 msgstr "Vollständige Postanschrift"
 
-#: aleksis/core/apps.py:169
+#: aleksis/core/apps.py:169 aleksis/core/apps.py:158
 msgid "Email address"
 msgstr "E-Mail-Adresse"
 
-#: aleksis/core/apps.py:170
+#: aleksis/core/apps.py:170 aleksis/core/apps.py:159
 msgid "Home and mobile phone"
 msgstr "Festnetz- und Mobilfunknummer"
 
@@ -43,10 +43,12 @@ msgstr "Festnetz- und Mobilfunknummer"
 #: aleksis/core/models.py:489 aleksis/core/templates/core/group/list.html:8
 #: aleksis/core/templates/core/group/list.html:9
 #: aleksis/core/templates/core/person/full.html:246 aleksis/core/models.py:494
+#: aleksis/core/apps.py:160
 msgid "Groups"
 msgstr "Gruppen"
 
 #: aleksis/core/data_checks.py:56 aleksis/core/data_checks.py:59
+#: aleksis/core/data_checks.py:60
 msgid "Ignore problem"
 msgstr "Problem ignorieren"
 
@@ -56,14 +58,17 @@ msgid "Solve option '{solve_option_obj.verbose_name}' "
 msgstr "Lösungsoption \"{solve_option_obj.verbose_name}\" "
 
 #: aleksis/core/data_checks.py:291 aleksis/core/data_checks.py:294
+#: aleksis/core/data_checks.py:284
 msgid "Deactivate DashboardWidget"
 msgstr "Dashboard-Widget deaktivieren"
 
 #: aleksis/core/data_checks.py:303 aleksis/core/data_checks.py:306
+#: aleksis/core/data_checks.py:296
 msgid "Ensure that there are no broken DashboardWidgets."
 msgstr "Sicherstellen, dass es keine kaputten Dashboard-Widgets gibt."
 
 #: aleksis/core/data_checks.py:304 aleksis/core/data_checks.py:307
+#: aleksis/core/data_checks.py:297
 msgid "The DashboardWidget was reported broken automatically."
 msgstr "Das Dashboard-Widget wurde automatisch als kaputt gemeldet."
 
@@ -287,17 +292,17 @@ msgstr "Passwort"
 msgid "Password (again)"
 msgstr "Passwort wiederholen"
 
-#: aleksis/core/forms.py:728
+#: aleksis/core/forms.py:728 aleksis/core/forms.py:761
 msgid "The selected action does not exist."
 msgstr "Die ausgewählte Aktion existiert nicht."
 
-#: aleksis/core/forms.py:739
+#: aleksis/core/forms.py:739 aleksis/core/forms.py:772
 msgid "You do not have permission to run {} on all selected objects."
 msgstr ""
 "Sie haben nicht die Berechtigung, {} auf alle ausgewählten Objekte "
 "auszuführen."
 
-#: aleksis/core/forms.py:795
+#: aleksis/core/forms.py:795 aleksis/core/forms.py:828
 msgid "No valid selection."
 msgstr "Keine gültige Auswahl."
 
@@ -347,7 +352,7 @@ msgstr "Admin"
 #: aleksis/core/menus.py:47 aleksis/core/models.py:867
 #: aleksis/core/templates/core/announcement/list.html:7
 #: aleksis/core/templates/core/announcement/list.html:8
-#: aleksis/core/models.py:872
+#: aleksis/core/models.py:872 aleksis/core/models.py:876
 msgid "Announcements"
 msgstr "Ankündigungen"
 
@@ -550,6 +555,7 @@ msgstr ""
 #: aleksis/core/models.py:158 aleksis/core/models.py:1019
 #: aleksis/core/models.py:1371 aleksis/core/models.py:163
 #: aleksis/core/models.py:1024 aleksis/core/models.py:1381
+#: aleksis/core/models.py:1026
 msgid "Person"
 msgstr "Person"
 
@@ -587,6 +593,7 @@ msgstr "männlich"
 
 #: aleksis/core/models.py:184 aleksis/core/models.py:1273
 #: aleksis/core/models.py:189 aleksis/core/models.py:1283
+#: aleksis/core/models.py:1345
 msgid "Linked user"
 msgstr "Verknüpfter Benutzer"
 
@@ -596,6 +603,7 @@ msgstr "Zusätzliche Namen"
 
 #: aleksis/core/models.py:194 aleksis/core/models.py:506
 #: aleksis/core/models.py:199 aleksis/core/models.py:511
+#: aleksis/core/models.py:1431
 msgid "Short name"
 msgstr "Kurzname"
 
@@ -670,6 +678,7 @@ msgstr "Primärgruppe"
 #: aleksis/core/models.py:1094 aleksis/core/models.py:244
 #: aleksis/core/models.py:724 aleksis/core/models.py:748
 #: aleksis/core/models.py:839 aleksis/core/models.py:1104
+#: aleksis/core/models.py:843
 msgid "Description"
 msgstr "Beschreibung"
 
@@ -706,6 +715,7 @@ msgid "Can view statistics about group."
 msgstr "Kann Statistiken über Gruppen sehen."
 
 #: aleksis/core/models.py:504 aleksis/core/models.py:509
+#: aleksis/core/models.py:1432
 msgid "Long name"
 msgstr "Langname"
 
@@ -732,7 +742,8 @@ msgstr "Gruppentyp"
 #: aleksis/core/models.py:833
 #: aleksis/core/templates/core/announcement/list.html:18
 #: aleksis/core/models.py:723 aleksis/core/models.py:747
-#: aleksis/core/models.py:838
+#: aleksis/core/models.py:838 aleksis/core/models.py:842
+#: aleksis/core/models.py:1262
 msgid "Title"
 msgstr "Titel"
 
@@ -762,18 +773,22 @@ msgid "Link"
 msgstr "Link"
 
 #: aleksis/core/models.py:746 aleksis/core/models.py:751
+#: aleksis/core/models.py:755
 msgid "Send notification at"
 msgstr "Benachrichtigung schicken am"
 
 #: aleksis/core/models.py:748 aleksis/core/models.py:753
+#: aleksis/core/models.py:757
 msgid "Read"
 msgstr "Gelesen"
 
 #: aleksis/core/models.py:749 aleksis/core/models.py:754
+#: aleksis/core/models.py:758
 msgid "Sent"
 msgstr "Versandt"
 
 #: aleksis/core/models.py:766 aleksis/core/models.py:771
+#: aleksis/core/models.py:775
 msgid "Notification"
 msgstr "Benachrichtigung"
 
@@ -781,146 +796,182 @@ msgstr "Benachrichtigung"
 #: aleksis/core/templates/core/base.html:81
 #: aleksis/core/templates/core/notifications.html:4
 #: aleksis/core/templates/core/notifications.html:5 aleksis/core/models.py:772
+#: aleksis/core/models.py:776
 msgid "Notifications"
 msgstr "Benachrichtigungen"
 
 #: aleksis/core/models.py:835 aleksis/core/models.py:840
+#: aleksis/core/models.py:844
 msgid "Link to detailed view"
 msgstr "Link zur detaillierten Ansicht"
 
 #: aleksis/core/models.py:838 aleksis/core/models.py:843
+#: aleksis/core/models.py:847
 msgid "Date and time from when to show"
 msgstr "Datum und Uhrzeit des Anzeigestarts"
 
 #: aleksis/core/models.py:841 aleksis/core/models.py:846
+#: aleksis/core/models.py:850
 msgid "Date and time until when to show"
 msgstr "Anzeigezeitraum"
 
 #: aleksis/core/models.py:866 aleksis/core/models.py:871
+#: aleksis/core/models.py:875
 msgid "Announcement"
 msgstr "Ankündigung"
 
 #: aleksis/core/models.py:904 aleksis/core/models.py:909
+#: aleksis/core/models.py:913
 msgid "Announcement recipient"
 msgstr "Empfänger der Ankündigung"
 
 #: aleksis/core/models.py:905 aleksis/core/models.py:910
+#: aleksis/core/models.py:914
 msgid "Announcement recipients"
 msgstr "Empfänger der Ankündigung"
 
 #: aleksis/core/models.py:927 aleksis/core/models.py:932
+#: aleksis/core/models.py:934
 msgid "Widget Title"
 msgstr "Widget-Titel"
 
 #: aleksis/core/models.py:928 aleksis/core/models.py:933
+#: aleksis/core/models.py:935
 msgid "Activate Widget"
 msgstr "Widget aktivieren"
 
 #: aleksis/core/models.py:929 aleksis/core/models.py:934
+#: aleksis/core/models.py:936
 msgid "Widget is broken"
 msgstr "Widget ist kaputt"
 
 #: aleksis/core/models.py:932 aleksis/core/models.py:937
+#: aleksis/core/models.py:939
 msgid "Size on mobile devices"
 msgstr "Größe auf Mobilgeräten"
 
 #: aleksis/core/models.py:933 aleksis/core/models.py:938
+#: aleksis/core/models.py:940
 msgid "<= 600 px, 12 columns"
 msgstr "<= 600 px, 12 Spalten"
 
 #: aleksis/core/models.py:938 aleksis/core/models.py:943
+#: aleksis/core/models.py:945
 msgid "Size on tablet devices"
 msgstr "Größe auf Tablets"
 
 #: aleksis/core/models.py:939 aleksis/core/models.py:944
+#: aleksis/core/models.py:946
 msgid "> 600 px, 12 columns"
 msgstr "> 600px, 12 Spalten"
 
 #: aleksis/core/models.py:944 aleksis/core/models.py:949
+#: aleksis/core/models.py:951
 msgid "Size on desktop devices"
 msgstr "Größe auf Desktopgeräten"
 
 #: aleksis/core/models.py:945 aleksis/core/models.py:950
+#: aleksis/core/models.py:952
 msgid "> 992 px, 12 columns"
 msgstr "> 992 px, 12 Spalten"
 
 #: aleksis/core/models.py:950 aleksis/core/models.py:955
+#: aleksis/core/models.py:957
 msgid "Size on large desktop devices"
 msgstr "Größe auf großen Desktopgeräten"
 
 #: aleksis/core/models.py:951 aleksis/core/models.py:956
+#: aleksis/core/models.py:958
 msgid "> 1200 px>, 12 columns"
 msgstr "> 1200 px, 12 Spalten"
 
 #: aleksis/core/models.py:982 aleksis/core/models.py:987
+#: aleksis/core/models.py:989
 msgid "Can edit default dashboard"
 msgstr "Kann Standarddashboard bearbeiten"
 
 #: aleksis/core/models.py:983 aleksis/core/models.py:988
+#: aleksis/core/models.py:990
 msgid "Dashboard Widget"
 msgstr "Dashboard-Widget"
 
 #: aleksis/core/models.py:984 aleksis/core/models.py:989
+#: aleksis/core/models.py:991
 msgid "Dashboard Widgets"
 msgstr "Dashboard-Widgets"
 
 #: aleksis/core/models.py:990 aleksis/core/models.py:995
+#: aleksis/core/models.py:997
 msgid "URL"
 msgstr "URL"
 
 #: aleksis/core/models.py:991 aleksis/core/models.py:996
+#: aleksis/core/models.py:998
 msgid "Icon URL"
 msgstr "Symbol-URL"
 
 #: aleksis/core/models.py:997 aleksis/core/models.py:1002
+#: aleksis/core/models.py:1004
 msgid "External link widget"
 msgstr "Externer-Link-Widget"
 
 #: aleksis/core/models.py:998 aleksis/core/models.py:1003
+#: aleksis/core/models.py:1005
 msgid "External link widgets"
 msgstr "Externer-Link-Widgets"
 
 #: aleksis/core/models.py:1004 aleksis/core/models.py:1009
+#: aleksis/core/models.py:1011
 msgid "Content"
 msgstr "Inhalt"
 
 #: aleksis/core/models.py:1010 aleksis/core/models.py:1015
+#: aleksis/core/models.py:1017
 msgid "Static content widget"
 msgstr "Statischer-Inhalt-Widget"
 
 #: aleksis/core/models.py:1011 aleksis/core/models.py:1016
+#: aleksis/core/models.py:1018
 msgid "Static content widgets"
 msgstr "Statischer-Inhalt-Widgets"
 
 #: aleksis/core/models.py:1016 aleksis/core/models.py:1021
+#: aleksis/core/models.py:1023
 msgid "Dashboard widget"
 msgstr "Dashboard-Widget"
 
 #: aleksis/core/models.py:1021 aleksis/core/models.py:1026
+#: aleksis/core/models.py:1028
 msgid "Order"
 msgstr "Reihenfolge"
 
 #: aleksis/core/models.py:1022 aleksis/core/models.py:1027
+#: aleksis/core/models.py:1029
 msgid "Part of the default dashboard"
 msgstr "Teil des Standarddashboards"
 
 #: aleksis/core/models.py:1037 aleksis/core/models.py:1042
+#: aleksis/core/models.py:1044
 msgid "Dashboard widget order"
 msgstr "Reihenfolge der Dashboard-Widgets"
 
 #: aleksis/core/models.py:1038 aleksis/core/models.py:1043
+#: aleksis/core/models.py:1045
 msgid "Dashboard widget orders"
 msgstr "Reihenfolgen der Dashboard-Widgets"
 
 #: aleksis/core/models.py:1044 aleksis/core/models.py:1049
+#: aleksis/core/models.py:1051
 msgid "Menu ID"
 msgstr "Menü-ID"
 
 #: aleksis/core/models.py:1057 aleksis/core/models.py:1062
+#: aleksis/core/models.py:1064
 msgid "Custom menu"
 msgstr "Benutzerdefiniertes Menü"
 
 #: aleksis/core/models.py:1058 aleksis/core/models.py:1063
+#: aleksis/core/models.py:1065
 msgid "Custom menus"
 msgstr "Benutzerdefinierte Menüs"
 
@@ -931,6 +982,7 @@ msgstr "Menü"
 #: aleksis/core/models.py:1072 aleksis/core/models.py:1320
 #: aleksis/core/templates/oauth2_provider/application/detail.html:26
 #: aleksis/core/models.py:1079 aleksis/core/models.py:1330
+#: aleksis/core/models.py:752 aleksis/core/models.py:1392
 msgid "Icon"
 msgstr "Symbol"
 
@@ -1028,46 +1080,57 @@ msgid "File expires at"
 msgstr "Datei abgelaufen am"
 
 #: aleksis/core/models.py:1229 aleksis/core/models.py:1239
+#: aleksis/core/models.py:1240
 msgid "Generated HTML file"
 msgstr "Generierte HTML-Datei"
 
 #: aleksis/core/models.py:1231 aleksis/core/models.py:1241
+#: aleksis/core/models.py:1243
 msgid "Generated PDF file"
 msgstr "Generierte PDF-Datei"
 
 #: aleksis/core/models.py:1238 aleksis/core/models.py:1248
+#: aleksis/core/models.py:1250
 msgid "PDF file"
 msgstr "PDF-Datei"
 
 #: aleksis/core/models.py:1239 aleksis/core/models.py:1249
+#: aleksis/core/models.py:1251
 msgid "PDF files"
 msgstr "PDF-Dateien"
 
 #: aleksis/core/models.py:1244 aleksis/core/models.py:1254
+#: aleksis/core/models.py:1256
 msgid "Task result"
 msgstr "Task-Ergebnis"
 
 #: aleksis/core/models.py:1247 aleksis/core/models.py:1257
+#: aleksis/core/models.py:1259
 msgid "Task user"
 msgstr "Task-Benutzer"
 
 #: aleksis/core/models.py:1259 aleksis/core/models.py:1269
+#: aleksis/core/models.py:1331
 msgid "Task user assignment"
 msgstr "Task-Benutzer-Zuordnung"
 
 #: aleksis/core/models.py:1260 aleksis/core/models.py:1270
+#: aleksis/core/models.py:1332
 msgid "Task user assignments"
 msgstr "Task-Benutzer-Zuordnungen"
 
 #: aleksis/core/models.py:1276 aleksis/core/models.py:1286
+#: aleksis/core/models.py:1348
 msgid "Additional attributes"
 msgstr "Zusätzliche Attribute"
 
 #: aleksis/core/models.py:1314 aleksis/core/models.py:1324
+#: aleksis/core/models.py:1386
 msgid "Allowed scopes that clients can request"
 msgstr "Erlaubte Scopes, die ein Client anfordern kann"
 
 #: aleksis/core/models.py:1324 aleksis/core/models.py:1334
+#: aleksis/core/models.py:1396
 msgid ""
 "This image will be shown as icon in the authorization flow. It should be "
 "squared."
@@ -1179,63 +1242,63 @@ msgstr "Namensformat für Anreden"
 msgid "Channels to use for notifications"
 msgstr "Aktivierte Benachrichtungskanäle"
 
-#: aleksis/core/preferences.py:209
+#: aleksis/core/preferences.py:209 aleksis/core/preferences.py:224
 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:220
+#: aleksis/core/preferences.py:220 aleksis/core/preferences.py:235
 msgid "Field on person to match primary group against"
 msgstr "Feld um Primärgruppen zu finden"
 
-#: aleksis/core/preferences.py:232
+#: aleksis/core/preferences.py:232 aleksis/core/preferences.py:247
 msgid "Automatically create new persons for new users"
 msgstr "Erstelle automatisch neue Personen für neue Benutzer"
 
-#: aleksis/core/preferences.py:241
+#: aleksis/core/preferences.py:241 aleksis/core/preferences.py:256
 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:252
+#: aleksis/core/preferences.py:252 aleksis/core/preferences.py:267
 msgid "Display name of the school"
 msgstr "Sichtbarer Name der Schule"
 
-#: aleksis/core/preferences.py:263
+#: aleksis/core/preferences.py:263 aleksis/core/preferences.py:278
 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:271
+#: aleksis/core/preferences.py:271 aleksis/core/preferences.py:286
 msgid "Allow users to change their passwords"
 msgstr "Erlaube Benutzern, ihr Passwort zu ändern"
 
-#: aleksis/core/preferences.py:279
+#: aleksis/core/preferences.py:279 aleksis/core/preferences.py:294
 msgid "Allow users to reset their passwords"
 msgstr "Erlaube Benutzern, ihr Passwort zurückzusetzen"
 
-#: aleksis/core/preferences.py:287
+#: aleksis/core/preferences.py:287 aleksis/core/preferences.py:302
 msgid "Enable signup"
 msgstr "Registrierung aktivieren"
 
-#: aleksis/core/preferences.py:295
+#: aleksis/core/preferences.py:295 aleksis/core/preferences.py:310
 msgid "Regular expression for allowed usernames"
 msgstr "Regulärer Ausdruck für erlaubte Benutzernamen"
 
-#: aleksis/core/preferences.py:303
+#: aleksis/core/preferences.py:303 aleksis/core/preferences.py:318
 msgid "Enable invitations"
 msgstr "Einladungen aktivieren"
 
-#: aleksis/core/preferences.py:311
+#: aleksis/core/preferences.py:311 aleksis/core/preferences.py:326
 msgid "Length of invite code. (Default 3: abcde-acbde-abcde)"
 msgstr "Länge des Einladungscodes. (Standard: 3: abcde-acbde-abcde)"
 
-#: aleksis/core/preferences.py:319
+#: aleksis/core/preferences.py:319 aleksis/core/preferences.py:334
 msgid "Size of packets. (Default 5: abcde)"
 msgstr "Größe der Pakete. (Standard 5: abcde)"
 
-#: aleksis/core/preferences.py:330
+#: aleksis/core/preferences.py:330 aleksis/core/preferences.py:345
 msgid "Allowed Grant Flows for OAuth applications"
 msgstr "Erlaubte Grant Flows für OAuth-Anwendungen"
 
@@ -1244,30 +1307,37 @@ msgid "Available languages"
 msgstr "Verfügbare Sprachen"
 
 #: aleksis/core/preferences.py:357 aleksis/core/preferences.py:343
+#: aleksis/core/preferences.py:358
 msgid "Send emails if data checks detect problems"
 msgstr "E-Mails versenden, wenn Datenprüfungen Probleme finden"
 
 #: aleksis/core/preferences.py:368 aleksis/core/preferences.py:354
+#: aleksis/core/preferences.py:369
 msgid "Email recipients for data checks problem emails"
 msgstr "E-Mailempfänger für Datenprüfungsproblem-E-Mails"
 
 #: aleksis/core/preferences.py:379 aleksis/core/preferences.py:365
+#: aleksis/core/preferences.py:380
 msgid "Email recipient groups for data checks problem emails"
 msgstr "E-Mail-Empfängergruppen für Datenprüfungsproblem-E-Mails"
 
 #: aleksis/core/preferences.py:388 aleksis/core/preferences.py:374
+#: aleksis/core/preferences.py:389
 msgid "Show dashboard to users without login"
 msgstr "Zeige Dashboard für Benutzer ohne Login"
 
 #: aleksis/core/preferences.py:397 aleksis/core/preferences.py:383
+#: aleksis/core/preferences.py:398
 msgid "Allow users to edit their dashboard"
 msgstr "Erlaube Benutzern, ihr Dashboard zu bearbeiten"
 
 #: aleksis/core/preferences.py:408 aleksis/core/preferences.py:394
+#: aleksis/core/preferences.py:409
 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:423 aleksis/core/preferences.py:409
+#: aleksis/core/preferences.py:424
 msgid ""
 "Editable fields on person model which should trigger a notification on change"
 msgstr ""
@@ -1275,40 +1345,49 @@ msgstr ""
 "Änderungen auslösen soll"
 
 #: aleksis/core/preferences.py:437 aleksis/core/preferences.py:423
+#: aleksis/core/preferences.py:438
 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:448 aleksis/core/preferences.py:434
+#: aleksis/core/preferences.py:449
 msgid "Prefer personal photos over avatars"
 msgstr "Persönliche Fotos Avataren vorziehen"
 
 #: aleksis/core/preferences.py:458 aleksis/core/preferences.py:444
+#: aleksis/core/preferences.py:459
 msgid "PDF file expiration duration"
 msgstr "PDF-Datei-Ablaufdauer"
 
 #: aleksis/core/preferences.py:459 aleksis/core/preferences.py:445
+#: aleksis/core/preferences.py:460
 msgid "in minutes"
 msgstr "in Minuten"
 
 #: aleksis/core/preferences.py:469 aleksis/core/preferences.py:455
+#: aleksis/core/preferences.py:470
 msgid "Automatically update the dashboard and its widgets"
 msgstr "Automatisch das Dashboard und seine Widgets aktualisieren"
 
 #: aleksis/core/preferences.py:479 aleksis/core/preferences.py:465
+#: aleksis/core/preferences.py:480
 msgid "Automatically update the dashboard and its widgets sitewide"
 msgstr ""
 "Automatisch das Dashboard und seine Widgets aktualisieren (auf der ganzen "
 "Seite)"
 
 #: aleksis/core/preferences.py:489 aleksis/core/preferences.py:475
+#: aleksis/core/preferences.py:490
 msgid "Country for phone number parsing"
 msgstr "Land für das Einlesen von Telefonnummern"
 
 #: aleksis/core/settings.py:540 aleksis/core/settings.py:541
+#: aleksis/core/settings.py:539
 msgid "English"
 msgstr "Englisch"
 
 #: aleksis/core/settings.py:541 aleksis/core/settings.py:542
+#: aleksis/core/settings.py:540
 msgid "German"
 msgstr "Deutsch"
 
@@ -2128,6 +2207,7 @@ msgid "Home"
 msgstr "Startseite"
 
 #: aleksis/core/templates/core/index.html:49
+#: aleksis/core/templates/core/index.html:34
 msgid ""
 "\n"
 "        You didn't customise your dashboard so that you see the system "
@@ -2143,10 +2223,12 @@ msgstr ""
 "      "
 
 #: aleksis/core/templates/core/index.html:59
+#: aleksis/core/templates/core/index.html:44
 msgid "Last activities"
 msgstr "Letzte Aktivitäten"
 
 #: aleksis/core/templates/core/index.html:77
+#: aleksis/core/templates/core/index.html:62
 msgid "No activities available yet."
 msgstr "Aktuell keine Aktivitäten verfügbar."
 
@@ -2455,6 +2537,7 @@ msgstr "Avatar"
 
 #: aleksis/core/templates/core/partials/avatar_content.html:19
 #: aleksis/core/templates/core/partials/avatar_content.html:20
+#: aleksis/core/templates/core/partials/avatar_content.html:18
 msgid "Identicon"
 msgstr "Identicon"
 
@@ -3597,68 +3680,79 @@ msgstr "E-Mail"
 msgid "SMS"
 msgstr "SMS"
 
-#: aleksis/core/util/pdf.py:118
+#: aleksis/core/util/pdf.py:118 aleksis/core/util/pdf.py:151
 msgid "Progress: Generate PDF file"
 msgstr "Fortschritt: PDF-Datei generieren"
 
-#: aleksis/core/util/pdf.py:119
+#: aleksis/core/util/pdf.py:119 aleksis/core/util/pdf.py:152
 msgid "Generating PDF file …"
 msgstr "PDF-Datei wird generiert …"
 
-#: aleksis/core/util/pdf.py:120
+#: aleksis/core/util/pdf.py:120 aleksis/core/util/pdf.py:153
 msgid "The PDF file has been generated successfully."
 msgstr "Die PDF-Datei wurde erfolgreich generiert."
 
-#: aleksis/core/util/pdf.py:121
+#: aleksis/core/util/pdf.py:121 aleksis/core/util/pdf.py:154
 msgid "There was a problem while generating the PDF file."
 msgstr "Es ist ein Fehler beim Generieren der PDF-Datei aufgetreten."
 
-#: aleksis/core/util/pdf.py:124
+#: aleksis/core/util/pdf.py:124 aleksis/core/util/pdf.py:157
 msgid "Download PDF"
 msgstr "PDF herunterladen"
 
 #: aleksis/core/views.py:292 aleksis/core/views.py:294
+#: aleksis/core/views.py:278
 msgid "The school term has been created."
 msgstr "Das Schuljahr wurde erstellt."
 
 #: aleksis/core/views.py:304 aleksis/core/views.py:306
+#: aleksis/core/views.py:290
 msgid "The school term has been saved."
 msgstr "Das Schuljahr wurde gespeichert."
 
 #: aleksis/core/views.py:424 aleksis/core/views.py:426
+#: aleksis/core/views.py:394
 msgid "The child groups were successfully saved."
 msgstr "Die Untergruppen wurden gespeichert."
 
 #: aleksis/core/views.py:443 aleksis/core/views.py:453
 #: aleksis/core/views.py:445 aleksis/core/views.py:455
+#: aleksis/core/views.py:413 aleksis/core/views.py:423
 msgid "The person has been saved."
 msgstr "Die Person wurde gespeichert."
 
 #: aleksis/core/views.py:503 aleksis/core/views.py:505
+#: aleksis/core/views.py:473
 msgid "The group has been saved."
 msgstr "Die Gruppe wurde gespeichert."
 
 #: aleksis/core/views.py:600 aleksis/core/views.py:602
+#: aleksis/core/views.py:556
 msgid "The announcement has been saved."
 msgstr "Die Ankündigung wurde gespeichert."
 
 #: aleksis/core/views.py:616 aleksis/core/views.py:618
+#: aleksis/core/views.py:572
 msgid "The announcement has been deleted."
 msgstr "Ankündigung wurde gelöscht."
 
 #: aleksis/core/views.py:684 aleksis/core/views.py:686
+#: aleksis/core/views.py:641
 msgid "The requested preference registry does not exist"
 msgstr "Das angeforderte Einstellungsregister existiert nicht"
 
 #: aleksis/core/views.py:703 aleksis/core/views.py:705
+#: aleksis/core/views.py:660
 msgid "The preferences have been saved successfully."
 msgstr "Die Einstellungen wurde gespeichert."
 
 #: aleksis/core/views.py:727 aleksis/core/views.py:729
+#: aleksis/core/views.py:684
 msgid "The person has been deleted."
 msgstr "Die Person wurde gelöscht."
 
 #: aleksis/core/views.py:741 aleksis/core/views.py:743
+#: aleksis/core/views.py:698
 msgid "The group has been deleted."
 msgstr "Die Gruppe wurde gelöscht."
 
@@ -3667,86 +3761,106 @@ msgid "The additional_field has been saved."
 msgstr "Das zusätzliche Feld wurde gespeichert."
 
 #: aleksis/core/views.py:807 aleksis/core/views.py:809
+#: aleksis/core/views.py:765
 msgid "The additional field has been deleted."
 msgstr "Das zusätzliche Feld wurde gelöscht."
 
 #: aleksis/core/views.py:832 aleksis/core/views.py:834
+#: aleksis/core/views.py:790
 msgid "The group type has been saved."
 msgstr "Der Gruppentyp wurde gespeichert."
 
 #: aleksis/core/views.py:862 aleksis/core/views.py:864
+#: aleksis/core/views.py:821
 msgid "The group type has been deleted."
 msgstr "Der Gruppentyp wurde gelöscht."
 
 #: aleksis/core/views.py:895 aleksis/core/views.py:897
+#: aleksis/core/views.py:856
 msgid "Progress: Run data checks"
 msgstr "Fortschritt: Datenprüfungen ausführen"
 
 #: aleksis/core/views.py:896 aleksis/core/views.py:898
+#: aleksis/core/views.py:857
 msgid "Run data checks …"
 msgstr "Datenprüfungen laufen …"
 
 #: aleksis/core/views.py:897 aleksis/core/views.py:899
+#: aleksis/core/views.py:858
 msgid "The data checks were run successfully."
 msgstr "Die Datenprüfungen wurden erfolgreich ausgeführt."
 
 #: aleksis/core/views.py:898 aleksis/core/views.py:900
+#: aleksis/core/views.py:859
 msgid "There was a problem while running data checks."
 msgstr "Es gab ein Problem beim Ausführen der Datenprüfungen."
 
 #: aleksis/core/views.py:914 aleksis/core/views.py:916
+#: aleksis/core/views.py:876
 #, 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:924 aleksis/core/views.py:926
+#: aleksis/core/views.py:886
 msgid "The requested solve option does not exist"
 msgstr "Die angeforderte Lösungsoption existiert nicht"
 
 #: aleksis/core/views.py:956 aleksis/core/views.py:958
+#: aleksis/core/views.py:919
 msgid "The dashboard widget has been saved."
 msgstr "Das Dashboard-Widget wurde gespeichert."
 
 #: aleksis/core/views.py:986 aleksis/core/views.py:988
+#: aleksis/core/views.py:949
 msgid "The dashboard widget has been created."
 msgstr "Das Dashboard-Widget wurde erstellt."
 
 #: aleksis/core/views.py:996 aleksis/core/views.py:998
+#: aleksis/core/views.py:959
 msgid "The dashboard widget has been deleted."
 msgstr "Das Dashboard-Widget wurde gelöscht."
 
 #: aleksis/core/views.py:1067 aleksis/core/views.py:1069
+#: aleksis/core/views.py:1030
 msgid "Your dashboard configuration has been saved successfully."
 msgstr "Ihre Dashboardkonfiguration wurde erfolgreich gespeichert."
 
 #: aleksis/core/views.py:1069 aleksis/core/views.py:1071
+#: aleksis/core/views.py:1032
 msgid "The configuration of the default dashboard has been saved successfully."
 msgstr ""
 "Die Konfiguration des Standard-Dashboardes wurde erfolgreich gespeichert."
 
 #: aleksis/core/views.py:1145 aleksis/core/views.py:1147
+#: aleksis/core/views.py:1103
 #, python-brace-format
 msgid "The invitation was successfully created. The invitation code is {code}"
 msgstr ""
 "Die Einladung wurde erfolgreich erstellt. Der Einladungscode ist {code}"
 
 #: aleksis/core/views.py:1236 aleksis/core/views.py:1238
+#: aleksis/core/views.py:1200
 msgid "We have successfully assigned the permissions."
 msgstr "Wir haben die Berechtigungen erfolgreich zugewiesen."
 
 #: aleksis/core/views.py:1246 aleksis/core/views.py:1248
+#: aleksis/core/views.py:1210
 msgid "The global user permission has been deleted."
 msgstr "Die globale Benutzerberechtigung wurde gelöscht."
 
 #: aleksis/core/views.py:1256 aleksis/core/views.py:1258
+#: aleksis/core/views.py:1220
 msgid "The global group permission has been deleted."
 msgstr "Die globale Gruppenberechtigung wurde gelöscht."
 
 #: aleksis/core/views.py:1266 aleksis/core/views.py:1268
+#: aleksis/core/views.py:1230
 msgid "The object user permission has been deleted."
 msgstr "Die Objekt-Benutzerberechtigung wurde gelöscht."
 
 #: aleksis/core/views.py:1276 aleksis/core/views.py:1278
+#: aleksis/core/views.py:1240
 msgid "The object group permission has been deleted."
 msgstr "Die Objekt-Gruppenberechtigung wurde gelöscht."
 
@@ -3760,6 +3874,7 @@ msgid "The requested task does not exist or is not accessible"
 msgstr "Der angeforderte Task existiert nicht oder ist nicht abrufbar"
 
 #: aleksis/core/views.py:1409 aleksis/core/views.py:1411
+#: aleksis/core/views.py:1349
 msgid ""
 "The third-party account could not be disconnected because it is the only "
 "login method available."
@@ -3768,10 +3883,12 @@ msgstr ""
 "verfügbare Anmeldeoption ist."
 
 #: aleksis/core/views.py:1416 aleksis/core/views.py:1418
+#: aleksis/core/views.py:1356
 msgid "The third-party account has been successfully disconnected."
 msgstr "Das Drittanbieter-Konto wurde erfolgreich getrennt."
 
 #: aleksis/core/views.py:1487 aleksis/core/views.py:1489
+#: aleksis/core/views.py:1432
 msgid ""
 "Person was invited successfully and an email with further instructions has "
 "been send to them."
@@ -3780,6 +3897,7 @@ msgstr ""
 "Anweisungen wurde an sie verschickt."
 
 #: aleksis/core/views.py:1498 aleksis/core/views.py:1500
+#: aleksis/core/views.py:1443
 msgid "Person was already invited."
 msgstr "Person wurde bereits eingeladen."
 
@@ -3795,12 +3913,12 @@ msgstr "Der iCal-Feed wurde erfolgreich gelöscht"
 msgid "ICal feed created successfully"
 msgstr "Der iCal-Feed wurde erfolgreich erstellt"
 
-#: aleksis/core/data_checks.py:330
+#: aleksis/core/data_checks.py:330 aleksis/core/data_checks.py:320
 #, python-format
 msgid "Validate field %s of model %s."
 msgstr "Feld %s von Model %s validieren."
 
-#: aleksis/core/data_checks.py:332
+#: aleksis/core/data_checks.py:332 aleksis/core/data_checks.py:322
 #, python-format
 msgid "The field %s couldn't be validated successfully."
 msgstr "Das Feld %s konnte nicht erfolgreich validiert werden."
@@ -3809,7 +3927,7 @@ msgstr "Das Feld %s konnte nicht erfolgreich validiert werden."
 msgid "other"
 msgstr "andere"
 
-#: aleksis/core/settings.py:543
+#: aleksis/core/settings.py:543 aleksis/core/settings.py:541
 msgid "Ukrainian"
 msgstr "Ukrainisch"
 
@@ -3837,7 +3955,7 @@ msgstr ""
 msgid "iCal Feeds"
 msgstr "iCal-Feeds"
 
-#: aleksis/core/views.py:775
+#: aleksis/core/views.py:775 aleksis/core/views.py:730
 msgid "The additional field has been saved."
 msgstr "Das zusätzliche Feld wurde gespeichert."
 
@@ -3865,6 +3983,132 @@ msgstr ""
 "können die Seite aufrufen.\n"
 "              "
 
+#: aleksis/core/forms.py:499
+#, fuzzy
+msgid "You must grant the permission to all objects or to specific objects."
+msgstr ""
+"Sie müssen die Berechtigung auf alle Objekte und/oder für einige Objekte "
+"vergeben."
+
+#: aleksis/core/models.py:1263
+#, fuzzy
+msgid "Back URL"
+msgstr "Zurück"
+
+#: aleksis/core/models.py:1264
+#, fuzzy
+msgid "Progress title"
+msgstr "Fortschritt: PDF-Datei generieren"
+
+#: aleksis/core/models.py:1265
+msgid "Error message"
+msgstr ""
+
+#: aleksis/core/models.py:1266
+#, fuzzy
+msgid "Success message"
+msgstr "Erfolg!"
+
+#: aleksis/core/models.py:1267
+#, fuzzy
+msgid "Redirect on success URL"
+msgstr "Weiterleitungs-URLs"
+
+#: aleksis/core/models.py:1269
+#, fuzzy
+msgid "Additional button title"
+msgstr "Zusätzliche Attribute"
+
+#: aleksis/core/models.py:1271
+#, fuzzy
+msgid "Additional button URL"
+msgstr "Zusätzliche Daten"
+
+#: aleksis/core/models.py:1273
+#, fuzzy
+msgid "Additional button icon"
+msgstr "Zusätzliche Attribute"
+
+#: aleksis/core/models.py:1275
+msgid "Result fetched"
+msgstr ""
+
+#: aleksis/core/models.py:1300
+#, fuzzy
+msgid "Background task completed successfully"
+msgstr "Der iCal-Feed wurde erfolgreich gelöscht"
+
+#: aleksis/core/models.py:1301
+#, fuzzy
+msgid "The background task '{}' has been completed successfully."
+msgstr "Die PDF-Datei wurde erfolgreich generiert."
+
+#: aleksis/core/models.py:1307
+msgid "Background task failed"
+msgstr ""
+
+#: aleksis/core/models.py:1308
+msgid "The background task '{}' has failed."
+msgstr ""
+
+#: aleksis/core/models.py:1317
+msgid "Background task"
+msgstr ""
+
+#: aleksis/core/models.py:1441
+#, fuzzy
+msgid "Can view room timetable"
+msgstr "Kann Avatar-Bild sehen"
+
+#: aleksis/core/models.py:1443
+msgid "Room"
+msgstr ""
+
+#: aleksis/core/models.py:1444
+msgid "Rooms"
+msgstr ""
+
+#: aleksis/core/preferences.py:208
+#, fuzzy
+msgid "Select Design"
+msgstr "Ausgewählte Personen"
+
+#: aleksis/core/preferences.py:211
+msgid "Light mode"
+msgstr ""
+
+#: aleksis/core/templates/core/partials/splash_screen.html:11
+msgid ""
+"\n"
+"      This webbrowser doesn't support JavaScript, or its execution is "
+"blocked. Please use another browser to continue.\n"
+"    "
+msgstr ""
+
+#: aleksis/core/templates/offline.html:10
+msgid "Page not available offline."
+msgstr ""
+
+#: aleksis/core/templates/offline.html:14
+#, fuzzy
+msgid ""
+"\n"
+"      This page is not available offline. Since you probably don't have an "
+"internet connection, check to see if your WiFi\n"
+"      or mobile data is turned on and try again. If you think you are "
+"connected, please contact the system\n"
+"      administrators:\n"
+"    "
+msgstr ""
+"\n"
+"      Es ist ein Fehler beim Aufrufen der Seite aufgetreten. Eventuell haben "
+"Sie keine Internetverbindung. Bitte prüfen Sie, ob WLAN oder mobile Daten "
+"aktiv sind, \n"
+"      und probieren Sie es erneut. Wenn Sie der Meinung sind, dass Sie mit "
+"dem Internet verbunden sind, kontaktieren Sie bitte einen Ihrer \n"
+"      Systemadministratoren:\n"
+"    "
+
 #~ msgid "Me"
 #~ msgstr "Ich"
 
diff --git a/aleksis/core/locale/de_DE/LC_MESSAGES/djangojs.po b/aleksis/core/locale/de_DE/LC_MESSAGES/djangojs.po
index 2298f9b2dd0bb495629e9b9174cdeceb7a7159bc..dd4d47c2a6946e7f14ede5b29ef3d37e5d8c85a4 100644
--- a/aleksis/core/locale/de_DE/LC_MESSAGES/djangojs.po
+++ b/aleksis/core/locale/de_DE/LC_MESSAGES/djangojs.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-25 12:09+0200\n"
+"POT-Creation-Date: 2023-01-22 20:49+0100\n"
 "PO-Revision-Date: 2021-10-28 14:37+0000\n"
 "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
 "Language-Team: German <https://translate.edugit.org/projects/aleksis/aleksis-core-js/de/>\n"
@@ -30,6 +30,5 @@ msgstr "Abbrechen"
 msgid "OK"
 msgstr "OK"
 
-#: aleksis/core/static/js/main.js:195
-msgid "This page may contain outdated information since there is no internet connection."
-msgstr "Diese Seite enthält vielleicht veraltete Informationen, da es keine Internetverbindung gibt."
+#~ msgid "This page may contain outdated information since there is no internet connection."
+#~ msgstr "Diese Seite enthält vielleicht veraltete Informationen, da es keine Internetverbindung gibt."
diff --git a/aleksis/core/locale/fr/LC_MESSAGES/django.po b/aleksis/core/locale/fr/LC_MESSAGES/django.po
index 8bc699a6898347499a588ac071ded207c301d4c3..a37c9697651fb7c32c8af41a4631bce4f84d83b7 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: 2022-06-25 12:09+0200\n"
+"POT-Creation-Date: 2023-01-22 20:49+0100\n"
 "PO-Revision-Date: 2021-06-16 12:00+0000\n"
 "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
 "Language-Team: French <https://translate.edugit.org/projects/aleksis/aleksis/fr/>\n"
@@ -18,38 +18,37 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
 "X-Generator: Weblate 4.4\n"
 
-#: aleksis/core/apps.py:166
+#: aleksis/core/apps.py:155
 msgid "OpenID Connect scope"
 msgstr ""
 
-#: aleksis/core/apps.py:167
+#: aleksis/core/apps.py:156
 msgid "Given name, family name, link to profile and picture if existing."
 msgstr ""
 
-#: aleksis/core/apps.py:168
+#: aleksis/core/apps.py:157
 msgid "Full home postal address"
 msgstr ""
 
-#: aleksis/core/apps.py:169
+#: aleksis/core/apps.py:158
 #, fuzzy
 #| msgid "Contact details"
 msgid "Email address"
 msgstr "Détails de contact"
 
-#: aleksis/core/apps.py:170
+#: aleksis/core/apps.py:159
 msgid "Home and mobile phone"
 msgstr ""
 
-#: aleksis/core/apps.py:171 aleksis/core/forms.py:220 aleksis/core/menus.py:171
+#: aleksis/core/apps.py:160 aleksis/core/forms.py:220
 #: aleksis/core/models.py:494 aleksis/core/templates/core/group/list.html:8
 #: aleksis/core/templates/core/group/list.html:9
-#: aleksis/core/templates/core/person/full.html:246
 #, fuzzy
 #| msgid "Group"
 msgid "Groups"
 msgstr "Groupe"
 
-#: aleksis/core/data_checks.py:59
+#: aleksis/core/data_checks.py:60
 msgid "Ignore problem"
 msgstr ""
 
@@ -58,49 +57,29 @@ msgstr ""
 msgid "Solve option '{solve_option_obj.verbose_name}' "
 msgstr ""
 
-#: aleksis/core/data_checks.py:294
+#: aleksis/core/data_checks.py:284
 msgid "Deactivate DashboardWidget"
 msgstr ""
 
-#: aleksis/core/data_checks.py:306
+#: aleksis/core/data_checks.py:296
 msgid "Ensure that there are no broken DashboardWidgets."
 msgstr ""
 
-#: aleksis/core/data_checks.py:307
+#: aleksis/core/data_checks.py:297
 msgid "The DashboardWidget was reported broken automatically."
 msgstr ""
 
-#: aleksis/core/data_checks.py:330
+#: aleksis/core/data_checks.py:320
 #, python-format
 msgid "Validate field %s of model %s."
 msgstr ""
 
-#: aleksis/core/data_checks.py:332
+#: aleksis/core/data_checks.py:322
 #, python-format
 msgid "The field %s couldn't be validated successfully."
 msgstr ""
 
-#: aleksis/core/feeds.py:52
-msgid "Birthday Calendar"
-msgstr ""
-
-#: aleksis/core/feeds.py:53
-msgid "A Calendar of Birthdays"
-msgstr ""
-
-#: aleksis/core/feeds.py:66
-#, python-format
-msgid "%(name)s's birthday"
-msgstr ""
-
-#: aleksis/core/feeds.py:71
-#, python-format
-msgid "%(name)s was born on %(birthday)s"
-msgstr ""
-
-#: aleksis/core/filters.py:42 aleksis/core/templates/core/base.html:139
-#: aleksis/core/templates/core/base.html:140
-#: aleksis/core/templates/core/group/list.html:20
+#: aleksis/core/filters.py:42 aleksis/core/templates/core/group/list.html:20
 #: aleksis/core/templates/core/person/list.html:24
 #: aleksis/core/templates/search/search.html:7
 #: aleksis/core/templates/search/search.html:22
@@ -180,8 +159,7 @@ msgid "Common data"
 msgstr "Détails de contact"
 
 #: aleksis/core/forms.py:155 aleksis/core/forms.py:207
-#: aleksis/core/menus.py:160 aleksis/core/models.py:164
-#: aleksis/core/templates/core/person/list.html:8
+#: aleksis/core/models.py:164 aleksis/core/templates/core/person/list.html:8
 #: aleksis/core/templates/core/person/list.html:9
 #, fuzzy
 #| msgid "Person"
@@ -274,7 +252,7 @@ msgid "You must select at least one group or person which should get the permiss
 msgstr ""
 
 #: aleksis/core/forms.py:499
-msgid "You must grant the permission to all objects and/or to some objects."
+msgid "You must grant the permission to all objects or to specific objects."
 msgstr ""
 
 #: aleksis/core/forms.py:586
@@ -295,15 +273,15 @@ msgstr ""
 msgid "Password (again)"
 msgstr ""
 
-#: aleksis/core/forms.py:728
+#: aleksis/core/forms.py:761
 msgid "The selected action does not exist."
 msgstr ""
 
-#: aleksis/core/forms.py:739
+#: aleksis/core/forms.py:772
 msgid "You do not have permission to run {} on all selected objects."
 msgstr ""
 
-#: aleksis/core/forms.py:795
+#: aleksis/core/forms.py:828
 msgid "No valid selection."
 msgstr ""
 
@@ -327,164 +305,6 @@ msgstr ""
 msgid "No backup result found!"
 msgstr ""
 
-#: aleksis/core/menus.py:7 aleksis/core/templates/two_factor/core/login.html:6
-#: aleksis/core/templates/two_factor/core/login.html:32
-#: aleksis/core/templates/two_factor/core/login.html:95
-msgid "Login"
-msgstr ""
-
-#: aleksis/core/menus.py:13 aleksis/core/templates/account/signup.html:22
-#: aleksis/core/templates/socialaccount/signup.html:23
-msgid "Sign up"
-msgstr ""
-
-#: aleksis/core/menus.py:22 aleksis/core/templates/invitations/enter.html:7
-msgid "Accept invitation"
-msgstr ""
-
-#: aleksis/core/menus.py:31
-msgid "Dashboard"
-msgstr ""
-
-#: aleksis/core/menus.py:39
-msgid "Admin"
-msgstr ""
-
-#: aleksis/core/menus.py:47 aleksis/core/models.py:872
-#: aleksis/core/templates/core/announcement/list.html:7
-#: aleksis/core/templates/core/announcement/list.html:8
-msgid "Announcements"
-msgstr ""
-
-#: aleksis/core/menus.py:58 aleksis/core/models.py:142
-#: aleksis/core/templates/core/school_term/list.html:8
-#: aleksis/core/templates/core/school_term/list.html:9
-msgid "School terms"
-msgstr ""
-
-#: aleksis/core/menus.py:69
-#: aleksis/core/templates/core/dashboard_widget/list.html:8
-#: aleksis/core/templates/core/dashboard_widget/list.html:9
-msgid "Dashboard widgets"
-msgstr ""
-
-#: aleksis/core/menus.py:80
-#: aleksis/core/templates/core/management/data_management.html:6
-#: aleksis/core/templates/core/management/data_management.html:7
-msgid "Data management"
-msgstr ""
-
-#: aleksis/core/menus.py:91
-#: aleksis/core/templates/core/pages/system_status.html:5
-#: aleksis/core/templates/core/pages/system_status.html:7
-msgid "System status"
-msgstr ""
-
-#: aleksis/core/menus.py:102
-msgid "Configuration"
-msgstr ""
-
-#: aleksis/core/menus.py:113 aleksis/core/templates/core/data_check/list.html:9
-#: aleksis/core/templates/core/data_check/list.html:10
-msgid "Data checks"
-msgstr ""
-
-#: aleksis/core/menus.py:119 aleksis/core/templates/core/perms/list.html:13
-#: aleksis/core/templates/core/perms/list.html:14
-msgid "Manage permissions"
-msgstr ""
-
-#: aleksis/core/menus.py:130
-msgid "Backend Admin"
-msgstr ""
-
-#: aleksis/core/menus.py:138
-#: aleksis/core/templates/oauth2_provider/application/list.html:5
-#: aleksis/core/templates/oauth2_provider/application/list.html:6
-msgid "OAuth2 Applications"
-msgstr ""
-
-#: aleksis/core/menus.py:151
-msgid "People"
-msgstr ""
-
-#: aleksis/core/menus.py:182 aleksis/core/models.py:1111
-#: aleksis/core/templates/core/group_type/list.html:8
-#: aleksis/core/templates/core/group_type/list.html:9
-#, fuzzy
-#| msgid "Group"
-msgid "Group types"
-msgstr "Groupe"
-
-#: aleksis/core/menus.py:193
-msgid "Groups and child groups"
-msgstr ""
-
-#: aleksis/core/menus.py:204 aleksis/core/models.py:542
-#: aleksis/core/templates/core/additional_field/list.html:8
-#: aleksis/core/templates/core/additional_field/list.html:9
-msgid "Additional fields"
-msgstr ""
-
-#: aleksis/core/menus.py:215
-#, fuzzy
-#| msgid "Contact details"
-msgid "Invite person"
-msgstr "Détails de contact"
-
-#: aleksis/core/menus.py:228
-#: aleksis/core/templates/core/group/child_groups.html:7
-#: aleksis/core/templates/core/group/child_groups.html:9
-msgid "Assign child groups to groups"
-msgstr ""
-
-#: aleksis/core/menus.py:240
-msgid "Stop impersonation"
-msgstr ""
-
-#: aleksis/core/menus.py:249
-msgid "Account"
-msgstr ""
-
-#: aleksis/core/menus.py:258
-#: aleksis/core/templates/dynamic_preferences/form.html:5
-msgid "Preferences"
-msgstr ""
-
-#: aleksis/core/menus.py:267
-msgid "2FA"
-msgstr ""
-
-#: aleksis/core/menus.py:275
-#: aleksis/core/templates/account/password_change.html:5
-#: aleksis/core/templates/account/password_change.html:6
-#: aleksis/core/templates/account/password_change.html:19
-#: aleksis/core/templates/account/password_reset_from_key.html:5
-#: aleksis/core/templates/account/password_reset_from_key.html:42
-#: aleksis/core/templates/account/password_reset_from_key.html:46
-#: aleksis/core/templates/account/password_reset_from_key_done.html:5
-#: aleksis/core/templates/account/password_reset_from_key_done.html:6
-msgid "Change password"
-msgstr ""
-
-#: aleksis/core/menus.py:287
-msgid "Third-party accounts"
-msgstr ""
-
-#: aleksis/core/menus.py:296
-#: 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:305
-msgid "Calendar Feeds"
-msgstr ""
-
-#: aleksis/core/menus.py:318
-msgid "Logout"
-msgstr ""
-
 #: aleksis/core/mixins.py:511
 msgid "Linked school term"
 msgstr ""
@@ -530,7 +350,6 @@ msgid "URL / Link"
 msgstr ""
 
 #: aleksis/core/models.py:105 aleksis/core/models.py:1077
-#: aleksis/core/models.py:1384
 msgid "Name"
 msgstr ""
 
@@ -552,8 +371,13 @@ msgstr ""
 msgid "There is already a school term for this time or a part of this time."
 msgstr ""
 
-#: aleksis/core/models.py:163 aleksis/core/models.py:1024
-#: aleksis/core/models.py:1381
+#: aleksis/core/models.py:142
+#: aleksis/core/templates/core/school_term/list.html:8
+#: aleksis/core/templates/core/school_term/list.html:9
+msgid "School terms"
+msgstr ""
+
+#: aleksis/core/models.py:163 aleksis/core/models.py:1026
 msgid "Person"
 msgstr "Personne"
 
@@ -605,7 +429,7 @@ msgstr ""
 msgid "other"
 msgstr ""
 
-#: aleksis/core/models.py:189 aleksis/core/models.py:1283
+#: aleksis/core/models.py:189 aleksis/core/models.py:1345
 msgid "Linked user"
 msgstr ""
 
@@ -614,6 +438,7 @@ msgid "Additional name(s)"
 msgstr ""
 
 #: aleksis/core/models.py:199 aleksis/core/models.py:511
+#: aleksis/core/models.py:1431
 #, fuzzy
 #| msgid "First name"
 msgid "Short name"
@@ -635,11 +460,11 @@ msgstr ""
 msgid "Place"
 msgstr ""
 
-#: aleksis/core/models.py:207 aleksis/core/templates/core/person/full.html:160
+#: aleksis/core/models.py:207
 msgid "Home phone"
 msgstr ""
 
-#: aleksis/core/models.py:208 aleksis/core/templates/core/person/full.html:170
+#: aleksis/core/models.py:208
 msgid "Mobile phone"
 msgstr ""
 
@@ -669,7 +494,7 @@ msgstr ""
 msgid "This is a picture or an avatar for public display."
 msgstr ""
 
-#: aleksis/core/models.py:234 aleksis/core/templates/core/person/full.html:235
+#: aleksis/core/models.py:234
 msgid "Guardians / Parents"
 msgstr ""
 
@@ -678,7 +503,7 @@ msgid "Primary group"
 msgstr ""
 
 #: aleksis/core/models.py:244 aleksis/core/models.py:724
-#: aleksis/core/models.py:748 aleksis/core/models.py:839
+#: aleksis/core/models.py:748 aleksis/core/models.py:843
 #: aleksis/core/models.py:1104
 msgid "Description"
 msgstr "Description"
@@ -719,7 +544,7 @@ msgstr ""
 msgid "Can view statistics about group."
 msgstr "Détails de contact"
 
-#: aleksis/core/models.py:509
+#: aleksis/core/models.py:509 aleksis/core/models.py:1432
 #, fuzzy
 #| msgid "Last name"
 msgid "Long name"
@@ -741,8 +566,14 @@ msgstr ""
 msgid "Type of group"
 msgstr ""
 
+#: aleksis/core/models.py:542
+#: aleksis/core/templates/core/additional_field/list.html:8
+#: aleksis/core/templates/core/additional_field/list.html:9
+msgid "Additional fields"
+msgstr ""
+
 #: aleksis/core/models.py:723 aleksis/core/models.py:747
-#: aleksis/core/models.py:838
+#: aleksis/core/models.py:842 aleksis/core/models.py:1262
 #: aleksis/core/templates/core/announcement/list.html:18
 msgid "Title"
 msgstr ""
@@ -771,166 +602,175 @@ msgstr ""
 msgid "Link"
 msgstr ""
 
-#: aleksis/core/models.py:751
+#: aleksis/core/models.py:752 aleksis/core/models.py:1079
+#: aleksis/core/models.py:1392
+#: aleksis/core/templates/oauth2_provider/application/detail.html:26
+msgid "Icon"
+msgstr ""
+
+#: aleksis/core/models.py:755
 msgid "Send notification at"
 msgstr ""
 
-#: aleksis/core/models.py:753
+#: aleksis/core/models.py:757
 msgid "Read"
 msgstr ""
 
-#: aleksis/core/models.py:754
+#: aleksis/core/models.py:758
 msgid "Sent"
 msgstr ""
 
-#: aleksis/core/models.py:771
+#: aleksis/core/models.py:775
 msgid "Notification"
 msgstr ""
 
-#: aleksis/core/models.py:772 aleksis/core/preferences.py:29
-#: aleksis/core/templates/core/base.html:81
-#: aleksis/core/templates/core/notifications.html:4
-#: aleksis/core/templates/core/notifications.html:5
+#: aleksis/core/models.py:776 aleksis/core/preferences.py:29
 msgid "Notifications"
 msgstr ""
 
-#: aleksis/core/models.py:840
+#: aleksis/core/models.py:844
 msgid "Link to detailed view"
 msgstr ""
 
-#: aleksis/core/models.py:843
+#: aleksis/core/models.py:847
 msgid "Date and time from when to show"
 msgstr ""
 
-#: aleksis/core/models.py:846
+#: aleksis/core/models.py:850
 msgid "Date and time until when to show"
 msgstr ""
 
-#: aleksis/core/models.py:871
+#: aleksis/core/models.py:875
 msgid "Announcement"
 msgstr ""
 
-#: aleksis/core/models.py:909
+#: aleksis/core/models.py:876
+#: aleksis/core/templates/core/announcement/list.html:7
+#: aleksis/core/templates/core/announcement/list.html:8
+msgid "Announcements"
+msgstr ""
+
+#: aleksis/core/models.py:913
 msgid "Announcement recipient"
 msgstr ""
 
-#: aleksis/core/models.py:910
+#: aleksis/core/models.py:914
 msgid "Announcement recipients"
 msgstr ""
 
-#: aleksis/core/models.py:932
+#: aleksis/core/models.py:934
 msgid "Widget Title"
 msgstr ""
 
-#: aleksis/core/models.py:933
+#: aleksis/core/models.py:935
 msgid "Activate Widget"
 msgstr ""
 
-#: aleksis/core/models.py:934
+#: aleksis/core/models.py:936
 msgid "Widget is broken"
 msgstr ""
 
-#: aleksis/core/models.py:937
+#: aleksis/core/models.py:939
 msgid "Size on mobile devices"
 msgstr ""
 
-#: aleksis/core/models.py:938
+#: aleksis/core/models.py:940
 msgid "<= 600 px, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:943
+#: aleksis/core/models.py:945
 msgid "Size on tablet devices"
 msgstr ""
 
-#: aleksis/core/models.py:944
+#: aleksis/core/models.py:946
 msgid "> 600 px, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:949
+#: aleksis/core/models.py:951
 msgid "Size on desktop devices"
 msgstr ""
 
-#: aleksis/core/models.py:950
+#: aleksis/core/models.py:952
 msgid "> 992 px, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:955
+#: aleksis/core/models.py:957
 msgid "Size on large desktop devices"
 msgstr ""
 
-#: aleksis/core/models.py:956
+#: aleksis/core/models.py:958
 msgid "> 1200 px>, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:987
+#: aleksis/core/models.py:989
 msgid "Can edit default dashboard"
 msgstr ""
 
-#: aleksis/core/models.py:988
+#: aleksis/core/models.py:990
 msgid "Dashboard Widget"
 msgstr ""
 
-#: aleksis/core/models.py:989
+#: aleksis/core/models.py:991
 msgid "Dashboard Widgets"
 msgstr ""
 
-#: aleksis/core/models.py:995
+#: aleksis/core/models.py:997
 msgid "URL"
 msgstr ""
 
-#: aleksis/core/models.py:996
+#: aleksis/core/models.py:998
 msgid "Icon URL"
 msgstr ""
 
-#: aleksis/core/models.py:1002
+#: aleksis/core/models.py:1004
 msgid "External link widget"
 msgstr ""
 
-#: aleksis/core/models.py:1003
+#: aleksis/core/models.py:1005
 msgid "External link widgets"
 msgstr ""
 
-#: aleksis/core/models.py:1009
+#: aleksis/core/models.py:1011
 msgid "Content"
 msgstr ""
 
-#: aleksis/core/models.py:1015
+#: aleksis/core/models.py:1017
 msgid "Static content widget"
 msgstr ""
 
-#: aleksis/core/models.py:1016
+#: aleksis/core/models.py:1018
 msgid "Static content widgets"
 msgstr ""
 
-#: aleksis/core/models.py:1021
+#: aleksis/core/models.py:1023
 msgid "Dashboard widget"
 msgstr ""
 
-#: aleksis/core/models.py:1026
+#: aleksis/core/models.py:1028
 msgid "Order"
 msgstr ""
 
-#: aleksis/core/models.py:1027
+#: aleksis/core/models.py:1029
 msgid "Part of the default dashboard"
 msgstr ""
 
-#: aleksis/core/models.py:1042
+#: aleksis/core/models.py:1044
 msgid "Dashboard widget order"
 msgstr ""
 
-#: aleksis/core/models.py:1043
+#: aleksis/core/models.py:1045
 msgid "Dashboard widget orders"
 msgstr ""
 
-#: aleksis/core/models.py:1049
+#: aleksis/core/models.py:1051
 msgid "Menu ID"
 msgstr ""
 
-#: aleksis/core/models.py:1062
+#: aleksis/core/models.py:1064
 msgid "Custom menu"
 msgstr ""
 
-#: aleksis/core/models.py:1063
+#: aleksis/core/models.py:1065
 msgid "Custom menus"
 msgstr ""
 
@@ -938,11 +778,6 @@ msgstr ""
 msgid "Menu"
 msgstr ""
 
-#: aleksis/core/models.py:1079 aleksis/core/models.py:1330
-#: aleksis/core/templates/oauth2_provider/application/detail.html:26
-msgid "Icon"
-msgstr ""
-
 #: aleksis/core/models.py:1085
 msgid "Custom menu item"
 msgstr ""
@@ -961,6 +796,14 @@ msgstr ""
 msgid "Group type"
 msgstr "Groupe"
 
+#: aleksis/core/models.py:1111
+#: aleksis/core/templates/core/group_type/list.html:8
+#: aleksis/core/templates/core/group_type/list.html:9
+#, fuzzy
+#| msgid "Group"
+msgid "Group types"
+msgstr "Groupe"
+
 #: aleksis/core/models.py:1124
 #, fuzzy
 #| msgid "Contact details"
@@ -1047,66 +890,126 @@ msgstr "Propriétaires"
 msgid "File expires at"
 msgstr ""
 
-#: aleksis/core/models.py:1239
+#: aleksis/core/models.py:1240
 msgid "Generated HTML file"
 msgstr ""
 
-#: aleksis/core/models.py:1241
+#: aleksis/core/models.py:1243
 msgid "Generated PDF file"
 msgstr ""
 
-#: aleksis/core/models.py:1248
+#: aleksis/core/models.py:1250
 msgid "PDF file"
 msgstr ""
 
-#: aleksis/core/models.py:1249
+#: aleksis/core/models.py:1251
 msgid "PDF files"
 msgstr ""
 
-#: aleksis/core/models.py:1254
+#: aleksis/core/models.py:1256
 msgid "Task result"
 msgstr ""
 
-#: aleksis/core/models.py:1257
+#: aleksis/core/models.py:1259
 msgid "Task user"
 msgstr ""
 
+#: aleksis/core/models.py:1263
+msgid "Back URL"
+msgstr ""
+
+#: aleksis/core/models.py:1264
+msgid "Progress title"
+msgstr ""
+
+#: aleksis/core/models.py:1265
+msgid "Error message"
+msgstr ""
+
+#: aleksis/core/models.py:1266
+msgid "Success message"
+msgstr ""
+
+#: aleksis/core/models.py:1267
+msgid "Redirect on success URL"
+msgstr ""
+
 #: aleksis/core/models.py:1269
+#, fuzzy
+#| msgid "Contact details"
+msgid "Additional button title"
+msgstr "Détails de contact"
+
+#: aleksis/core/models.py:1271
+#, fuzzy
+#| msgid "Contact details"
+msgid "Additional button URL"
+msgstr "Détails de contact"
+
+#: aleksis/core/models.py:1273
+#, fuzzy
+#| msgid "Contact details"
+msgid "Additional button icon"
+msgstr "Détails de contact"
+
+#: aleksis/core/models.py:1275
+msgid "Result fetched"
+msgstr ""
+
+#: aleksis/core/models.py:1300
+msgid "Background task completed successfully"
+msgstr ""
+
+#: aleksis/core/models.py:1301
+msgid "The background task '{}' has been completed successfully."
+msgstr ""
+
+#: aleksis/core/models.py:1307
+msgid "Background task failed"
+msgstr ""
+
+#: aleksis/core/models.py:1308
+msgid "The background task '{}' has failed."
+msgstr ""
+
+#: aleksis/core/models.py:1317
+msgid "Background task"
+msgstr ""
+
+#: aleksis/core/models.py:1331
 msgid "Task user assignment"
 msgstr ""
 
-#: aleksis/core/models.py:1270
+#: aleksis/core/models.py:1332
 msgid "Task user assignments"
 msgstr ""
 
-#: aleksis/core/models.py:1286
+#: aleksis/core/models.py:1348
 #, fuzzy
 #| msgid "Contact details"
 msgid "Additional attributes"
 msgstr "Détails de contact"
 
-#: aleksis/core/models.py:1324
+#: aleksis/core/models.py:1386
 msgid "Allowed scopes that clients can request"
 msgstr ""
 
-#: aleksis/core/models.py:1334
+#: aleksis/core/models.py:1396
 msgid "This image will be shown as icon in the authorization flow. It should be squared."
 msgstr ""
 
-#: aleksis/core/models.py:1383
-msgid "UUID"
-msgstr ""
-
-#: aleksis/core/models.py:1387
-msgid "Selected ICal feed"
-msgstr ""
+#: aleksis/core/models.py:1441
+#, fuzzy
+#| msgid "Contact details"
+msgid "Can view room timetable"
+msgstr "Détails de contact"
 
-#: aleksis/core/models.py:1396
-msgid "Personal Calendar URL"
+#: aleksis/core/models.py:1443
+msgid "Room"
 msgstr ""
 
-#: aleksis/core/models.py:1397
-msgid "Personal Calendar URLs"
+#: aleksis/core/models.py:1444
+msgid "Rooms"
 msgstr ""
 
 #: aleksis/core/preferences.py:25
@@ -1203,137 +1106,145 @@ msgstr ""
 msgid "Channels to use for notifications"
 msgstr ""
 
-#: aleksis/core/preferences.py:209
+#: aleksis/core/preferences.py:208
+#, fuzzy
+#| msgid "Contact details"
+msgid "Select Design"
+msgstr "Détails de contact"
+
+#: aleksis/core/preferences.py:211
+msgid "Light mode"
+msgstr ""
+
+#: aleksis/core/preferences.py:224
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr ""
 
-#: aleksis/core/preferences.py:220
+#: aleksis/core/preferences.py:235
 msgid "Field on person to match primary group against"
 msgstr ""
 
-#: aleksis/core/preferences.py:232
+#: aleksis/core/preferences.py:247
 msgid "Automatically create new persons for new users"
 msgstr ""
 
-#: aleksis/core/preferences.py:241
+#: aleksis/core/preferences.py:256
 msgid "Automatically link existing persons to new users by their e-mail address"
 msgstr ""
 
-#: aleksis/core/preferences.py:252
+#: aleksis/core/preferences.py:267
 msgid "Display name of the school"
 msgstr ""
 
-#: aleksis/core/preferences.py:263
+#: aleksis/core/preferences.py:278
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr ""
 
-#: aleksis/core/preferences.py:271
+#: aleksis/core/preferences.py:286
 msgid "Allow users to change their passwords"
 msgstr ""
 
-#: aleksis/core/preferences.py:279
+#: aleksis/core/preferences.py:294
 msgid "Allow users to reset their passwords"
 msgstr ""
 
-#: aleksis/core/preferences.py:287
+#: aleksis/core/preferences.py:302
 msgid "Enable signup"
 msgstr ""
 
-#: aleksis/core/preferences.py:295
+#: aleksis/core/preferences.py:310
 msgid "Regular expression for allowed usernames"
 msgstr ""
 
-#: aleksis/core/preferences.py:303
+#: aleksis/core/preferences.py:318
 msgid "Enable invitations"
 msgstr ""
 
-#: aleksis/core/preferences.py:311
+#: aleksis/core/preferences.py:326
 msgid "Length of invite code. (Default 3: abcde-acbde-abcde)"
 msgstr ""
 
-#: aleksis/core/preferences.py:319
+#: aleksis/core/preferences.py:334
 msgid "Size of packets. (Default 5: abcde)"
 msgstr ""
 
-#: aleksis/core/preferences.py:330
+#: aleksis/core/preferences.py:345
 #, fuzzy
 #| msgid "Contact details"
 msgid "Allowed Grant Flows for OAuth applications"
 msgstr "Détails de contact"
 
-#: aleksis/core/preferences.py:343
+#: aleksis/core/preferences.py:358
 msgid "Send emails if data checks detect problems"
 msgstr ""
 
-#: aleksis/core/preferences.py:354
+#: aleksis/core/preferences.py:369
 msgid "Email recipients for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:365
+#: aleksis/core/preferences.py:380
 msgid "Email recipient groups for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:374
+#: aleksis/core/preferences.py:389
 msgid "Show dashboard to users without login"
 msgstr ""
 
-#: aleksis/core/preferences.py:383
+#: aleksis/core/preferences.py:398
 msgid "Allow users to edit their dashboard"
 msgstr ""
 
-#: aleksis/core/preferences.py:394
+#: aleksis/core/preferences.py:409
 msgid "Fields on person model which are editable by themselves."
 msgstr ""
 
-#: aleksis/core/preferences.py:409
+#: aleksis/core/preferences.py:424
 msgid "Editable fields on person model which should trigger a notification on change"
 msgstr ""
 
-#: aleksis/core/preferences.py:423
+#: aleksis/core/preferences.py:438
 msgid "Contact for notification if a person changes their data"
 msgstr ""
 
-#: aleksis/core/preferences.py:434
+#: aleksis/core/preferences.py:449
 msgid "Prefer personal photos over avatars"
 msgstr ""
 
-#: aleksis/core/preferences.py:444
+#: aleksis/core/preferences.py:459
 msgid "PDF file expiration duration"
 msgstr ""
 
-#: aleksis/core/preferences.py:445
+#: aleksis/core/preferences.py:460
 msgid "in minutes"
 msgstr ""
 
-#: aleksis/core/preferences.py:455
+#: aleksis/core/preferences.py:470
 msgid "Automatically update the dashboard and its widgets"
 msgstr ""
 
-#: aleksis/core/preferences.py:465
+#: aleksis/core/preferences.py:480
 msgid "Automatically update the dashboard and its widgets sitewide"
 msgstr ""
 
-#: aleksis/core/preferences.py:475
+#: aleksis/core/preferences.py:490
 msgid "Country for phone number parsing"
 msgstr ""
 
-#: aleksis/core/settings.py:541
+#: aleksis/core/settings.py:539
 msgid "English"
 msgstr ""
 
-#: aleksis/core/settings.py:542
+#: aleksis/core/settings.py:540
 msgid "German"
 msgstr ""
 
-#: aleksis/core/settings.py:543
+#: aleksis/core/settings.py:541
 msgid "Ukrainian"
 msgstr ""
 
 #: aleksis/core/tables.py:25
 #: aleksis/core/templates/core/announcement/list.html:36
 #: aleksis/core/templates/core/group/full.html:26
-#: aleksis/core/templates/core/person/full.html:26
-#: aleksis/core/templates/core/person/full.html:86
 #: aleksis/core/templates/oauth2_provider/application/detail.html:17
 msgid "Edit"
 msgstr ""
@@ -1350,15 +1261,12 @@ msgstr ""
 #: aleksis/core/templates/core/announcement/list.html:42
 #: aleksis/core/templates/core/group/full.html:33
 #: aleksis/core/templates/core/pages/delete.html:22
-#: aleksis/core/templates/core/person/full.html:33
-#: aleksis/core/templates/core/person/full.html:93
 #: aleksis/core/templates/oauth2_provider/application/detail.html:21
 msgid "Delete"
 msgstr ""
 
 #: aleksis/core/templates/403.html:14 aleksis/core/templates/500.html:10
 #: aleksis/core/templates/oauth2_provider/authorize.html:54
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:24
 msgid "Error"
 msgstr ""
 
@@ -1457,6 +1365,17 @@ msgstr ""
 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 ""
 
+#: aleksis/core/templates/account/password_change.html:5
+#: aleksis/core/templates/account/password_change.html:6
+#: aleksis/core/templates/account/password_change.html:19
+#: aleksis/core/templates/account/password_reset_from_key.html:5
+#: aleksis/core/templates/account/password_reset_from_key.html:42
+#: aleksis/core/templates/account/password_reset_from_key.html:46
+#: aleksis/core/templates/account/password_reset_from_key_done.html:5
+#: aleksis/core/templates/account/password_reset_from_key_done.html:6
+msgid "Change password"
+msgstr ""
+
 #: aleksis/core/templates/account/password_change.html:12
 msgid "Forgot your current password? Click here to reset it:"
 msgstr ""
@@ -1570,6 +1489,11 @@ msgstr ""
 msgid "Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>."
 msgstr ""
 
+#: aleksis/core/templates/account/signup.html:22
+#: aleksis/core/templates/socialaccount/signup.html:23
+msgid "Sign up"
+msgstr ""
+
 #: aleksis/core/templates/account/signup_closed.html:5
 #: aleksis/core/templates/account/signup_closed.html:6
 msgid "Signup closed"
@@ -1660,18 +1584,6 @@ msgstr ""
 msgid "There are no announcements."
 msgstr ""
 
-#: aleksis/core/templates/core/base.html:213
-msgid "About AlekSIS® — The Free School Information System"
-msgstr ""
-
-#: aleksis/core/templates/core/base.html:221
-msgid "Imprint"
-msgstr ""
-
-#: aleksis/core/templates/core/base.html:229
-msgid "Privacy Policy"
-msgstr ""
-
 #: aleksis/core/templates/core/base_print.html:74
 msgid "Powered by AlekSIS®"
 msgstr ""
@@ -1702,6 +1614,11 @@ msgstr ""
 msgid "Edit %(widget)s"
 msgstr ""
 
+#: aleksis/core/templates/core/dashboard_widget/list.html:8
+#: aleksis/core/templates/core/dashboard_widget/list.html:9
+msgid "Dashboard widgets"
+msgstr ""
+
 #: aleksis/core/templates/core/dashboard_widget/list.html:15
 #, fuzzy
 #| msgid "Contact details"
@@ -1720,6 +1637,11 @@ msgstr "Détails de contact"
 msgid "Edit default dashboard"
 msgstr ""
 
+#: aleksis/core/templates/core/data_check/list.html:9
+#: aleksis/core/templates/core/data_check/list.html:10
+msgid "Data checks"
+msgstr ""
+
 #: aleksis/core/templates/core/data_check/list.html:15
 msgid "Check data again"
 msgstr ""
@@ -1815,6 +1737,11 @@ msgstr ""
 msgid "Default dashboard"
 msgstr ""
 
+#: aleksis/core/templates/core/group/child_groups.html:7
+#: aleksis/core/templates/core/group/child_groups.html:9
+msgid "Assign child groups to groups"
+msgstr ""
+
 #: aleksis/core/templates/core/group/child_groups.html:18
 msgid ""
 "\n"
@@ -1894,8 +1821,6 @@ msgid "Edit group"
 msgstr ""
 
 #: aleksis/core/templates/core/group/full.html:40
-#: aleksis/core/templates/core/person/full.html:40
-#: aleksis/core/templates/core/person/full.html:100
 msgid "Change preferences"
 msgstr ""
 
@@ -1953,45 +1878,11 @@ msgstr "Groupe"
 msgid "Create group type"
 msgstr "Groupe"
 
-#: aleksis/core/templates/core/ical/ical_create.html:4
-#: aleksis/core/templates/core/ical/ical_create.html:5
-#: aleksis/core/templates/core/ical/ical_list.html:12
-msgid "Create iCal URL"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_create.html:16
-#: aleksis/core/templates/core/ical/ical_edit.html:16
-#: aleksis/core/templates/oauth2_provider/application/create.html:14
-#: aleksis/core/templates/oauth2_provider/application/edit.html:14
-#: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:24
-#: aleksis/core/templates/two_factor/_wizard_actions.html:6
-msgid "Cancel"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_edit.html:4
-#: aleksis/core/templates/core/ical/ical_edit.html:5
-#, python-format
-msgid "Edit iCal URL %(object)s"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_list.html:4
-#: aleksis/core/templates/core/ical/ical_list.html:5
-msgid "iCal Feeds"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_list.html:8
-msgid "These are URLs for different Calendar Feeds in the iCal (.ics) format. You can create as many as you want and import them in your calendar software."
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_list.html:14
-msgid "Your iCal URLs"
-msgstr ""
-
 #: aleksis/core/templates/core/index.html:4
 msgid "Home"
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:49
+#: aleksis/core/templates/core/index.html:34
 msgid ""
 "\n"
 "        You didn't customise your dashboard so that you see the system default. Please click on \"Edit dashboard\" to\n"
@@ -1999,101 +1890,14 @@ msgid ""
 "      "
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:59
+#: aleksis/core/templates/core/index.html:44
 msgid "Last activities"
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:77
+#: aleksis/core/templates/core/index.html:62
 msgid "No activities available yet."
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:82
-msgid "Recent notifications"
-msgstr ""
-
-#: aleksis/core/templates/core/index.html:98
-#: aleksis/core/templates/core/notifications.html:23
-msgid "More information →"
-msgstr ""
-
-#: aleksis/core/templates/core/index.html:105
-#: aleksis/core/templates/core/notifications.html:30
-msgid "No notifications available yet."
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:6
-msgid "About AlekSIS®"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:7
-msgid "AlekSIS® – The Free School Information System"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:15
-msgid "About AlekSIS"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:17
-msgid ""
-"\n"
-"              This platform is powered by AlekSIS®, a web-based school information system (SIS) which can be used\n"
-"              to manage and/or publish organisational artifacts of educational institutions. AlekSIS is free software and\n"
-"              can be used by anyone.\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:24
-msgid ""
-"\n"
-"              AlekSIS® is a registered trademark of the AlekSIS open source project, represented by Teckids e.V.\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:30
-msgid "Website of AlekSIS"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:31
-msgid "Source code"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:40
-msgid "Licence information"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:42
-msgid ""
-"\n"
-"              The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence\n"
-"              information from third-party apps, if installed, refer to the respective components below. The\n"
-"              licences are marked like this:\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:50
-msgid "Free/Open Source Licence"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:51
-msgid "Other Licence"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:55
-msgid "Full licence text"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:56
-msgid "More information about the EUPL"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:95
-#, python-format
-msgid ""
-"\n"
-"                    This app is licenced under %(licence)s.\n"
-"                  "
-msgstr ""
-
 #: aleksis/core/templates/core/pages/delete.html:6
 #, python-format
 msgid "Delete %(object_name)s"
@@ -2107,16 +1911,9 @@ msgid ""
 "    "
 msgstr ""
 
-#: aleksis/core/templates/core/pages/progress.html:27
-msgid ""
-"\n"
-"              Without activated JavaScript the progress status can't be updated.\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/progress.html:47
-#: aleksis/core/templates/two_factor/core/otp_required.html:19
-msgid "Go back"
+#: aleksis/core/templates/core/pages/system_status.html:5
+#: aleksis/core/templates/core/pages/system_status.html:7
+msgid "System status"
 msgstr ""
 
 #: aleksis/core/templates/core/pages/system_status.html:12
@@ -2244,13 +2041,11 @@ msgstr ""
 
 #: aleksis/core/templates/core/partials/avatar_content.html:14
 #: aleksis/core/templates/core/partials/avatar_content.html:15
-#: aleksis/core/templates/core/person/full.html:213
-#: aleksis/core/templates/core/person/full.html:214
 msgid "Avatar"
 msgstr ""
 
+#: aleksis/core/templates/core/partials/avatar_content.html:18
 #: aleksis/core/templates/core/partials/avatar_content.html:19
-#: aleksis/core/templates/core/partials/avatar_content.html:20
 msgid "Identicon"
 msgstr ""
 
@@ -2262,29 +2057,11 @@ msgstr ""
 msgid "Unknown"
 msgstr ""
 
-#: aleksis/core/templates/core/partials/language_form.html:17
-msgid "Language"
-msgstr ""
-
-#: aleksis/core/templates/core/partials/language_form.html:29
-msgid "Select language"
-msgstr ""
-
-#: aleksis/core/templates/core/partials/no_person.html:12
+#: aleksis/core/templates/core/partials/splash_screen.html:11
 msgid ""
 "\n"
-"            Your administrator account is not linked to any person. Therefore,\n"
-"            a dummy person has been linked to your account.\n"
-"          "
-msgstr ""
-
-#: aleksis/core/templates/core/partials/no_person.html:19
-msgid ""
-"\n"
-"            Your user account is not linked to a person. This means you\n"
-"            cannot access any school-related information. Please contact\n"
-"            the managers of AlekSIS at your school.\n"
-"          "
+"      This webbrowser doesn't support JavaScript, or its execution is blocked. Please use another browser to continue.\n"
+"    "
 msgstr ""
 
 #: aleksis/core/templates/core/perms/assign.html:12
@@ -2302,6 +2079,11 @@ msgstr "Détails de contact"
 msgid "Assign"
 msgstr ""
 
+#: aleksis/core/templates/core/perms/list.html:13
+#: aleksis/core/templates/core/perms/list.html:14
+msgid "Manage permissions"
+msgstr ""
+
 #: aleksis/core/templates/core/perms/list.html:21
 msgid "Assign a new permission"
 msgstr ""
@@ -2347,30 +2129,6 @@ msgstr "Détails de contact"
 msgid "Edit person"
 msgstr ""
 
-#: aleksis/core/templates/core/person/full.html:47
-#: aleksis/core/templates/core/person/full.html:107
-#, fuzzy
-#| msgid "Contact details"
-msgid "Impersonate"
-msgstr "Détails de contact"
-
-#: aleksis/core/templates/core/person/full.html:54
-#: aleksis/core/templates/core/person/full.html:114
-msgid "Invite user"
-msgstr ""
-
-#: aleksis/core/templates/core/person/full.html:121
-msgid "Contact details"
-msgstr "Détails de contact"
-
-#: aleksis/core/templates/core/person/full.html:220
-msgid "This person didn't upload a personal photo."
-msgstr ""
-
-#: aleksis/core/templates/core/person/full.html:228
-msgid "Children"
-msgstr ""
-
 #: aleksis/core/templates/core/person/list.html:21
 msgid "Filter persons"
 msgstr ""
@@ -2390,6 +2148,10 @@ msgstr ""
 msgid "Edit school term"
 msgstr ""
 
+#: aleksis/core/templates/dynamic_preferences/form.html:5
+msgid "Preferences"
+msgstr ""
+
 #: aleksis/core/templates/dynamic_preferences/form.html:9
 msgid "Site preferences"
 msgstr ""
@@ -2423,6 +2185,10 @@ msgstr ""
 msgid "site preferences page"
 msgstr ""
 
+#: aleksis/core/templates/invitations/enter.html:7
+msgid "Accept invitation"
+msgstr ""
+
 #: aleksis/core/templates/invitations/enter.html:21
 msgid "Accept your invitation"
 msgstr ""
@@ -2475,6 +2241,13 @@ msgstr ""
 msgid "Register OAuth2 Application"
 msgstr "Détails de contact"
 
+#: aleksis/core/templates/oauth2_provider/application/create.html:14
+#: aleksis/core/templates/oauth2_provider/application/edit.html:14
+#: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:24
+#: aleksis/core/templates/two_factor/_wizard_actions.html:6
+msgid "Cancel"
+msgstr ""
+
 #: aleksis/core/templates/oauth2_provider/application/detail.html:5
 #, fuzzy
 #| msgid "Contact details"
@@ -2512,6 +2285,11 @@ msgstr ""
 msgid "Edit OAuth2 Application"
 msgstr "Détails de contact"
 
+#: aleksis/core/templates/oauth2_provider/application/list.html:5
+#: aleksis/core/templates/oauth2_provider/application/list.html:6
+msgid "OAuth2 Applications"
+msgstr ""
+
 #: aleksis/core/templates/oauth2_provider/application/list.html:11
 msgid "Register new application"
 msgstr ""
@@ -2544,14 +2322,6 @@ msgstr ""
 msgid "Disallow"
 msgstr ""
 
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:12
-msgid "Success!"
-msgstr ""
-
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:14
-msgid "Please return to your application and enter this code:"
-msgstr ""
-
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:5
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:6
 #: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
@@ -2566,6 +2336,11 @@ msgstr ""
 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
 #, fuzzy
 #| msgid "Contact details"
@@ -2577,13 +2352,13 @@ msgid "Network error"
 msgstr ""
 
 #: aleksis/core/templates/offline.html:10
-msgid "No internet connection."
+msgid "Page not available offline."
 msgstr ""
 
 #: aleksis/core/templates/offline.html:14
 msgid ""
 "\n"
-"      There was an error accessing this page. You probably don't have an internet connection. Check to see if your WiFi\n"
+"      This page is not available offline. Since you probably don't have an internet connection, check to see if your WiFi\n"
 "      or mobile data is turned on and try again. If you think you are connected, please contact the system\n"
 "      administrators:\n"
 "    "
@@ -2870,6 +2645,12 @@ msgstr ""
 msgid "Generate Tokens"
 msgstr ""
 
+#: aleksis/core/templates/two_factor/core/login.html:6
+#: aleksis/core/templates/two_factor/core/login.html:32
+#: aleksis/core/templates/two_factor/core/login.html:95
+msgid "Login"
+msgstr ""
+
 #: aleksis/core/templates/two_factor/core/login.html:27
 #, fuzzy, python-format
 #| msgid "Contact details"
@@ -2965,6 +2746,10 @@ msgid ""
 "          security."
 msgstr ""
 
+#: aleksis/core/templates/two_factor/core/otp_required.html:19
+msgid "Go back"
+msgstr ""
+
 #: aleksis/core/templates/two_factor/core/phone_register.html:5
 #: aleksis/core/templates/two_factor/core/phone_register.html:9
 msgid "Add Backup Phone"
@@ -3188,193 +2973,186 @@ msgstr ""
 msgid "SMS"
 msgstr ""
 
-#: aleksis/core/util/pdf.py:118
+#: aleksis/core/util/pdf.py:151
 msgid "Progress: Generate PDF file"
 msgstr ""
 
-#: aleksis/core/util/pdf.py:119
+#: aleksis/core/util/pdf.py:152
 msgid "Generating PDF file …"
 msgstr ""
 
-#: aleksis/core/util/pdf.py:120
+#: aleksis/core/util/pdf.py:153
 msgid "The PDF file has been generated successfully."
 msgstr ""
 
-#: aleksis/core/util/pdf.py:121
+#: aleksis/core/util/pdf.py:154
 msgid "There was a problem while generating the PDF file."
 msgstr ""
 
-#: aleksis/core/util/pdf.py:124
+#: aleksis/core/util/pdf.py:157
 msgid "Download PDF"
 msgstr ""
 
-#: aleksis/core/views.py:294
+#: aleksis/core/views.py:278
 msgid "The school term has been created."
 msgstr ""
 
-#: aleksis/core/views.py:306
+#: aleksis/core/views.py:290
 msgid "The school term has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:426
+#: aleksis/core/views.py:394
 msgid "The child groups were successfully saved."
 msgstr ""
 
-#: aleksis/core/views.py:445 aleksis/core/views.py:455
+#: aleksis/core/views.py:413 aleksis/core/views.py:423
 msgid "The person has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:505
+#: aleksis/core/views.py:473
 msgid "The group has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:602
+#: aleksis/core/views.py:556
 msgid "The announcement has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:618
+#: aleksis/core/views.py:572
 msgid "The announcement has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:686
+#: aleksis/core/views.py:641
 msgid "The requested preference registry does not exist"
 msgstr ""
 
-#: aleksis/core/views.py:705
+#: aleksis/core/views.py:660
 msgid "The preferences have been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:729
+#: aleksis/core/views.py:684
 msgid "The person has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:743
+#: aleksis/core/views.py:698
 msgid "The group has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:775
+#: aleksis/core/views.py:730
 msgid "The additional field has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:809
+#: aleksis/core/views.py:765
 msgid "The additional field has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:834
+#: aleksis/core/views.py:790
 msgid "The group type has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:864
+#: aleksis/core/views.py:821
 msgid "The group type has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:897
+#: aleksis/core/views.py:856
 msgid "Progress: Run data checks"
 msgstr ""
 
-#: aleksis/core/views.py:898
+#: aleksis/core/views.py:857
 msgid "Run data checks …"
 msgstr ""
 
-#: aleksis/core/views.py:899
+#: aleksis/core/views.py:858
 msgid "The data checks were run successfully."
 msgstr ""
 
-#: aleksis/core/views.py:900
+#: aleksis/core/views.py:859
 msgid "There was a problem while running data checks."
 msgstr ""
 
-#: aleksis/core/views.py:916
+#: aleksis/core/views.py:876
 #, python-brace-format
 msgid "The solve option '{solve_option_obj.verbose_name}' "
 msgstr ""
 
-#: aleksis/core/views.py:926
+#: aleksis/core/views.py:886
 msgid "The requested solve option does not exist"
 msgstr ""
 
-#: aleksis/core/views.py:958
+#: aleksis/core/views.py:919
 msgid "The dashboard widget has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:988
+#: aleksis/core/views.py:949
 msgid "The dashboard widget has been created."
 msgstr ""
 
-#: aleksis/core/views.py:998
+#: aleksis/core/views.py:959
 msgid "The dashboard widget has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1069
+#: aleksis/core/views.py:1030
 msgid "Your dashboard configuration has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1071
+#: aleksis/core/views.py:1032
 msgid "The configuration of the default dashboard has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1147
+#: aleksis/core/views.py:1103
 #, python-brace-format
 msgid "The invitation was successfully created. The invitation code is {code}"
 msgstr ""
 
-#: aleksis/core/views.py:1238
+#: aleksis/core/views.py:1200
 msgid "We have successfully assigned the permissions."
 msgstr ""
 
-#: aleksis/core/views.py:1248
+#: aleksis/core/views.py:1210
 msgid "The global user permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1258
+#: aleksis/core/views.py:1220
 msgid "The global group permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1268
+#: aleksis/core/views.py:1230
 msgid "The object user permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1278
+#: aleksis/core/views.py:1240
 msgid "The object group permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1346
-msgid "The requested PDF file does not exist"
-msgstr ""
-
-#: aleksis/core/views.py:1355 aleksis/core/views.py:1359
-msgid "The requested task does not exist or is not accessible"
-msgstr ""
-
-#: aleksis/core/views.py:1411
+#: aleksis/core/views.py:1349
 msgid "The third-party account could not be disconnected because it is the only login method available."
 msgstr ""
 
-#: aleksis/core/views.py:1418
+#: aleksis/core/views.py:1356
 msgid "The third-party account has been successfully disconnected."
 msgstr ""
 
-#: aleksis/core/views.py:1489
+#: aleksis/core/views.py:1432
 msgid "Person was invited successfully and an email with further instructions has been send to them."
 msgstr ""
 
-#: aleksis/core/views.py:1500
+#: aleksis/core/views.py:1443
 #, fuzzy
 #| msgid "This username is already in use."
 msgid "Person was already invited."
 msgstr "Cet nom est deja en utilisation."
 
-#: aleksis/core/views.py:1600
-msgid "iCal feed updated successfully"
-msgstr ""
+#, fuzzy
+#~| msgid "Contact details"
+#~ msgid "Invite person"
+#~ msgstr "Détails de contact"
 
-#: aleksis/core/views.py:1610
-msgid "iCal feed deleted successfully"
-msgstr ""
+#, fuzzy
+#~| msgid "Contact details"
+#~ msgid "Impersonate"
+#~ msgstr "Détails de contact"
 
-#: aleksis/core/views.py:1618
-msgid "iCal feed created successfully"
-msgstr ""
+#~ msgid "Contact details"
+#~ msgstr "Détails de contact"
 
 #, fuzzy
 #~| msgid "Contact details"
diff --git a/aleksis/core/locale/fr/LC_MESSAGES/djangojs.po b/aleksis/core/locale/fr/LC_MESSAGES/djangojs.po
index 8b1f39f46181c3eb157a2316413bca33ad16015a..e36f5875ab7b9770243227f51fa21ddd75d467a2 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: 2022-06-25 12:09+0200\n"
+"POT-Creation-Date: 2023-01-22 20:49+0100\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,7 +29,3 @@ msgstr ""
 #: aleksis/core/static/js/main.js:68
 msgid "OK"
 msgstr ""
-
-#: aleksis/core/static/js/main.js:195
-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 f75c1ff3027200fcc1f340efe6a34b17cb4e3529..81cb58ba93fc0e0cb0132717762819fcd0b9bf63 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: 2022-06-25 12:09+0200\n"
+"POT-Creation-Date: 2023-01-22 20:49+0100\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"
@@ -18,40 +18,39 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 4.3.2\n"
 
-#: aleksis/core/apps.py:166
+#: aleksis/core/apps.py:155
 msgid "OpenID Connect scope"
 msgstr ""
 
-#: aleksis/core/apps.py:167
+#: aleksis/core/apps.py:156
 msgid "Given name, family name, link to profile and picture if existing."
 msgstr ""
 
-#: aleksis/core/apps.py:168
+#: aleksis/core/apps.py:157
 #, fuzzy
 #| msgid "E-mail address"
 msgid "Full home postal address"
 msgstr "Inscriptio electronica"
 
-#: aleksis/core/apps.py:169
+#: aleksis/core/apps.py:158
 #, fuzzy
 #| msgid "E-mail address"
 msgid "Email address"
 msgstr "Inscriptio electronica"
 
-#: aleksis/core/apps.py:170
+#: aleksis/core/apps.py:159
 #, fuzzy
 #| msgid "Mobile phone"
 msgid "Home and mobile phone"
 msgstr "Numerus telephoni mobilis"
 
-#: aleksis/core/apps.py:171 aleksis/core/forms.py:220 aleksis/core/menus.py:171
+#: aleksis/core/apps.py:160 aleksis/core/forms.py:220
 #: aleksis/core/models.py:494 aleksis/core/templates/core/group/list.html:8
 #: aleksis/core/templates/core/group/list.html:9
-#: aleksis/core/templates/core/person/full.html:246
 msgid "Groups"
 msgstr "Greges"
 
-#: aleksis/core/data_checks.py:59
+#: aleksis/core/data_checks.py:60
 msgid "Ignore problem"
 msgstr ""
 
@@ -60,51 +59,31 @@ msgstr ""
 msgid "Solve option '{solve_option_obj.verbose_name}' "
 msgstr ""
 
-#: aleksis/core/data_checks.py:294
+#: aleksis/core/data_checks.py:284
 #, fuzzy
 #| msgid "Dashboard"
 msgid "Deactivate DashboardWidget"
 msgstr "Forum"
 
-#: aleksis/core/data_checks.py:306
+#: aleksis/core/data_checks.py:296
 msgid "Ensure that there are no broken DashboardWidgets."
 msgstr ""
 
-#: aleksis/core/data_checks.py:307
+#: aleksis/core/data_checks.py:297
 msgid "The DashboardWidget was reported broken automatically."
 msgstr ""
 
-#: aleksis/core/data_checks.py:330
+#: aleksis/core/data_checks.py:320
 #, python-format
 msgid "Validate field %s of model %s."
 msgstr ""
 
-#: aleksis/core/data_checks.py:332
+#: aleksis/core/data_checks.py:322
 #, python-format
 msgid "The field %s couldn't be validated successfully."
 msgstr ""
 
-#: aleksis/core/feeds.py:52
-msgid "Birthday Calendar"
-msgstr ""
-
-#: aleksis/core/feeds.py:53
-msgid "A Calendar of Birthdays"
-msgstr ""
-
-#: aleksis/core/feeds.py:66
-#, python-format
-msgid "%(name)s's birthday"
-msgstr ""
-
-#: aleksis/core/feeds.py:71
-#, python-format
-msgid "%(name)s was born on %(birthday)s"
-msgstr ""
-
-#: aleksis/core/filters.py:42 aleksis/core/templates/core/base.html:139
-#: aleksis/core/templates/core/base.html:140
-#: aleksis/core/templates/core/group/list.html:20
+#: aleksis/core/filters.py:42 aleksis/core/templates/core/group/list.html:20
 #: aleksis/core/templates/core/person/list.html:24
 #: aleksis/core/templates/search/search.html:7
 #: aleksis/core/templates/search/search.html:22
@@ -184,8 +163,7 @@ msgid "Common data"
 msgstr "Adminstratio datarum"
 
 #: aleksis/core/forms.py:155 aleksis/core/forms.py:207
-#: aleksis/core/menus.py:160 aleksis/core/models.py:164
-#: aleksis/core/templates/core/person/list.html:8
+#: aleksis/core/models.py:164 aleksis/core/templates/core/person/list.html:8
 #: aleksis/core/templates/core/person/list.html:9
 msgid "Persons"
 msgstr "personae"
@@ -280,7 +258,7 @@ msgid "You must select at least one group or person which should get the permiss
 msgstr ""
 
 #: aleksis/core/forms.py:499
-msgid "You must grant the permission to all objects and/or to some objects."
+msgid "You must grant the permission to all objects or to specific objects."
 msgstr ""
 
 #: aleksis/core/forms.py:586
@@ -303,15 +281,15 @@ msgstr ""
 msgid "Password (again)"
 msgstr ""
 
-#: aleksis/core/forms.py:728
+#: aleksis/core/forms.py:761
 msgid "The selected action does not exist."
 msgstr ""
 
-#: aleksis/core/forms.py:739
+#: aleksis/core/forms.py:772
 msgid "You do not have permission to run {} on all selected objects."
 msgstr ""
 
-#: aleksis/core/forms.py:795
+#: aleksis/core/forms.py:828
 msgid "No valid selection."
 msgstr ""
 
@@ -337,180 +315,6 @@ msgstr ""
 msgid "No backup result found!"
 msgstr ""
 
-#: aleksis/core/menus.py:7 aleksis/core/templates/two_factor/core/login.html:6
-#: aleksis/core/templates/two_factor/core/login.html:32
-#: aleksis/core/templates/two_factor/core/login.html:95
-msgid "Login"
-msgstr "nomen profiteri"
-
-#: aleksis/core/menus.py:13 aleksis/core/templates/account/signup.html:22
-#: aleksis/core/templates/socialaccount/signup.html:23
-msgid "Sign up"
-msgstr ""
-
-#: aleksis/core/menus.py:22 aleksis/core/templates/invitations/enter.html:7
-#, fuzzy
-#| msgid "Edit school information"
-msgid "Accept invitation"
-msgstr "Muta informationes scolae"
-
-#: aleksis/core/menus.py:31
-msgid "Dashboard"
-msgstr "Forum"
-
-#: aleksis/core/menus.py:39
-msgid "Admin"
-msgstr "Administratio"
-
-#: aleksis/core/menus.py:47 aleksis/core/models.py:872
-#: aleksis/core/templates/core/announcement/list.html:7
-#: aleksis/core/templates/core/announcement/list.html:8
-msgid "Announcements"
-msgstr "Nuntii"
-
-#: aleksis/core/menus.py:58 aleksis/core/models.py:142
-#: aleksis/core/templates/core/school_term/list.html:8
-#: aleksis/core/templates/core/school_term/list.html:9
-msgid "School terms"
-msgstr "ani scolae"
-
-#: aleksis/core/menus.py:69
-#: aleksis/core/templates/core/dashboard_widget/list.html:8
-#: aleksis/core/templates/core/dashboard_widget/list.html:9
-#, fuzzy
-#| msgid "Dashboard"
-msgid "Dashboard widgets"
-msgstr "Forum"
-
-#: aleksis/core/menus.py:80
-#: aleksis/core/templates/core/management/data_management.html:6
-#: aleksis/core/templates/core/management/data_management.html:7
-msgid "Data management"
-msgstr "Adminstratio datarum"
-
-#: aleksis/core/menus.py:91
-#: aleksis/core/templates/core/pages/system_status.html:5
-#: aleksis/core/templates/core/pages/system_status.html:7
-msgid "System status"
-msgstr "Status systemae"
-
-#: aleksis/core/menus.py:102
-#, fuzzy
-#| msgid "Notification"
-msgid "Configuration"
-msgstr "Nuntius"
-
-#: aleksis/core/menus.py:113 aleksis/core/templates/core/data_check/list.html:9
-#: aleksis/core/templates/core/data_check/list.html:10
-#, fuzzy
-#| msgid "System status"
-msgid "Data checks"
-msgstr "Status systemae"
-
-#: aleksis/core/menus.py:119 aleksis/core/templates/core/perms/list.html:13
-#: aleksis/core/templates/core/perms/list.html:14
-msgid "Manage permissions"
-msgstr ""
-
-#: aleksis/core/menus.py:130
-msgid "Backend Admin"
-msgstr ""
-
-#: aleksis/core/menus.py:138
-#: aleksis/core/templates/oauth2_provider/application/list.html:5
-#: aleksis/core/templates/oauth2_provider/application/list.html:6
-#, fuzzy
-#| msgid "Notifications"
-msgid "OAuth2 Applications"
-msgstr "Nuntii"
-
-#: aleksis/core/menus.py:151
-msgid "People"
-msgstr "Personae"
-
-#: aleksis/core/menus.py:182 aleksis/core/models.py:1111
-#: aleksis/core/templates/core/group_type/list.html:8
-#: aleksis/core/templates/core/group_type/list.html:9
-#, fuzzy
-#| msgid "Groups"
-msgid "Group types"
-msgstr "Greges"
-
-#: aleksis/core/menus.py:193
-msgid "Groups and child groups"
-msgstr ""
-
-#: aleksis/core/menus.py:204 aleksis/core/models.py:542
-#: aleksis/core/templates/core/additional_field/list.html:8
-#: aleksis/core/templates/core/additional_field/list.html:9
-#, fuzzy
-#| msgid "Additional name(s)"
-msgid "Additional fields"
-msgstr "addita nomines"
-
-#: aleksis/core/menus.py:215
-#, fuzzy
-#| msgid "Stop impersonation"
-msgid "Invite person"
-msgstr "Simulandum aliquem finire"
-
-#: aleksis/core/menus.py:228
-#: aleksis/core/templates/core/group/child_groups.html:7
-#: aleksis/core/templates/core/group/child_groups.html:9
-msgid "Assign child groups to groups"
-msgstr ""
-
-#: aleksis/core/menus.py:240
-msgid "Stop impersonation"
-msgstr "Simulandum aliquem finire"
-
-#: aleksis/core/menus.py:249
-msgid "Account"
-msgstr ""
-
-#: aleksis/core/menus.py:258
-#: aleksis/core/templates/dynamic_preferences/form.html:5
-msgid "Preferences"
-msgstr ""
-
-#: aleksis/core/menus.py:267
-msgid "2FA"
-msgstr ""
-
-#: aleksis/core/menus.py:275
-#: aleksis/core/templates/account/password_change.html:5
-#: aleksis/core/templates/account/password_change.html:6
-#: aleksis/core/templates/account/password_change.html:19
-#: aleksis/core/templates/account/password_reset_from_key.html:5
-#: aleksis/core/templates/account/password_reset_from_key.html:42
-#: aleksis/core/templates/account/password_reset_from_key.html:46
-#: aleksis/core/templates/account/password_reset_from_key_done.html:5
-#: aleksis/core/templates/account/password_reset_from_key_done.html:6
-msgid "Change password"
-msgstr ""
-
-#: aleksis/core/menus.py:287
-#, fuzzy
-#| msgid "Persons and accounts"
-msgid "Third-party accounts"
-msgstr "Personae et computi"
-
-#: aleksis/core/menus.py:296
-#: 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:305
-msgid "Calendar Feeds"
-msgstr ""
-
-#: aleksis/core/menus.py:318
-msgid "Logout"
-msgstr "nomen retractare"
-
 #: aleksis/core/mixins.py:511
 #, fuzzy
 #| msgid "Edit school term"
@@ -560,7 +364,6 @@ msgid "URL / Link"
 msgstr ""
 
 #: aleksis/core/models.py:105 aleksis/core/models.py:1077
-#: aleksis/core/models.py:1384
 msgid "Name"
 msgstr "Nomen"
 
@@ -580,8 +383,13 @@ msgstr ""
 msgid "There is already a school term for this time or a part of this time."
 msgstr ""
 
-#: aleksis/core/models.py:163 aleksis/core/models.py:1024
-#: aleksis/core/models.py:1381
+#: aleksis/core/models.py:142
+#: aleksis/core/templates/core/school_term/list.html:8
+#: aleksis/core/templates/core/school_term/list.html:9
+msgid "School terms"
+msgstr "ani scolae"
+
+#: aleksis/core/models.py:163 aleksis/core/models.py:1026
 msgid "Person"
 msgstr "Persona"
 
@@ -633,7 +441,7 @@ msgstr "maskulinum"
 msgid "other"
 msgstr ""
 
-#: aleksis/core/models.py:189 aleksis/core/models.py:1283
+#: aleksis/core/models.py:189 aleksis/core/models.py:1345
 msgid "Linked user"
 msgstr ""
 
@@ -642,6 +450,7 @@ msgid "Additional name(s)"
 msgstr "addita nomines"
 
 #: aleksis/core/models.py:199 aleksis/core/models.py:511
+#: aleksis/core/models.py:1431
 msgid "Short name"
 msgstr "Breve nomen"
 
@@ -661,11 +470,11 @@ msgstr "Numerus directorius"
 msgid "Place"
 msgstr "Urbs"
 
-#: aleksis/core/models.py:207 aleksis/core/templates/core/person/full.html:160
+#: aleksis/core/models.py:207
 msgid "Home phone"
 msgstr "Numerus telephoni domi"
 
-#: aleksis/core/models.py:208 aleksis/core/templates/core/person/full.html:170
+#: aleksis/core/models.py:208
 msgid "Mobile phone"
 msgstr "Numerus telephoni mobilis"
 
@@ -695,7 +504,7 @@ msgstr ""
 msgid "This is a picture or an avatar for public display."
 msgstr ""
 
-#: aleksis/core/models.py:234 aleksis/core/templates/core/person/full.html:235
+#: aleksis/core/models.py:234
 msgid "Guardians / Parents"
 msgstr "Parentes"
 
@@ -704,7 +513,7 @@ msgid "Primary group"
 msgstr ""
 
 #: aleksis/core/models.py:244 aleksis/core/models.py:724
-#: aleksis/core/models.py:748 aleksis/core/models.py:839
+#: aleksis/core/models.py:748 aleksis/core/models.py:843
 #: aleksis/core/models.py:1104
 msgid "Description"
 msgstr "Descriptio"
@@ -749,7 +558,7 @@ msgstr ""
 msgid "Can view statistics about group."
 msgstr "Personae et computi"
 
-#: aleksis/core/models.py:509
+#: aleksis/core/models.py:509 aleksis/core/models.py:1432
 #, fuzzy
 #| msgid "Last name"
 msgid "Long name"
@@ -771,8 +580,16 @@ msgstr ""
 msgid "Type of group"
 msgstr ""
 
+#: aleksis/core/models.py:542
+#: aleksis/core/templates/core/additional_field/list.html:8
+#: aleksis/core/templates/core/additional_field/list.html:9
+#, fuzzy
+#| msgid "Additional name(s)"
+msgid "Additional fields"
+msgstr "addita nomines"
+
 #: aleksis/core/models.py:723 aleksis/core/models.py:747
-#: aleksis/core/models.py:838
+#: aleksis/core/models.py:842 aleksis/core/models.py:1262
 #: aleksis/core/templates/core/announcement/list.html:18
 msgid "Title"
 msgstr "Titulus"
@@ -801,194 +618,203 @@ msgstr ""
 msgid "Link"
 msgstr ""
 
-#: aleksis/core/models.py:751
+#: aleksis/core/models.py:752 aleksis/core/models.py:1079
+#: aleksis/core/models.py:1392
+#: aleksis/core/templates/oauth2_provider/application/detail.html:26
+msgid "Icon"
+msgstr "Nota"
+
+#: aleksis/core/models.py:755
 #, fuzzy
 #| msgid "Notification"
 msgid "Send notification at"
 msgstr "Nuntius"
 
-#: aleksis/core/models.py:753
+#: aleksis/core/models.py:757
 msgid "Read"
 msgstr ""
 
-#: aleksis/core/models.py:754
+#: aleksis/core/models.py:758
 msgid "Sent"
 msgstr ""
 
-#: aleksis/core/models.py:771
+#: aleksis/core/models.py:775
 #, fuzzy
 #| msgid "Notifications"
 msgid "Notification"
 msgstr "Nuntii"
 
-#: aleksis/core/models.py:772 aleksis/core/preferences.py:29
-#: aleksis/core/templates/core/base.html:81
-#: aleksis/core/templates/core/notifications.html:4
-#: aleksis/core/templates/core/notifications.html:5
+#: aleksis/core/models.py:776 aleksis/core/preferences.py:29
 msgid "Notifications"
 msgstr "Nuntii"
 
-#: aleksis/core/models.py:840
+#: aleksis/core/models.py:844
 msgid "Link to detailed view"
 msgstr ""
 
-#: aleksis/core/models.py:843
+#: aleksis/core/models.py:847
 msgid "Date and time from when to show"
 msgstr ""
 
-#: aleksis/core/models.py:846
+#: aleksis/core/models.py:850
 msgid "Date and time until when to show"
 msgstr ""
 
-#: aleksis/core/models.py:871
+#: aleksis/core/models.py:875
 #, fuzzy
 #| msgid "Announcements"
 msgid "Announcement"
 msgstr "Nuntii"
 
-#: aleksis/core/models.py:909
+#: aleksis/core/models.py:876
+#: aleksis/core/templates/core/announcement/list.html:7
+#: aleksis/core/templates/core/announcement/list.html:8
+msgid "Announcements"
+msgstr "Nuntii"
+
+#: aleksis/core/models.py:913
 #, fuzzy
 #| msgid "Announcements"
 msgid "Announcement recipient"
 msgstr "Nuntii"
 
-#: aleksis/core/models.py:910
+#: aleksis/core/models.py:914
 #, fuzzy
 #| msgid "Announcements"
 msgid "Announcement recipients"
 msgstr "Nuntii"
 
-#: aleksis/core/models.py:932
+#: aleksis/core/models.py:934
 #, fuzzy
 #| msgid "Site title"
 msgid "Widget Title"
 msgstr "Titulus paginae"
 
-#: aleksis/core/models.py:933
+#: aleksis/core/models.py:935
 msgid "Activate Widget"
 msgstr ""
 
-#: aleksis/core/models.py:934
+#: aleksis/core/models.py:936
 #, fuzzy
 #| msgid "Site title"
 msgid "Widget is broken"
 msgstr "Titulus paginae"
 
-#: aleksis/core/models.py:937
+#: aleksis/core/models.py:939
 msgid "Size on mobile devices"
 msgstr ""
 
-#: aleksis/core/models.py:938
+#: aleksis/core/models.py:940
 msgid "<= 600 px, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:943
+#: aleksis/core/models.py:945
 msgid "Size on tablet devices"
 msgstr ""
 
-#: aleksis/core/models.py:944
+#: aleksis/core/models.py:946
 msgid "> 600 px, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:949
+#: aleksis/core/models.py:951
 msgid "Size on desktop devices"
 msgstr ""
 
-#: aleksis/core/models.py:950
+#: aleksis/core/models.py:952
 msgid "> 992 px, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:955
+#: aleksis/core/models.py:957
 msgid "Size on large desktop devices"
 msgstr ""
 
-#: aleksis/core/models.py:956
+#: aleksis/core/models.py:958
 msgid "> 1200 px>, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:987
+#: aleksis/core/models.py:989
 #, fuzzy
 #| msgid "Dashboard"
 msgid "Can edit default dashboard"
 msgstr "Forum"
 
-#: aleksis/core/models.py:988
+#: aleksis/core/models.py:990
 #, fuzzy
 #| msgid "Dashboard"
 msgid "Dashboard Widget"
 msgstr "Forum"
 
-#: aleksis/core/models.py:989
+#: aleksis/core/models.py:991
 #, fuzzy
 #| msgid "Dashboard"
 msgid "Dashboard Widgets"
 msgstr "Forum"
 
-#: aleksis/core/models.py:995
+#: aleksis/core/models.py:997
 msgid "URL"
 msgstr ""
 
-#: aleksis/core/models.py:996
+#: aleksis/core/models.py:998
 #, fuzzy
 #| msgid "Icon"
 msgid "Icon URL"
 msgstr "Nota"
 
-#: aleksis/core/models.py:1002
+#: aleksis/core/models.py:1004
 msgid "External link widget"
 msgstr ""
 
-#: aleksis/core/models.py:1003
+#: aleksis/core/models.py:1005
 msgid "External link widgets"
 msgstr ""
 
-#: aleksis/core/models.py:1009
+#: aleksis/core/models.py:1011
 msgid "Content"
 msgstr ""
 
-#: aleksis/core/models.py:1015
+#: aleksis/core/models.py:1017
 msgid "Static content widget"
 msgstr ""
 
-#: aleksis/core/models.py:1016
+#: aleksis/core/models.py:1018
 msgid "Static content widgets"
 msgstr ""
 
-#: aleksis/core/models.py:1021
+#: aleksis/core/models.py:1023
 #, fuzzy
 #| msgid "Dashboard"
 msgid "Dashboard widget"
 msgstr "Forum"
 
-#: aleksis/core/models.py:1026
+#: aleksis/core/models.py:1028
 msgid "Order"
 msgstr ""
 
-#: aleksis/core/models.py:1027
+#: aleksis/core/models.py:1029
 msgid "Part of the default dashboard"
 msgstr ""
 
-#: aleksis/core/models.py:1042
+#: aleksis/core/models.py:1044
 #, fuzzy
 #| msgid "Dashboard"
 msgid "Dashboard widget order"
 msgstr "Forum"
 
-#: aleksis/core/models.py:1043
+#: aleksis/core/models.py:1045
 #, fuzzy
 #| msgid "Dashboard"
 msgid "Dashboard widget orders"
 msgstr "Forum"
 
-#: aleksis/core/models.py:1049
+#: aleksis/core/models.py:1051
 msgid "Menu ID"
 msgstr ""
 
-#: aleksis/core/models.py:1062
+#: aleksis/core/models.py:1064
 msgid "Custom menu"
 msgstr ""
 
-#: aleksis/core/models.py:1063
+#: aleksis/core/models.py:1065
 msgid "Custom menus"
 msgstr ""
 
@@ -996,11 +822,6 @@ msgstr ""
 msgid "Menu"
 msgstr ""
 
-#: aleksis/core/models.py:1079 aleksis/core/models.py:1330
-#: aleksis/core/templates/oauth2_provider/application/detail.html:26
-msgid "Icon"
-msgstr "Nota"
-
 #: aleksis/core/models.py:1085
 msgid "Custom menu item"
 msgstr ""
@@ -1019,6 +840,14 @@ msgstr ""
 msgid "Group type"
 msgstr "Grex"
 
+#: aleksis/core/models.py:1111
+#: aleksis/core/templates/core/group_type/list.html:8
+#: aleksis/core/templates/core/group_type/list.html:9
+#, fuzzy
+#| msgid "Groups"
+msgid "Group types"
+msgstr "Greges"
+
 #: aleksis/core/models.py:1124
 #, fuzzy
 #| msgid "System status"
@@ -1107,66 +936,128 @@ msgstr ""
 msgid "File expires at"
 msgstr ""
 
-#: aleksis/core/models.py:1239
+#: aleksis/core/models.py:1240
 msgid "Generated HTML file"
 msgstr ""
 
-#: aleksis/core/models.py:1241
+#: aleksis/core/models.py:1243
 msgid "Generated PDF file"
 msgstr ""
 
-#: aleksis/core/models.py:1248
+#: aleksis/core/models.py:1250
 msgid "PDF file"
 msgstr ""
 
-#: aleksis/core/models.py:1249
+#: aleksis/core/models.py:1251
 msgid "PDF files"
 msgstr ""
 
-#: aleksis/core/models.py:1254
+#: aleksis/core/models.py:1256
 msgid "Task result"
 msgstr ""
 
-#: aleksis/core/models.py:1257
+#: aleksis/core/models.py:1259
 msgid "Task user"
 msgstr ""
 
+#: aleksis/core/models.py:1263
+#, fuzzy
+#| msgid "Icon"
+msgid "Back URL"
+msgstr "Nota"
+
+#: aleksis/core/models.py:1264
+msgid "Progress title"
+msgstr ""
+
+#: aleksis/core/models.py:1265
+msgid "Error message"
+msgstr ""
+
+#: aleksis/core/models.py:1266
+msgid "Success message"
+msgstr ""
+
+#: aleksis/core/models.py:1267
+msgid "Redirect on success URL"
+msgstr ""
+
 #: aleksis/core/models.py:1269
+#, fuzzy
+#| msgid "Additional name(s)"
+msgid "Additional button title"
+msgstr "addita nomines"
+
+#: aleksis/core/models.py:1271
+#, fuzzy
+#| msgid "Additional name(s)"
+msgid "Additional button URL"
+msgstr "addita nomines"
+
+#: aleksis/core/models.py:1273
+#, fuzzy
+#| msgid "Additional name(s)"
+msgid "Additional button icon"
+msgstr "addita nomines"
+
+#: aleksis/core/models.py:1275
+msgid "Result fetched"
+msgstr ""
+
+#: aleksis/core/models.py:1300
+msgid "Background task completed successfully"
+msgstr ""
+
+#: aleksis/core/models.py:1301
+msgid "The background task '{}' has been completed successfully."
+msgstr ""
+
+#: aleksis/core/models.py:1307
+msgid "Background task failed"
+msgstr ""
+
+#: aleksis/core/models.py:1308
+msgid "The background task '{}' has failed."
+msgstr ""
+
+#: aleksis/core/models.py:1317
+msgid "Background task"
+msgstr ""
+
+#: aleksis/core/models.py:1331
 msgid "Task user assignment"
 msgstr ""
 
-#: aleksis/core/models.py:1270
+#: aleksis/core/models.py:1332
 msgid "Task user assignments"
 msgstr ""
 
-#: aleksis/core/models.py:1286
+#: aleksis/core/models.py:1348
 #, fuzzy
 #| msgid "Additional name(s)"
 msgid "Additional attributes"
 msgstr "addita nomines"
 
-#: aleksis/core/models.py:1324
+#: aleksis/core/models.py:1386
 msgid "Allowed scopes that clients can request"
 msgstr ""
 
-#: aleksis/core/models.py:1334
+#: aleksis/core/models.py:1396
 msgid "This image will be shown as icon in the authorization flow. It should be squared."
 msgstr ""
 
-#: aleksis/core/models.py:1383
-msgid "UUID"
-msgstr ""
-
-#: aleksis/core/models.py:1387
-msgid "Selected ICal feed"
-msgstr ""
+#: aleksis/core/models.py:1441
+#, fuzzy
+#| msgid "E-mail address"
+msgid "Can view room timetable"
+msgstr "Inscriptio electronica"
 
-#: aleksis/core/models.py:1396
-msgid "Personal Calendar URL"
+#: aleksis/core/models.py:1443
+msgid "Room"
 msgstr ""
 
-#: aleksis/core/models.py:1397
-msgid "Personal Calendar URLs"
+#: aleksis/core/models.py:1444
+msgid "Rooms"
 msgstr ""
 
 #: aleksis/core/preferences.py:25
@@ -1271,137 +1162,145 @@ msgstr ""
 msgid "Channels to use for notifications"
 msgstr ""
 
-#: aleksis/core/preferences.py:209
+#: aleksis/core/preferences.py:208
+#, fuzzy
+#| msgid "Stop impersonation"
+msgid "Select Design"
+msgstr "Simulandum aliquem finire"
+
+#: aleksis/core/preferences.py:211
+msgid "Light mode"
+msgstr ""
+
+#: aleksis/core/preferences.py:224
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr ""
 
-#: aleksis/core/preferences.py:220
+#: aleksis/core/preferences.py:235
 msgid "Field on person to match primary group against"
 msgstr ""
 
-#: aleksis/core/preferences.py:232
+#: aleksis/core/preferences.py:247
 msgid "Automatically create new persons for new users"
 msgstr ""
 
-#: aleksis/core/preferences.py:241
+#: aleksis/core/preferences.py:256
 msgid "Automatically link existing persons to new users by their e-mail address"
 msgstr ""
 
-#: aleksis/core/preferences.py:252
+#: aleksis/core/preferences.py:267
 msgid "Display name of the school"
 msgstr ""
 
-#: aleksis/core/preferences.py:263
+#: aleksis/core/preferences.py:278
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr "Officialis nomen scolae, e. g."
 
-#: aleksis/core/preferences.py:271
+#: aleksis/core/preferences.py:286
 msgid "Allow users to change their passwords"
 msgstr ""
 
-#: aleksis/core/preferences.py:279
+#: aleksis/core/preferences.py:294
 msgid "Allow users to reset their passwords"
 msgstr ""
 
-#: aleksis/core/preferences.py:287
+#: aleksis/core/preferences.py:302
 msgid "Enable signup"
 msgstr ""
 
-#: aleksis/core/preferences.py:295
+#: aleksis/core/preferences.py:310
 msgid "Regular expression for allowed usernames"
 msgstr ""
 
-#: aleksis/core/preferences.py:303
+#: aleksis/core/preferences.py:318
 msgid "Enable invitations"
 msgstr ""
 
-#: aleksis/core/preferences.py:311
+#: aleksis/core/preferences.py:326
 msgid "Length of invite code. (Default 3: abcde-acbde-abcde)"
 msgstr ""
 
-#: aleksis/core/preferences.py:319
+#: aleksis/core/preferences.py:334
 msgid "Size of packets. (Default 5: abcde)"
 msgstr ""
 
-#: aleksis/core/preferences.py:330
+#: aleksis/core/preferences.py:345
 #, fuzzy
 #| msgid "E-mail address"
 msgid "Allowed Grant Flows for OAuth applications"
 msgstr "Inscriptio electronica"
 
-#: aleksis/core/preferences.py:343
+#: aleksis/core/preferences.py:358
 msgid "Send emails if data checks detect problems"
 msgstr ""
 
-#: aleksis/core/preferences.py:354
+#: aleksis/core/preferences.py:369
 msgid "Email recipients for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:365
+#: aleksis/core/preferences.py:380
 msgid "Email recipient groups for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:374
+#: aleksis/core/preferences.py:389
 msgid "Show dashboard to users without login"
 msgstr ""
 
-#: aleksis/core/preferences.py:383
+#: aleksis/core/preferences.py:398
 msgid "Allow users to edit their dashboard"
 msgstr ""
 
-#: aleksis/core/preferences.py:394
+#: aleksis/core/preferences.py:409
 msgid "Fields on person model which are editable by themselves."
 msgstr ""
 
-#: aleksis/core/preferences.py:409
+#: aleksis/core/preferences.py:424
 msgid "Editable fields on person model which should trigger a notification on change"
 msgstr ""
 
-#: aleksis/core/preferences.py:423
+#: aleksis/core/preferences.py:438
 msgid "Contact for notification if a person changes their data"
 msgstr ""
 
-#: aleksis/core/preferences.py:434
+#: aleksis/core/preferences.py:449
 msgid "Prefer personal photos over avatars"
 msgstr ""
 
-#: aleksis/core/preferences.py:444
+#: aleksis/core/preferences.py:459
 msgid "PDF file expiration duration"
 msgstr ""
 
-#: aleksis/core/preferences.py:445
+#: aleksis/core/preferences.py:460
 msgid "in minutes"
 msgstr ""
 
-#: aleksis/core/preferences.py:455
+#: aleksis/core/preferences.py:470
 msgid "Automatically update the dashboard and its widgets"
 msgstr ""
 
-#: aleksis/core/preferences.py:465
+#: aleksis/core/preferences.py:480
 msgid "Automatically update the dashboard and its widgets sitewide"
 msgstr ""
 
-#: aleksis/core/preferences.py:475
+#: aleksis/core/preferences.py:490
 msgid "Country for phone number parsing"
 msgstr ""
 
-#: aleksis/core/settings.py:541
+#: aleksis/core/settings.py:539
 msgid "English"
 msgstr "Britannicus"
 
-#: aleksis/core/settings.py:542
+#: aleksis/core/settings.py:540
 msgid "German"
 msgstr "Germanus"
 
-#: aleksis/core/settings.py:543
+#: aleksis/core/settings.py:541
 msgid "Ukrainian"
 msgstr ""
 
 #: aleksis/core/tables.py:25
 #: aleksis/core/templates/core/announcement/list.html:36
 #: aleksis/core/templates/core/group/full.html:26
-#: aleksis/core/templates/core/person/full.html:26
-#: aleksis/core/templates/core/person/full.html:86
 #: aleksis/core/templates/oauth2_provider/application/detail.html:17
 msgid "Edit"
 msgstr ""
@@ -1420,15 +1319,12 @@ msgstr "Nuntii"
 #: aleksis/core/templates/core/announcement/list.html:42
 #: aleksis/core/templates/core/group/full.html:33
 #: aleksis/core/templates/core/pages/delete.html:22
-#: aleksis/core/templates/core/person/full.html:33
-#: aleksis/core/templates/core/person/full.html:93
 #: aleksis/core/templates/oauth2_provider/application/detail.html:21
 msgid "Delete"
 msgstr ""
 
 #: aleksis/core/templates/403.html:14 aleksis/core/templates/500.html:10
 #: aleksis/core/templates/oauth2_provider/authorize.html:54
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:24
 msgid "Error"
 msgstr ""
 
@@ -1529,6 +1425,17 @@ msgstr ""
 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 ""
 
+#: aleksis/core/templates/account/password_change.html:5
+#: aleksis/core/templates/account/password_change.html:6
+#: aleksis/core/templates/account/password_change.html:19
+#: aleksis/core/templates/account/password_reset_from_key.html:5
+#: aleksis/core/templates/account/password_reset_from_key.html:42
+#: aleksis/core/templates/account/password_reset_from_key.html:46
+#: aleksis/core/templates/account/password_reset_from_key_done.html:5
+#: aleksis/core/templates/account/password_reset_from_key_done.html:6
+msgid "Change password"
+msgstr ""
+
 #: aleksis/core/templates/account/password_change.html:12
 msgid "Forgot your current password? Click here to reset it:"
 msgstr ""
@@ -1642,6 +1549,11 @@ msgstr ""
 msgid "Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>."
 msgstr ""
 
+#: aleksis/core/templates/account/signup.html:22
+#: aleksis/core/templates/socialaccount/signup.html:23
+msgid "Sign up"
+msgstr ""
+
 #: aleksis/core/templates/account/signup_closed.html:5
 #: aleksis/core/templates/account/signup_closed.html:6
 msgid "Signup closed"
@@ -1748,18 +1660,6 @@ msgstr ""
 msgid "There are no announcements."
 msgstr "Scribe nuntium:"
 
-#: aleksis/core/templates/core/base.html:213
-msgid "About AlekSIS® — The Free School Information System"
-msgstr ""
-
-#: aleksis/core/templates/core/base.html:221
-msgid "Imprint"
-msgstr ""
-
-#: aleksis/core/templates/core/base.html:229
-msgid "Privacy Policy"
-msgstr ""
-
 #: aleksis/core/templates/core/base_print.html:74
 msgid "Powered by AlekSIS®"
 msgstr ""
@@ -1790,6 +1690,13 @@ msgstr ""
 msgid "Edit %(widget)s"
 msgstr ""
 
+#: aleksis/core/templates/core/dashboard_widget/list.html:8
+#: aleksis/core/templates/core/dashboard_widget/list.html:9
+#, fuzzy
+#| msgid "Dashboard"
+msgid "Dashboard widgets"
+msgstr "Forum"
+
 #: aleksis/core/templates/core/dashboard_widget/list.html:15
 #, fuzzy
 #| msgid "Dashboard"
@@ -1810,6 +1717,13 @@ msgstr "Simulandum aliquem finire"
 msgid "Edit default dashboard"
 msgstr "Forum"
 
+#: aleksis/core/templates/core/data_check/list.html:9
+#: aleksis/core/templates/core/data_check/list.html:10
+#, fuzzy
+#| msgid "System status"
+msgid "Data checks"
+msgstr "Status systemae"
+
 #: aleksis/core/templates/core/data_check/list.html:15
 msgid "Check data again"
 msgstr ""
@@ -1911,6 +1825,11 @@ msgstr "Forum"
 msgid "Default dashboard"
 msgstr "Forum"
 
+#: aleksis/core/templates/core/group/child_groups.html:7
+#: aleksis/core/templates/core/group/child_groups.html:9
+msgid "Assign child groups to groups"
+msgstr ""
+
 #: aleksis/core/templates/core/group/child_groups.html:18
 msgid ""
 "\n"
@@ -1990,8 +1909,6 @@ msgid "Edit group"
 msgstr ""
 
 #: aleksis/core/templates/core/group/full.html:40
-#: aleksis/core/templates/core/person/full.html:40
-#: aleksis/core/templates/core/person/full.html:100
 msgid "Change preferences"
 msgstr ""
 
@@ -2051,45 +1968,11 @@ msgstr "Grex"
 msgid "Create group type"
 msgstr "Grex"
 
-#: aleksis/core/templates/core/ical/ical_create.html:4
-#: aleksis/core/templates/core/ical/ical_create.html:5
-#: aleksis/core/templates/core/ical/ical_list.html:12
-msgid "Create iCal URL"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_create.html:16
-#: aleksis/core/templates/core/ical/ical_edit.html:16
-#: aleksis/core/templates/oauth2_provider/application/create.html:14
-#: aleksis/core/templates/oauth2_provider/application/edit.html:14
-#: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:24
-#: aleksis/core/templates/two_factor/_wizard_actions.html:6
-msgid "Cancel"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_edit.html:4
-#: aleksis/core/templates/core/ical/ical_edit.html:5
-#, python-format
-msgid "Edit iCal URL %(object)s"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_list.html:4
-#: aleksis/core/templates/core/ical/ical_list.html:5
-msgid "iCal Feeds"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_list.html:8
-msgid "These are URLs for different Calendar Feeds in the iCal (.ics) format. You can create as many as you want and import them in your calendar software."
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_list.html:14
-msgid "Your iCal URLs"
-msgstr ""
-
 #: aleksis/core/templates/core/index.html:4
 msgid "Home"
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:49
+#: aleksis/core/templates/core/index.html:34
 msgid ""
 "\n"
 "        You didn't customise your dashboard so that you see the system default. Please click on \"Edit dashboard\" to\n"
@@ -2097,109 +1980,14 @@ msgid ""
 "      "
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:59
+#: aleksis/core/templates/core/index.html:44
 msgid "Last activities"
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:77
+#: aleksis/core/templates/core/index.html:62
 msgid "No activities available yet."
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:82
-#, fuzzy
-#| msgid "Notifications"
-msgid "Recent notifications"
-msgstr "Nuntii"
-
-#: aleksis/core/templates/core/index.html:98
-#: aleksis/core/templates/core/notifications.html:23
-#, fuzzy
-#| msgid "Edit school information"
-msgid "More information →"
-msgstr "Muta informationes scolae"
-
-#: aleksis/core/templates/core/index.html:105
-#: aleksis/core/templates/core/notifications.html:30
-msgid "No notifications available yet."
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:6
-msgid "About AlekSIS®"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:7
-msgid "AlekSIS® – The Free School Information System"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:15
-msgid "About AlekSIS"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:17
-msgid ""
-"\n"
-"              This platform is powered by AlekSIS®, a web-based school information system (SIS) which can be used\n"
-"              to manage and/or publish organisational artifacts of educational institutions. AlekSIS is free software and\n"
-"              can be used by anyone.\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:24
-msgid ""
-"\n"
-"              AlekSIS® is a registered trademark of the AlekSIS open source project, represented by Teckids e.V.\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:30
-msgid "Website of AlekSIS"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:31
-msgid "Source code"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:40
-#, fuzzy
-#| msgid "Edit school information"
-msgid "Licence information"
-msgstr "Muta informationes scolae"
-
-#: aleksis/core/templates/core/pages/about.html:42
-msgid ""
-"\n"
-"              The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence\n"
-"              information from third-party apps, if installed, refer to the respective components below. The\n"
-"              licences are marked like this:\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:50
-msgid "Free/Open Source Licence"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:51
-msgid "Other Licence"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:55
-msgid "Full licence text"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:56
-#, fuzzy
-#| msgid "Edit school information"
-msgid "More information about the EUPL"
-msgstr "Muta informationes scolae"
-
-#: aleksis/core/templates/core/pages/about.html:95
-#, python-format
-msgid ""
-"\n"
-"                    This app is licenced under %(licence)s.\n"
-"                  "
-msgstr ""
-
 #: aleksis/core/templates/core/pages/delete.html:6
 #, python-format
 msgid "Delete %(object_name)s"
@@ -2213,17 +2001,10 @@ msgid ""
 "    "
 msgstr ""
 
-#: aleksis/core/templates/core/pages/progress.html:27
-msgid ""
-"\n"
-"              Without activated JavaScript the progress status can't be updated.\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/progress.html:47
-#: aleksis/core/templates/two_factor/core/otp_required.html:19
-msgid "Go back"
-msgstr ""
+#: aleksis/core/templates/core/pages/system_status.html:5
+#: aleksis/core/templates/core/pages/system_status.html:7
+msgid "System status"
+msgstr "Status systemae"
 
 #: aleksis/core/templates/core/pages/system_status.html:12
 #, fuzzy
@@ -2356,13 +2137,11 @@ msgstr ""
 
 #: aleksis/core/templates/core/partials/avatar_content.html:14
 #: aleksis/core/templates/core/partials/avatar_content.html:15
-#: aleksis/core/templates/core/person/full.html:213
-#: aleksis/core/templates/core/person/full.html:214
 msgid "Avatar"
 msgstr ""
 
+#: aleksis/core/templates/core/partials/avatar_content.html:18
 #: aleksis/core/templates/core/partials/avatar_content.html:19
-#: aleksis/core/templates/core/partials/avatar_content.html:20
 #, fuzzy
 #| msgid "Notifications"
 msgid "Identicon"
@@ -2376,29 +2155,11 @@ msgstr ""
 msgid "Unknown"
 msgstr ""
 
-#: aleksis/core/templates/core/partials/language_form.html:17
-msgid "Language"
-msgstr ""
-
-#: aleksis/core/templates/core/partials/language_form.html:29
-msgid "Select language"
-msgstr ""
-
-#: aleksis/core/templates/core/partials/no_person.html:12
-msgid ""
-"\n"
-"            Your administrator account is not linked to any person. Therefore,\n"
-"            a dummy person has been linked to your account.\n"
-"          "
-msgstr ""
-
-#: aleksis/core/templates/core/partials/no_person.html:19
+#: aleksis/core/templates/core/partials/splash_screen.html:11
 msgid ""
 "\n"
-"            Your user account is not linked to a person. This means you\n"
-"            cannot access any school-related information. Please contact\n"
-"            the managers of AlekSIS at your school.\n"
-"          "
+"      This webbrowser doesn't support JavaScript, or its execution is blocked. Please use another browser to continue.\n"
+"    "
 msgstr ""
 
 #: aleksis/core/templates/core/perms/assign.html:12
@@ -2416,6 +2177,11 @@ msgstr "Simulandum aliquem finire"
 msgid "Assign"
 msgstr ""
 
+#: aleksis/core/templates/core/perms/list.html:13
+#: aleksis/core/templates/core/perms/list.html:14
+msgid "Manage permissions"
+msgstr ""
+
 #: aleksis/core/templates/core/perms/list.html:21
 msgid "Assign a new permission"
 msgstr ""
@@ -2461,32 +2227,6 @@ msgstr "Simulandum aliquem finire"
 msgid "Edit person"
 msgstr ""
 
-#: aleksis/core/templates/core/person/full.html:47
-#: aleksis/core/templates/core/person/full.html:107
-#, fuzzy
-#| msgid "Impersonation"
-msgid "Impersonate"
-msgstr "Simulare aliquem"
-
-#: aleksis/core/templates/core/person/full.html:54
-#: aleksis/core/templates/core/person/full.html:114
-#, fuzzy
-#| msgid "Impersonation"
-msgid "Invite user"
-msgstr "Simulare aliquem"
-
-#: aleksis/core/templates/core/person/full.html:121
-msgid "Contact details"
-msgstr ""
-
-#: aleksis/core/templates/core/person/full.html:220
-msgid "This person didn't upload a personal photo."
-msgstr ""
-
-#: aleksis/core/templates/core/person/full.html:228
-msgid "Children"
-msgstr ""
-
 #: aleksis/core/templates/core/person/list.html:21
 msgid "Filter persons"
 msgstr ""
@@ -2508,6 +2248,10 @@ msgstr "Muta anum scolae"
 msgid "Edit school term"
 msgstr "Muta anum scolae"
 
+#: aleksis/core/templates/dynamic_preferences/form.html:5
+msgid "Preferences"
+msgstr ""
+
 #: aleksis/core/templates/dynamic_preferences/form.html:9
 msgid "Site preferences"
 msgstr ""
@@ -2541,6 +2285,12 @@ msgstr ""
 msgid "site preferences page"
 msgstr ""
 
+#: aleksis/core/templates/invitations/enter.html:7
+#, fuzzy
+#| msgid "Edit school information"
+msgid "Accept invitation"
+msgstr "Muta informationes scolae"
+
 #: aleksis/core/templates/invitations/enter.html:21
 msgid "Accept your invitation"
 msgstr ""
@@ -2593,6 +2343,13 @@ msgstr ""
 msgid "Register OAuth2 Application"
 msgstr "Nuntii"
 
+#: aleksis/core/templates/oauth2_provider/application/create.html:14
+#: aleksis/core/templates/oauth2_provider/application/edit.html:14
+#: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:24
+#: aleksis/core/templates/two_factor/_wizard_actions.html:6
+msgid "Cancel"
+msgstr ""
+
 #: aleksis/core/templates/oauth2_provider/application/detail.html:5
 #, fuzzy
 #| msgid "Notifications"
@@ -2632,6 +2389,13 @@ msgstr "Nuntii"
 msgid "Edit OAuth2 Application"
 msgstr "Nuntii"
 
+#: aleksis/core/templates/oauth2_provider/application/list.html:5
+#: aleksis/core/templates/oauth2_provider/application/list.html:6
+#, fuzzy
+#| msgid "Notifications"
+msgid "OAuth2 Applications"
+msgstr "Nuntii"
+
 #: aleksis/core/templates/oauth2_provider/application/list.html:11
 #, fuzzy
 #| msgid "Edit school information"
@@ -2666,14 +2430,6 @@ msgstr ""
 msgid "Disallow"
 msgstr ""
 
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:12
-msgid "Success!"
-msgstr ""
-
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:14
-msgid "Please return to your application and enter this code:"
-msgstr ""
-
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:5
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:6
 #: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
@@ -2688,6 +2444,13 @@ msgstr ""
 msgid "Revoke"
 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/templates/oauth2_provider/authorized-tokens.html:33
 #, fuzzy
 #| msgid "Notifications"
@@ -2699,13 +2462,13 @@ msgid "Network error"
 msgstr ""
 
 #: aleksis/core/templates/offline.html:10
-msgid "No internet connection."
+msgid "Page not available offline."
 msgstr ""
 
 #: aleksis/core/templates/offline.html:14
 msgid ""
 "\n"
-"      There was an error accessing this page. You probably don't have an internet connection. Check to see if your WiFi\n"
+"      This page is not available offline. Since you probably don't have an internet connection, check to see if your WiFi\n"
 "      or mobile data is turned on and try again. If you think you are connected, please contact the system\n"
 "      administrators:\n"
 "    "
@@ -3001,6 +2764,12 @@ msgstr ""
 msgid "Generate Tokens"
 msgstr ""
 
+#: aleksis/core/templates/two_factor/core/login.html:6
+#: aleksis/core/templates/two_factor/core/login.html:32
+#: aleksis/core/templates/two_factor/core/login.html:95
+msgid "Login"
+msgstr "nomen profiteri"
+
 #: aleksis/core/templates/two_factor/core/login.html:27
 #, fuzzy, python-format
 #| msgid "Stop impersonation"
@@ -3096,6 +2865,10 @@ msgid ""
 "          security."
 msgstr ""
 
+#: aleksis/core/templates/two_factor/core/otp_required.html:19
+msgid "Go back"
+msgstr ""
+
 #: aleksis/core/templates/two_factor/core/phone_register.html:5
 #: aleksis/core/templates/two_factor/core/phone_register.html:9
 msgid "Add Backup Phone"
@@ -3319,195 +3092,238 @@ msgstr ""
 msgid "SMS"
 msgstr ""
 
-#: aleksis/core/util/pdf.py:118
+#: aleksis/core/util/pdf.py:151
 msgid "Progress: Generate PDF file"
 msgstr ""
 
-#: aleksis/core/util/pdf.py:119
+#: aleksis/core/util/pdf.py:152
 msgid "Generating PDF file …"
 msgstr ""
 
-#: aleksis/core/util/pdf.py:120
+#: aleksis/core/util/pdf.py:153
 msgid "The PDF file has been generated successfully."
 msgstr ""
 
-#: aleksis/core/util/pdf.py:121
+#: aleksis/core/util/pdf.py:154
 msgid "There was a problem while generating the PDF file."
 msgstr ""
 
-#: aleksis/core/util/pdf.py:124
+#: aleksis/core/util/pdf.py:157
 msgid "Download PDF"
 msgstr ""
 
-#: aleksis/core/views.py:294
+#: aleksis/core/views.py:278
 msgid "The school term has been created."
 msgstr ""
 
-#: aleksis/core/views.py:306
+#: aleksis/core/views.py:290
 msgid "The school term has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:426
+#: aleksis/core/views.py:394
 msgid "The child groups were successfully saved."
 msgstr ""
 
-#: aleksis/core/views.py:445 aleksis/core/views.py:455
+#: aleksis/core/views.py:413 aleksis/core/views.py:423
 msgid "The person has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:505
+#: aleksis/core/views.py:473
 msgid "The group has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:602
+#: aleksis/core/views.py:556
 msgid "The announcement has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:618
+#: aleksis/core/views.py:572
 msgid "The announcement has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:686
+#: aleksis/core/views.py:641
 msgid "The requested preference registry does not exist"
 msgstr ""
 
-#: aleksis/core/views.py:705
+#: aleksis/core/views.py:660
 msgid "The preferences have been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:729
+#: aleksis/core/views.py:684
 msgid "The person has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:743
+#: aleksis/core/views.py:698
 msgid "The group has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:775
+#: aleksis/core/views.py:730
 #, fuzzy
 #| msgid "Additional name(s)"
 msgid "The additional field has been saved."
 msgstr "addita nomines"
 
-#: aleksis/core/views.py:809
+#: aleksis/core/views.py:765
 msgid "The additional field has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:834
+#: aleksis/core/views.py:790
 msgid "The group type has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:864
+#: aleksis/core/views.py:821
 msgid "The group type has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:897
+#: aleksis/core/views.py:856
 msgid "Progress: Run data checks"
 msgstr ""
 
-#: aleksis/core/views.py:898
+#: aleksis/core/views.py:857
 #, fuzzy
 #| msgid "System status"
 msgid "Run data checks …"
 msgstr "Status systemae"
 
-#: aleksis/core/views.py:899
+#: aleksis/core/views.py:858
 msgid "The data checks were run successfully."
 msgstr ""
 
-#: aleksis/core/views.py:900
+#: aleksis/core/views.py:859
 msgid "There was a problem while running data checks."
 msgstr ""
 
-#: aleksis/core/views.py:916
+#: aleksis/core/views.py:876
 #, python-brace-format
 msgid "The solve option '{solve_option_obj.verbose_name}' "
 msgstr ""
 
-#: aleksis/core/views.py:926
+#: aleksis/core/views.py:886
 msgid "The requested solve option does not exist"
 msgstr ""
 
-#: aleksis/core/views.py:958
+#: aleksis/core/views.py:919
 msgid "The dashboard widget has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:988
+#: aleksis/core/views.py:949
 msgid "The dashboard widget has been created."
 msgstr ""
 
-#: aleksis/core/views.py:998
+#: aleksis/core/views.py:959
 msgid "The dashboard widget has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1069
+#: aleksis/core/views.py:1030
 msgid "Your dashboard configuration has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1071
+#: aleksis/core/views.py:1032
 msgid "The configuration of the default dashboard has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1147
+#: aleksis/core/views.py:1103
 #, python-brace-format
 msgid "The invitation was successfully created. The invitation code is {code}"
 msgstr ""
 
-#: aleksis/core/views.py:1238
+#: aleksis/core/views.py:1200
 msgid "We have successfully assigned the permissions."
 msgstr ""
 
-#: aleksis/core/views.py:1248
+#: aleksis/core/views.py:1210
 msgid "The global user permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1258
+#: aleksis/core/views.py:1220
 msgid "The global group permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1268
+#: aleksis/core/views.py:1230
 msgid "The object user permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1278
+#: aleksis/core/views.py:1240
 msgid "The object group permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1346
-msgid "The requested PDF file does not exist"
-msgstr ""
-
-#: aleksis/core/views.py:1355 aleksis/core/views.py:1359
-msgid "The requested task does not exist or is not accessible"
-msgstr ""
-
-#: aleksis/core/views.py:1411
+#: aleksis/core/views.py:1349
 msgid "The third-party account could not be disconnected because it is the only login method available."
 msgstr ""
 
-#: aleksis/core/views.py:1418
+#: aleksis/core/views.py:1356
 msgid "The third-party account has been successfully disconnected."
 msgstr ""
 
-#: aleksis/core/views.py:1489
+#: aleksis/core/views.py:1432
 msgid "Person was invited successfully and an email with further instructions has been send to them."
 msgstr ""
 
-#: aleksis/core/views.py:1500
+#: aleksis/core/views.py:1443
 msgid "Person was already invited."
 msgstr ""
 
-#: aleksis/core/views.py:1600
-msgid "iCal feed updated successfully"
-msgstr ""
+#~ msgid "Dashboard"
+#~ msgstr "Forum"
 
-#: aleksis/core/views.py:1610
-msgid "iCal feed deleted successfully"
-msgstr ""
+#~ msgid "Admin"
+#~ msgstr "Administratio"
 
-#: aleksis/core/views.py:1618
-msgid "iCal feed created successfully"
-msgstr ""
+#~ msgid "Data management"
+#~ msgstr "Adminstratio datarum"
+
+#, fuzzy
+#~| msgid "Notification"
+#~ msgid "Configuration"
+#~ msgstr "Nuntius"
+
+#~ msgid "People"
+#~ msgstr "Personae"
+
+#, fuzzy
+#~| msgid "Stop impersonation"
+#~ msgid "Invite person"
+#~ msgstr "Simulandum aliquem finire"
+
+#~ msgid "Stop impersonation"
+#~ msgstr "Simulandum aliquem finire"
+
+#, fuzzy
+#~| msgid "Persons and accounts"
+#~ msgid "Third-party accounts"
+#~ msgstr "Personae et computi"
+
+#~ msgid "Logout"
+#~ msgstr "nomen retractare"
+
+#, fuzzy
+#~| msgid "Notifications"
+#~ msgid "Recent notifications"
+#~ msgstr "Nuntii"
+
+#, fuzzy
+#~| msgid "Edit school information"
+#~ msgid "More information →"
+#~ msgstr "Muta informationes scolae"
+
+#, fuzzy
+#~| msgid "Edit school information"
+#~ msgid "Licence information"
+#~ msgstr "Muta informationes scolae"
+
+#, fuzzy
+#~| msgid "Edit school information"
+#~ msgid "More information about the EUPL"
+#~ msgstr "Muta informationes scolae"
+
+#, fuzzy
+#~| msgid "Impersonation"
+#~ msgid "Impersonate"
+#~ msgstr "Simulare aliquem"
+
+#, fuzzy
+#~| msgid "Impersonation"
+#~ msgid "Invite user"
+#~ msgstr "Simulare aliquem"
 
 #, fuzzy
 #~| msgid "Street number"
diff --git a/aleksis/core/locale/la/LC_MESSAGES/djangojs.po b/aleksis/core/locale/la/LC_MESSAGES/djangojs.po
index 26f9dbd80e1c93710efaf2abf60ffd0754e043b6..726d9cab18b9d431a74d68ffb2df35db6aff97b5 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: 2022-06-25 12:09+0200\n"
+"POT-Creation-Date: 2023-01-22 20:49+0100\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"
@@ -28,7 +28,3 @@ msgstr ""
 #: aleksis/core/static/js/main.js:68
 msgid "OK"
 msgstr ""
-
-#: aleksis/core/static/js/main.js:195
-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 a4ef0700a3b00bab188af924342dd605c6624b21..2ea99e7cad1be5a61c71b50784fec05db9003c9d 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: 2022-06-25 12:09+0200\n"
+"POT-Creation-Date: 2023-01-22 20:49+0100\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"
@@ -17,34 +17,33 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: aleksis/core/apps.py:166
+#: aleksis/core/apps.py:155
 msgid "OpenID Connect scope"
 msgstr ""
 
-#: aleksis/core/apps.py:167
+#: aleksis/core/apps.py:156
 msgid "Given name, family name, link to profile and picture if existing."
 msgstr ""
 
-#: aleksis/core/apps.py:168
+#: aleksis/core/apps.py:157
 msgid "Full home postal address"
 msgstr ""
 
-#: aleksis/core/apps.py:169
+#: aleksis/core/apps.py:158
 msgid "Email address"
 msgstr ""
 
-#: aleksis/core/apps.py:170
+#: aleksis/core/apps.py:159
 msgid "Home and mobile phone"
 msgstr ""
 
-#: aleksis/core/apps.py:171 aleksis/core/forms.py:220 aleksis/core/menus.py:171
+#: aleksis/core/apps.py:160 aleksis/core/forms.py:220
 #: aleksis/core/models.py:494 aleksis/core/templates/core/group/list.html:8
 #: aleksis/core/templates/core/group/list.html:9
-#: aleksis/core/templates/core/person/full.html:246
 msgid "Groups"
 msgstr ""
 
-#: aleksis/core/data_checks.py:59
+#: aleksis/core/data_checks.py:60
 msgid "Ignore problem"
 msgstr ""
 
@@ -53,49 +52,29 @@ msgstr ""
 msgid "Solve option '{solve_option_obj.verbose_name}' "
 msgstr ""
 
-#: aleksis/core/data_checks.py:294
+#: aleksis/core/data_checks.py:284
 msgid "Deactivate DashboardWidget"
 msgstr ""
 
-#: aleksis/core/data_checks.py:306
+#: aleksis/core/data_checks.py:296
 msgid "Ensure that there are no broken DashboardWidgets."
 msgstr ""
 
-#: aleksis/core/data_checks.py:307
+#: aleksis/core/data_checks.py:297
 msgid "The DashboardWidget was reported broken automatically."
 msgstr ""
 
-#: aleksis/core/data_checks.py:330
+#: aleksis/core/data_checks.py:320
 #, python-format
 msgid "Validate field %s of model %s."
 msgstr ""
 
-#: aleksis/core/data_checks.py:332
+#: aleksis/core/data_checks.py:322
 #, python-format
 msgid "The field %s couldn't be validated successfully."
 msgstr ""
 
-#: aleksis/core/feeds.py:52
-msgid "Birthday Calendar"
-msgstr ""
-
-#: aleksis/core/feeds.py:53
-msgid "A Calendar of Birthdays"
-msgstr ""
-
-#: aleksis/core/feeds.py:66
-#, python-format
-msgid "%(name)s's birthday"
-msgstr ""
-
-#: aleksis/core/feeds.py:71
-#, python-format
-msgid "%(name)s was born on %(birthday)s"
-msgstr ""
-
-#: aleksis/core/filters.py:42 aleksis/core/templates/core/base.html:139
-#: aleksis/core/templates/core/base.html:140
-#: aleksis/core/templates/core/group/list.html:20
+#: aleksis/core/filters.py:42 aleksis/core/templates/core/group/list.html:20
 #: aleksis/core/templates/core/person/list.html:24
 #: aleksis/core/templates/search/search.html:7
 #: aleksis/core/templates/search/search.html:22
@@ -167,8 +146,7 @@ msgid "Common data"
 msgstr ""
 
 #: aleksis/core/forms.py:155 aleksis/core/forms.py:207
-#: aleksis/core/menus.py:160 aleksis/core/models.py:164
-#: aleksis/core/templates/core/person/list.html:8
+#: aleksis/core/models.py:164 aleksis/core/templates/core/person/list.html:8
 #: aleksis/core/templates/core/person/list.html:9
 msgid "Persons"
 msgstr ""
@@ -257,7 +235,7 @@ msgid "You must select at least one group or person which should get the permiss
 msgstr ""
 
 #: aleksis/core/forms.py:499
-msgid "You must grant the permission to all objects and/or to some objects."
+msgid "You must grant the permission to all objects or to specific objects."
 msgstr ""
 
 #: aleksis/core/forms.py:586
@@ -276,15 +254,15 @@ msgstr ""
 msgid "Password (again)"
 msgstr ""
 
-#: aleksis/core/forms.py:728
+#: aleksis/core/forms.py:761
 msgid "The selected action does not exist."
 msgstr ""
 
-#: aleksis/core/forms.py:739
+#: aleksis/core/forms.py:772
 msgid "You do not have permission to run {} on all selected objects."
 msgstr ""
 
-#: aleksis/core/forms.py:795
+#: aleksis/core/forms.py:828
 msgid "No valid selection."
 msgstr ""
 
@@ -308,160 +286,6 @@ msgstr ""
 msgid "No backup result found!"
 msgstr ""
 
-#: aleksis/core/menus.py:7 aleksis/core/templates/two_factor/core/login.html:6
-#: aleksis/core/templates/two_factor/core/login.html:32
-#: aleksis/core/templates/two_factor/core/login.html:95
-msgid "Login"
-msgstr ""
-
-#: aleksis/core/menus.py:13 aleksis/core/templates/account/signup.html:22
-#: aleksis/core/templates/socialaccount/signup.html:23
-msgid "Sign up"
-msgstr ""
-
-#: aleksis/core/menus.py:22 aleksis/core/templates/invitations/enter.html:7
-msgid "Accept invitation"
-msgstr ""
-
-#: aleksis/core/menus.py:31
-msgid "Dashboard"
-msgstr ""
-
-#: aleksis/core/menus.py:39
-msgid "Admin"
-msgstr ""
-
-#: aleksis/core/menus.py:47 aleksis/core/models.py:872
-#: aleksis/core/templates/core/announcement/list.html:7
-#: aleksis/core/templates/core/announcement/list.html:8
-msgid "Announcements"
-msgstr ""
-
-#: aleksis/core/menus.py:58 aleksis/core/models.py:142
-#: aleksis/core/templates/core/school_term/list.html:8
-#: aleksis/core/templates/core/school_term/list.html:9
-msgid "School terms"
-msgstr ""
-
-#: aleksis/core/menus.py:69
-#: aleksis/core/templates/core/dashboard_widget/list.html:8
-#: aleksis/core/templates/core/dashboard_widget/list.html:9
-msgid "Dashboard widgets"
-msgstr ""
-
-#: aleksis/core/menus.py:80
-#: aleksis/core/templates/core/management/data_management.html:6
-#: aleksis/core/templates/core/management/data_management.html:7
-msgid "Data management"
-msgstr ""
-
-#: aleksis/core/menus.py:91
-#: aleksis/core/templates/core/pages/system_status.html:5
-#: aleksis/core/templates/core/pages/system_status.html:7
-msgid "System status"
-msgstr ""
-
-#: aleksis/core/menus.py:102
-msgid "Configuration"
-msgstr ""
-
-#: aleksis/core/menus.py:113 aleksis/core/templates/core/data_check/list.html:9
-#: aleksis/core/templates/core/data_check/list.html:10
-msgid "Data checks"
-msgstr ""
-
-#: aleksis/core/menus.py:119 aleksis/core/templates/core/perms/list.html:13
-#: aleksis/core/templates/core/perms/list.html:14
-msgid "Manage permissions"
-msgstr ""
-
-#: aleksis/core/menus.py:130
-msgid "Backend Admin"
-msgstr ""
-
-#: aleksis/core/menus.py:138
-#: aleksis/core/templates/oauth2_provider/application/list.html:5
-#: aleksis/core/templates/oauth2_provider/application/list.html:6
-msgid "OAuth2 Applications"
-msgstr ""
-
-#: aleksis/core/menus.py:151
-msgid "People"
-msgstr ""
-
-#: aleksis/core/menus.py:182 aleksis/core/models.py:1111
-#: aleksis/core/templates/core/group_type/list.html:8
-#: aleksis/core/templates/core/group_type/list.html:9
-msgid "Group types"
-msgstr ""
-
-#: aleksis/core/menus.py:193
-msgid "Groups and child groups"
-msgstr ""
-
-#: aleksis/core/menus.py:204 aleksis/core/models.py:542
-#: aleksis/core/templates/core/additional_field/list.html:8
-#: aleksis/core/templates/core/additional_field/list.html:9
-msgid "Additional fields"
-msgstr ""
-
-#: aleksis/core/menus.py:215
-msgid "Invite person"
-msgstr ""
-
-#: aleksis/core/menus.py:228
-#: aleksis/core/templates/core/group/child_groups.html:7
-#: aleksis/core/templates/core/group/child_groups.html:9
-msgid "Assign child groups to groups"
-msgstr ""
-
-#: aleksis/core/menus.py:240
-msgid "Stop impersonation"
-msgstr ""
-
-#: aleksis/core/menus.py:249
-msgid "Account"
-msgstr ""
-
-#: aleksis/core/menus.py:258
-#: aleksis/core/templates/dynamic_preferences/form.html:5
-msgid "Preferences"
-msgstr ""
-
-#: aleksis/core/menus.py:267
-msgid "2FA"
-msgstr ""
-
-#: aleksis/core/menus.py:275
-#: aleksis/core/templates/account/password_change.html:5
-#: aleksis/core/templates/account/password_change.html:6
-#: aleksis/core/templates/account/password_change.html:19
-#: aleksis/core/templates/account/password_reset_from_key.html:5
-#: aleksis/core/templates/account/password_reset_from_key.html:42
-#: aleksis/core/templates/account/password_reset_from_key.html:46
-#: aleksis/core/templates/account/password_reset_from_key_done.html:5
-#: aleksis/core/templates/account/password_reset_from_key_done.html:6
-msgid "Change password"
-msgstr ""
-
-#: aleksis/core/menus.py:287
-msgid "Third-party accounts"
-msgstr ""
-
-#: aleksis/core/menus.py:296
-#: 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:305
-msgid "Calendar Feeds"
-msgstr ""
-
-#: aleksis/core/menus.py:318
-msgid "Logout"
-msgstr ""
-
 #: aleksis/core/mixins.py:511
 msgid "Linked school term"
 msgstr ""
@@ -507,7 +331,6 @@ msgid "URL / Link"
 msgstr ""
 
 #: aleksis/core/models.py:105 aleksis/core/models.py:1077
-#: aleksis/core/models.py:1384
 msgid "Name"
 msgstr ""
 
@@ -527,8 +350,13 @@ msgstr ""
 msgid "There is already a school term for this time or a part of this time."
 msgstr ""
 
-#: aleksis/core/models.py:163 aleksis/core/models.py:1024
-#: aleksis/core/models.py:1381
+#: aleksis/core/models.py:142
+#: aleksis/core/templates/core/school_term/list.html:8
+#: aleksis/core/templates/core/school_term/list.html:9
+msgid "School terms"
+msgstr ""
+
+#: aleksis/core/models.py:163 aleksis/core/models.py:1026
 msgid "Person"
 msgstr ""
 
@@ -568,7 +396,7 @@ msgstr ""
 msgid "other"
 msgstr ""
 
-#: aleksis/core/models.py:189 aleksis/core/models.py:1283
+#: aleksis/core/models.py:189 aleksis/core/models.py:1345
 msgid "Linked user"
 msgstr ""
 
@@ -577,6 +405,7 @@ msgid "Additional name(s)"
 msgstr ""
 
 #: aleksis/core/models.py:199 aleksis/core/models.py:511
+#: aleksis/core/models.py:1431
 msgid "Short name"
 msgstr ""
 
@@ -596,11 +425,11 @@ msgstr ""
 msgid "Place"
 msgstr ""
 
-#: aleksis/core/models.py:207 aleksis/core/templates/core/person/full.html:160
+#: aleksis/core/models.py:207
 msgid "Home phone"
 msgstr ""
 
-#: aleksis/core/models.py:208 aleksis/core/templates/core/person/full.html:170
+#: aleksis/core/models.py:208
 msgid "Mobile phone"
 msgstr ""
 
@@ -628,7 +457,7 @@ msgstr ""
 msgid "This is a picture or an avatar for public display."
 msgstr ""
 
-#: aleksis/core/models.py:234 aleksis/core/templates/core/person/full.html:235
+#: aleksis/core/models.py:234
 msgid "Guardians / Parents"
 msgstr ""
 
@@ -637,7 +466,7 @@ msgid "Primary group"
 msgstr ""
 
 #: aleksis/core/models.py:244 aleksis/core/models.py:724
-#: aleksis/core/models.py:748 aleksis/core/models.py:839
+#: aleksis/core/models.py:748 aleksis/core/models.py:843
 #: aleksis/core/models.py:1104
 msgid "Description"
 msgstr ""
@@ -674,7 +503,7 @@ msgstr ""
 msgid "Can view statistics about group."
 msgstr ""
 
-#: aleksis/core/models.py:509
+#: aleksis/core/models.py:509 aleksis/core/models.py:1432
 msgid "Long name"
 msgstr ""
 
@@ -694,8 +523,14 @@ msgstr ""
 msgid "Type of group"
 msgstr ""
 
+#: aleksis/core/models.py:542
+#: aleksis/core/templates/core/additional_field/list.html:8
+#: aleksis/core/templates/core/additional_field/list.html:9
+msgid "Additional fields"
+msgstr ""
+
 #: aleksis/core/models.py:723 aleksis/core/models.py:747
-#: aleksis/core/models.py:838
+#: aleksis/core/models.py:842 aleksis/core/models.py:1262
 #: aleksis/core/templates/core/announcement/list.html:18
 msgid "Title"
 msgstr ""
@@ -724,166 +559,175 @@ msgstr ""
 msgid "Link"
 msgstr ""
 
-#: aleksis/core/models.py:751
+#: aleksis/core/models.py:752 aleksis/core/models.py:1079
+#: aleksis/core/models.py:1392
+#: aleksis/core/templates/oauth2_provider/application/detail.html:26
+msgid "Icon"
+msgstr ""
+
+#: aleksis/core/models.py:755
 msgid "Send notification at"
 msgstr ""
 
-#: aleksis/core/models.py:753
+#: aleksis/core/models.py:757
 msgid "Read"
 msgstr ""
 
-#: aleksis/core/models.py:754
+#: aleksis/core/models.py:758
 msgid "Sent"
 msgstr ""
 
-#: aleksis/core/models.py:771
+#: aleksis/core/models.py:775
 msgid "Notification"
 msgstr ""
 
-#: aleksis/core/models.py:772 aleksis/core/preferences.py:29
-#: aleksis/core/templates/core/base.html:81
-#: aleksis/core/templates/core/notifications.html:4
-#: aleksis/core/templates/core/notifications.html:5
+#: aleksis/core/models.py:776 aleksis/core/preferences.py:29
 msgid "Notifications"
 msgstr ""
 
-#: aleksis/core/models.py:840
+#: aleksis/core/models.py:844
 msgid "Link to detailed view"
 msgstr ""
 
-#: aleksis/core/models.py:843
+#: aleksis/core/models.py:847
 msgid "Date and time from when to show"
 msgstr ""
 
-#: aleksis/core/models.py:846
+#: aleksis/core/models.py:850
 msgid "Date and time until when to show"
 msgstr ""
 
-#: aleksis/core/models.py:871
+#: aleksis/core/models.py:875
 msgid "Announcement"
 msgstr ""
 
-#: aleksis/core/models.py:909
+#: aleksis/core/models.py:876
+#: aleksis/core/templates/core/announcement/list.html:7
+#: aleksis/core/templates/core/announcement/list.html:8
+msgid "Announcements"
+msgstr ""
+
+#: aleksis/core/models.py:913
 msgid "Announcement recipient"
 msgstr ""
 
-#: aleksis/core/models.py:910
+#: aleksis/core/models.py:914
 msgid "Announcement recipients"
 msgstr ""
 
-#: aleksis/core/models.py:932
+#: aleksis/core/models.py:934
 msgid "Widget Title"
 msgstr ""
 
-#: aleksis/core/models.py:933
+#: aleksis/core/models.py:935
 msgid "Activate Widget"
 msgstr ""
 
-#: aleksis/core/models.py:934
+#: aleksis/core/models.py:936
 msgid "Widget is broken"
 msgstr ""
 
-#: aleksis/core/models.py:937
+#: aleksis/core/models.py:939
 msgid "Size on mobile devices"
 msgstr ""
 
-#: aleksis/core/models.py:938
+#: aleksis/core/models.py:940
 msgid "<= 600 px, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:943
+#: aleksis/core/models.py:945
 msgid "Size on tablet devices"
 msgstr ""
 
-#: aleksis/core/models.py:944
+#: aleksis/core/models.py:946
 msgid "> 600 px, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:949
+#: aleksis/core/models.py:951
 msgid "Size on desktop devices"
 msgstr ""
 
-#: aleksis/core/models.py:950
+#: aleksis/core/models.py:952
 msgid "> 992 px, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:955
+#: aleksis/core/models.py:957
 msgid "Size on large desktop devices"
 msgstr ""
 
-#: aleksis/core/models.py:956
+#: aleksis/core/models.py:958
 msgid "> 1200 px>, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:987
+#: aleksis/core/models.py:989
 msgid "Can edit default dashboard"
 msgstr ""
 
-#: aleksis/core/models.py:988
+#: aleksis/core/models.py:990
 msgid "Dashboard Widget"
 msgstr ""
 
-#: aleksis/core/models.py:989
+#: aleksis/core/models.py:991
 msgid "Dashboard Widgets"
 msgstr ""
 
-#: aleksis/core/models.py:995
+#: aleksis/core/models.py:997
 msgid "URL"
 msgstr ""
 
-#: aleksis/core/models.py:996
+#: aleksis/core/models.py:998
 msgid "Icon URL"
 msgstr ""
 
-#: aleksis/core/models.py:1002
+#: aleksis/core/models.py:1004
 msgid "External link widget"
 msgstr ""
 
-#: aleksis/core/models.py:1003
+#: aleksis/core/models.py:1005
 msgid "External link widgets"
 msgstr ""
 
-#: aleksis/core/models.py:1009
+#: aleksis/core/models.py:1011
 msgid "Content"
 msgstr ""
 
-#: aleksis/core/models.py:1015
+#: aleksis/core/models.py:1017
 msgid "Static content widget"
 msgstr ""
 
-#: aleksis/core/models.py:1016
+#: aleksis/core/models.py:1018
 msgid "Static content widgets"
 msgstr ""
 
-#: aleksis/core/models.py:1021
+#: aleksis/core/models.py:1023
 msgid "Dashboard widget"
 msgstr ""
 
-#: aleksis/core/models.py:1026
+#: aleksis/core/models.py:1028
 msgid "Order"
 msgstr ""
 
-#: aleksis/core/models.py:1027
+#: aleksis/core/models.py:1029
 msgid "Part of the default dashboard"
 msgstr ""
 
-#: aleksis/core/models.py:1042
+#: aleksis/core/models.py:1044
 msgid "Dashboard widget order"
 msgstr ""
 
-#: aleksis/core/models.py:1043
+#: aleksis/core/models.py:1045
 msgid "Dashboard widget orders"
 msgstr ""
 
-#: aleksis/core/models.py:1049
+#: aleksis/core/models.py:1051
 msgid "Menu ID"
 msgstr ""
 
-#: aleksis/core/models.py:1062
+#: aleksis/core/models.py:1064
 msgid "Custom menu"
 msgstr ""
 
-#: aleksis/core/models.py:1063
+#: aleksis/core/models.py:1065
 msgid "Custom menus"
 msgstr ""
 
@@ -891,11 +735,6 @@ msgstr ""
 msgid "Menu"
 msgstr ""
 
-#: aleksis/core/models.py:1079 aleksis/core/models.py:1330
-#: aleksis/core/templates/oauth2_provider/application/detail.html:26
-msgid "Icon"
-msgstr ""
-
 #: aleksis/core/models.py:1085
 msgid "Custom menu item"
 msgstr ""
@@ -912,6 +751,12 @@ msgstr ""
 msgid "Group type"
 msgstr ""
 
+#: aleksis/core/models.py:1111
+#: aleksis/core/templates/core/group_type/list.html:8
+#: aleksis/core/templates/core/group_type/list.html:9
+msgid "Group types"
+msgstr ""
+
 #: aleksis/core/models.py:1124
 msgid "Can view system status"
 msgstr ""
@@ -988,64 +833,116 @@ msgstr ""
 msgid "File expires at"
 msgstr ""
 
-#: aleksis/core/models.py:1239
+#: aleksis/core/models.py:1240
 msgid "Generated HTML file"
 msgstr ""
 
-#: aleksis/core/models.py:1241
+#: aleksis/core/models.py:1243
 msgid "Generated PDF file"
 msgstr ""
 
-#: aleksis/core/models.py:1248
+#: aleksis/core/models.py:1250
 msgid "PDF file"
 msgstr ""
 
-#: aleksis/core/models.py:1249
+#: aleksis/core/models.py:1251
 msgid "PDF files"
 msgstr ""
 
-#: aleksis/core/models.py:1254
+#: aleksis/core/models.py:1256
 msgid "Task result"
 msgstr ""
 
-#: aleksis/core/models.py:1257
+#: aleksis/core/models.py:1259
 msgid "Task user"
 msgstr ""
 
+#: aleksis/core/models.py:1263
+msgid "Back URL"
+msgstr ""
+
+#: aleksis/core/models.py:1264
+msgid "Progress title"
+msgstr ""
+
+#: aleksis/core/models.py:1265
+msgid "Error message"
+msgstr ""
+
+#: aleksis/core/models.py:1266
+msgid "Success message"
+msgstr ""
+
+#: aleksis/core/models.py:1267
+msgid "Redirect on success URL"
+msgstr ""
+
 #: aleksis/core/models.py:1269
+msgid "Additional button title"
+msgstr ""
+
+#: aleksis/core/models.py:1271
+msgid "Additional button URL"
+msgstr ""
+
+#: aleksis/core/models.py:1273
+msgid "Additional button icon"
+msgstr ""
+
+#: aleksis/core/models.py:1275
+msgid "Result fetched"
+msgstr ""
+
+#: aleksis/core/models.py:1300
+msgid "Background task completed successfully"
+msgstr ""
+
+#: aleksis/core/models.py:1301
+msgid "The background task '{}' has been completed successfully."
+msgstr ""
+
+#: aleksis/core/models.py:1307
+msgid "Background task failed"
+msgstr ""
+
+#: aleksis/core/models.py:1308
+msgid "The background task '{}' has failed."
+msgstr ""
+
+#: aleksis/core/models.py:1317
+msgid "Background task"
+msgstr ""
+
+#: aleksis/core/models.py:1331
 msgid "Task user assignment"
 msgstr ""
 
-#: aleksis/core/models.py:1270
+#: aleksis/core/models.py:1332
 msgid "Task user assignments"
 msgstr ""
 
-#: aleksis/core/models.py:1286
+#: aleksis/core/models.py:1348
 msgid "Additional attributes"
 msgstr ""
 
-#: aleksis/core/models.py:1324
+#: aleksis/core/models.py:1386
 msgid "Allowed scopes that clients can request"
 msgstr ""
 
-#: aleksis/core/models.py:1334
+#: aleksis/core/models.py:1396
 msgid "This image will be shown as icon in the authorization flow. It should be squared."
 msgstr ""
 
-#: aleksis/core/models.py:1383
-msgid "UUID"
+#: aleksis/core/models.py:1441
+msgid "Can view room timetable"
 msgstr ""
 
-#: aleksis/core/models.py:1387
-msgid "Selected ICal feed"
+#: aleksis/core/models.py:1443
+msgid "Room"
 msgstr ""
 
-#: aleksis/core/models.py:1396
-msgid "Personal Calendar URL"
-msgstr ""
-
-#: aleksis/core/models.py:1397
-msgid "Personal Calendar URLs"
+#: aleksis/core/models.py:1444
+msgid "Rooms"
 msgstr ""
 
 #: aleksis/core/preferences.py:25
@@ -1136,135 +1033,141 @@ msgstr ""
 msgid "Channels to use for notifications"
 msgstr ""
 
-#: aleksis/core/preferences.py:209
+#: aleksis/core/preferences.py:208
+msgid "Select Design"
+msgstr ""
+
+#: aleksis/core/preferences.py:211
+msgid "Light mode"
+msgstr ""
+
+#: aleksis/core/preferences.py:224
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr ""
 
-#: aleksis/core/preferences.py:220
+#: aleksis/core/preferences.py:235
 msgid "Field on person to match primary group against"
 msgstr ""
 
-#: aleksis/core/preferences.py:232
+#: aleksis/core/preferences.py:247
 msgid "Automatically create new persons for new users"
 msgstr ""
 
-#: aleksis/core/preferences.py:241
+#: aleksis/core/preferences.py:256
 msgid "Automatically link existing persons to new users by their e-mail address"
 msgstr ""
 
-#: aleksis/core/preferences.py:252
+#: aleksis/core/preferences.py:267
 msgid "Display name of the school"
 msgstr ""
 
-#: aleksis/core/preferences.py:263
+#: aleksis/core/preferences.py:278
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr ""
 
-#: aleksis/core/preferences.py:271
+#: aleksis/core/preferences.py:286
 msgid "Allow users to change their passwords"
 msgstr ""
 
-#: aleksis/core/preferences.py:279
+#: aleksis/core/preferences.py:294
 msgid "Allow users to reset their passwords"
 msgstr ""
 
-#: aleksis/core/preferences.py:287
+#: aleksis/core/preferences.py:302
 msgid "Enable signup"
 msgstr ""
 
-#: aleksis/core/preferences.py:295
+#: aleksis/core/preferences.py:310
 msgid "Regular expression for allowed usernames"
 msgstr ""
 
-#: aleksis/core/preferences.py:303
+#: aleksis/core/preferences.py:318
 msgid "Enable invitations"
 msgstr ""
 
-#: aleksis/core/preferences.py:311
+#: aleksis/core/preferences.py:326
 msgid "Length of invite code. (Default 3: abcde-acbde-abcde)"
 msgstr ""
 
-#: aleksis/core/preferences.py:319
+#: aleksis/core/preferences.py:334
 msgid "Size of packets. (Default 5: abcde)"
 msgstr ""
 
-#: aleksis/core/preferences.py:330
+#: aleksis/core/preferences.py:345
 msgid "Allowed Grant Flows for OAuth applications"
 msgstr ""
 
-#: aleksis/core/preferences.py:343
+#: aleksis/core/preferences.py:358
 msgid "Send emails if data checks detect problems"
 msgstr ""
 
-#: aleksis/core/preferences.py:354
+#: aleksis/core/preferences.py:369
 msgid "Email recipients for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:365
+#: aleksis/core/preferences.py:380
 msgid "Email recipient groups for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:374
+#: aleksis/core/preferences.py:389
 msgid "Show dashboard to users without login"
 msgstr ""
 
-#: aleksis/core/preferences.py:383
+#: aleksis/core/preferences.py:398
 msgid "Allow users to edit their dashboard"
 msgstr ""
 
-#: aleksis/core/preferences.py:394
+#: aleksis/core/preferences.py:409
 msgid "Fields on person model which are editable by themselves."
 msgstr ""
 
-#: aleksis/core/preferences.py:409
+#: aleksis/core/preferences.py:424
 msgid "Editable fields on person model which should trigger a notification on change"
 msgstr ""
 
-#: aleksis/core/preferences.py:423
+#: aleksis/core/preferences.py:438
 msgid "Contact for notification if a person changes their data"
 msgstr ""
 
-#: aleksis/core/preferences.py:434
+#: aleksis/core/preferences.py:449
 msgid "Prefer personal photos over avatars"
 msgstr ""
 
-#: aleksis/core/preferences.py:444
+#: aleksis/core/preferences.py:459
 msgid "PDF file expiration duration"
 msgstr ""
 
-#: aleksis/core/preferences.py:445
+#: aleksis/core/preferences.py:460
 msgid "in minutes"
 msgstr ""
 
-#: aleksis/core/preferences.py:455
+#: aleksis/core/preferences.py:470
 msgid "Automatically update the dashboard and its widgets"
 msgstr ""
 
-#: aleksis/core/preferences.py:465
+#: aleksis/core/preferences.py:480
 msgid "Automatically update the dashboard and its widgets sitewide"
 msgstr ""
 
-#: aleksis/core/preferences.py:475
+#: aleksis/core/preferences.py:490
 msgid "Country for phone number parsing"
 msgstr ""
 
-#: aleksis/core/settings.py:541
+#: aleksis/core/settings.py:539
 msgid "English"
 msgstr ""
 
-#: aleksis/core/settings.py:542
+#: aleksis/core/settings.py:540
 msgid "German"
 msgstr ""
 
-#: aleksis/core/settings.py:543
+#: aleksis/core/settings.py:541
 msgid "Ukrainian"
 msgstr ""
 
 #: aleksis/core/tables.py:25
 #: aleksis/core/templates/core/announcement/list.html:36
 #: aleksis/core/templates/core/group/full.html:26
-#: aleksis/core/templates/core/person/full.html:26
-#: aleksis/core/templates/core/person/full.html:86
 #: aleksis/core/templates/oauth2_provider/application/detail.html:17
 msgid "Edit"
 msgstr ""
@@ -1281,15 +1184,12 @@ msgstr ""
 #: aleksis/core/templates/core/announcement/list.html:42
 #: aleksis/core/templates/core/group/full.html:33
 #: aleksis/core/templates/core/pages/delete.html:22
-#: aleksis/core/templates/core/person/full.html:33
-#: aleksis/core/templates/core/person/full.html:93
 #: aleksis/core/templates/oauth2_provider/application/detail.html:21
 msgid "Delete"
 msgstr ""
 
 #: aleksis/core/templates/403.html:14 aleksis/core/templates/500.html:10
 #: aleksis/core/templates/oauth2_provider/authorize.html:54
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:24
 msgid "Error"
 msgstr ""
 
@@ -1388,6 +1288,17 @@ msgstr ""
 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 ""
 
+#: aleksis/core/templates/account/password_change.html:5
+#: aleksis/core/templates/account/password_change.html:6
+#: aleksis/core/templates/account/password_change.html:19
+#: aleksis/core/templates/account/password_reset_from_key.html:5
+#: aleksis/core/templates/account/password_reset_from_key.html:42
+#: aleksis/core/templates/account/password_reset_from_key.html:46
+#: aleksis/core/templates/account/password_reset_from_key_done.html:5
+#: aleksis/core/templates/account/password_reset_from_key_done.html:6
+msgid "Change password"
+msgstr ""
+
 #: aleksis/core/templates/account/password_change.html:12
 msgid "Forgot your current password? Click here to reset it:"
 msgstr ""
@@ -1501,6 +1412,11 @@ msgstr ""
 msgid "Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>."
 msgstr ""
 
+#: aleksis/core/templates/account/signup.html:22
+#: aleksis/core/templates/socialaccount/signup.html:23
+msgid "Sign up"
+msgstr ""
+
 #: aleksis/core/templates/account/signup_closed.html:5
 #: aleksis/core/templates/account/signup_closed.html:6
 msgid "Signup closed"
@@ -1591,18 +1507,6 @@ msgstr ""
 msgid "There are no announcements."
 msgstr ""
 
-#: aleksis/core/templates/core/base.html:213
-msgid "About AlekSIS® — The Free School Information System"
-msgstr ""
-
-#: aleksis/core/templates/core/base.html:221
-msgid "Imprint"
-msgstr ""
-
-#: aleksis/core/templates/core/base.html:229
-msgid "Privacy Policy"
-msgstr ""
-
 #: aleksis/core/templates/core/base_print.html:74
 msgid "Powered by AlekSIS®"
 msgstr ""
@@ -1632,6 +1536,11 @@ msgstr ""
 msgid "Edit %(widget)s"
 msgstr ""
 
+#: aleksis/core/templates/core/dashboard_widget/list.html:8
+#: aleksis/core/templates/core/dashboard_widget/list.html:9
+msgid "Dashboard widgets"
+msgstr ""
+
 #: aleksis/core/templates/core/dashboard_widget/list.html:15
 msgid "Create dashboard widget"
 msgstr ""
@@ -1647,6 +1556,11 @@ msgstr ""
 msgid "Edit default dashboard"
 msgstr ""
 
+#: aleksis/core/templates/core/data_check/list.html:9
+#: aleksis/core/templates/core/data_check/list.html:10
+msgid "Data checks"
+msgstr ""
+
 #: aleksis/core/templates/core/data_check/list.html:15
 msgid "Check data again"
 msgstr ""
@@ -1740,6 +1654,11 @@ msgstr ""
 msgid "Default dashboard"
 msgstr ""
 
+#: aleksis/core/templates/core/group/child_groups.html:7
+#: aleksis/core/templates/core/group/child_groups.html:9
+msgid "Assign child groups to groups"
+msgstr ""
+
 #: aleksis/core/templates/core/group/child_groups.html:18
 msgid ""
 "\n"
@@ -1819,8 +1738,6 @@ msgid "Edit group"
 msgstr ""
 
 #: aleksis/core/templates/core/group/full.html:40
-#: aleksis/core/templates/core/person/full.html:40
-#: aleksis/core/templates/core/person/full.html:100
 msgid "Change preferences"
 msgstr ""
 
@@ -1874,45 +1791,11 @@ msgstr ""
 msgid "Create group type"
 msgstr ""
 
-#: aleksis/core/templates/core/ical/ical_create.html:4
-#: aleksis/core/templates/core/ical/ical_create.html:5
-#: aleksis/core/templates/core/ical/ical_list.html:12
-msgid "Create iCal URL"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_create.html:16
-#: aleksis/core/templates/core/ical/ical_edit.html:16
-#: aleksis/core/templates/oauth2_provider/application/create.html:14
-#: aleksis/core/templates/oauth2_provider/application/edit.html:14
-#: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:24
-#: aleksis/core/templates/two_factor/_wizard_actions.html:6
-msgid "Cancel"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_edit.html:4
-#: aleksis/core/templates/core/ical/ical_edit.html:5
-#, python-format
-msgid "Edit iCal URL %(object)s"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_list.html:4
-#: aleksis/core/templates/core/ical/ical_list.html:5
-msgid "iCal Feeds"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_list.html:8
-msgid "These are URLs for different Calendar Feeds in the iCal (.ics) format. You can create as many as you want and import them in your calendar software."
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_list.html:14
-msgid "Your iCal URLs"
-msgstr ""
-
 #: aleksis/core/templates/core/index.html:4
 msgid "Home"
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:49
+#: aleksis/core/templates/core/index.html:34
 msgid ""
 "\n"
 "        You didn't customise your dashboard so that you see the system default. Please click on \"Edit dashboard\" to\n"
@@ -1920,101 +1803,14 @@ msgid ""
 "      "
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:59
+#: aleksis/core/templates/core/index.html:44
 msgid "Last activities"
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:77
+#: aleksis/core/templates/core/index.html:62
 msgid "No activities available yet."
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:82
-msgid "Recent notifications"
-msgstr ""
-
-#: aleksis/core/templates/core/index.html:98
-#: aleksis/core/templates/core/notifications.html:23
-msgid "More information →"
-msgstr ""
-
-#: aleksis/core/templates/core/index.html:105
-#: aleksis/core/templates/core/notifications.html:30
-msgid "No notifications available yet."
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:6
-msgid "About AlekSIS®"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:7
-msgid "AlekSIS® – The Free School Information System"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:15
-msgid "About AlekSIS"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:17
-msgid ""
-"\n"
-"              This platform is powered by AlekSIS®, a web-based school information system (SIS) which can be used\n"
-"              to manage and/or publish organisational artifacts of educational institutions. AlekSIS is free software and\n"
-"              can be used by anyone.\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:24
-msgid ""
-"\n"
-"              AlekSIS® is a registered trademark of the AlekSIS open source project, represented by Teckids e.V.\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:30
-msgid "Website of AlekSIS"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:31
-msgid "Source code"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:40
-msgid "Licence information"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:42
-msgid ""
-"\n"
-"              The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence\n"
-"              information from third-party apps, if installed, refer to the respective components below. The\n"
-"              licences are marked like this:\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:50
-msgid "Free/Open Source Licence"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:51
-msgid "Other Licence"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:55
-msgid "Full licence text"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:56
-msgid "More information about the EUPL"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:95
-#, python-format
-msgid ""
-"\n"
-"                    This app is licenced under %(licence)s.\n"
-"                  "
-msgstr ""
-
 #: aleksis/core/templates/core/pages/delete.html:6
 #, python-format
 msgid "Delete %(object_name)s"
@@ -2028,16 +1824,9 @@ msgid ""
 "    "
 msgstr ""
 
-#: aleksis/core/templates/core/pages/progress.html:27
-msgid ""
-"\n"
-"              Without activated JavaScript the progress status can't be updated.\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/progress.html:47
-#: aleksis/core/templates/two_factor/core/otp_required.html:19
-msgid "Go back"
+#: aleksis/core/templates/core/pages/system_status.html:5
+#: aleksis/core/templates/core/pages/system_status.html:7
+msgid "System status"
 msgstr ""
 
 #: aleksis/core/templates/core/pages/system_status.html:12
@@ -2163,13 +1952,11 @@ msgstr ""
 
 #: aleksis/core/templates/core/partials/avatar_content.html:14
 #: aleksis/core/templates/core/partials/avatar_content.html:15
-#: aleksis/core/templates/core/person/full.html:213
-#: aleksis/core/templates/core/person/full.html:214
 msgid "Avatar"
 msgstr ""
 
+#: aleksis/core/templates/core/partials/avatar_content.html:18
 #: aleksis/core/templates/core/partials/avatar_content.html:19
-#: aleksis/core/templates/core/partials/avatar_content.html:20
 msgid "Identicon"
 msgstr ""
 
@@ -2181,29 +1968,11 @@ msgstr ""
 msgid "Unknown"
 msgstr ""
 
-#: aleksis/core/templates/core/partials/language_form.html:17
-msgid "Language"
-msgstr ""
-
-#: aleksis/core/templates/core/partials/language_form.html:29
-msgid "Select language"
-msgstr ""
-
-#: aleksis/core/templates/core/partials/no_person.html:12
-msgid ""
-"\n"
-"            Your administrator account is not linked to any person. Therefore,\n"
-"            a dummy person has been linked to your account.\n"
-"          "
-msgstr ""
-
-#: aleksis/core/templates/core/partials/no_person.html:19
+#: aleksis/core/templates/core/partials/splash_screen.html:11
 msgid ""
 "\n"
-"            Your user account is not linked to a person. This means you\n"
-"            cannot access any school-related information. Please contact\n"
-"            the managers of AlekSIS at your school.\n"
-"          "
+"      This webbrowser doesn't support JavaScript, or its execution is blocked. Please use another browser to continue.\n"
+"    "
 msgstr ""
 
 #: aleksis/core/templates/core/perms/assign.html:12
@@ -2219,6 +1988,11 @@ msgstr ""
 msgid "Assign"
 msgstr ""
 
+#: aleksis/core/templates/core/perms/list.html:13
+#: aleksis/core/templates/core/perms/list.html:14
+msgid "Manage permissions"
+msgstr ""
+
 #: aleksis/core/templates/core/perms/list.html:21
 msgid "Assign a new permission"
 msgstr ""
@@ -2262,28 +2036,6 @@ msgstr ""
 msgid "Edit person"
 msgstr ""
 
-#: aleksis/core/templates/core/person/full.html:47
-#: aleksis/core/templates/core/person/full.html:107
-msgid "Impersonate"
-msgstr ""
-
-#: aleksis/core/templates/core/person/full.html:54
-#: aleksis/core/templates/core/person/full.html:114
-msgid "Invite user"
-msgstr ""
-
-#: aleksis/core/templates/core/person/full.html:121
-msgid "Contact details"
-msgstr ""
-
-#: aleksis/core/templates/core/person/full.html:220
-msgid "This person didn't upload a personal photo."
-msgstr ""
-
-#: aleksis/core/templates/core/person/full.html:228
-msgid "Children"
-msgstr ""
-
 #: aleksis/core/templates/core/person/list.html:21
 msgid "Filter persons"
 msgstr ""
@@ -2303,6 +2055,10 @@ msgstr ""
 msgid "Edit school term"
 msgstr ""
 
+#: aleksis/core/templates/dynamic_preferences/form.html:5
+msgid "Preferences"
+msgstr ""
+
 #: aleksis/core/templates/dynamic_preferences/form.html:9
 msgid "Site preferences"
 msgstr ""
@@ -2336,6 +2092,10 @@ msgstr ""
 msgid "site preferences page"
 msgstr ""
 
+#: aleksis/core/templates/invitations/enter.html:7
+msgid "Accept invitation"
+msgstr ""
+
 #: aleksis/core/templates/invitations/enter.html:21
 msgid "Accept your invitation"
 msgstr ""
@@ -2384,6 +2144,13 @@ msgstr ""
 msgid "Register OAuth2 Application"
 msgstr ""
 
+#: aleksis/core/templates/oauth2_provider/application/create.html:14
+#: aleksis/core/templates/oauth2_provider/application/edit.html:14
+#: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:24
+#: aleksis/core/templates/two_factor/_wizard_actions.html:6
+msgid "Cancel"
+msgstr ""
+
 #: aleksis/core/templates/oauth2_provider/application/detail.html:5
 msgid "OAuth2 Application"
 msgstr ""
@@ -2417,6 +2184,11 @@ msgstr ""
 msgid "Edit OAuth2 Application"
 msgstr ""
 
+#: aleksis/core/templates/oauth2_provider/application/list.html:5
+#: aleksis/core/templates/oauth2_provider/application/list.html:6
+msgid "OAuth2 Applications"
+msgstr ""
+
 #: aleksis/core/templates/oauth2_provider/application/list.html:11
 msgid "Register new application"
 msgstr ""
@@ -2448,14 +2220,6 @@ msgstr ""
 msgid "Disallow"
 msgstr ""
 
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:12
-msgid "Success!"
-msgstr ""
-
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:14
-msgid "Please return to your application and enter this code:"
-msgstr ""
-
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:5
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:6
 #: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
@@ -2470,6 +2234,11 @@ msgstr ""
 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 applications."
 msgstr ""
@@ -2479,13 +2248,13 @@ msgid "Network error"
 msgstr ""
 
 #: aleksis/core/templates/offline.html:10
-msgid "No internet connection."
+msgid "Page not available offline."
 msgstr ""
 
 #: aleksis/core/templates/offline.html:14
 msgid ""
 "\n"
-"      There was an error accessing this page. You probably don't have an internet connection. Check to see if your WiFi\n"
+"      This page is not available offline. Since you probably don't have an internet connection, check to see if your WiFi\n"
 "      or mobile data is turned on and try again. If you think you are connected, please contact the system\n"
 "      administrators:\n"
 "    "
@@ -2766,6 +2535,12 @@ msgstr ""
 msgid "Generate Tokens"
 msgstr ""
 
+#: aleksis/core/templates/two_factor/core/login.html:6
+#: aleksis/core/templates/two_factor/core/login.html:32
+#: aleksis/core/templates/two_factor/core/login.html:95
+msgid "Login"
+msgstr ""
+
 #: aleksis/core/templates/two_factor/core/login.html:27
 #, python-format
 msgid "Login for %(name)s"
@@ -2860,6 +2635,10 @@ msgid ""
 "          security."
 msgstr ""
 
+#: aleksis/core/templates/two_factor/core/otp_required.html:19
+msgid "Go back"
+msgstr ""
+
 #: aleksis/core/templates/two_factor/core/phone_register.html:5
 #: aleksis/core/templates/two_factor/core/phone_register.html:9
 msgid "Add Backup Phone"
@@ -3083,191 +2862,171 @@ msgstr ""
 msgid "SMS"
 msgstr ""
 
-#: aleksis/core/util/pdf.py:118
+#: aleksis/core/util/pdf.py:151
 msgid "Progress: Generate PDF file"
 msgstr ""
 
-#: aleksis/core/util/pdf.py:119
+#: aleksis/core/util/pdf.py:152
 msgid "Generating PDF file …"
 msgstr ""
 
-#: aleksis/core/util/pdf.py:120
+#: aleksis/core/util/pdf.py:153
 msgid "The PDF file has been generated successfully."
 msgstr ""
 
-#: aleksis/core/util/pdf.py:121
+#: aleksis/core/util/pdf.py:154
 msgid "There was a problem while generating the PDF file."
 msgstr ""
 
-#: aleksis/core/util/pdf.py:124
+#: aleksis/core/util/pdf.py:157
 msgid "Download PDF"
 msgstr ""
 
-#: aleksis/core/views.py:294
+#: aleksis/core/views.py:278
 msgid "The school term has been created."
 msgstr ""
 
-#: aleksis/core/views.py:306
+#: aleksis/core/views.py:290
 msgid "The school term has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:426
+#: aleksis/core/views.py:394
 msgid "The child groups were successfully saved."
 msgstr ""
 
-#: aleksis/core/views.py:445 aleksis/core/views.py:455
+#: aleksis/core/views.py:413 aleksis/core/views.py:423
 msgid "The person has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:505
+#: aleksis/core/views.py:473
 msgid "The group has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:602
+#: aleksis/core/views.py:556
 msgid "The announcement has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:618
+#: aleksis/core/views.py:572
 msgid "The announcement has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:686
+#: aleksis/core/views.py:641
 msgid "The requested preference registry does not exist"
 msgstr ""
 
-#: aleksis/core/views.py:705
+#: aleksis/core/views.py:660
 msgid "The preferences have been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:729
+#: aleksis/core/views.py:684
 msgid "The person has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:743
+#: aleksis/core/views.py:698
 msgid "The group has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:775
+#: aleksis/core/views.py:730
 msgid "The additional field has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:809
+#: aleksis/core/views.py:765
 msgid "The additional field has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:834
+#: aleksis/core/views.py:790
 msgid "The group type has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:864
+#: aleksis/core/views.py:821
 msgid "The group type has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:897
+#: aleksis/core/views.py:856
 msgid "Progress: Run data checks"
 msgstr ""
 
-#: aleksis/core/views.py:898
+#: aleksis/core/views.py:857
 msgid "Run data checks …"
 msgstr ""
 
-#: aleksis/core/views.py:899
+#: aleksis/core/views.py:858
 msgid "The data checks were run successfully."
 msgstr ""
 
-#: aleksis/core/views.py:900
+#: aleksis/core/views.py:859
 msgid "There was a problem while running data checks."
 msgstr ""
 
-#: aleksis/core/views.py:916
+#: aleksis/core/views.py:876
 #, python-brace-format
 msgid "The solve option '{solve_option_obj.verbose_name}' "
 msgstr ""
 
-#: aleksis/core/views.py:926
+#: aleksis/core/views.py:886
 msgid "The requested solve option does not exist"
 msgstr ""
 
-#: aleksis/core/views.py:958
+#: aleksis/core/views.py:919
 msgid "The dashboard widget has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:988
+#: aleksis/core/views.py:949
 msgid "The dashboard widget has been created."
 msgstr ""
 
-#: aleksis/core/views.py:998
+#: aleksis/core/views.py:959
 msgid "The dashboard widget has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1069
+#: aleksis/core/views.py:1030
 msgid "Your dashboard configuration has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1071
+#: aleksis/core/views.py:1032
 msgid "The configuration of the default dashboard has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1147
+#: aleksis/core/views.py:1103
 #, python-brace-format
 msgid "The invitation was successfully created. The invitation code is {code}"
 msgstr ""
 
-#: aleksis/core/views.py:1238
+#: aleksis/core/views.py:1200
 msgid "We have successfully assigned the permissions."
 msgstr ""
 
-#: aleksis/core/views.py:1248
+#: aleksis/core/views.py:1210
 msgid "The global user permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1258
+#: aleksis/core/views.py:1220
 msgid "The global group permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1268
+#: aleksis/core/views.py:1230
 msgid "The object user permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1278
+#: aleksis/core/views.py:1240
 msgid "The object group permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1346
-msgid "The requested PDF file does not exist"
-msgstr ""
-
-#: aleksis/core/views.py:1355 aleksis/core/views.py:1359
-msgid "The requested task does not exist or is not accessible"
-msgstr ""
-
-#: aleksis/core/views.py:1411
+#: aleksis/core/views.py:1349
 msgid "The third-party account could not be disconnected because it is the only login method available."
 msgstr ""
 
-#: aleksis/core/views.py:1418
+#: aleksis/core/views.py:1356
 msgid "The third-party account has been successfully disconnected."
 msgstr ""
 
-#: aleksis/core/views.py:1489
+#: aleksis/core/views.py:1432
 msgid "Person was invited successfully and an email with further instructions has been send to them."
 msgstr ""
 
-#: aleksis/core/views.py:1500
+#: aleksis/core/views.py:1443
 msgid "Person was already invited."
 msgstr ""
 
-#: aleksis/core/views.py:1600
-msgid "iCal feed updated successfully"
-msgstr ""
-
-#: aleksis/core/views.py:1610
-msgid "iCal feed deleted successfully"
-msgstr ""
-
-#: aleksis/core/views.py:1618
-msgid "iCal feed created successfully"
-msgstr ""
-
 #~ msgid "Norwegian (bokmål)"
 #~ msgstr "Norsk (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 26f9dbd80e1c93710efaf2abf60ffd0754e043b6..726d9cab18b9d431a74d68ffb2df35db6aff97b5 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: 2022-06-25 12:09+0200\n"
+"POT-Creation-Date: 2023-01-22 20:49+0100\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"
@@ -28,7 +28,3 @@ msgstr ""
 #: aleksis/core/static/js/main.js:68
 msgid "OK"
 msgstr ""
-
-#: aleksis/core/static/js/main.js:195
-msgid "This page may contain outdated information since there is no internet connection."
-msgstr ""
diff --git a/aleksis/core/locale/ru/LC_MESSAGES/django.po b/aleksis/core/locale/ru/LC_MESSAGES/django.po
index 378e7a1a676224c921dfb2f19c2d4cb5507c420f..90703e6c4415480c873dbdaf505af0622a2ea982 100644
--- a/aleksis/core/locale/ru/LC_MESSAGES/django.po
+++ b/aleksis/core/locale/ru/LC_MESSAGES/django.po
@@ -7,89 +7,75 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-24 19:37+0200\n"
+"POT-Creation-Date: 2023-01-22 20:49+0100\n"
 "PO-Revision-Date: 2022-07-05 12:54+0000\n"
 "Last-Translator: Serhii Horichenko <m@sgg.im>\n"
-"Language-Team: Russian <https://translate.edugit.org/projects/aleksis/"
-"aleksis-core/ru/>\n"
+"Language-Team: Russian <https://translate.edugit.org/projects/aleksis/aleksis-core/ru/>\n"
 "Language: ru\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
-"%100>=11 && n%100<=14)? 2 : 3);\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
 "X-Generator: Weblate 4.12.1\n"
 
-#: aleksis/core/apps.py:166
+#: aleksis/core/apps.py:155
 msgid "OpenID Connect scope"
 msgstr "Граница действия OpenID Connect"
 
-#: aleksis/core/apps.py:167
+#: aleksis/core/apps.py:156
 msgid "Given name, family name, link to profile and picture if existing."
 msgstr "Имя, фамилия, ссылка на профиль и фото, если есть."
 
-#: aleksis/core/apps.py:168
+#: aleksis/core/apps.py:157
 msgid "Full home postal address"
 msgstr "Полный домашний почтовый адрес"
 
-#: aleksis/core/apps.py:169
+#: aleksis/core/apps.py:158
 msgid "Email address"
 msgstr "Адрес эл.почты"
 
-#: aleksis/core/apps.py:170
+#: aleksis/core/apps.py:159
 msgid "Home and mobile phone"
 msgstr "Домашний и мобильный телефоны"
 
-#: aleksis/core/apps.py:171 aleksis/core/forms.py:220 aleksis/core/menus.py:171
-#: aleksis/core/models.py:489 aleksis/core/templates/core/group/list.html:8
+#: aleksis/core/apps.py:160 aleksis/core/forms.py:220
+#: aleksis/core/models.py:494 aleksis/core/templates/core/group/list.html:8
 #: aleksis/core/templates/core/group/list.html:9
-#: aleksis/core/templates/core/person/full.html:246
 msgid "Groups"
 msgstr "Группы"
 
-#: aleksis/core/data_checks.py:56
+#: aleksis/core/data_checks.py:60
 msgid "Ignore problem"
 msgstr "Игнорировать проблему"
 
-#: aleksis/core/data_checks.py:185
+#: aleksis/core/data_checks.py:188
 #, python-brace-format
 msgid "Solve option '{solve_option_obj.verbose_name}' "
 msgstr "Вариант решения '{solve_option_obj.verbose_name}' "
 
-#: aleksis/core/data_checks.py:291
+#: aleksis/core/data_checks.py:284
 msgid "Deactivate DashboardWidget"
 msgstr "Отключить виджет информпанели"
 
-#: aleksis/core/data_checks.py:303
+#: aleksis/core/data_checks.py:296
 msgid "Ensure that there are no broken DashboardWidgets."
 msgstr "Убедитесь в отсутствии сбойных виджетов на информапанели."
 
-#: aleksis/core/data_checks.py:304
+#: aleksis/core/data_checks.py:297
 msgid "The DashboardWidget was reported broken automatically."
 msgstr "Виджет информпанели сообщил о сбое в автоматическом режиме."
 
-#: aleksis/core/feeds.py:52
-msgid "Birthday Calendar"
-msgstr "Календарь Дней Рождения"
-
-#: aleksis/core/feeds.py:53
-msgid "A Calendar of Birthdays"
-msgstr "Календарь Дней Рождения"
-
-#: aleksis/core/feeds.py:66
+#: aleksis/core/data_checks.py:320
 #, python-format
-msgid "%(name)s's birthday"
-msgstr "%(name)s отмечает День Рождения"
+msgid "Validate field %s of model %s."
+msgstr "Проверьте поле %s модели %s."
 
-#: aleksis/core/feeds.py:71
+#: aleksis/core/data_checks.py:322
 #, python-format
-msgid "%(name)s was born on %(birthday)s"
-msgstr "%(name)s родился(-лась) %(birthday)s"
+msgid "The field %s couldn't be validated successfully."
+msgstr "Поле %s проверить не удалось."
 
-#: aleksis/core/filters.py:42 aleksis/core/templates/core/base.html:139
-#: aleksis/core/templates/core/base.html:140
-#: aleksis/core/templates/core/group/list.html:20
+#: aleksis/core/filters.py:42 aleksis/core/templates/core/group/list.html:20
 #: aleksis/core/templates/core/person/list.html:24
 #: aleksis/core/templates/search/search.html:7
 #: aleksis/core/templates/search/search.html:22
@@ -112,11 +98,11 @@ msgstr "Разрешение"
 msgid "Content type"
 msgstr "Тип содержимого"
 
-#: aleksis/core/filters.py:113 aleksis/core/models.py:715
+#: aleksis/core/filters.py:113 aleksis/core/models.py:720
 msgid "User"
 msgstr "Пользователь"
 
-#: aleksis/core/filters.py:135 aleksis/core/models.py:488
+#: aleksis/core/filters.py:135 aleksis/core/models.py:493
 msgid "Group"
 msgstr "Группа"
 
@@ -124,7 +110,7 @@ msgstr "Группа"
 msgid "Base data"
 msgstr "Основные данные"
 
-#: aleksis/core/forms.py:55
+#: aleksis/core/forms.py:55 aleksis/core/tables.py:47
 msgid "Address"
 msgstr "Адрес"
 
@@ -152,7 +138,7 @@ msgstr "После выбора существующего пользовате
 msgid "This username is already in use."
 msgstr "Этот логин уже занят."
 
-#: aleksis/core/forms.py:153 aleksis/core/models.py:136
+#: aleksis/core/forms.py:153 aleksis/core/models.py:141
 msgid "School term"
 msgstr "Учебный год"
 
@@ -161,8 +147,7 @@ msgid "Common data"
 msgstr "Общие данные"
 
 #: aleksis/core/forms.py:155 aleksis/core/forms.py:207
-#: aleksis/core/menus.py:160 aleksis/core/models.py:159
-#: aleksis/core/templates/core/person/list.html:8
+#: aleksis/core/models.py:164 aleksis/core/templates/core/person/list.html:8
 #: aleksis/core/templates/core/person/list.html:9
 msgid "Persons"
 msgstr "Люди"
@@ -171,18 +156,18 @@ msgstr "Люди"
 msgid "Additional data"
 msgstr "Дополнительные данные"
 
-#: aleksis/core/forms.py:157 aleksis/core/models.py:212
-#: aleksis/core/models.py:541
+#: aleksis/core/forms.py:157 aleksis/core/models.py:217
+#: aleksis/core/models.py:546 aleksis/core/tables.py:46
 msgid "Photo"
 msgstr "Фото"
 
 #: aleksis/core/forms.py:199 aleksis/core/forms.py:202
-#: aleksis/core/models.py:79
+#: aleksis/core/models.py:84
 msgid "Date"
 msgstr "Дата"
 
 #: aleksis/core/forms.py:200 aleksis/core/forms.py:203
-#: aleksis/core/models.py:87
+#: aleksis/core/models.py:92
 msgid "Time"
 msgstr "Время"
 
@@ -199,8 +184,7 @@ msgid "Write your announcement:"
 msgstr "Напишите свое объявление:"
 
 #: aleksis/core/forms.py:276
-msgid ""
-"You are not allowed to create announcements which are only valid in the past."
+msgid "You are not allowed to create announcements which are only valid in the past."
 msgstr "Объявления для прошлого Вам создавать не разрешено."
 
 #: aleksis/core/forms.py:280
@@ -219,11 +203,11 @@ msgstr "Код приглашения"
 msgid "Please enter your invitation code."
 msgstr "Укажите, пожалуйста, код приглашения."
 
-#: aleksis/core/forms.py:418 aleksis/core/models.py:187
+#: aleksis/core/forms.py:418 aleksis/core/models.py:192
 msgid "First name"
 msgstr "Имя"
 
-#: aleksis/core/forms.py:419 aleksis/core/models.py:188
+#: aleksis/core/forms.py:419 aleksis/core/models.py:193
 msgid "Last name"
 msgstr "Фамилия"
 
@@ -248,12 +232,13 @@ msgid "Grant the permission for all objects"
 msgstr "Предоставить доступ ко всем объектам"
 
 #: aleksis/core/forms.py:494
-msgid ""
-"You must select at least one group or person which should get the permission."
+msgid "You must select at least one group or person which should get the permission."
 msgstr "Вам нужно выбрать хотя бы одну группу или физлицо, кто получит доступ."
 
 #: aleksis/core/forms.py:499
-msgid "You must grant the permission to all objects and/or to some objects."
+#, fuzzy
+#| msgid "You must grant the permission to all objects and/or to some objects."
+msgid "You must grant the permission to all objects or to specific objects."
 msgstr "Вы должны предоставить доступ ко всем и/или к некоторым объектам."
 
 #: aleksis/core/forms.py:586
@@ -272,15 +257,15 @@ msgstr "Пароль"
 msgid "Password (again)"
 msgstr "Пароль (ещё раз)"
 
-#: aleksis/core/forms.py:728
+#: aleksis/core/forms.py:761
 msgid "The selected action does not exist."
 msgstr "Выбранное действие не существует."
 
-#: aleksis/core/forms.py:739
+#: aleksis/core/forms.py:772
 msgid "You do not have permission to run {} on all selected objects."
 msgstr "У Вас нет разрешения на запуск {} на всех выбранных объектах."
 
-#: aleksis/core/forms.py:795
+#: aleksis/core/forms.py:828
 msgid "No valid selection."
 msgstr "Неправильный выбор."
 
@@ -304,748 +289,684 @@ msgstr "Резервная копия не найдена!"
 msgid "No backup result found!"
 msgstr "Результат резервного копирования не найден!"
 
-#: aleksis/core/menus.py:7 aleksis/core/templates/two_factor/core/login.html:6
-#: aleksis/core/templates/two_factor/core/login.html:32
-#: aleksis/core/templates/two_factor/core/login.html:95
-msgid "Login"
-msgstr "Войти"
-
-#: aleksis/core/menus.py:13 aleksis/core/templates/account/signup.html:22
-#: aleksis/core/templates/socialaccount/signup.html:23
-msgid "Sign up"
-msgstr "Зарегистрироваться"
-
-#: aleksis/core/menus.py:22 aleksis/core/templates/invitations/enter.html:7
-msgid "Accept invitation"
-msgstr "Принять приглашение"
-
-#: aleksis/core/menus.py:31
-msgid "Dashboard"
-msgstr "Информпанель"
-
-#: aleksis/core/menus.py:39
-msgid "Admin"
-msgstr "Админ"
-
-#: aleksis/core/menus.py:47 aleksis/core/models.py:867
-#: aleksis/core/templates/core/announcement/list.html:7
-#: aleksis/core/templates/core/announcement/list.html:8
-msgid "Announcements"
-msgstr "Объявление"
-
-#: aleksis/core/menus.py:58 aleksis/core/models.py:137
-#: aleksis/core/templates/core/school_term/list.html:8
-#: aleksis/core/templates/core/school_term/list.html:9
-msgid "School terms"
-msgstr "Учебный год"
-
-#: aleksis/core/menus.py:69
-#: aleksis/core/templates/core/dashboard_widget/list.html:8
-#: aleksis/core/templates/core/dashboard_widget/list.html:9
-msgid "Dashboard widgets"
-msgstr "Виджеты информпанели"
-
-#: aleksis/core/menus.py:80
-#: aleksis/core/templates/core/management/data_management.html:6
-#: aleksis/core/templates/core/management/data_management.html:7
-msgid "Data management"
-msgstr "Управление данными"
-
-#: aleksis/core/menus.py:91
-#: aleksis/core/templates/core/pages/system_status.html:5
-#: aleksis/core/templates/core/pages/system_status.html:7
-msgid "System status"
-msgstr "Состояние системы"
-
-#: aleksis/core/menus.py:102
-msgid "Configuration"
-msgstr "Конфигурация"
-
-#: aleksis/core/menus.py:113 aleksis/core/templates/core/data_check/list.html:9
-#: aleksis/core/templates/core/data_check/list.html:10
-msgid "Data checks"
-msgstr "Проверки данных"
-
-#: aleksis/core/menus.py:119 aleksis/core/templates/core/perms/list.html:13
-#: aleksis/core/templates/core/perms/list.html:14
-msgid "Manage permissions"
-msgstr "Управление разрешениями"
-
-#: aleksis/core/menus.py:130
-msgid "Backend Admin"
-msgstr "Администрирование бекенда"
-
-#: aleksis/core/menus.py:138
-#: aleksis/core/templates/oauth2_provider/application/list.html:5
-#: aleksis/core/templates/oauth2_provider/application/list.html:6
-msgid "OAuth2 Applications"
-msgstr "Приложения OAuth2"
-
-#: aleksis/core/menus.py:151
-msgid "People"
-msgstr "Люди"
-
-#: aleksis/core/menus.py:182 aleksis/core/models.py:1101
-#: aleksis/core/templates/core/group_type/list.html:8
-#: aleksis/core/templates/core/group_type/list.html:9
-msgid "Group types"
-msgstr "Типы групп"
-
-#: aleksis/core/menus.py:193
-msgid "Groups and child groups"
-msgstr "Группы и дочерние группы"
-
-#: aleksis/core/menus.py:204 aleksis/core/models.py:537
-#: aleksis/core/templates/core/additional_field/list.html:8
-#: aleksis/core/templates/core/additional_field/list.html:9
-msgid "Additional fields"
-msgstr "Дополнительные поля"
-
-#: aleksis/core/menus.py:215
-msgid "Invite person"
-msgstr "Пригласить знакомого"
-
-#: aleksis/core/menus.py:228
-#: aleksis/core/templates/core/group/child_groups.html:7
-#: aleksis/core/templates/core/group/child_groups.html:9
-msgid "Assign child groups to groups"
-msgstr "Определить дочерние группы к группе"
-
-#: aleksis/core/menus.py:240
-msgid "Stop impersonation"
-msgstr "Остановить прикрытие"
-
-#: aleksis/core/menus.py:249
-msgid "Account"
-msgstr "Учётная запись"
-
-#: aleksis/core/menus.py:258
-#: aleksis/core/templates/dynamic_preferences/form.html:5
-msgid "Preferences"
-msgstr "Свойства"
-
-#: aleksis/core/menus.py:267
-msgid "2FA"
-msgstr "2FA"
-
-#: aleksis/core/menus.py:275
-#: aleksis/core/templates/account/password_change.html:5
-#: aleksis/core/templates/account/password_change.html:6
-#: aleksis/core/templates/account/password_change.html:19
-#: aleksis/core/templates/account/password_reset_from_key.html:5
-#: aleksis/core/templates/account/password_reset_from_key.html:42
-#: aleksis/core/templates/account/password_reset_from_key.html:46
-#: aleksis/core/templates/account/password_reset_from_key_done.html:5
-#: aleksis/core/templates/account/password_reset_from_key_done.html:6
-msgid "Change password"
-msgstr "Сменить пароль"
-
-#: aleksis/core/menus.py:287
-msgid "Third-party accounts"
-msgstr "Учётные записи третих сторон"
-
-#: aleksis/core/menus.py:296
-#: 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:305
-msgid "Calendar Feeds"
-msgstr "Ленты календарей"
-
-#: aleksis/core/menus.py:318
-msgid "Logout"
-msgstr "Выйти"
-
 #: aleksis/core/mixins.py:511
 msgid "Linked school term"
 msgstr "Связанный учебный год"
 
-#: aleksis/core/models.py:77
+#: aleksis/core/models.py:82
 msgid "Boolean (Yes/No)"
 msgstr "Булево (Да/Нет)"
 
-#: aleksis/core/models.py:78
+#: aleksis/core/models.py:83
 msgid "Text (one line)"
 msgstr "Текст (одна строка)"
 
-#: aleksis/core/models.py:80
+#: aleksis/core/models.py:85
 msgid "Date and time"
 msgstr "Дата и время"
 
-#: aleksis/core/models.py:81
+#: aleksis/core/models.py:86
 msgid "Decimal number"
 msgstr "Десятичное число"
 
-#: aleksis/core/models.py:82 aleksis/core/models.py:205
+#: aleksis/core/models.py:87 aleksis/core/models.py:210
 msgid "E-mail address"
 msgstr "Адрес эл.почты"
 
-#: aleksis/core/models.py:83
+#: aleksis/core/models.py:88
 msgid "Integer"
 msgstr "Целое"
 
-#: aleksis/core/models.py:84
+#: aleksis/core/models.py:89
 msgid "IP address"
 msgstr "IP адрес"
 
-#: aleksis/core/models.py:85
+#: aleksis/core/models.py:90
 msgid "Boolean or empty (Yes/No/Neither)"
 msgstr "Булево или пустое (Да/Нет/Ничего)"
 
-#: aleksis/core/models.py:86
+#: aleksis/core/models.py:91
 msgid "Text (multi-line)"
 msgstr "Текст (многострочный)"
 
-#: aleksis/core/models.py:88
+#: aleksis/core/models.py:93
 msgid "URL / Link"
 msgstr "URL / Ссылка"
 
-#: aleksis/core/models.py:100 aleksis/core/models.py:1070
-#: aleksis/core/models.py:1374
+#: aleksis/core/models.py:105 aleksis/core/models.py:1077
 msgid "Name"
 msgstr "Имя"
 
-#: aleksis/core/models.py:102
+#: aleksis/core/models.py:107
 msgid "Start date"
 msgstr "Дата начала"
 
-#: aleksis/core/models.py:103
+#: aleksis/core/models.py:108
 msgid "End date"
 msgstr "Дата окончания"
 
-#: aleksis/core/models.py:122
+#: aleksis/core/models.py:127
 msgid "The start date must be earlier than the end date."
 msgstr "Дата начала должна быть ранее даты окончания."
 
-#: aleksis/core/models.py:129
+#: aleksis/core/models.py:134
 msgid "There is already a school term for this time or a part of this time."
 msgstr "На это время или на его часть уже запланирован учебный год."
 
-#: aleksis/core/models.py:158 aleksis/core/models.py:1019
-#: aleksis/core/models.py:1371
+#: aleksis/core/models.py:142
+#: aleksis/core/templates/core/school_term/list.html:8
+#: aleksis/core/templates/core/school_term/list.html:9
+msgid "School terms"
+msgstr "Учебный год"
+
+#: aleksis/core/models.py:163 aleksis/core/models.py:1026
 msgid "Person"
 msgstr "Физлицо"
 
-#: aleksis/core/models.py:161
+#: aleksis/core/models.py:166
 msgid "Can view address"
 msgstr "Может видеть адрес"
 
-#: aleksis/core/models.py:162
+#: aleksis/core/models.py:167
 msgid "Can view contact details"
 msgstr "Может видеть контактные данные"
 
-#: aleksis/core/models.py:163
+#: aleksis/core/models.py:168
 msgid "Can view photo"
 msgstr "Может видеть фото"
 
-#: aleksis/core/models.py:164
+#: aleksis/core/models.py:169
 msgid "Can view avatar image"
 msgstr "Может видеть аватар"
 
-#: aleksis/core/models.py:165
+#: aleksis/core/models.py:170
 msgid "Can view persons groups"
 msgstr "Может видеть группы лиц"
 
-#: aleksis/core/models.py:166
+#: aleksis/core/models.py:171
 msgid "Can view personal details"
 msgstr "Может видеть личные данные"
 
-#: aleksis/core/models.py:176
+#: aleksis/core/models.py:181
 msgid "female"
 msgstr "жен"
 
-#: aleksis/core/models.py:176
+#: aleksis/core/models.py:181
 msgid "male"
 msgstr "муж"
 
-#: aleksis/core/models.py:184 aleksis/core/models.py:1273
+#: aleksis/core/models.py:181
+msgid "other"
+msgstr "другой"
+
+#: aleksis/core/models.py:189 aleksis/core/models.py:1345
 msgid "Linked user"
 msgstr "Связанный пользователь"
 
-#: aleksis/core/models.py:190
+#: aleksis/core/models.py:195
 msgid "Additional name(s)"
 msgstr "Дополнительные имена"
 
-#: aleksis/core/models.py:194 aleksis/core/models.py:506
+#: aleksis/core/models.py:199 aleksis/core/models.py:511
+#: aleksis/core/models.py:1431
 msgid "Short name"
 msgstr "Короткое имя"
 
-#: aleksis/core/models.py:197
+#: aleksis/core/models.py:202
 msgid "Street"
 msgstr "Улица"
 
-#: aleksis/core/models.py:198
+#: aleksis/core/models.py:203
 msgid "Street number"
 msgstr "Номер дома"
 
-#: aleksis/core/models.py:199
+#: aleksis/core/models.py:204
 msgid "Postal code"
 msgstr "Почтовый индекс"
 
-#: aleksis/core/models.py:200
+#: aleksis/core/models.py:205
 msgid "Place"
 msgstr "Город/место"
 
-#: aleksis/core/models.py:202 aleksis/core/templates/core/person/full.html:160
+#: aleksis/core/models.py:207
 msgid "Home phone"
 msgstr "Домашний телефон"
 
-#: aleksis/core/models.py:203 aleksis/core/templates/core/person/full.html:170
+#: aleksis/core/models.py:208
 msgid "Mobile phone"
 msgstr "Мобильный телефон"
 
-#: aleksis/core/models.py:207
+#: aleksis/core/models.py:212
 msgid "Date of birth"
 msgstr "Дата рождения"
 
-#: aleksis/core/models.py:208
+#: aleksis/core/models.py:213
 msgid "Place of birth"
 msgstr "Место рождения"
 
-#: aleksis/core/models.py:209
+#: aleksis/core/models.py:214
 msgid "Sex"
 msgstr "Пол"
 
-#: aleksis/core/models.py:216 aleksis/core/models.py:545
-msgid ""
-"This is an official photo, used for official documents and for internal use "
-"cases."
-msgstr ""
-"Это официальное фото, которое используется для документов и внутренних нужд."
+#: aleksis/core/models.py:221 aleksis/core/models.py:550
+msgid "This is an official photo, used for official documents and for internal use cases."
+msgstr "Это официальное фото, которое используется для документов и внутренних нужд."
 
-#: aleksis/core/models.py:221 aleksis/core/models.py:549
+#: aleksis/core/models.py:226 aleksis/core/models.py:554
 msgid "Display picture / Avatar"
 msgstr "Отобразить фото/аватар"
 
-#: aleksis/core/models.py:224 aleksis/core/models.py:552
+#: aleksis/core/models.py:229 aleksis/core/models.py:557
 msgid "This is a picture or an avatar for public display."
 msgstr "Это фото или аватар для общего отображения."
 
-#: aleksis/core/models.py:229 aleksis/core/templates/core/person/full.html:235
+#: aleksis/core/models.py:234
 msgid "Guardians / Parents"
 msgstr "Опекуны / Родители"
 
-#: aleksis/core/models.py:236
+#: aleksis/core/models.py:241
 msgid "Primary group"
 msgstr "Основная группа"
 
-#: aleksis/core/models.py:239 aleksis/core/models.py:719
-#: aleksis/core/models.py:743 aleksis/core/models.py:834
-#: aleksis/core/models.py:1094
+#: aleksis/core/models.py:244 aleksis/core/models.py:724
+#: aleksis/core/models.py:748 aleksis/core/models.py:843
+#: aleksis/core/models.py:1104
 msgid "Description"
 msgstr "Описание"
 
-#: aleksis/core/models.py:459
+#: aleksis/core/models.py:464
 msgid "Title of field"
 msgstr "Название поля"
 
-#: aleksis/core/models.py:461 aleksis/core/models.py:466
+#: aleksis/core/models.py:466
 msgid "Type of field"
 msgstr "Тип поля"
 
-#: aleksis/core/models.py:463
+#: aleksis/core/models.py:468
 msgid "Required"
 msgstr "Необходимое"
 
-#: aleksis/core/models.py:464
+#: aleksis/core/models.py:469
 msgid "Help text / description"
 msgstr "Вспомогательный текст / описание"
 
-#: aleksis/core/models.py:470
+#: aleksis/core/models.py:475
 msgid "Addtitional field for groups"
 msgstr "Дополнительное поле для групп"
 
-#: aleksis/core/models.py:471
+#: aleksis/core/models.py:476
 msgid "Addtitional fields for groups"
 msgstr "Дополнительные поля для групп"
 
-#: aleksis/core/models.py:491
+#: aleksis/core/models.py:496
 msgid "Can assign child groups to groups"
 msgstr "Может определять дочерние группы в группы"
 
-#: aleksis/core/models.py:492
+#: aleksis/core/models.py:497
 msgid "Can view statistics about group."
 msgstr "Может видеть статистику группы."
 
-#: aleksis/core/models.py:504
+#: aleksis/core/models.py:509 aleksis/core/models.py:1432
 msgid "Long name"
 msgstr "Длинное имя"
 
-#: aleksis/core/models.py:514 aleksis/core/templates/core/group/full.html:85
+#: aleksis/core/models.py:519 aleksis/core/templates/core/group/full.html:105
 msgid "Members"
 msgstr "Участники"
 
-#: aleksis/core/models.py:517 aleksis/core/templates/core/group/full.html:82
+#: aleksis/core/models.py:522 aleksis/core/templates/core/group/full.html:102
 msgid "Owners"
 msgstr "Владельцы"
 
-#: aleksis/core/models.py:524 aleksis/core/templates/core/group/full.html:55
+#: aleksis/core/models.py:529 aleksis/core/templates/core/group/full.html:59
 msgid "Parent groups"
 msgstr "Родительские группы"
 
-#: aleksis/core/models.py:532
+#: aleksis/core/models.py:537
 msgid "Type of group"
 msgstr "Тип группы"
 
-#: aleksis/core/models.py:718 aleksis/core/models.py:742
-#: aleksis/core/models.py:833
+#: aleksis/core/models.py:542
+#: aleksis/core/templates/core/additional_field/list.html:8
+#: aleksis/core/templates/core/additional_field/list.html:9
+msgid "Additional fields"
+msgstr "Дополнительные поля"
+
+#: aleksis/core/models.py:723 aleksis/core/models.py:747
+#: aleksis/core/models.py:842 aleksis/core/models.py:1262
 #: aleksis/core/templates/core/announcement/list.html:18
 msgid "Title"
 msgstr "Название"
 
-#: aleksis/core/models.py:721
+#: aleksis/core/models.py:726
 msgid "Application"
 msgstr "Приложение"
 
-#: aleksis/core/models.py:727
+#: aleksis/core/models.py:732
 msgid "Activity"
 msgstr "Активность"
 
-#: aleksis/core/models.py:728
+#: aleksis/core/models.py:733
 msgid "Activities"
 msgstr "Активности"
 
-#: aleksis/core/models.py:734
+#: aleksis/core/models.py:739
 msgid "Sender"
 msgstr "Отправитель"
 
-#: aleksis/core/models.py:739
+#: aleksis/core/models.py:744
 msgid "Recipient"
 msgstr "Получатель"
 
-#: aleksis/core/models.py:744 aleksis/core/models.py:1071
+#: aleksis/core/models.py:749 aleksis/core/models.py:1078
 msgid "Link"
 msgstr "Ссылка"
 
-#: aleksis/core/models.py:746
+#: aleksis/core/models.py:752 aleksis/core/models.py:1079
+#: aleksis/core/models.py:1392
+#: aleksis/core/templates/oauth2_provider/application/detail.html:26
+msgid "Icon"
+msgstr "Иконка"
+
+#: aleksis/core/models.py:755
 msgid "Send notification at"
 msgstr "Отправить уведомление в"
 
-#: aleksis/core/models.py:748
+#: aleksis/core/models.py:757
 msgid "Read"
 msgstr "Читать"
 
-#: aleksis/core/models.py:749
+#: aleksis/core/models.py:758
 msgid "Sent"
 msgstr "Отправлено"
 
-#: aleksis/core/models.py:766
+#: aleksis/core/models.py:775
 msgid "Notification"
 msgstr "Уведомление"
 
-#: aleksis/core/models.py:767 aleksis/core/preferences.py:29
-#: aleksis/core/templates/core/base.html:81
-#: aleksis/core/templates/core/notifications.html:4
-#: aleksis/core/templates/core/notifications.html:5
+#: aleksis/core/models.py:776 aleksis/core/preferences.py:29
 msgid "Notifications"
 msgstr "Уведомления"
 
-#: aleksis/core/models.py:835
+#: aleksis/core/models.py:844
 msgid "Link to detailed view"
 msgstr "Ссылка на подробный обзор"
 
-#: aleksis/core/models.py:838
+#: aleksis/core/models.py:847
 msgid "Date and time from when to show"
 msgstr "Дата и время, с которого показывать"
 
-#: aleksis/core/models.py:841
+#: aleksis/core/models.py:850
 msgid "Date and time until when to show"
 msgstr "Дата и время, по какое показывать"
 
-#: aleksis/core/models.py:866
+#: aleksis/core/models.py:875
 msgid "Announcement"
 msgstr "Объявление"
 
-#: aleksis/core/models.py:904
+#: aleksis/core/models.py:876
+#: aleksis/core/templates/core/announcement/list.html:7
+#: aleksis/core/templates/core/announcement/list.html:8
+msgid "Announcements"
+msgstr "Объявление"
+
+#: aleksis/core/models.py:913
 msgid "Announcement recipient"
 msgstr "Получатель объявления"
 
-#: aleksis/core/models.py:905
+#: aleksis/core/models.py:914
 msgid "Announcement recipients"
 msgstr "Получатели объявления"
 
-#: aleksis/core/models.py:927
+#: aleksis/core/models.py:934
 msgid "Widget Title"
 msgstr "Название виджета"
 
-#: aleksis/core/models.py:928
+#: aleksis/core/models.py:935
 msgid "Activate Widget"
 msgstr "Активировать виджет"
 
-#: aleksis/core/models.py:929
+#: aleksis/core/models.py:936
 msgid "Widget is broken"
 msgstr "Виджет поломался"
 
-#: aleksis/core/models.py:932
+#: aleksis/core/models.py:939
 msgid "Size on mobile devices"
 msgstr "Размер на мобильных"
 
-#: aleksis/core/models.py:933
+#: aleksis/core/models.py:940
 msgid "<= 600 px, 12 columns"
 msgstr "<= 600 пикс, 12 столбцов"
 
-#: aleksis/core/models.py:938
+#: aleksis/core/models.py:945
 msgid "Size on tablet devices"
 msgstr "Размер на планшетах"
 
-#: aleksis/core/models.py:939
+#: aleksis/core/models.py:946
 msgid "> 600 px, 12 columns"
 msgstr "> 600 пикс, 12 столбцов"
 
-#: aleksis/core/models.py:944
+#: aleksis/core/models.py:951
 msgid "Size on desktop devices"
 msgstr "Размер на ПК"
 
-#: aleksis/core/models.py:945
+#: aleksis/core/models.py:952
 msgid "> 992 px, 12 columns"
 msgstr "> 992 пикс, 12 столбцов"
 
-#: aleksis/core/models.py:950
+#: aleksis/core/models.py:957
 msgid "Size on large desktop devices"
 msgstr "Размер для больших экранов"
 
-#: aleksis/core/models.py:951
+#: aleksis/core/models.py:958
 msgid "> 1200 px>, 12 columns"
 msgstr "> 1200 пикс, 12 столбцов"
 
-#: aleksis/core/models.py:982
+#: aleksis/core/models.py:989
 msgid "Can edit default dashboard"
 msgstr "Может редактировать типовую/стандартную информпанель"
 
-#: aleksis/core/models.py:983
+#: aleksis/core/models.py:990
 msgid "Dashboard Widget"
 msgstr "Виджет информпанели"
 
-#: aleksis/core/models.py:984
+#: aleksis/core/models.py:991
 msgid "Dashboard Widgets"
 msgstr "Виджеты информпанели"
 
-#: aleksis/core/models.py:990 aleksis/core/models.py:995
+#: aleksis/core/models.py:997
 msgid "URL"
 msgstr "URL"
 
-#: aleksis/core/models.py:991
+#: aleksis/core/models.py:998
 msgid "Icon URL"
 msgstr "Иконка URL"
 
-#: aleksis/core/models.py:997
+#: aleksis/core/models.py:1004
 msgid "External link widget"
 msgstr "Внешняя ссылка на виджет"
 
-#: aleksis/core/models.py:998
+#: aleksis/core/models.py:1005
 msgid "External link widgets"
 msgstr "Внешние ссылки на виджеты"
 
-#: aleksis/core/models.py:1004
+#: aleksis/core/models.py:1011
 msgid "Content"
 msgstr "Содержимое"
 
-#: aleksis/core/models.py:1010
+#: aleksis/core/models.py:1017
 msgid "Static content widget"
 msgstr "Виджет с постоянным содержимым"
 
-#: aleksis/core/models.py:1011
+#: aleksis/core/models.py:1018
 msgid "Static content widgets"
 msgstr "Виджеты с постоянным содержимым"
 
-#: aleksis/core/models.py:1016
+#: aleksis/core/models.py:1023
 msgid "Dashboard widget"
 msgstr "Виджет информпанели"
 
-#: aleksis/core/models.py:1021
+#: aleksis/core/models.py:1028
 msgid "Order"
 msgstr "Порядок"
 
-#: aleksis/core/models.py:1022
+#: aleksis/core/models.py:1029
 msgid "Part of the default dashboard"
 msgstr "Часть типовой информпанели"
 
-#: aleksis/core/models.py:1037
+#: aleksis/core/models.py:1044
 msgid "Dashboard widget order"
 msgstr "Порядок виджета на информпанели"
 
-#: aleksis/core/models.py:1038
+#: aleksis/core/models.py:1045
 msgid "Dashboard widget orders"
 msgstr "Порядок виджетов на информпанели"
 
-#: aleksis/core/models.py:1044 aleksis/core/models.py:1049
+#: aleksis/core/models.py:1051
 msgid "Menu ID"
 msgstr "Меню ID"
 
-#: aleksis/core/models.py:1057
+#: aleksis/core/models.py:1064
 msgid "Custom menu"
 msgstr "Пользовательское меню"
 
-#: aleksis/core/models.py:1058
+#: aleksis/core/models.py:1065
 msgid "Custom menus"
 msgstr "Пользовательские меню"
 
-#: aleksis/core/models.py:1068
+#: aleksis/core/models.py:1075
 msgid "Menu"
 msgstr "Меню"
 
-#: aleksis/core/models.py:1072 aleksis/core/models.py:1320
-#: aleksis/core/templates/oauth2_provider/application/detail.html:26
-msgid "Icon"
-msgstr "Иконка"
-
-#: aleksis/core/models.py:1078
+#: aleksis/core/models.py:1085
 msgid "Custom menu item"
 msgstr "Пункт пользовательского меню"
 
-#: aleksis/core/models.py:1079
+#: aleksis/core/models.py:1086
 msgid "Custom menu items"
 msgstr "Пункты пользовательского меню"
 
-#: aleksis/core/models.py:1093
+#: aleksis/core/models.py:1103
 msgid "Title of type"
 msgstr "Название типа"
 
-#: aleksis/core/models.py:1100 aleksis/core/templates/core/group/full.html:47
+#: aleksis/core/models.py:1110 aleksis/core/templates/core/group/full.html:50
 msgid "Group type"
 msgstr "Тип группы"
 
-#: aleksis/core/models.py:1114
+#: aleksis/core/models.py:1111
+#: aleksis/core/templates/core/group_type/list.html:8
+#: aleksis/core/templates/core/group_type/list.html:9
+msgid "Group types"
+msgstr "Типы групп"
+
+#: aleksis/core/models.py:1124
 msgid "Can view system status"
 msgstr "Может просматривать состояние системы"
 
-#: aleksis/core/models.py:1115
+#: aleksis/core/models.py:1125
 msgid "Can manage data"
 msgstr "Может управлять данными"
 
-#: aleksis/core/models.py:1116
+#: aleksis/core/models.py:1126
 msgid "Can impersonate"
 msgstr "Может маскироваться"
 
-#: aleksis/core/models.py:1117
+#: aleksis/core/models.py:1127
 msgid "Can use search"
 msgstr "Может использовать поиск"
 
-#: aleksis/core/models.py:1118
+#: aleksis/core/models.py:1128
 msgid "Can change site preferences"
 msgstr "Может менять свойства сайта"
 
-#: aleksis/core/models.py:1119
+#: aleksis/core/models.py:1129
 msgid "Can change person preferences"
 msgstr "Может менять персональные свойства"
 
-#: aleksis/core/models.py:1120
+#: aleksis/core/models.py:1130
 msgid "Can change group preferences"
 msgstr "Может менять свойства группы"
 
-#: aleksis/core/models.py:1121
+#: aleksis/core/models.py:1131
 msgid "Can test PDF generation"
 msgstr "Может генерировать тестовые PDF"
 
-#: aleksis/core/models.py:1122
+#: aleksis/core/models.py:1132
 msgid "Can invite persons"
 msgstr "Может приглашать других"
 
-#: aleksis/core/models.py:1158 aleksis/core/models.py:1168
+#: aleksis/core/models.py:1168
 msgid "Related data check task"
 msgstr "Задание проверки связанных данных"
 
-#: aleksis/core/models.py:1166 aleksis/core/models.py:1176
+#: aleksis/core/models.py:1176
 msgid "Issue solved"
 msgstr "Проблема решена"
 
-#: aleksis/core/models.py:1167 aleksis/core/models.py:1177
+#: aleksis/core/models.py:1177
 msgid "Notification sent"
 msgstr "Уведомление отправлено"
 
-#: aleksis/core/models.py:1180 aleksis/core/models.py:1190
+#: aleksis/core/models.py:1190
 msgid "Data check result"
 msgstr "Результат проверки данных"
 
-#: aleksis/core/models.py:1181 aleksis/core/models.py:1191
+#: aleksis/core/models.py:1191
 msgid "Data check results"
 msgstr "Результаты проверки данных"
 
-#: aleksis/core/models.py:1183 aleksis/core/models.py:1193
+#: aleksis/core/models.py:1193
 msgid "Can run data checks"
 msgstr "Может запускать проверки данных"
 
-#: aleksis/core/models.py:1184 aleksis/core/models.py:1194
+#: aleksis/core/models.py:1194
 msgid "Can solve data check problems"
 msgstr "Может решать проблемы проверки данных"
 
-#: aleksis/core/models.py:1191 aleksis/core/models.py:1201
+#: aleksis/core/models.py:1201
 msgid "E-Mail address"
 msgstr "Адрес эл.почты"
 
-#: aleksis/core/models.py:1223 aleksis/core/models.py:1233
+#: aleksis/core/models.py:1233
 msgid "Owner"
 msgstr "Владелец"
 
-#: aleksis/core/models.py:1227 aleksis/core/models.py:1237
+#: aleksis/core/models.py:1237
 msgid "File expires at"
 msgstr "Файл действителен до"
 
-#: aleksis/core/models.py:1229 aleksis/core/models.py:1239
+#: aleksis/core/models.py:1240
 msgid "Generated HTML file"
 msgstr "Сгенерированный файл HTML"
 
-#: aleksis/core/models.py:1231 aleksis/core/models.py:1241
+#: aleksis/core/models.py:1243
 msgid "Generated PDF file"
 msgstr "Сгенерированный файл PDF"
 
-#: aleksis/core/models.py:1238 aleksis/core/models.py:1248
+#: aleksis/core/models.py:1250
 msgid "PDF file"
 msgstr "Файл PDF"
 
-#: aleksis/core/models.py:1239 aleksis/core/models.py:1249
+#: aleksis/core/models.py:1251
 msgid "PDF files"
 msgstr "Файлы PDF"
 
-#: aleksis/core/models.py:1244 aleksis/core/models.py:1254
+#: aleksis/core/models.py:1256
 msgid "Task result"
 msgstr "Результат задания"
 
-#: aleksis/core/models.py:1247 aleksis/core/models.py:1257
+#: aleksis/core/models.py:1259
 msgid "Task user"
 msgstr "Пользователь задания"
 
-#: aleksis/core/models.py:1259 aleksis/core/models.py:1269
+#: aleksis/core/models.py:1263
+#, fuzzy
+#| msgid "Back"
+msgid "Back URL"
+msgstr "Назад"
+
+#: aleksis/core/models.py:1264
+#, fuzzy
+#| msgid "Progress: Generate PDF file"
+msgid "Progress title"
+msgstr "В процессе: Генерирование файла PDF"
+
+#: aleksis/core/models.py:1265
+msgid "Error message"
+msgstr ""
+
+#: aleksis/core/models.py:1266
+#, fuzzy
+#| msgid "Success!"
+msgid "Success message"
+msgstr "Успех!"
+
+#: aleksis/core/models.py:1267
+#, fuzzy
+#| msgid "Redirect URIs"
+msgid "Redirect on success URL"
+msgstr "Перенаправление URI-адресов"
+
+#: aleksis/core/models.py:1269
+#, fuzzy
+#| msgid "Additional attributes"
+msgid "Additional button title"
+msgstr "Дополнительные атрибуты"
+
+#: aleksis/core/models.py:1271
+#, fuzzy
+#| msgid "Additional data"
+msgid "Additional button URL"
+msgstr "Дополнительные данные"
+
+#: aleksis/core/models.py:1273
+#, fuzzy
+#| msgid "Additional attributes"
+msgid "Additional button icon"
+msgstr "Дополнительные атрибуты"
+
+#: aleksis/core/models.py:1275
+msgid "Result fetched"
+msgstr ""
+
+#: aleksis/core/models.py:1300
+#, fuzzy
+#| msgid "ICal feed deleted successfully"
+msgid "Background task completed successfully"
+msgstr "Лента iCal успешно удалена"
+
+#: aleksis/core/models.py:1301
+#, fuzzy
+#| msgid "The PDF file has been generated successfully."
+msgid "The background task '{}' has been completed successfully."
+msgstr "Файл PDF успешно создан."
+
+#: aleksis/core/models.py:1307
+msgid "Background task failed"
+msgstr ""
+
+#: aleksis/core/models.py:1308
+msgid "The background task '{}' has failed."
+msgstr ""
+
+#: aleksis/core/models.py:1317
+msgid "Background task"
+msgstr ""
+
+#: aleksis/core/models.py:1331
 msgid "Task user assignment"
 msgstr "Назначение пользователя задания"
 
-#: aleksis/core/models.py:1260 aleksis/core/models.py:1270
+#: aleksis/core/models.py:1332
 msgid "Task user assignments"
 msgstr "Назначения пользователей задания"
 
-#: aleksis/core/models.py:1276 aleksis/core/models.py:1286
+#: aleksis/core/models.py:1348
 msgid "Additional attributes"
 msgstr "Дополнительные атрибуты"
 
-#: aleksis/core/models.py:1314 aleksis/core/models.py:1324
+#: aleksis/core/models.py:1386
 msgid "Allowed scopes that clients can request"
 msgstr "Разрешённые пределы действия, которые могут запрашивать клиенты"
 
-#: aleksis/core/models.py:1324 aleksis/core/models.py:1334
-msgid ""
-"This image will be shown as icon in the authorization flow. It should be "
-"squared."
-msgstr ""
-"Это изображение будет использоваться в качестве значка во время авторизации. "
-"Должно быть квадратным."
+#: aleksis/core/models.py:1396
+msgid "This image will be shown as icon in the authorization flow. It should be squared."
+msgstr "Это изображение будет использоваться в качестве значка во время авторизации. Должно быть квадратным."
 
-#: aleksis/core/models.py:1373 aleksis/core/models.py:1383
-msgid "UUID"
-msgstr "UUID"
-
-#: aleksis/core/models.py:1377 aleksis/core/models.py:1387
-msgid "Selected ICal feed"
-msgstr "Лента выбранного iCal"
+#: aleksis/core/models.py:1441
+#, fuzzy
+#| msgid "Can view avatar image"
+msgid "Can view room timetable"
+msgstr "Может видеть аватар"
 
-#: aleksis/core/models.py:1386 aleksis/core/models.py:1396
-msgid "Personal Calendar URL"
-msgstr "URL-ссылка собственного календаря"
+#: aleksis/core/models.py:1443
+msgid "Room"
+msgstr ""
 
-#: aleksis/core/models.py:1387 aleksis/core/models.py:1397
-msgid "Personal Calendar URLs"
-msgstr "URL-ссылка собственных календарей"
+#: aleksis/core/models.py:1444
+msgid "Rooms"
+msgstr ""
 
 #: aleksis/core/preferences.py:25
 msgid "General"
@@ -1135,168 +1056,165 @@ msgstr "Формат имени в переписке"
 msgid "Channels to use for notifications"
 msgstr "Каналы для уведомлений"
 
-#: aleksis/core/preferences.py:209
+#: aleksis/core/preferences.py:208
+#, fuzzy
+#| msgid "Selected persons"
+msgid "Select Design"
+msgstr "Выбранные физлица"
+
+#: aleksis/core/preferences.py:211
+msgid "Light mode"
+msgstr ""
+
+#: aleksis/core/preferences.py:224
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr "Регулярное выражение для поиска основной группы, напр. '^Class .*'"
 
-#: aleksis/core/preferences.py:220
+#: aleksis/core/preferences.py:235
 msgid "Field on person to match primary group against"
 msgstr "Поле для сопоставления лица с основной группой"
 
-#: aleksis/core/preferences.py:232
+#: aleksis/core/preferences.py:247
 msgid "Automatically create new persons for new users"
 msgstr "Новые физлица для новых пользователей создавать автоматически"
 
-#: aleksis/core/preferences.py:241
-msgid ""
-"Automatically link existing persons to new users by their e-mail address"
-msgstr ""
-"Связывать существующие физлица с новыми пользователями автоматически по эл."
-"адресам"
+#: aleksis/core/preferences.py:256
+msgid "Automatically link existing persons to new users by their e-mail address"
+msgstr "Связывать существующие физлица с новыми пользователями автоматически по эл.адресам"
 
-#: aleksis/core/preferences.py:252
+#: aleksis/core/preferences.py:267
 msgid "Display name of the school"
 msgstr "Название школы / уч.заведения для отображения"
 
-#: aleksis/core/preferences.py:263
+#: aleksis/core/preferences.py:278
 msgid "Official name of the school, e.g. as given by supervisory authority"
-msgstr ""
-"Официальное название школы / уч.заведения, напр., как в регистрационных "
-"документах"
+msgstr "Официальное название школы / уч.заведения, напр., как в регистрационных документах"
 
-#: aleksis/core/preferences.py:271
+#: aleksis/core/preferences.py:286
 msgid "Allow users to change their passwords"
 msgstr "Разрешить пользователям менять свои пароли"
 
-#: aleksis/core/preferences.py:279
+#: aleksis/core/preferences.py:294
 msgid "Allow users to reset their passwords"
 msgstr "Разрешить пользователям сбрасывать свои пароли"
 
-#: aleksis/core/preferences.py:287
+#: aleksis/core/preferences.py:302
 msgid "Enable signup"
 msgstr "Включить регистрацию"
 
-#: aleksis/core/preferences.py:295
+#: aleksis/core/preferences.py:310
 msgid "Regular expression for allowed usernames"
 msgstr "Регулярное выражение для разрешённых логинов"
 
-#: aleksis/core/preferences.py:303
+#: aleksis/core/preferences.py:318
 msgid "Enable invitations"
 msgstr "Включить приглашения"
 
-#: aleksis/core/preferences.py:311
+#: aleksis/core/preferences.py:326
 msgid "Length of invite code. (Default 3: abcde-acbde-abcde)"
 msgstr "Длина пригласительного кода. (По-умолчанию 3: abcde-abcde-abcde)"
 
-#: aleksis/core/preferences.py:319
+#: aleksis/core/preferences.py:334
 msgid "Size of packets. (Default 5: abcde)"
 msgstr "Размер пакетов. (По-умолчанию 5: abcde)"
 
-#: aleksis/core/preferences.py:330
+#: aleksis/core/preferences.py:345
 msgid "Allowed Grant Flows for OAuth applications"
 msgstr "Разрешённые потоки грантов для приложений с OAuth"
 
-#: aleksis/core/preferences.py:344
-msgid "Available languages"
-msgstr "Доступные языки"
-
-#: aleksis/core/preferences.py:357 aleksis/core/preferences.py:343
+#: aleksis/core/preferences.py:358
 msgid "Send emails if data checks detect problems"
 msgstr "В случае обнаружения проблемы при проверке данных отправить эл.письмо"
 
-#: aleksis/core/preferences.py:368 aleksis/core/preferences.py:354
+#: aleksis/core/preferences.py:369
 msgid "Email recipients for data checks problem emails"
 msgstr "Эл.адреса получателей для писем с проблемами при проверке данных"
 
-#: aleksis/core/preferences.py:379 aleksis/core/preferences.py:365
+#: aleksis/core/preferences.py:380
 msgid "Email recipient groups for data checks problem emails"
 msgstr "Эл.адреса груп для писем с проблемами при проверке данных"
 
-#: aleksis/core/preferences.py:388 aleksis/core/preferences.py:374
+#: aleksis/core/preferences.py:389
 msgid "Show dashboard to users without login"
 msgstr "Отображать информпанель анонимным пользователям"
 
-#: aleksis/core/preferences.py:397 aleksis/core/preferences.py:383
+#: aleksis/core/preferences.py:398
 msgid "Allow users to edit their dashboard"
 msgstr "Разрешить пользователям редактировать свою информпанель"
 
-#: aleksis/core/preferences.py:408 aleksis/core/preferences.py:394
+#: aleksis/core/preferences.py:409
 msgid "Fields on person model which are editable by themselves."
 msgstr "Поля с описанием физлица, которые можно редактировать самостоятельно."
 
-#: aleksis/core/preferences.py:423 aleksis/core/preferences.py:409
-msgid ""
-"Editable fields on person model which should trigger a notification on change"
-msgstr ""
-"Изменяемые поля описания физлица, при изменении которых должен срабатывать "
-"триггер для уведомления"
+#: aleksis/core/preferences.py:424
+msgid "Editable fields on person model which should trigger a notification on change"
+msgstr "Изменяемые поля описания физлица, при изменении которых должен срабатывать триггер для уведомления"
 
-#: aleksis/core/preferences.py:437 aleksis/core/preferences.py:423
+#: aleksis/core/preferences.py:438
 msgid "Contact for notification if a person changes their data"
 msgstr "Контакт для уведомлений при изменении кем-то своих данных"
 
-#: aleksis/core/preferences.py:448 aleksis/core/preferences.py:434
+#: aleksis/core/preferences.py:449
 msgid "Prefer personal photos over avatars"
 msgstr "Отдавать предпочтение личным фото вместо аватаров"
 
-#: aleksis/core/preferences.py:458 aleksis/core/preferences.py:444
+#: aleksis/core/preferences.py:459
 msgid "PDF file expiration duration"
 msgstr "Срок действия файла PDF"
 
-#: aleksis/core/preferences.py:459 aleksis/core/preferences.py:445
+#: aleksis/core/preferences.py:460
 msgid "in minutes"
 msgstr "в минутах"
 
-#: aleksis/core/preferences.py:469 aleksis/core/preferences.py:455
+#: aleksis/core/preferences.py:470
 msgid "Automatically update the dashboard and its widgets"
 msgstr "Автоматически обновлять информпанель и её виджеты"
 
-#: aleksis/core/preferences.py:479 aleksis/core/preferences.py:465
+#: aleksis/core/preferences.py:480
 msgid "Automatically update the dashboard and its widgets sitewide"
 msgstr "Автоматически обновлять информпанель и её виджеты (для всего сайта)"
 
-#: aleksis/core/preferences.py:489 aleksis/core/preferences.py:475
+#: aleksis/core/preferences.py:490
 msgid "Country for phone number parsing"
 msgstr "Страна для парсинга номера телефона"
 
-#: aleksis/core/settings.py:540 aleksis/core/settings.py:541
+#: aleksis/core/settings.py:539
 msgid "English"
 msgstr "Английский"
 
-#: aleksis/core/settings.py:541 aleksis/core/settings.py:542
+#: aleksis/core/settings.py:540
 msgid "German"
 msgstr "Немецкий"
 
-#: aleksis/core/tables.py:24
+#: aleksis/core/settings.py:541
+msgid "Ukrainian"
+msgstr "Украинский"
+
+#: aleksis/core/tables.py:25
 #: aleksis/core/templates/core/announcement/list.html:36
-#: aleksis/core/templates/core/group/full.html:24
-#: aleksis/core/templates/core/person/full.html:26
-#: aleksis/core/templates/core/person/full.html:86
+#: aleksis/core/templates/core/group/full.html:26
 #: aleksis/core/templates/oauth2_provider/application/detail.html:17
 msgid "Edit"
 msgstr "Редактировать"
 
-#: aleksis/core/tables.py:26 aleksis/core/tables.py:94
-#: aleksis/core/tables.py:138
+#: aleksis/core/tables.py:27 aleksis/core/tables.py:148
+#: aleksis/core/tables.py:192
 #: aleksis/core/templates/core/announcement/list.html:22
 msgid "Actions"
 msgstr "Действия"
 
-#: aleksis/core/tables.py:61 aleksis/core/tables.py:62
-#: aleksis/core/tables.py:76 aleksis/core/tables.py:92
-#: aleksis/core/tables.py:136
+#: aleksis/core/tables.py:115 aleksis/core/tables.py:116
+#: aleksis/core/tables.py:130 aleksis/core/tables.py:146
+#: aleksis/core/tables.py:190
 #: aleksis/core/templates/core/announcement/list.html:42
-#: aleksis/core/templates/core/group/full.html:31
+#: aleksis/core/templates/core/group/full.html:33
 #: aleksis/core/templates/core/pages/delete.html:22
-#: aleksis/core/templates/core/person/full.html:33
-#: aleksis/core/templates/core/person/full.html:93
 #: aleksis/core/templates/oauth2_provider/application/detail.html:21
 msgid "Delete"
 msgstr "Удалить"
 
 #: aleksis/core/templates/403.html:14 aleksis/core/templates/500.html:10
 #: aleksis/core/templates/oauth2_provider/authorize.html:54
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:24
 msgid "Error"
 msgstr "Ошибка"
 
@@ -1311,14 +1229,12 @@ msgstr ""
 #: aleksis/core/templates/403.html:19 aleksis/core/templates/404.html:16
 msgid ""
 "\n"
-"            If you think this is an error in AlekSIS, please contact your "
-"site\n"
+"            If you think this is an error in AlekSIS, please contact your site\n"
 "            administrators:\n"
 "          "
 msgstr ""
 "\n"
-"            Если Вы думаете, что это ошибка AlekSIS, обратитесь, пожалуйста,"
-"\n"
+"            Если Вы думаете, что это ошибка AlekSIS, обратитесь, пожалуйста,\n"
 "            к администраторам сайта:\n"
 "          "
 
@@ -1337,22 +1253,20 @@ msgstr ""
 #: aleksis/core/templates/500.html:10
 msgid ""
 "An unexpected error has\n"
-"          occured."
+"          occurred."
 msgstr ""
-"Произошла непредвиденная \n"
+"Возникла непредвиденная \n"
 "          ошибка."
 
 #: aleksis/core/templates/500.html:13
 msgid ""
 "\n"
-"            Your site administrators will automatically be notified about "
-"this\n"
+"            Your site administrators will automatically be notified about this\n"
 "            error. You can also contact them directly:\n"
 "          "
 msgstr ""
 "\n"
-"            Администраторы сайта будут уведомлены об этой ошибке "
-"автоматически.\n"
+"            Администраторы сайта будут уведомлены об этой ошибке автоматически.\n"
 "            Вы также можете обратиться к ним непосредственно:\n"
 "          "
 
@@ -1371,13 +1285,11 @@ msgstr ""
 #: aleksis/core/templates/503.html:13
 msgid ""
 "\n"
-"            This page is currently unavailable. If this error persists, "
-"contact your site administrators:\n"
+"            This page is currently unavailable. If this error persists, contact your site administrators:\n"
 "          "
 msgstr ""
 "\n"
-"            Эта страница сейчас недоступна. Если ошибка проявится ещё раз, "
-"обратитесь к администраторам сайта:\n"
+"            Эта страница сейчас недоступна. Если ошибка проявится ещё раз, обратитесь к администраторам сайта:\n"
 "          "
 
 #: aleksis/core/templates/account/account_inactive.html:5
@@ -1418,21 +1330,24 @@ msgstr "Подтвердить"
 
 #: 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 ""
-"Подтвердите, пожалуйста, что <a href=\"mailto:%(email)s\">%(email)s</a> — "
-"эл.адрес пользователя %(user_display)s."
+msgid "Please confirm that <a href=\"mailto:%(email)s\">%(email)s</a> is an e-mail address for user %(user_display)s."
+msgstr "Подтвердите, пожалуйста, что <a href=\"mailto:%(email)s\">%(email)s</a> — эл.адрес пользователя %(user_display)s."
 
 #: 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 ""
-"Эта ссылка для подтверждения эл.почты просрочена или недействительна. "
-"Сделайте, пожалуйста, <a href=\"%(email_url)s\">новый запрос</a>."
+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 "Эта ссылка для подтверждения эл.почты просрочена или недействительна. Сделайте, пожалуйста, <a href=\"%(email_url)s\">новый запрос</a>."
+
+#: aleksis/core/templates/account/password_change.html:5
+#: aleksis/core/templates/account/password_change.html:6
+#: aleksis/core/templates/account/password_change.html:19
+#: aleksis/core/templates/account/password_reset_from_key.html:5
+#: aleksis/core/templates/account/password_reset_from_key.html:42
+#: aleksis/core/templates/account/password_reset_from_key.html:46
+#: aleksis/core/templates/account/password_reset_from_key_done.html:5
+#: aleksis/core/templates/account/password_reset_from_key_done.html:6
+msgid "Change password"
+msgstr "Сменить пароль"
 
 #: aleksis/core/templates/account/password_change.html:12
 msgid "Forgot your current password? Click here to reset it:"
@@ -1455,8 +1370,7 @@ msgstr "Изменение пароля отключено."
 msgid ""
 "\n"
 "            Users are not allowed to edit their own passwords. If you think\n"
-"            this is an error please contact one of your site "
-"administrators.\n"
+"            this is an error please contact one of your site administrators.\n"
 "          "
 msgstr ""
 "\n"
@@ -1475,12 +1389,8 @@ msgid "Reset password"
 msgstr "Сбросить пароль"
 
 #: 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 ""
-"Забыли пароль? Укажите ниже свою эл.почту и мы отправим Вам письмо для "
-"сброса пароля."
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr "Забыли пароль? Укажите ниже свою эл.почту и мы отправим Вам письмо для сброса пароля."
 
 #: aleksis/core/templates/account/password_reset.html:30
 msgid ""
@@ -1503,10 +1413,8 @@ msgid ""
 "          "
 msgstr ""
 "\n"
-"            Мы отправили Вам эл.письмо. Если Вы не получите его на "
-"протяжении\n"
-"            нескольких минут, обратитесь, пожалуйста, к администраторам "
-"сайта.\n"
+"            Мы отправили Вам эл.письмо. Если Вы не получите его на протяжении\n"
+"            нескольких минут, обратитесь, пожалуйста, к администраторам сайта.\n"
 "          "
 
 #: aleksis/core/templates/account/password_reset_from_key.html:15
@@ -1517,16 +1425,13 @@ msgstr "Неправильный токен"
 #, python-format
 msgid ""
 "\n"
-"              The password reset link was invalid, possibly because it has "
-"already been used. Please request a <a href=\"%(passwd_reset_url)s\"\n"
+"              The password reset link was invalid, possibly because it has already been used. Please request a <a href=\"%(passwd_reset_url)s\"\n"
 "              class=\"blue-text text-lighten-2\">new password reset</a>.\n"
 "            "
 msgstr ""
 "\n"
-"              Ссылка на сброс пароля недействительна или, возможно, уже "
-"использована. Сделайте, пожалуйста, <a href=\"%(passwd_reset_url)s\"\n"
-"              class=\"blue-text text-lighten-2\">новый запрос на сброс "
-"пароля</a>.\n"
+"              Ссылка на сброс пароля недействительна или, возможно, уже использована. Сделайте, пожалуйста, <a href=\"%(passwd_reset_url)s\"\n"
+"              class=\"blue-text text-lighten-2\">новый запрос на сброс пароля</a>.\n"
 "            "
 
 #: aleksis/core/templates/account/password_reset_from_key.html:25
@@ -1575,11 +1480,13 @@ msgstr "Регистрация"
 
 #: 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 ""
-"У Вас уже есть учётная запись? В таком случае можете <a href=\"%(login_url)"
-"s\">войти</a>."
+msgid "Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>."
+msgstr "У Вас уже есть учётная запись? В таком случае можете <a href=\"%(login_url)s\">войти</a>."
+
+#: aleksis/core/templates/account/signup.html:22
+#: aleksis/core/templates/socialaccount/signup.html:23
+msgid "Sign up"
+msgstr "Зарегистрироваться"
 
 #: aleksis/core/templates/account/signup_closed.html:5
 #: aleksis/core/templates/account/signup_closed.html:6
@@ -1618,17 +1525,13 @@ msgstr "Подтвердите свой адрес эл.почты!"
 #: aleksis/core/templates/account/verification_sent.html:16
 msgid ""
 "\n"
-"            This part of the site requires us to verify that you are who you "
-"claim to be.\n"
-"            For this purpose, we require that you verify ownership of your e-"
-"mail address.\n"
+"            This part of the site requires us to verify that you are who you claim to be.\n"
+"            For this purpose, we require that you verify ownership of your e-mail address.\n"
 "          "
 msgstr ""
 "\n"
-"            Для этой части сайта необходимо пройти проверку, что Вы - именно "
-"Ð’Ñ‹.\n"
-"            Для этого нам нужно проверить как минимум, что адрес эл.почты "
-"принадлежит именно Вам\n"
+"            Для этой части сайта необходимо пройти проверку, что Вы - именно Вы.\n"
+"            Для этого нам нужно проверить как минимум, что адрес эл.почты принадлежит именно Вам\n"
 "          "
 
 #: aleksis/core/templates/account/verification_sent.html:22
@@ -1642,8 +1545,7 @@ msgstr ""
 "\n"
 "            Мы отправили Вам для проверки эл.письмо.\n"
 "            Пожалуйста, перейдите по указанной ссылке. Если Вы не получите\n"
-"            письмо в ближайшие несколько минут, обратитесь, пожалуйста, к "
-"нам.\n"
+"            письмо в ближайшие несколько минут, обратитесь, пожалуйста, к нам.\n"
 "          "
 
 #: aleksis/core/templates/core/additional_field/edit.html:6
@@ -1689,18 +1591,6 @@ msgstr "Получатели"
 msgid "There are no announcements."
 msgstr "Объявлений нет."
 
-#: aleksis/core/templates/core/base.html:213
-msgid "About AlekSIS® — The Free School Information System"
-msgstr "Об AlekSIS® — The Free School Information System"
-
-#: aleksis/core/templates/core/base.html:221
-msgid "Imprint"
-msgstr "Отпечаток"
-
-#: aleksis/core/templates/core/base.html:229
-msgid "Privacy Policy"
-msgstr "Политика приватности"
-
 #: aleksis/core/templates/core/base_print.html:74
 msgid "Powered by AlekSIS®"
 msgstr "Под управлением AlekSIS®"
@@ -1734,6 +1624,11 @@ msgstr ""
 msgid "Edit %(widget)s"
 msgstr "Редактировать %(widget)s"
 
+#: aleksis/core/templates/core/dashboard_widget/list.html:8
+#: aleksis/core/templates/core/dashboard_widget/list.html:9
+msgid "Dashboard widgets"
+msgstr "Виджеты информпанели"
+
 #: aleksis/core/templates/core/dashboard_widget/list.html:15
 msgid "Create dashboard widget"
 msgstr "Создать виджет для информпанели"
@@ -1749,6 +1644,11 @@ msgstr "Создать %(name)s"
 msgid "Edit default dashboard"
 msgstr "Редактировать стандартную информпанель"
 
+#: aleksis/core/templates/core/data_check/list.html:9
+#: aleksis/core/templates/core/data_check/list.html:10
+msgid "Data checks"
+msgstr "Проверки данных"
+
 #: aleksis/core/templates/core/data_check/list.html:15
 msgid "Check data again"
 msgstr "Проверить данные ещё раз"
@@ -1820,39 +1720,29 @@ msgstr "Редактировать информпанель"
 #: aleksis/core/templates/core/edit_dashboard.html:24
 msgid ""
 "\n"
-"          On this page you can arrange your personal dashboard. You can drag "
-"any items from \"Available widgets\" to \"Your\n"
-"          Dashboard\" or change the order by moving the widgets. After you "
-"have finished, please don't forget to click on\n"
+"          On this page you can arrange your personal dashboard. You can drag any items from \"Available widgets\" to \"Your\n"
+"          Dashboard\" or change the order by moving the widgets. After you have finished, please don't forget to click on\n"
 "          \"Save\".\n"
 "        "
 msgstr ""
 "\n"
-"          На этой странице Вы можете упорядочить свою информпанель. "
-"Перетаскивайте любые элементы из \"Доступных виджетов\"\n"
-"          в \"Свою информпанель\" или меняйте порядок, перетягивая виджеты. "
-"После завершения не забудьте нажать\n"
+"          На этой странице Вы можете упорядочить свою информпанель. Перетаскивайте любые элементы из \"Доступных виджетов\"\n"
+"          в \"Свою информпанель\" или меняйте порядок, перетягивая виджеты. После завершения не забудьте нажать\n"
 "          \"Сохранить\".\n"
 "        "
 
 #: aleksis/core/templates/core/edit_dashboard.html:30
 msgid ""
 "\n"
-"          On this page you can arrange the default dashboard which is shown "
-"when a user doesn't arrange his own\n"
-"          dashboard. You can drag any items from \"Available widgets\" to "
-"\"Default Dashboard\" or change the order\n"
-"          by moving the widgets. After you have finished, please don't "
-"forget to click on \"Save\".\n"
+"          On this page you can arrange the default dashboard which is shown when a user doesn't arrange his own\n"
+"          dashboard. You can drag any items from \"Available widgets\" to \"Default Dashboard\" or change the order\n"
+"          by moving the widgets. After you have finished, please don't forget to click on \"Save\".\n"
 "        "
 msgstr ""
 "\n"
-"          На этой странице Вы можете упорядочить типовую/стандартную "
-"информпанель, которая отображается, если пользователь\n"
-"          не настроил свою. Перетягивайте любые элементы из \"Доступных "
-"виджетов\" в \"Типовую информпанель\" или меняйте \n"
-"          порядок, перетягивая виджеты. После заврешения не забудьте нажать "
-"\"Сохранить\".\n"
+"          На этой странице Вы можете упорядочить типовую/стандартную информпанель, которая отображается, если пользователь\n"
+"          не настроил свою. Перетягивайте любые элементы из \"Доступных виджетов\" в \"Типовую информпанель\" или меняйте \n"
+"          порядок, перетягивая виджеты. После заврешения не забудьте нажать \"Сохранить\".\n"
 "        "
 
 #: aleksis/core/templates/core/edit_dashboard.html:48
@@ -1867,19 +1757,21 @@ msgstr "Ваша информпанель"
 msgid "Default dashboard"
 msgstr "Типовая информпанель"
 
+#: aleksis/core/templates/core/group/child_groups.html:7
+#: aleksis/core/templates/core/group/child_groups.html:9
+msgid "Assign child groups to groups"
+msgstr "Определить дочерние группы к группе"
+
 #: aleksis/core/templates/core/group/child_groups.html:18
 msgid ""
 "\n"
-"          You can use this to assign child groups to groups. Please use the "
-"filters below to select groups you want to\n"
+"          You can use this to assign child groups to groups. Please use the filters below to select groups you want to\n"
 "          change and click \"Next\".\n"
 "        "
 msgstr ""
 "\n"
-"          Вы можете воспользоваться этим для привязки дочерних групп к "
-"основным. Для выбора групп,\n"
-"          которые хотите изменить, используйте фильтры, расположенные ниже и "
-"нажмите \"Далее\".\n"
+"          Вы можете воспользоваться этим для привязки дочерних групп к основным. Для выбора групп,\n"
+"          которые хотите изменить, используйте фильтры, расположенные ниже и нажмите \"Далее\".\n"
 "        "
 
 #: aleksis/core/templates/core/group/child_groups.html:31
@@ -1905,8 +1797,7 @@ msgid ""
 "          "
 msgstr ""
 "\n"
-"            Выберите, пожалуйста, несколько групп в порядке, по какому "
-"привязывать.\n"
+"            Выберите, пожалуйста, несколько групп в порядке, по какому привязывать.\n"
 "          "
 
 #: aleksis/core/templates/core/group/child_groups.html:72
@@ -1920,18 +1811,14 @@ msgstr "Пожалуйста, будьте аккуратны!"
 #: aleksis/core/templates/core/group/child_groups.html:79
 msgid ""
 "\n"
-"            If you click \"Back\" or \"Next\" the current group assignments "
-"are not saved.\n"
-"            If you click \"Save\", you will overwrite all existing child "
-"group relations for this group with what you\n"
+"            If you click \"Back\" or \"Next\" the current group assignments are not saved.\n"
+"            If you click \"Save\", you will overwrite all existing child group relations for this group with what you\n"
 "            selected on this page.\n"
 "          "
 msgstr ""
 "\n"
-"            Если нажмёте \"Назад\" или \"Далее\" привязки этой группы не "
-"сохранятся.\n"
-"            Если нажмёте \"Сохранить\", все существующие связи дочерней "
-"группы с этой группой будут заменены на\n"
+"            Если нажмёте \"Назад\" или \"Далее\" привязки этой группы не сохранятся.\n"
+"            Если нажмёте \"Сохранить\", все существующие связи дочерней группы с этой группой будут заменены на\n"
 "            выбранные на этой странице.\n"
 "          "
 
@@ -1965,39 +1852,36 @@ msgstr "Сохранить и продолжить"
 msgid "Edit group"
 msgstr "Редактировать группу"
 
-#: aleksis/core/templates/core/group/full.html:38
-#: aleksis/core/templates/core/person/full.html:40
-#: aleksis/core/templates/core/person/full.html:100
 #: aleksis/core/templates/core/group/full.html:40
 msgid "Change preferences"
 msgstr "Изменить свойства"
 
-#: aleksis/core/templates/core/group/full.html:64
+#: aleksis/core/templates/core/group/full.html:68
 msgid "Statistics"
 msgstr "Статистика"
 
-#: aleksis/core/templates/core/group/full.html:67
 #: aleksis/core/templates/core/group/full.html:73
 msgid "Count of members"
 msgstr "Количество участников"
 
-#: aleksis/core/templates/core/group/full.html:71
 #: aleksis/core/templates/core/group/full.html:81
 msgid "Average age"
 msgstr "Средний возраст"
 
-#: aleksis/core/templates/core/group/full.html:76
 #: aleksis/core/templates/core/group/full.html:90
 msgid "Age range"
 msgstr "Возрастной диапазон"
 
-#: aleksis/core/templates/core/group/full.html:76
-msgid "years to"
-msgstr "–"
-
-#: aleksis/core/templates/core/group/full.html:76
-msgid "years "
-msgstr "гг. "
+#: aleksis/core/templates/core/group/full.html:93
+#, python-format
+msgid ""
+"\n"
+"              %(min)s years to %(max)s years\n"
+"            "
+msgstr ""
+"\n"
+"              %(min)s лет до %(max)s лет\n"
+"            "
 
 #: aleksis/core/templates/core/group/list.html:14
 msgid "Create group"
@@ -2025,184 +1909,30 @@ msgstr "Редактировать тип группы"
 msgid "Create group type"
 msgstr "Создать тип группы"
 
-#: aleksis/core/templates/core/ical/ical_create.html:4
-#: aleksis/core/templates/core/ical/ical_create.html:5
-#: aleksis/core/templates/core/ical/ical_list.html:12
-msgid "Create iCal URL"
-msgstr "Создать ссылку iCal"
-
-#: aleksis/core/templates/core/ical/ical_create.html:16
-#: aleksis/core/templates/core/ical/ical_edit.html:16
-#: aleksis/core/templates/oauth2_provider/application/create.html:14
-#: aleksis/core/templates/oauth2_provider/application/edit.html:14
-#: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:24
-#: aleksis/core/templates/two_factor/_wizard_actions.html:6
-msgid "Cancel"
-msgstr "Отменить"
-
-#: aleksis/core/templates/core/ical/ical_edit.html:4
-#: aleksis/core/templates/core/ical/ical_edit.html:5
-#, python-format
-msgid "Edit iCal URL %(object)s"
-msgstr "Редактировать ссылку iCal %(object)s"
-
-#: aleksis/core/templates/core/ical/ical_list.html:4
-#: aleksis/core/templates/core/ical/ical_list.html:5
-msgid "ICal Feeds"
-msgstr "iCal-ленты"
-
-#: aleksis/core/templates/core/ical/ical_list.html:8
-msgid ""
-"These are URLs for different Calendar Feeds in the iCal (.ics) format. You "
-"can create as many as you want and import them in your calendar software."
-msgstr ""
-"Здесь находятся ссылки на разные ленты календарей в формате iCal (.ics). Вы "
-"можете создать их столько, сколько будет необходимо и импортировать их в ПО "
-"для работы с календарями."
-
-#: aleksis/core/templates/core/ical/ical_list.html:14
-msgid "Your iCal URLs"
-msgstr "Ваши ссылки iCal"
-
 #: aleksis/core/templates/core/index.html:4
 msgid "Home"
 msgstr "Домой"
 
-#: aleksis/core/templates/core/index.html:49
+#: aleksis/core/templates/core/index.html:34
 msgid ""
 "\n"
-"        You didn't customise your dashboard so that you see the system "
-"default. Please click on \"Edit dashboard\" to\n"
+"        You didn't customise your dashboard so that you see the system default. Please click on \"Edit dashboard\" to\n"
 "        customise your personal dashboard.\n"
 "      "
 msgstr ""
 "\n"
-"        Вы ещё не настроили свою информпанель, так что пока наблюдаете "
-"типовую по-умолчанию. Для настройки \n"
+"        Вы ещё не настроили свою информпанель, так что пока наблюдаете типовую по-умолчанию. Для настройки \n"
 "         своей информпанели клацните \"Редактировать информпанель\".\n"
 "      "
 
-#: aleksis/core/templates/core/index.html:59
+#: aleksis/core/templates/core/index.html:44
 msgid "Last activities"
 msgstr "Последние действия"
 
-#: aleksis/core/templates/core/index.html:77
+#: aleksis/core/templates/core/index.html:62
 msgid "No activities available yet."
 msgstr "Действия пока недоступны."
 
-#: aleksis/core/templates/core/index.html:82
-msgid "Recent notifications"
-msgstr "Свежие уведомления"
-
-#: aleksis/core/templates/core/index.html:98
-#: aleksis/core/templates/core/notifications.html:23
-msgid "More information →"
-msgstr "Больше информации →"
-
-#: aleksis/core/templates/core/index.html:105
-#: aleksis/core/templates/core/notifications.html:30
-msgid "No notifications available yet."
-msgstr "Уведомления пока ещё недоступны."
-
-#: aleksis/core/templates/core/pages/about.html:6
-msgid "About AlekSIS®"
-msgstr "Об AlekSIS®"
-
-#: aleksis/core/templates/core/pages/about.html:7
-msgid "AlekSIS® – The Free School Information System"
-msgstr "AlekSIS® – The Free School Information System"
-
-#: aleksis/core/templates/core/pages/about.html:15
-msgid "About AlekSIS"
-msgstr "Об AlekSIS"
-
-#: aleksis/core/templates/core/pages/about.html:17
-msgid ""
-"\n"
-"              This platform is powered by AlekSIS®, a web-based school "
-"information system (SIS) which can be used\n"
-"              to manage and/or publish organisational artifacts of "
-"educational institutions. AlekSIS is free software and\n"
-"              can be used by anyone.\n"
-"            "
-msgstr ""
-"\n"
-"              Эта платформа использует AlekSIS®, веб-инструмент "
-"информационной системы для обучения (SIS) при помощи которой\n"
-"              можно управлять и/или публиковать оргинформацию учебных "
-"заведений. AlekSIS - бесплатное ПО\n"
-"              и его может использовать любой желающий.\n"
-"            "
-
-#: aleksis/core/templates/core/pages/about.html:24
-msgid ""
-"\n"
-"              AlekSIS® is a registered trademark of the AlekSIS open source "
-"project, represented by Teckids e.V.\n"
-"            "
-msgstr ""
-"\n"
-"              AlekSIS® – зарегистрированная торговая марка проекта с "
-"открытым исходным кодом AlekSIS, которая представлена Teckids e.V.\n"
-"            "
-
-#: aleksis/core/templates/core/pages/about.html:30
-msgid "Website of AlekSIS"
-msgstr "Вебсайт AlekSIS"
-
-#: aleksis/core/templates/core/pages/about.html:31
-msgid "Source code"
-msgstr "Исходный код"
-
-#: aleksis/core/templates/core/pages/about.html:40
-msgid "Licence information"
-msgstr "Лицензионная информация"
-
-#: aleksis/core/templates/core/pages/about.html:42
-msgid ""
-"\n"
-"              The core and the official apps of AlekSIS are licenced under "
-"the EUPL, version 1.2 or later. For licence\n"
-"              information from third-party apps, if installed, refer to the "
-"respective components below. The\n"
-"              licences are marked like this:\n"
-"            "
-msgstr ""
-"\n"
-"              Ядро и официальные дополнения AlekSIS лицензированы под "
-"лицензией EUPL, версии 1.2 или новее. Для получения информации\n"
-"              о компонентах третих сторон, если таковы установлены, "
-"перейдите к соответствующим компонентам ниже.\n"
-"              Эти лицензии обозначены такой отметкой:\n"
-"            "
-
-#: aleksis/core/templates/core/pages/about.html:50
-msgid "Free/Open Source Licence"
-msgstr "Бесплатная лицензия или Open Source"
-
-#: aleksis/core/templates/core/pages/about.html:51
-msgid "Other Licence"
-msgstr "Другая лицензия"
-
-#: aleksis/core/templates/core/pages/about.html:55
-msgid "Full licence text"
-msgstr "Полный текст лицензии"
-
-#: aleksis/core/templates/core/pages/about.html:56
-msgid "More information about the EUPL"
-msgstr "Больше информации о EUPL"
-
-#: aleksis/core/templates/core/pages/about.html:95
-#, python-format
-msgid ""
-"\n"
-"                    This app is licenced under %(licence)s.\n"
-"                  "
-msgstr ""
-"\n"
-"                    Это приложение под лицензией %(licence)s.\n"
-"                  "
-
 #: aleksis/core/templates/core/pages/delete.html:6
 #, python-format
 msgid "Delete %(object_name)s"
@@ -2219,22 +1949,10 @@ msgstr ""
 "      Вы действительно хотите удалить %(object_name)s \"%(object)s\"?\n"
 "    "
 
-#: aleksis/core/templates/core/pages/progress.html:27
-msgid ""
-"\n"
-"              Without activated JavaScript the progress status can't be "
-"updated.\n"
-"            "
-msgstr ""
-"\n"
-"              Без активного JavaScript статус выполнения обновляться не "
-"сможет.\n"
-"            "
-
-#: aleksis/core/templates/core/pages/progress.html:47
-#: aleksis/core/templates/two_factor/core/otp_required.html:19
-msgid "Go back"
-msgstr "Назад"
+#: aleksis/core/templates/core/pages/system_status.html:5
+#: aleksis/core/templates/core/pages/system_status.html:7
+msgid "System status"
+msgstr "Состояние системы"
 
 #: aleksis/core/templates/core/pages/system_status.html:12
 msgid "System checks"
@@ -2247,13 +1965,11 @@ msgstr "Включен режим обслуживания"
 #: aleksis/core/templates/core/pages/system_status.html:24
 msgid ""
 "\n"
-"                Only admin and visitors from internal IPs can access "
-"the site.\n"
+"                Only admin and visitors from internal IPs can access the site.\n"
 "              "
 msgstr ""
 "\n"
-"                Доступ к сайту имеют только администратор и пользователи с "
-"внутренними IP-адресами.\n"
+"                Доступ к сайту имеют только администратор и пользователи с внутренними IP-адресами.\n"
 "              "
 
 #: aleksis/core/templates/core/pages/system_status.html:36
@@ -2271,13 +1987,11 @@ msgstr "Режим отладки включен"
 #: aleksis/core/templates/core/pages/system_status.html:49
 msgid ""
 "\n"
-"                The web server throws back debug information on errors. Do "
-"not use in production!\n"
+"                The web server throws back debug information on errors. Do not use in production!\n"
 "              "
 msgstr ""
 "\n"
-"                Веб-сервер во время ошибок пишет отладочную информацию. Не "
-"используйте в продакшене!\n"
+"                Веб-сервер во время ошибок пишет отладочную информацию. Не используйте в продакшене!\n"
 "              "
 
 #: aleksis/core/templates/core/pages/system_status.html:56
@@ -2287,13 +2001,11 @@ msgstr "Режим отладки отключен"
 #: aleksis/core/templates/core/pages/system_status.html:58
 msgid ""
 "\n"
-"                Debug mode is disabled. Default error pages are displayed on "
-"errors.\n"
+"                Debug mode is disabled. Default error pages are displayed on errors.\n"
 "              "
 msgstr ""
 "\n"
-"                Режим отладки отключен. В случае ошибок будут отображаться "
-"стандартные страницы об ошибках.\n"
+"                Режим отладки отключен. В случае ошибок будут отображаться стандартные страницы об ошибках.\n"
 "              "
 
 #: aleksis/core/templates/core/pages/system_status.html:71
@@ -2343,13 +2055,11 @@ msgstr "Пробное генерирование PDF"
 #: aleksis/core/templates/core/pages/test_pdf.html:14
 msgid ""
 "\n"
-"        This simple view can be used to ensure the correct function of the "
-"built-in PDF generation system.\n"
+"        This simple view can be used to ensure the correct function of the built-in PDF generation system.\n"
 "      "
 msgstr ""
 "\n"
-"        Эта простая страница может помочь проверить корректность настроек "
-"встроенной системы генерирования PDF.\n"
+"        Эта простая страница может помочь проверить корректность настроек встроенной системы генерирования PDF.\n"
 "      "
 
 #: aleksis/core/templates/core/partials/announcements.html:8
@@ -2388,13 +2098,11 @@ msgstr ""
 
 #: aleksis/core/templates/core/partials/avatar_content.html:14
 #: aleksis/core/templates/core/partials/avatar_content.html:15
-#: aleksis/core/templates/core/person/full.html:213
-#: aleksis/core/templates/core/person/full.html:214
 msgid "Avatar"
 msgstr "Аватар"
 
+#: aleksis/core/templates/core/partials/avatar_content.html:18
 #: aleksis/core/templates/core/partials/avatar_content.html:19
-#: aleksis/core/templates/core/partials/avatar_content.html:20
 msgid "Identicon"
 msgstr "Идентификатор (иконка)"
 
@@ -2406,45 +2114,12 @@ msgstr "Изменено"
 msgid "Unknown"
 msgstr "Неизвестно"
 
-#: aleksis/core/templates/core/partials/language_form.html:15
-#: aleksis/core/templates/core/partials/language_form.html:17
-msgid "Language"
-msgstr "Язык"
-
-#: aleksis/core/templates/core/partials/language_form.html:27
-#: aleksis/core/templates/core/partials/language_form.html:29
-msgid "Select language"
-msgstr "Выберите язык"
-
-#: aleksis/core/templates/core/partials/no_person.html:12
-msgid ""
-"\n"
-"            Your administrator account is not linked to any person. "
-"Therefore,\n"
-"            a dummy person has been linked to your account.\n"
-"          "
-msgstr ""
-"\n"
-"            Ваша административная учётная запись не соединена на с одним "
-"физлицом. Поэтому\n"
-"            к Вашей учётной записи привязано фейковое физлицо.\n"
-"          "
-
-#: aleksis/core/templates/core/partials/no_person.html:19
+#: aleksis/core/templates/core/partials/splash_screen.html:11
 msgid ""
 "\n"
-"            Your user account is not linked to a person. This means you\n"
-"            cannot access any school-related information. Please contact\n"
-"            the managers of AlekSIS at your school.\n"
-"          "
+"      This webbrowser doesn't support JavaScript, or its execution is blocked. Please use another browser to continue.\n"
+"    "
 msgstr ""
-"\n"
-"            Ваша учётная запись не связана с физлицом. Это значит,\n"
-"            что у Вас нет доступа на к какой учебной информации. Обратитесь,"
-"\n"
-"            пожалуйста, к администраторам AlekSIS в Вашем учебном заведении."
-"\n"
-"          "
 
 #: aleksis/core/templates/core/perms/assign.html:12
 #: aleksis/core/templates/core/perms/assign.html:13
@@ -2459,6 +2134,11 @@ msgstr "Выбранный доступ"
 msgid "Assign"
 msgstr "Назначить"
 
+#: aleksis/core/templates/core/perms/list.html:13
+#: aleksis/core/templates/core/perms/list.html:14
+msgid "Manage permissions"
+msgstr "Управление разрешениями"
+
 #: aleksis/core/templates/core/perms/list.html:21
 msgid "Assign a new permission"
 msgstr "Назначить новый доступ"
@@ -2502,28 +2182,6 @@ msgstr "Создать физлицо"
 msgid "Edit person"
 msgstr "Редактировать физлицо"
 
-#: aleksis/core/templates/core/person/full.html:47
-#: aleksis/core/templates/core/person/full.html:107
-msgid "Impersonate"
-msgstr "Маскировка"
-
-#: aleksis/core/templates/core/person/full.html:54
-#: aleksis/core/templates/core/person/full.html:114
-msgid "Invite user"
-msgstr "Пригласить пользователя"
-
-#: aleksis/core/templates/core/person/full.html:121
-msgid "Contact details"
-msgstr "Контактные данные"
-
-#: aleksis/core/templates/core/person/full.html:220
-msgid "This person didn't upload a personal photo."
-msgstr "Эта особа не загрузила личное фото."
-
-#: aleksis/core/templates/core/person/full.html:228
-msgid "Children"
-msgstr "Дети"
-
 #: aleksis/core/templates/core/person/list.html:21
 msgid "Filter persons"
 msgstr "Фильтр физлиц"
@@ -2543,6 +2201,10 @@ msgstr "Создать Учебный год"
 msgid "Edit school term"
 msgstr "Редактировать Учебный год"
 
+#: aleksis/core/templates/dynamic_preferences/form.html:5
+msgid "Preferences"
+msgstr "Свойства"
+
 #: aleksis/core/templates/dynamic_preferences/form.html:9
 msgid "Site preferences"
 msgstr "Свойства сайта"
@@ -2569,16 +2231,17 @@ msgid "The invite feature is disabled."
 msgstr "Фукция приглашения выключена."
 
 #: aleksis/core/templates/invitations/disabled.html:15
-msgid ""
-"To enable it, switch on the corresponding checkbox in the authentication "
-"section of the "
-msgstr ""
-"Для активации включите соответствующий чекбокс в разделе авторизации на "
+msgid "To enable it, switch on the corresponding checkbox in the authentication section of the "
+msgstr "Для активации включите соответствующий чекбокс в разделе авторизации на "
 
 #: aleksis/core/templates/invitations/disabled.html:16
 msgid "site preferences page"
 msgstr "странице настроек сайта"
 
+#: aleksis/core/templates/invitations/enter.html:7
+msgid "Accept invitation"
+msgstr "Принять приглашение"
+
 #: aleksis/core/templates/invitations/enter.html:21
 msgid "Accept your invitation"
 msgstr "Принятие Вашего приглашения"
@@ -2631,6 +2294,13 @@ msgstr "Приглашение для %(email)s было принято."
 msgid "Register OAuth2 Application"
 msgstr "Регистрация приложения OAuth2"
 
+#: aleksis/core/templates/oauth2_provider/application/create.html:14
+#: aleksis/core/templates/oauth2_provider/application/edit.html:14
+#: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:24
+#: aleksis/core/templates/two_factor/_wizard_actions.html:6
+msgid "Cancel"
+msgstr "Отменить"
+
 #: aleksis/core/templates/oauth2_provider/application/detail.html:5
 msgid "OAuth2 Application"
 msgstr "Приложение OAuth2"
@@ -2664,6 +2334,11 @@ msgstr "Пропустить авторизацию"
 msgid "Edit OAuth2 Application"
 msgstr "Редактировать приложение OAuth2"
 
+#: aleksis/core/templates/oauth2_provider/application/list.html:5
+#: aleksis/core/templates/oauth2_provider/application/list.html:6
+msgid "OAuth2 Applications"
+msgstr "Приложения OAuth2"
+
 #: aleksis/core/templates/oauth2_provider/application/list.html:11
 msgid "Register new application"
 msgstr "Зарегистрировать новое приложение"
@@ -2695,14 +2370,6 @@ msgstr "Разрешить"
 msgid "Disallow"
 msgstr "Запретить"
 
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:12
-msgid "Success!"
-msgstr "Успех!"
-
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:14
-msgid "Please return to your application and enter this code:"
-msgstr "Вернитесь, пожалуйста, к своему приложению и впишите этот код:"
-
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:5
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:6
 #: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
@@ -2717,6 +2384,11 @@ msgstr "Ви действительно хотите отозвать досту
 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 applications."
 msgstr "Авторизованных приложений нет."
@@ -2726,24 +2398,27 @@ msgid "Network error"
 msgstr "Ошибка сети"
 
 #: aleksis/core/templates/offline.html:10
-msgid "No internet connection."
-msgstr "Отсутствует интернет-соединение."
+msgid "Page not available offline."
+msgstr ""
 
 #: aleksis/core/templates/offline.html:14
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      There was an error accessing this page. You probably don't have an internet connection. Check to see if your WiFi\n"
+#| "      or mobile data is turned on and try again. If you think you are connected, please contact the system\n"
+#| "      administrators:\n"
+#| "    "
 msgid ""
 "\n"
-"      There was an error accessing this page. You probably don't have an "
-"internet connection. Check to see if your WiFi\n"
-"      or mobile data is turned on and try again. If you think you are "
-"connected, please contact the system\n"
+"      This page is not available offline. Since you probably don't have an internet connection, check to see if your WiFi\n"
+"      or mobile data is turned on and try again. If you think you are connected, please contact the system\n"
 "      administrators:\n"
 "    "
 msgstr ""
 "\n"
-"      При доступе к этой странице произошла ошибка. Возможно, у Вас проблема "
-"с интернетом. Убедитесь, что Ваш WiFi\n"
-"      или мобильный интернет включены и попробуйте ещё раз. Если считаете, "
-"что с подключением всё хорошо, обратитесь,\n"
+"      При доступе к этой странице произошла ошибка. Возможно, у Вас проблема с интернетом. Убедитесь, что Ваш WiFi\n"
+"      или мобильный интернет включены и попробуйте ещё раз. Если считаете, что с подключением всё хорошо, обратитесь,\n"
 "      пожалуйста, к системным администраторам:\n"
 "    "
 
@@ -2779,14 +2454,12 @@ msgstr "Ошибка входа учётной записи третьей ст
 #: aleksis/core/templates/socialaccount/authentication_error.html:15
 msgid ""
 "\n"
-"            An error occurred while attempting to login via your third-party "
-"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"
-"            Во время попытки входа с Вашей сторонней учётной записью "
-"возникла ошибка входа.\n"
+"            Во время попытки входа с Вашей сторонней учётной записью возникла ошибка входа.\n"
 "            Обратитесь, пожалуйста, к администратору сайта.\n"
 "          "
 
@@ -2801,9 +2474,7 @@ msgstr "Удалить"
 
 #: aleksis/core/templates/socialaccount/connections.html:34
 msgid "You currently have no third-party accounts connected to this account."
-msgstr ""
-"Сейчас у Вас нет учётных записей третих сторон, соединённых с этой учётной "
-"записью."
+msgstr "Сейчас у Вас нет учётных записей третих сторон, соединённых с этой учётной записью."
 
 #: aleksis/core/templates/socialaccount/connections.html:37
 msgid "Add a Third-party Account"
@@ -2833,15 +2504,11 @@ msgstr "Вход отменён"
 #, python-format
 msgid ""
 "\n"
-"            You decided to cancel logging in to our site using one of your "
-"existing accounts. If this was a mistake, please proceed to <a href="
-"\"%(login_url)s\">sign in</a>.\n"
+"            You decided to cancel logging in to our site using one of your existing accounts. If this was a mistake, please proceed to <a href=\"%(login_url)s\">sign in</a>.\n"
 "          "
 msgstr ""
 "\n"
-"            Похоже, Вы отменили вход на наш сайт с одной из Ваших учётных "
-"записей. Если это произошло случайно, Вы можете <a href=\"%(login_url)s\""
-">продолжить вход здесь</a>.\n"
+"            Похоже, Вы отменили вход на наш сайт с одной из Ваших учётных записей. Если это произошло случайно, Вы можете <a href=\"%(login_url)s\">продолжить вход здесь</a>.\n"
 "          "
 
 #: aleksis/core/templates/socialaccount/signup.html:12
@@ -2851,8 +2518,7 @@ msgid ""
 "        %(site_name)s. As a final step, please complete the following form:"
 msgstr ""
 "Вы на пути к использованию своей учётной записи %(provider_name)s\n"
-"        для входа в %(site_name)s. Заполните, пожалуйста, для завершения эту "
-"форму:"
+"        для входа в %(site_name)s. Заполните, пожалуйста, для завершения эту форму:"
 
 #: aleksis/core/templates/socialaccount/snippets/provider_list.html:12
 #, python-format
@@ -2939,25 +2605,21 @@ msgstr "Система обнаружила новые проблемы с Ва
 #: aleksis/core/templates/templated_email/data_checks.email:6
 msgid ""
 "the system detected some new problems with your data.\n"
-"Please take some time to inspect them and solve the issues or mark them as "
-"ignored."
+"Please take some time to inspect them and solve the issues or mark them as ignored."
 msgstr ""
 "система обнаружила новые проблемы с Вашими данными.\n"
-"Уделите, пожалуйста, немного времени для их проверки и решения проблем, или "
-"же отметьте их для игнорирования."
+"Уделите, пожалуйста, немного времени для их проверки и решения проблем, или же отметьте их для игнорирования."
 
 #: aleksis/core/templates/templated_email/data_checks.email:15
 msgid ""
 "\n"
 "   the system detected some new problems with your data.\n"
-"   Please take some time to inspect them and solve the issues or mark them "
-"as ignored.\n"
+"   Please take some time to inspect them and solve the issues or mark them as ignored.\n"
 "  "
 msgstr ""
 "\n"
 "   система обнаружила новые проблемы с Вашими данными.\n"
-"   Уделите, пожалуйста, немного времени для их проверки и решения проблем, "
-"или же отметьте их для игнорирования.\n"
+"   Уделите, пожалуйста, немного времени для их проверки и решения проблем, или же отметьте их для игнорирования.\n"
 "  "
 
 #: aleksis/core/templates/templated_email/data_checks.email:23
@@ -3043,22 +2705,16 @@ msgid ""
 "\n"
 "        Backup tokens can be used when your primary and backup\n"
 "        phone numbers aren't available. The backup tokens below can be used\n"
-"        for login verification. If you've used up all your backup tokens, "
-"you\n"
-"        can generate a new set of backup tokens. Only the backup tokens "
-"shown\n"
+"        for login verification. If you've used up all your backup tokens, you\n"
+"        can generate a new set of backup tokens. Only the backup tokens shown\n"
 "        below will be valid.\n"
 "      "
 msgstr ""
 "\n"
-"        Резервные токены могут быть использованы, когда Ваши основной и "
-"резервный\n"
-"        телефонные номера недоступны. Резервные токены, указанные ниже, "
-"могут быть\n"
-"        использованы для верификации входа. Когда Вы используете все "
-"резервные токены,\n"
-"        Вы сможете сгенерировать новый набор резервных токенов. "
-"Действительными будут только\n"
+"        Резервные токены могут быть использованы, когда Ваши основной и резервный\n"
+"        телефонные номера недоступны. Резервные токены, указанные ниже, могут быть\n"
+"        использованы для верификации входа. Когда Вы используете все резервные токены,\n"
+"        Вы сможете сгенерировать новый набор резервных токенов. Действительными будут только\n"
 "        токены, указанные ниже.\n"
 "      "
 
@@ -3084,6 +2740,12 @@ msgstr "Назад к безопасности учётной записи"
 msgid "Generate Tokens"
 msgstr "Создать Токены"
 
+#: aleksis/core/templates/two_factor/core/login.html:6
+#: aleksis/core/templates/two_factor/core/login.html:32
+#: aleksis/core/templates/two_factor/core/login.html:95
+msgid "Login"
+msgstr "Войти"
+
 #: aleksis/core/templates/two_factor/core/login.html:27
 #, python-format
 msgid "Login for %(name)s"
@@ -3103,9 +2765,7 @@ msgstr ""
 
 #: aleksis/core/templates/two_factor/core/login.html:47
 msgid "Please login with your account to use the external application."
-msgstr ""
-"Для использования внешнего приложения войдите, пожалуйста, в свою учётную "
-"запись."
+msgstr "Для использования внешнего приложения войдите, пожалуйста, в свою учётную запись."
 
 #: aleksis/core/templates/two_factor/core/login.html:54
 msgid "Please login to see this page."
@@ -3114,28 +2774,24 @@ msgstr "Для просмотра этой страницы, пожалуйст
 #: aleksis/core/templates/two_factor/core/login.html:65
 msgid ""
 "\n"
-"                        We are calling your phone right now, please enter "
-"the\n"
+"                        We are calling your phone right now, please enter the\n"
 "                        digits you hear.\n"
 "                      "
 msgstr ""
 "\n"
-"                        Мы сейчас позвоним на Ваш номер. Напишите, "
-"пожалуйста, цифры,\n"
+"                        Мы сейчас позвоним на Ваш номер. Напишите, пожалуйста, цифры,\n"
 "                        которые Вы услышите.\n"
 "                      "
 
 #: aleksis/core/templates/two_factor/core/login.html:70
 msgid ""
 "\n"
-"                        We sent you a text message, please enter the tokens "
-"we\n"
+"                        We sent you a text message, please enter the tokens we\n"
 "                        sent.\n"
 "                      "
 msgstr ""
 "\n"
-"                        Мы отправили Вам текстовое сообщение. Напишите, "
-"пожалуйста, полученный\n"
+"                        Мы отправили Вам текстовое сообщение. Напишите, пожалуйста, полученный\n"
 "                        токен.\n"
 "                      "
 
@@ -3154,21 +2810,15 @@ msgstr ""
 #: aleksis/core/templates/two_factor/core/login.html:81
 msgid ""
 "\n"
-"                      Use this form for entering backup tokens for logging "
-"in.\n"
-"                      These tokens have been generated for you to print and "
-"keep safe. Please\n"
-"                      enter one of these backup tokens to login to your "
-"account.\n"
+"                      Use this form for entering backup tokens for logging in.\n"
+"                      These tokens have been generated for you to print and keep safe. Please\n"
+"                      enter one of these backup tokens to login to your account.\n"
 "                    "
 msgstr ""
 "\n"
-"                      Для входа воспользуйтесь формой для ввода резервных "
-"токенов.\n"
-"                      Эти токены были сгенерированы, чтобы Вы распечатали их "
-"и сохранили в надёжном месте.\n"
-"                      Для входа укажите, пожалуйста, один из резервных "
-"токенов.\n"
+"                      Для входа воспользуйтесь формой для ввода резервных токенов.\n"
+"                      Эти токены были сгенерированы, чтобы Вы распечатали их и сохранили в надёжном месте.\n"
+"                      Для входа укажите, пожалуйста, один из резервных токенов.\n"
 "                    "
 
 #: aleksis/core/templates/two_factor/core/login.html:109
@@ -3181,8 +2831,7 @@ msgstr "Или можете воспользоваться одним из ре
 
 #: aleksis/core/templates/two_factor/core/login.html:122
 msgid "As a last resort, you can use a backup token:"
-msgstr ""
-"В качестве последней возможности можете воспользоваться резервным токеном:"
+msgstr "В качестве последней возможности можете воспользоваться резервным токеном:"
 
 #: aleksis/core/templates/two_factor/core/login.html:125
 msgid "Use Backup Token"
@@ -3199,16 +2848,12 @@ msgstr "Доступ отсутствует"
 #: aleksis/core/templates/two_factor/core/otp_required.html:10
 msgid ""
 "The page you requested, enforces users to verify using\n"
-"          two-factor authentication for security reasons. You need to enable "
-"these\n"
+"          two-factor authentication for security reasons. You need to enable these\n"
 "          security features in order to access this page."
 msgstr ""
-"Для просмотра запрошенной страницы, с оглядкой на безопасность, необходима "
-"дополнительная\n"
-"          проверка пользователя с использованием двухфакторной "
-"аутентификации.\n"
-"          Для доступа к данной странице Вы должны включить эти функции "
-"безопасности."
+"Для просмотра запрошенной страницы, с оглядкой на безопасность, необходима дополнительная\n"
+"          проверка пользователя с использованием двухфакторной аутентификации.\n"
+"          Для доступа к данной странице Вы должны включить эти функции безопасности."
 
 #: aleksis/core/templates/two_factor/core/otp_required.html:14
 msgid ""
@@ -3220,6 +2865,10 @@ msgstr ""
 "          Для увеличения безопасности учётки включите двухфакторную\n"
 "          аутентификацию."
 
+#: aleksis/core/templates/two_factor/core/otp_required.html:19
+msgid "Go back"
+msgstr "Назад"
+
 #: aleksis/core/templates/two_factor/core/phone_register.html:5
 #: aleksis/core/templates/two_factor/core/phone_register.html:9
 msgid "Add Backup Phone"
@@ -3252,8 +2901,7 @@ msgid ""
 "      "
 msgstr ""
 "\n"
-"        Вы устанавливаете для своей учётной записи новый уровень "
-"безопасности.\n"
+"        Вы устанавливаете для своей учётной записи новый уровень безопасности.\n"
 "        Для включения двухфакторной аутентификации пройдите несколько шагов\n"
 "        мастера настройки.\n"
 "      "
@@ -3265,24 +2913,20 @@ msgid ""
 "      "
 msgstr ""
 "\n"
-"        Выберите, пожалуйста, метод аутентификации, который Вы хотите "
-"использовать:\n"
+"        Выберите, пожалуйста, метод аутентификации, который Вы хотите использовать:\n"
 "      "
 
 #: aleksis/core/templates/two_factor/core/setup.html:23
 msgid ""
 "\n"
 "        To start using a token generator, please use your\n"
-"        favourite two factor authentication (TOTP) app to scan the QR code "
-"below.\n"
+"        favourite two factor authentication (TOTP) app to scan the QR code below.\n"
 "        Then, enter the token generated by the app.\n"
 "      "
 msgstr ""
 "\n"
-"        Для того, чтобы начать использование генератора токенов, "
-"воспользуйтесь, пожалуйста, своим\n"
-"        любимым приложением для двухфакторной аутентификации (TOTP) и "
-"отсканируйте QR-код, который видите ниже.\n"
+"        Для того, чтобы начать использование генератора токенов, воспользуйтесь, пожалуйста, своим\n"
+"        любимым приложением для двухфакторной аутентификации (TOTP) и отсканируйте QR-код, который видите ниже.\n"
 "        После этого напишите полученный генератором токен.\n"
 "      "
 
@@ -3313,13 +2957,11 @@ msgstr ""
 #: aleksis/core/templates/two_factor/core/setup.html:50
 msgid ""
 "\n"
-"            We are calling your phone right now, please enter the digits you "
-"hear.\n"
+"            We are calling your phone right now, please enter the digits you hear.\n"
 "          "
 msgstr ""
 "\n"
-"            Мы сейчас звоним на Ваш номер, – напишите, пожалуйста, цифры, "
-"которые услышите.\n"
+"            Мы сейчас звоним на Ваш номер, – напишите, пожалуйста, цифры, которые услышите.\n"
 "          "
 
 #: aleksis/core/templates/two_factor/core/setup.html:56
@@ -3329,29 +2971,22 @@ msgid ""
 "          "
 msgstr ""
 "\n"
-"            Мы отправили Вам текстовое сообщение. Напишите, пожалуйста, "
-"полученные токены.\n"
+"            Мы отправили Вам текстовое сообщение. Напишите, пожалуйста, полученные токены.\n"
 "          "
 
 #: aleksis/core/templates/two_factor/core/setup.html:63
 msgid ""
 "\n"
-"          We've encountered an issue with the selected authentication "
-"method. Please\n"
-"          go back and verify that you entered your information correctly, "
-"try\n"
-"          again, or use a different authentication method instead. If the "
-"issue\n"
+"          We've encountered an issue with the selected authentication method. Please\n"
+"          go back and verify that you entered your information correctly, try\n"
+"          again, or use a different authentication method instead. If the issue\n"
 "          persists, contact the site administrator.\n"
 "        "
 msgstr ""
 "\n"
-"          Мы заметили, что существует проблема с использованием выбранного "
-"метода авторизации. Вернитесь,\n"
-"          пожалуйста, назад, и убедитесь, что необходимые данные указаны "
-"правильно,\n"
-"          после чего попробуйте зайти ешё раз, или же воспользуйтесь другим "
-"вариантом входа. Если же\n"
+"          Мы заметили, что существует проблема с использованием выбранного метода авторизации. Вернитесь,\n"
+"          пожалуйста, назад, и убедитесь, что необходимые данные указаны правильно,\n"
+"          после чего попробуйте зайти ешё раз, или же воспользуйтесь другим вариантом входа. Если же\n"
 "          проблема остаётся, обратитесь к администратору сайта.\n"
 "        "
 
@@ -3377,8 +3012,7 @@ msgstr "Двухфакторная аутентификация успешно 
 #: aleksis/core/templates/two_factor/core/setup_complete.html:14
 msgid ""
 "\n"
-"        Congratulations, you've successfully enabled two-factor "
-"authentication.\n"
+"        Congratulations, you've successfully enabled two-factor authentication.\n"
 "      "
 msgstr ""
 "\n"
@@ -3399,16 +3033,13 @@ msgstr "Создать резервные коды"
 msgid ""
 "\n"
 "          However, it might happen that you don't have access to\n"
-"          your primary token device. To enable account recovery, generate "
-"backup codes\n"
+"          your primary token device. To enable account recovery, generate backup codes\n"
 "          or add a phone number.\n"
 "        "
 msgstr ""
 "\n"
-"          Между прочим, может так случиться, что у Вас не будет доступа к "
-"своему основному\n"
-"          устройству с токенами. Для включения восстановления учётки "
-"создайте резервные коды\n"
+"          Между прочим, может так случиться, что у Вас не будет доступа к своему основному\n"
+"          устройству с токенами. Для включения восстановления учётки создайте резервные коды\n"
 "          или добавьте номер телефона.\n"
 "        "
 
@@ -3425,12 +3056,8 @@ msgid "Disable Two-Factor Authentication"
 msgstr "Отключить двухфакторную аутентификацию"
 
 #: aleksis/core/templates/two_factor/profile/disable.html:12
-msgid ""
-"You are about to disable two-factor authentication. This weakens your "
-"account security, are you sure?"
-msgstr ""
-"Вы отключаете двухфакторную аутентификацию. Это снизит защиту Вашей учётной "
-"записи. Вы уверены?"
+msgid "You are about to disable two-factor authentication. This weakens your account security, are you sure?"
+msgstr "Вы отключаете двухфакторную аутентификацию. Это снизит защиту Вашей учётной записи. Вы уверены?"
 
 #: aleksis/core/templates/two_factor/profile/disable.html:26
 msgid "Disable"
@@ -3518,8 +3145,7 @@ msgid ""
 msgstr ""
 "\n"
 "        Не смотря на то, что мы Вам рекомендуем этого не делать, Вы можете \n"
-"        также отключить двухфакторную аутентификацию для своей учётной "
-"записи.\n"
+"        также отключить двухфакторную аутентификацию для своей учётной записи.\n"
 "      "
 
 #: aleksis/core/templates/two_factor/profile/profile.html:78
@@ -3544,256 +3170,448 @@ msgstr "Эл.почта"
 msgid "SMS"
 msgstr "СМС"
 
-#: aleksis/core/util/pdf.py:118
+#: aleksis/core/util/pdf.py:151
 msgid "Progress: Generate PDF file"
 msgstr "В процессе: Генерирование файла PDF"
 
-#: aleksis/core/util/pdf.py:119
+#: aleksis/core/util/pdf.py:152
 msgid "Generating PDF file …"
 msgstr "Создание файла PDF …"
 
-#: aleksis/core/util/pdf.py:120
+#: aleksis/core/util/pdf.py:153
 msgid "The PDF file has been generated successfully."
 msgstr "Файл PDF успешно создан."
 
-#: aleksis/core/util/pdf.py:121
+#: aleksis/core/util/pdf.py:154
 msgid "There was a problem while generating the PDF file."
 msgstr "Во время создания файла PDF возникла проблема."
 
-#: aleksis/core/util/pdf.py:124
+#: aleksis/core/util/pdf.py:157
 msgid "Download PDF"
 msgstr "Скачать PDF"
 
-#: aleksis/core/views.py:292 aleksis/core/views.py:294
+#: aleksis/core/views.py:278
 msgid "The school term has been created."
 msgstr "Учебный год создан."
 
-#: aleksis/core/views.py:304 aleksis/core/views.py:306
+#: aleksis/core/views.py:290
 msgid "The school term has been saved."
 msgstr "Учебный год сохранён."
 
-#: aleksis/core/views.py:424 aleksis/core/views.py:426
+#: aleksis/core/views.py:394
 msgid "The child groups were successfully saved."
 msgstr "Дочерние группы сохранены."
 
-#: aleksis/core/views.py:443 aleksis/core/views.py:453
-#: aleksis/core/views.py:445 aleksis/core/views.py:455
+#: aleksis/core/views.py:413 aleksis/core/views.py:423
 msgid "The person has been saved."
 msgstr "Физлицо сохранено."
 
-#: aleksis/core/views.py:503 aleksis/core/views.py:505
+#: aleksis/core/views.py:473
 msgid "The group has been saved."
 msgstr "Группа сохранена."
 
-#: aleksis/core/views.py:600 aleksis/core/views.py:602
+#: aleksis/core/views.py:556
 msgid "The announcement has been saved."
 msgstr "Объявление сохранено."
 
-#: aleksis/core/views.py:616 aleksis/core/views.py:618
+#: aleksis/core/views.py:572
 msgid "The announcement has been deleted."
 msgstr "Объявление удалено."
 
-#: aleksis/core/views.py:684 aleksis/core/views.py:686
+#: aleksis/core/views.py:641
 msgid "The requested preference registry does not exist"
 msgstr "Журнал с запрошенными свойствами не существует"
 
-#: aleksis/core/views.py:703 aleksis/core/views.py:705
+#: aleksis/core/views.py:660
 msgid "The preferences have been saved successfully."
 msgstr "Свойства сохранены."
 
-#: aleksis/core/views.py:727 aleksis/core/views.py:729
+#: aleksis/core/views.py:684
 msgid "The person has been deleted."
 msgstr "Физлицо удалено."
 
-#: aleksis/core/views.py:741 aleksis/core/views.py:743
+#: aleksis/core/views.py:698
 msgid "The group has been deleted."
 msgstr "Группа удалена."
 
-#: aleksis/core/views.py:773
-msgid "The additional_field has been saved."
+#: aleksis/core/views.py:730
+msgid "The additional field has been saved."
 msgstr "Дополнительное поле сохранено."
 
-#: aleksis/core/views.py:807 aleksis/core/views.py:809
+#: aleksis/core/views.py:765
 msgid "The additional field has been deleted."
 msgstr "Дополнительное поле удалено."
 
-#: aleksis/core/views.py:832 aleksis/core/views.py:834
+#: aleksis/core/views.py:790
 msgid "The group type has been saved."
 msgstr "Тип группы сохранён."
 
-#: aleksis/core/views.py:862 aleksis/core/views.py:864
+#: aleksis/core/views.py:821
 msgid "The group type has been deleted."
 msgstr "Тип группы удалён."
 
-#: aleksis/core/views.py:895 aleksis/core/views.py:897
+#: aleksis/core/views.py:856
 msgid "Progress: Run data checks"
 msgstr "В процессе: Запуск проверки данных"
 
-#: aleksis/core/views.py:896 aleksis/core/views.py:898
+#: aleksis/core/views.py:857
 msgid "Run data checks …"
 msgstr "Запускается проверка данных …"
 
-#: aleksis/core/views.py:897 aleksis/core/views.py:899
+#: aleksis/core/views.py:858
 msgid "The data checks were run successfully."
 msgstr "Проверка данных успешно запущена."
 
-#: aleksis/core/views.py:898 aleksis/core/views.py:900
+#: aleksis/core/views.py:859
 msgid "There was a problem while running data checks."
 msgstr "Во время запуска проверки данных возникла проблема."
 
-#: aleksis/core/views.py:914 aleksis/core/views.py:916
+#: aleksis/core/views.py:876
 #, python-brace-format
 msgid "The solve option '{solve_option_obj.verbose_name}' "
 msgstr "Вариант решения \"{solve_option_obj.verbose_name}\" "
 
-#: aleksis/core/views.py:924 aleksis/core/views.py:926
+#: aleksis/core/views.py:886
 msgid "The requested solve option does not exist"
 msgstr "Запрошенный вариант решения не существует"
 
-#: aleksis/core/views.py:956 aleksis/core/views.py:958
+#: aleksis/core/views.py:919
 msgid "The dashboard widget has been saved."
 msgstr "Виджет информпанели сохранён."
 
-#: aleksis/core/views.py:986 aleksis/core/views.py:988
+#: aleksis/core/views.py:949
 msgid "The dashboard widget has been created."
 msgstr "Виджет информпанели создан."
 
-#: aleksis/core/views.py:996 aleksis/core/views.py:998
+#: aleksis/core/views.py:959
 msgid "The dashboard widget has been deleted."
 msgstr "Виджет информпанели удалён."
 
-#: aleksis/core/views.py:1067 aleksis/core/views.py:1069
+#: aleksis/core/views.py:1030
 msgid "Your dashboard configuration has been saved successfully."
 msgstr "Ваша конфигурация информпанели сохранена."
 
-#: aleksis/core/views.py:1069 aleksis/core/views.py:1071
+#: aleksis/core/views.py:1032
 msgid "The configuration of the default dashboard has been saved successfully."
 msgstr "Конфигурация типовой/стандартной информпанели."
 
-#: aleksis/core/views.py:1145 aleksis/core/views.py:1147
+#: aleksis/core/views.py:1103
 #, python-brace-format
 msgid "The invitation was successfully created. The invitation code is {code}"
 msgstr "Приглашение успешно создано. Код приглашения: {code}"
 
-#: aleksis/core/views.py:1236 aleksis/core/views.py:1238
+#: aleksis/core/views.py:1200
 msgid "We have successfully assigned the permissions."
 msgstr "Мы успешно назначили доступы."
 
-#: aleksis/core/views.py:1246 aleksis/core/views.py:1248
+#: aleksis/core/views.py:1210
 msgid "The global user permission has been deleted."
 msgstr "Глобальный пользовательский доступ удалён."
 
-#: aleksis/core/views.py:1256 aleksis/core/views.py:1258
+#: aleksis/core/views.py:1220
 msgid "The global group permission has been deleted."
 msgstr "Глобальный групповой доступ удалён."
 
-#: aleksis/core/views.py:1266 aleksis/core/views.py:1268
+#: aleksis/core/views.py:1230
 msgid "The object user permission has been deleted."
 msgstr "Объектный пользовательский доступ удалён."
 
-#: aleksis/core/views.py:1276 aleksis/core/views.py:1278
+#: aleksis/core/views.py:1240
 msgid "The object group permission has been deleted."
 msgstr "Объектный групповой доступ удалён."
 
-#: aleksis/core/views.py:1344 aleksis/core/views.py:1346
-msgid "The requested PDF file does not exist"
-msgstr "Запрошенный файл PDF не существует"
-
-#: aleksis/core/views.py:1353 aleksis/core/views.py:1357
-#: aleksis/core/views.py:1355 aleksis/core/views.py:1359
-msgid "The requested task does not exist or is not accessible"
-msgstr "Запрошенное задание не существует или недоступно"
-
-#: aleksis/core/views.py:1409 aleksis/core/views.py:1411
-msgid ""
-"The third-party account could not be disconnected because it is the only "
-"login method available."
-msgstr ""
-"Учётную запись третьей стороны нельзя отключить, т.к. это единственный "
-"способ входа."
+#: aleksis/core/views.py:1349
+msgid "The third-party account could not be disconnected because it is the only login method available."
+msgstr "Учётную запись третьей стороны нельзя отключить, т.к. это единственный способ входа."
 
-#: aleksis/core/views.py:1416 aleksis/core/views.py:1418
+#: aleksis/core/views.py:1356
 msgid "The third-party account has been successfully disconnected."
 msgstr "Учётная запись третьей стороны успешно отключена."
 
-#: aleksis/core/views.py:1487 aleksis/core/views.py:1489
-msgid ""
-"Person was invited successfully and an email with further instructions has "
-"been send to them."
-msgstr ""
-"Владелец указанного эл.адреса успешно приглашён. Инструкции о дальнейших "
-"действиях отправлены на эл.почту."
+#: aleksis/core/views.py:1432
+msgid "Person was invited successfully and an email with further instructions has been send to them."
+msgstr "Владелец указанного эл.адреса успешно приглашён. Инструкции о дальнейших действиях отправлены на эл.почту."
 
-#: aleksis/core/views.py:1498 aleksis/core/views.py:1500
+#: aleksis/core/views.py:1443
 msgid "Person was already invited."
 msgstr "Кто-то уже пригласил его/её."
 
-#: aleksis/core/views.py:1598
-msgid "ICal feed updated successfully"
-msgstr "Лента iCal успешно обновлена"
+#~ msgid "Birthday Calendar"
+#~ msgstr "Календарь Дней Рождения"
 
-#: aleksis/core/views.py:1608
-msgid "ICal feed deleted successfully"
-msgstr "Лента iCal успешно удалена"
+#~ msgid "A Calendar of Birthdays"
+#~ msgstr "Календарь Дней Рождения"
 
-#: aleksis/core/views.py:1616
-msgid "ICal feed created successfully"
-msgstr "Лента iCal успешно создана"
-
-#: aleksis/core/data_checks.py:330
 #, python-format
-msgid "Validate field %s of model %s."
-msgstr "Проверьте поле %s модели %s."
+#~ msgid "%(name)s's birthday"
+#~ msgstr "%(name)s отмечает День Рождения"
 
-#: aleksis/core/data_checks.py:332
 #, python-format
-msgid "The field %s couldn't be validated successfully."
-msgstr "Поле %s проверить не удалось."
+#~ msgid "%(name)s was born on %(birthday)s"
+#~ msgstr "%(name)s родился(-лась) %(birthday)s"
 
-#: aleksis/core/models.py:181
-msgid "other"
-msgstr "другой"
+#~ msgid "Dashboard"
+#~ msgstr "Информпанель"
 
-#: aleksis/core/settings.py:543
-msgid "Ukrainian"
-msgstr "Украинский"
+#~ msgid "Admin"
+#~ msgstr "Админ"
 
-#: aleksis/core/templates/500.html:10
-msgid ""
-"An unexpected error has\n"
-"          occurred."
-msgstr ""
-"Возникла непредвиденная \n"
-"          ошибка."
+#~ msgid "Data management"
+#~ msgstr "Управление данными"
 
-#: aleksis/core/templates/core/group/full.html:93
-#, python-format
-msgid ""
-"\n"
-"              %(min)s years to %(max)s years\n"
-"            "
-msgstr ""
-"\n"
-"              %(min)s лет до %(max)s лет\n"
-"            "
+#~ msgid "Configuration"
+#~ msgstr "Конфигурация"
 
-#: aleksis/core/templates/core/ical/ical_list.html:4
-#: aleksis/core/templates/core/ical/ical_list.html:5
-msgid "iCal Feeds"
-msgstr "iCal-ленты"
+#~ msgid "Backend Admin"
+#~ msgstr "Администрирование бекенда"
 
-#: aleksis/core/views.py:775
-msgid "The additional field has been saved."
-msgstr "Дополнительное поле сохранено."
+#~ msgid "People"
+#~ msgstr "Люди"
 
-#: aleksis/core/views.py:1600
-msgid "iCal feed updated successfully"
-msgstr "Лента iCal успешно обновлена"
+#~ msgid "Groups and child groups"
+#~ msgstr "Группы и дочерние группы"
 
-#: aleksis/core/views.py:1610
-msgid "iCal feed deleted successfully"
-msgstr "Лента iCal успешно удалена"
+#~ msgid "Invite person"
+#~ msgstr "Пригласить знакомого"
+
+#~ msgid "Stop impersonation"
+#~ msgstr "Остановить прикрытие"
+
+#~ msgid "Account"
+#~ msgstr "Учётная запись"
+
+#~ msgid "2FA"
+#~ msgstr "2FA"
+
+#~ msgid "Third-party accounts"
+#~ msgstr "Учётные записи третих сторон"
+
+#~ msgid "Calendar Feeds"
+#~ msgstr "Ленты календарей"
+
+#~ msgid "Logout"
+#~ msgstr "Выйти"
+
+#~ msgid "UUID"
+#~ msgstr "UUID"
 
-#: aleksis/core/views.py:1618
-msgid "iCal feed created successfully"
-msgstr "Лента iCal успешно создана"
+#~ msgid "Selected ICal feed"
+#~ msgstr "Лента выбранного iCal"
+
+#~ msgid "Personal Calendar URL"
+#~ msgstr "URL-ссылка собственного календаря"
+
+#~ msgid "Personal Calendar URLs"
+#~ msgstr "URL-ссылка собственных календарей"
+
+#~ msgid "Available languages"
+#~ msgstr "Доступные языки"
+
+#~ msgid ""
+#~ "An unexpected error has\n"
+#~ "          occured."
+#~ msgstr ""
+#~ "Произошла непредвиденная \n"
+#~ "          ошибка."
+
+#~ msgid "About AlekSIS® — The Free School Information System"
+#~ msgstr "Об AlekSIS® — The Free School Information System"
+
+#~ msgid "Imprint"
+#~ msgstr "Отпечаток"
+
+#~ msgid "Privacy Policy"
+#~ msgstr "Политика приватности"
+
+#~ msgid "years to"
+#~ msgstr "–"
+
+#~ msgid "years "
+#~ msgstr "гг. "
+
+#~ msgid "Create iCal URL"
+#~ msgstr "Создать ссылку iCal"
+
+#, python-format
+#~ msgid "Edit iCal URL %(object)s"
+#~ msgstr "Редактировать ссылку iCal %(object)s"
+
+#~ msgid "ICal Feeds"
+#~ msgstr "iCal-ленты"
+
+#~ msgid "These are URLs for different Calendar Feeds in the iCal (.ics) format. You can create as many as you want and import them in your calendar software."
+#~ msgstr "Здесь находятся ссылки на разные ленты календарей в формате iCal (.ics). Вы можете создать их столько, сколько будет необходимо и импортировать их в ПО для работы с календарями."
+
+#~ msgid "Your iCal URLs"
+#~ msgstr "Ваши ссылки iCal"
+
+#~ msgid "Recent notifications"
+#~ msgstr "Свежие уведомления"
+
+#~ msgid "More information →"
+#~ msgstr "Больше информации →"
+
+#~ msgid "No notifications available yet."
+#~ msgstr "Уведомления пока ещё недоступны."
+
+#~ msgid "About AlekSIS®"
+#~ msgstr "Об AlekSIS®"
+
+#~ msgid "AlekSIS® – The Free School Information System"
+#~ msgstr "AlekSIS® – The Free School Information System"
+
+#~ msgid "About AlekSIS"
+#~ msgstr "Об AlekSIS"
+
+#~ msgid ""
+#~ "\n"
+#~ "              This platform is powered by AlekSIS®, a web-based school information system (SIS) which can be used\n"
+#~ "              to manage and/or publish organisational artifacts of educational institutions. AlekSIS is free software and\n"
+#~ "              can be used by anyone.\n"
+#~ "            "
+#~ msgstr ""
+#~ "\n"
+#~ "              Эта платформа использует AlekSIS®, веб-инструмент информационной системы для обучения (SIS) при помощи которой\n"
+#~ "              можно управлять и/или публиковать оргинформацию учебных заведений. AlekSIS - бесплатное ПО\n"
+#~ "              и его может использовать любой желающий.\n"
+#~ "            "
+
+#~ msgid ""
+#~ "\n"
+#~ "              AlekSIS® is a registered trademark of the AlekSIS open source project, represented by Teckids e.V.\n"
+#~ "            "
+#~ msgstr ""
+#~ "\n"
+#~ "              AlekSIS® – зарегистрированная торговая марка проекта с открытым исходным кодом AlekSIS, которая представлена Teckids e.V.\n"
+#~ "            "
+
+#~ msgid "Website of AlekSIS"
+#~ msgstr "Вебсайт AlekSIS"
+
+#~ msgid "Source code"
+#~ msgstr "Исходный код"
+
+#~ msgid "Licence information"
+#~ msgstr "Лицензионная информация"
+
+#~ msgid ""
+#~ "\n"
+#~ "              The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence\n"
+#~ "              information from third-party apps, if installed, refer to the respective components below. The\n"
+#~ "              licences are marked like this:\n"
+#~ "            "
+#~ msgstr ""
+#~ "\n"
+#~ "              Ядро и официальные дополнения AlekSIS лицензированы под лицензией EUPL, версии 1.2 или новее. Для получения информации\n"
+#~ "              о компонентах третих сторон, если таковы установлены, перейдите к соответствующим компонентам ниже.\n"
+#~ "              Эти лицензии обозначены такой отметкой:\n"
+#~ "            "
+
+#~ msgid "Free/Open Source Licence"
+#~ msgstr "Бесплатная лицензия или Open Source"
+
+#~ msgid "Other Licence"
+#~ msgstr "Другая лицензия"
+
+#~ msgid "Full licence text"
+#~ msgstr "Полный текст лицензии"
+
+#~ msgid "More information about the EUPL"
+#~ msgstr "Больше информации о EUPL"
+
+#, python-format
+#~ msgid ""
+#~ "\n"
+#~ "                    This app is licenced under %(licence)s.\n"
+#~ "                  "
+#~ msgstr ""
+#~ "\n"
+#~ "                    Это приложение под лицензией %(licence)s.\n"
+#~ "                  "
+
+#~ msgid ""
+#~ "\n"
+#~ "              Without activated JavaScript the progress status can't be updated.\n"
+#~ "            "
+#~ msgstr ""
+#~ "\n"
+#~ "              Без активного JavaScript статус выполнения обновляться не сможет.\n"
+#~ "            "
+
+#~ msgid "Language"
+#~ msgstr "Язык"
+
+#~ msgid "Select language"
+#~ msgstr "Выберите язык"
+
+#~ msgid ""
+#~ "\n"
+#~ "            Your administrator account is not linked to any person. Therefore,\n"
+#~ "            a dummy person has been linked to your account.\n"
+#~ "          "
+#~ msgstr ""
+#~ "\n"
+#~ "            Ваша административная учётная запись не соединена на с одним физлицом. Поэтому\n"
+#~ "            к Вашей учётной записи привязано фейковое физлицо.\n"
+#~ "          "
+
+#~ msgid ""
+#~ "\n"
+#~ "            Your user account is not linked to a person. This means you\n"
+#~ "            cannot access any school-related information. Please contact\n"
+#~ "            the managers of AlekSIS at your school.\n"
+#~ "          "
+#~ msgstr ""
+#~ "\n"
+#~ "            Ваша учётная запись не связана с физлицом. Это значит,\n"
+#~ "            что у Вас нет доступа на к какой учебной информации. Обратитесь,\n"
+#~ "            пожалуйста, к администраторам AlekSIS в Вашем учебном заведении.\n"
+#~ "          "
+
+#~ msgid "Impersonate"
+#~ msgstr "Маскировка"
+
+#~ msgid "Invite user"
+#~ msgstr "Пригласить пользователя"
+
+#~ msgid "Contact details"
+#~ msgstr "Контактные данные"
+
+#~ msgid "This person didn't upload a personal photo."
+#~ msgstr "Эта особа не загрузила личное фото."
+
+#~ msgid "Children"
+#~ msgstr "Дети"
+
+#~ msgid "Please return to your application and enter this code:"
+#~ msgstr "Вернитесь, пожалуйста, к своему приложению и впишите этот код:"
+
+#~ msgid "No internet connection."
+#~ msgstr "Отсутствует интернет-соединение."
+
+#~ msgid "The additional_field has been saved."
+#~ msgstr "Дополнительное поле сохранено."
+
+#~ msgid "The requested PDF file does not exist"
+#~ msgstr "Запрошенный файл PDF не существует"
+
+#~ msgid "The requested task does not exist or is not accessible"
+#~ msgstr "Запрошенное задание не существует или недоступно"
+
+#~ msgid "ICal feed updated successfully"
+#~ msgstr "Лента iCal успешно обновлена"
+
+#~ msgid "ICal feed created successfully"
+#~ msgstr "Лента iCal успешно создана"
+
+#~ msgid "iCal Feeds"
+#~ msgstr "iCal-ленты"
+
+#~ msgid "iCal feed updated successfully"
+#~ msgstr "Лента iCal успешно обновлена"
+
+#~ msgid "iCal feed deleted successfully"
+#~ msgstr "Лента iCal успешно удалена"
+
+#~ msgid "iCal feed created successfully"
+#~ msgstr "Лента iCal успешно создана"
diff --git a/aleksis/core/locale/ru/LC_MESSAGES/djangojs.po b/aleksis/core/locale/ru/LC_MESSAGES/djangojs.po
index 1fa3254633c1db138c12b13fcf7f674c2a4499b2..bbc79d5d9fe785b8f3fd5900dc65b2b02ec2eec5 100644
--- a/aleksis/core/locale/ru/LC_MESSAGES/djangojs.po
+++ b/aleksis/core/locale/ru/LC_MESSAGES/djangojs.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-25 12:09+0200\n"
+"POT-Creation-Date: 2023-01-22 20:49+0100\n"
 "PO-Revision-Date: 2022-06-03 01:59+0000\n"
 "Last-Translator: Serhii Horichenko <m@sgg.im>\n"
 "Language-Team: Russian <https://translate.edugit.org/projects/aleksis/aleksis-core-js/ru/>\n"
@@ -30,6 +30,5 @@ msgstr "Отменить"
 msgid "OK"
 msgstr "OK"
 
-#: aleksis/core/static/js/main.js:195
-msgid "This page may contain outdated information since there is no internet connection."
-msgstr "Из-за отсутствия интернета эта страница можеть отображать устаревшую информацию."
+#~ 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 aa34c1560b1444e80ac7c9fb86995b007142332e..c79394a38e698af3a7ccc7991756d9c7b2a82bd3 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: 2022-06-25 12:09+0200\n"
+"POT-Creation-Date: 2023-01-22 20:49+0100\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"
@@ -17,34 +17,33 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: aleksis/core/apps.py:166
+#: aleksis/core/apps.py:155
 msgid "OpenID Connect scope"
 msgstr ""
 
-#: aleksis/core/apps.py:167
+#: aleksis/core/apps.py:156
 msgid "Given name, family name, link to profile and picture if existing."
 msgstr ""
 
-#: aleksis/core/apps.py:168
+#: aleksis/core/apps.py:157
 msgid "Full home postal address"
 msgstr ""
 
-#: aleksis/core/apps.py:169
+#: aleksis/core/apps.py:158
 msgid "Email address"
 msgstr ""
 
-#: aleksis/core/apps.py:170
+#: aleksis/core/apps.py:159
 msgid "Home and mobile phone"
 msgstr ""
 
-#: aleksis/core/apps.py:171 aleksis/core/forms.py:220 aleksis/core/menus.py:171
+#: aleksis/core/apps.py:160 aleksis/core/forms.py:220
 #: aleksis/core/models.py:494 aleksis/core/templates/core/group/list.html:8
 #: aleksis/core/templates/core/group/list.html:9
-#: aleksis/core/templates/core/person/full.html:246
 msgid "Groups"
 msgstr ""
 
-#: aleksis/core/data_checks.py:59
+#: aleksis/core/data_checks.py:60
 msgid "Ignore problem"
 msgstr ""
 
@@ -53,49 +52,29 @@ msgstr ""
 msgid "Solve option '{solve_option_obj.verbose_name}' "
 msgstr ""
 
-#: aleksis/core/data_checks.py:294
+#: aleksis/core/data_checks.py:284
 msgid "Deactivate DashboardWidget"
 msgstr ""
 
-#: aleksis/core/data_checks.py:306
+#: aleksis/core/data_checks.py:296
 msgid "Ensure that there are no broken DashboardWidgets."
 msgstr ""
 
-#: aleksis/core/data_checks.py:307
+#: aleksis/core/data_checks.py:297
 msgid "The DashboardWidget was reported broken automatically."
 msgstr ""
 
-#: aleksis/core/data_checks.py:330
+#: aleksis/core/data_checks.py:320
 #, python-format
 msgid "Validate field %s of model %s."
 msgstr ""
 
-#: aleksis/core/data_checks.py:332
+#: aleksis/core/data_checks.py:322
 #, python-format
 msgid "The field %s couldn't be validated successfully."
 msgstr ""
 
-#: aleksis/core/feeds.py:52
-msgid "Birthday Calendar"
-msgstr ""
-
-#: aleksis/core/feeds.py:53
-msgid "A Calendar of Birthdays"
-msgstr ""
-
-#: aleksis/core/feeds.py:66
-#, python-format
-msgid "%(name)s's birthday"
-msgstr ""
-
-#: aleksis/core/feeds.py:71
-#, python-format
-msgid "%(name)s was born on %(birthday)s"
-msgstr ""
-
-#: aleksis/core/filters.py:42 aleksis/core/templates/core/base.html:139
-#: aleksis/core/templates/core/base.html:140
-#: aleksis/core/templates/core/group/list.html:20
+#: aleksis/core/filters.py:42 aleksis/core/templates/core/group/list.html:20
 #: aleksis/core/templates/core/person/list.html:24
 #: aleksis/core/templates/search/search.html:7
 #: aleksis/core/templates/search/search.html:22
@@ -167,8 +146,7 @@ msgid "Common data"
 msgstr ""
 
 #: aleksis/core/forms.py:155 aleksis/core/forms.py:207
-#: aleksis/core/menus.py:160 aleksis/core/models.py:164
-#: aleksis/core/templates/core/person/list.html:8
+#: aleksis/core/models.py:164 aleksis/core/templates/core/person/list.html:8
 #: aleksis/core/templates/core/person/list.html:9
 msgid "Persons"
 msgstr ""
@@ -257,7 +235,7 @@ msgid "You must select at least one group or person which should get the permiss
 msgstr ""
 
 #: aleksis/core/forms.py:499
-msgid "You must grant the permission to all objects and/or to some objects."
+msgid "You must grant the permission to all objects or to specific objects."
 msgstr ""
 
 #: aleksis/core/forms.py:586
@@ -276,15 +254,15 @@ msgstr ""
 msgid "Password (again)"
 msgstr ""
 
-#: aleksis/core/forms.py:728
+#: aleksis/core/forms.py:761
 msgid "The selected action does not exist."
 msgstr ""
 
-#: aleksis/core/forms.py:739
+#: aleksis/core/forms.py:772
 msgid "You do not have permission to run {} on all selected objects."
 msgstr ""
 
-#: aleksis/core/forms.py:795
+#: aleksis/core/forms.py:828
 msgid "No valid selection."
 msgstr ""
 
@@ -308,160 +286,6 @@ msgstr ""
 msgid "No backup result found!"
 msgstr ""
 
-#: aleksis/core/menus.py:7 aleksis/core/templates/two_factor/core/login.html:6
-#: aleksis/core/templates/two_factor/core/login.html:32
-#: aleksis/core/templates/two_factor/core/login.html:95
-msgid "Login"
-msgstr ""
-
-#: aleksis/core/menus.py:13 aleksis/core/templates/account/signup.html:22
-#: aleksis/core/templates/socialaccount/signup.html:23
-msgid "Sign up"
-msgstr ""
-
-#: aleksis/core/menus.py:22 aleksis/core/templates/invitations/enter.html:7
-msgid "Accept invitation"
-msgstr ""
-
-#: aleksis/core/menus.py:31
-msgid "Dashboard"
-msgstr ""
-
-#: aleksis/core/menus.py:39
-msgid "Admin"
-msgstr ""
-
-#: aleksis/core/menus.py:47 aleksis/core/models.py:872
-#: aleksis/core/templates/core/announcement/list.html:7
-#: aleksis/core/templates/core/announcement/list.html:8
-msgid "Announcements"
-msgstr ""
-
-#: aleksis/core/menus.py:58 aleksis/core/models.py:142
-#: aleksis/core/templates/core/school_term/list.html:8
-#: aleksis/core/templates/core/school_term/list.html:9
-msgid "School terms"
-msgstr ""
-
-#: aleksis/core/menus.py:69
-#: aleksis/core/templates/core/dashboard_widget/list.html:8
-#: aleksis/core/templates/core/dashboard_widget/list.html:9
-msgid "Dashboard widgets"
-msgstr ""
-
-#: aleksis/core/menus.py:80
-#: aleksis/core/templates/core/management/data_management.html:6
-#: aleksis/core/templates/core/management/data_management.html:7
-msgid "Data management"
-msgstr ""
-
-#: aleksis/core/menus.py:91
-#: aleksis/core/templates/core/pages/system_status.html:5
-#: aleksis/core/templates/core/pages/system_status.html:7
-msgid "System status"
-msgstr ""
-
-#: aleksis/core/menus.py:102
-msgid "Configuration"
-msgstr ""
-
-#: aleksis/core/menus.py:113 aleksis/core/templates/core/data_check/list.html:9
-#: aleksis/core/templates/core/data_check/list.html:10
-msgid "Data checks"
-msgstr ""
-
-#: aleksis/core/menus.py:119 aleksis/core/templates/core/perms/list.html:13
-#: aleksis/core/templates/core/perms/list.html:14
-msgid "Manage permissions"
-msgstr ""
-
-#: aleksis/core/menus.py:130
-msgid "Backend Admin"
-msgstr ""
-
-#: aleksis/core/menus.py:138
-#: aleksis/core/templates/oauth2_provider/application/list.html:5
-#: aleksis/core/templates/oauth2_provider/application/list.html:6
-msgid "OAuth2 Applications"
-msgstr ""
-
-#: aleksis/core/menus.py:151
-msgid "People"
-msgstr ""
-
-#: aleksis/core/menus.py:182 aleksis/core/models.py:1111
-#: aleksis/core/templates/core/group_type/list.html:8
-#: aleksis/core/templates/core/group_type/list.html:9
-msgid "Group types"
-msgstr ""
-
-#: aleksis/core/menus.py:193
-msgid "Groups and child groups"
-msgstr ""
-
-#: aleksis/core/menus.py:204 aleksis/core/models.py:542
-#: aleksis/core/templates/core/additional_field/list.html:8
-#: aleksis/core/templates/core/additional_field/list.html:9
-msgid "Additional fields"
-msgstr ""
-
-#: aleksis/core/menus.py:215
-msgid "Invite person"
-msgstr ""
-
-#: aleksis/core/menus.py:228
-#: aleksis/core/templates/core/group/child_groups.html:7
-#: aleksis/core/templates/core/group/child_groups.html:9
-msgid "Assign child groups to groups"
-msgstr ""
-
-#: aleksis/core/menus.py:240
-msgid "Stop impersonation"
-msgstr ""
-
-#: aleksis/core/menus.py:249
-msgid "Account"
-msgstr ""
-
-#: aleksis/core/menus.py:258
-#: aleksis/core/templates/dynamic_preferences/form.html:5
-msgid "Preferences"
-msgstr ""
-
-#: aleksis/core/menus.py:267
-msgid "2FA"
-msgstr ""
-
-#: aleksis/core/menus.py:275
-#: aleksis/core/templates/account/password_change.html:5
-#: aleksis/core/templates/account/password_change.html:6
-#: aleksis/core/templates/account/password_change.html:19
-#: aleksis/core/templates/account/password_reset_from_key.html:5
-#: aleksis/core/templates/account/password_reset_from_key.html:42
-#: aleksis/core/templates/account/password_reset_from_key.html:46
-#: aleksis/core/templates/account/password_reset_from_key_done.html:5
-#: aleksis/core/templates/account/password_reset_from_key_done.html:6
-msgid "Change password"
-msgstr ""
-
-#: aleksis/core/menus.py:287
-msgid "Third-party accounts"
-msgstr ""
-
-#: aleksis/core/menus.py:296
-#: 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:305
-msgid "Calendar Feeds"
-msgstr ""
-
-#: aleksis/core/menus.py:318
-msgid "Logout"
-msgstr ""
-
 #: aleksis/core/mixins.py:511
 msgid "Linked school term"
 msgstr ""
@@ -507,7 +331,6 @@ msgid "URL / Link"
 msgstr ""
 
 #: aleksis/core/models.py:105 aleksis/core/models.py:1077
-#: aleksis/core/models.py:1384
 msgid "Name"
 msgstr ""
 
@@ -527,8 +350,13 @@ msgstr ""
 msgid "There is already a school term for this time or a part of this time."
 msgstr ""
 
-#: aleksis/core/models.py:163 aleksis/core/models.py:1024
-#: aleksis/core/models.py:1381
+#: aleksis/core/models.py:142
+#: aleksis/core/templates/core/school_term/list.html:8
+#: aleksis/core/templates/core/school_term/list.html:9
+msgid "School terms"
+msgstr ""
+
+#: aleksis/core/models.py:163 aleksis/core/models.py:1026
 msgid "Person"
 msgstr ""
 
@@ -568,7 +396,7 @@ msgstr ""
 msgid "other"
 msgstr ""
 
-#: aleksis/core/models.py:189 aleksis/core/models.py:1283
+#: aleksis/core/models.py:189 aleksis/core/models.py:1345
 msgid "Linked user"
 msgstr ""
 
@@ -577,6 +405,7 @@ msgid "Additional name(s)"
 msgstr ""
 
 #: aleksis/core/models.py:199 aleksis/core/models.py:511
+#: aleksis/core/models.py:1431
 msgid "Short name"
 msgstr ""
 
@@ -596,11 +425,11 @@ msgstr ""
 msgid "Place"
 msgstr ""
 
-#: aleksis/core/models.py:207 aleksis/core/templates/core/person/full.html:160
+#: aleksis/core/models.py:207
 msgid "Home phone"
 msgstr ""
 
-#: aleksis/core/models.py:208 aleksis/core/templates/core/person/full.html:170
+#: aleksis/core/models.py:208
 msgid "Mobile phone"
 msgstr ""
 
@@ -628,7 +457,7 @@ msgstr ""
 msgid "This is a picture or an avatar for public display."
 msgstr ""
 
-#: aleksis/core/models.py:234 aleksis/core/templates/core/person/full.html:235
+#: aleksis/core/models.py:234
 msgid "Guardians / Parents"
 msgstr ""
 
@@ -637,7 +466,7 @@ msgid "Primary group"
 msgstr ""
 
 #: aleksis/core/models.py:244 aleksis/core/models.py:724
-#: aleksis/core/models.py:748 aleksis/core/models.py:839
+#: aleksis/core/models.py:748 aleksis/core/models.py:843
 #: aleksis/core/models.py:1104
 msgid "Description"
 msgstr ""
@@ -674,7 +503,7 @@ msgstr ""
 msgid "Can view statistics about group."
 msgstr ""
 
-#: aleksis/core/models.py:509
+#: aleksis/core/models.py:509 aleksis/core/models.py:1432
 msgid "Long name"
 msgstr ""
 
@@ -694,8 +523,14 @@ msgstr ""
 msgid "Type of group"
 msgstr ""
 
+#: aleksis/core/models.py:542
+#: aleksis/core/templates/core/additional_field/list.html:8
+#: aleksis/core/templates/core/additional_field/list.html:9
+msgid "Additional fields"
+msgstr ""
+
 #: aleksis/core/models.py:723 aleksis/core/models.py:747
-#: aleksis/core/models.py:838
+#: aleksis/core/models.py:842 aleksis/core/models.py:1262
 #: aleksis/core/templates/core/announcement/list.html:18
 msgid "Title"
 msgstr ""
@@ -724,166 +559,175 @@ msgstr ""
 msgid "Link"
 msgstr ""
 
-#: aleksis/core/models.py:751
+#: aleksis/core/models.py:752 aleksis/core/models.py:1079
+#: aleksis/core/models.py:1392
+#: aleksis/core/templates/oauth2_provider/application/detail.html:26
+msgid "Icon"
+msgstr ""
+
+#: aleksis/core/models.py:755
 msgid "Send notification at"
 msgstr ""
 
-#: aleksis/core/models.py:753
+#: aleksis/core/models.py:757
 msgid "Read"
 msgstr ""
 
-#: aleksis/core/models.py:754
+#: aleksis/core/models.py:758
 msgid "Sent"
 msgstr ""
 
-#: aleksis/core/models.py:771
+#: aleksis/core/models.py:775
 msgid "Notification"
 msgstr ""
 
-#: aleksis/core/models.py:772 aleksis/core/preferences.py:29
-#: aleksis/core/templates/core/base.html:81
-#: aleksis/core/templates/core/notifications.html:4
-#: aleksis/core/templates/core/notifications.html:5
+#: aleksis/core/models.py:776 aleksis/core/preferences.py:29
 msgid "Notifications"
 msgstr ""
 
-#: aleksis/core/models.py:840
+#: aleksis/core/models.py:844
 msgid "Link to detailed view"
 msgstr ""
 
-#: aleksis/core/models.py:843
+#: aleksis/core/models.py:847
 msgid "Date and time from when to show"
 msgstr ""
 
-#: aleksis/core/models.py:846
+#: aleksis/core/models.py:850
 msgid "Date and time until when to show"
 msgstr ""
 
-#: aleksis/core/models.py:871
+#: aleksis/core/models.py:875
 msgid "Announcement"
 msgstr ""
 
-#: aleksis/core/models.py:909
+#: aleksis/core/models.py:876
+#: aleksis/core/templates/core/announcement/list.html:7
+#: aleksis/core/templates/core/announcement/list.html:8
+msgid "Announcements"
+msgstr ""
+
+#: aleksis/core/models.py:913
 msgid "Announcement recipient"
 msgstr ""
 
-#: aleksis/core/models.py:910
+#: aleksis/core/models.py:914
 msgid "Announcement recipients"
 msgstr ""
 
-#: aleksis/core/models.py:932
+#: aleksis/core/models.py:934
 msgid "Widget Title"
 msgstr ""
 
-#: aleksis/core/models.py:933
+#: aleksis/core/models.py:935
 msgid "Activate Widget"
 msgstr ""
 
-#: aleksis/core/models.py:934
+#: aleksis/core/models.py:936
 msgid "Widget is broken"
 msgstr ""
 
-#: aleksis/core/models.py:937
+#: aleksis/core/models.py:939
 msgid "Size on mobile devices"
 msgstr ""
 
-#: aleksis/core/models.py:938
+#: aleksis/core/models.py:940
 msgid "<= 600 px, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:943
+#: aleksis/core/models.py:945
 msgid "Size on tablet devices"
 msgstr ""
 
-#: aleksis/core/models.py:944
+#: aleksis/core/models.py:946
 msgid "> 600 px, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:949
+#: aleksis/core/models.py:951
 msgid "Size on desktop devices"
 msgstr ""
 
-#: aleksis/core/models.py:950
+#: aleksis/core/models.py:952
 msgid "> 992 px, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:955
+#: aleksis/core/models.py:957
 msgid "Size on large desktop devices"
 msgstr ""
 
-#: aleksis/core/models.py:956
+#: aleksis/core/models.py:958
 msgid "> 1200 px>, 12 columns"
 msgstr ""
 
-#: aleksis/core/models.py:987
+#: aleksis/core/models.py:989
 msgid "Can edit default dashboard"
 msgstr ""
 
-#: aleksis/core/models.py:988
+#: aleksis/core/models.py:990
 msgid "Dashboard Widget"
 msgstr ""
 
-#: aleksis/core/models.py:989
+#: aleksis/core/models.py:991
 msgid "Dashboard Widgets"
 msgstr ""
 
-#: aleksis/core/models.py:995
+#: aleksis/core/models.py:997
 msgid "URL"
 msgstr ""
 
-#: aleksis/core/models.py:996
+#: aleksis/core/models.py:998
 msgid "Icon URL"
 msgstr ""
 
-#: aleksis/core/models.py:1002
+#: aleksis/core/models.py:1004
 msgid "External link widget"
 msgstr ""
 
-#: aleksis/core/models.py:1003
+#: aleksis/core/models.py:1005
 msgid "External link widgets"
 msgstr ""
 
-#: aleksis/core/models.py:1009
+#: aleksis/core/models.py:1011
 msgid "Content"
 msgstr ""
 
-#: aleksis/core/models.py:1015
+#: aleksis/core/models.py:1017
 msgid "Static content widget"
 msgstr ""
 
-#: aleksis/core/models.py:1016
+#: aleksis/core/models.py:1018
 msgid "Static content widgets"
 msgstr ""
 
-#: aleksis/core/models.py:1021
+#: aleksis/core/models.py:1023
 msgid "Dashboard widget"
 msgstr ""
 
-#: aleksis/core/models.py:1026
+#: aleksis/core/models.py:1028
 msgid "Order"
 msgstr ""
 
-#: aleksis/core/models.py:1027
+#: aleksis/core/models.py:1029
 msgid "Part of the default dashboard"
 msgstr ""
 
-#: aleksis/core/models.py:1042
+#: aleksis/core/models.py:1044
 msgid "Dashboard widget order"
 msgstr ""
 
-#: aleksis/core/models.py:1043
+#: aleksis/core/models.py:1045
 msgid "Dashboard widget orders"
 msgstr ""
 
-#: aleksis/core/models.py:1049
+#: aleksis/core/models.py:1051
 msgid "Menu ID"
 msgstr ""
 
-#: aleksis/core/models.py:1062
+#: aleksis/core/models.py:1064
 msgid "Custom menu"
 msgstr ""
 
-#: aleksis/core/models.py:1063
+#: aleksis/core/models.py:1065
 msgid "Custom menus"
 msgstr ""
 
@@ -891,11 +735,6 @@ msgstr ""
 msgid "Menu"
 msgstr ""
 
-#: aleksis/core/models.py:1079 aleksis/core/models.py:1330
-#: aleksis/core/templates/oauth2_provider/application/detail.html:26
-msgid "Icon"
-msgstr ""
-
 #: aleksis/core/models.py:1085
 msgid "Custom menu item"
 msgstr ""
@@ -912,6 +751,12 @@ msgstr ""
 msgid "Group type"
 msgstr ""
 
+#: aleksis/core/models.py:1111
+#: aleksis/core/templates/core/group_type/list.html:8
+#: aleksis/core/templates/core/group_type/list.html:9
+msgid "Group types"
+msgstr ""
+
 #: aleksis/core/models.py:1124
 msgid "Can view system status"
 msgstr ""
@@ -988,64 +833,116 @@ msgstr ""
 msgid "File expires at"
 msgstr ""
 
-#: aleksis/core/models.py:1239
+#: aleksis/core/models.py:1240
 msgid "Generated HTML file"
 msgstr ""
 
-#: aleksis/core/models.py:1241
+#: aleksis/core/models.py:1243
 msgid "Generated PDF file"
 msgstr ""
 
-#: aleksis/core/models.py:1248
+#: aleksis/core/models.py:1250
 msgid "PDF file"
 msgstr ""
 
-#: aleksis/core/models.py:1249
+#: aleksis/core/models.py:1251
 msgid "PDF files"
 msgstr ""
 
-#: aleksis/core/models.py:1254
+#: aleksis/core/models.py:1256
 msgid "Task result"
 msgstr ""
 
-#: aleksis/core/models.py:1257
+#: aleksis/core/models.py:1259
 msgid "Task user"
 msgstr ""
 
+#: aleksis/core/models.py:1263
+msgid "Back URL"
+msgstr ""
+
+#: aleksis/core/models.py:1264
+msgid "Progress title"
+msgstr ""
+
+#: aleksis/core/models.py:1265
+msgid "Error message"
+msgstr ""
+
+#: aleksis/core/models.py:1266
+msgid "Success message"
+msgstr ""
+
+#: aleksis/core/models.py:1267
+msgid "Redirect on success URL"
+msgstr ""
+
 #: aleksis/core/models.py:1269
+msgid "Additional button title"
+msgstr ""
+
+#: aleksis/core/models.py:1271
+msgid "Additional button URL"
+msgstr ""
+
+#: aleksis/core/models.py:1273
+msgid "Additional button icon"
+msgstr ""
+
+#: aleksis/core/models.py:1275
+msgid "Result fetched"
+msgstr ""
+
+#: aleksis/core/models.py:1300
+msgid "Background task completed successfully"
+msgstr ""
+
+#: aleksis/core/models.py:1301
+msgid "The background task '{}' has been completed successfully."
+msgstr ""
+
+#: aleksis/core/models.py:1307
+msgid "Background task failed"
+msgstr ""
+
+#: aleksis/core/models.py:1308
+msgid "The background task '{}' has failed."
+msgstr ""
+
+#: aleksis/core/models.py:1317
+msgid "Background task"
+msgstr ""
+
+#: aleksis/core/models.py:1331
 msgid "Task user assignment"
 msgstr ""
 
-#: aleksis/core/models.py:1270
+#: aleksis/core/models.py:1332
 msgid "Task user assignments"
 msgstr ""
 
-#: aleksis/core/models.py:1286
+#: aleksis/core/models.py:1348
 msgid "Additional attributes"
 msgstr ""
 
-#: aleksis/core/models.py:1324
+#: aleksis/core/models.py:1386
 msgid "Allowed scopes that clients can request"
 msgstr ""
 
-#: aleksis/core/models.py:1334
+#: aleksis/core/models.py:1396
 msgid "This image will be shown as icon in the authorization flow. It should be squared."
 msgstr ""
 
-#: aleksis/core/models.py:1383
-msgid "UUID"
+#: aleksis/core/models.py:1441
+msgid "Can view room timetable"
 msgstr ""
 
-#: aleksis/core/models.py:1387
-msgid "Selected ICal feed"
+#: aleksis/core/models.py:1443
+msgid "Room"
 msgstr ""
 
-#: aleksis/core/models.py:1396
-msgid "Personal Calendar URL"
-msgstr ""
-
-#: aleksis/core/models.py:1397
-msgid "Personal Calendar URLs"
+#: aleksis/core/models.py:1444
+msgid "Rooms"
 msgstr ""
 
 #: aleksis/core/preferences.py:25
@@ -1136,135 +1033,141 @@ msgstr ""
 msgid "Channels to use for notifications"
 msgstr ""
 
-#: aleksis/core/preferences.py:209
+#: aleksis/core/preferences.py:208
+msgid "Select Design"
+msgstr ""
+
+#: aleksis/core/preferences.py:211
+msgid "Light mode"
+msgstr ""
+
+#: aleksis/core/preferences.py:224
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr ""
 
-#: aleksis/core/preferences.py:220
+#: aleksis/core/preferences.py:235
 msgid "Field on person to match primary group against"
 msgstr ""
 
-#: aleksis/core/preferences.py:232
+#: aleksis/core/preferences.py:247
 msgid "Automatically create new persons for new users"
 msgstr ""
 
-#: aleksis/core/preferences.py:241
+#: aleksis/core/preferences.py:256
 msgid "Automatically link existing persons to new users by their e-mail address"
 msgstr ""
 
-#: aleksis/core/preferences.py:252
+#: aleksis/core/preferences.py:267
 msgid "Display name of the school"
 msgstr ""
 
-#: aleksis/core/preferences.py:263
+#: aleksis/core/preferences.py:278
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr ""
 
-#: aleksis/core/preferences.py:271
+#: aleksis/core/preferences.py:286
 msgid "Allow users to change their passwords"
 msgstr ""
 
-#: aleksis/core/preferences.py:279
+#: aleksis/core/preferences.py:294
 msgid "Allow users to reset their passwords"
 msgstr ""
 
-#: aleksis/core/preferences.py:287
+#: aleksis/core/preferences.py:302
 msgid "Enable signup"
 msgstr ""
 
-#: aleksis/core/preferences.py:295
+#: aleksis/core/preferences.py:310
 msgid "Regular expression for allowed usernames"
 msgstr ""
 
-#: aleksis/core/preferences.py:303
+#: aleksis/core/preferences.py:318
 msgid "Enable invitations"
 msgstr ""
 
-#: aleksis/core/preferences.py:311
+#: aleksis/core/preferences.py:326
 msgid "Length of invite code. (Default 3: abcde-acbde-abcde)"
 msgstr ""
 
-#: aleksis/core/preferences.py:319
+#: aleksis/core/preferences.py:334
 msgid "Size of packets. (Default 5: abcde)"
 msgstr ""
 
-#: aleksis/core/preferences.py:330
+#: aleksis/core/preferences.py:345
 msgid "Allowed Grant Flows for OAuth applications"
 msgstr ""
 
-#: aleksis/core/preferences.py:343
+#: aleksis/core/preferences.py:358
 msgid "Send emails if data checks detect problems"
 msgstr ""
 
-#: aleksis/core/preferences.py:354
+#: aleksis/core/preferences.py:369
 msgid "Email recipients for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:365
+#: aleksis/core/preferences.py:380
 msgid "Email recipient groups for data checks problem emails"
 msgstr ""
 
-#: aleksis/core/preferences.py:374
+#: aleksis/core/preferences.py:389
 msgid "Show dashboard to users without login"
 msgstr ""
 
-#: aleksis/core/preferences.py:383
+#: aleksis/core/preferences.py:398
 msgid "Allow users to edit their dashboard"
 msgstr ""
 
-#: aleksis/core/preferences.py:394
+#: aleksis/core/preferences.py:409
 msgid "Fields on person model which are editable by themselves."
 msgstr ""
 
-#: aleksis/core/preferences.py:409
+#: aleksis/core/preferences.py:424
 msgid "Editable fields on person model which should trigger a notification on change"
 msgstr ""
 
-#: aleksis/core/preferences.py:423
+#: aleksis/core/preferences.py:438
 msgid "Contact for notification if a person changes their data"
 msgstr ""
 
-#: aleksis/core/preferences.py:434
+#: aleksis/core/preferences.py:449
 msgid "Prefer personal photos over avatars"
 msgstr ""
 
-#: aleksis/core/preferences.py:444
+#: aleksis/core/preferences.py:459
 msgid "PDF file expiration duration"
 msgstr ""
 
-#: aleksis/core/preferences.py:445
+#: aleksis/core/preferences.py:460
 msgid "in minutes"
 msgstr ""
 
-#: aleksis/core/preferences.py:455
+#: aleksis/core/preferences.py:470
 msgid "Automatically update the dashboard and its widgets"
 msgstr ""
 
-#: aleksis/core/preferences.py:465
+#: aleksis/core/preferences.py:480
 msgid "Automatically update the dashboard and its widgets sitewide"
 msgstr ""
 
-#: aleksis/core/preferences.py:475
+#: aleksis/core/preferences.py:490
 msgid "Country for phone number parsing"
 msgstr ""
 
-#: aleksis/core/settings.py:541
+#: aleksis/core/settings.py:539
 msgid "English"
 msgstr ""
 
-#: aleksis/core/settings.py:542
+#: aleksis/core/settings.py:540
 msgid "German"
 msgstr ""
 
-#: aleksis/core/settings.py:543
+#: aleksis/core/settings.py:541
 msgid "Ukrainian"
 msgstr ""
 
 #: aleksis/core/tables.py:25
 #: aleksis/core/templates/core/announcement/list.html:36
 #: aleksis/core/templates/core/group/full.html:26
-#: aleksis/core/templates/core/person/full.html:26
-#: aleksis/core/templates/core/person/full.html:86
 #: aleksis/core/templates/oauth2_provider/application/detail.html:17
 msgid "Edit"
 msgstr ""
@@ -1281,15 +1184,12 @@ msgstr ""
 #: aleksis/core/templates/core/announcement/list.html:42
 #: aleksis/core/templates/core/group/full.html:33
 #: aleksis/core/templates/core/pages/delete.html:22
-#: aleksis/core/templates/core/person/full.html:33
-#: aleksis/core/templates/core/person/full.html:93
 #: aleksis/core/templates/oauth2_provider/application/detail.html:21
 msgid "Delete"
 msgstr ""
 
 #: aleksis/core/templates/403.html:14 aleksis/core/templates/500.html:10
 #: aleksis/core/templates/oauth2_provider/authorize.html:54
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:24
 msgid "Error"
 msgstr ""
 
@@ -1388,6 +1288,17 @@ msgstr ""
 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 ""
 
+#: aleksis/core/templates/account/password_change.html:5
+#: aleksis/core/templates/account/password_change.html:6
+#: aleksis/core/templates/account/password_change.html:19
+#: aleksis/core/templates/account/password_reset_from_key.html:5
+#: aleksis/core/templates/account/password_reset_from_key.html:42
+#: aleksis/core/templates/account/password_reset_from_key.html:46
+#: aleksis/core/templates/account/password_reset_from_key_done.html:5
+#: aleksis/core/templates/account/password_reset_from_key_done.html:6
+msgid "Change password"
+msgstr ""
+
 #: aleksis/core/templates/account/password_change.html:12
 msgid "Forgot your current password? Click here to reset it:"
 msgstr ""
@@ -1501,6 +1412,11 @@ msgstr ""
 msgid "Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>."
 msgstr ""
 
+#: aleksis/core/templates/account/signup.html:22
+#: aleksis/core/templates/socialaccount/signup.html:23
+msgid "Sign up"
+msgstr ""
+
 #: aleksis/core/templates/account/signup_closed.html:5
 #: aleksis/core/templates/account/signup_closed.html:6
 msgid "Signup closed"
@@ -1591,18 +1507,6 @@ msgstr ""
 msgid "There are no announcements."
 msgstr ""
 
-#: aleksis/core/templates/core/base.html:213
-msgid "About AlekSIS® — The Free School Information System"
-msgstr ""
-
-#: aleksis/core/templates/core/base.html:221
-msgid "Imprint"
-msgstr ""
-
-#: aleksis/core/templates/core/base.html:229
-msgid "Privacy Policy"
-msgstr ""
-
 #: aleksis/core/templates/core/base_print.html:74
 msgid "Powered by AlekSIS®"
 msgstr ""
@@ -1632,6 +1536,11 @@ msgstr ""
 msgid "Edit %(widget)s"
 msgstr ""
 
+#: aleksis/core/templates/core/dashboard_widget/list.html:8
+#: aleksis/core/templates/core/dashboard_widget/list.html:9
+msgid "Dashboard widgets"
+msgstr ""
+
 #: aleksis/core/templates/core/dashboard_widget/list.html:15
 msgid "Create dashboard widget"
 msgstr ""
@@ -1647,6 +1556,11 @@ msgstr ""
 msgid "Edit default dashboard"
 msgstr ""
 
+#: aleksis/core/templates/core/data_check/list.html:9
+#: aleksis/core/templates/core/data_check/list.html:10
+msgid "Data checks"
+msgstr ""
+
 #: aleksis/core/templates/core/data_check/list.html:15
 msgid "Check data again"
 msgstr ""
@@ -1740,6 +1654,11 @@ msgstr ""
 msgid "Default dashboard"
 msgstr ""
 
+#: aleksis/core/templates/core/group/child_groups.html:7
+#: aleksis/core/templates/core/group/child_groups.html:9
+msgid "Assign child groups to groups"
+msgstr ""
+
 #: aleksis/core/templates/core/group/child_groups.html:18
 msgid ""
 "\n"
@@ -1819,8 +1738,6 @@ msgid "Edit group"
 msgstr ""
 
 #: aleksis/core/templates/core/group/full.html:40
-#: aleksis/core/templates/core/person/full.html:40
-#: aleksis/core/templates/core/person/full.html:100
 msgid "Change preferences"
 msgstr ""
 
@@ -1874,45 +1791,11 @@ msgstr ""
 msgid "Create group type"
 msgstr ""
 
-#: aleksis/core/templates/core/ical/ical_create.html:4
-#: aleksis/core/templates/core/ical/ical_create.html:5
-#: aleksis/core/templates/core/ical/ical_list.html:12
-msgid "Create iCal URL"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_create.html:16
-#: aleksis/core/templates/core/ical/ical_edit.html:16
-#: aleksis/core/templates/oauth2_provider/application/create.html:14
-#: aleksis/core/templates/oauth2_provider/application/edit.html:14
-#: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:24
-#: aleksis/core/templates/two_factor/_wizard_actions.html:6
-msgid "Cancel"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_edit.html:4
-#: aleksis/core/templates/core/ical/ical_edit.html:5
-#, python-format
-msgid "Edit iCal URL %(object)s"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_list.html:4
-#: aleksis/core/templates/core/ical/ical_list.html:5
-msgid "iCal Feeds"
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_list.html:8
-msgid "These are URLs for different Calendar Feeds in the iCal (.ics) format. You can create as many as you want and import them in your calendar software."
-msgstr ""
-
-#: aleksis/core/templates/core/ical/ical_list.html:14
-msgid "Your iCal URLs"
-msgstr ""
-
 #: aleksis/core/templates/core/index.html:4
 msgid "Home"
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:49
+#: aleksis/core/templates/core/index.html:34
 msgid ""
 "\n"
 "        You didn't customise your dashboard so that you see the system default. Please click on \"Edit dashboard\" to\n"
@@ -1920,101 +1803,14 @@ msgid ""
 "      "
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:59
+#: aleksis/core/templates/core/index.html:44
 msgid "Last activities"
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:77
+#: aleksis/core/templates/core/index.html:62
 msgid "No activities available yet."
 msgstr ""
 
-#: aleksis/core/templates/core/index.html:82
-msgid "Recent notifications"
-msgstr ""
-
-#: aleksis/core/templates/core/index.html:98
-#: aleksis/core/templates/core/notifications.html:23
-msgid "More information →"
-msgstr ""
-
-#: aleksis/core/templates/core/index.html:105
-#: aleksis/core/templates/core/notifications.html:30
-msgid "No notifications available yet."
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:6
-msgid "About AlekSIS®"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:7
-msgid "AlekSIS® – The Free School Information System"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:15
-msgid "About AlekSIS"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:17
-msgid ""
-"\n"
-"              This platform is powered by AlekSIS®, a web-based school information system (SIS) which can be used\n"
-"              to manage and/or publish organisational artifacts of educational institutions. AlekSIS is free software and\n"
-"              can be used by anyone.\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:24
-msgid ""
-"\n"
-"              AlekSIS® is a registered trademark of the AlekSIS open source project, represented by Teckids e.V.\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:30
-msgid "Website of AlekSIS"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:31
-msgid "Source code"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:40
-msgid "Licence information"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:42
-msgid ""
-"\n"
-"              The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence\n"
-"              information from third-party apps, if installed, refer to the respective components below. The\n"
-"              licences are marked like this:\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:50
-msgid "Free/Open Source Licence"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:51
-msgid "Other Licence"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:55
-msgid "Full licence text"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:56
-msgid "More information about the EUPL"
-msgstr ""
-
-#: aleksis/core/templates/core/pages/about.html:95
-#, python-format
-msgid ""
-"\n"
-"                    This app is licenced under %(licence)s.\n"
-"                  "
-msgstr ""
-
 #: aleksis/core/templates/core/pages/delete.html:6
 #, python-format
 msgid "Delete %(object_name)s"
@@ -2028,16 +1824,9 @@ msgid ""
 "    "
 msgstr ""
 
-#: aleksis/core/templates/core/pages/progress.html:27
-msgid ""
-"\n"
-"              Without activated JavaScript the progress status can't be updated.\n"
-"            "
-msgstr ""
-
-#: aleksis/core/templates/core/pages/progress.html:47
-#: aleksis/core/templates/two_factor/core/otp_required.html:19
-msgid "Go back"
+#: aleksis/core/templates/core/pages/system_status.html:5
+#: aleksis/core/templates/core/pages/system_status.html:7
+msgid "System status"
 msgstr ""
 
 #: aleksis/core/templates/core/pages/system_status.html:12
@@ -2163,13 +1952,11 @@ msgstr ""
 
 #: aleksis/core/templates/core/partials/avatar_content.html:14
 #: aleksis/core/templates/core/partials/avatar_content.html:15
-#: aleksis/core/templates/core/person/full.html:213
-#: aleksis/core/templates/core/person/full.html:214
 msgid "Avatar"
 msgstr ""
 
+#: aleksis/core/templates/core/partials/avatar_content.html:18
 #: aleksis/core/templates/core/partials/avatar_content.html:19
-#: aleksis/core/templates/core/partials/avatar_content.html:20
 msgid "Identicon"
 msgstr ""
 
@@ -2181,29 +1968,11 @@ msgstr ""
 msgid "Unknown"
 msgstr ""
 
-#: aleksis/core/templates/core/partials/language_form.html:17
-msgid "Language"
-msgstr ""
-
-#: aleksis/core/templates/core/partials/language_form.html:29
-msgid "Select language"
-msgstr ""
-
-#: aleksis/core/templates/core/partials/no_person.html:12
-msgid ""
-"\n"
-"            Your administrator account is not linked to any person. Therefore,\n"
-"            a dummy person has been linked to your account.\n"
-"          "
-msgstr ""
-
-#: aleksis/core/templates/core/partials/no_person.html:19
+#: aleksis/core/templates/core/partials/splash_screen.html:11
 msgid ""
 "\n"
-"            Your user account is not linked to a person. This means you\n"
-"            cannot access any school-related information. Please contact\n"
-"            the managers of AlekSIS at your school.\n"
-"          "
+"      This webbrowser doesn't support JavaScript, or its execution is blocked. Please use another browser to continue.\n"
+"    "
 msgstr ""
 
 #: aleksis/core/templates/core/perms/assign.html:12
@@ -2219,6 +1988,11 @@ msgstr ""
 msgid "Assign"
 msgstr ""
 
+#: aleksis/core/templates/core/perms/list.html:13
+#: aleksis/core/templates/core/perms/list.html:14
+msgid "Manage permissions"
+msgstr ""
+
 #: aleksis/core/templates/core/perms/list.html:21
 msgid "Assign a new permission"
 msgstr ""
@@ -2262,28 +2036,6 @@ msgstr ""
 msgid "Edit person"
 msgstr ""
 
-#: aleksis/core/templates/core/person/full.html:47
-#: aleksis/core/templates/core/person/full.html:107
-msgid "Impersonate"
-msgstr ""
-
-#: aleksis/core/templates/core/person/full.html:54
-#: aleksis/core/templates/core/person/full.html:114
-msgid "Invite user"
-msgstr ""
-
-#: aleksis/core/templates/core/person/full.html:121
-msgid "Contact details"
-msgstr ""
-
-#: aleksis/core/templates/core/person/full.html:220
-msgid "This person didn't upload a personal photo."
-msgstr ""
-
-#: aleksis/core/templates/core/person/full.html:228
-msgid "Children"
-msgstr ""
-
 #: aleksis/core/templates/core/person/list.html:21
 msgid "Filter persons"
 msgstr ""
@@ -2303,6 +2055,10 @@ msgstr ""
 msgid "Edit school term"
 msgstr ""
 
+#: aleksis/core/templates/dynamic_preferences/form.html:5
+msgid "Preferences"
+msgstr ""
+
 #: aleksis/core/templates/dynamic_preferences/form.html:9
 msgid "Site preferences"
 msgstr ""
@@ -2336,6 +2092,10 @@ msgstr ""
 msgid "site preferences page"
 msgstr ""
 
+#: aleksis/core/templates/invitations/enter.html:7
+msgid "Accept invitation"
+msgstr ""
+
 #: aleksis/core/templates/invitations/enter.html:21
 msgid "Accept your invitation"
 msgstr ""
@@ -2384,6 +2144,13 @@ msgstr ""
 msgid "Register OAuth2 Application"
 msgstr ""
 
+#: aleksis/core/templates/oauth2_provider/application/create.html:14
+#: aleksis/core/templates/oauth2_provider/application/edit.html:14
+#: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:24
+#: aleksis/core/templates/two_factor/_wizard_actions.html:6
+msgid "Cancel"
+msgstr ""
+
 #: aleksis/core/templates/oauth2_provider/application/detail.html:5
 msgid "OAuth2 Application"
 msgstr ""
@@ -2417,6 +2184,11 @@ msgstr ""
 msgid "Edit OAuth2 Application"
 msgstr ""
 
+#: aleksis/core/templates/oauth2_provider/application/list.html:5
+#: aleksis/core/templates/oauth2_provider/application/list.html:6
+msgid "OAuth2 Applications"
+msgstr ""
+
 #: aleksis/core/templates/oauth2_provider/application/list.html:11
 msgid "Register new application"
 msgstr ""
@@ -2448,14 +2220,6 @@ msgstr ""
 msgid "Disallow"
 msgstr ""
 
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:12
-msgid "Success!"
-msgstr ""
-
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:14
-msgid "Please return to your application and enter this code:"
-msgstr ""
-
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:5
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:6
 #: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
@@ -2470,6 +2234,11 @@ msgstr ""
 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 applications."
 msgstr ""
@@ -2479,13 +2248,13 @@ msgid "Network error"
 msgstr ""
 
 #: aleksis/core/templates/offline.html:10
-msgid "No internet connection."
+msgid "Page not available offline."
 msgstr ""
 
 #: aleksis/core/templates/offline.html:14
 msgid ""
 "\n"
-"      There was an error accessing this page. You probably don't have an internet connection. Check to see if your WiFi\n"
+"      This page is not available offline. Since you probably don't have an internet connection, check to see if your WiFi\n"
 "      or mobile data is turned on and try again. If you think you are connected, please contact the system\n"
 "      administrators:\n"
 "    "
@@ -2766,6 +2535,12 @@ msgstr ""
 msgid "Generate Tokens"
 msgstr ""
 
+#: aleksis/core/templates/two_factor/core/login.html:6
+#: aleksis/core/templates/two_factor/core/login.html:32
+#: aleksis/core/templates/two_factor/core/login.html:95
+msgid "Login"
+msgstr ""
+
 #: aleksis/core/templates/two_factor/core/login.html:27
 #, python-format
 msgid "Login for %(name)s"
@@ -2860,6 +2635,10 @@ msgid ""
 "          security."
 msgstr ""
 
+#: aleksis/core/templates/two_factor/core/otp_required.html:19
+msgid "Go back"
+msgstr ""
+
 #: aleksis/core/templates/two_factor/core/phone_register.html:5
 #: aleksis/core/templates/two_factor/core/phone_register.html:9
 msgid "Add Backup Phone"
@@ -3083,188 +2862,168 @@ msgstr ""
 msgid "SMS"
 msgstr ""
 
-#: aleksis/core/util/pdf.py:118
+#: aleksis/core/util/pdf.py:151
 msgid "Progress: Generate PDF file"
 msgstr ""
 
-#: aleksis/core/util/pdf.py:119
+#: aleksis/core/util/pdf.py:152
 msgid "Generating PDF file …"
 msgstr ""
 
-#: aleksis/core/util/pdf.py:120
+#: aleksis/core/util/pdf.py:153
 msgid "The PDF file has been generated successfully."
 msgstr ""
 
-#: aleksis/core/util/pdf.py:121
+#: aleksis/core/util/pdf.py:154
 msgid "There was a problem while generating the PDF file."
 msgstr ""
 
-#: aleksis/core/util/pdf.py:124
+#: aleksis/core/util/pdf.py:157
 msgid "Download PDF"
 msgstr ""
 
-#: aleksis/core/views.py:294
+#: aleksis/core/views.py:278
 msgid "The school term has been created."
 msgstr ""
 
-#: aleksis/core/views.py:306
+#: aleksis/core/views.py:290
 msgid "The school term has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:426
+#: aleksis/core/views.py:394
 msgid "The child groups were successfully saved."
 msgstr ""
 
-#: aleksis/core/views.py:445 aleksis/core/views.py:455
+#: aleksis/core/views.py:413 aleksis/core/views.py:423
 msgid "The person has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:505
+#: aleksis/core/views.py:473
 msgid "The group has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:602
+#: aleksis/core/views.py:556
 msgid "The announcement has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:618
+#: aleksis/core/views.py:572
 msgid "The announcement has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:686
+#: aleksis/core/views.py:641
 msgid "The requested preference registry does not exist"
 msgstr ""
 
-#: aleksis/core/views.py:705
+#: aleksis/core/views.py:660
 msgid "The preferences have been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:729
+#: aleksis/core/views.py:684
 msgid "The person has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:743
+#: aleksis/core/views.py:698
 msgid "The group has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:775
+#: aleksis/core/views.py:730
 msgid "The additional field has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:809
+#: aleksis/core/views.py:765
 msgid "The additional field has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:834
+#: aleksis/core/views.py:790
 msgid "The group type has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:864
+#: aleksis/core/views.py:821
 msgid "The group type has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:897
+#: aleksis/core/views.py:856
 msgid "Progress: Run data checks"
 msgstr ""
 
-#: aleksis/core/views.py:898
+#: aleksis/core/views.py:857
 msgid "Run data checks …"
 msgstr ""
 
-#: aleksis/core/views.py:899
+#: aleksis/core/views.py:858
 msgid "The data checks were run successfully."
 msgstr ""
 
-#: aleksis/core/views.py:900
+#: aleksis/core/views.py:859
 msgid "There was a problem while running data checks."
 msgstr ""
 
-#: aleksis/core/views.py:916
+#: aleksis/core/views.py:876
 #, python-brace-format
 msgid "The solve option '{solve_option_obj.verbose_name}' "
 msgstr ""
 
-#: aleksis/core/views.py:926
+#: aleksis/core/views.py:886
 msgid "The requested solve option does not exist"
 msgstr ""
 
-#: aleksis/core/views.py:958
+#: aleksis/core/views.py:919
 msgid "The dashboard widget has been saved."
 msgstr ""
 
-#: aleksis/core/views.py:988
+#: aleksis/core/views.py:949
 msgid "The dashboard widget has been created."
 msgstr ""
 
-#: aleksis/core/views.py:998
+#: aleksis/core/views.py:959
 msgid "The dashboard widget has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1069
+#: aleksis/core/views.py:1030
 msgid "Your dashboard configuration has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1071
+#: aleksis/core/views.py:1032
 msgid "The configuration of the default dashboard has been saved successfully."
 msgstr ""
 
-#: aleksis/core/views.py:1147
+#: aleksis/core/views.py:1103
 #, python-brace-format
 msgid "The invitation was successfully created. The invitation code is {code}"
 msgstr ""
 
-#: aleksis/core/views.py:1238
+#: aleksis/core/views.py:1200
 msgid "We have successfully assigned the permissions."
 msgstr ""
 
-#: aleksis/core/views.py:1248
+#: aleksis/core/views.py:1210
 msgid "The global user permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1258
+#: aleksis/core/views.py:1220
 msgid "The global group permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1268
+#: aleksis/core/views.py:1230
 msgid "The object user permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1278
+#: aleksis/core/views.py:1240
 msgid "The object group permission has been deleted."
 msgstr ""
 
-#: aleksis/core/views.py:1346
-msgid "The requested PDF file does not exist"
-msgstr ""
-
-#: aleksis/core/views.py:1355 aleksis/core/views.py:1359
-msgid "The requested task does not exist or is not accessible"
-msgstr ""
-
-#: aleksis/core/views.py:1411
+#: aleksis/core/views.py:1349
 msgid "The third-party account could not be disconnected because it is the only login method available."
 msgstr ""
 
-#: aleksis/core/views.py:1418
+#: aleksis/core/views.py:1356
 msgid "The third-party account has been successfully disconnected."
 msgstr ""
 
-#: aleksis/core/views.py:1489
+#: aleksis/core/views.py:1432
 msgid "Person was invited successfully and an email with further instructions has been send to them."
 msgstr ""
 
-#: aleksis/core/views.py:1500
+#: aleksis/core/views.py:1443
 msgid "Person was already invited."
 msgstr ""
-
-#: aleksis/core/views.py:1600
-msgid "iCal feed updated successfully"
-msgstr ""
-
-#: aleksis/core/views.py:1610
-msgid "iCal feed deleted successfully"
-msgstr ""
-
-#: aleksis/core/views.py:1618
-msgid "iCal feed created successfully"
-msgstr ""
diff --git a/aleksis/core/locale/tr_TR/LC_MESSAGES/djangojs.po b/aleksis/core/locale/tr_TR/LC_MESSAGES/djangojs.po
index 26f9dbd80e1c93710efaf2abf60ffd0754e043b6..726d9cab18b9d431a74d68ffb2df35db6aff97b5 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: 2022-06-25 12:09+0200\n"
+"POT-Creation-Date: 2023-01-22 20:49+0100\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"
@@ -28,7 +28,3 @@ msgstr ""
 #: aleksis/core/static/js/main.js:68
 msgid "OK"
 msgstr ""
-
-#: aleksis/core/static/js/main.js:195
-msgid "This page may contain outdated information since there is no internet connection."
-msgstr ""
diff --git a/aleksis/core/locale/uk/LC_MESSAGES/django.po b/aleksis/core/locale/uk/LC_MESSAGES/django.po
index a5987d90d6bc2c3b1b54920ea0601d4f148eec23..f116a864f4022f2a361945644150f4facd23e6f9 100644
--- a/aleksis/core/locale/uk/LC_MESSAGES/django.po
+++ b/aleksis/core/locale/uk/LC_MESSAGES/django.po
@@ -7,90 +7,75 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-24 19:37+0200\n"
+"POT-Creation-Date: 2023-01-22 20:49+0100\n"
 "PO-Revision-Date: 2022-07-03 06:14+0000\n"
 "Last-Translator: Serhii Horichenko <m@sgg.im>\n"
-"Language-Team: Ukrainian <https://translate.edugit.org/projects/aleksis/"
-"aleksis-core/uk/>\n"
+"Language-Team: Ukrainian <https://translate.edugit.org/projects/aleksis/aleksis-core/uk/>\n"
 "Language: uk\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 "
-"? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > "
-"14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % "
-"100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
+"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
 "X-Generator: Weblate 4.12.1\n"
 
-#: aleksis/core/apps.py:166
+#: aleksis/core/apps.py:155
 msgid "OpenID Connect scope"
 msgstr "Межа дії OpenID Connect"
 
-#: aleksis/core/apps.py:167
+#: aleksis/core/apps.py:156
 msgid "Given name, family name, link to profile and picture if existing."
 msgstr "Ім'я, прізвище, посилання на профіль та фото, якщо є в наявності."
 
-#: aleksis/core/apps.py:168
+#: aleksis/core/apps.py:157
 msgid "Full home postal address"
 msgstr "Повна домашня поштова адреса"
 
-#: aleksis/core/apps.py:169
+#: aleksis/core/apps.py:158
 msgid "Email address"
 msgstr "Ел.адреса"
 
-#: aleksis/core/apps.py:170
+#: aleksis/core/apps.py:159
 msgid "Home and mobile phone"
 msgstr "Домашній та мобільний телефони"
 
-#: aleksis/core/apps.py:171 aleksis/core/forms.py:220 aleksis/core/menus.py:171
-#: aleksis/core/models.py:489 aleksis/core/templates/core/group/list.html:8
+#: aleksis/core/apps.py:160 aleksis/core/forms.py:220
+#: aleksis/core/models.py:494 aleksis/core/templates/core/group/list.html:8
 #: aleksis/core/templates/core/group/list.html:9
-#: aleksis/core/templates/core/person/full.html:246 aleksis/core/models.py:494
 msgid "Groups"
 msgstr "Групи"
 
-#: aleksis/core/data_checks.py:56 aleksis/core/data_checks.py:59
+#: aleksis/core/data_checks.py:60
 msgid "Ignore problem"
 msgstr "Ігнорувати проблему"
 
-#: aleksis/core/data_checks.py:185 aleksis/core/data_checks.py:188
+#: aleksis/core/data_checks.py:188
 #, python-brace-format
 msgid "Solve option '{solve_option_obj.verbose_name}' "
 msgstr "Варіант розв'язання '{solve_option_obj.verbose_name}' "
 
-#: aleksis/core/data_checks.py:291 aleksis/core/data_checks.py:294
+#: aleksis/core/data_checks.py:284
 msgid "Deactivate DashboardWidget"
 msgstr "Вимкнути віджет інформпанелі"
 
-#: aleksis/core/data_checks.py:303 aleksis/core/data_checks.py:306
+#: aleksis/core/data_checks.py:296
 msgid "Ensure that there are no broken DashboardWidgets."
 msgstr "Переконайтеся у відсутності збійних віджетів на інформпанелі."
 
-#: aleksis/core/data_checks.py:304 aleksis/core/data_checks.py:307
+#: aleksis/core/data_checks.py:297
 msgid "The DashboardWidget was reported broken automatically."
 msgstr "Віджет інформпанелі повідомив про збій в автоматичному режимі."
 
-#: aleksis/core/feeds.py:52
-msgid "Birthday Calendar"
-msgstr "Календар Днів Народження"
-
-#: aleksis/core/feeds.py:53
-msgid "A Calendar of Birthdays"
-msgstr "Календар Днів Народження"
-
-#: aleksis/core/feeds.py:66
+#: aleksis/core/data_checks.py:320
 #, python-format
-msgid "%(name)s's birthday"
-msgstr "%(name)s має День Народження"
+msgid "Validate field %s of model %s."
+msgstr "Перевірте поле %s моделі %s."
 
-#: aleksis/core/feeds.py:71
+#: aleksis/core/data_checks.py:322
 #, python-format
-msgid "%(name)s was born on %(birthday)s"
-msgstr "%(name)s народився(-лася) %(birthday)s"
+msgid "The field %s couldn't be validated successfully."
+msgstr "Поле %s не вдалося успішно перевірити."
 
-#: aleksis/core/filters.py:42 aleksis/core/templates/core/base.html:139
-#: aleksis/core/templates/core/base.html:140
-#: aleksis/core/templates/core/group/list.html:20
+#: aleksis/core/filters.py:42 aleksis/core/templates/core/group/list.html:20
 #: aleksis/core/templates/core/person/list.html:24
 #: aleksis/core/templates/search/search.html:7
 #: aleksis/core/templates/search/search.html:22
@@ -113,13 +98,11 @@ msgstr "Дозвіл"
 msgid "Content type"
 msgstr "Тип змісту"
 
-#: aleksis/core/filters.py:113 aleksis/core/models.py:715
-#: aleksis/core/models.py:720
+#: aleksis/core/filters.py:113 aleksis/core/models.py:720
 msgid "User"
 msgstr "Користувач"
 
-#: aleksis/core/filters.py:135 aleksis/core/models.py:488
-#: aleksis/core/models.py:493
+#: aleksis/core/filters.py:135 aleksis/core/models.py:493
 msgid "Group"
 msgstr "Група"
 
@@ -155,8 +138,7 @@ msgstr "Обравши вже існуючого користувача немо
 msgid "This username is already in use."
 msgstr "Такий логін вже зайнятий."
 
-#: aleksis/core/forms.py:153 aleksis/core/models.py:136
-#: aleksis/core/models.py:141
+#: aleksis/core/forms.py:153 aleksis/core/models.py:141
 msgid "School term"
 msgstr "Навчальний рік"
 
@@ -165,9 +147,8 @@ msgid "Common data"
 msgstr "Загальні дані"
 
 #: aleksis/core/forms.py:155 aleksis/core/forms.py:207
-#: aleksis/core/menus.py:160 aleksis/core/models.py:159
-#: aleksis/core/templates/core/person/list.html:8
-#: aleksis/core/templates/core/person/list.html:9 aleksis/core/models.py:164
+#: aleksis/core/models.py:164 aleksis/core/templates/core/person/list.html:8
+#: aleksis/core/templates/core/person/list.html:9
 msgid "Persons"
 msgstr "Особи"
 
@@ -175,19 +156,18 @@ msgstr "Особи"
 msgid "Additional data"
 msgstr "Додаткові дані"
 
-#: aleksis/core/forms.py:157 aleksis/core/models.py:212
-#: aleksis/core/models.py:541 aleksis/core/models.py:217
+#: aleksis/core/forms.py:157 aleksis/core/models.py:217
 #: aleksis/core/models.py:546 aleksis/core/tables.py:46
 msgid "Photo"
 msgstr "Фото"
 
 #: aleksis/core/forms.py:199 aleksis/core/forms.py:202
-#: aleksis/core/models.py:79 aleksis/core/models.py:84
+#: aleksis/core/models.py:84
 msgid "Date"
 msgstr "Дата"
 
 #: aleksis/core/forms.py:200 aleksis/core/forms.py:203
-#: aleksis/core/models.py:87 aleksis/core/models.py:92
+#: aleksis/core/models.py:92
 msgid "Time"
 msgstr "Час"
 
@@ -204,8 +184,7 @@ msgid "Write your announcement:"
 msgstr "Складіть своє оголошеня:"
 
 #: aleksis/core/forms.py:276
-msgid ""
-"You are not allowed to create announcements which are only valid in the past."
+msgid "You are not allowed to create announcements which are only valid in the past."
 msgstr "Оголошення для минулого Вам створювати не дозволено."
 
 #: aleksis/core/forms.py:280
@@ -224,13 +203,11 @@ msgstr "Код запрошення"
 msgid "Please enter your invitation code."
 msgstr "Напишіть, будь ласка, свій код запрошення."
 
-#: aleksis/core/forms.py:418 aleksis/core/models.py:187
-#: aleksis/core/models.py:192
+#: aleksis/core/forms.py:418 aleksis/core/models.py:192
 msgid "First name"
 msgstr "Ім'я"
 
-#: aleksis/core/forms.py:419 aleksis/core/models.py:188
-#: aleksis/core/models.py:193
+#: aleksis/core/forms.py:419 aleksis/core/models.py:193
 msgid "Last name"
 msgstr "Прізвище"
 
@@ -255,13 +232,13 @@ msgid "Grant the permission for all objects"
 msgstr "Надати дозвіл до всіх об'єктів"
 
 #: aleksis/core/forms.py:494
-msgid ""
-"You must select at least one group or person which should get the permission."
-msgstr ""
-"Ви повинні обрати принаймні одну групу або особу, хто буде мати дозвіл."
+msgid "You must select at least one group or person which should get the permission."
+msgstr "Ви повинні обрати принаймні одну групу або особу, хто буде мати дозвіл."
 
 #: aleksis/core/forms.py:499
-msgid "You must grant the permission to all objects and/or to some objects."
+#, fuzzy
+#| msgid "You must grant the permission to all objects and/or to some objects."
+msgid "You must grant the permission to all objects or to specific objects."
 msgstr "Ви повинні надати дозвіл до всіх та/або до деяких об'єктів."
 
 #: aleksis/core/forms.py:586
@@ -280,15 +257,15 @@ msgstr "Пароль"
 msgid "Password (again)"
 msgstr "Пароль (ще раз)"
 
-#: aleksis/core/forms.py:728
+#: aleksis/core/forms.py:761
 msgid "The selected action does not exist."
 msgstr "Обрана дія не існує."
 
-#: aleksis/core/forms.py:739
+#: aleksis/core/forms.py:772
 msgid "You do not have permission to run {} on all selected objects."
 msgstr "У Вас відсутній дозвіл на запуск {} на усіх обраних об'єктах."
 
-#: aleksis/core/forms.py:795
+#: aleksis/core/forms.py:828
 msgid "No valid selection."
 msgstr "Неправильний вибір."
 
@@ -312,772 +289,684 @@ msgstr "Резервна копія не знайдена!"
 msgid "No backup result found!"
 msgstr "Результат резервного копіювання не знайдений!"
 
-#: aleksis/core/menus.py:7 aleksis/core/templates/two_factor/core/login.html:6
-#: aleksis/core/templates/two_factor/core/login.html:32
-#: aleksis/core/templates/two_factor/core/login.html:95
-msgid "Login"
-msgstr "Увійти"
-
-#: aleksis/core/menus.py:13 aleksis/core/templates/account/signup.html:22
-#: aleksis/core/templates/socialaccount/signup.html:23
-msgid "Sign up"
-msgstr "Зареєструватися"
-
-#: aleksis/core/menus.py:22 aleksis/core/templates/invitations/enter.html:7
-msgid "Accept invitation"
-msgstr "Прийняти запрошення"
-
-#: aleksis/core/menus.py:31
-msgid "Dashboard"
-msgstr "Інформпанель"
-
-#: aleksis/core/menus.py:39
-msgid "Admin"
-msgstr "Адмін"
-
-#: aleksis/core/menus.py:47 aleksis/core/models.py:867
-#: aleksis/core/templates/core/announcement/list.html:7
-#: aleksis/core/templates/core/announcement/list.html:8
-#: aleksis/core/models.py:872
-msgid "Announcements"
-msgstr "Оголошення"
-
-#: aleksis/core/menus.py:58 aleksis/core/models.py:137
-#: aleksis/core/templates/core/school_term/list.html:8
-#: aleksis/core/templates/core/school_term/list.html:9
-#: aleksis/core/models.py:142
-msgid "School terms"
-msgstr "Навчальний рік"
-
-#: aleksis/core/menus.py:69
-#: aleksis/core/templates/core/dashboard_widget/list.html:8
-#: aleksis/core/templates/core/dashboard_widget/list.html:9
-msgid "Dashboard widgets"
-msgstr "Віджети інформпанелі"
-
-#: aleksis/core/menus.py:80
-#: aleksis/core/templates/core/management/data_management.html:6
-#: aleksis/core/templates/core/management/data_management.html:7
-msgid "Data management"
-msgstr "Керування даними"
-
-#: aleksis/core/menus.py:91
-#: aleksis/core/templates/core/pages/system_status.html:5
-#: aleksis/core/templates/core/pages/system_status.html:7
-msgid "System status"
-msgstr "Стан системи"
-
-#: aleksis/core/menus.py:102
-msgid "Configuration"
-msgstr "Конфігурація"
-
-#: aleksis/core/menus.py:113 aleksis/core/templates/core/data_check/list.html:9
-#: aleksis/core/templates/core/data_check/list.html:10
-msgid "Data checks"
-msgstr "Перевірки даних"
-
-#: aleksis/core/menus.py:119 aleksis/core/templates/core/perms/list.html:13
-#: aleksis/core/templates/core/perms/list.html:14
-msgid "Manage permissions"
-msgstr "Керування дозволами"
-
-#: aleksis/core/menus.py:130
-msgid "Backend Admin"
-msgstr "Адміністрування бекенду"
-
-#: aleksis/core/menus.py:138
-#: aleksis/core/templates/oauth2_provider/application/list.html:5
-#: aleksis/core/templates/oauth2_provider/application/list.html:6
-msgid "OAuth2 Applications"
-msgstr "Додатки OAuth2"
-
-#: aleksis/core/menus.py:151
-msgid "People"
-msgstr "Люди"
-
-#: aleksis/core/menus.py:182 aleksis/core/models.py:1101
-#: aleksis/core/templates/core/group_type/list.html:8
-#: aleksis/core/templates/core/group_type/list.html:9
-#: aleksis/core/models.py:1111
-msgid "Group types"
-msgstr "Типи груп"
-
-#: aleksis/core/menus.py:193
-msgid "Groups and child groups"
-msgstr "Групи та підлеглі групи"
-
-#: aleksis/core/menus.py:204 aleksis/core/models.py:537
-#: aleksis/core/templates/core/additional_field/list.html:8
-#: aleksis/core/templates/core/additional_field/list.html:9
-#: aleksis/core/models.py:542
-msgid "Additional fields"
-msgstr "Додаткові поля"
-
-#: aleksis/core/menus.py:215
-msgid "Invite person"
-msgstr "Запросити особу"
-
-#: aleksis/core/menus.py:228
-#: aleksis/core/templates/core/group/child_groups.html:7
-#: aleksis/core/templates/core/group/child_groups.html:9
-msgid "Assign child groups to groups"
-msgstr "Призначити підлеглі групи до груп"
-
-#: aleksis/core/menus.py:240
-msgid "Stop impersonation"
-msgstr "Зупинити маскування"
-
-#: aleksis/core/menus.py:249
-msgid "Account"
-msgstr "Обліковий запис"
-
-#: aleksis/core/menus.py:258
-#: aleksis/core/templates/dynamic_preferences/form.html:5
-msgid "Preferences"
-msgstr "Властивості"
-
-#: aleksis/core/menus.py:267
-msgid "2FA"
-msgstr "2FA"
-
-#: aleksis/core/menus.py:275
-#: aleksis/core/templates/account/password_change.html:5
-#: aleksis/core/templates/account/password_change.html:6
-#: aleksis/core/templates/account/password_change.html:19
-#: aleksis/core/templates/account/password_reset_from_key.html:5
-#: aleksis/core/templates/account/password_reset_from_key.html:42
-#: aleksis/core/templates/account/password_reset_from_key.html:46
-#: aleksis/core/templates/account/password_reset_from_key_done.html:5
-#: aleksis/core/templates/account/password_reset_from_key_done.html:6
-msgid "Change password"
-msgstr "Змінити пароль"
-
-#: aleksis/core/menus.py:287
-msgid "Third-party accounts"
-msgstr "Обліковки третіх сторін"
-
-#: aleksis/core/menus.py:296
-#: 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:305
-msgid "Calendar Feeds"
-msgstr "Канали календарів"
-
-#: aleksis/core/menus.py:318
-msgid "Logout"
-msgstr "Вийти"
-
 #: aleksis/core/mixins.py:511
 msgid "Linked school term"
 msgstr "Пов'язаний навчальний рік"
 
-#: aleksis/core/models.py:77 aleksis/core/models.py:82
+#: aleksis/core/models.py:82
 msgid "Boolean (Yes/No)"
 msgstr "Логічне (Так/Ні)"
 
-#: aleksis/core/models.py:78 aleksis/core/models.py:83
+#: aleksis/core/models.py:83
 msgid "Text (one line)"
 msgstr "Текст (один рядок)"
 
-#: aleksis/core/models.py:80 aleksis/core/models.py:85
+#: aleksis/core/models.py:85
 msgid "Date and time"
 msgstr "Дата і час"
 
-#: aleksis/core/models.py:81 aleksis/core/models.py:86
+#: aleksis/core/models.py:86
 msgid "Decimal number"
 msgstr "Десятичне число"
 
-#: aleksis/core/models.py:82 aleksis/core/models.py:205
 #: aleksis/core/models.py:87 aleksis/core/models.py:210
 msgid "E-mail address"
 msgstr "Адреса ел.пошти"
 
-#: aleksis/core/models.py:83 aleksis/core/models.py:88
+#: aleksis/core/models.py:88
 msgid "Integer"
 msgstr "Ціле"
 
-#: aleksis/core/models.py:84 aleksis/core/models.py:89
+#: aleksis/core/models.py:89
 msgid "IP address"
 msgstr "IP адреса"
 
-#: aleksis/core/models.py:85 aleksis/core/models.py:90
+#: aleksis/core/models.py:90
 msgid "Boolean or empty (Yes/No/Neither)"
 msgstr "Логічне або порожнє (Так/Ні/Нічого)"
 
-#: aleksis/core/models.py:86 aleksis/core/models.py:91
+#: aleksis/core/models.py:91
 msgid "Text (multi-line)"
 msgstr "Текст (багаторядковий)"
 
-#: aleksis/core/models.py:88 aleksis/core/models.py:93
+#: aleksis/core/models.py:93
 msgid "URL / Link"
 msgstr "URL / Посилання"
 
-#: aleksis/core/models.py:100 aleksis/core/models.py:1070
-#: aleksis/core/models.py:1374 aleksis/core/models.py:105
-#: aleksis/core/models.py:1077 aleksis/core/models.py:1384
+#: aleksis/core/models.py:105 aleksis/core/models.py:1077
 msgid "Name"
 msgstr "Повне ім'я"
 
-#: aleksis/core/models.py:102 aleksis/core/models.py:107
+#: aleksis/core/models.py:107
 msgid "Start date"
 msgstr "Дата початку"
 
-#: aleksis/core/models.py:103 aleksis/core/models.py:108
+#: aleksis/core/models.py:108
 msgid "End date"
 msgstr "Дата закінчення"
 
-#: aleksis/core/models.py:122 aleksis/core/models.py:127
+#: aleksis/core/models.py:127
 msgid "The start date must be earlier than the end date."
 msgstr "Початкова дата повинна бути раніше кінцевої."
 
-#: aleksis/core/models.py:129 aleksis/core/models.py:134
+#: aleksis/core/models.py:134
 msgid "There is already a school term for this time or a part of this time."
 msgstr "На цей час або на частину цього часу вже припадає навчальний рік."
 
-#: aleksis/core/models.py:158 aleksis/core/models.py:1019
-#: aleksis/core/models.py:1371 aleksis/core/models.py:163
-#: aleksis/core/models.py:1024 aleksis/core/models.py:1381
+#: aleksis/core/models.py:142
+#: aleksis/core/templates/core/school_term/list.html:8
+#: aleksis/core/templates/core/school_term/list.html:9
+msgid "School terms"
+msgstr "Навчальний рік"
+
+#: aleksis/core/models.py:163 aleksis/core/models.py:1026
 msgid "Person"
 msgstr "Особа"
 
-#: aleksis/core/models.py:161 aleksis/core/models.py:166
+#: aleksis/core/models.py:166
 msgid "Can view address"
 msgstr "Може бачити адресу"
 
-#: aleksis/core/models.py:162 aleksis/core/models.py:167
+#: aleksis/core/models.py:167
 msgid "Can view contact details"
 msgstr "Може бачити контактні дані"
 
-#: aleksis/core/models.py:163 aleksis/core/models.py:168
+#: aleksis/core/models.py:168
 msgid "Can view photo"
 msgstr "Може бачити фото"
 
-#: aleksis/core/models.py:164 aleksis/core/models.py:169
+#: aleksis/core/models.py:169
 msgid "Can view avatar image"
 msgstr "Може бачити аватар"
 
-#: aleksis/core/models.py:165 aleksis/core/models.py:170
+#: aleksis/core/models.py:170
 msgid "Can view persons groups"
 msgstr "Може бачити групи особи"
 
-#: aleksis/core/models.py:166 aleksis/core/models.py:171
+#: aleksis/core/models.py:171
 msgid "Can view personal details"
 msgstr "Може бачити особисті дані"
 
-#: aleksis/core/models.py:176 aleksis/core/models.py:181
+#: aleksis/core/models.py:181
 msgid "female"
 msgstr "жін"
 
-#: aleksis/core/models.py:176 aleksis/core/models.py:181
+#: aleksis/core/models.py:181
 msgid "male"
 msgstr "чол"
 
-#: aleksis/core/models.py:184 aleksis/core/models.py:1273
-#: aleksis/core/models.py:189 aleksis/core/models.py:1283
+#: aleksis/core/models.py:181
+msgid "other"
+msgstr "інший"
+
+#: aleksis/core/models.py:189 aleksis/core/models.py:1345
 msgid "Linked user"
 msgstr "Пов'язаний користувач"
 
-#: aleksis/core/models.py:190 aleksis/core/models.py:195
+#: aleksis/core/models.py:195
 msgid "Additional name(s)"
 msgstr "Додаткові імена"
 
-#: aleksis/core/models.py:194 aleksis/core/models.py:506
 #: aleksis/core/models.py:199 aleksis/core/models.py:511
+#: aleksis/core/models.py:1431
 msgid "Short name"
 msgstr "Коротке ім'я"
 
-#: aleksis/core/models.py:197 aleksis/core/models.py:202
+#: aleksis/core/models.py:202
 msgid "Street"
 msgstr "Вулиця"
 
-#: aleksis/core/models.py:198 aleksis/core/models.py:203
+#: aleksis/core/models.py:203
 msgid "Street number"
 msgstr "Номер будинку"
 
-#: aleksis/core/models.py:199 aleksis/core/models.py:204
+#: aleksis/core/models.py:204
 msgid "Postal code"
 msgstr "Поштовий індекс"
 
-#: aleksis/core/models.py:200 aleksis/core/models.py:205
+#: aleksis/core/models.py:205
 msgid "Place"
 msgstr "Місто"
 
-#: aleksis/core/models.py:202 aleksis/core/templates/core/person/full.html:160
 #: aleksis/core/models.py:207
 msgid "Home phone"
 msgstr "Домашній телефон"
 
-#: aleksis/core/models.py:203 aleksis/core/templates/core/person/full.html:170
 #: aleksis/core/models.py:208
 msgid "Mobile phone"
 msgstr "Мобільний телефон"
 
-#: aleksis/core/models.py:207 aleksis/core/models.py:212
+#: aleksis/core/models.py:212
 msgid "Date of birth"
 msgstr "Дата народження"
 
-#: aleksis/core/models.py:208 aleksis/core/models.py:213
+#: aleksis/core/models.py:213
 msgid "Place of birth"
 msgstr "Місце народження"
 
-#: aleksis/core/models.py:209 aleksis/core/models.py:214
+#: aleksis/core/models.py:214
 msgid "Sex"
 msgstr "Стать"
 
-#: aleksis/core/models.py:216 aleksis/core/models.py:545
 #: aleksis/core/models.py:221 aleksis/core/models.py:550
-msgid ""
-"This is an official photo, used for official documents and for internal use "
-"cases."
-msgstr ""
-"Це офіційне фото, яке використовується для документів та внутрішніх потреб."
+msgid "This is an official photo, used for official documents and for internal use cases."
+msgstr "Це офіційне фото, яке використовується для документів та внутрішніх потреб."
 
-#: aleksis/core/models.py:221 aleksis/core/models.py:549
 #: aleksis/core/models.py:226 aleksis/core/models.py:554
 msgid "Display picture / Avatar"
 msgstr "Відобразити фото/аватар"
 
-#: aleksis/core/models.py:224 aleksis/core/models.py:552
 #: aleksis/core/models.py:229 aleksis/core/models.py:557
 msgid "This is a picture or an avatar for public display."
 msgstr "Це фото або аватар для загального відображення."
 
-#: aleksis/core/models.py:229 aleksis/core/templates/core/person/full.html:235
 #: aleksis/core/models.py:234
 msgid "Guardians / Parents"
 msgstr "Опікуни / батьки"
 
-#: aleksis/core/models.py:236 aleksis/core/models.py:241
+#: aleksis/core/models.py:241
 msgid "Primary group"
 msgstr "Основна група"
 
-#: aleksis/core/models.py:239 aleksis/core/models.py:719
-#: aleksis/core/models.py:743 aleksis/core/models.py:834
-#: aleksis/core/models.py:1094 aleksis/core/models.py:244
-#: aleksis/core/models.py:724 aleksis/core/models.py:748
-#: aleksis/core/models.py:839 aleksis/core/models.py:1104
+#: aleksis/core/models.py:244 aleksis/core/models.py:724
+#: aleksis/core/models.py:748 aleksis/core/models.py:843
+#: aleksis/core/models.py:1104
 msgid "Description"
 msgstr "Опис"
 
-#: aleksis/core/models.py:459 aleksis/core/models.py:464
+#: aleksis/core/models.py:464
 msgid "Title of field"
 msgstr "Назва поля"
 
-#: aleksis/core/models.py:461 aleksis/core/models.py:466
+#: aleksis/core/models.py:466
 msgid "Type of field"
 msgstr "Тип поля"
 
-#: aleksis/core/models.py:463 aleksis/core/models.py:468
+#: aleksis/core/models.py:468
 msgid "Required"
 msgstr "Необхідне"
 
-#: aleksis/core/models.py:464 aleksis/core/models.py:469
+#: aleksis/core/models.py:469
 msgid "Help text / description"
 msgstr "Допоміжний текст/опис"
 
-#: aleksis/core/models.py:470 aleksis/core/models.py:475
+#: aleksis/core/models.py:475
 msgid "Addtitional field for groups"
 msgstr "Додаткове поле для груп"
 
-#: aleksis/core/models.py:471 aleksis/core/models.py:476
+#: aleksis/core/models.py:476
 msgid "Addtitional fields for groups"
 msgstr "Додаткові поля для груп"
 
-#: aleksis/core/models.py:491 aleksis/core/models.py:496
+#: aleksis/core/models.py:496
 msgid "Can assign child groups to groups"
 msgstr "Може призначати підлеглі групи до груп"
 
-#: aleksis/core/models.py:492 aleksis/core/models.py:497
+#: aleksis/core/models.py:497
 msgid "Can view statistics about group."
 msgstr "Може бачити статистику групи."
 
-#: aleksis/core/models.py:504 aleksis/core/models.py:509
+#: aleksis/core/models.py:509 aleksis/core/models.py:1432
 msgid "Long name"
 msgstr "Довге ім'я"
 
-#: aleksis/core/models.py:514 aleksis/core/templates/core/group/full.html:85
 #: aleksis/core/models.py:519 aleksis/core/templates/core/group/full.html:105
 msgid "Members"
 msgstr "Учасники"
 
-#: aleksis/core/models.py:517 aleksis/core/templates/core/group/full.html:82
 #: aleksis/core/models.py:522 aleksis/core/templates/core/group/full.html:102
 msgid "Owners"
 msgstr "Власники"
 
-#: aleksis/core/models.py:524 aleksis/core/templates/core/group/full.html:55
 #: aleksis/core/models.py:529 aleksis/core/templates/core/group/full.html:59
 msgid "Parent groups"
 msgstr "Батьківські групи"
 
-#: aleksis/core/models.py:532 aleksis/core/models.py:537
+#: aleksis/core/models.py:537
 msgid "Type of group"
 msgstr "Тип групи"
 
-#: aleksis/core/models.py:718 aleksis/core/models.py:742
-#: aleksis/core/models.py:833
-#: aleksis/core/templates/core/announcement/list.html:18
+#: aleksis/core/models.py:542
+#: aleksis/core/templates/core/additional_field/list.html:8
+#: aleksis/core/templates/core/additional_field/list.html:9
+msgid "Additional fields"
+msgstr "Додаткові поля"
+
 #: aleksis/core/models.py:723 aleksis/core/models.py:747
-#: aleksis/core/models.py:838
+#: aleksis/core/models.py:842 aleksis/core/models.py:1262
+#: aleksis/core/templates/core/announcement/list.html:18
 msgid "Title"
 msgstr "Назва"
 
-#: aleksis/core/models.py:721 aleksis/core/models.py:726
+#: aleksis/core/models.py:726
 msgid "Application"
 msgstr "Додаток"
 
-#: aleksis/core/models.py:727 aleksis/core/models.py:732
+#: aleksis/core/models.py:732
 msgid "Activity"
 msgstr "Активність"
 
-#: aleksis/core/models.py:728 aleksis/core/models.py:733
+#: aleksis/core/models.py:733
 msgid "Activities"
 msgstr "Активності"
 
-#: aleksis/core/models.py:734 aleksis/core/models.py:739
+#: aleksis/core/models.py:739
 msgid "Sender"
 msgstr "Відправник"
 
-#: aleksis/core/models.py:739 aleksis/core/models.py:744
+#: aleksis/core/models.py:744
 msgid "Recipient"
 msgstr "Отримувач"
 
-#: aleksis/core/models.py:744 aleksis/core/models.py:1071
 #: aleksis/core/models.py:749 aleksis/core/models.py:1078
 msgid "Link"
 msgstr "Посилання"
 
-#: aleksis/core/models.py:746 aleksis/core/models.py:751
+#: aleksis/core/models.py:752 aleksis/core/models.py:1079
+#: aleksis/core/models.py:1392
+#: aleksis/core/templates/oauth2_provider/application/detail.html:26
+msgid "Icon"
+msgstr "Іконка"
+
+#: aleksis/core/models.py:755
 msgid "Send notification at"
 msgstr "Надіслати сповіщення о"
 
-#: aleksis/core/models.py:748 aleksis/core/models.py:753
+#: aleksis/core/models.py:757
 msgid "Read"
 msgstr "Читати"
 
-#: aleksis/core/models.py:749 aleksis/core/models.py:754
+#: aleksis/core/models.py:758
 msgid "Sent"
 msgstr "Надіслано"
 
-#: aleksis/core/models.py:766 aleksis/core/models.py:771
+#: aleksis/core/models.py:775
 msgid "Notification"
 msgstr "Сповіщення"
 
-#: aleksis/core/models.py:767 aleksis/core/preferences.py:29
-#: aleksis/core/templates/core/base.html:81
-#: aleksis/core/templates/core/notifications.html:4
-#: aleksis/core/templates/core/notifications.html:5 aleksis/core/models.py:772
+#: aleksis/core/models.py:776 aleksis/core/preferences.py:29
 msgid "Notifications"
 msgstr "Сповіщення"
 
-#: aleksis/core/models.py:835 aleksis/core/models.py:840
+#: aleksis/core/models.py:844
 msgid "Link to detailed view"
 msgstr "Посилання на детальний перегляд"
 
-#: aleksis/core/models.py:838 aleksis/core/models.py:843
+#: aleksis/core/models.py:847
 msgid "Date and time from when to show"
 msgstr "Дата і час, з якого показувати"
 
-#: aleksis/core/models.py:841 aleksis/core/models.py:846
+#: aleksis/core/models.py:850
 msgid "Date and time until when to show"
 msgstr "Дата і час, до якого показувати"
 
-#: aleksis/core/models.py:866 aleksis/core/models.py:871
+#: aleksis/core/models.py:875
 msgid "Announcement"
 msgstr "Оголошення"
 
-#: aleksis/core/models.py:904 aleksis/core/models.py:909
+#: aleksis/core/models.py:876
+#: aleksis/core/templates/core/announcement/list.html:7
+#: aleksis/core/templates/core/announcement/list.html:8
+msgid "Announcements"
+msgstr "Оголошення"
+
+#: aleksis/core/models.py:913
 msgid "Announcement recipient"
 msgstr "Отримувач оголошення"
 
-#: aleksis/core/models.py:905 aleksis/core/models.py:910
+#: aleksis/core/models.py:914
 msgid "Announcement recipients"
 msgstr "Отримувачі оголошення"
 
-#: aleksis/core/models.py:927 aleksis/core/models.py:932
+#: aleksis/core/models.py:934
 msgid "Widget Title"
 msgstr "Назва віджета"
 
-#: aleksis/core/models.py:928 aleksis/core/models.py:933
+#: aleksis/core/models.py:935
 msgid "Activate Widget"
 msgstr "Активувати віджет"
 
-#: aleksis/core/models.py:929 aleksis/core/models.py:934
+#: aleksis/core/models.py:936
 msgid "Widget is broken"
 msgstr "Віджет зламався"
 
-#: aleksis/core/models.py:932 aleksis/core/models.py:937
+#: aleksis/core/models.py:939
 msgid "Size on mobile devices"
 msgstr "Розмір на мобільних"
 
-#: aleksis/core/models.py:933 aleksis/core/models.py:938
+#: aleksis/core/models.py:940
 msgid "<= 600 px, 12 columns"
 msgstr "<= 600 пікс, 12 стовпчиків"
 
-#: aleksis/core/models.py:938 aleksis/core/models.py:943
+#: aleksis/core/models.py:945
 msgid "Size on tablet devices"
 msgstr "Розмір на планшетах"
 
-#: aleksis/core/models.py:939 aleksis/core/models.py:944
+#: aleksis/core/models.py:946
 msgid "> 600 px, 12 columns"
 msgstr "> 600 пікс, 12 стовпчиків"
 
-#: aleksis/core/models.py:944 aleksis/core/models.py:949
+#: aleksis/core/models.py:951
 msgid "Size on desktop devices"
 msgstr "Розмір на ПК"
 
-#: aleksis/core/models.py:945 aleksis/core/models.py:950
+#: aleksis/core/models.py:952
 msgid "> 992 px, 12 columns"
 msgstr "> 992 пікс, 12 стовпчиків"
 
-#: aleksis/core/models.py:950 aleksis/core/models.py:955
+#: aleksis/core/models.py:957
 msgid "Size on large desktop devices"
 msgstr "Розмір на великих екранах"
 
-#: aleksis/core/models.py:951 aleksis/core/models.py:956
+#: aleksis/core/models.py:958
 msgid "> 1200 px>, 12 columns"
 msgstr "> 1200 пікс, 12 стовпчиків"
 
-#: aleksis/core/models.py:982 aleksis/core/models.py:987
+#: aleksis/core/models.py:989
 msgid "Can edit default dashboard"
 msgstr "Може редагувати типову/стандартну інформпанель"
 
-#: aleksis/core/models.py:983 aleksis/core/models.py:988
+#: aleksis/core/models.py:990
 msgid "Dashboard Widget"
 msgstr "Віджет інформпанелі"
 
-#: aleksis/core/models.py:984 aleksis/core/models.py:989
+#: aleksis/core/models.py:991
 msgid "Dashboard Widgets"
 msgstr "Віджети інформпанелі"
 
-#: aleksis/core/models.py:990 aleksis/core/models.py:995
+#: aleksis/core/models.py:997
 msgid "URL"
 msgstr "URL"
 
-#: aleksis/core/models.py:991 aleksis/core/models.py:996
+#: aleksis/core/models.py:998
 msgid "Icon URL"
 msgstr "Іконка URL"
 
-#: aleksis/core/models.py:997 aleksis/core/models.py:1002
+#: aleksis/core/models.py:1004
 msgid "External link widget"
 msgstr "Зовнішнє посилання на віджет"
 
-#: aleksis/core/models.py:998 aleksis/core/models.py:1003
+#: aleksis/core/models.py:1005
 msgid "External link widgets"
 msgstr "Зовнішні посилання на віджети"
 
-#: aleksis/core/models.py:1004 aleksis/core/models.py:1009
+#: aleksis/core/models.py:1011
 msgid "Content"
 msgstr "Зміст"
 
-#: aleksis/core/models.py:1010 aleksis/core/models.py:1015
+#: aleksis/core/models.py:1017
 msgid "Static content widget"
 msgstr "Віджет з постійним змістом"
 
-#: aleksis/core/models.py:1011 aleksis/core/models.py:1016
+#: aleksis/core/models.py:1018
 msgid "Static content widgets"
 msgstr "Віджети з постійним змістом"
 
-#: aleksis/core/models.py:1016 aleksis/core/models.py:1021
+#: aleksis/core/models.py:1023
 msgid "Dashboard widget"
 msgstr "Віджет інформпанелі"
 
-#: aleksis/core/models.py:1021 aleksis/core/models.py:1026
+#: aleksis/core/models.py:1028
 msgid "Order"
 msgstr "Порядок"
 
-#: aleksis/core/models.py:1022 aleksis/core/models.py:1027
+#: aleksis/core/models.py:1029
 msgid "Part of the default dashboard"
 msgstr "Частина типової інформпанелі"
 
-#: aleksis/core/models.py:1037 aleksis/core/models.py:1042
+#: aleksis/core/models.py:1044
 msgid "Dashboard widget order"
 msgstr "Порядок віджету на інформпанелі"
 
-#: aleksis/core/models.py:1038 aleksis/core/models.py:1043
+#: aleksis/core/models.py:1045
 msgid "Dashboard widget orders"
 msgstr "Порядок віджетів на інформпанелі"
 
-#: aleksis/core/models.py:1044 aleksis/core/models.py:1049
+#: aleksis/core/models.py:1051
 msgid "Menu ID"
 msgstr "Меню ID"
 
-#: aleksis/core/models.py:1057 aleksis/core/models.py:1062
+#: aleksis/core/models.py:1064
 msgid "Custom menu"
 msgstr "Користувацьке меню"
 
-#: aleksis/core/models.py:1058 aleksis/core/models.py:1063
+#: aleksis/core/models.py:1065
 msgid "Custom menus"
 msgstr "Користувацькі меню"
 
-#: aleksis/core/models.py:1068 aleksis/core/models.py:1075
+#: aleksis/core/models.py:1075
 msgid "Menu"
 msgstr "Меню"
 
-#: aleksis/core/models.py:1072 aleksis/core/models.py:1320
-#: aleksis/core/templates/oauth2_provider/application/detail.html:26
-#: aleksis/core/models.py:1079 aleksis/core/models.py:1330
-msgid "Icon"
-msgstr "Іконка"
-
-#: aleksis/core/models.py:1078 aleksis/core/models.py:1085
+#: aleksis/core/models.py:1085
 msgid "Custom menu item"
 msgstr "Пункт користувацького меню"
 
-#: aleksis/core/models.py:1079 aleksis/core/models.py:1086
+#: aleksis/core/models.py:1086
 msgid "Custom menu items"
 msgstr "Пункти користувацького меню"
 
-#: aleksis/core/models.py:1093 aleksis/core/models.py:1103
+#: aleksis/core/models.py:1103
 msgid "Title of type"
 msgstr "Назва типу"
 
-#: aleksis/core/models.py:1100 aleksis/core/templates/core/group/full.html:47
 #: aleksis/core/models.py:1110 aleksis/core/templates/core/group/full.html:50
 msgid "Group type"
 msgstr "Тип групи"
 
-#: aleksis/core/models.py:1114 aleksis/core/models.py:1124
+#: aleksis/core/models.py:1111
+#: aleksis/core/templates/core/group_type/list.html:8
+#: aleksis/core/templates/core/group_type/list.html:9
+msgid "Group types"
+msgstr "Типи груп"
+
+#: aleksis/core/models.py:1124
 msgid "Can view system status"
 msgstr "Може переглядати стан системи"
 
-#: aleksis/core/models.py:1115 aleksis/core/models.py:1125
+#: aleksis/core/models.py:1125
 msgid "Can manage data"
 msgstr "Може керувати даними"
 
-#: aleksis/core/models.py:1116 aleksis/core/models.py:1126
+#: aleksis/core/models.py:1126
 msgid "Can impersonate"
 msgstr "Може маскуватися"
 
-#: aleksis/core/models.py:1117 aleksis/core/models.py:1127
+#: aleksis/core/models.py:1127
 msgid "Can use search"
 msgstr "Може шукати"
 
-#: aleksis/core/models.py:1118 aleksis/core/models.py:1128
+#: aleksis/core/models.py:1128
 msgid "Can change site preferences"
 msgstr "Може змінювати властивості сайту"
 
-#: aleksis/core/models.py:1119 aleksis/core/models.py:1129
+#: aleksis/core/models.py:1129
 msgid "Can change person preferences"
 msgstr "Може змінювати властивості особи"
 
-#: aleksis/core/models.py:1120 aleksis/core/models.py:1130
+#: aleksis/core/models.py:1130
 msgid "Can change group preferences"
 msgstr "Може змінювати властивості групи"
 
-#: aleksis/core/models.py:1121 aleksis/core/models.py:1131
+#: aleksis/core/models.py:1131
 msgid "Can test PDF generation"
 msgstr "Може генерувати тестові PDF"
 
-#: aleksis/core/models.py:1122 aleksis/core/models.py:1132
+#: aleksis/core/models.py:1132
 msgid "Can invite persons"
 msgstr "Може запрошувати осіб"
 
-#: aleksis/core/models.py:1158 aleksis/core/models.py:1168
+#: aleksis/core/models.py:1168
 msgid "Related data check task"
 msgstr "Завдання перевірки пов'язаних даних"
 
-#: aleksis/core/models.py:1166 aleksis/core/models.py:1176
+#: aleksis/core/models.py:1176
 msgid "Issue solved"
 msgstr "Проблема вирішена"
 
-#: aleksis/core/models.py:1167 aleksis/core/models.py:1177
+#: aleksis/core/models.py:1177
 msgid "Notification sent"
 msgstr "Сповіщення надіслане"
 
-#: aleksis/core/models.py:1180 aleksis/core/models.py:1190
+#: aleksis/core/models.py:1190
 msgid "Data check result"
 msgstr "Результат перевірки даних"
 
-#: aleksis/core/models.py:1181 aleksis/core/models.py:1191
+#: aleksis/core/models.py:1191
 msgid "Data check results"
 msgstr "Результати перевірки даних"
 
-#: aleksis/core/models.py:1183 aleksis/core/models.py:1193
+#: aleksis/core/models.py:1193
 msgid "Can run data checks"
 msgstr "Може запускати перевірки даних"
 
-#: aleksis/core/models.py:1184 aleksis/core/models.py:1194
+#: aleksis/core/models.py:1194
 msgid "Can solve data check problems"
 msgstr "Може розв'язувати проблеми перевірки даних"
 
-#: aleksis/core/models.py:1191 aleksis/core/models.py:1201
+#: aleksis/core/models.py:1201
 msgid "E-Mail address"
 msgstr "Адреса ел.пошти"
 
-#: aleksis/core/models.py:1223 aleksis/core/models.py:1233
+#: aleksis/core/models.py:1233
 msgid "Owner"
 msgstr "Власник"
 
-#: aleksis/core/models.py:1227 aleksis/core/models.py:1237
+#: aleksis/core/models.py:1237
 msgid "File expires at"
 msgstr "Файл дійсний до"
 
-#: aleksis/core/models.py:1229 aleksis/core/models.py:1239
+#: aleksis/core/models.py:1240
 msgid "Generated HTML file"
 msgstr "Згенерований файл HTML"
 
-#: aleksis/core/models.py:1231 aleksis/core/models.py:1241
+#: aleksis/core/models.py:1243
 msgid "Generated PDF file"
 msgstr "Згенерований файл PDF"
 
-#: aleksis/core/models.py:1238 aleksis/core/models.py:1248
+#: aleksis/core/models.py:1250
 msgid "PDF file"
 msgstr "Файл PDF"
 
-#: aleksis/core/models.py:1239 aleksis/core/models.py:1249
+#: aleksis/core/models.py:1251
 msgid "PDF files"
 msgstr "Файли PDF"
 
-#: aleksis/core/models.py:1244 aleksis/core/models.py:1254
+#: aleksis/core/models.py:1256
 msgid "Task result"
 msgstr "Результат завдання"
 
-#: aleksis/core/models.py:1247 aleksis/core/models.py:1257
+#: aleksis/core/models.py:1259
 msgid "Task user"
 msgstr "Користувач завдання"
 
-#: aleksis/core/models.py:1259 aleksis/core/models.py:1269
+#: aleksis/core/models.py:1263
+#, fuzzy
+#| msgid "Back"
+msgid "Back URL"
+msgstr "Назад"
+
+#: aleksis/core/models.py:1264
+#, fuzzy
+#| msgid "Progress: Generate PDF file"
+msgid "Progress title"
+msgstr "Перебіг: Генерація файлу PDF"
+
+#: aleksis/core/models.py:1265
+msgid "Error message"
+msgstr ""
+
+#: aleksis/core/models.py:1266
+#, fuzzy
+#| msgid "Success!"
+msgid "Success message"
+msgstr "Успіх!"
+
+#: aleksis/core/models.py:1267
+#, fuzzy
+#| msgid "Redirect URIs"
+msgid "Redirect on success URL"
+msgstr "Перенаправлення URI-адрес"
+
+#: aleksis/core/models.py:1269
+#, fuzzy
+#| msgid "Additional attributes"
+msgid "Additional button title"
+msgstr "Додаткові атрибути"
+
+#: aleksis/core/models.py:1271
+#, fuzzy
+#| msgid "Additional data"
+msgid "Additional button URL"
+msgstr "Додаткові дані"
+
+#: aleksis/core/models.py:1273
+#, fuzzy
+#| msgid "Additional attributes"
+msgid "Additional button icon"
+msgstr "Додаткові атрибути"
+
+#: aleksis/core/models.py:1275
+msgid "Result fetched"
+msgstr ""
+
+#: aleksis/core/models.py:1300
+#, fuzzy
+#| msgid "ICal feed deleted successfully"
+msgid "Background task completed successfully"
+msgstr "Стрічка iCal успішно видалена"
+
+#: aleksis/core/models.py:1301
+#, fuzzy
+#| msgid "The PDF file has been generated successfully."
+msgid "The background task '{}' has been completed successfully."
+msgstr "Файл PDF успішно створений."
+
+#: aleksis/core/models.py:1307
+msgid "Background task failed"
+msgstr ""
+
+#: aleksis/core/models.py:1308
+msgid "The background task '{}' has failed."
+msgstr ""
+
+#: aleksis/core/models.py:1317
+msgid "Background task"
+msgstr ""
+
+#: aleksis/core/models.py:1331
 msgid "Task user assignment"
 msgstr "Призначення користувача завдання"
 
-#: aleksis/core/models.py:1260 aleksis/core/models.py:1270
+#: aleksis/core/models.py:1332
 msgid "Task user assignments"
 msgstr "Призначення користувачів завдання"
 
-#: aleksis/core/models.py:1276 aleksis/core/models.py:1286
+#: aleksis/core/models.py:1348
 msgid "Additional attributes"
 msgstr "Додаткові атрибути"
 
-#: aleksis/core/models.py:1314 aleksis/core/models.py:1324
+#: aleksis/core/models.py:1386
 msgid "Allowed scopes that clients can request"
 msgstr "Дозволені межі дії, які можуть запитувати клієнти"
 
-#: aleksis/core/models.py:1324 aleksis/core/models.py:1334
-msgid ""
-"This image will be shown as icon in the authorization flow. It should be "
-"squared."
-msgstr ""
-"Це зображення буде іконкою під час авторизації. Воно повинне бути квадратним."
-
-#: aleksis/core/models.py:1373 aleksis/core/models.py:1383
-msgid "UUID"
-msgstr "UUID"
+#: aleksis/core/models.py:1396
+msgid "This image will be shown as icon in the authorization flow. It should be squared."
+msgstr "Це зображення буде іконкою під час авторизації. Воно повинне бути квадратним."
 
-#: aleksis/core/models.py:1377 aleksis/core/models.py:1387
-msgid "Selected ICal feed"
-msgstr "Стрічка обраного iCal"
+#: aleksis/core/models.py:1441
+#, fuzzy
+#| msgid "Can view avatar image"
+msgid "Can view room timetable"
+msgstr "Може бачити аватар"
 
-#: aleksis/core/models.py:1386 aleksis/core/models.py:1396
-msgid "Personal Calendar URL"
-msgstr "URL-посилання особистого календаря"
+#: aleksis/core/models.py:1443
+msgid "Room"
+msgstr ""
 
-#: aleksis/core/models.py:1387 aleksis/core/models.py:1397
-msgid "Personal Calendar URLs"
-msgstr "URL-посилання особистих календарів"
+#: aleksis/core/models.py:1444
+msgid "Rooms"
+msgstr ""
 
 #: aleksis/core/preferences.py:25
 msgid "General"
@@ -1167,169 +1056,165 @@ msgstr "Формат імені у листуванні"
 msgid "Channels to use for notifications"
 msgstr "Канали для сповіщень"
 
-#: aleksis/core/preferences.py:209
+#: aleksis/core/preferences.py:208
+#, fuzzy
+#| msgid "Selected persons"
+msgid "Select Design"
+msgstr "Позначені особи"
+
+#: aleksis/core/preferences.py:211
+msgid "Light mode"
+msgstr ""
+
+#: aleksis/core/preferences.py:224
 msgid "Regular expression to match primary group, e.g. '^Class .*'"
 msgstr "Регулярний вираз для пошуку основної групи, напр. '^Class .*'"
 
-#: aleksis/core/preferences.py:220
+#: aleksis/core/preferences.py:235
 msgid "Field on person to match primary group against"
 msgstr "Поле щодо особи для співставлення з основною групою"
 
-#: aleksis/core/preferences.py:232
+#: aleksis/core/preferences.py:247
 msgid "Automatically create new persons for new users"
 msgstr "Нові особи для нових користувачів створювати автоматично"
 
-#: aleksis/core/preferences.py:241
-msgid ""
-"Automatically link existing persons to new users by their e-mail address"
-msgstr ""
-"Пов'язувати існуючих осіб з новими користувачами автоматично за ел.адресами"
+#: aleksis/core/preferences.py:256
+msgid "Automatically link existing persons to new users by their e-mail address"
+msgstr "Пов'язувати існуючих осіб з новими користувачами автоматично за ел.адресами"
 
-#: aleksis/core/preferences.py:252
+#: aleksis/core/preferences.py:267
 msgid "Display name of the school"
 msgstr "Назва школи / навч.закладу для відображення"
 
-#: aleksis/core/preferences.py:263
+#: aleksis/core/preferences.py:278
 msgid "Official name of the school, e.g. as given by supervisory authority"
 msgstr "Офіційна назва школи / навч.закладу, напр. як у державному свідоцтві"
 
-#: aleksis/core/preferences.py:271
+#: aleksis/core/preferences.py:286
 msgid "Allow users to change their passwords"
 msgstr "Дозволити користувачам змінювати свої паролі"
 
-#: aleksis/core/preferences.py:279
+#: aleksis/core/preferences.py:294
 msgid "Allow users to reset their passwords"
 msgstr "Дозволити користувачам скидати свої паролі"
 
-#: aleksis/core/preferences.py:287
+#: aleksis/core/preferences.py:302
 msgid "Enable signup"
 msgstr "Увімкнути реєстрацію"
 
-#: aleksis/core/preferences.py:295
+#: aleksis/core/preferences.py:310
 msgid "Regular expression for allowed usernames"
 msgstr "Регулярний вираз для дозволених логінів"
 
-#: aleksis/core/preferences.py:303
+#: aleksis/core/preferences.py:318
 msgid "Enable invitations"
 msgstr "Увімкнути запрошення"
 
-#: aleksis/core/preferences.py:311
+#: aleksis/core/preferences.py:326
 msgid "Length of invite code. (Default 3: abcde-acbde-abcde)"
 msgstr "Довжина запрошувального коду. (Типово 3: abcde-acbde-abcde)"
 
-#: aleksis/core/preferences.py:319
+#: aleksis/core/preferences.py:334
 msgid "Size of packets. (Default 5: abcde)"
 msgstr "Розмір пакетів. (Типово 5: abcde)"
 
-#: aleksis/core/preferences.py:330
+#: aleksis/core/preferences.py:345
 msgid "Allowed Grant Flows for OAuth applications"
 msgstr "Дозволені потоки грантів для додатків з OAuth"
 
-#: aleksis/core/preferences.py:344
-msgid "Available languages"
-msgstr "Доступні мови"
-
-#: aleksis/core/preferences.py:357 aleksis/core/preferences.py:343
+#: aleksis/core/preferences.py:358
 msgid "Send emails if data checks detect problems"
 msgstr "В разі виявлення проблем під час перевірки даних надіслати ел.лист"
 
-#: aleksis/core/preferences.py:368 aleksis/core/preferences.py:354
+#: aleksis/core/preferences.py:369
 msgid "Email recipients for data checks problem emails"
 msgstr "Ел.адреси отримувачів для листів з проблемами перевірки даних"
 
-#: aleksis/core/preferences.py:379 aleksis/core/preferences.py:365
+#: aleksis/core/preferences.py:380
 msgid "Email recipient groups for data checks problem emails"
 msgstr "Ел.адреси груп для листів з проблемами перевірки даних"
 
-#: aleksis/core/preferences.py:388 aleksis/core/preferences.py:374
+#: aleksis/core/preferences.py:389
 msgid "Show dashboard to users without login"
 msgstr "Відображати інформпанель анонімним користувачам"
 
-#: aleksis/core/preferences.py:397 aleksis/core/preferences.py:383
+#: aleksis/core/preferences.py:398
 msgid "Allow users to edit their dashboard"
 msgstr "Дозволити користувачам редагувати свою інформпанель"
 
-#: aleksis/core/preferences.py:408 aleksis/core/preferences.py:394
+#: aleksis/core/preferences.py:409
 msgid "Fields on person model which are editable by themselves."
 msgstr "Поля з описом особи, які можна редагувати самостійно."
 
-#: aleksis/core/preferences.py:423 aleksis/core/preferences.py:409
-msgid ""
-"Editable fields on person model which should trigger a notification on change"
+#: aleksis/core/preferences.py:424
+msgid "Editable fields on person model which should trigger a notification on change"
 msgstr "Змінювані поля з описом особи, які повинні сповіщати щодо редагування"
 
-#: aleksis/core/preferences.py:437 aleksis/core/preferences.py:423
+#: aleksis/core/preferences.py:438
 msgid "Contact for notification if a person changes their data"
 msgstr "Контакт для сповіщень, якщо хтось змінює свої дані"
 
-#: aleksis/core/preferences.py:448 aleksis/core/preferences.py:434
+#: aleksis/core/preferences.py:449
 msgid "Prefer personal photos over avatars"
 msgstr "Віддавати перевагу особистим фото замість аватарів"
 
-#: aleksis/core/preferences.py:458 aleksis/core/preferences.py:444
+#: aleksis/core/preferences.py:459
 msgid "PDF file expiration duration"
 msgstr "Термін придатності файла PDF"
 
-#: aleksis/core/preferences.py:459 aleksis/core/preferences.py:445
+#: aleksis/core/preferences.py:460
 msgid "in minutes"
 msgstr "у хвилинах"
 
-#: aleksis/core/preferences.py:469 aleksis/core/preferences.py:455
+#: aleksis/core/preferences.py:470
 msgid "Automatically update the dashboard and its widgets"
 msgstr "Автоматично оновлювати інформпанель та її віджети"
 
-#: aleksis/core/preferences.py:479 aleksis/core/preferences.py:465
+#: aleksis/core/preferences.py:480
 msgid "Automatically update the dashboard and its widgets sitewide"
 msgstr "Автоматично оновлювати інформпанель та її віджети (для всього сайту)"
 
-#: aleksis/core/preferences.py:489 aleksis/core/preferences.py:475
+#: aleksis/core/preferences.py:490
 msgid "Country for phone number parsing"
 msgstr "Країна для розбору номера телефона"
 
-#: aleksis/core/settings.py:540 aleksis/core/settings.py:541
+#: aleksis/core/settings.py:539
 msgid "English"
 msgstr "Англійська"
 
-#: aleksis/core/settings.py:541 aleksis/core/settings.py:542
+#: aleksis/core/settings.py:540
 msgid "German"
 msgstr "Німецька"
 
-#: aleksis/core/tables.py:24
+#: aleksis/core/settings.py:541
+msgid "Ukrainian"
+msgstr "Українська"
+
+#: aleksis/core/tables.py:25
 #: aleksis/core/templates/core/announcement/list.html:36
-#: aleksis/core/templates/core/group/full.html:24
-#: aleksis/core/templates/core/person/full.html:26
-#: aleksis/core/templates/core/person/full.html:86
+#: aleksis/core/templates/core/group/full.html:26
 #: aleksis/core/templates/oauth2_provider/application/detail.html:17
-#: aleksis/core/tables.py:25 aleksis/core/templates/core/group/full.html:26
 msgid "Edit"
 msgstr "Редагувати"
 
-#: aleksis/core/tables.py:26 aleksis/core/tables.py:94
-#: aleksis/core/tables.py:138
-#: aleksis/core/templates/core/announcement/list.html:22
 #: aleksis/core/tables.py:27 aleksis/core/tables.py:148
 #: aleksis/core/tables.py:192
+#: aleksis/core/templates/core/announcement/list.html:22
 msgid "Actions"
 msgstr "Дії"
 
-#: aleksis/core/tables.py:61 aleksis/core/tables.py:62
-#: aleksis/core/tables.py:76 aleksis/core/tables.py:92
-#: aleksis/core/tables.py:136
+#: aleksis/core/tables.py:115 aleksis/core/tables.py:116
+#: aleksis/core/tables.py:130 aleksis/core/tables.py:146
+#: aleksis/core/tables.py:190
 #: aleksis/core/templates/core/announcement/list.html:42
-#: aleksis/core/templates/core/group/full.html:31
+#: aleksis/core/templates/core/group/full.html:33
 #: aleksis/core/templates/core/pages/delete.html:22
-#: aleksis/core/templates/core/person/full.html:33
-#: aleksis/core/templates/core/person/full.html:93
 #: aleksis/core/templates/oauth2_provider/application/detail.html:21
-#: aleksis/core/tables.py:115 aleksis/core/tables.py:116
-#: aleksis/core/tables.py:130 aleksis/core/tables.py:146
-#: aleksis/core/tables.py:190 aleksis/core/templates/core/group/full.html:33
 msgid "Delete"
 msgstr "Видалити"
 
 #: aleksis/core/templates/403.html:14 aleksis/core/templates/500.html:10
 #: aleksis/core/templates/oauth2_provider/authorize.html:54
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:24
 msgid "Error"
 msgstr "Помилка"
 
@@ -1344,8 +1229,7 @@ msgstr ""
 #: aleksis/core/templates/403.html:19 aleksis/core/templates/404.html:16
 msgid ""
 "\n"
-"            If you think this is an error in AlekSIS, please contact your "
-"site\n"
+"            If you think this is an error in AlekSIS, please contact your site\n"
 "            administrators:\n"
 "          "
 msgstr ""
@@ -1369,7 +1253,7 @@ msgstr ""
 #: aleksis/core/templates/500.html:10
 msgid ""
 "An unexpected error has\n"
-"          occured."
+"          occurred."
 msgstr ""
 "Сталася неочікувана\n"
 "          помилка."
@@ -1377,14 +1261,12 @@ msgstr ""
 #: aleksis/core/templates/500.html:13
 msgid ""
 "\n"
-"            Your site administrators will automatically be notified about "
-"this\n"
+"            Your site administrators will automatically be notified about this\n"
 "            error. You can also contact them directly:\n"
 "          "
 msgstr ""
 "\n"
-"            Адміністратори сайту будуть сповіщені щодо цієї помилки "
-"автоматично.\n"
+"            Адміністратори сайту будуть сповіщені щодо цієї помилки автоматично.\n"
 "            Ви також можете звернутися до них безпосередньо:\n"
 "          "
 
@@ -1403,13 +1285,11 @@ msgstr ""
 #: aleksis/core/templates/503.html:13
 msgid ""
 "\n"
-"            This page is currently unavailable. If this error persists, "
-"contact your site administrators:\n"
+"            This page is currently unavailable. If this error persists, contact your site administrators:\n"
 "          "
 msgstr ""
 "\n"
-"            Ця сторінка наразі недоступна. Якщо ця помилка виникне знову, "
-"зверніться до адміністраторів сайту:\n"
+"            Ця сторінка наразі недоступна. Якщо ця помилка виникне знову, зверніться до адміністраторів сайту:\n"
 "          "
 
 #: aleksis/core/templates/account/account_inactive.html:5
@@ -1450,22 +1330,24 @@ msgstr "Підтвердити"
 
 #: 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 ""
-"Підтвердіть, будь ласка, що <a href=\"mailto:%(email)s\">%(email)s</a> є "
-"адресою ел.пошти для користувача %(user_display)s."
+msgid "Please confirm that <a href=\"mailto:%(email)s\">%(email)s</a> is an e-mail address for user %(user_display)s."
+msgstr "Підтвердіть, будь ласка, що <a href=\"mailto:%(email)s\">%(email)s</a> є адресою ел.пошти для користувача %(user_display)s."
 
 #: 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 ""
-"Це посилання для підтвердження ел.пошти протерміноване або недійсне. "
-"Зробіть, будь ласка, для підтвердження <a href=\"%(email_url)s\">новий "
-"запит</a>."
+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 "Це посилання для підтвердження ел.пошти протерміноване або недійсне. Зробіть, будь ласка, для підтвердження <a href=\"%(email_url)s\">новий запит</a>."
+
+#: aleksis/core/templates/account/password_change.html:5
+#: aleksis/core/templates/account/password_change.html:6
+#: aleksis/core/templates/account/password_change.html:19
+#: aleksis/core/templates/account/password_reset_from_key.html:5
+#: aleksis/core/templates/account/password_reset_from_key.html:42
+#: aleksis/core/templates/account/password_reset_from_key.html:46
+#: aleksis/core/templates/account/password_reset_from_key_done.html:5
+#: aleksis/core/templates/account/password_reset_from_key_done.html:6
+msgid "Change password"
+msgstr "Змінити пароль"
 
 #: aleksis/core/templates/account/password_change.html:12
 msgid "Forgot your current password? Click here to reset it:"
@@ -1488,14 +1370,12 @@ msgstr "Зміна паролю вимкнена."
 msgid ""
 "\n"
 "            Users are not allowed to edit their own passwords. If you think\n"
-"            this is an error please contact one of your site "
-"administrators.\n"
+"            this is an error please contact one of your site administrators.\n"
 "          "
 msgstr ""
 "\n"
 "            Користувачам не дозволяється змінювати свої паролі.\n"
-"            Якщо Ви думаєте, що це помилка, зверніться до адміністраторів "
-"сайту.\n"
+"            Якщо Ви думаєте, що це помилка, зверніться до адміністраторів сайту.\n"
 "          "
 
 #: aleksis/core/templates/account/password_reset.html:5
@@ -1509,12 +1389,8 @@ msgid "Reset password"
 msgstr "Скинути пароль"
 
 #: 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 ""
-"Забули пароль? Вкажіть нижче свою ел.пошту і ми надішлемо Вам листа для "
-"скидання пароля."
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr "Забули пароль? Вкажіть нижче свою ел.пошту і ми надішлемо Вам листа для скидання пароля."
 
 #: aleksis/core/templates/account/password_reset.html:30
 msgid ""
@@ -1538,8 +1414,7 @@ msgid ""
 msgstr ""
 "\n"
 "            Ми надіслали Вам ел.листа. Якщо Ви його не отримаєте протягом\n"
-"            декількох хвилин, зверніться, будь ласка, до адміністраторів "
-"сайту.\n"
+"            декількох хвилин, зверніться, будь ласка, до адміністраторів сайту.\n"
 "          "
 
 #: aleksis/core/templates/account/password_reset_from_key.html:15
@@ -1550,16 +1425,13 @@ msgstr "Несправний токен"
 #, python-format
 msgid ""
 "\n"
-"              The password reset link was invalid, possibly because it has "
-"already been used. Please request a <a href=\"%(passwd_reset_url)s\"\n"
+"              The password reset link was invalid, possibly because it has already been used. Please request a <a href=\"%(passwd_reset_url)s\"\n"
 "              class=\"blue-text text-lighten-2\">new password reset</a>.\n"
 "            "
 msgstr ""
 "\n"
-"              Посилання на скидання пароля недійсне або, ймовірно, вже "
-"використане. Зробіть, будь ласка, <a href=\"%(passwd_reset_url)s\"\n"
-"              class=\"blue-text text-lighten-2\">новий запит на скидання "
-"пароля</a>.\n"
+"              Посилання на скидання пароля недійсне або, ймовірно, вже використане. Зробіть, будь ласка, <a href=\"%(passwd_reset_url)s\"\n"
+"              class=\"blue-text text-lighten-2\">новий запит на скидання пароля</a>.\n"
 "            "
 
 #: aleksis/core/templates/account/password_reset_from_key.html:25
@@ -1608,10 +1480,13 @@ msgstr "Реєстрація"
 
 #: 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 ""
-"Вже маєте обліковий запис? Тоді можете <a href=\"%(login_url)s\">увіти</a>."
+msgid "Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>."
+msgstr "Вже маєте обліковий запис? Тоді можете <a href=\"%(login_url)s\">увіти</a>."
+
+#: aleksis/core/templates/account/signup.html:22
+#: aleksis/core/templates/socialaccount/signup.html:23
+msgid "Sign up"
+msgstr "Зареєструватися"
 
 #: aleksis/core/templates/account/signup_closed.html:5
 #: aleksis/core/templates/account/signup_closed.html:6
@@ -1650,17 +1525,13 @@ msgstr "Перевірте свою ел.пошту!"
 #: aleksis/core/templates/account/verification_sent.html:16
 msgid ""
 "\n"
-"            This part of the site requires us to verify that you are who you "
-"claim to be.\n"
-"            For this purpose, we require that you verify ownership of your e-"
-"mail address.\n"
+"            This part of the site requires us to verify that you are who you claim to be.\n"
+"            For this purpose, we require that you verify ownership of your e-mail address.\n"
 "          "
 msgstr ""
 "\n"
-"            Ця частина сайту вимагає перевірки, що Ви - саме той/та, хто має "
-"бути.\n"
-"            Саме для цього нам необхідно перевірити, що адреса ел.пошти "
-"належить саме Вам.\n"
+"            Ця частина сайту вимагає перевірки, що Ви - саме той/та, хто має бути.\n"
+"            Саме для цього нам необхідно перевірити, що адреса ел.пошти належить саме Вам.\n"
 "          "
 
 #: aleksis/core/templates/account/verification_sent.html:22
@@ -1673,10 +1544,8 @@ msgid ""
 msgstr ""
 "\n"
 "            Ми надіслали Вам для перевірки ел.листа.\n"
-"            Будь ласка, перейдіть за вказаним там посиланням. Якщо Ви не "
-"отримаєте\n"
-"            листа протягом декількох хвилин, зверніться, будь ласка, до "
-"нас.\n"
+"            Будь ласка, перейдіть за вказаним там посиланням. Якщо Ви не отримаєте\n"
+"            листа протягом декількох хвилин, зверніться, будь ласка, до нас.\n"
 "          "
 
 #: aleksis/core/templates/core/additional_field/edit.html:6
@@ -1722,18 +1591,6 @@ msgstr "Отримувачі"
 msgid "There are no announcements."
 msgstr "Оголошень немає."
 
-#: aleksis/core/templates/core/base.html:213
-msgid "About AlekSIS® — The Free School Information System"
-msgstr "Щодо AlekSIS® — The Free School Information System"
-
-#: aleksis/core/templates/core/base.html:221
-msgid "Imprint"
-msgstr "Відбиток"
-
-#: aleksis/core/templates/core/base.html:229
-msgid "Privacy Policy"
-msgstr "Політика приватності"
-
 #: aleksis/core/templates/core/base_print.html:74
 msgid "Powered by AlekSIS®"
 msgstr "Базується на AlekSIS®"
@@ -1767,6 +1624,11 @@ msgstr ""
 msgid "Edit %(widget)s"
 msgstr "Редагувати %(widget)s"
 
+#: aleksis/core/templates/core/dashboard_widget/list.html:8
+#: aleksis/core/templates/core/dashboard_widget/list.html:9
+msgid "Dashboard widgets"
+msgstr "Віджети інформпанелі"
+
 #: aleksis/core/templates/core/dashboard_widget/list.html:15
 msgid "Create dashboard widget"
 msgstr "Створити віджет для інформпанелі"
@@ -1782,6 +1644,11 @@ msgstr "Створити %(name)s"
 msgid "Edit default dashboard"
 msgstr "Редагувати типову/стандартну інформпанель"
 
+#: aleksis/core/templates/core/data_check/list.html:9
+#: aleksis/core/templates/core/data_check/list.html:10
+msgid "Data checks"
+msgstr "Перевірки даних"
+
 #: aleksis/core/templates/core/data_check/list.html:15
 msgid "Check data again"
 msgstr "Перевірити дані ще раз"
@@ -1853,39 +1720,29 @@ msgstr "Редагувати інформпанель"
 #: aleksis/core/templates/core/edit_dashboard.html:24
 msgid ""
 "\n"
-"          On this page you can arrange your personal dashboard. You can drag "
-"any items from \"Available widgets\" to \"Your\n"
-"          Dashboard\" or change the order by moving the widgets. After you "
-"have finished, please don't forget to click on\n"
+"          On this page you can arrange your personal dashboard. You can drag any items from \"Available widgets\" to \"Your\n"
+"          Dashboard\" or change the order by moving the widgets. After you have finished, please don't forget to click on\n"
 "          \"Save\".\n"
 "        "
 msgstr ""
 "\n"
-"          На цій сторінці Ви можете впорядкувати свою інформпанель. "
-"Перетягуйте будь-які елементи з \"Доступних віджетів\"\n"
-"          до \"Своєї інформпанелі\" або змінюйте порядок, перетягуючи "
-"віджети. Після закінчення не забудьте натиснути\n"
+"          На цій сторінці Ви можете впорядкувати свою інформпанель. Перетягуйте будь-які елементи з \"Доступних віджетів\"\n"
+"          до \"Своєї інформпанелі\" або змінюйте порядок, перетягуючи віджети. Після закінчення не забудьте натиснути\n"
 "          \"Зберегти\".\n"
 "        "
 
 #: aleksis/core/templates/core/edit_dashboard.html:30
 msgid ""
 "\n"
-"          On this page you can arrange the default dashboard which is shown "
-"when a user doesn't arrange his own\n"
-"          dashboard. You can drag any items from \"Available widgets\" to "
-"\"Default Dashboard\" or change the order\n"
-"          by moving the widgets. After you have finished, please don't "
-"forget to click on \"Save\".\n"
+"          On this page you can arrange the default dashboard which is shown when a user doesn't arrange his own\n"
+"          dashboard. You can drag any items from \"Available widgets\" to \"Default Dashboard\" or change the order\n"
+"          by moving the widgets. After you have finished, please don't forget to click on \"Save\".\n"
 "        "
 msgstr ""
 "\n"
-"          На цій сторінці Ви можете впорядкувати типову/стандартну "
-"інформпанель, яка відображається, якщо користувач\n"
-"          не впорядкував власну. Перетягуйте будь-які елементи з \"Доступних "
-"віджетів\" до \"Типової інформпанелі\" або змінюйте \n"
-"          порядок, перетягуючи віджети. Після закінчення не забудьте "
-"натиснути \"Зберегти\".\n"
+"          На цій сторінці Ви можете впорядкувати типову/стандартну інформпанель, яка відображається, якщо користувач\n"
+"          не впорядкував власну. Перетягуйте будь-які елементи з \"Доступних віджетів\" до \"Типової інформпанелі\" або змінюйте \n"
+"          порядок, перетягуючи віджети. Після закінчення не забудьте натиснути \"Зберегти\".\n"
 "        "
 
 #: aleksis/core/templates/core/edit_dashboard.html:48
@@ -1900,19 +1757,21 @@ msgstr "Ваша інформпанель"
 msgid "Default dashboard"
 msgstr "Типова інформпанель"
 
+#: aleksis/core/templates/core/group/child_groups.html:7
+#: aleksis/core/templates/core/group/child_groups.html:9
+msgid "Assign child groups to groups"
+msgstr "Призначити підлеглі групи до груп"
+
 #: aleksis/core/templates/core/group/child_groups.html:18
 msgid ""
 "\n"
-"          You can use this to assign child groups to groups. Please use the "
-"filters below to select groups you want to\n"
+"          You can use this to assign child groups to groups. Please use the filters below to select groups you want to\n"
 "          change and click \"Next\".\n"
 "        "
 msgstr ""
 "\n"
-"          Ви можете скористатися цим для призначення підлеглих груп до "
-"основних. Для обрання груп,\n"
-"          які хочете змінити, скористайтеся, будь ласка, фільтрами, що нижче "
-"та натисність \"Далі\".\n"
+"          Ви можете скористатися цим для призначення підлеглих груп до основних. Для обрання груп,\n"
+"          які хочете змінити, скористайтеся, будь ласка, фільтрами, що нижче та натисність \"Далі\".\n"
 "        "
 
 #: aleksis/core/templates/core/group/child_groups.html:31
@@ -1938,8 +1797,7 @@ msgid ""
 "          "
 msgstr ""
 "\n"
-"            Оберіть, будь ласка, декілька груп у порядку, за яким "
-"призначати.\n"
+"            Оберіть, будь ласка, декілька груп у порядку, за яким призначати.\n"
 "          "
 
 #: aleksis/core/templates/core/group/child_groups.html:72
@@ -1953,18 +1811,14 @@ msgstr "Обережно, будь ласка!"
 #: aleksis/core/templates/core/group/child_groups.html:79
 msgid ""
 "\n"
-"            If you click \"Back\" or \"Next\" the current group assignments "
-"are not saved.\n"
-"            If you click \"Save\", you will overwrite all existing child "
-"group relations for this group with what you\n"
+"            If you click \"Back\" or \"Next\" the current group assignments are not saved.\n"
+"            If you click \"Save\", you will overwrite all existing child group relations for this group with what you\n"
 "            selected on this page.\n"
 "          "
 msgstr ""
 "\n"
-"            Якщо натиснете \"Назад\" або \"Далі\" призначення цієї групи не "
-"збережуться.\n"
-"            Якщо натиснете \"Зберегти\", усі існуючі зв'язки підлеглої групи "
-"з цією групою будуть замінені на\n"
+"            Якщо натиснете \"Назад\" або \"Далі\" призначення цієї групи не збережуться.\n"
+"            Якщо натиснете \"Зберегти\", усі існуючі зв'язки підлеглої групи з цією групою будуть замінені на\n"
 "            обрані на цій сторінці.\n"
 "          "
 
@@ -1998,40 +1852,36 @@ msgstr "Зберегти і йти далі"
 msgid "Edit group"
 msgstr "Редагувати групу"
 
-#: aleksis/core/templates/core/group/full.html:38
-#: aleksis/core/templates/core/person/full.html:40
-#: aleksis/core/templates/core/person/full.html:100
 #: aleksis/core/templates/core/group/full.html:40
 msgid "Change preferences"
 msgstr "Змінити властивості"
 
-#: aleksis/core/templates/core/group/full.html:64
 #: aleksis/core/templates/core/group/full.html:68
 msgid "Statistics"
 msgstr "Статистика"
 
-#: aleksis/core/templates/core/group/full.html:67
 #: aleksis/core/templates/core/group/full.html:73
 msgid "Count of members"
 msgstr "Кількість учасників"
 
-#: aleksis/core/templates/core/group/full.html:71
 #: aleksis/core/templates/core/group/full.html:81
 msgid "Average age"
 msgstr "Середній вік"
 
-#: aleksis/core/templates/core/group/full.html:76
 #: aleksis/core/templates/core/group/full.html:90
 msgid "Age range"
 msgstr "Віковий діапазон"
 
-#: aleksis/core/templates/core/group/full.html:76
-msgid "years to"
-msgstr "–"
-
-#: aleksis/core/templates/core/group/full.html:76
-msgid "years "
-msgstr "рр. "
+#: aleksis/core/templates/core/group/full.html:93
+#, python-format
+msgid ""
+"\n"
+"              %(min)s years to %(max)s years\n"
+"            "
+msgstr ""
+"\n"
+"              %(min)s років до %(max)s років\n"
+"            "
 
 #: aleksis/core/templates/core/group/list.html:14
 msgid "Create group"
@@ -2059,184 +1909,30 @@ msgstr "Редагувати тип групи"
 msgid "Create group type"
 msgstr "Створити тип групи"
 
-#: aleksis/core/templates/core/ical/ical_create.html:4
-#: aleksis/core/templates/core/ical/ical_create.html:5
-#: aleksis/core/templates/core/ical/ical_list.html:12
-msgid "Create iCal URL"
-msgstr "Створити посилання iCal"
-
-#: aleksis/core/templates/core/ical/ical_create.html:16
-#: aleksis/core/templates/core/ical/ical_edit.html:16
-#: aleksis/core/templates/oauth2_provider/application/create.html:14
-#: aleksis/core/templates/oauth2_provider/application/edit.html:14
-#: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:24
-#: aleksis/core/templates/two_factor/_wizard_actions.html:6
-msgid "Cancel"
-msgstr "Скасувати"
-
-#: aleksis/core/templates/core/ical/ical_edit.html:4
-#: aleksis/core/templates/core/ical/ical_edit.html:5
-#, python-format
-msgid "Edit iCal URL %(object)s"
-msgstr "Редагувати посилання iCal %(object)s"
-
-#: aleksis/core/templates/core/ical/ical_list.html:4
-#: aleksis/core/templates/core/ical/ical_list.html:5
-msgid "ICal Feeds"
-msgstr "iCal-стрічки"
-
-#: aleksis/core/templates/core/ical/ical_list.html:8
-msgid ""
-"These are URLs for different Calendar Feeds in the iCal (.ics) format. You "
-"can create as many as you want and import them in your calendar software."
-msgstr ""
-"Тут містяться посилання на різні стрічки календарів у форматі iCal (.ics). "
-"Ви можете створити їх стільки, скільки Вам необхідно та імпортувати їх у ПЗ "
-"для роботи з календарями."
-
-#: aleksis/core/templates/core/ical/ical_list.html:14
-msgid "Your iCal URLs"
-msgstr "Ваші посилання iCal"
-
 #: aleksis/core/templates/core/index.html:4
 msgid "Home"
 msgstr "Додому"
 
-#: aleksis/core/templates/core/index.html:49
+#: aleksis/core/templates/core/index.html:34
 msgid ""
 "\n"
-"        You didn't customise your dashboard so that you see the system "
-"default. Please click on \"Edit dashboard\" to\n"
+"        You didn't customise your dashboard so that you see the system default. Please click on \"Edit dashboard\" to\n"
 "        customise your personal dashboard.\n"
 "      "
 msgstr ""
 "\n"
-"        Ви ще не налаштували свою інформпанель, тож поки що бачите типову/"
-"стандартну. Для налаштування \n"
+"        Ви ще не налаштували свою інформпанель, тож поки що бачите типову/стандартну. Для налаштування \n"
 "         власної інформпанелі клацніть \"Редагувати інформпанель\".\n"
 "      "
 
-#: aleksis/core/templates/core/index.html:59
+#: aleksis/core/templates/core/index.html:44
 msgid "Last activities"
 msgstr "Останні дії"
 
-#: aleksis/core/templates/core/index.html:77
+#: aleksis/core/templates/core/index.html:62
 msgid "No activities available yet."
 msgstr "Дії поки що не доступні."
 
-#: aleksis/core/templates/core/index.html:82
-msgid "Recent notifications"
-msgstr "Свіжі сповіщення"
-
-#: aleksis/core/templates/core/index.html:98
-#: aleksis/core/templates/core/notifications.html:23
-msgid "More information →"
-msgstr "Більше інформації →"
-
-#: aleksis/core/templates/core/index.html:105
-#: aleksis/core/templates/core/notifications.html:30
-msgid "No notifications available yet."
-msgstr "Сповіщення поки що не доступні."
-
-#: aleksis/core/templates/core/pages/about.html:6
-msgid "About AlekSIS®"
-msgstr "Щодо AlekSIS®"
-
-#: aleksis/core/templates/core/pages/about.html:7
-msgid "AlekSIS® – The Free School Information System"
-msgstr "AlekSIS® – The Free School Information System"
-
-#: aleksis/core/templates/core/pages/about.html:15
-msgid "About AlekSIS"
-msgstr "Щодо AlekSIS"
-
-#: aleksis/core/templates/core/pages/about.html:17
-msgid ""
-"\n"
-"              This platform is powered by AlekSIS®, a web-based school "
-"information system (SIS) which can be used\n"
-"              to manage and/or publish organisational artifacts of "
-"educational institutions. AlekSIS is free software and\n"
-"              can be used by anyone.\n"
-"            "
-msgstr ""
-"\n"
-"              Ця платформа базується на AlekSIS®, веб-інструменті "
-"інформаційної системи для навчання (SIS) за допомогою якої\n"
-"              можна керувати та/або висвітлювати організаційні елементи "
-"навчальних закладів. AlekSIS - безплатне ПЗ\n"
-"              і ним може користуватися будь-хто.\n"
-"            "
-
-#: aleksis/core/templates/core/pages/about.html:24
-msgid ""
-"\n"
-"              AlekSIS® is a registered trademark of the AlekSIS open source "
-"project, represented by Teckids e.V.\n"
-"            "
-msgstr ""
-"\n"
-"              AlekSIS® – зареєстрована торгова марка проекту з відкритим "
-"програмним кодом AlekSIS, що представлена Teckids e.V.\n"
-"            "
-
-#: aleksis/core/templates/core/pages/about.html:30
-msgid "Website of AlekSIS"
-msgstr "Веб-сайт AlekSIS"
-
-#: aleksis/core/templates/core/pages/about.html:31
-msgid "Source code"
-msgstr "Програмний код"
-
-#: aleksis/core/templates/core/pages/about.html:40
-msgid "Licence information"
-msgstr "Ліцензійна інформація"
-
-#: aleksis/core/templates/core/pages/about.html:42
-msgid ""
-"\n"
-"              The core and the official apps of AlekSIS are licenced under "
-"the EUPL, version 1.2 or later. For licence\n"
-"              information from third-party apps, if installed, refer to the "
-"respective components below. The\n"
-"              licences are marked like this:\n"
-"            "
-msgstr ""
-"\n"
-"              Ядро та офіційні додатки AlekSIS ліцензовані EUPL, версії 1.2 "
-"та новіше. Для отримання інформації\n"
-"              щодо додатків третіх сторін, якщо такі встановлені, перейдіть "
-"до відповідних компонентів нижче.\n"
-"              Ці ліцензії мають таку позначку:\n"
-"            "
-
-#: aleksis/core/templates/core/pages/about.html:50
-msgid "Free/Open Source Licence"
-msgstr "Безкоштовна або Ліцензія Відкритого Коду (Open Source)"
-
-#: aleksis/core/templates/core/pages/about.html:51
-msgid "Other Licence"
-msgstr "Інша ліцензія"
-
-#: aleksis/core/templates/core/pages/about.html:55
-msgid "Full licence text"
-msgstr "Повний текст ліцензії"
-
-#: aleksis/core/templates/core/pages/about.html:56
-msgid "More information about the EUPL"
-msgstr "Більше інформації щодо EUPL"
-
-#: aleksis/core/templates/core/pages/about.html:95
-#, python-format
-msgid ""
-"\n"
-"                    This app is licenced under %(licence)s.\n"
-"                  "
-msgstr ""
-"\n"
-"                    Цей додаток ліцензований під %(licence)s.\n"
-"                  "
-
 #: aleksis/core/templates/core/pages/delete.html:6
 #, python-format
 msgid "Delete %(object_name)s"
@@ -2253,22 +1949,10 @@ msgstr ""
 "      Ви дійно хочете видалити %(object_name)s \"%(object)s\"?\n"
 "    "
 
-#: aleksis/core/templates/core/pages/progress.html:27
-msgid ""
-"\n"
-"              Without activated JavaScript the progress status can't be "
-"updated.\n"
-"            "
-msgstr ""
-"\n"
-"              Без активованого JavaScript статус виконання не зможе "
-"оновлюватися.\n"
-"            "
-
-#: aleksis/core/templates/core/pages/progress.html:47
-#: aleksis/core/templates/two_factor/core/otp_required.html:19
-msgid "Go back"
-msgstr "Назад"
+#: aleksis/core/templates/core/pages/system_status.html:5
+#: aleksis/core/templates/core/pages/system_status.html:7
+msgid "System status"
+msgstr "Стан системи"
 
 #: aleksis/core/templates/core/pages/system_status.html:12
 msgid "System checks"
@@ -2281,13 +1965,11 @@ msgstr "Активований режим обслуговування"
 #: aleksis/core/templates/core/pages/system_status.html:24
 msgid ""
 "\n"
-"                Only admin and visitors from internal IPs can access "
-"the site.\n"
+"                Only admin and visitors from internal IPs can access the site.\n"
 "              "
 msgstr ""
 "\n"
-"                Доступ до сайту мають лише адміністратор та відвідувачі з "
-"внутрішніми IP-адресами.\n"
+"                Доступ до сайту мають лише адміністратор та відвідувачі з внутрішніми IP-адресами.\n"
 "              "
 
 #: aleksis/core/templates/core/pages/system_status.html:36
@@ -2305,13 +1987,11 @@ msgstr "Активований режим налагодження"
 #: aleksis/core/templates/core/pages/system_status.html:49
 msgid ""
 "\n"
-"                The web server throws back debug information on errors. Do "
-"not use in production!\n"
+"                The web server throws back debug information on errors. Do not use in production!\n"
 "              "
 msgstr ""
 "\n"
-"                Веб-сервер кидає під час помилок інформацію щодо "
-"налагодження. Не використовуйте в продакшені!\n"
+"                Веб-сервер кидає під час помилок інформацію щодо налагодження. Не використовуйте в продакшені!\n"
 "              "
 
 #: aleksis/core/templates/core/pages/system_status.html:56
@@ -2321,13 +2001,11 @@ msgstr "Режим налагодження деактивований"
 #: aleksis/core/templates/core/pages/system_status.html:58
 msgid ""
 "\n"
-"                Debug mode is disabled. Default error pages are displayed on "
-"errors.\n"
+"                Debug mode is disabled. Default error pages are displayed on errors.\n"
 "              "
 msgstr ""
 "\n"
-"                Режим налагодження деактивований. В разі збоїв "
-"відображатимуться типові сторінки помилок.\n"
+"                Режим налагодження деактивований. В разі збоїв відображатимуться типові сторінки помилок.\n"
 "              "
 
 #: aleksis/core/templates/core/pages/system_status.html:71
@@ -2377,13 +2055,11 @@ msgstr "Спроба генерації PDF"
 #: aleksis/core/templates/core/pages/test_pdf.html:14
 msgid ""
 "\n"
-"        This simple view can be used to ensure the correct function of the "
-"built-in PDF generation system.\n"
+"        This simple view can be used to ensure the correct function of the built-in PDF generation system.\n"
 "      "
 msgstr ""
 "\n"
-"        Цей простий вигляд допоможе перевірити коректність налаштувань "
-"вбудованої системи генерації PDF.\n"
+"        Цей простий вигляд допоможе перевірити коректність налаштувань вбудованої системи генерації PDF.\n"
 "      "
 
 #: aleksis/core/templates/core/partials/announcements.html:8
@@ -2422,13 +2098,11 @@ msgstr ""
 
 #: aleksis/core/templates/core/partials/avatar_content.html:14
 #: aleksis/core/templates/core/partials/avatar_content.html:15
-#: aleksis/core/templates/core/person/full.html:213
-#: aleksis/core/templates/core/person/full.html:214
 msgid "Avatar"
 msgstr "Аватар"
 
+#: aleksis/core/templates/core/partials/avatar_content.html:18
 #: aleksis/core/templates/core/partials/avatar_content.html:19
-#: aleksis/core/templates/core/partials/avatar_content.html:20
 msgid "Identicon"
 msgstr "Ідентифікатор (іконка)"
 
@@ -2440,45 +2114,12 @@ msgstr "Змінене"
 msgid "Unknown"
 msgstr "Невідомо"
 
-#: aleksis/core/templates/core/partials/language_form.html:15
-#: aleksis/core/templates/core/partials/language_form.html:17
-msgid "Language"
-msgstr "Мова"
-
-#: aleksis/core/templates/core/partials/language_form.html:27
-#: aleksis/core/templates/core/partials/language_form.html:29
-msgid "Select language"
-msgstr "Оберіть мову"
-
-#: aleksis/core/templates/core/partials/no_person.html:12
+#: aleksis/core/templates/core/partials/splash_screen.html:11
 msgid ""
 "\n"
-"            Your administrator account is not linked to any person. "
-"Therefore,\n"
-"            a dummy person has been linked to your account.\n"
-"          "
-msgstr ""
-"\n"
-"            Ваш адміністративний обліковий запис не поєднаний з жодною "
-"особою. Через це\n"
-"            до Вашого облікового запису приєднана фейкова особа.\n"
-"          "
-
-#: aleksis/core/templates/core/partials/no_person.html:19
-msgid ""
-"\n"
-"            Your user account is not linked to a person. This means you\n"
-"            cannot access any school-related information. Please contact\n"
-"            the managers of AlekSIS at your school.\n"
-"          "
+"      This webbrowser doesn't support JavaScript, or its execution is blocked. Please use another browser to continue.\n"
+"    "
 msgstr ""
-"\n"
-"            Ваш обліковий запис не пов'язаний з фізособою. Це означає,\n"
-"            що Ви не маєте жодного доступу до навчальної інформації. "
-"Зверніться,\n"
-"            будь ласка, до адміністраторів AlekSIS у Вашому навчальному "
-"закладі.\n"
-"          "
 
 #: aleksis/core/templates/core/perms/assign.html:12
 #: aleksis/core/templates/core/perms/assign.html:13
@@ -2493,6 +2134,11 @@ msgstr "Обраний дозвіл"
 msgid "Assign"
 msgstr "Призначити"
 
+#: aleksis/core/templates/core/perms/list.html:13
+#: aleksis/core/templates/core/perms/list.html:14
+msgid "Manage permissions"
+msgstr "Керування дозволами"
+
 #: aleksis/core/templates/core/perms/list.html:21
 msgid "Assign a new permission"
 msgstr "Призначити новий дозвіл"
@@ -2536,28 +2182,6 @@ msgstr "Створити особу"
 msgid "Edit person"
 msgstr "Редагувати особу"
 
-#: aleksis/core/templates/core/person/full.html:47
-#: aleksis/core/templates/core/person/full.html:107
-msgid "Impersonate"
-msgstr "Маскування"
-
-#: aleksis/core/templates/core/person/full.html:54
-#: aleksis/core/templates/core/person/full.html:114
-msgid "Invite user"
-msgstr "Запросити користувача"
-
-#: aleksis/core/templates/core/person/full.html:121
-msgid "Contact details"
-msgstr "Контактні дані"
-
-#: aleksis/core/templates/core/person/full.html:220
-msgid "This person didn't upload a personal photo."
-msgstr "Ця особа не завантажила особисте фото."
-
-#: aleksis/core/templates/core/person/full.html:228
-msgid "Children"
-msgstr "Діти"
-
 #: aleksis/core/templates/core/person/list.html:21
 msgid "Filter persons"
 msgstr "Фільтр осіб"
@@ -2577,6 +2201,10 @@ msgstr "Створити Навчальний рік"
 msgid "Edit school term"
 msgstr "Редагувати Навчальний рік"
 
+#: aleksis/core/templates/dynamic_preferences/form.html:5
+msgid "Preferences"
+msgstr "Властивості"
+
 #: aleksis/core/templates/dynamic_preferences/form.html:9
 msgid "Site preferences"
 msgstr "Властивості сайту"
@@ -2603,15 +2231,17 @@ msgid "The invite feature is disabled."
 msgstr "Функція запрошення деактивована."
 
 #: aleksis/core/templates/invitations/disabled.html:15
-msgid ""
-"To enable it, switch on the corresponding checkbox in the authentication "
-"section of the "
+msgid "To enable it, switch on the corresponding checkbox in the authentication section of the "
 msgstr "Для активації увімкніть відповідний чекбокс в розділі авторизації на "
 
 #: aleksis/core/templates/invitations/disabled.html:16
 msgid "site preferences page"
 msgstr "сторінці властивостей сайту"
 
+#: aleksis/core/templates/invitations/enter.html:7
+msgid "Accept invitation"
+msgstr "Прийняти запрошення"
+
 #: aleksis/core/templates/invitations/enter.html:21
 msgid "Accept your invitation"
 msgstr "Прийняття Вашого запрошення"
@@ -2664,6 +2294,13 @@ msgstr "Запрошення для %(email)s було прийняте."
 msgid "Register OAuth2 Application"
 msgstr "Реєстрація додатку OAuth2"
 
+#: aleksis/core/templates/oauth2_provider/application/create.html:14
+#: aleksis/core/templates/oauth2_provider/application/edit.html:14
+#: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:24
+#: aleksis/core/templates/two_factor/_wizard_actions.html:6
+msgid "Cancel"
+msgstr "Скасувати"
+
 #: aleksis/core/templates/oauth2_provider/application/detail.html:5
 msgid "OAuth2 Application"
 msgstr "Додаток OAuth2"
@@ -2697,6 +2334,11 @@ msgstr "Пропустити авторизацію"
 msgid "Edit OAuth2 Application"
 msgstr "Редагувати додаток OAuth2"
 
+#: aleksis/core/templates/oauth2_provider/application/list.html:5
+#: aleksis/core/templates/oauth2_provider/application/list.html:6
+msgid "OAuth2 Applications"
+msgstr "Додатки OAuth2"
+
 #: aleksis/core/templates/oauth2_provider/application/list.html:11
 msgid "Register new application"
 msgstr "Зареєструвати новий додаток"
@@ -2728,14 +2370,6 @@ msgstr "Дозволити"
 msgid "Disallow"
 msgstr "Заборонити"
 
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:12
-msgid "Success!"
-msgstr "Успіх!"
-
-#: aleksis/core/templates/oauth2_provider/authorized-oob.html:14
-msgid "Please return to your application and enter this code:"
-msgstr "Поверніться, будь ласка, до свого додатку та впишіть цей код:"
-
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:5
 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:6
 #: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23
@@ -2750,6 +2384,11 @@ msgstr "Ви дійсно хочете відкликати доступ для
 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 applications."
 msgstr "Авторизованих додатків немає."
@@ -2759,24 +2398,27 @@ msgid "Network error"
 msgstr "Помилка мережі"
 
 #: aleksis/core/templates/offline.html:10
-msgid "No internet connection."
-msgstr "Немає інтернет-з'єднання."
+msgid "Page not available offline."
+msgstr ""
 
 #: aleksis/core/templates/offline.html:14
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      There was an error accessing this page. You probably don't have an internet connection. Check to see if your WiFi\n"
+#| "      or mobile data is turned on and try again. If you think you are connected, please contact the system\n"
+#| "      administrators:\n"
+#| "    "
 msgid ""
 "\n"
-"      There was an error accessing this page. You probably don't have an "
-"internet connection. Check to see if your WiFi\n"
-"      or mobile data is turned on and try again. If you think you are "
-"connected, please contact the system\n"
+"      This page is not available offline. Since you probably don't have an internet connection, check to see if your WiFi\n"
+"      or mobile data is turned on and try again. If you think you are connected, please contact the system\n"
 "      administrators:\n"
 "    "
 msgstr ""
 "\n"
-"      Під час доступу до цієї сторінки виникла помилка. Можливо, у Вас "
-"проблема з інтернетом. Переконайтеся, що Ваш WiFi\n"
-"      або мобільний інтернет увімкнені та спробуйте ще раз. Якщо Ви думаєте, "
-"що із з'єднанням все добре, зверніться\n"
+"      Під час доступу до цієї сторінки виникла помилка. Можливо, у Вас проблема з інтернетом. Переконайтеся, що Ваш WiFi\n"
+"      або мобільний інтернет увімкнені та спробуйте ще раз. Якщо Ви думаєте, що із з'єднанням все добре, зверніться\n"
 "      до системних адміністраторів:\n"
 "    "
 
@@ -2812,14 +2454,12 @@ msgstr "Помилка входу облікового запису третьо
 #: aleksis/core/templates/socialaccount/authentication_error.html:15
 msgid ""
 "\n"
-"            An error occurred while attempting to login via your third-party "
-"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"
-"            Під час спроби входу з Вашим стороннім обліковим записом виникла "
-"помилка входу.\n"
+"            Під час спроби входу з Вашим стороннім обліковим записом виникла помилка входу.\n"
 "            Зверніться, будь ласка, до адміністратора сайту.\n"
 "          "
 
@@ -2834,9 +2474,7 @@ msgstr "Видалити"
 
 #: aleksis/core/templates/socialaccount/connections.html:34
 msgid "You currently have no third-party accounts connected to this account."
-msgstr ""
-"Зараз у Вас немає облікових записів третіх сторін, з'єднаних з цим обліковим "
-"записом."
+msgstr "Зараз у Вас немає облікових записів третіх сторін, з'єднаних з цим обліковим записом."
 
 #: aleksis/core/templates/socialaccount/connections.html:37
 msgid "Add a Third-party Account"
@@ -2850,8 +2488,7 @@ msgstr "Ви приєднуєте новий обліковий запис тр
 #: aleksis/core/templates/socialaccount/login.html:23
 #, python-format
 msgid "You are about to sign in using a third party account from %(provider)s."
-msgstr ""
-"Ви авторизуєтеся за допомогою стороннього облікового запису від %(provider)s."
+msgstr "Ви авторизуєтеся за допомогою стороннього облікового запису від %(provider)s."
 
 #: aleksis/core/templates/socialaccount/login.html:28
 msgid "Continue"
@@ -2867,15 +2504,11 @@ msgstr "Вхід скасований"
 #, python-format
 msgid ""
 "\n"
-"            You decided to cancel logging in to our site using one of your "
-"existing accounts. If this was a mistake, please proceed to <a href="
-"\"%(login_url)s\">sign in</a>.\n"
+"            You decided to cancel logging in to our site using one of your existing accounts. If this was a mistake, please proceed to <a href=\"%(login_url)s\">sign in</a>.\n"
 "          "
 msgstr ""
 "\n"
-"            Схоже, що Ви скасували вхід до нашого сайту з одним із Ваших "
-"облікових записів. Якщо це сталося помилково, Ви можете <a href="
-"\"%(login_url)s\">продовжити вхід тут</a>.\n"
+"            Схоже, що Ви скасували вхід до нашого сайту з одним із Ваших облікових записів. Якщо це сталося помилково, Ви можете <a href=\"%(login_url)s\">продовжити вхід тут</a>.\n"
 "          "
 
 #: aleksis/core/templates/socialaccount/signup.html:12
@@ -2885,8 +2518,7 @@ msgid ""
 "        %(site_name)s. As a final step, please complete the following form:"
 msgstr ""
 "Ви на шляху до використання свого облікового запису у %(provider_name)s\n"
-"        для входу на %(site_name)s. Заповніть, будь ласка, для завершення цю "
-"форму:"
+"        для входу на %(site_name)s. Заповніть, будь ласка, для завершення цю форму:"
 
 #: aleksis/core/templates/socialaccount/snippets/provider_list.html:12
 #, python-format
@@ -2973,25 +2605,21 @@ msgstr "Система виявила деякі нові проблеми з В
 #: aleksis/core/templates/templated_email/data_checks.email:6
 msgid ""
 "the system detected some new problems with your data.\n"
-"Please take some time to inspect them and solve the issues or mark them as "
-"ignored."
+"Please take some time to inspect them and solve the issues or mark them as ignored."
 msgstr ""
 "система виявила деякі нові проблеми з Вашими даними.\n"
-"Приділіть, будь ласка, трохи часу для їх перевірки та вирішення проблем або "
-"позначте їх для ігнору."
+"Приділіть, будь ласка, трохи часу для їх перевірки та вирішення проблем або позначте їх для ігнору."
 
 #: aleksis/core/templates/templated_email/data_checks.email:15
 msgid ""
 "\n"
 "   the system detected some new problems with your data.\n"
-"   Please take some time to inspect them and solve the issues or mark them "
-"as ignored.\n"
+"   Please take some time to inspect them and solve the issues or mark them as ignored.\n"
 "  "
 msgstr ""
 "\n"
 "   система виявила деякі нові проблеми з Вашими даними.\n"
-"   Приділіть, будь ласка, трохи часу для їх перевірки та вирішення проблем "
-"або позначте їх для ігнору.\n"
+"   Приділіть, будь ласка, трохи часу для їх перевірки та вирішення проблем або позначте їх для ігнору.\n"
 "  "
 
 #: aleksis/core/templates/templated_email/data_checks.email:23
@@ -3077,22 +2705,16 @@ msgid ""
 "\n"
 "        Backup tokens can be used when your primary and backup\n"
 "        phone numbers aren't available. The backup tokens below can be used\n"
-"        for login verification. If you've used up all your backup tokens, "
-"you\n"
-"        can generate a new set of backup tokens. Only the backup tokens "
-"shown\n"
+"        for login verification. If you've used up all your backup tokens, you\n"
+"        can generate a new set of backup tokens. Only the backup tokens shown\n"
 "        below will be valid.\n"
 "      "
 msgstr ""
 "\n"
-"        Резервні токени можуть бути використані коли Ваші основний та "
-"резервний\n"
-"        телефонні номери не доступні. Резервні токени, що нижче, можуть бути "
-"використані\n"
-"        для перевірки на вході. Коли Ви використаєте усі резервні токени, "
-"Ви\n"
-"        зможете згенерувати новий набір резервних токенів. Дійсними будуть "
-"лише токени,\n"
+"        Резервні токени можуть бути використані коли Ваші основний та резервний\n"
+"        телефонні номери не доступні. Резервні токени, що нижче, можуть бути використані\n"
+"        для перевірки на вході. Коли Ви використаєте усі резервні токени, Ви\n"
+"        зможете згенерувати новий набір резервних токенів. Дійсними будуть лише токени,\n"
 "        що нижче.\n"
 "      "
 
@@ -3118,6 +2740,12 @@ msgstr "Назад до безпеки облікового запису"
 msgid "Generate Tokens"
 msgstr "Створити Токени"
 
+#: aleksis/core/templates/two_factor/core/login.html:6
+#: aleksis/core/templates/two_factor/core/login.html:32
+#: aleksis/core/templates/two_factor/core/login.html:95
+msgid "Login"
+msgstr "Увійти"
+
 #: aleksis/core/templates/two_factor/core/login.html:27
 #, python-format
 msgid "Login for %(name)s"
@@ -3137,9 +2765,7 @@ msgstr ""
 
 #: aleksis/core/templates/two_factor/core/login.html:47
 msgid "Please login with your account to use the external application."
-msgstr ""
-"Для використання зовнішнього додатку увійдіть, будь ласка, у свій обліковий "
-"запис."
+msgstr "Для використання зовнішнього додатку увійдіть, будь ласка, у свій обліковий запис."
 
 #: aleksis/core/templates/two_factor/core/login.html:54
 msgid "Please login to see this page."
@@ -3148,28 +2774,24 @@ msgstr "Для перегляду цієї сторінки, будь ласка
 #: aleksis/core/templates/two_factor/core/login.html:65
 msgid ""
 "\n"
-"                        We are calling your phone right now, please enter "
-"the\n"
+"                        We are calling your phone right now, please enter the\n"
 "                        digits you hear.\n"
 "                      "
 msgstr ""
 "\n"
-"                        Ми зателефонуємо зараз на Ваш номер. Напишіть, будь "
-"ласка, цифри,\n"
+"                        Ми зателефонуємо зараз на Ваш номер. Напишіть, будь ласка, цифри,\n"
 "                        які Ви почуєте.\n"
 "                      "
 
 #: aleksis/core/templates/two_factor/core/login.html:70
 msgid ""
 "\n"
-"                        We sent you a text message, please enter the tokens "
-"we\n"
+"                        We sent you a text message, please enter the tokens we\n"
 "                        sent.\n"
 "                      "
 msgstr ""
 "\n"
-"                        Ми надіслали Вам текстове повідомлення. Напишіть, "
-"будь ласка, отриманий\n"
+"                        Ми надіслали Вам текстове повідомлення. Напишіть, будь ласка, отриманий\n"
 "                        токен.\n"
 "                      "
 
@@ -3188,21 +2810,15 @@ msgstr ""
 #: aleksis/core/templates/two_factor/core/login.html:81
 msgid ""
 "\n"
-"                      Use this form for entering backup tokens for logging "
-"in.\n"
-"                      These tokens have been generated for you to print and "
-"keep safe. Please\n"
-"                      enter one of these backup tokens to login to your "
-"account.\n"
+"                      Use this form for entering backup tokens for logging in.\n"
+"                      These tokens have been generated for you to print and keep safe. Please\n"
+"                      enter one of these backup tokens to login to your account.\n"
 "                    "
 msgstr ""
 "\n"
-"                      Для входу скористайтеся формою для введення резервних "
-"токенів.\n"
-"                      Ці токени були згенеровані, щоб Ви їх роздрукували та "
-"зберігали у надійному місці.\n"
-"                      Щоб увійти напишіть, будь ласка, один з резервних "
-"токенів.\n"
+"                      Для входу скористайтеся формою для введення резервних токенів.\n"
+"                      Ці токени були згенеровані, щоб Ви їх роздрукували та зберігали у надійному місці.\n"
+"                      Щоб увійти напишіть, будь ласка, один з резервних токенів.\n"
 "                    "
 
 #: aleksis/core/templates/two_factor/core/login.html:109
@@ -3232,16 +2848,12 @@ msgstr "Дозвіл відсутній"
 #: aleksis/core/templates/two_factor/core/otp_required.html:10
 msgid ""
 "The page you requested, enforces users to verify using\n"
-"          two-factor authentication for security reasons. You need to enable "
-"these\n"
+"          two-factor authentication for security reasons. You need to enable these\n"
 "          security features in order to access this page."
 msgstr ""
-"Для перегляду запитуванної сторінки, з огляду на безпеку, необхідна "
-"додаткова\n"
-"          перевірка користувача з використанням двохфакторної "
-"автентифікації.\n"
-"          Для доступу до цієї сторінки Вам потрібно увімкнути ці функції "
-"безпеки."
+"Для перегляду запитуванної сторінки, з огляду на безпеку, необхідна додаткова\n"
+"          перевірка користувача з використанням двохфакторної автентифікації.\n"
+"          Для доступу до цієї сторінки Вам потрібно увімкнути ці функції безпеки."
 
 #: aleksis/core/templates/two_factor/core/otp_required.html:14
 msgid ""
@@ -3253,6 +2865,10 @@ msgstr ""
 "          вимкнена. Для збільшення безпеки обліковки увімкніть двохфакторну\n"
 "          автентифікацію."
 
+#: aleksis/core/templates/two_factor/core/otp_required.html:19
+msgid "Go back"
+msgstr "Назад"
+
 #: aleksis/core/templates/two_factor/core/phone_register.html:5
 #: aleksis/core/templates/two_factor/core/phone_register.html:9
 msgid "Add Backup Phone"
@@ -3286,8 +2902,7 @@ msgid ""
 msgstr ""
 "\n"
 "        Ви встановлюєте для свого облікового запису новий рівень безпеки.\n"
-"        Для увімкнення двохфакторної автентифікації пройдіть декілька "
-"кроків\n"
+"        Для увімкнення двохфакторної автентифікації пройдіть декілька кроків\n"
 "        майстра налаштування.\n"
 "      "
 
@@ -3298,24 +2913,20 @@ msgid ""
 "      "
 msgstr ""
 "\n"
-"        Оберіть, будь ласка, метод автентифікації, який Ви хочете "
-"використовувати:\n"
+"        Оберіть, будь ласка, метод автентифікації, який Ви хочете використовувати:\n"
 "      "
 
 #: aleksis/core/templates/two_factor/core/setup.html:23
 msgid ""
 "\n"
 "        To start using a token generator, please use your\n"
-"        favourite two factor authentication (TOTP) app to scan the QR code "
-"below.\n"
+"        favourite two factor authentication (TOTP) app to scan the QR code below.\n"
 "        Then, enter the token generated by the app.\n"
 "      "
 msgstr ""
 "\n"
-"        Для того, щоби почати використання генератора токенів, скористйтеся, "
-"будь ласка, своїм\n"
-"        улюбленим додатком для двохфакторної автентифікації (TOTP) та "
-"відскануйте QR-код, що нижче.\n"
+"        Для того, щоби почати використання генератора токенів, скористйтеся, будь ласка, своїм\n"
+"        улюбленим додатком для двохфакторної автентифікації (TOTP) та відскануйте QR-код, що нижче.\n"
 "        Після цього напишіть отриманий генератором токен.\n"
 "      "
 
@@ -3328,8 +2939,7 @@ msgid ""
 msgstr ""
 "\n"
 "        Напишіть, будь ласка, номер телефону, на який Ви хочете\n"
-"        отримувати текстові повідомлення. На наступному кроці він буде "
-"перевірений.\n"
+"        отримувати текстові повідомлення. На наступному кроці він буде перевірений.\n"
 "      "
 
 #: aleksis/core/templates/two_factor/core/setup.html:41
@@ -3347,13 +2957,11 @@ msgstr ""
 #: aleksis/core/templates/two_factor/core/setup.html:50
 msgid ""
 "\n"
-"            We are calling your phone right now, please enter the digits you "
-"hear.\n"
+"            We are calling your phone right now, please enter the digits you hear.\n"
 "          "
 msgstr ""
 "\n"
-"            Ми зараз телефонуємо на Ваш номер, – напишіть, будь ласка, "
-"цифри, які Ви почуєте.\n"
+"            Ми зараз телефонуємо на Ваш номер, – напишіть, будь ласка, цифри, які Ви почуєте.\n"
 "          "
 
 #: aleksis/core/templates/two_factor/core/setup.html:56
@@ -3363,29 +2971,22 @@ msgid ""
 "          "
 msgstr ""
 "\n"
-"            Ми надіслали Вам текстове повідомлення. Напишіть, будь ласка, "
-"отримані токени.\n"
+"            Ми надіслали Вам текстове повідомлення. Напишіть, будь ласка, отримані токени.\n"
 "          "
 
 #: aleksis/core/templates/two_factor/core/setup.html:63
 msgid ""
 "\n"
-"          We've encountered an issue with the selected authentication "
-"method. Please\n"
-"          go back and verify that you entered your information correctly, "
-"try\n"
-"          again, or use a different authentication method instead. If the "
-"issue\n"
+"          We've encountered an issue with the selected authentication method. Please\n"
+"          go back and verify that you entered your information correctly, try\n"
+"          again, or use a different authentication method instead. If the issue\n"
 "          persists, contact the site administrator.\n"
 "        "
 msgstr ""
 "\n"
-"          Ми помітили, що існує проблема з використанням обраного методу "
-"авторизації. Поверніться,\n"
-"          будь ласка, назад, та переконайтеся, що необхідні дані вказані "
-"правильно\n"
-"          і спробуйте увійте ще раз, або ж скористайтеся іншим варіантом "
-"входу. Якщо ж\n"
+"          Ми помітили, що існує проблема з використанням обраного методу авторизації. Поверніться,\n"
+"          будь ласка, назад, та переконайтеся, що необхідні дані вказані правильно\n"
+"          і спробуйте увійте ще раз, або ж скористайтеся іншим варіантом входу. Якщо ж\n"
 "          проблема залишається, зверніться до адміністратора сайту.\n"
 "        "
 
@@ -3411,8 +3012,7 @@ msgstr "Двохфакторна автентифікація успішно у
 #: aleksis/core/templates/two_factor/core/setup_complete.html:14
 msgid ""
 "\n"
-"        Congratulations, you've successfully enabled two-factor "
-"authentication.\n"
+"        Congratulations, you've successfully enabled two-factor authentication.\n"
 "      "
 msgstr ""
 "\n"
@@ -3433,16 +3033,13 @@ msgstr "Створити резервні коди"
 msgid ""
 "\n"
 "          However, it might happen that you don't have access to\n"
-"          your primary token device. To enable account recovery, generate "
-"backup codes\n"
+"          your primary token device. To enable account recovery, generate backup codes\n"
 "          or add a phone number.\n"
 "        "
 msgstr ""
 "\n"
-"          Між іншим, може так статися, що Ви не матимете доступу до свого "
-"основного\n"
-"          пристрою з токенами. Для увімкнення відновлення обліковки створіть "
-"резервні коди\n"
+"          Між іншим, може так статися, що Ви не матимете доступу до свого основного\n"
+"          пристрою з токенами. Для увімкнення відновлення обліковки створіть резервні коди\n"
 "          або додайте номер телефону.\n"
 "        "
 
@@ -3459,12 +3056,8 @@ msgid "Disable Two-Factor Authentication"
 msgstr "Вимкнути двохфакторну автентифікацію"
 
 #: aleksis/core/templates/two_factor/profile/disable.html:12
-msgid ""
-"You are about to disable two-factor authentication. This weakens your "
-"account security, are you sure?"
-msgstr ""
-"Ви вимикаєте двохфакторну автентифікацію. Це знизить захист Вашого "
-"облікового запису. Ви впевнені?"
+msgid "You are about to disable two-factor authentication. This weakens your account security, are you sure?"
+msgstr "Ви вимикаєте двохфакторну автентифікацію. Це знизить захист Вашого облікового запису. Ви впевнені?"
 
 #: aleksis/core/templates/two_factor/profile/disable.html:26
 msgid "Disable"
@@ -3552,8 +3145,7 @@ msgid ""
 msgstr ""
 "\n"
 "        Хоча ми рішуче застерігаємо Вас це не робити, Ви можете \n"
-"        також вимкнути двохфакторну автентифікацію для свого облікового "
-"запису.\n"
+"        також вимкнути двохфакторну автентифікацію для свого облікового запису.\n"
 "      "
 
 #: aleksis/core/templates/two_factor/profile/profile.html:78
@@ -3578,256 +3170,448 @@ msgstr "Ел.пошта"
 msgid "SMS"
 msgstr "SMS"
 
-#: aleksis/core/util/pdf.py:118
+#: aleksis/core/util/pdf.py:151
 msgid "Progress: Generate PDF file"
 msgstr "Перебіг: Генерація файлу PDF"
 
-#: aleksis/core/util/pdf.py:119
+#: aleksis/core/util/pdf.py:152
 msgid "Generating PDF file …"
 msgstr "Створення файлу PDF …"
 
-#: aleksis/core/util/pdf.py:120
+#: aleksis/core/util/pdf.py:153
 msgid "The PDF file has been generated successfully."
 msgstr "Файл PDF успішно створений."
 
-#: aleksis/core/util/pdf.py:121
+#: aleksis/core/util/pdf.py:154
 msgid "There was a problem while generating the PDF file."
 msgstr "Під час створення файлу PDF виникла проблема."
 
-#: aleksis/core/util/pdf.py:124
+#: aleksis/core/util/pdf.py:157
 msgid "Download PDF"
 msgstr "Звантажити PDF"
 
-#: aleksis/core/views.py:292 aleksis/core/views.py:294
+#: aleksis/core/views.py:278
 msgid "The school term has been created."
 msgstr "Навчальний рік створений."
 
-#: aleksis/core/views.py:304 aleksis/core/views.py:306
+#: aleksis/core/views.py:290
 msgid "The school term has been saved."
 msgstr "Навчальний рік збережений."
 
-#: aleksis/core/views.py:424 aleksis/core/views.py:426
+#: aleksis/core/views.py:394
 msgid "The child groups were successfully saved."
 msgstr "Підлеглі групи збережені."
 
-#: aleksis/core/views.py:443 aleksis/core/views.py:453
-#: aleksis/core/views.py:445 aleksis/core/views.py:455
+#: aleksis/core/views.py:413 aleksis/core/views.py:423
 msgid "The person has been saved."
 msgstr "Особа збережена."
 
-#: aleksis/core/views.py:503 aleksis/core/views.py:505
+#: aleksis/core/views.py:473
 msgid "The group has been saved."
 msgstr "Група збережена."
 
-#: aleksis/core/views.py:600 aleksis/core/views.py:602
+#: aleksis/core/views.py:556
 msgid "The announcement has been saved."
 msgstr "Оголошення збережене."
 
-#: aleksis/core/views.py:616 aleksis/core/views.py:618
+#: aleksis/core/views.py:572
 msgid "The announcement has been deleted."
 msgstr "Оголошення видалене."
 
-#: aleksis/core/views.py:684 aleksis/core/views.py:686
+#: aleksis/core/views.py:641
 msgid "The requested preference registry does not exist"
 msgstr "Журналу із запитаними властивостями не існує"
 
-#: aleksis/core/views.py:703 aleksis/core/views.py:705
+#: aleksis/core/views.py:660
 msgid "The preferences have been saved successfully."
 msgstr "Властивості збережені."
 
-#: aleksis/core/views.py:727 aleksis/core/views.py:729
+#: aleksis/core/views.py:684
 msgid "The person has been deleted."
 msgstr "Особа видалена."
 
-#: aleksis/core/views.py:741 aleksis/core/views.py:743
+#: aleksis/core/views.py:698
 msgid "The group has been deleted."
 msgstr "Група видалена."
 
-#: aleksis/core/views.py:773
-msgid "The additional_field has been saved."
+#: aleksis/core/views.py:730
+msgid "The additional field has been saved."
 msgstr "Додаткове поле збережене."
 
-#: aleksis/core/views.py:807 aleksis/core/views.py:809
+#: aleksis/core/views.py:765
 msgid "The additional field has been deleted."
 msgstr "Додаткове поле видалене."
 
-#: aleksis/core/views.py:832 aleksis/core/views.py:834
+#: aleksis/core/views.py:790
 msgid "The group type has been saved."
 msgstr "Тип групи збережений."
 
-#: aleksis/core/views.py:862 aleksis/core/views.py:864
+#: aleksis/core/views.py:821
 msgid "The group type has been deleted."
 msgstr "Тип групи видалений."
 
-#: aleksis/core/views.py:895 aleksis/core/views.py:897
+#: aleksis/core/views.py:856
 msgid "Progress: Run data checks"
 msgstr "Перебіг: Запуск перевірки даних"
 
-#: aleksis/core/views.py:896 aleksis/core/views.py:898
+#: aleksis/core/views.py:857
 msgid "Run data checks …"
 msgstr "Запускається перевірка даних …"
 
-#: aleksis/core/views.py:897 aleksis/core/views.py:899
+#: aleksis/core/views.py:858
 msgid "The data checks were run successfully."
 msgstr "Перевірка даних успішно запущена."
 
-#: aleksis/core/views.py:898 aleksis/core/views.py:900
+#: aleksis/core/views.py:859
 msgid "There was a problem while running data checks."
 msgstr "Під час запуску перевірки даних виникла проблема."
 
-#: aleksis/core/views.py:914 aleksis/core/views.py:916
+#: aleksis/core/views.py:876
 #, python-brace-format
 msgid "The solve option '{solve_option_obj.verbose_name}' "
 msgstr "Варіант розв'язання \"{solve_option_obj.verbose_name}\" "
 
-#: aleksis/core/views.py:924 aleksis/core/views.py:926
+#: aleksis/core/views.py:886
 msgid "The requested solve option does not exist"
 msgstr "Запитаний варіант розв'язання не існує"
 
-#: aleksis/core/views.py:956 aleksis/core/views.py:958
+#: aleksis/core/views.py:919
 msgid "The dashboard widget has been saved."
 msgstr "Віджет інформпанелі збережений."
 
-#: aleksis/core/views.py:986 aleksis/core/views.py:988
+#: aleksis/core/views.py:949
 msgid "The dashboard widget has been created."
 msgstr "Віджет інформпанелі створений."
 
-#: aleksis/core/views.py:996 aleksis/core/views.py:998
+#: aleksis/core/views.py:959
 msgid "The dashboard widget has been deleted."
 msgstr "Віджет інформпанелі видалений."
 
-#: aleksis/core/views.py:1067 aleksis/core/views.py:1069
+#: aleksis/core/views.py:1030
 msgid "Your dashboard configuration has been saved successfully."
 msgstr "Ваша конфігурація інформпанелі збережена."
 
-#: aleksis/core/views.py:1069 aleksis/core/views.py:1071
+#: aleksis/core/views.py:1032
 msgid "The configuration of the default dashboard has been saved successfully."
 msgstr "Конфігурація типової/стандартної інформпанелі збережена."
 
-#: aleksis/core/views.py:1145 aleksis/core/views.py:1147
+#: aleksis/core/views.py:1103
 #, python-brace-format
 msgid "The invitation was successfully created. The invitation code is {code}"
 msgstr "Запрошення успішно створене. Код запрошення: {code}"
 
-#: aleksis/core/views.py:1236 aleksis/core/views.py:1238
+#: aleksis/core/views.py:1200
 msgid "We have successfully assigned the permissions."
 msgstr "Ми успішно призначили дозволи."
 
-#: aleksis/core/views.py:1246 aleksis/core/views.py:1248
+#: aleksis/core/views.py:1210
 msgid "The global user permission has been deleted."
 msgstr "Глобальний користувацький дозвіл видалений."
 
-#: aleksis/core/views.py:1256 aleksis/core/views.py:1258
+#: aleksis/core/views.py:1220
 msgid "The global group permission has been deleted."
 msgstr "Глобальний груповий дозвіл видалений."
 
-#: aleksis/core/views.py:1266 aleksis/core/views.py:1268
+#: aleksis/core/views.py:1230
 msgid "The object user permission has been deleted."
 msgstr "Об'єктний користувацький дозвіл видалений."
 
-#: aleksis/core/views.py:1276 aleksis/core/views.py:1278
+#: aleksis/core/views.py:1240
 msgid "The object group permission has been deleted."
 msgstr "Об'єктний груповий дозвіл видалений."
 
-#: aleksis/core/views.py:1344 aleksis/core/views.py:1346
-msgid "The requested PDF file does not exist"
-msgstr "Запитаний файл PDF не існує"
+#: aleksis/core/views.py:1349
+msgid "The third-party account could not be disconnected because it is the only login method available."
+msgstr "Обліковий запис третьої сторони не можна від'єднати оскільки він єдиний спосіб для входу."
 
-#: aleksis/core/views.py:1353 aleksis/core/views.py:1357
-#: aleksis/core/views.py:1355 aleksis/core/views.py:1359
-msgid "The requested task does not exist or is not accessible"
-msgstr "Запитане завдання не існує або не доступне"
-
-#: aleksis/core/views.py:1409 aleksis/core/views.py:1411
-msgid ""
-"The third-party account could not be disconnected because it is the only "
-"login method available."
-msgstr ""
-"Обліковий запис третьої сторони не можна від'єднати оскільки він єдиний "
-"спосіб для входу."
-
-#: aleksis/core/views.py:1416 aleksis/core/views.py:1418
+#: aleksis/core/views.py:1356
 msgid "The third-party account has been successfully disconnected."
 msgstr "Обліковий запис третьої сторони успішно від'єднаний."
 
-#: aleksis/core/views.py:1487 aleksis/core/views.py:1489
-msgid ""
-"Person was invited successfully and an email with further instructions has "
-"been send to them."
-msgstr ""
-"Особа успішно запрошена. Лист з інструкціями щодо наступних дій надісланий "
-"на її ел.пошту."
+#: aleksis/core/views.py:1432
+msgid "Person was invited successfully and an email with further instructions has been send to them."
+msgstr "Особа успішно запрошена. Лист з інструкціями щодо наступних дій надісланий на її ел.пошту."
 
-#: aleksis/core/views.py:1498 aleksis/core/views.py:1500
+#: aleksis/core/views.py:1443
 msgid "Person was already invited."
 msgstr "Особа вже була запрошена."
 
-#: aleksis/core/views.py:1598
-msgid "ICal feed updated successfully"
-msgstr "Стрічка iCal успішно оновлена"
+#~ msgid "Birthday Calendar"
+#~ msgstr "Календар Днів Народження"
 
-#: aleksis/core/views.py:1608
-msgid "ICal feed deleted successfully"
-msgstr "Стрічка iCal успішно видалена"
+#~ msgid "A Calendar of Birthdays"
+#~ msgstr "Календар Днів Народження"
 
-#: aleksis/core/views.py:1616
-msgid "ICal feed created successfully"
-msgstr "Стрічка iCal успішно створена"
-
-#: aleksis/core/data_checks.py:330
 #, python-format
-msgid "Validate field %s of model %s."
-msgstr "Перевірте поле %s моделі %s."
+#~ msgid "%(name)s's birthday"
+#~ msgstr "%(name)s має День Народження"
 
-#: aleksis/core/data_checks.py:332
 #, python-format
-msgid "The field %s couldn't be validated successfully."
-msgstr "Поле %s не вдалося успішно перевірити."
+#~ msgid "%(name)s was born on %(birthday)s"
+#~ msgstr "%(name)s народився(-лася) %(birthday)s"
 
-#: aleksis/core/models.py:181
-msgid "other"
-msgstr "інший"
+#~ msgid "Dashboard"
+#~ msgstr "Інформпанель"
 
-#: aleksis/core/settings.py:543
-msgid "Ukrainian"
-msgstr "Українська"
+#~ msgid "Admin"
+#~ msgstr "Адмін"
 
-#: aleksis/core/templates/500.html:10
-msgid ""
-"An unexpected error has\n"
-"          occurred."
-msgstr ""
-"Сталася неочікувана\n"
-"          помилка."
+#~ msgid "Data management"
+#~ msgstr "Керування даними"
 
-#: aleksis/core/templates/core/group/full.html:93
-#, python-format
-msgid ""
-"\n"
-"              %(min)s years to %(max)s years\n"
-"            "
-msgstr ""
-"\n"
-"              %(min)s років до %(max)s років\n"
-"            "
+#~ msgid "Configuration"
+#~ msgstr "Конфігурація"
 
-#: aleksis/core/templates/core/ical/ical_list.html:4
-#: aleksis/core/templates/core/ical/ical_list.html:5
-msgid "iCal Feeds"
-msgstr "iCal-стрічки"
+#~ msgid "Backend Admin"
+#~ msgstr "Адміністрування бекенду"
 
-#: aleksis/core/views.py:775
-msgid "The additional field has been saved."
-msgstr "Додаткове поле збережене."
+#~ msgid "People"
+#~ msgstr "Люди"
 
-#: aleksis/core/views.py:1600
-msgid "iCal feed updated successfully"
-msgstr "Стрічка iCal успішно оновлена"
+#~ msgid "Groups and child groups"
+#~ msgstr "Групи та підлеглі групи"
 
-#: aleksis/core/views.py:1610
-msgid "iCal feed deleted successfully"
-msgstr "Стрічка iCal успішно видалена"
+#~ msgid "Invite person"
+#~ msgstr "Запросити особу"
+
+#~ msgid "Stop impersonation"
+#~ msgstr "Зупинити маскування"
+
+#~ msgid "Account"
+#~ msgstr "Обліковий запис"
+
+#~ msgid "2FA"
+#~ msgstr "2FA"
+
+#~ msgid "Third-party accounts"
+#~ msgstr "Обліковки третіх сторін"
+
+#~ msgid "Calendar Feeds"
+#~ msgstr "Канали календарів"
+
+#~ msgid "Logout"
+#~ msgstr "Вийти"
+
+#~ msgid "UUID"
+#~ msgstr "UUID"
+
+#~ msgid "Selected ICal feed"
+#~ msgstr "Стрічка обраного iCal"
 
-#: aleksis/core/views.py:1618
-msgid "iCal feed created successfully"
-msgstr "Стрічка iCal успішно створена"
+#~ msgid "Personal Calendar URL"
+#~ msgstr "URL-посилання особистого календаря"
+
+#~ msgid "Personal Calendar URLs"
+#~ msgstr "URL-посилання особистих календарів"
+
+#~ msgid "Available languages"
+#~ msgstr "Доступні мови"
+
+#~ msgid ""
+#~ "An unexpected error has\n"
+#~ "          occured."
+#~ msgstr ""
+#~ "Сталася неочікувана\n"
+#~ "          помилка."
+
+#~ msgid "About AlekSIS® — The Free School Information System"
+#~ msgstr "Щодо AlekSIS® — The Free School Information System"
+
+#~ msgid "Imprint"
+#~ msgstr "Відбиток"
+
+#~ msgid "Privacy Policy"
+#~ msgstr "Політика приватності"
+
+#~ msgid "years to"
+#~ msgstr "–"
+
+#~ msgid "years "
+#~ msgstr "рр. "
+
+#~ msgid "Create iCal URL"
+#~ msgstr "Створити посилання iCal"
+
+#, python-format
+#~ msgid "Edit iCal URL %(object)s"
+#~ msgstr "Редагувати посилання iCal %(object)s"
+
+#~ msgid "ICal Feeds"
+#~ msgstr "iCal-стрічки"
+
+#~ msgid "These are URLs for different Calendar Feeds in the iCal (.ics) format. You can create as many as you want and import them in your calendar software."
+#~ msgstr "Тут містяться посилання на різні стрічки календарів у форматі iCal (.ics). Ви можете створити їх стільки, скільки Вам необхідно та імпортувати їх у ПЗ для роботи з календарями."
+
+#~ msgid "Your iCal URLs"
+#~ msgstr "Ваші посилання iCal"
+
+#~ msgid "Recent notifications"
+#~ msgstr "Свіжі сповіщення"
+
+#~ msgid "More information →"
+#~ msgstr "Більше інформації →"
+
+#~ msgid "No notifications available yet."
+#~ msgstr "Сповіщення поки що не доступні."
+
+#~ msgid "About AlekSIS®"
+#~ msgstr "Щодо AlekSIS®"
+
+#~ msgid "AlekSIS® – The Free School Information System"
+#~ msgstr "AlekSIS® – The Free School Information System"
+
+#~ msgid "About AlekSIS"
+#~ msgstr "Щодо AlekSIS"
+
+#~ msgid ""
+#~ "\n"
+#~ "              This platform is powered by AlekSIS®, a web-based school information system (SIS) which can be used\n"
+#~ "              to manage and/or publish organisational artifacts of educational institutions. AlekSIS is free software and\n"
+#~ "              can be used by anyone.\n"
+#~ "            "
+#~ msgstr ""
+#~ "\n"
+#~ "              Ця платформа базується на AlekSIS®, веб-інструменті інформаційної системи для навчання (SIS) за допомогою якої\n"
+#~ "              можна керувати та/або висвітлювати організаційні елементи навчальних закладів. AlekSIS - безплатне ПЗ\n"
+#~ "              і ним може користуватися будь-хто.\n"
+#~ "            "
+
+#~ msgid ""
+#~ "\n"
+#~ "              AlekSIS® is a registered trademark of the AlekSIS open source project, represented by Teckids e.V.\n"
+#~ "            "
+#~ msgstr ""
+#~ "\n"
+#~ "              AlekSIS® – зареєстрована торгова марка проекту з відкритим програмним кодом AlekSIS, що представлена Teckids e.V.\n"
+#~ "            "
+
+#~ msgid "Website of AlekSIS"
+#~ msgstr "Веб-сайт AlekSIS"
+
+#~ msgid "Source code"
+#~ msgstr "Програмний код"
+
+#~ msgid "Licence information"
+#~ msgstr "Ліцензійна інформація"
+
+#~ msgid ""
+#~ "\n"
+#~ "              The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence\n"
+#~ "              information from third-party apps, if installed, refer to the respective components below. The\n"
+#~ "              licences are marked like this:\n"
+#~ "            "
+#~ msgstr ""
+#~ "\n"
+#~ "              Ядро та офіційні додатки AlekSIS ліцензовані EUPL, версії 1.2 та новіше. Для отримання інформації\n"
+#~ "              щодо додатків третіх сторін, якщо такі встановлені, перейдіть до відповідних компонентів нижче.\n"
+#~ "              Ці ліцензії мають таку позначку:\n"
+#~ "            "
+
+#~ msgid "Free/Open Source Licence"
+#~ msgstr "Безкоштовна або Ліцензія Відкритого Коду (Open Source)"
+
+#~ msgid "Other Licence"
+#~ msgstr "Інша ліцензія"
+
+#~ msgid "Full licence text"
+#~ msgstr "Повний текст ліцензії"
+
+#~ msgid "More information about the EUPL"
+#~ msgstr "Більше інформації щодо EUPL"
+
+#, python-format
+#~ msgid ""
+#~ "\n"
+#~ "                    This app is licenced under %(licence)s.\n"
+#~ "                  "
+#~ msgstr ""
+#~ "\n"
+#~ "                    Цей додаток ліцензований під %(licence)s.\n"
+#~ "                  "
+
+#~ msgid ""
+#~ "\n"
+#~ "              Without activated JavaScript the progress status can't be updated.\n"
+#~ "            "
+#~ msgstr ""
+#~ "\n"
+#~ "              Без активованого JavaScript статус виконання не зможе оновлюватися.\n"
+#~ "            "
+
+#~ msgid "Language"
+#~ msgstr "Мова"
+
+#~ msgid "Select language"
+#~ msgstr "Оберіть мову"
+
+#~ msgid ""
+#~ "\n"
+#~ "            Your administrator account is not linked to any person. Therefore,\n"
+#~ "            a dummy person has been linked to your account.\n"
+#~ "          "
+#~ msgstr ""
+#~ "\n"
+#~ "            Ваш адміністративний обліковий запис не поєднаний з жодною особою. Через це\n"
+#~ "            до Вашого облікового запису приєднана фейкова особа.\n"
+#~ "          "
+
+#~ msgid ""
+#~ "\n"
+#~ "            Your user account is not linked to a person. This means you\n"
+#~ "            cannot access any school-related information. Please contact\n"
+#~ "            the managers of AlekSIS at your school.\n"
+#~ "          "
+#~ msgstr ""
+#~ "\n"
+#~ "            Ваш обліковий запис не пов'язаний з фізособою. Це означає,\n"
+#~ "            що Ви не маєте жодного доступу до навчальної інформації. Зверніться,\n"
+#~ "            будь ласка, до адміністраторів AlekSIS у Вашому навчальному закладі.\n"
+#~ "          "
+
+#~ msgid "Impersonate"
+#~ msgstr "Маскування"
+
+#~ msgid "Invite user"
+#~ msgstr "Запросити користувача"
+
+#~ msgid "Contact details"
+#~ msgstr "Контактні дані"
+
+#~ msgid "This person didn't upload a personal photo."
+#~ msgstr "Ця особа не завантажила особисте фото."
+
+#~ msgid "Children"
+#~ msgstr "Діти"
+
+#~ msgid "Please return to your application and enter this code:"
+#~ msgstr "Поверніться, будь ласка, до свого додатку та впишіть цей код:"
+
+#~ msgid "No internet connection."
+#~ msgstr "Немає інтернет-з'єднання."
+
+#~ msgid "The additional_field has been saved."
+#~ msgstr "Додаткове поле збережене."
+
+#~ msgid "The requested PDF file does not exist"
+#~ msgstr "Запитаний файл PDF не існує"
+
+#~ msgid "The requested task does not exist or is not accessible"
+#~ msgstr "Запитане завдання не існує або не доступне"
+
+#~ msgid "ICal feed updated successfully"
+#~ msgstr "Стрічка iCal успішно оновлена"
+
+#~ msgid "ICal feed created successfully"
+#~ msgstr "Стрічка iCal успішно створена"
+
+#~ msgid "iCal Feeds"
+#~ msgstr "iCal-стрічки"
+
+#~ msgid "iCal feed updated successfully"
+#~ msgstr "Стрічка iCal успішно оновлена"
+
+#~ msgid "iCal feed deleted successfully"
+#~ msgstr "Стрічка iCal успішно видалена"
+
+#~ msgid "iCal feed created successfully"
+#~ msgstr "Стрічка iCal успішно створена"
diff --git a/aleksis/core/locale/uk/LC_MESSAGES/djangojs.po b/aleksis/core/locale/uk/LC_MESSAGES/djangojs.po
index fcd6122a3fdc075256f8c08626ad9d806d4241be..2e94bca8c985daae37975ff0222ad26f40ec2ed8 100644
--- a/aleksis/core/locale/uk/LC_MESSAGES/djangojs.po
+++ b/aleksis/core/locale/uk/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-25 12:09+0200\n"
+"POT-Creation-Date: 2023-01-22 20:49+0100\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,5 @@ msgstr "Скасувати"
 msgid "OK"
 msgstr "OK"
 
-#: aleksis/core/static/js/main.js:195
-msgid "This page may contain outdated information since there is no internet connection."
-msgstr "Через відсутність інтернет-з'єднання ця сторінка може містити застарілу інформацію."
+#~ msgid "This page may contain outdated information since there is no internet connection."
+#~ msgstr "Через відсутність інтернет-з'єднання ця сторінка може містити застарілу інформацію."